Smart Agent Teams

Companies

The unit of governance that owns your agents, work, budgets and audit trail.

A company is the container for everything in SAT. It has a name, a mission, a task key prefix and a monthly budget, and it owns its agents, goals, projects, tasks, runs, approvals, routines and activity log. People get access to a company through membership. Every company-scoped API path starts with /api/companies/{company_id}, and nothing in one company is visible from another.

How it works

  • When you create a company you become its owner. The API records a created entry in the company's activity log.
  • The mission is shown to agents: the runner puts it in every agent's system prompt ("Company mission: …").
  • The task prefix forms task keys. With prefix NF, tasks are numbered NF-1, NF-2 and so on. Numbers come from a per-company counter, so they never repeat within a company.
  • The monthly budget is stored in integer cents; 0 means no limit. The dashboard and the costs screen show company spend against it.
  • Membership is the only access check. A signed-in user who is not a member of a company gets 404 NOT_FOUND for every path under it, so company ids cannot be probed.

The company budget is not enforced

SAT pauses agents that reach their own monthly budget (see Budgets and costs). The company-level monthly_budget_cents is reported on the dashboard and costs screen, but no rule stops work when the company total is reached.

Members and roles

RoleWho has itWhat it adds
ownerThe user who created the companySame powers as admin
adminNot assignable through the API yetMay change the company (PATCH /api/companies/{company_id})
memberNot assignable through the API yetEverything else: hire agents, create tasks, decide approvals, and so on

Only the company update endpoint checks the role. Every other company endpoint, including hiring, terminating agents and deciding approvals, is open to any member.

Fields

Returned by GET /api/companies and GET /api/companies/{company_id} (CompanyOut).

Prop

Type

Members (GET /api/companies/{company_id}/members, MemberOut):

Prop

Type

Use it

Create a company. Right after you sign up, SAT opens Start your company. Later, use New company in the company switcher at the top of the sidebar. Fill in:

  • Company name, for example NoteFlow.
  • Mission, for example "Build the #1 AI note-taking app and reach $1M ARR."
  • Task prefix, for example NF. The field upper-cases what you type.
  • Monthly budget (USD). Leave it empty for no limit.

Create company takes you to Agents with the hire dialog open.

Change a company. Open Settings. Owners and admins can edit name, mission and monthly budget; for other members the fields are read-only. Task prefix is always read-only ("Set when the company was created"). The Members section lists everyone with access, their role and when they joined.

Permissions

ActionWho
Create a companyAny signed-in user
List companiesReturns only companies you are a member of
Read a company, list membersAny member
Update name, mission, budgetowner or admin; other members get 403 FORBIDDEN
Anything under the companyAny member; non-members get 404 NOT_FOUND

Events

EventWhen
company.updatedPATCH changed at least one field

Creating a company writes an activity log entry but publishes no live event (nobody is subscribed to a company that did not exist yet).

Limits and known gaps

  • Membership management is not available yet. There are no endpoints, CLI commands or screens to invite people, add or remove members, change a member's role or leave a company. A company has exactly one member, its owner, unless rows are added directly in the database.
  • Deleting a company is not available yet.
  • task_prefix cannot be changed after creation, because existing task keys depend on it.
  • The company monthly budget is informational. Only agent budgets pause work.
  • Name: 1 to 120 characters. Prefix: 1 to 8 characters, an uppercase letter followed by uppercase letters or digits. Validation errors return 422.

On this page