[{"data":1,"prerenderedAt":841},["ShallowReactive",2],{"navigation_docs":3,"-reference-agent-definition":320,"-reference-agent-definition-surround":836},[4,35,69,109,133,193,228,262,305],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-ph-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-ph-rocket-launch",{"title":21,"path":22,"stem":23,"icon":24},"Concepts","\u002Fgetting-started\u002Fconcepts","1.getting-started\u002F3.concepts","i-ph-book-open",{"title":26,"path":27,"stem":28,"icon":29},"Install","\u002Fgetting-started\u002Finstall","1.getting-started\u002F4.install","i-ph-download-simple",{"title":31,"path":32,"stem":33,"icon":34},"What works today","\u002Fgetting-started\u002Fstatus","1.getting-started\u002F5.status","i-ph-list-checks",{"title":21,"icon":6,"path":36,"stem":37,"children":38,"page":6},"\u002Fconcepts","2.concepts",[39,44,49,54,59,64],{"title":40,"path":41,"stem":42,"icon":43},"Architecture","\u002Fconcepts\u002Farchitecture","2.concepts\u002F1.architecture","i-ph-planet",{"title":45,"path":46,"stem":47,"icon":48},"Jobs and durability","\u002Fconcepts\u002Fjobs","2.concepts\u002F2.jobs","i-ph-infinity",{"title":50,"path":51,"stem":52,"icon":53},"Routing","\u002Fconcepts\u002Frouting","2.concepts\u002F3.routing","i-ph-path",{"title":55,"path":56,"stem":57,"icon":58},"Security model","\u002Fconcepts\u002Fsecurity","2.concepts\u002F4.security","i-ph-shield-check",{"title":60,"path":61,"stem":62,"icon":63},"Tenants","\u002Fconcepts\u002Ftenants","2.concepts\u002F5.tenants","i-ph-buildings",{"title":65,"path":66,"stem":67,"icon":68},"Temporal","\u002Fconcepts\u002Ftemporal","2.concepts\u002F6.temporal","i-ph-clock",{"title":70,"icon":6,"path":71,"stem":72,"children":73,"page":6},"Run a fleet","\u002Ffleet","3.fleet",[74,79,84,89,94,99,104],{"title":75,"path":76,"stem":77,"icon":78},"Dev mode","\u002Ffleet\u002Fdev-mode","3.fleet\u002F1.dev-mode","i-ph-laptop",{"title":80,"path":81,"stem":82,"icon":83},"Run a cluster","\u002Ffleet\u002Fcluster","3.fleet\u002F2.cluster","i-ph-hard-drives",{"title":85,"path":86,"stem":87,"icon":88},"Join nodes","\u002Ffleet\u002Fjoin-nodes","3.fleet\u002F3.join-nodes","i-ph-plugs-connected",{"title":90,"path":91,"stem":92,"icon":93},"Manage nodes","\u002Ffleet\u002Fmanage-nodes","3.fleet\u002F4.manage-nodes","i-ph-list-bullets",{"title":95,"path":96,"stem":97,"icon":98},"Secrets","\u002Ffleet\u002Fsecrets","3.fleet\u002F5.secrets","i-ph-key",{"title":100,"path":101,"stem":102,"icon":103},"High availability","\u002Ffleet\u002Fhigh-availability","3.fleet\u002F6.high-availability","i-ph-copy",{"title":105,"path":106,"stem":107,"icon":108},"Upgrades, backups and restores","\u002Ffleet\u002Fupgrades","3.fleet\u002F7.upgrades","i-ph-arrows-clockwise",{"title":110,"icon":6,"path":111,"stem":112,"children":113,"page":6},"Use plugins","\u002Fplugins","4.plugins",[114,119,124,128],{"title":115,"path":116,"stem":117,"icon":118},"What a plugin is","\u002Fplugins\u002Foverview","4.plugins\u002F1.overview","i-ph-puzzle-piece",{"title":120,"path":121,"stem":122,"icon":123},"Install and update","\u002Fplugins\u002Finstall","4.plugins\u002F2.install","i-ph-package",{"title":125,"path":126,"stem":127,"icon":123},"Existing MCP packages","\u002Fplugins\u002Fpackages","4.plugins\u002F3.packages",{"title":129,"path":130,"stem":131,"icon":132},"The catalog","\u002Fplugins\u002Fcatalog","4.plugins\u002F4.catalog","i-ph-books",{"title":134,"icon":6,"path":135,"stem":136,"children":137,"page":6},"Build plugins","\u002Fbuild-plugins","5.build-plugins",[138,143,148,153,158,163,168,173,178,183,188],{"title":139,"path":140,"stem":141,"icon":142},"Your first plugin","\u002Fbuild-plugins\u002Ffirst-plugin","5.build-plugins\u002F1.first-plugin","i-ph-hammer",{"title":144,"path":145,"stem":146,"icon":147},"Harnesses","\u002Fbuild-plugins\u002Fharnesses","5.build-plugins\u002F10.harnesses","i-ph-cpu",{"title":149,"path":150,"stem":151,"icon":152},"Example: support triage","\u002Fbuild-plugins\u002Fexample-support-triage","5.build-plugins\u002F11.example-support-triage","i-ph-lifebuoy",{"title":154,"path":155,"stem":156,"icon":157},"Tools","\u002Fbuild-plugins\u002Ftools","5.build-plugins\u002F2.tools","i-ph-wrench",{"title":159,"path":160,"stem":161,"icon":162},"Agents","\u002Fbuild-plugins\u002Fagents","5.build-plugins\u002F3.agents","i-ph-robot",{"title":164,"path":165,"stem":166,"icon":167},"Skills","\u002Fbuild-plugins\u002Fskills","5.build-plugins\u002F4.skills","i-ph-graduation-cap",{"title":169,"path":170,"stem":171,"icon":172},"Develop and test","\u002Fbuild-plugins\u002Fdevelop-and-test","5.build-plugins\u002F5.develop-and-test","i-ph-flask",{"title":174,"path":175,"stem":176,"icon":177},"Publish and version","\u002Fbuild-plugins\u002Fpublish","5.build-plugins\u002F6.publish","i-ph-tag",{"title":179,"path":180,"stem":181,"icon":182},"Hooks","\u002Fbuild-plugins\u002Fhooks","5.build-plugins\u002F7.hooks","i-ph-anchor",{"title":184,"path":185,"stem":186,"icon":187},"Flows","\u002Fbuild-plugins\u002Fflows","5.build-plugins\u002F8.flows","i-ph-flow-arrow",{"title":189,"path":190,"stem":191,"icon":192},"Evals and quality gates","\u002Fbuild-plugins\u002Fevals","5.build-plugins\u002F9.evals","i-ph-seal-check",{"title":194,"icon":6,"path":195,"stem":196,"children":197,"page":6},"Run agents","\u002Fagents","6.agents",[198,203,208,213,218,223],{"title":199,"path":200,"stem":201,"icon":202},"Run jobs","\u002Fagents\u002Frun-jobs","6.agents\u002F1.run-jobs","i-ph-play",{"title":204,"path":205,"stem":206,"icon":207},"Models and keys","\u002Fagents\u002Fmodels-and-keys","6.agents\u002F2.models-and-keys","i-ph-sparkle",{"title":209,"path":210,"stem":211,"icon":212},"Delegation","\u002Fagents\u002Fdelegation","6.agents\u002F3.delegation","i-ph-git-fork",{"title":214,"path":215,"stem":216,"icon":217},"Contracts and limits","\u002Fagents\u002Fcontracts-and-limits","6.agents\u002F4.contracts-and-limits","i-ph-ruler",{"title":219,"path":220,"stem":221,"icon":222},"Runtime API","\u002Fagents\u002Fruntime-api","6.agents\u002F5.runtime-api","i-ph-plug",{"title":224,"path":225,"stem":226,"icon":227},"Approvals","\u002Fagents\u002Fapprovals","6.agents\u002F6.approvals","i-ph-hand-palm",{"title":229,"icon":6,"path":230,"stem":231,"children":232,"page":6},"Monitor","\u002Fmonitor","7.monitor",[233,238,243,248,253,258],{"title":234,"path":235,"stem":236,"icon":237},"Web UI","\u002Fmonitor\u002Fweb-ui","7.monitor\u002F0.web-ui","i-ph-monitor",{"title":239,"path":240,"stem":241,"icon":242},"Cost and usage","\u002Fmonitor\u002Fcost-and-usage","7.monitor\u002F1.cost-and-usage","i-ph-coins",{"title":244,"path":245,"stem":246,"icon":247},"Node health","\u002Fmonitor\u002Fnodes","7.monitor\u002F2.nodes","i-ph-heartbeat",{"title":249,"path":250,"stem":251,"icon":252},"Job history","\u002Fmonitor\u002Fhistory","7.monitor\u002F3.history","i-ph-clock-counter-clockwise",{"title":254,"path":255,"stem":256,"icon":257},"Tracing and metrics","\u002Fmonitor\u002Fobservability","7.monitor\u002F4.observability","i-ph-chart-line",{"title":259,"path":260,"stem":261,"icon":152},"Troubleshooting","\u002Fmonitor\u002Ftroubleshooting","7.monitor\u002F5.troubleshooting",{"title":263,"icon":6,"path":264,"stem":265,"children":266,"page":6},"Reference","\u002Freference","8.reference",[267,281,286,290,295,300],{"title":268,"icon":269,"path":270,"stem":271,"children":272,"page":6},"CLI","i-ph-terminal-window","\u002Freference\u002Fcli","8.reference\u002F1.cli",[273,277],{"title":274,"path":275,"stem":276},"orchestrator-zero","\u002Freference\u002Fcli\u002Forchestrator-zero","8.reference\u002F1.cli\u002F1.orchestrator-zero",{"title":278,"path":279,"stem":280},"orchestrator-zero-node","\u002Freference\u002Fcli\u002Forchestrator-zero-node","8.reference\u002F1.cli\u002F2.orchestrator-zero-node",{"title":282,"path":283,"stem":284,"icon":285},"oz0-plugin.yaml","\u002Freference\u002Fplugin-manifest","8.reference\u002F2.plugin-manifest","i-ph-file-code",{"title":287,"path":288,"stem":289,"icon":162},"Agent definition","\u002Freference\u002Fagent-definition","8.reference\u002F3.agent-definition",{"title":291,"path":292,"stem":293,"icon":294},"Ports","\u002Freference\u002Fports","8.reference\u002F4.ports","i-ph-network",{"title":296,"path":297,"stem":298,"icon":299},"Environment variables","\u002Freference\u002Fenvironment","8.reference\u002F5.environment","i-ph-brackets-curly",{"title":301,"path":302,"stem":303,"icon":304},"Files and directories","\u002Freference\u002Ffiles","8.reference\u002F6.files","i-ph-tree-structure",{"title":306,"icon":6,"path":307,"stem":308,"children":309,"page":6},"About","\u002Fabout","9.about",[310,315],{"title":311,"path":312,"stem":313,"icon":314},"Licensing","\u002Fabout\u002Flicensing","9.about\u002F1.licensing","i-ph-scales",{"title":316,"path":317,"stem":318,"icon":319},"About these docs","\u002Fabout\u002Fcontributing-docs","9.about\u002F2.contributing-docs","i-ph-pencil-simple",{"id":321,"title":287,"body":322,"description":829,"extension":830,"links":831,"meta":832,"navigation":833,"path":288,"seo":834,"stem":289,"__hash__":835},"docs\u002F8.reference\u002F3.agent-definition.md",{"type":323,"value":324,"toc":825},"minimark",[325,338,617,622,757,761,821],[326,327,328,329,333,334,337],"p",{},"An agent definition is a YAML file listed under ",[330,331,332],"code",{},"agents:"," in the manifest. Like the manifest, it is read strictly. See ",[335,336,159],"a",{"href":160}," for a guided tour.",[339,340,346],"pre",{"className":341,"code":342,"filename":343,"language":344,"meta":345,"style":345},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: reviewer\ndescription: Reviews pull requests.\nruntime: pydantic-ai\nmodel:\n  primary: anthropic\u002Fclaude-sonnet-5-5\n  fallback: [anthropic\u002Fclaude-haiku-4-5]\ninstructions: prompts\u002Freviewer.md\ntools: [github.get_pr, github.comment, oz.delegate]\ninput_schema: schemas\u002Freview-input.json\noutput_schema: schemas\u002Freview.json\nrequires:\n  labels: {gpu: \"true\"}\nlimits:\n  max_steps: 20\n  max_tokens: 200000\n  timeout: 10m\n  max_cost_usd: 2.0\ndelegation:\n  allow: [explainer]\n  max_depth: 1\n  max_children: 3\n","agents\u002Freviewer.yaml","yaml","",[330,347,348,365,376,387,396,407,424,435,461,472,483,491,519,527,539,550,561,572,580,595,606],{"__ignoreMap":345},[349,350,353,357,361],"span",{"class":351,"line":352},"line",1,[349,354,356],{"class":355},"swJcz","name",[349,358,360],{"class":359},"sMK4o",":",[349,362,364],{"class":363},"sfazB"," reviewer\n",[349,366,368,371,373],{"class":351,"line":367},2,[349,369,370],{"class":355},"description",[349,372,360],{"class":359},[349,374,375],{"class":363}," Reviews pull requests.\n",[349,377,379,382,384],{"class":351,"line":378},3,[349,380,381],{"class":355},"runtime",[349,383,360],{"class":359},[349,385,386],{"class":363}," pydantic-ai\n",[349,388,390,393],{"class":351,"line":389},4,[349,391,392],{"class":355},"model",[349,394,395],{"class":359},":\n",[349,397,399,402,404],{"class":351,"line":398},5,[349,400,401],{"class":355},"  primary",[349,403,360],{"class":359},[349,405,406],{"class":363}," anthropic\u002Fclaude-sonnet-5-5\n",[349,408,410,413,415,418,421],{"class":351,"line":409},6,[349,411,412],{"class":355},"  fallback",[349,414,360],{"class":359},[349,416,417],{"class":359}," [",[349,419,420],{"class":363},"anthropic\u002Fclaude-haiku-4-5",[349,422,423],{"class":359},"]\n",[349,425,427,430,432],{"class":351,"line":426},7,[349,428,429],{"class":355},"instructions",[349,431,360],{"class":359},[349,433,434],{"class":363}," prompts\u002Freviewer.md\n",[349,436,438,441,443,445,448,451,454,456,459],{"class":351,"line":437},8,[349,439,440],{"class":355},"tools",[349,442,360],{"class":359},[349,444,417],{"class":359},[349,446,447],{"class":363},"github.get_pr",[349,449,450],{"class":359},",",[349,452,453],{"class":363}," github.comment",[349,455,450],{"class":359},[349,457,458],{"class":363}," oz.delegate",[349,460,423],{"class":359},[349,462,464,467,469],{"class":351,"line":463},9,[349,465,466],{"class":355},"input_schema",[349,468,360],{"class":359},[349,470,471],{"class":363}," schemas\u002Freview-input.json\n",[349,473,475,478,480],{"class":351,"line":474},10,[349,476,477],{"class":355},"output_schema",[349,479,360],{"class":359},[349,481,482],{"class":363}," schemas\u002Freview.json\n",[349,484,486,489],{"class":351,"line":485},11,[349,487,488],{"class":355},"requires",[349,490,395],{"class":359},[349,492,494,497,499,502,505,507,510,513,516],{"class":351,"line":493},12,[349,495,496],{"class":355},"  labels",[349,498,360],{"class":359},[349,500,501],{"class":359}," {",[349,503,504],{"class":355},"gpu",[349,506,360],{"class":359},[349,508,509],{"class":359}," \"",[349,511,512],{"class":363},"true",[349,514,515],{"class":359},"\"",[349,517,518],{"class":359},"}\n",[349,520,522,525],{"class":351,"line":521},13,[349,523,524],{"class":355},"limits",[349,526,395],{"class":359},[349,528,530,533,535],{"class":351,"line":529},14,[349,531,532],{"class":355},"  max_steps",[349,534,360],{"class":359},[349,536,538],{"class":537},"sbssI"," 20\n",[349,540,542,545,547],{"class":351,"line":541},15,[349,543,544],{"class":355},"  max_tokens",[349,546,360],{"class":359},[349,548,549],{"class":537}," 200000\n",[349,551,553,556,558],{"class":351,"line":552},16,[349,554,555],{"class":355},"  timeout",[349,557,360],{"class":359},[349,559,560],{"class":363}," 10m\n",[349,562,564,567,569],{"class":351,"line":563},17,[349,565,566],{"class":355},"  max_cost_usd",[349,568,360],{"class":359},[349,570,571],{"class":537}," 2.0\n",[349,573,575,578],{"class":351,"line":574},18,[349,576,577],{"class":355},"delegation",[349,579,395],{"class":359},[349,581,583,586,588,590,593],{"class":351,"line":582},19,[349,584,585],{"class":355},"  allow",[349,587,360],{"class":359},[349,589,417],{"class":359},[349,591,592],{"class":363},"explainer",[349,594,423],{"class":359},[349,596,598,601,603],{"class":351,"line":597},20,[349,599,600],{"class":355},"  max_depth",[349,602,360],{"class":359},[349,604,605],{"class":537}," 1\n",[349,607,609,612,614],{"class":351,"line":608},21,[349,610,611],{"class":355},"  max_children",[349,613,360],{"class":359},[349,615,616],{"class":537}," 3\n",[618,619,621],"h2",{"id":620},"fields","Fields",[623,624,625,634,637,651,663,668,671,677,684,687,692,697,701,717,726,734,738,742],"field-group",{},[626,627,629,630,633],"field",{"name":356,"type":628,":required":512},"string","Lowercase letters, digits and dashes. Unique per tenant; jobs address the agent by it, on the task queue ",[330,631,632],{},"agent.\u003Cname>",".",[626,635,636],{"name":370,"type":628},"What the agent does. Agents that may delegate to this one see it.",[626,638,639,642,643,646,647,650],{"name":381,"type":628,":required":512},[330,640,641],{},"pydantic-ai"," (works today), ",[330,644,645],{},"harness:\u003Cname>"," (works today, with a harness plugin) or ",[330,648,649],{},"openai-agents"," (planned).",[626,652,654,655,658,659,662],{"name":653,"type":628},"model.primary","The model, as ",[330,656,657],{},"\u003Cprovider>\u002F\u003Cmodel>",", for example ",[330,660,661],{},"anthropic\u002Fclaude-sonnet-5-5",". Required unless the runtime is a harness.",[626,664,667],{"name":665,"type":666},"model.fallback","string[]","Models tried in order when the primary fails.",[626,669,670],{"name":429,"type":628},"The system prompt: a path to a file in the plugin.",[626,672,673,676],{"name":440,"type":666},[330,674,675],{},"\u003Ctool>.\u003Cfunction>"," names from the tenant's plugins, and built-ins. A tool from another plugin is a warning, since that plugin must be installed too.",[626,678,679,680,683],{"name":466,"type":628},"A path to a JSON Schema file. A job whose input does not match fails with ",[330,681,682],{},"InvalidInput"," before the agent starts.",[626,685,686],{"name":477,"type":628},"A path to a JSON Schema file. The model answers in that structure; a non-matching answer goes back to it, at most twice.",[626,688,691],{"name":689,"type":690},"requires.labels","map","Labels a node must have to run the agent.",[626,693,696],{"name":694,"type":695},"limits.max_steps","integer","Model calls per job. Default 50.",[626,698,700],{"name":699,"type":695},"limits.max_tokens","Input plus output tokens per job.",[626,702,705,706,709,710,713,714,633],{"name":703,"type":704},"limits.timeout","duration","How long a job may run, such as ",[330,707,708],{},"90s",", ",[330,711,712],{},"10m"," or ",[330,715,716],{},"1h30m",[626,718,721,722,725],{"name":719,"type":720},"limits.max_cost_usd","number","The default budget of the agent's jobs, in US dollars, for a job and every job it delegates to. ",[330,723,724],{},"run --budget"," overrides it for one job. Unset means no budget.",[626,727,729,730,733],{"name":728,"type":666},"delegation.allow","Agents ",[330,731,732],{},"oz.delegate"," may start.",[626,735,737],{"name":736,"type":695},"delegation.max_depth","How deep a chain of delegations may go. Unset means 1.",[626,739,741],{"name":740,"type":695},"delegation.max_children","Delegations per job. Unset means no limit.",[626,743,745,746,749,750,752,753,756],{"name":744,"type":690},"harness","Options for the harness, passed on as they are, for agents with ",[330,747,748],{},"runtime: harness:\u003Cname>",". See ",[335,751,144],{"href":145}," for the Claude Agent SDK's. ",[330,754,755],{},"requires_approval"," lists the harness's tools whose calls each wait for a person's approval, for a harness that asks before each call.",[618,758,760],{"id":759},"built-in-tools","Built-in tools",[762,763,764,780],"table",{},[765,766,767],"thead",{},[768,769,770,774,777],"tr",{},[771,772,773],"th",{},"Tool",[771,775,776],{},"Status",[771,778,779],{},"Does",[781,782,783,796,809],"tbody",{},[768,784,785,790,793],{},[786,787,788],"td",{},[330,789,732],{},[786,791,792],{},"Works today",[786,794,795],{},"Hands a task to an allowed agent and waits for its answer",[768,797,798,803,806],{},[786,799,800],{},[330,801,802],{},"oz.ask_human",[786,804,805],{},"Accepted by lint; planned",[786,807,808],{},"Asks a person and waits for the answer",[768,810,811,816,818],{},[786,812,813],{},[330,814,815],{},"oz.report_usage",[786,817,805],{},[786,819,820],{},"Reports the cost of a service the plugin called itself, so it lands on the job",[822,823,824],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":345,"searchDepth":367,"depth":367,"links":826},[827,828],{"id":620,"depth":367,"text":621},{"id":759,"depth":367,"text":760},"Every field of an agent's YAML file.","md",null,{},{"icon":162},{"title":287,"description":829},"0z9_POtXGa74q1je8OFUZBvhCcYYh9pmpKvQPw3XsZc",[837,839],{"title":282,"path":283,"stem":284,"description":838,"icon":285,"children":-1},"Every field of the plugin manifest, and the rules plugin lint checks.",{"title":291,"path":292,"stem":293,"description":840,"icon":294,"children":-1},"Every port a server and a node use, and who needs to reach it.",1791135413973]