[{"data":1,"prerenderedAt":179},["ShallowReactive",2],{"doc:agents\u002Foverview":3},{"title":4,"description":5,"url":6,"markdownPath":7,"file":8,"section":9,"sectionTitle":10,"html":11,"toc":12,"navigation":38,"previous":177,"next":178},"Agents overview","How Agents work in an L4 Server, what they can do with only a model, and what code work, schedules and external tools add.","\u002Fdocs\u002Fagents\u002Foverview","\u002Fdocs\u002Fagents\u002Foverview.md","docs\u002Fagents\u002Foverview.md","agents","Agents and MCP","\u003Cp>An Agent is a non-human Member of your Server. It has a name, profile instructions, a model and one Role. People talk to it in chat or give it Tasks, and every reply or piece of work is a \u003Cstrong>Run\u003C\u002Fstrong>. To create your first one, follow \u003Ca href=\"\u002Fdocs\u002Fget-started\u002Ffirst-agent\">Create your first Agent\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This section covers the parts you set up as an operator or Agent builder:\u003C\u002Fp>\n\u003Cdiv class=\"table-wrap\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Page\u003C\u002Fth>\n\u003Cth>Use it to\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmodels-and-providers\">Models and Providers\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Connect OpenRouter, Claude, ChatGPT or Workers AI and choose defaults and AI functions.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmcp\">MCP\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Connect an MCP client such as Codex or Claude to your Server, as yourself or as an Agent.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Fexternal-agents\">External agents\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Add an Agent that runs on its own computer and answers through MCP.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Frepositories\">Repositories\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Let Agents take a Task to a draft pull request on GitHub.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Fschedules\">Schedules\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd>Set reminders and recurring Agent work.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"where-agent-settings-live\">\u003Ca class=\"heading-anchor\" href=\"#where-agent-settings-live\">Where Agent settings live\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Open the Server menu (the Server&#39;s icon at the top of the rail) and choose \u003Cstrong>Server settings\u003C\u002Fstrong>. The \u003Cstrong>Agents &amp; code\u003C\u002Fstrong> group holds:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Models\u003C\u002Fstrong>: model Providers, the Server default model and AI functions.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Agents\u003C\u002Fstrong>: create, edit, pause and delete Agents. The Owner also sees \u003Cstrong>Execution\u003C\u002Fstrong> limits and an \u003Cstrong>Audit\u003C\u002Fstrong> tab.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Git\u003C\u002Fstrong>: GitHub connections and repository environments.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Compute\u003C\u002Fstrong>: Compute Nodes where code work runs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Tools\u003C\u002Fstrong>: read-only external MCP sources for Agents.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Which items you see depends on your Role. \u003Cstrong>Agents\u003C\u002Fstrong> needs \u003Cstrong>Manage agents\u003C\u002Fstrong>; \u003Cstrong>Git\u003C\u002Fstrong> and \u003Cstrong>Compute\u003C\u002Fstrong> need \u003Cstrong>Manage server\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>\u003Cfigure class=\"doc-shot doc-shot-missing\">\u003Cdiv class=\"doc-shot-frame\" role=\"img\" aria-label=\"Server settings with the Agents &amp; code group showing Models, Agents, Git, Compute and Tools\">\u003Cspan class=\"doc-shot-label\">Screenshot coming soon\u003C\u002Fspan>\u003Cspan class=\"doc-shot-alt\">Server settings with the Agents &amp; code group showing Models, Agents, Git, Compute and Tools\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cfigcaption>Agent settings in Server settings\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Ch2 id=\"talking-to-an-agent\">\u003Ca class=\"heading-anchor\" href=\"#talking-to-an-agent\">Talking to an Agent\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Direct Message:\u003C\u002Fstrong> open the \u003Cstrong>Agents\u003C\u002Fstrong> rail section and select an Agent. Each message you send starts a reply Thread; replies in that Thread keep using it.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mention:\u003C\u002Fstrong> mention the Agent directly in a channel it can access. Only a direct mention addresses an Agent; role mentions and \u003Ccode>@channel\u003C\u002Fcode> or \u003Ccode>@here\u003C\u002Fcode> never wake one. Agent replies go into a Thread.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>People need \u003Cstrong>Use agents\u003C\u002Fstrong> in their Role, or in a Project policy, to find and talk to Agents. Without it, Agents are hidden from them.\u003C\u002Fp>\n\u003Cp>In a one-to-one Agent conversation, the toolbar above the composer lets you:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>choose the \u003Cstrong>Provider \u002F model\u003C\u002Fstrong> for future Runs (Threads inherit the conversation&#39;s choice);\u003C\u002Fli>\n\u003Cli>choose a \u003Cstrong>Reasoning effort\u003C\u002Fstrong>: Auto, Low, Medium or High;\u003C\u002Fli>\n\u003Cli>switch between \u003Cstrong>Queue\u003C\u002Fstrong> and \u003Cstrong>Steer\u003C\u002Fstrong>. Queue runs your messages one after another. Steer adds a new instruction to your running Run at its next tool step; if steering is not available, the message stays queued;\u003C\u002Fli>\n\u003Cli>stop the current work with \u003Cstrong>Stop Agent\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>A Run that has started keeps the model it started with. Changing the picker affects only later Runs.\u003C\u002Fp>\n\u003Ch2 id=\"what-an-agent-can-do\">\u003Ca class=\"heading-anchor\" href=\"#what-an-agent-can-do\">What an Agent can do\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>With only a model, an Agent can chat in conversations it can access and use the Server&#39;s built-in tools that its Role and your permissions allow, for example reading and updating Tasks. It finds tools by searching for them during the Run; it cannot use a tool neither of you is allowed to.\u003C\u002Fp>\n\u003Cp>More capabilities need explicit setup and permissions:\u003C\u002Fp>\n\u003Cdiv class=\"table-wrap\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Capability\u003C\u002Fth>\n\u003Cth>Needs\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Web search and reading pages\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>Research the web\u003C\u002Fstrong> for both the Agent and the person asking, plus a search provider (see \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmodels-and-providers#ai-functions\">Models and Providers\u003C\u002Fa>).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Working on a Task\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>Read tasks\u003C\u002Fstrong>, \u003Cstrong>Execute assigned tasks\u003C\u002Fstrong> and \u003Cstrong>Send messages\u003C\u002Fstrong> for both the Agent and the person who starts it.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Code work and draft pull requests\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>Use a computer\u003C\u002Fstrong> for both, \u003Cstrong>Propose code changes\u003C\u002Fstrong> for the Agent, a Git connection, a repository environment and compute. See \u003Ca href=\"\u002Fdocs\u002Fagents\u002Frepositories\">Repositories\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Reminders and recurring work\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>Manage schedules\u003C\u002Fstrong>. See \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fschedules\">Schedules\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>External read-only MCP tools\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>Use external tools\u003C\u002Fstrong> for both. See \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmcp#external-tools-for-agents\">MCP\u003C\u002Fa>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Images and voice messages\u003C\u002Ftd>\n\u003Ctd>A model that accepts images, or the \u003Cstrong>Image descriptions\u003C\u002Fstrong> and \u003Cstrong>Voice transcription\u003C\u002Fstrong> AI functions.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Sending external email always needs a human. In this release Agents cannot send external email at all; only the Mail interface sends.\u003C\u002Fp>\n\u003Ch2 id=\"permissions-the-agent-and-you\">\u003Ca class=\"heading-anchor\" href=\"#permissions-the-agent-and-you\">Permissions: the Agent and you\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Every Run is checked against the Agent&#39;s Role and against the person who started it, on every model and tool call. The Agent can never do more than either of you. Asking an Agent as the Owner does not make the Agent an Owner. If the Agent is paused or removed, or either of you loses access, the Run can no longer act.\u003C\u002Fp>\n\u003Cp>To give project-specific access, assign a Project policy in \u003Cstrong>Projects → Access\u003C\u002Fstrong>. The same Agent can be a Developer in one Project and a Reviewer in another. \u003Cstrong>Fill instructions from an example\u003C\u002Fstrong> in the Agent editor only fills in text; it grants nothing. See \u003Ca href=\"\u002Fdocs\u002Fconcepts\u002Faccounts-members-roles\">Accounts, Members and Roles\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"privacy-of-runs\">\u003Ca class=\"heading-anchor\" href=\"#privacy-of-runs\">Privacy of Runs\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Run content is private to the person who started it: its prompt, events, transcript and working files. The \u003Cstrong>Runs\u003C\u002Fstrong> page lists only your own Runs.\u003C\u002Fp>\n\u003Cp>After a Run reads a private source, such as Tasks, private repositories or mail, its full answer is posted only in your own Direct Message with the Agent. Other conversations receive a link to the private Run. In that same conversation, the Agent can then no longer reach arbitrary web or MCP destinations, so private data cannot be carried out. Start a new conversation for unrelated web research.\u003C\u002Fp>\n\u003Cp>On a completed private Run, someone with \u003Cstrong>Approve agent actions\u003C\u002Fstrong> who started it can choose \u003Cstrong>Review sharing\u003C\u002Fstrong>, check the exact text and its audience, and select \u003Cstrong>Approve and publish\u003C\u002Fstrong> to post it.\u003C\u002Fp>\n\u003Cp>The Owner can see usage metadata in \u003Cstrong>Server settings → Agents → Audit\u003C\u002Fstrong>: who started a Run, which Agent, status, model, call counts and tokens. The Owner cannot read another person&#39;s prompts or output.\u003C\u002Fp>\n\u003Ch2 id=\"execution-limits\">\u003Ca class=\"heading-anchor\" href=\"#execution-limits\">Execution limits\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>The Owner sets limits for new Runs in \u003Cstrong>Server settings → Agents → Execution\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Execution mode\u003C\u002Fstrong>: \u003Cstrong>Autonomous within granted permissions\u003C\u002Fstrong> (the default) or \u003Cstrong>Review writes and outbound calls\u003C\u002Fstrong>, which pauses workspace operations for approval and blocks other writes and outbound calls.\u003C\u002Fli>\n\u003Cli>Limits per Run, such as steps, model calls, tool calls, tokens and duration. The defaults are six hours, 256 steps and model calls, 4,096 tool calls and two million tokens.\u003C\u002Fli>\n\u003Cli>Limits per Agent over 24 hours. The defaults are 500 Runs and 20 million tokens.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Existing Runs keep the limits they started with. Merge and release tools are never available to Agents.\u003C\u002Fp>\n\u003Ch2 id=\"pause-or-delete-an-agent\">\u003Ca class=\"heading-anchor\" href=\"#pause-or-delete-an-agent\">Pause or delete an Agent\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Open the Agent in \u003Cstrong>Server settings → Agents\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Set \u003Cstrong>Status\u003C\u002Fstrong> to \u003Cstrong>Paused\u003C\u002Fstrong> to stop new work. Everything is kept.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete agent\u003C\u002Fstrong> removes it from the Server and frees its name. Its queued and running Runs are cancelled, its Schedules stop, its MCP connections are revoked and its open Tasks become unassigned. Its messages, Direct Messages, Run history and audit entries stay. This cannot be undone.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"related\">\u003Ca class=\"heading-anchor\" href=\"#related\">Related\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fconcepts\u002Fagents-tasks-runs\">Agents, Tasks and Runs\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fguides\u002Fprojects-and-tasks\">Projects and Tasks\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",[13,17,20,23,26,29,32,35],{"id":14,"text":15,"depth":16},"where-agent-settings-live","Where Agent settings live",2,{"id":18,"text":19,"depth":16},"talking-to-an-agent","Talking to an Agent",{"id":21,"text":22,"depth":16},"what-an-agent-can-do","What an Agent can do",{"id":24,"text":25,"depth":16},"permissions-the-agent-and-you","Permissions: the Agent and you",{"id":27,"text":28,"depth":16},"privacy-of-runs","Privacy of Runs",{"id":30,"text":31,"depth":16},"execution-limits","Execution limits",{"id":33,"text":34,"depth":16},"pause-or-delete-an-agent","Pause or delete an Agent",{"id":36,"text":37,"depth":16},"related","Related",[39,64,92,108,127,145,167],{"id":40,"title":41,"pages":42},"get-started","Get started",[43,46,49,52,55,58,61],{"title":44,"url":45},"What is L4","\u002Fdocs\u002Fget-started\u002Fwhat-is-l4",{"title":47,"url":48},"Choose how to run your Server","\u002Fdocs\u002Fget-started\u002Fchoose-how-to-run",{"title":50,"url":51},"Create a Server on Cloudflare","\u002Fdocs\u002Fget-started\u002Fcreate-on-cloudflare",{"title":53,"url":54},"Install on a VPS","\u002Fdocs\u002Fget-started\u002Finstall-on-a-vps",{"title":56,"url":57},"Connect to a Server","\u002Fdocs\u002Fget-started\u002Fconnect-a-server",{"title":59,"url":60},"Invite your team","\u002Fdocs\u002Fget-started\u002Finvite-your-team",{"title":62,"url":63},"Create your first Agent","\u002Fdocs\u002Fget-started\u002Ffirst-agent",{"id":65,"title":66,"pages":67},"cloudflare","Cloudflare",[68,71,74,77,80,83,86,89],{"title":69,"url":70},"L4 on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Foverview",{"title":72,"url":73},"Cloudflare access","\u002Fdocs\u002Fcloudflare\u002Faccess",{"title":75,"url":76},"Costs and limits","\u002Fdocs\u002Fcloudflare\u002Fcosts-and-limits",{"title":78,"url":79},"Custom domain","\u002Fdocs\u002Fcloudflare\u002Fcustom-domain",{"title":81,"url":82},"Mail on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Fmail",{"title":84,"url":85},"Update a Cloudflare Server","\u002Fdocs\u002Fcloudflare\u002Fupdates",{"title":87,"url":88},"Backups on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Fbackups",{"title":90,"url":91},"Remove a Cloudflare Server","\u002Fdocs\u002Fcloudflare\u002Fremove-a-server",{"id":93,"title":94,"pages":95},"self-host","Self-host",[96,99,102,105],{"title":97,"url":98},"Run a Server on a VPS","\u002Fdocs\u002Fself-host\u002Fvps",{"title":100,"url":101},"Run a Server with Docker Compose","\u002Fdocs\u002Fself-host\u002Fdocker",{"title":103,"url":104},"Run a Server on Coolify","\u002Fdocs\u002Fself-host\u002Fcoolify",{"title":106,"url":107},"Compute Nodes","\u002Fdocs\u002Fself-host\u002Fcompute-nodes",{"id":109,"title":110,"pages":111},"concepts","Concepts",[112,115,118,121,124],{"title":113,"url":114},"Servers and the Shell","\u002Fdocs\u002Fconcepts\u002Fserver-and-shell",{"title":116,"url":117},"Accounts, Members and Roles","\u002Fdocs\u002Fconcepts\u002Faccounts-members-roles",{"title":119,"url":120},"Agents, Tasks and Runs","\u002Fdocs\u002Fconcepts\u002Fagents-tasks-runs",{"title":122,"url":123},"Files and backups","\u002Fdocs\u002Fconcepts\u002Ffiles-and-backups",{"title":125,"url":126},"Releases and updates","\u002Fdocs\u002Fconcepts\u002Freleases-and-updates",{"id":9,"title":10,"pages":128},[129,130,133,136,139,142],{"title":4,"url":6},{"title":131,"url":132},"Models and Providers","\u002Fdocs\u002Fagents\u002Fmodels-and-providers",{"title":134,"url":135},"Connect an MCP client","\u002Fdocs\u002Fagents\u002Fmcp",{"title":137,"url":138},"External agents","\u002Fdocs\u002Fagents\u002Fexternal-agents",{"title":140,"url":141},"Repositories and code work","\u002Fdocs\u002Fagents\u002Frepositories",{"title":143,"url":144},"Schedules","\u002Fdocs\u002Fagents\u002Fschedules",{"id":146,"title":147,"pages":148},"guides","Guides",[149,152,155,158,161,164],{"title":150,"url":151},"Chat","\u002Fdocs\u002Fguides\u002Fchat",{"title":153,"url":154},"Projects and Tasks","\u002Fdocs\u002Fguides\u002Fprojects-and-tasks",{"title":156,"url":157},"Mail","\u002Fdocs\u002Fguides\u002Fmail",{"title":159,"url":160},"Calls and Live","\u002Fdocs\u002Fguides\u002Fcalls",{"title":162,"url":163},"Notifications","\u002Fdocs\u002Fguides\u002Fnotifications",{"title":165,"url":166},"Telegram","\u002Fdocs\u002Fguides\u002Ftelegram",{"id":168,"title":169,"pages":170},"reference","Reference",[171,174],{"title":172,"url":173},"Glossary","\u002Fdocs\u002Freference\u002Fglossary",{"title":175,"url":176},"Troubleshooting","\u002Fdocs\u002Freference\u002Ftroubleshooting",{"title":125,"url":126},{"title":131,"url":132},1793304298442]