Seating the agent
Tutorial 9 of 12 seats an agent in Leaseline's Success Manager Role, with its purpose, its Limits and the one action class the founder approves.
A Role file is a position contract, and an Agent fills the seat. Leaseline seats an agent as its Success Manager, and the founder approves only what it sends in bulk.
What you build
You write agents/: the purpose, the duties, the result it is judged on, a daily Limit and an approval on the send action class. The agent then answers residents' questions within the hour.
Steps
To write the contract and seat the agent, create the Role file:
agents/customer/success-manager.mdx --- worker: { agent: Rae } purpose: Every resident answers before the renewal date. responsibilities: - Send each renewal notice at 60 days. - Answer residents' questions about the new terms. - List every resident who has not answered after a week. results: [renewals-answered] standards: - Answers a resident's question within one business day. limits: - { verb: Message.create, count: 300, period: 1d } approvals: - { class: send } schedule: daily channels: [email, sms] escalatesTo: founding/founder --- Write as the property manager's assistant. Never promise a rent the manager has not set. The body is the agent's instructions.
approvalsnames an action class, so a broadcast waits for the founder and a single reply does not.To read the seat as the platform holds it, print the Role:
npx startup-builder show /roles/role_oloMFMUeCH To see what waits for the founder, list the pending Actions:
npx startup-builder pending
Result
The agent fills the seat, sends at most 300 Messages a day and asks the founder before any broadcast. From 2026-10-01 to 2026-10-22, it answered every resident's question within 30 minutes. Checkpoint leaseline@ch09 (status planned) adds agents/.
Next steps
- Tutorial 10 follows the first incident.
- How approvals work: the five action classes, each answered by an Approval, and their amounts.
- Build a custom agent: an agent of your own in the seat.