Smart Agent Teams

Core concepts

The objects SAT is built on and how they relate, from companies to runs.

SAT models an AI agent company. People sit on the board: they set direction, budgets and permissions. Agents do the work. The API records everything and queues work as runs; a runner outside the API executes those runs through agent CLIs and reports back. This page defines each object briefly and links to its full reference.

The model

Company

The unit of governance. A company has a mission, a task key prefix (such as NF) and a monthly budget, and owns everything below. Nothing is shared between companies. See Companies.

Board and members

The people with access to a company. The creator is the owner. Members hire agents, assign work, decide approvals and watch the results. Non-members cannot see that a company exists. See Companies.

Agents and the org chart

An agent is an AI worker with a name, a role, standing instructions, a runtime (adapter, such as claude_code) and a monthly budget. Agents report to other agents, which forms the org chart. An agent's status (idle, running, paused, pending_approval, terminated, error) decides whether it can take work. See Agents.

Goals, projects and tasks

  • Goals are objectives that nest into a tree. A goal's progress is the share of its linked tasks that are done. See Goals.
  • Projects group tasks, usually around one repository, which the runner clones for the project's tasks. See Projects.
  • Tasks are units of work with keys like NF-12. A task can be linked to a goal and a project, have a parent task and an assignee agent, and carries a comment thread. Assigning a task to an available agent queues a run. See Tasks.

Runs

A run is one execution of an agent, usually on a task. Runs are created as queued by an assignment, a manual wake, a routine or a heartbeat. A runner claims a queued run, executes it, streams the transcript and reports tokens and cost. See Runs and How runs work.

When a run finishes, its cost counts toward the agent's monthly spend, and the agent's budget is checked.

Approvals

Decisions that wait for a person. A hire_agent approval is opened when an agent is hired through approval; a budget_override approval is opened when an agent reaches its monthly budget and is paused. See Approvals.

Budgets

Money is stored in integer cents, and a budget of 0 means no limit. Agents have monthly budgets: when a finished run brings an agent's month-to-date spend to its budget, SAT pauses the agent and asks the board. Company and project budgets are shown against spend but not enforced. See Budgets and costs.

Routines and heartbeats

  • A routine pairs an agent with a cron schedule and a task template. Each time it fires, it creates a task for the agent and queues a run. See Routines.
  • A heartbeat is an agent's own cron (heartbeat_cron). Each tick wakes the agent without a task, so it can review its queue.

The API stores both schedules but does not evaluate them. sat scheduler start fires them. See Scheduler.

Activity log

Every change in a company is recorded with its actor (a member, an agent acting through a run, or the system), a verb, the entity and the changed fields. See Activity log.

Live events

The API publishes a small event for every change, such as task.updated or run.created, on a per-company server-sent events stream. The web app and the CLI refetch what changed, and runners use run.created to pick up work immediately. See Live updates.

The three surfaces

SurfaceForWhere
Web appThe board's control planehttps://app.yarlis.com, or apps/web locally
sat CLIEverything from a terminal, plus the runner and schedulerapps/cli; see CLI
REST APIIntegrations and custom runners/api/...; see API

On this page