Agents
Staff persistent AI teammates with an ongoing role, conversation, capabilities, and budget.
An agent is a persistent teammate with an ongoing role and conversation. Unlike a one-off chat, it is staffed as a named workspace resource that can keep responsibility across many runs and entry points.
Creating an agent also creates its home project and its one lifetime session. The home project owns the agent's files, memory, skill pins, connector activations, exact external API hosts, and sharing boundary. It is managed through the agent and intentionally excluded from the Projects list and project search. The session is the conversation you see on the agent page; it compacts older history as needed instead of being replaced by a new chat.
The agent name is also the title of that continuing conversation wherever it appears, including Recents and session history. Rename it under Manage agent → General; an agent conversation does not have a separate conversation title.
The conversation's approval mode is also persistent. Ask for approval pauses on connector actions configured to Ask. Allow all lets those actions continue without individual prompts for later manual and autonomous turns in the same lifetime session. Explicit Deny rules and every credential, host, method, path, sandbox, and network boundary still apply. Use Allow all only when that standing level of autonomy is appropriate for the agent.
An agent combines
- a profile: name, persona, description, and avatar;
- standing guidance: instructions that apply whenever the agent runs;
- a home project with files, memory, skills, connector activations, and network access;
- one continuing conversation for direct and autonomous turns;
- a model and reasoning configuration within workspace policy;
- optional channels, including Slack bindings and a Slack coworker identity;
- autonomy controls: pause, heartbeat, task-specific wakeups, and a daily budget.
A Slack coworker is installed as its own Slack app per Slack workspace. A channel becomes bound when you invite the coworker to it and mention it — the first mention connects that channel. Members of a bound channel can then ask the agent to use its configured skills and workspace connectors, so bind channels deliberately. Disconnecting a channel under Manage agent → Channels → Slack stops the agent answering there; the app stays in the Slack channel until you remove it from Slack.
Messages from the web app and bound channels are routed into the same agent identity and project context. Channel delivery does not create a second agent, though the visible audience of external conversations remains bounded to the relevant channel participants.
Runs remain separate
Direct messages, manual wakes, heartbeats, and task-specific scheduled wakeups all create turns in the same session. Each accepted turn still has an independent run lifecycle, tool activity, and cost.
Only one run owns the agent session lane at a time. Direct user messages can queue or join a work cycle; routine heartbeats skip when the agent is already working; task-specific scheduled wakeups retry their due occurrence until the backend accepts it. These differences prevent accidental overlap while preserving the intent of each trigger.
The daily budget applies to all spend attributed to the agent's home project for the current day in the agent's configured timezone, including manual and autonomous work and sub-agents. Reaching the cap blocks further work for that day; it does not permanently pause the agent.
Continue to wakeups and heartbeats for the exact trigger, retry, concurrency, and cost behavior.