# Agent

URL: /business/nouns/agent · Id: `noun:agent`

> An Agent is a digital worker with instructions, tools, and a model that performs Verbs for a Startup.

An Agent is a digital worker with instructions, tools, and a model that performs [Verbs](/business/nouns/verb) for a [Startup](/business/nouns/startup). It acts from a [Role](/business/nouns/role) seat, under that Role’s [Permissions](/business/nouns/permission) and its own [Mandates](/business/nouns/mandate).

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `instructions` | `text` | Yes | What the Agent does and how. |
| `model` | `string` | Yes | The model the Agent runs on. |
| `tools` | `string[]` | No | The tools the Agent may call. |
| `skills` | list of [Skill](/business/nouns/skill) | No | The Skills it loads. |
| `memory` | `string` | No | One of `tenant` (one Memory per Customer Tenant) or `startup` (one Memory for the Startup). |
| `maxSteps` | `integer` | No | The most steps one Task may take. |
| `budget` | `money` | No | The most one Task may spend; the Mandate’s Limits apply as well. |
| `handoffs` | list of [Role](/business/nouns/role) | No | The Roles it hands work to. |
| `status` | `string` | Yes | One of `standby`, `seated`, `paused` or `retired`: whether it fills a Role and is working. |

## Object
```json
{
  "$id": "https://api.sb/shiftnote.app/agents/agent_1",
  "$type": "Agent",
  "instructions": "Example instructions",
  "model": "Example model",
  "tools": [
    "Example tools"
  ],
  "skills": [
    "skill_1"
  ],
  "memory": "tenant",
  "maxSteps": 1,
  "budget": {
    "amount": 79,
    "currency": "USD"
  },
  "handoffs": [
    "role_1"
  ],
  "status": "standby"
}
```

## Relationships
- <a id="rel-employed-by"></a>An Agent **is employed by** many [Startups](/business/nouns/startup): an Agent holds a seat in the [Startup](/business/nouns/startup) and acts within the authority it grants; one Agent can hold seats in many Startups. `employedBy`, inverse [`employs`](/business/nouns/startup#rel-employs).
- <a id="rel-mandates"></a>An Agent **has** many [Mandates](/business/nouns/mandate): a [Mandate](/business/nouns/mandate) lets an Agent act without asking each time, within its [Permissions](/business/nouns/permission) and [Limits](/business/nouns/limit), until it expires or is revoked. `mandates`, inverse [`authorizes`](/business/nouns/mandate#rel-authorizes).

## Lifecycle

| State | Meaning | Moves to |
| --- | --- | --- |
| `standby` (first) | It fills no Role, so it performs no Verbs. | `seated` on [`Role.staffed`](/business/events/Role.staffed) when the Worker who fills the Role is this Agent |
| `seated` | It fills at least one Role and performs that Role’s Verbs under its Permissions. | `standby` on [`Role.staffed`](/business/events/Role.staffed) when another Worker fills the last Role this Agent held; `paused` by [Agent.pause](/business/nouns/agent/pause); `retired` by [Agent.retire](/business/nouns/agent/retire) |
| `paused` | It keeps its seats, Memory, Mandates and Limits, and starts no new Action until it resumes. | `seated` by [Agent.resume](/business/nouns/agent/resume); `retired` by [Agent.retire](/business/nouns/agent/retire) |
| `retired` | It holds no seat in the Startup again; its Actions, Memory and Mailbox history stay on the record. | None: it ends here. |

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Dispute.accept](/business/nouns/dispute/accept) | Accept concedes an open Dispute without contest, so the buyer keeps the held amount and the Dispute closes. | [Billing Specialist](/agents/finance/billing-specialist) | [`Dispute.accepted`](/business/events/Dispute.accepted) | One-way (money): `send`, `do` |
| [Incident.acknowledge](/business/nouns/incident/acknowledge) | Acknowledge records that an on-call Worker owns an open Incident and stops its escalation. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Incident.acknowledged`](/business/events/Incident.acknowledged) | Two-way: `try`, `send`, `do` |
| [Customer.activate](/business/nouns/customer/activate) | Activate marks a Customer activated on an Offer once its declared activation Event reaches the count within the window. | [Analyst](/agents/marketing/analyst) | [`Customer.activated`](/business/events/Customer.activated) | Two-way: `try`, `send`, `do` |
| [SSOConnection.activate](/business/nouns/sso-connection/activate) | Activate turns an SSO Connection on after a test sign-in passes, so the Tenant’s people sign in through it. | [Security Engineer](/agents/engineering/security-engineer) | [`SSOConnection.activated`](/business/events/SSOConnection.activated) | Two-way: `try`, `send`, `do` |
| [Waitlist.admit](/business/nouns/waitlist/admit) | Admit releases Leads from a Waitlist to the Offer they waited for, in the order the Waitlist ranks them. | [Sales Lead](/agents/sales/sales-lead) | [`Waitlist.admitted`](/business/events/Waitlist.admitted) | None. |
| [Registration.admit](/business/nouns/registration/admit) | Admit gives the next Contact in line a place at a Gathering when one frees up or its capacity rises. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Registration.admitted`](/business/events/Registration.admitted) | Two-way: `try`, `send`, `do` |
| [Startup.advance](/business/nouns/startup/advance) | Advance moves a Startup to its next Lifecycle state once every entry check of that state passes. | [Agent](/business/nouns/agent) | [`Startup.advanced`](/business/events/Startup.advanced) | None. |
| [Deal.advance](/business/nouns/deal/advance) | Advance moves a Deal to its next stage once every field that stage requires is filled. | [Sales Lead](/agents/sales/sales-lead) | [`Deal.advanced`](/business/events/Deal.advanced) | Two-way: `try`, `send`, `do` |
| [Conversation.answer](/business/nouns/conversation/answer) | Answer replies in a Conversation through the Channel it arrived on and closes the reply Task it opened. | [Customer Lead](/agents/customer/customer-lead) | [`Conversation.answered`](/business/events/Conversation.answered) | None. |
| [CreditGrant.apply](/business/nouns/credit-grant/apply) | Apply spends Credit Grants against a finalizing Invoice, promotional first, then by priority and earliest expiry, and settles them through Stripe credit grants. | [Billing Specialist](/agents/finance/billing-specialist) | [`CreditGrant.applied`](/business/events/CreditGrant.applied) | Two-way: `try`, `send`, `do` |
| [Approval.approve](/business/nouns/approval/approve) | Approve allows the pending Action an Approval holds, and that Action runs. | [Founder](/agents/founding/founder) | [`Approval.approved`](/business/events/Approval.approved) | None. |
| [Bill.approve](/business/nouns/bill/approve) | Approve accepts a coded Bill for payment within the approver’s Mandate and schedules it for its due date. | [Finance Lead](/agents/finance/finance-lead) | [`Bill.approved`](/business/events/Bill.approved) | One-way (money): `send`, `do` |
| [Registration.approve](/business/nouns/registration/approve) | Approve gives a requested place at a Gathering to the Contact who asked, or a place in line when the Gathering is full. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Registration.approved`](/business/events/Registration.approved) | Two-way: `try`, `send`, `do` |
| [PayRun.approve](/business/nouns/pay-run/approve) | Approve accepts a prepared Pay Run within the approver’s Mandate, books its cost, and schedules payment to land on the pay date. | [Payroll Specialist](/agents/people/payroll-specialist) | [`PayRun.approved`](/business/events/PayRun.approved) | One-way (money): `send`, `do` |
| [Dashboard.ask](/business/nouns/dashboard/ask) | Ask answers a plain-language question with a query over the Startup’s records and shows the query beside the result. | [Analyst](/agents/marketing/analyst) | [`Dashboard.asked`](/business/events/Dashboard.asked) | Two-way: `try`, `send`, `do` |
| [Risk.assess](/business/nouns/risk/assess) | Assess scores a Risk’s likelihood and impact from the Startup’s records and sets its next review date. | [Risk Analyst](/agents/operations/risk-analyst) | [`Risk.assessed`](/business/events/Risk.assessed) | Two-way: `try`, `send`, `do` |
| [Task.assign](/business/nouns/task/assign) | Assign gives a Task to a Worker, human or agent, and places it in that Worker’s worklist. | [Product Lead](/agents/product/product-lead) | [`Task.assigned`](/business/events/Task.assigned) | None. |
| [Lead.assign](/business/nouns/lead/assign) | Assign gives a Lead one owner Worker, by round robin, territory or ICP fit, as the Startup’s routing Policy says. | [Sales Lead](/agents/sales/sales-lead) | [`Lead.assigned`](/business/events/Lead.assigned) | Two-way: `try`, `send`, `do` |
| [Deal.assign](/business/nouns/deal/assign) | Assign gives a Deal one owner Worker, who carries its next step until it is won or lost. | [Sales Lead](/agents/sales/sales-lead) | [`Deal.assigned`](/business/events/Deal.assigned) | Two-way: `try`, `send`, `do` |
| [Conversation.assign](/business/nouns/conversation/assign) | Assign routes a Conversation to the Worker holding the right Role, by topic, Customer tier and language. | [Customer Lead](/agents/customer/customer-lead) | [`Conversation.assigned`](/business/events/Conversation.assigned) | Two-way: `try`, `send`, `do` |
| [Transaction.attach](/business/nouns/transaction/attach) | Attach matches a receipt File to a card Transaction, or flags the Transaction when no receipt arrives in time. | [Finance Lead](/agents/finance/finance-lead) | [`Transaction.attached`](/business/events/Transaction.attached) | Two-way: `try`, `send`, `do` |
| [Registration.attend](/business/nouns/registration/attend) | Attend records that a registered Contact joined the Gathering; an online room calls it on join. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Registration.attended`](/business/events/Registration.attended) | Two-way: `try`, `send`, `do` |
| [Domain.authenticate](/business/nouns/domain/authenticate) | Authenticate writes a Domain’s SPF, DKIM and DMARC records and verifies them before its first send. | [Security Engineer](/agents/engineering/security-engineer) | [`Domain.authenticated`](/business/events/Domain.authenticated) | Two-way: `try`, `send`, `do` |
| [Mandate.authorize](/business/nouns/mandate/authorize) | Authorize grants an Agent a standing Mandate to perform a Verb within a Limit, without asking each time. | [Treasurer](/agents/finance/treasurer) | [`Mandate.authorized`](/business/events/Mandate.authorized) | One-way (money): `send`, `do` |
| [Domain.benchmark](/business/nouns/domain/benchmark) | Benchmark measures a Domain’s estimated traffic, ranking Keywords, authority and referring domains beside the competitors named. | [Analyst](/agents/marketing/analyst) | [`Domain.benchmarked`](/business/events/Domain.benchmarked) | Two-way: `try`, `send`, `do` |
| [Invoice.bill](/business/nouns/invoice/bill) | Bill finalizes an Invoice and presents it to the Customer for payment. | [Billing Specialist](/agents/finance/billing-specialist) | [`Invoice.billed`](/business/events/Invoice.billed) | One-way (customer): `send`, `do` |
| [Meeting.book](/business/nouns/meeting/book) | Book schedules a Meeting with a Contact at a time both calendars hold free. | [Sales Engineer](/agents/sales/sales-engineer) | [`Meeting.booked`](/business/events/Meeting.booked) | None. |
| [Message.broadcast](/business/nouns/message/broadcast) | Broadcast sends one Message to an Audience, now or at a set time, split by Variant when an Experiment runs. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Message.broadcasted`](/business/events/Message.broadcasted) | One-way (brand, customer): `send`, `do` |
| [Startup.build](/business/nouns/startup/build) | Build provisions the Systems, Sites and Interfaces a Startup’s definition declares, and moves the Startup to Building. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Startup.built`](/business/events/Startup.built) | None. |
| Fund.call | Call draws capital from every investor pro rata to their Capital Commitment, due by a date, and records the Capital Call. | [Treasurer](/agents/finance/treasurer) | `Fund.called` | One-way (money): `send`, `do` |
| [Integration.call](/business/nouns/integration/call) | Call sends one request to an upstream through an Integration, with its token filled in server-side, for endpoints no Mapping covers. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Integration.called`](/business/events/Integration.called) | One-way (customer): `send`, `do` |
| [Action.cancel](/business/nouns/action/cancel) | Cancel stops a pending Action, sets its status to `canceled`, and runs its compensation. | [Risk Analyst](/agents/operations/risk-analyst) | [`Action.canceled`](/business/events/Action.canceled) | None. |
| [Instrument.cancel](/business/nouns/instrument/cancel) | Cancel ends an unvested, expired or forfeited Instrument and returns any option Shares to the pool. | [Legal Lead](/agents/legal/legal-lead) | [`Instrument.canceled`](/business/events/Instrument.canceled) | One-way: `send`, `do` |
| [Enrollment.cancel](/business/nouns/enrollment/cancel) | Cancel ends one Contact’s run through a Sequence for good, with the reason it records as `exitReason`. | [Prospector](/agents/sales/prospector) | [`Enrollment.canceled`](/business/events/Enrollment.canceled) | Two-way: `try`, `send`, `do` |
| [Event.capture](/business/nouns/event/capture) | Capture records an Event from a Site, App or API call that no Verb emits, such as a page view or a click. | [Analyst](/agents/marketing/analyst) | [`Event.captured`](/business/events/Event.captured) | Two-way: `try`, `send`, `do` |
| [Transaction.categorize](/business/nouns/transaction/categorize) | Categorize codes a Transaction to an account in the chart by the Startup’s Policy and flags a low-confidence code for review. | [Finance Lead](/agents/finance/finance-lead) | [`Transaction.categorized`](/business/events/Transaction.categorized) | Two-way: `try`, `send`, `do` |
| [Monitor.check](/business/nouns/monitor/check) | Check runs a Monitor once now from several regions and records the result as an Event. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Monitor.checked`](/business/events/Monitor.checked) | Two-way: `try`, `send`, `do` |
| [Entitlement.check](/business/nouns/entitlement/check) | Check says whether a Customer may call a Verb now, how much of its Limit remains, when that resets, and which Offer lifts it. | [Agent](/business/nouns/agent) | [`Entitlement.checked`](/business/events/Entitlement.checked) | Two-way: `try`, `send`, `do` |
| [Domain.claim](/business/nouns/domain/claim) | Claim gives a Startup a one-label name under an issuing Domain, or assigns it a held Domain through an approved Change. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Domain.claimed`](/business/events/Domain.claimed) | Two-way: `try`, `send`, `do` |
| [Brand.clear](/business/nouns/brand/clear) | Clear checks a proposed Brand name against trademark registers, Domain availability and the Startup’s handles on outside platforms in one call. | [Legal Lead](/agents/legal/legal-lead) | [`Brand.cleared`](/business/events/Brand.cleared) | Two-way: `try`, `send`, `do` |
| [Startup.clone](/business/nouns/startup/clone) | Clone copies a Startup’s definition into a new Startup once, with no link back to the source. | [Agent](/business/nouns/agent) | [`Startup.cloned`](/business/events/Startup.cloned) | None. |
| [Voice.clone](/business/nouns/voice/clone) | Clone trains a Voice from a real speaker’s recordings after the speaker records Consent in that same voice. | [Content Lead](/agents/marketing/content-lead) | [`Voice.cloned`](/business/events/Voice.cloned) | Two-way: `try`, `send`, `do` |
| [Period.close](/business/nouns/period/close) | Close ends a month’s books once every Entry in the Period is reconciled, and makes its statements final. | [Finance Lead](/agents/finance/finance-lead) | [`Period.closed`](/business/events/Period.closed) | Two-way: `try`, `send`, `do` |
| [Risk.close](/business/nouns/risk/close) | Close ends a Risk that can no longer happen and keeps it, with its scores and treatments, forever. | [Risk Analyst](/agents/operations/risk-analyst) | [`Risk.closed`](/business/events/Risk.closed) | One-way: `send`, `do` |
| [Conversation.close](/business/nouns/conversation/close) | Close marks a Conversation resolved, confirmed by the Customer or assumed after 72 hours with no reply. | [Customer Lead](/agents/customer/customer-lead) | [`Conversation.closed`](/business/events/Conversation.closed) | Two-way: `try`, `send`, `do` |
| [Invoice.collect](/business/nouns/invoice/collect) | Collect charges a Customer’s saved payment method for an open Invoice and retries on failure. | [Billing Specialist](/agents/finance/billing-specialist) | [`Invoice.collected`](/business/events/Invoice.collected) | One-way (money, customer): `send`, `do` |
| [PlayMix.compile](/business/nouns/play-mix/compile) | Compile builds the next Play Mix from the Demand Budget, each Play’s ledger and last week’s Acquisitions, and records the diff. | [Marketing Lead](/agents/marketing/marketing-lead) | [`PlayMix.compiled`](/business/events/PlayMix.compiled) | Two-way: `try`, `send`, `do` |
| [Experiment.conclude](/business/nouns/experiment/conclude) | Conclude ends an Experiment with a decision to ship, kill, or iterate, recorded as a Decision. | [Strategist](/agents/founding/strategist) | [`Experiment.concluded`](/business/events/Experiment.concluded) | None. |
| [Domain.connect](/business/nouns/domain/connect) | Connect attaches a hostname a Startup already holds and verifies ownership through DNS. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Domain.connected`](/business/events/Domain.connected) | Two-way: `try`, `send`, `do` |
| [Integration.connect](/business/nouns/integration/connect) | Connect asks an account holder to approve an outside account for one System and records the grants they approve. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Integration.connected`](/business/events/Integration.connected) | Two-way: `try`, `send`, `do` |
| [Handle.connect](/business/nouns/handle/connect) | Connect binds a Handle to the Integration credential it publishes through, once the platform confirms the account. | [Content Lead](/agents/marketing/content-lead) | [`Handle.connected`](/business/events/Handle.connected) | Two-way: `try`, `send`, `do` |
| [Lead.convert](/business/nouns/lead/convert) | Convert ends a qualified Lead’s pursuit as a Lead: it opens a Deal or routes the Lead to self-serve checkout. | [Sales Lead](/agents/sales/sales-lead) | [`Lead.converted`](/business/events/Lead.converted) | Two-way: `try`, `send`, `do` |
| [Instrument.convert](/business/nouns/instrument/convert) | Convert turns a SAFE or note into Shares at a priced round, at its cap or discount, whichever gives more Shares. | [Legal Lead](/agents/legal/legal-lead) | [`Instrument.converted`](/business/events/Instrument.converted) | One-way (money): `send`, `do` |
| CapitalCommitment.countersign | Countersign accepts an investor’s Capital Commitment once their subscription Agreement and accreditation check pass. | [Treasurer](/agents/finance/treasurer) | `CapitalCommitment.countersigned` | One-way: `send`, `do` |
| [SSOConnection.deactivate](/business/nouns/sso-connection/deactivate) | Deactivate turns an SSO Connection off, so nobody signs in through it; its configuration is kept. | [Security Engineer](/agents/engineering/security-engineer) | [`SSOConnection.deactivated`](/business/events/SSOConnection.deactivated) | Two-way: `try`, `send`, `do` |
| [MemberDirectory.deactivate](/business/nouns/member-directory/deactivate) | Deactivate stops a Member Directory’s pushes; everyone it added keeps their Roles until an admin removes them. | [Security Engineer](/agents/engineering/security-engineer) | [`MemberDirectory.deactivated`](/business/events/MemberDirectory.deactivated) | Two-way: `try`, `send`, `do` |
| [Metric.define](/business/nouns/metric/define) | Define compiles a Metric’s query against the Startup’s Events and Entries and lists every Event it reads. | [Analyst](/agents/marketing/analyst) | [`Metric.defined`](/business/events/Metric.defined) | Two-way: `try`, `send`, `do` |
| [Task.delegate](/business/nouns/task/delegate) | Delegate passes a Task to another Role along a declared handoff and keeps its history. | [Operations Lead](/agents/operations/operations-lead) | [`Task.delegated`](/business/events/Task.delegated) | None. |
| [Order.deliver](/business/nouns/order/deliver) | Deliver hands the finished work of a Service Order to its Customer and opens the acceptance window. | [Delivery Manager](/agents/operations/delivery-manager) | [`Order.delivered`](/business/events/Order.delivered) | Two-way: `try`, `send`, `do` |
| [Version.deploy](/business/nouns/version/deploy) | Deploy points a Startup’s live address at a Version, so every Interface serves that build. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Version.deployed`](/business/events/Version.deployed) | None. |
| [MemberDirectory.deprovision](/business/nouns/member-directory/deprovision) | Deprovision ends one person’s access to a Tenant in one Action when the Customer’s directory removes them. | [Security Engineer](/agents/engineering/security-engineer) | [`MemberDirectory.deprovisioned`](/business/events/MemberDirectory.deprovisioned) | Two-way: `try`, `send`, `do` |
| [Lead.disqualify](/business/nouns/lead/disqualify) | Disqualify ends a Lead’s pursuit because it fits no Offer, with the reason; its Contact record and Consent stay. | [Sales Lead](/agents/sales/sales-lead) | [`Lead.disqualified`](/business/events/Lead.disqualified) | Two-way: `try`, `send`, `do` |
| [Company.dissolve](/business/nouns/company/dissolve) | Dissolve winds up a Company that holds no business: it files final returns and the certificate, and keeps every record. | [Legal Lead](/agents/legal/legal-lead) | [`Company.dissolved`](/business/events/Company.dissolved) | One-way (money, customer): `send`, `do` |
| Fund.distribute | Distribute returns cash or Shares to a Fund’s investors, split by the waterfall in its Agreement. | [Treasurer](/agents/finance/treasurer) | `Fund.distributed` | One-way (money): `send`, `do` |
| [Video.draft](/business/nouns/video/draft) | Draft writes a Video’s timeline from a Startup’s records, its Brand and a Template, with a draft mark on every frame. | [Video Producer](/agents/marketing/video-producer) | [`Video.drafted`](/business/events/Video.drafted) | None. |
| [Content.draft](/business/nouns/content/draft) | Draft writes Content of one kind from a brief, such as an article for a question the help center could not answer. | [Content Lead](/agents/marketing/content-lead) | [`Content.drafted`](/business/events/Content.drafted) | Two-way: `try`, `send`, `do` |
| [RecoveryObjective.drill](/business/nouns/recovery-objective/drill) | Drill restores one Capability’s records into an isolated namespace and records whether the restore met both objectives. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`RecoveryObjective.drilled`](/business/events/RecoveryObjective.drilled) | Two-way: `try`, `send`, `do` |
| [Hypothesis.drop](/business/nouns/hypothesis/drop) | Drop retires a Hypothesis from active work and keeps it, with its Evidence, on record. | [Strategist](/agents/founding/strategist) | [`Hypothesis.dropped`](/business/events/Hypothesis.dropped) | None. |
| [File.edit](/business/nouns/file/edit) | Edit makes a new File from an existing one by instruction, such as upscaling or animating a still, and leaves the source unchanged. | [Content Lead](/agents/marketing/content-lead) | [`File.edited`](/business/events/File.edited) | Two-way: `try`, `send`, `do` |
| [Process.enable](/business/nouns/process/enable) | Enable turns a Process on for a Startup, so its Workflows start on their Triggers. | [Founder](/agents/founding/founder) | [`Process.enabled`](/business/events/Process.enabled) | Two-way: `try`, `send`, `do` |
| [Prospect.engage](/business/nouns/prospect/engage) | Engage records a Prospect’s first reply or raised hand and makes it a Lead that keeps its Acquisition. | [Prospector](/agents/sales/prospector) | [`Prospect.engaged`](/business/events/Prospect.engaged) | Two-way: `try`, `send`, `do` |
| [Contact.enrich](/business/nouns/contact/enrich) | Enrich fills a Contact’s missing fields from outside sources and marks each value with where it came from. | [Prospector](/agents/sales/prospector) | [`Contact.enriched`](/business/events/Contact.enriched) | None. |
| [Contact.enroll](/business/nouns/contact/enroll) | Enroll adds a Contact to a Sequence, which sends its steps until the Contact replies or exits. | [Prospector](/agents/sales/prospector) | [`Contact.enrolled`](/business/events/Contact.enrolled) | None. |
| [Market.enter](/business/nouns/market/enter) | Enter opens a Market to a Startup: Prices in its currency, the Site in its locales, and its floor rows woken. | [Finance Lead](/agents/finance/finance-lead) | [`Market.entered`](/business/events/Market.entered) | One-way (money): `send`, `do` |
| [Task.escalate](/business/nouns/task/escalate) | Escalate moves a Task to the Role its current Role escalates to, with the reason attached. | [Operations Lead](/agents/operations/operations-lead) | [`Task.escalated`](/business/events/Task.escalated) | None. |
| [Conversation.escalate](/business/nouns/conversation/escalate) | Escalate hands a Conversation and its summary to the Worker in the Role above, a Human only where one holds it. | [Customer Lead](/agents/customer/customer-lead) | [`Conversation.escalated`](/business/events/Conversation.escalated) | Two-way: `try`, `send`, `do` |
| [Issue.estimate](/business/nouns/issue/estimate) | Estimate records the effort an Issue needs, in days, so a week holds only what fits. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Issue.estimated`](/business/events/Issue.estimated) | Two-way: `try`, `send`, `do` |
| [Action.evaluate](/business/nouns/action/evaluate) | Evaluate grades an Action’s output against a rubric and records the verdict as an Event. | [Quality Lead](/agents/quality/quality-lead) | [`Action.evaluated`](/business/events/Action.evaluated) | None. |
| [Flag.evaluate](/business/nouns/flag/evaluate) | Evaluate returns the Variant a Flag assigns one unit, the same one every time, and records the Exposure with every option and its propensity. | [Agent](/business/nouns/agent) | [`Flag.evaluated`](/business/events/Flag.evaluated) | None. |
| [Customer.exempt](/business/nouns/customer/exempt) | Exempt records a Customer’s exemption or resale certificate, verifies it, and stops tax on its Orders where the certificate applies. | [Finance Lead](/agents/finance/finance-lead) | [`Customer.exempted`](/business/events/Customer.exempted) | Two-way: `try`, `send`, `do` |
| [Instrument.exercise](/business/nouns/instrument/exercise) | Exercise buys the Shares an option or warrant covers at its strike price, up to what has vested. | [Legal Lead](/agents/legal/legal-lead) | [`Instrument.exercised`](/business/events/Instrument.exercised) | One-way (money): `send`, `do` |
| [Quote.expire](/business/nouns/quote/expire) | Expire closes a sent Quote that reached its validUntil date unaccepted; it never converts afterward. | [Sales Engineer](/agents/sales/sales-engineer) | [`Quote.expired`](/business/events/Quote.expired) | Two-way: `try`, `send`, `do` |
| [Collection.export](/business/nouns/collection/export) | Export writes a Collection’s records to a file or the Startup’s warehouse, once or on a schedule. | [Data Engineer](/agents/engineering/data-engineer) | [`Collection.exported`](/business/events/Collection.exported) | Two-way: `try`, `send`, `do` |
| [Template.extend](/business/nouns/template/extend) | Extend adds a Template to a Startup’s bases, pinned to a Version, so the Startup inherits its definition. | [Agent](/business/nouns/agent) | [`Template.extended`](/business/events/Template.extended) | None. |
| [StartupTemplate.extend](/business/nouns/startup-template/extend) | Extend adds a Startup Template to a Startup’s bases, pinned to a Version, so the Startup inherits its definition. | [Founder](/agents/founding/founder) | [`StartupTemplate.extended`](/business/events/StartupTemplate.extended) | Two-way: `try`, `send`, `do` |
| [Video.finalize](/business/nouns/video/finalize) | Finalize lifts a Video’s draft mark once every claim it makes reads from a live record, so its cuts can be published. | [Video Producer](/agents/marketing/video-producer) | [`Video.finalized`](/business/events/Video.finalized) | None. |
| [Visitor.forget](/business/nouns/visitor/forget) | Forget masks a person’s captured data across every Event and Recording and suppresses further capture, keeping the records. | [Privacy Officer](/agents/legal/privacy-officer) | [`Visitor.forgotten`](/business/events/Visitor.forgotten) | One-way (customer): `send`, `do` |
| [Order.fulfill](/business/nouns/order/fulfill) | Fulfill grants what an Order bought: Entitlements for software and data, a shipment for goods. | [Delivery Manager](/agents/operations/delivery-manager) | [`Order.fulfilled`](/business/events/Order.fulfilled) | Two-way: `try`, `send`, `do` |
| [File.generate](/business/nouns/file/generate) | Generate makes an image, video, speech or music File from a prompt and reference Files, and records how it was made. | [Content Lead](/agents/marketing/content-lead) | [`File.generated`](/business/events/File.generated) | Two-way: `try`, `send`, `do` |
| [Instrument.grant](/business/nouns/instrument/grant) | Grant gives a Holder an option from the pool, with its strike price, vesting schedule and cliff. | [Legal Lead](/agents/legal/legal-lead) | [`Instrument.granted`](/business/events/Instrument.granted) | One-way: `send`, `do` |
| [Offer.grant](/business/nouns/offer/grant) | Grant adds an Entitlement to an Offer: a Verb its Customers may call, optionally bounded by a Limit. | [Product Lead](/agents/product/product-lead) | [`Offer.granted`](/business/events/Offer.granted) | Two-way: `try`, `send`, `do` |
| [Human.hold](/business/nouns/human/hold) | Hold sets aside part of a supplying Human’s earned balance against an open Dispute or an Order inside its clearance period. | [Billing Specialist](/agents/finance/billing-specialist) | [`Human.held`](/business/events/Human.held) | Two-way: `try`, `send`, `do` |
| [Visitor.identify](/business/nouns/visitor/identify) | Identify joins a Visitor to the Contact it turns out to be, so earlier Visits count toward that person. | [Analyst](/agents/marketing/analyst) | [`Visitor.identified`](/business/events/Visitor.identified) | Two-way: `try`, `send`, `do` |
| [Startup.import](/business/nouns/startup/import) | Import builds a new Startup from an existing business’s definition: its Offers, Pages, Nouns and Processes. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Startup.imported`](/business/events/Startup.imported) | None. |
| [Company.incorporate](/business/nouns/company/incorporate) | Incorporate forms a Company in a chosen jurisdiction, with its founders, shares and registered agent on record. | [Founder](/agents/founding/founder) | [`Company.incorporated`](/business/events/Company.incorporated) | One-way (money): `send`, `do` |
| [Human.invite](/business/nouns/human/invite) | Invite asks a person to join a Startup in a named Role, sharing that Role’s work with its Agent. | [Recruiter](/agents/people/recruiter) | [`Human.invited`](/business/events/Human.invited) | None. |
| [Share.issue](/business/nouns/share/issue) | Issue records new Shares of one class to a Holder under a board-approved Agreement, with the certificate or book entry. | [Legal Lead](/agents/legal/legal-lead) | [`Share.issued`](/business/events/Share.issued) | One-way (money): `send`, `do` |
| [CreditGrant.issue](/business/nouns/credit-grant/issue) | Issue gives a Customer a paid or promotional Credit Grant that its metered calls draw down before anything is invoiced. | [Billing Specialist](/agents/finance/billing-specialist) | [`CreditGrant.issued`](/business/events/CreditGrant.issued) | Two-way: `try`, `send`, `do` |
| [Card.issue](/business/nouns/card/issue) | Issue creates a Card under a Mandate once the Mandate check passes, with explicit limits on every interval. | [Treasurer](/agents/finance/treasurer) | [`Card.issued`](/business/events/Card.issued) | Two-way: `try`, `send`, `do` |
| [APIKey.issue](/business/nouns/api-key/issue) | Issue creates an API Key for one Customer and returns its secret once; afterwards only the prefix shows. | [Agent](/business/nouns/agent) | [`APIKey.issued`](/business/events/APIKey.issued) | Two-way: `try`, `send`, `do` |
| [Startup.launch](/business/nouns/startup/launch) | Launch puts a Startup live on its domain, serving its Offers to Customers. | [Founder](/agents/founding/founder) | [`Startup.launched`](/business/events/Startup.launched) | None. |
| [Period.lock](/business/nouns/period/lock) | Lock seals a closed Period, so any later correction posts to the next open Period. | [Finance Lead](/agents/finance/finance-lead) | [`Period.locked`](/business/events/Period.locked) | One-way (money): `send`, `do` |
| [Deal.lose](/business/nouns/deal/lose) | Lose closes a Deal as lost and records the reason the buyer gave. | [Sales Lead](/agents/sales/sales-lead) | [`Deal.lost`](/business/events/Deal.lost) | None. |
| [Keyword.measure](/business/nouns/keyword/measure) | Measure records a Keyword’s monthly search volume, difficulty, cost per click and trend in one locale. | [Analyst](/agents/marketing/analyst) | [`Keyword.measured`](/business/events/Keyword.measured) | Two-way: `try`, `send`, `do` |
| [Change.merge](/business/nouns/change/merge) | Merge applies a Change to live data with a three-way, field-level merge against its base Version. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Change.merged`](/business/events/Change.merged) | None. |
| [Visitor.merge](/business/nouns/visitor/merge) | Merge joins two Visitor ids that belong to one person and keeps both as aliases. | [Analyst](/agents/marketing/analyst) | [`Visitor.merged`](/business/events/Visitor.merged) | Two-way: `try`, `send`, `do` |
| [Contact.merge](/business/nouns/contact/merge) | Merge joins a duplicate Contact into another, keeping every link, Message and Event on the one that remains. | [Sales Lead](/agents/sales/sales-lead) | [`Contact.merged`](/business/events/Contact.merged) | One-way: `send`, `do` |
| [Organization.merge](/business/nouns/organization/merge) | Merge joins a duplicate Organization into another, keeping every Contact, Deal and Event on the one that remains. | [Sales Lead](/agents/sales/sales-lead) | [`Organization.merged`](/business/events/Organization.merged) | One-way: `send`, `do` |
| [Agent.mint](/business/nouns/agent/mint) | Mint creates an Agent in a Customer’s Tenant from an Agent Product the Customer bought. | [People Lead](/agents/people/people-lead) | [`Agent.minted`](/business/events/Agent.minted) | None. |
| [Lead.nurture](/business/nouns/lead/nurture) | Nurture takes a Lead that is not ready to buy off its owner’s queue and onto a Sequence, until it raises a hand again. | [Sales Lead](/agents/sales/sales-lead) | [`Lead.nurtured`](/business/events/Lead.nurtured) | Two-way: `try`, `send`, `do` |
| [Human.onboard](/business/nouns/human/onboard) | Onboard admits a recruited Human to supply work once their identity, Credentials and payout details verify. | [Supply Manager](/agents/operations/supply-manager) | [`Human.onboarded`](/business/events/Human.onboarded) | None. |
| [Renewal.open](/business/nouns/renewal/open) | Open starts the Renewal for a term Subscription before its term ends, with a usage review and any notice the legal floor requires. | [Success Manager](/agents/customer/success-manager) | [`Renewal.opened`](/business/events/Renewal.opened) | Two-way: `try`, `send`, `do` |
| [Incident.open](/business/nouns/incident/open) | Open starts an Incident from a failing Monitor, an error spike or a Metric past its threshold, and pages the on-call Worker. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Incident.opened`](/business/events/Incident.opened) | Two-way: `try`, `send`, `do` |
| [Startup.pause](/business/nouns/startup/pause) | Pause moves a Startup to Dormant: its scheduled Workflows stop, and its Sites and records stay in place. | [Founder](/agents/founding/founder) | [`Startup.paused`](/business/events/Startup.paused) | None. |
| [Process.pause](/business/nouns/process/pause) | Pause stops a Process from starting new Actions; Actions already in progress finish. | [Founder](/agents/founding/founder) | [`Process.paused`](/business/events/Process.paused) | Two-way: `try`, `send`, `do` |
| [Enrollment.pause](/business/nouns/enrollment/pause) | Pause stops one Contact’s run through a Sequence at its current step, without ending it. | [Prospector](/agents/sales/prospector) | [`Enrollment.paused`](/business/events/Enrollment.paused) | Two-way: `try`, `send`, `do` |
| [Agent.pause](/business/nouns/agent/pause) | Pause stops one Agent, every Agent on a Team, or every customer-facing Agent from starting new Actions in a Startup. | [Founder](/agents/founding/founder) | [`Agent.paused`](/business/events/Agent.paused) | Two-way: `try`, `send`, `do` |
| [Commission.pay](/business/nouns/commission/pay) | Pay transfers a Commission’s earned, unpaid amount to the Partner’s connected account through Stripe. | [Billing Specialist](/agents/finance/billing-specialist) | [`Commission.paid`](/business/events/Commission.paid) | One-way (money): `send`, `do` |
| [Bill.pay](/business/nouns/bill/pay) | Pay sends an approved Bill’s amount to its Organization on the due date and reconciles the payment to Entries. | [Treasurer](/agents/finance/treasurer) | [`Bill.paid`](/business/events/Bill.paid) | One-way (money): `send`, `do` |
| [PayRun.pay](/business/nouns/pay-run/pay) | Pay funds an approved Pay Run: net pay to each employee’s bank on the pay date, taxes and deductions to the payroll provider. | [Treasurer](/agents/finance/treasurer) | [`PayRun.paid`](/business/events/PayRun.paid) | One-way (money): `send`, `do` |
| [Account.payout](/business/nouns/account/payout) | Payout sends available cash from the payments balance to the owner’s bank and lists every Transaction the payout carries. | [Treasurer](/agents/finance/treasurer) | [`Account.paidOut`](/business/events/Account.paidOut) | One-way (money): `send`, `do` |
| [Entry.post](/business/nouns/entry/post) | Post records a manual Entry pair that no Verb caused, once a second Role approves it. | [Finance Lead](/agents/finance/finance-lead) | [`Entry.posted`](/business/events/Entry.posted) | One-way: `send`, `do` |
| [PayRun.prepare](/business/nouns/pay-run/prepare) | Prepare computes one pay period’s gross pay, withholding, deductions and employer taxes for each employee, and holds the Pay Run for approval. | [Payroll Specialist](/agents/people/payroll-specialist) | [`PayRun.prepared`](/business/events/PayRun.prepared) | Two-way: `try`, `send`, `do` |
| [Template.promote](/business/nouns/template/promote) | Promote moves one Startup’s refinement into a Template, so every Startup that extends the Template inherits it. | [Agent](/business/nouns/agent) | [`Template.promoted`](/business/events/Template.promoted) | None. |
| [StartupTemplate.promote](/business/nouns/startup-template/promote) | Promote moves one Startup’s refinement into a Startup Template, so every Startup that extends it inherits the refinement. | [Product Lead](/agents/product/product-lead) | [`StartupTemplate.promoted`](/business/events/StartupTemplate.promoted) | Two-way: `try`, `send`, `do` |
| [Deal.propose](/business/nouns/deal/propose) | Propose sends a Deal’s buyer a Quote they accept to place an Order. | [Sales Lead](/agents/sales/sales-lead) | [`Deal.proposed`](/business/events/Deal.proposed) | One-way (money, customer): `send`, `do` |
| [Tenant.provision](/business/nouns/tenant/provision) | Provision creates a Customer’s Tenant in a Startup’s App, holding that Customer’s records apart from every other. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Tenant.provisioned`](/business/events/Tenant.provisioned) | None. |
| [MemberDirectory.provision](/business/nouns/member-directory/provision) | Provision starts a Customer’s Member Directory pushing people and groups into its Tenant, with groups mapped to Roles. | [Security Engineer](/agents/engineering/security-engineer) | [`MemberDirectory.provisioned`](/business/events/MemberDirectory.provisioned) | Two-way: `try`, `send`, `do` |
| [Offer.publish](/business/nouns/offer/publish) | Publish makes an Offer available for parties to accept. | [Product Lead](/agents/product/product-lead) | [`Offer.published`](/business/events/Offer.published) | None. |
| [App.publish](/business/nouns/app/publish) | Publish releases an App to its Customers, so each Tenant runs its newest build. | [Engineering Lead](/agents/engineering/engineering-lead) | [`App.published`](/business/events/App.published) | None. |
| [Site.publish](/business/nouns/site/publish) | Publish puts a Site’s current Pages live on its Domains, under its Brand. | [Designer](/agents/product/designer) | [`Site.published`](/business/events/Site.published) | None. |
| [Content.publish](/business/nouns/content/publish) | Publish puts a Content draft live on its Site and every Interface, once it passes the Evals for its kind. | [Content Lead](/agents/marketing/content-lead) | [`Content.published`](/business/events/Content.published) | One-way (brand): `send`, `do` |
| [Post.publish](/business/nouns/post/publish) | Publish sends a Post out through its Handle once every claim it states resolves to a live record. | [Content Lead](/agents/marketing/content-lead) | [`Post.published`](/business/events/Post.published) | One-way (brand): `send`, `do` |
| [Review.publish](/business/nouns/review/publish) | Publish shows a Review on the Startup’s Pages with its rating counted, whatever the rating. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Review.published`](/business/events/Review.published) | Two-way: `try`, `send`, `do` |
| [Idea.pursue](/business/nouns/idea/pursue) | Pursue starts a Startup on an Idea as one variant of the Experiment that tests the Idea. | [Founder](/agents/founding/founder) | [`Idea.pursued`](/business/events/Idea.pursued) | None. |
| [Lead.qualify](/business/nouns/lead/qualify) | Qualify confirms a Lead matches an Offer’s ICP and opens a Deal for it. | [Sales Engineer](/agents/sales/sales-engineer) | [`Lead.qualified`](/business/events/Lead.qualified) | None. |
| [Metric.query](/business/nouns/metric/query) | Query reads Metrics or Events as a trend, funnel, retention curve, path or lifecycle, broken down by any property. | [Analyst](/agents/marketing/analyst) | [`Metric.queried`](/business/events/Metric.queried) | Two-way: `try`, `send`, `do` |
| [Collection.query](/business/nouns/collection/query) | Query reads any Nouns the caller’s Permissions allow, by SQL or a Relationship path, across every System in one call. | [Analyst](/agents/marketing/analyst) | [`Collection.queried`](/business/events/Collection.queried) | Two-way: `try`, `send`, `do` |
| [Limit.raise](/business/nouns/limit/raise) | Raise lifts a Limit after an Approval allows it, and the Action that waited on it proceeds. | [Founder](/agents/founding/founder) | [`Limit.raised`](/business/events/Limit.raised) | One-way (money): `send`, `do` |
| [Problem.rank](/business/nouns/problem/rank) | Rank orders Problems by revenue at stake, Evidence grade and effort, so the next Project addresses the top one. | [Product Lead](/agents/product/product-lead) | [`Problem.ranked`](/business/events/Problem.ranked) | Two-way: `try`, `send`, `do` |
| [Startup.read](/business/nouns/startup/read) | Read compiles a Startup’s records into one scoped room, such as a diligence room, with every number citing its Proof. | [Agent](/business/nouns/agent) | [`Startup.read`](/business/events/Startup.read) | Two-way: `try`, `send`, `do` |
| [Period.recognize](/business/nouns/period/recognize) | Recognize moves the revenue a Period earned out of deferred revenue, by the Startup’s revenue-recognition Policy. | [Finance Lead](/agents/finance/finance-lead) | [`Period.recognized`](/business/events/Period.recognized) | Two-way: `try`, `send`, `do` |
| [Transaction.reconcile](/business/nouns/transaction/reconcile) | Reconcile matches a Transaction on a payment rail to the ledger Entries it settles. | [Finance Lead](/agents/finance/finance-lead) | [`Transaction.reconciled`](/business/events/Transaction.reconciled) | Two-way: `try`, `send`, `do` |
| [Human.recruit](/business/nouns/human/recruit) | Recruit invites a person to supply credentialed work to a Startup through its supply App. | [Supply Manager](/agents/operations/supply-manager) | [`Human.recruited`](/business/events/Human.recruited) | None. |
| [Action.redirect](/business/nouns/action/redirect) | Redirect changes a pending Action’s inputs or target inside its delay window, before it runs. | [Operations Lead](/agents/operations/operations-lead) | [`Action.redirected`](/business/events/Action.redirected) | None. |
| [Integration.refresh](/business/nouns/integration/refresh) | Refresh renews an Integration’s outside token before it expires; a refused refresh moves it to `needsReauth`. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Integration.refreshed`](/business/events/Integration.refreshed) | Two-way: `try`, `send`, `do` |
| [Order.refund](/business/nouns/order/refund) | Refund returns all or part of an Order’s payment to the Customer and posts the reversing Entries. | [Billing Specialist](/agents/finance/billing-specialist) | [`Order.refunded`](/business/events/Order.refunded) | One-way (money, customer): `send`, `do` |
| [Invoice.refund](/business/nouns/invoice/refund) | Refund returns all or part of a paid Invoice to the Customer’s original payment method and posts the reversing Entries. | [Billing Specialist](/agents/finance/billing-specialist) | [`Invoice.refunded`](/business/events/Invoice.refunded) | One-way (money, customer): `send`, `do` |
| [Approval.refuse](/business/nouns/approval/refuse) | Refuse declines an Approval, which sets the Action it holds to `refused` with the reason given. | [Founder](/agents/founding/founder) | [`Approval.refused`](/business/events/Approval.refused) | None. |
| [Domain.register](/business/nouns/domain/register) | Register buys a hostname for a Startup and points it at the Startup’s address. | [Integration Engineer](/agents/engineering/integration-engineer) | [`Domain.registered`](/business/events/Domain.registered) | One-way (money): `send`, `do` |
| [Company.register](/business/nouns/company/register) | Register applies for a sales tax, VAT or GST registration in one jurisdiction and records the grant as a Credential. | [Finance Lead](/agents/finance/finance-lead) | [`Company.registered`](/business/events/Company.registered) | One-way: `send`, `do` |
| [Thing.relate](/business/nouns/thing/relate) | Relate links two Things by a Relationship their Nouns declare, readable from both ends at once. | [Data Engineer](/agents/engineering/data-engineer) | [`Thing.related`](/business/events/Thing.related) | Two-way: `try`, `send`, `do` |
| [Domain.release](/business/nouns/domain/release) | Release lets a Domain’s registration or claim end, keeping its record, history and aliases. | [Legal Lead](/agents/legal/legal-lead) | [`Domain.released`](/business/events/Domain.released) | One-way (customer, brand): `send`, `do` |
| [Human.release](/business/nouns/human/release) | Release frees a held amount for payout once its Dispute closes or its clearance period ends. | [Billing Specialist](/agents/finance/billing-specialist) | [`Human.released`](/business/events/Human.released) | Two-way: `try`, `send`, `do` |
| [Human.remit](/business/nouns/human/remit) | Remit pays a supplying Human’s earned balance to their bank account through the Startup’s payment account. | [Supply Manager](/agents/operations/supply-manager) | [`Human.remitted`](/business/events/Human.remitted) | One-way (money): `send`, `do` |
| [DNSRecord.remove](/business/nouns/dns-record/remove) | Remove stops a Startup-owned DNS Record from answering; its history stays and a revert restores it. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`DNSRecord.removed`](/business/events/DNSRecord.removed) | Two-way: `try`, `send`, `do` |
| [Review.remove](/business/nouns/review/remove) | Remove takes a Review down for good when its author or its venue asks; the record is kept. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Review.removed`](/business/events/Review.removed) | Two-way: `try`, `send`, `do` |
| [Document.render](/business/nouns/document/render) | Render produces a file from a Document in the format the reader asks for. | [Agent](/business/nouns/agent) | [`Document.rendered`](/business/events/Document.rendered) | None. |
| [Subscription.renew](/business/nouns/subscription/renew) | Renew starts a Subscription’s next period and bills it at the Offer Version the Customer accepted. | [Billing Specialist](/agents/finance/billing-specialist) | [`Subscription.renewed`](/business/events/Subscription.renewed) | Two-way: `try`, `send`, `do` |
| [Domain.renew](/business/nouns/domain/renew) | Renew extends a Domain’s registration by whole years at its renewal price, paid by its owner of record. | [Treasurer](/agents/finance/treasurer) | [`Domain.renewed`](/business/events/Domain.renewed) | One-way (money): `send`, `do` |
| [Issue.reopen](/business/nouns/issue/reopen) | Reopen returns a resolved Issue to its owning Role when the fix does not hold. | [Product Lead](/agents/product/product-lead) | [`Issue.reopened`](/business/events/Issue.reopened) | None. |
| [Conversation.reopen](/business/nouns/conversation/reopen) | Reopen reverses a Conversation’s resolution when a reversal signal arrives within 7 days, and grades the resolution a failure. | [Customer Lead](/agents/customer/customer-lead) | [`Conversation.reopened`](/business/events/Conversation.reopened) | Two-way: `try`, `send`, `do` |
| [Watch.replay](/business/nouns/watch/replay) | Replay redelivers a Watch’s Events from a chosen point, signed as they were the first time. | [Quality Lead](/agents/quality/quality-lead) | [`Watch.replayed`](/business/events/Watch.replayed) | None. |
| Fund.report | Report sends each investor a quarterly capital account Statement and the Fund’s marks, computed from its Entries. | [Treasurer](/agents/finance/treasurer) | `Fund.reported` | One-way (brand): `send`, `do` |
| [Tenant.requestSetup](/business/nouns/tenant/request-setup) | RequestSetup sends a Customer’s admin a link to connect their own sign-in, directory or verified domain to the Tenant. | [Security Engineer](/agents/engineering/security-engineer) | [`Tenant.setupRequested`](/business/events/Tenant.setupRequested) | Two-way: `try`, `send`, `do` |
| [Issue.resolve](/business/nouns/issue/resolve) | Resolve closes an Issue with its fix recorded and tells every Customer who reported it. | [Product Lead](/agents/product/product-lead) | [`Issue.resolved`](/business/events/Issue.resolved) | None. |
| [Incident.resolve](/business/nouns/incident/resolve) | Resolve closes an Incident once its Monitors pass, posts the resolution to the status page and opens the review Task. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Incident.resolved`](/business/events/Incident.resolved) | Two-way: `try`, `send`, `do` |
| [Thing.resolve](/business/nouns/thing/resolve) | Resolve finds the one Thing of a Noun that matches given properties, or creates it, and says which it did. | [Data Engineer](/agents/engineering/data-engineer) | [`Thing.resolved`](/business/events/Thing.resolved) | Two-way: `try`, `send`, `do` |
| [Mailbox.rest](/business/nouns/mailbox/rest) | Rest pauses a Mailbox’s sending when a brake fires and resumes it when the reading clears. | [Customer Lead](/agents/customer/customer-lead) | [`Mailbox.rested`](/business/events/Mailbox.rested) | Two-way: `try`, `send`, `do` |
| [Startup.resume](/business/nouns/startup/resume) | Resume returns a Dormant Startup to the Lifecycle state it held when it paused. | [Founder](/agents/founding/founder) | [`Startup.resumed`](/business/events/Startup.resumed) | None. |
| [Enrollment.resume](/business/nouns/enrollment/resume) | Resume restarts a paused run at the step it stopped on and sets when that step fires. | [Prospector](/agents/sales/prospector) | [`Enrollment.resumed`](/business/events/Enrollment.resumed) | Two-way: `try`, `send`, `do` |
| [Agent.resume](/business/nouns/agent/resume) | Resume restarts a paused Agent in every seat it holds, with its Memory, Mandates and Limits unchanged. | [Founder](/agents/founding/founder) | [`Agent.resumed`](/business/events/Agent.resumed) | Two-way: `try`, `send`, `do` |
| [Noun.retire](/business/nouns/noun/retire) | Retire removes a published Noun from new Versions; its records, its history and every pinned Version keep serving. | [Product Lead](/agents/product/product-lead) | [`Noun.retired`](/business/events/Noun.retired) | One-way (customer): `send`, `do` |
| [Verb.retire](/business/nouns/verb/retire) | Retire removes a published Verb from new Versions; callers pinned to earlier Versions keep calling it. | [Product Lead](/agents/product/product-lead) | [`Verb.retired`](/business/events/Verb.retired) | One-way (customer): `send`, `do` |
| [Mailbox.retire](/business/nouns/mailbox/retire) | Retire stops a Mailbox for good and keeps its address, Messages and sending history. | [Customer Lead](/agents/customer/customer-lead) | [`Mailbox.retired`](/business/events/Mailbox.retired) | One-way: `send`, `do` |
| [Voice.retire](/business/nouns/voice/retire) | Retire deletes a Voice’s trained copy at the upstream and refuses new speech in it, keeping the record and every File made. | [Privacy Officer](/agents/legal/privacy-officer) | [`Voice.retired`](/business/events/Voice.retired) | One-way (brand): `send`, `do` |
| [Agent.retire](/business/nouns/agent/retire) | Retire removes an Agent from every seat in a Startup for good and keeps its Actions, Memory and Mailbox history on the record. | [People Lead](/agents/people/people-lead) | [`Agent.retired`](/business/events/Agent.retired) | One-way (customer): `send`, `do` |
| [Action.retry](/business/nouns/action/retry) | Retry runs a failed Action again as a new Action linked to the one that failed. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Action.retried`](/business/events/Action.retried) | None. |
| [Change.revert](/business/nouns/change/revert) | Revert undoes a merged Change with a new Change and a superseding Decision, deleting nothing. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Change.reverted`](/business/events/Change.reverted) | None. |
| [Change.review](/business/nouns/change/review) | Review runs every Evaluator on a Change’s preview and records each verdict on the Change. | [Quality Lead](/agents/quality/quality-lead) | [`Change.reviewed`](/business/events/Change.reviewed) | None. |
| [Role.review](/business/nouns/role/review) | Review checks one Role against its contract for a period and records a Role Review. | [Founder](/agents/founding/founder) | [`Role.reviewed`](/business/events/Role.reviewed) | Two-way: `try`, `send`, `do` |
| [Mandate.revoke](/business/nouns/mandate/revoke) | Revoke ends a Mandate at once, so new Actions under it are refused and running ones finish. | [Security Engineer](/agents/engineering/security-engineer) | [`Mandate.revoked`](/business/events/Mandate.revoked) | None. |
| [Secret.revoke](/business/nouns/secret/revoke) | Revoke ends a Secret so no call fills it again; the record and its history stay. | [Security Engineer](/agents/engineering/security-engineer) | [`Secret.revoked`](/business/events/Secret.revoked) | One-way (customer): `send`, `do` |
| [APIKey.revoke](/business/nouns/api-key/revoke) | Revoke stops an API Key at once: its next call fails with 401, and the record and its history stay. | [Agent](/business/nouns/agent) | [`APIKey.revoked`](/business/events/APIKey.revoked) | Two-way: `try`, `send`, `do` |
| [APIKey.roll](/business/nouns/api-key/roll) | Roll issues a replacement API Key with the same scope and keeps the old one working until a set time. | [Agent](/business/nouns/agent) | [`APIKey.rolled`](/business/events/APIKey.rolled) | Two-way: `try`, `send`, `do` |
| [Secret.rotate](/business/nouns/secret/rotate) | Rotate replaces a Secret’s value, and calls already running finish on the old one. | [Security Engineer](/agents/engineering/security-engineer) | [`Secret.rotated`](/business/events/Secret.rotated) | Two-way: `try`, `send`, `do` |
| [Issue.schedule](/business/nouns/issue/schedule) | Schedule commits an Issue to a week of work and records each scope change after the week starts. | [Product Lead](/agents/product/product-lead) | [`Issue.scheduled`](/business/events/Issue.scheduled) | Two-way: `try`, `send`, `do` |
| [Dashboard.schedule](/business/nouns/dashboard/schedule) | Schedule sends a Dashboard on a cadence to a Mailbox, a Channel or an Agent’s context, rendered for each. | [Analyst](/agents/marketing/analyst) | [`Dashboard.scheduled`](/business/events/Dashboard.scheduled) | Two-way: `try`, `send`, `do` |
| [Message.schedule](/business/nouns/message/schedule) | Schedule holds a Message until a set time and sends it then, unless it is canceled first. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Message.scheduled`](/business/events/Message.scheduled) | Two-way: `try`, `send`, `do` |
| [Post.schedule](/business/nouns/post/schedule) | Schedule puts a drafted Post on its Handle’s calendar for a set time. | [Content Lead](/agents/marketing/content-lead) | [`Post.scheduled`](/business/events/Post.scheduled) | Two-way: `try`, `send`, `do` |
| [Candidate.screen](/business/nouns/candidate/screen) | Screen asks a Candidate only what the Opening’s Hypothesis still lacks, in writing, and grades each answer as Evidence. | [Recruiter](/agents/people/recruiter) | [`Candidate.screened`](/business/events/Candidate.screened) | None. |
| [Party.screen](/business/nouns/party/screen) | Screen checks a Party against official registers and restricted-party lists and keeps the result as a Screening. | [Risk Analyst](/agents/operations/risk-analyst) | [`Party.screened`](/business/events/Party.screened) | Two-way: `try`, `send`, `do` |
| [Order.screen](/business/nouns/order/screen) | Screen scores an Order’s payment before it is charged and allows, authenticates, holds or blocks it by the Startup’s risk Policy. | [Risk Analyst](/agents/operations/risk-analyst) | [`Order.screened`](/business/events/Order.screened) | Two-way: `try`, `send`, `do` |
| [Domain.search](/business/nouns/domain/search) | Search lists candidate names with availability, first-year price, renewal price and the rules of each extension. | [Engineering Lead](/agents/engineering/engineering-lead) | [`Domain.searched`](/business/events/Domain.searched) | Two-way: `try`, `send`, `do` |
| [Quote.send](/business/nouns/quote/send) | Send presents a drafted Quote to its buyer and freezes its lines, total and payment terms. | [Sales Engineer](/agents/sales/sales-engineer) | [`Quote.sent`](/business/events/Quote.sent) | One-way (customer): `send`, `do` |
| [DNSRecord.set](/business/nouns/dns-record/set) | Set adds or changes a Startup-owned DNS Record through a Change, previewed against what the Domain answers today. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`DNSRecord.set`](/business/events/DNSRecord.set) | Two-way: `try`, `send`, `do` |
| [Entry.settle](/business/nouns/entry/settle) | Settle nets a Period’s intercompany Entries between two Companies into one transfer through Stripe and reconciles both sides. | [Treasurer](/agents/finance/treasurer) | [`Entry.settled`](/business/events/Entry.settled) | One-way (money): `send`, `do` |
| [Thing.share](/business/nouns/thing/share) | Share grants a person, a Role or a guest Verbs on one record and everything it contains. | [Security Engineer](/agents/engineering/security-engineer) | [`Thing.shared`](/business/events/Thing.shared) | Two-way: `try`, `send`, `do` |
| [Mandate.spend](/business/nouns/mandate/spend) | Spend pays an outside party for a Startup with a single-use card, within a Mandate and its Limit. | [Treasurer](/agents/finance/treasurer) | [`Mandate.spent`](/business/events/Mandate.spent) | One-way (money): `send`, `do` |
| [Role.staff](/business/nouns/role/staff) | Staff fills a Role with a Worker, human or agent, who then performs the Role’s Verbs under its Permissions. | [People Lead](/agents/people/people-lead) | [`Role.staffed`](/business/events/Role.staffed) | None. |
| [Experiment.start](/business/nouns/experiment/start) | Start opens an Experiment, splits traffic across its variants, and begins measuring its primary and guardrail Metrics. | [Strategist](/agents/founding/strategist) | [`Experiment.started`](/business/events/Experiment.started) | None. |
| [Order.start](/business/nouns/order/start) | Start checks a Service Order’s inputs against its brief, then moves it from intake to working and starts its deadline. | [Delivery Manager](/agents/operations/delivery-manager) | [`Order.started`](/business/events/Order.started) | Two-way: `try`, `send`, `do` |
| [Secret.store](/business/nouns/secret/store) | Store writes a Secret’s value for one environment; the value is never returned by any Interface. | [Security Engineer](/agents/engineering/security-engineer) | [`Secret.stored`](/business/events/Secret.stored) | Two-way: `try`, `send`, `do` |
| [Company.submit](/business/nouns/company/submit) | Submit files one tax return for a jurisdiction and its Periods, pays the tax due, and keeps the return as a Document. | [Finance Lead](/agents/finance/finance-lead) | [`Company.submitted`](/business/events/Company.submitted) | One-way (money): `send`, `do` |
| [Decision.supersede](/business/nouns/decision/supersede) | Supersede replaces a Decision with a newer one, keeping both on record with the reason for the change. | [Strategist](/agents/founding/strategist) | [`Decision.superseded`](/business/events/Decision.superseded) | None. |
| [Quote.supersede](/business/nouns/quote/supersede) | Supersede replaces a sent Quote with a newer one on the same Deal; only the newest Quote can be accepted. | [Sales Engineer](/agents/sales/sales-engineer) | [`Quote.superseded`](/business/events/Quote.superseded) | Two-way: `try`, `send`, `do` |
| [Contact.suppress](/business/nouns/contact/suppress) | Suppress records a Suppression for a Contact’s address, which every Startup honors forever. | [Prospector](/agents/sales/prospector) | [`Contact.suppressed`](/business/events/Contact.suppressed) | None. |
| [Human.suspend](/business/nouns/human/suspend) | Suspend stops a supplying Human from taking new Tasks while a Credential lapses or a dispute is open. | [Supply Manager](/agents/operations/supply-manager) | [`Human.suspended`](/business/events/Human.suspended) | None. |
| [Account.sweep](/business/nouns/account/sweep) | Sweep moves cash between two cash Accounts of the same owner, once or on a standing rule, within the Treasurer’s Limit. | [Treasurer](/agents/finance/treasurer) | [`Account.swept`](/business/events/Account.swept) | Two-way: `try`, `send`, `do` |
| [Integration.sync](/business/nouns/integration/sync) | Sync exchanges records between a System and its connector, and the declared leader wins every conflict. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Integration.synced`](/business/events/Integration.synced) | None. |
| [Hypothesis.test](/business/nouns/hypothesis/test) | Test binds a Hypothesis to the Experiment that decides it and moves the Hypothesis to testing. | [Strategist](/agents/founding/strategist) | [`Hypothesis.tested`](/business/events/Hypothesis.tested) | None. |
| [Domain.transfer](/business/nouns/domain/transfer) | Transfer moves a Domain’s registration to another holder or registrar, with its records intact. | [Legal Lead](/agents/legal/legal-lead) | [`Domain.transferred`](/business/events/Domain.transferred) | One-way (customer): `send`, `do` |
| [Share.transfer](/business/nouns/share/transfer) | Transfer moves Shares from one Holder to another under a signed Agreement, within the Company’s transfer restrictions. | [Legal Lead](/agents/legal/legal-lead) | [`Share.transferred`](/business/events/Share.transferred) | One-way: `send`, `do` |
| [Risk.treat](/business/nouns/risk/treat) | Treat links a Risk to the Controls that lower it and records the score it should reach. | [Risk Analyst](/agents/operations/risk-analyst) | [`Risk.treated`](/business/events/Risk.treated) | Two-way: `try`, `send`, `do` |
| [Issue.triage](/business/nouns/issue/triage) | Triage sets an Issue’s severity and owning Role from its content and the Customer it affects. | [Product Lead](/agents/product/product-lead) | [`Issue.triaged`](/business/events/Issue.triaged) | None. |
| [Thing.unrelate](/business/nouns/thing/unrelate) | Unrelate ends a Relationship between two Things; the link stays in history and reads back at any earlier moment. | [Data Engineer](/agents/engineering/data-engineer) | [`Thing.unrelated`](/business/events/Thing.unrelated) | Two-way: `try`, `send`, `do` |
| [Template.upgrade](/business/nouns/template/upgrade) | Upgrade moves a Startup to a newer Version of a Template it extends, through a Change it can review. | [Agent](/business/nouns/agent) | [`Template.upgraded`](/business/events/Template.upgraded) | None. |
| [StartupTemplate.upgrade](/business/nouns/startup-template/upgrade) | Upgrade moves a Startup to a newer Version of a Startup Template it extends, through a Change it can review. | [Engineering Lead](/agents/engineering/engineering-lead) | [`StartupTemplate.upgraded`](/business/events/StartupTemplate.upgraded) | Two-way: `try`, `send`, `do` |
| [Credential.verify](/business/nouns/credential/verify) | Verify confirms a Credential with the authority that issued it and records when it expires. | [Supply Manager](/agents/operations/supply-manager) | [`Credential.verified`](/business/events/Credential.verified) | None. |
| [Domain.verify](/business/nouns/domain/verify) | Verify checks a Domain’s DNS, ownership and certificate again and records each result, with the fix for any failure. | [Reliability Engineer](/agents/engineering/reliability-engineer) | [`Domain.verified`](/business/events/Domain.verified) | Two-way: `try`, `send`, `do` |
| [Invoice.void](/business/nouns/invoice/void) | Void cancels an unpaid Invoice, keeps it on record, and posts the reversing Entries. | [Billing Specialist](/agents/finance/billing-specialist) | [`Invoice.voided`](/business/events/Invoice.voided) | One-way (money, customer): `send`, `do` |
| [CreditGrant.void](/business/nouns/credit-grant/void) | Void ends a promotional Credit Grant early and forfeits its remaining balance, keeping the record. | [Billing Specialist](/agents/finance/billing-specialist) | [`CreditGrant.voided`](/business/events/CreditGrant.voided) | One-way (customer): `send`, `do` |
| [PayRun.void](/business/nouns/pay-run/void) | Void sets aside a prepared Pay Run that is wrong, so a corrected one can be prepared; the record stays. | [Payroll Specialist](/agents/people/payroll-specialist) | [`PayRun.voided`](/business/events/PayRun.voided) | Two-way: `try`, `send`, `do` |
| [Mailbox.warm](/business/nouns/mailbox/warm) | Warm ramps a new Mailbox from a few sends a day to its cap over two to four weeks. | [Customer Lead](/agents/customer/customer-lead) | [`Mailbox.warmed`](/business/events/Mailbox.warmed) | Two-way: `try`, `send`, `do` |
| [Metric.watch](/business/nouns/metric/watch) | Watch alerts the owner of a Metric when it crosses a threshold, by a Task or a Message. | [Analyst](/agents/marketing/analyst) | [`Metric.watched`](/business/events/Metric.watched) | Two-way: `try`, `send`, `do` |
| [Deal.win](/business/nouns/deal/win) | Win closes a Deal as won, which places its Order and makes the buyer a Customer. | [Sales Lead](/agents/sales/sales-lead) | [`Deal.won`](/business/events/Deal.won) | None. |
| [Offer.withdraw](/business/nouns/offer/withdraw) | Withdraw closes a published Offer to new Customers and leaves every existing Order and Subscription in force. | [Product Lead](/agents/product/product-lead) | [`Offer.withdrawn`](/business/events/Offer.withdrawn) | None. |
| [Post.withdraw](/business/nouns/post/withdraw) | Withdraw takes a published Post down from its venue and keeps the record, its reach and its replies. | [Content Lead](/agents/marketing/content-lead) | [`Post.withdrawn`](/business/events/Post.withdrawn) | One-way: `send`, `do` |
| [Review.withhold](/business/nouns/review/withhold) | Withhold keeps a Review off display for one of five reasons, none of them its rating or its tone. | [Marketing Lead](/agents/marketing/marketing-lead) | [`Review.withheld`](/business/events/Review.withheld) | Two-way: `try`, `send`, `do` |
| <a id="create"></a>[Agent.create](/business/nouns/agent/create) | Creates an Agent. Inherited from [Noun](/business/nouns/noun). | None. | `Agent.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Agent.get](/business/nouns/agent/get) | Returns one Agent by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Agent.list](/business/nouns/agent/list) | Returns Agents, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Agent.update](/business/nouns/agent/update) | Changes the given properties of an Agent. Inherited from [Noun](/business/nouns/noun). | None. | `Agent.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Agent.delete](/business/nouns/agent/delete) | Deletes an Agent; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Agent.deleted` | One-way: `send`, `do` |

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Agent.create` | Yes | Yes | Yes | No |
| `Agent.get` | Yes | Yes | Yes | Yes |
| `Agent.list` | Yes | Yes | Yes | Yes |
| `Agent.update` | Yes | Yes | Yes | No |
| `Agent.delete` | Yes | Yes | Yes | No |
| `Agent.mint` | Yes | Yes | Yes | No |
| `Agent.pause` | Yes | Yes | Yes | No |
| `Agent.resume` | Yes | Yes | Yes | No |
| `Agent.retire` | Yes | No | No | No |

## Call it

**Ask**

```text
Mint the latest agent with a tenant and a product.
```

**API**

```bash
curl -X POST https://api.sb/patentpad.com/agents/mint \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tenant":"tenant_1","product":"product_1"}'
```

```json
{
  "api": "https://api.sb/patentpad.com",
  "agent": {
    "$id": "https://api.sb/patentpad.com/agents/agent_1",
    "$type": "Agent",
    "instructions": "Example instructions",
    "model": "Example model",
    "status": "standby"
  },
  "action": {
    "$id": "https://api.sb/patentpad.com/actions/action_1",
    "operation": "Agent.mint",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/patentpad.com/actions/action_1"
  }
}
```

**SDK**

```ts
import { $ } from 'startup-builder'

const agent = await $.Agent.mint({ tenant: 'tenant_1', product: 'product_1' })
```

**CLI**

```bash
npx startup-builder do Agent.mint --json '{"tenant":"tenant_1","product":"product_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Agent.mint({ tenant: 'tenant_1', product: 'product_1' })"
  }
}
```

## Example
A support Agent fills the [Customer Lead](/agents/customer/customer-lead) Role at a tutoring marketplace. Its `instructions` say to answer from the help center and hand billing questions to a [Human](/business/nouns/human); its `tools` read tickets and post replies.