[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"doc:concepts\u002Fagents-tasks-runs":3},{"title":4,"description":5,"url":6,"markdownPath":7,"file":8,"section":9,"sectionTitle":10,"html":11,"toc":12,"navigation":35,"previous":173,"next":174},"Agents, Tasks and Runs","How Agents work as governed Members of a Server, how Tasks and Runs relate, and what limits every Run.","\u002Fdocs\u002Fconcepts\u002Fagents-tasks-runs","\u002Fdocs\u002Fconcepts\u002Fagents-tasks-runs.md","docs\u002Fconcepts\u002Fagents-tasks-runs.md","concepts","Concepts","\u003Cp>Agents in L4 are Members of a Server, not outside bots. They work under the same permission model as people, and every piece of work they do is recorded as a Run.\u003C\u002Fp>\n\u003Ch2 id=\"agent\">\u003Ca class=\"heading-anchor\" href=\"#agent\">Agent\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>An Agent is a non-human Member with one assigned Role. Its profile holds its name, instructions and model. An Agent is never a login Account.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The Agent&#39;s Role caps what it can do. The Owner Role can never be assigned to an Agent.\u003C\u002Fli>\n\u003Cli>People need \u003Cstrong>Use agents\u003C\u002Fstrong> to find an Agent and talk to it. Without it, the Agent is hidden from them.\u003C\u002Fli>\n\u003Cli>An Agent takes part only in conversations it can access. Only a direct mention addresses an Agent; role mentions and \u003Ccode>@channel\u003C\u002Fcode> never do.\u003C\u002Fli>\n\u003Cli>Sending external email always needs a human&#39;s approval.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>An \u003Cstrong>external Agent\u003C\u002Fstrong> works on its own computer instead of with this Server&#39;s models. A mention or Direct Message wakes it through its webhook, and it answers and completes the Run through the Server&#39;s \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmcp\">MCP endpoint\u003C\u002Fa>, as itself and within its Role. See \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fexternal-agents\">External agents\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"task\">\u003Ca class=\"heading-anchor\" href=\"#task\">Task\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>A Task records a piece of work and who is responsible for it. Tasks live on Boards, can belong to a Project and can be created from a chat message (\u003Cstrong>Create task\u003C\u002Fstrong>), linked both ways.\u003C\u002Fp>\n\u003Cp>Assigning a Task to an Agent does not start it. Someone with the right permissions chooses \u003Cstrong>Run assigned agent\u003C\u002Fstrong>. Task execution needs Read tasks, Execute assigned tasks and Send messages, for both the Agent and the person who starts it.\u003C\u002Fp>\n\u003Ch2 id=\"session-run-and-environment\">\u003Ca class=\"heading-anchor\" href=\"#session-run-and-environment\">Session, Run and Environment\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>A \u003Cstrong>Session\u003C\u002Fstrong> holds one Agent&#39;s context for one conversation.\u003C\u002Fli>\n\u003Cli>A \u003Cstrong>Run\u003C\u002Fstrong> is one attempt to carry out work. Every reply to a message is a Run, and a Run may be linked to a Task.\u003C\u002Fli>\n\u003Cli>An \u003Cstrong>Environment\u003C\u002Fstrong> supplies the tools and working files a Run can use, for example a repository workspace on a \u003Ca href=\"\u002Fdocs\u002Fself-host\u002Fcompute-nodes\">Compute Node\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Runs\u003C\u002Fstrong> lists the Runs you started. Each Run page shows its activity, model requests and result. Run content is private to the person who started it; the Owner sees usage metadata (who, which Agent, status, model, tokens), not the prompts or output.\u003C\u002Fp>\n\u003Ch2 id=\"two-sets-of-permissions\">\u003Ca class=\"heading-anchor\" href=\"#two-sets-of-permissions\">Two sets of permissions\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Every Run is checked against both the Agent&#39;s Role and the permissions of the person who started it. The Agent can never do more than either of them allows. Invoking an Agent as the Owner does not make the Agent an Owner.\u003C\u002Fp>\n\u003Cp>These checks run on every model and tool call, not once at the start. If the Agent is paused or removed, or either side loses access, the Run stops being able to act.\u003C\u002Fp>\n\u003Cp>Some abilities are always explicit opt-ins on a Role, never implied by an administrator Role:\u003C\u002Fp>\n\u003Cdiv class=\"table-wrap\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Permission\u003C\u002Fth>\n\u003Cth>Lets an Agent\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Execute assigned tasks\u003C\u002Ftd>\n\u003Ctd>Work on Tasks assigned to it.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Use a computer\u003C\u002Ftd>\n\u003Ctd>Use isolated workspace tools on a Compute Node.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Propose code changes\u003C\u002Ftd>\n\u003Ctd>Push to a working branch and open draft pull requests. It cannot merge or release.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Manage schedules\u003C\u002Ftd>\n\u003Ctd>Create reminders and recurring work.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Research the web\u003C\u002Ftd>\n\u003Ctd>Search and read public web pages through configured providers.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"limits\">\u003Ca class=\"heading-anchor\" href=\"#limits\">Limits\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Runs are bounded. The Owner can set limits for new Runs in \u003Cstrong>Server settings → Agents → Execution\u003C\u002Fstrong>. The defaults are six hours, 256 steps and model calls, 4,096 tool calls and two million tokens per Run, and 500 Runs and 20 million tokens per Agent in 24 hours. A tool call whose outcome is uncertain is never silently repeated.\u003C\u002Fp>\n\u003Ch2 id=\"schedules\">\u003Ca class=\"heading-anchor\" href=\"#schedules\">Schedules\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>A Schedule starts a reminder or work at a set time, once, daily or weekly. It keeps the permission ceiling it was saved with and checks current membership and grants before each delivery. If permissions change, a Schedule can become blocked until you edit it. See \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fschedules\">Schedules\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"related\">\u003Ca class=\"heading-anchor\" href=\"#related\">Related\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Foverview\">Agents overview\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmodels-and-providers\">Models and providers\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fconcepts\u002Faccounts-members-roles\">Accounts, Members and Roles\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",[13,17,20,23,26,29,32],{"id":14,"text":15,"depth":16},"agent","Agent",2,{"id":18,"text":19,"depth":16},"task","Task",{"id":21,"text":22,"depth":16},"session-run-and-environment","Session, Run and Environment",{"id":24,"text":25,"depth":16},"two-sets-of-permissions","Two sets of permissions",{"id":27,"text":28,"depth":16},"limits","Limits",{"id":30,"text":31,"depth":16},"schedules","Schedules",{"id":33,"text":34,"depth":16},"related","Related",[36,61,89,105,120,141,163],{"id":37,"title":38,"pages":39},"get-started","Get started",[40,43,46,49,52,55,58],{"title":41,"url":42},"What is L4","\u002Fdocs\u002Fget-started\u002Fwhat-is-l4",{"title":44,"url":45},"Choose how to run your Server","\u002Fdocs\u002Fget-started\u002Fchoose-how-to-run",{"title":47,"url":48},"Create a Server on Cloudflare","\u002Fdocs\u002Fget-started\u002Fcreate-on-cloudflare",{"title":50,"url":51},"Install on a VPS","\u002Fdocs\u002Fget-started\u002Finstall-on-a-vps",{"title":53,"url":54},"Connect to a Server","\u002Fdocs\u002Fget-started\u002Fconnect-a-server",{"title":56,"url":57},"Invite your team","\u002Fdocs\u002Fget-started\u002Finvite-your-team",{"title":59,"url":60},"Create your first Agent","\u002Fdocs\u002Fget-started\u002Ffirst-agent",{"id":62,"title":63,"pages":64},"cloudflare","Cloudflare",[65,68,71,74,77,80,83,86],{"title":66,"url":67},"L4 on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Foverview",{"title":69,"url":70},"Cloudflare access","\u002Fdocs\u002Fcloudflare\u002Faccess",{"title":72,"url":73},"Costs and limits","\u002Fdocs\u002Fcloudflare\u002Fcosts-and-limits",{"title":75,"url":76},"Custom domain","\u002Fdocs\u002Fcloudflare\u002Fcustom-domain",{"title":78,"url":79},"Mail on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Fmail",{"title":81,"url":82},"Update a Cloudflare Server","\u002Fdocs\u002Fcloudflare\u002Fupdates",{"title":84,"url":85},"Backups on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Fbackups",{"title":87,"url":88},"Remove a Cloudflare Server","\u002Fdocs\u002Fcloudflare\u002Fremove-a-server",{"id":90,"title":91,"pages":92},"self-host","Self-host",[93,96,99,102],{"title":94,"url":95},"Run a Server on a VPS","\u002Fdocs\u002Fself-host\u002Fvps",{"title":97,"url":98},"Run a Server with Docker Compose","\u002Fdocs\u002Fself-host\u002Fdocker",{"title":100,"url":101},"Run a Server on Coolify","\u002Fdocs\u002Fself-host\u002Fcoolify",{"title":103,"url":104},"Compute Nodes","\u002Fdocs\u002Fself-host\u002Fcompute-nodes",{"id":9,"title":10,"pages":106},[107,110,113,114,117],{"title":108,"url":109},"Servers and the Shell","\u002Fdocs\u002Fconcepts\u002Fserver-and-shell",{"title":111,"url":112},"Accounts, Members and Roles","\u002Fdocs\u002Fconcepts\u002Faccounts-members-roles",{"title":4,"url":6},{"title":115,"url":116},"Files and backups","\u002Fdocs\u002Fconcepts\u002Ffiles-and-backups",{"title":118,"url":119},"Releases and updates","\u002Fdocs\u002Fconcepts\u002Freleases-and-updates",{"id":121,"title":122,"pages":123},"agents","Agents and MCP",[124,127,130,133,136,139],{"title":125,"url":126},"Agents overview","\u002Fdocs\u002Fagents\u002Foverview",{"title":128,"url":129},"Models and Providers","\u002Fdocs\u002Fagents\u002Fmodels-and-providers",{"title":131,"url":132},"Connect an MCP client","\u002Fdocs\u002Fagents\u002Fmcp",{"title":134,"url":135},"External agents","\u002Fdocs\u002Fagents\u002Fexternal-agents",{"title":137,"url":138},"Repositories and code work","\u002Fdocs\u002Fagents\u002Frepositories",{"title":31,"url":140},"\u002Fdocs\u002Fagents\u002Fschedules",{"id":142,"title":143,"pages":144},"guides","Guides",[145,148,151,154,157,160],{"title":146,"url":147},"Chat","\u002Fdocs\u002Fguides\u002Fchat",{"title":149,"url":150},"Projects and Tasks","\u002Fdocs\u002Fguides\u002Fprojects-and-tasks",{"title":152,"url":153},"Mail","\u002Fdocs\u002Fguides\u002Fmail",{"title":155,"url":156},"Calls and Live","\u002Fdocs\u002Fguides\u002Fcalls",{"title":158,"url":159},"Notifications","\u002Fdocs\u002Fguides\u002Fnotifications",{"title":161,"url":162},"Telegram","\u002Fdocs\u002Fguides\u002Ftelegram",{"id":164,"title":165,"pages":166},"reference","Reference",[167,170],{"title":168,"url":169},"Glossary","\u002Fdocs\u002Freference\u002Fglossary",{"title":171,"url":172},"Troubleshooting","\u002Fdocs\u002Freference\u002Ftroubleshooting",{"title":111,"url":112},{"title":115,"url":116},1793335826060]