Skip to content

Agent

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

Read as
GuideSpec

It acts from a Role seat, under that Role’s Permissions and its own Mandates.

Properties

PropertyTypeRequiredDescription
instructionstextrequiredWhat the Agent does and how.
modelstringrequiredThe model the Agent runs on.
toolsstring[]The tools the Agent may call.
skillslist of SkillThe Skills it loads.
memorystringOne of tenant (one Memory per Customer Tenant) or startup (one Memory for the Startup).
maxStepsintegerThe most steps one Task may take.
budgetmoneyThe most one Task may spend; the Mandate’s Limits apply as well.
handoffslist of RoleThe Roles it hands work to.
statusstringrequiredOne 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

  • An Agent is employed by many Startups: an Agent holds a seat in the Startup and acts within the authority it grants; one Agent can hold seats in many Startups. employedBy, inverse employs.
  • An Agent has many Mandates: a Mandate lets an Agent act without asking each time, within its Permissions and Limits, until it expires or is revoked. mandates, inverse authorizes.

Lifecycle

Agent lifecycle: standby, seated, paused, retired (ends)standby → seated: on Role.staffedseated → standby: on Role.staffedseated → paused: Agent.pauseseated → retired: Agent.retirepaused → seated: Agent.resumepaused → retired: Agent.retirestandbyseatedpausedretired
StateMeaningMoves to
standby (first)It fills no Role, so it performs no Verbs.seated on Role.staffed when the Worker who fills the Role is this Agent
seatedIt fills at least one Role and performs that Role’s Verbs under its Permissions.standby on Role.staffed when another Worker fills the last Role this Agent held; paused by Agent.pause; retired by Agent.retire
pausedIt keeps its seats, Memory, Mandates and Limits, and starts no new Action until it resumes.seated by Agent.resume; retired by Agent.retire
retiredIt holds no seat in the Startup again; its Actions, Memory and Mailbox history stay on the record.None: it ends here.

Verbs

  1. createCreates an Agent.
    POST /{namespace}/agentsdoAgent.created
  2. getReturns one Agent by id.
    GET /{namespace}/agents/{id}readNo Event
  3. listReturns Agents, newest first, one page at a time.
    GET /{namespace}/agentsreadNo Event
  4. updateChanges the given properties of an Agent.
    PATCH /{namespace}/agents/{id}doAgent.updated
  5. deleteDeletes an Agent; its history is kept.
    DELETE /{namespace}/agents/{id}doAgent.deleted
  6. mintMint creates an Agent in a Customer’s Tenant from an Agent Product the Customer bought.
    POST /{namespace}/agents/mintdoAgent.minted
  7. pausePause stops one Agent, every Agent on a Team, or every customer-facing Agent from starting new Actions in a Startup.
    POST /{namespace}/agents/pausedoAgent.paused
  8. resumeResume restarts a paused Agent in every seat it holds, with its Memory, Mandates and Limits unchanged.
    POST /{namespace}/agents/{agent}/resumedoAgent.resumed
  9. retireRetire removes an Agent from every seat in a Startup for good and keeps its Actions, Memory and Mailbox history on the record.
    POST /{namespace}/agents/{agent}/retiredoAgent.retired

Permissions

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

Operationowneradminmemberviewer
Agent.createYesYesYesNo
Agent.getYesYesYesYes
Agent.listYesYesYesYes
Agent.updateYesYesYesNo
Agent.deleteYesYesYesNo
Agent.mintYesYesYesNo
Agent.pauseYesYesYesNo
Agent.resumeYesYesYesNo
Agent.retireYesNoNoNo

Call it

Text
Mint the latest agent with a tenant and a product.

Example

A support Agent fills the Customer Lead Role at a tutoring marketplace. Its instructions say to answer from the help center and hand billing questions to a Human; its tools read tickets and post replies.