[{"data":1,"prerenderedAt":3486},["ShallowReactive",2],{"navigation_docs":3,"docs-page:\u002Fbuild\u002Fparts\u002Fagents":1849,"docs-surround:\u002Fbuild\u002Fparts\u002Fagents":3481},[4,72,214,304,947,1040,1230,1504,1590,1701,1830],{"title":5,"path":6,"stem":7,"children":8,"icon":71},"Get started","\u002Fgetting-started","01.getting-started\u002F00.index",[9,10,15,20,25,36],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","01.getting-started\u002F01.introduction","i-ph-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","01.getting-started\u002F02.quickstart","i-ph-rocket-launch",{"title":21,"path":22,"stem":23,"icon":24},"Concepts","\u002Fgetting-started\u002Fconcepts","01.getting-started\u002F03.concepts","i-ph-book-open",{"title":26,"path":27,"stem":28,"children":29,"icon":31},"Install","\u002Fgetting-started\u002Finstall","01.getting-started\u002F04.install\u002F00.index",[30,32],{"title":26,"path":27,"stem":28,"icon":31},"i-ph-download-simple",{"title":33,"path":34,"stem":35},"Prepare the Linux sandbox","\u002Fgetting-started\u002Finstall\u002Flinux-sandbox","01.getting-started\u002F04.install\u002F01.linux-sandbox",{"title":37,"path":38,"stem":39,"children":40,"icon":42},"Web UI","\u002Fgetting-started\u002Fweb-ui","01.getting-started\u002F05.web-ui\u002F00.index",[41,43,47,51,55,59,63,67],{"title":37,"path":38,"stem":39,"icon":42},"i-ph-monitor",{"title":44,"path":45,"stem":46},"Choose a tenant","\u002Fgetting-started\u002Fweb-ui\u002Ftenants","01.getting-started\u002F05.web-ui\u002F01.tenants",{"title":48,"path":49,"stem":50},"Find a page","\u002Fgetting-started\u002Fweb-ui\u002Fnavigation","01.getting-started\u002F05.web-ui\u002F02.navigation",{"title":52,"path":53,"stem":54},"Use the chat drawer","\u002Fgetting-started\u002Fweb-ui\u002Fchats","01.getting-started\u002F05.web-ui\u002F03.chats",{"title":56,"path":57,"stem":58},"Create and edit records","\u002Fgetting-started\u002Fweb-ui\u002Fforms","01.getting-started\u002F05.web-ui\u002F04.forms",{"title":60,"path":61,"stem":62},"Keyboard and accessibility","\u002Fgetting-started\u002Fweb-ui\u002Faccessibility","01.getting-started\u002F05.web-ui\u002F05.accessibility",{"title":64,"path":65,"stem":66},"Accounts and permissions","\u002Fgetting-started\u002Fweb-ui\u002Faccounts","01.getting-started\u002F05.web-ui\u002F06.accounts",{"title":68,"path":69,"stem":70},"Console page directory","\u002Fgetting-started\u002Fweb-ui\u002Fpage-directory","01.getting-started\u002F05.web-ui\u002F07.page-directory",false,{"title":21,"path":73,"stem":74,"children":75,"icon":71},"\u002Fconcepts","02.concepts\u002F00.index",[76,77,82,87,92,123,128,143,166,185,204,209],{"title":21,"path":73,"stem":74},{"title":78,"path":79,"stem":80,"icon":81},"Architecture","\u002Fconcepts\u002Farchitecture","02.concepts\u002F01.architecture","i-ph-planet",{"title":83,"path":84,"stem":85,"icon":86},"Jobs and durability","\u002Fconcepts\u002Fjobs","02.concepts\u002F02.jobs","i-ph-infinity",{"title":88,"path":89,"stem":90,"icon":91},"Routing","\u002Fconcepts\u002Frouting","02.concepts\u002F03.routing","i-ph-path",{"title":93,"path":94,"stem":95,"children":96,"icon":98},"Security model","\u002Fconcepts\u002Fsecurity","02.concepts\u002F04.security\u002F00.index",[97,99,103,107,111,115,119],{"title":93,"path":94,"stem":95,"icon":98},"i-ph-shield-check",{"title":100,"path":101,"stem":102},"Node identity and tenant secrets","\u002Fconcepts\u002Fsecurity\u002Fidentity-and-secrets","02.concepts\u002F04.security\u002F01.identity-and-secrets",{"title":104,"path":105,"stem":106},"Plugin processes and operator exemptions","\u002Fconcepts\u002Fsecurity\u002Fplugins","02.concepts\u002F04.security\u002F02.plugins",{"title":108,"path":109,"stem":110},"Sandbox tiers and routing","\u002Fconcepts\u002Fsecurity\u002Fsandbox-tiers","02.concepts\u002F04.security\u002F03.sandbox-tiers",{"title":112,"path":113,"stem":114},"Sandbox egress rules","\u002Fconcepts\u002Fsecurity\u002Fegress","02.concepts\u002F04.security\u002F04.egress",{"title":116,"path":117,"stem":118},"Protected files and sandbox limits","\u002Fconcepts\u002Fsecurity\u002Fprotected-files","02.concepts\u002F04.security\u002F05.protected-files",{"title":120,"path":121,"stem":122},"Security assurance","\u002Fconcepts\u002Fsecurity\u002Fassurance","02.concepts\u002F04.security\u002F06.assurance",{"title":124,"path":125,"stem":126,"icon":127},"Temporal","\u002Fconcepts\u002Ftemporal","02.concepts\u002F05.temporal","i-ph-clock",{"title":129,"path":130,"stem":131,"children":132,"icon":134},"Limits and scaling","\u002Fconcepts\u002Flimits-and-scaling","02.concepts\u002F06.limits-and-scaling\u002F00.index",[133,135,139],{"title":129,"path":130,"stem":131,"icon":134},"i-ph-gauge",{"title":136,"path":137,"stem":138},"Tenant and queue limits","\u002Fconcepts\u002Flimits-and-scaling\u002Flimits","02.concepts\u002F06.limits-and-scaling\u002F01.limits",{"title":140,"path":141,"stem":142},"Capacity measurements","\u002Fconcepts\u002Flimits-and-scaling\u002Fmeasurements","02.concepts\u002F06.limits-and-scaling\u002F02.measurements",{"title":144,"path":145,"stem":146,"children":147,"icon":149},"Threat model","\u002Fconcepts\u002Fthreat-model","02.concepts\u002F07.threat-model\u002F00.index",[148,150,154,158,162],{"title":144,"path":145,"stem":146,"icon":149},"i-ph-crosshair",{"title":151,"path":152,"stem":153},"Trust boundaries and compromise","\u002Fconcepts\u002Fthreat-model\u002Ftrust-boundaries","02.concepts\u002F07.threat-model\u002F01.trust-boundaries",{"title":155,"path":156,"stem":157},"Harness and tool boundaries","\u002Fconcepts\u002Fthreat-model\u002Fharness-tools","02.concepts\u002F07.threat-model\u002F02.harness-tools",{"title":159,"path":160,"stem":161},"Known security gaps","\u002Fconcepts\u002Fthreat-model\u002Fknown-gaps","02.concepts\u002F07.threat-model\u002F03.known-gaps",{"title":163,"path":164,"stem":165},"Origins, sequences and tool results","\u002Fconcepts\u002Fthreat-model\u002Forigins-and-results","02.concepts\u002F07.threat-model\u002F04.origins-and-results",{"title":167,"path":168,"stem":169,"children":170,"icon":172},"Outbound connections","\u002Fconcepts\u002Foutbound-connections","02.concepts\u002F08.outbound-connections\u002F00.index",[171,173,177,181],{"title":167,"path":168,"stem":169,"icon":172},"i-ph-arrow-square-out",{"title":174,"path":175,"stem":176},"Server outbound connections","\u002Fconcepts\u002Foutbound-connections\u002Fserver","02.concepts\u002F08.outbound-connections\u002F01.server",{"title":178,"path":179,"stem":180},"Node and plugin outbound connections","\u002Fconcepts\u002Foutbound-connections\u002Fnodes-and-plugins","02.concepts\u002F08.outbound-connections\u002F02.nodes-and-plugins",{"title":182,"path":183,"stem":184},"Addresses a model provider fetches","\u002Fconcepts\u002Foutbound-connections\u002Fprovider-fetches","02.concepts\u002F08.outbound-connections\u002F03.provider-fetches",{"title":186,"path":187,"stem":188,"children":189,"icon":191},"Run receipts","\u002Fconcepts\u002Frun-receipts","02.concepts\u002F09.run-receipts\u002F00.index",[190,192,196,200],{"title":186,"path":187,"stem":188,"icon":191},"i-ph-receipt",{"title":193,"path":194,"stem":195},"Authority envelopes and delegation","\u002Fconcepts\u002Frun-receipts\u002Fauthority","02.concepts\u002F09.run-receipts\u002F01.authority",{"title":197,"path":198,"stem":199},"Call bindings and budget charges","\u002Fconcepts\u002Frun-receipts\u002Fcalls-and-charges","02.concepts\u002F09.run-receipts\u002F02.calls-and-charges",{"title":201,"path":202,"stem":203},"Verify run receipts offline","\u002Fconcepts\u002Frun-receipts\u002Fverify","02.concepts\u002F09.run-receipts\u002F03.verify",{"title":205,"path":206,"stem":207,"icon":208},"Delegation and identity","\u002Fconcepts\u002Fdelegation-and-identity","02.concepts\u002F10.delegation-and-identity","i-ph-identification-badge",{"title":210,"path":211,"stem":212,"icon":213},"How a tool call is decided","\u002Fconcepts\u002Fhow-a-tool-call-is-decided","02.concepts\u002F11.how-a-tool-call-is-decided","i-ph-list-checks",{"title":215,"path":216,"stem":217,"children":218,"icon":71},"Run","\u002Fagents","03.agents\u002F00.index",[219,221,226,231,236,240,245,250,268,299],{"title":220,"path":216,"stem":217},"Run agents",{"title":222,"path":223,"stem":224,"icon":225},"Run jobs","\u002Fagents\u002Frun-jobs","03.agents\u002F01.run-jobs","i-ph-play",{"title":227,"path":228,"stem":229,"icon":230},"Job history","\u002Fagents\u002Fhistory","03.agents\u002F02.history","i-ph-clock-counter-clockwise",{"title":232,"path":233,"stem":234,"icon":235},"Long jobs","\u002Fagents\u002Flong-jobs","03.agents\u002F03.long-jobs","i-ph-hourglass-medium",{"title":237,"path":238,"stem":239,"icon":235},"Waiting for events","\u002Fagents\u002Fwaiting-for-events","03.agents\u002F04.waiting-for-events",{"title":241,"path":242,"stem":243,"icon":244},"Delegation","\u002Fagents\u002Fdelegation","03.agents\u002F05.delegation","i-ph-git-fork",{"title":246,"path":247,"stem":248,"icon":249},"Colleagues and the board","\u002Fagents\u002Fcolleagues","03.agents\u002F06.colleagues","i-ph-chats-circle",{"title":251,"path":252,"stem":253,"children":254,"icon":249},"Conversations","\u002Fagents\u002Fconversations","03.agents\u002F07.conversations\u002F00.index",[255,256,260,264],{"title":251,"path":252,"stem":253,"icon":249},{"title":257,"path":258,"stem":259},"Conversation access and history","\u002Fagents\u002Fconversations\u002Faccess-and-history","03.agents\u002F07.conversations\u002F02.access-and-history",{"title":261,"path":262,"stem":263},"Use conversations from an app","\u002Fagents\u002Fconversations\u002Fapps","03.agents\u002F07.conversations\u002F03.apps",{"title":265,"path":266,"stem":267},"Hand off a conversation and use Ask","\u002Fagents\u002Fconversations\u002Fhandoffs-and-ask","03.agents\u002F07.conversations\u002F04.handoffs-and-ask",{"title":269,"path":270,"stem":271,"children":272,"icon":274},"Decide an approval","\u002Fagents\u002Fapprovals","03.agents\u002F08.approvals\u002F00.index",[273,275,279,283,287,291,295],{"title":269,"path":270,"stem":271,"icon":274},"i-ph-hand-palm",{"title":276,"path":277,"stem":278},"Configure approval ownership and deadlines","\u002Fagents\u002Fapprovals\u002Fconfigure","03.agents\u002F08.approvals\u002F02.configure",{"title":280,"path":281,"stem":282},"How approval decisions bind a call","\u002Fagents\u002Fapprovals\u002Fsecurity","03.agents\u002F08.approvals\u002F03.security",{"title":284,"path":285,"stem":286},"Edit an approval or allow repeated calls","\u002Fagents\u002Fapprovals\u002Fedits-and-repeat-calls","03.agents\u002F08.approvals\u002F04.edits-and-repeat-calls",{"title":288,"path":289,"stem":290},"Resolve loop, budget and recovery waits","\u002Fagents\u002Fapprovals\u002Frecovery","03.agents\u002F08.approvals\u002F05.recovery",{"title":292,"path":293,"stem":294},"Review approval statistics and test cards","\u002Fagents\u002Fapprovals\u002Fstatistics","03.agents\u002F08.approvals\u002F06.statistics",{"title":296,"path":297,"stem":298},"Decide approvals from an app","\u002Fagents\u002Fapprovals\u002Fapps","03.agents\u002F08.approvals\u002F07.apps",{"title":300,"path":301,"stem":302,"icon":303},"Asking people","\u002Fagents\u002Fasking-people","03.agents\u002F09.asking-people","i-ph-chat-circle-dots",{"title":305,"path":306,"stem":307,"children":308,"icon":71},"Build","\u002Fbuild","04.build\u002F00.index",[309,310,655,844],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313,"children":314,"icon":71},"Plugins","\u002Fbuild\u002Fplugins","04.build\u002F01.plugins\u002F00.index",[315,316,321,352,357,362,367,378,397,412,417,422,427,442,447,452,457,472,476,481,492,497,502,640],{"title":311,"path":312,"stem":313},{"title":317,"path":318,"stem":319,"icon":320},"What a plugin is","\u002Fbuild\u002Fplugins\u002Foverview","04.build\u002F01.plugins\u002F01.overview","i-ph-puzzle-piece",{"title":322,"path":323,"stem":324,"children":325,"icon":327},"Install a plugin","\u002Fbuild\u002Fplugins\u002Finstall","04.build\u002F01.plugins\u002F02.install\u002F00.index",[326,328,332,336,340,344,348],{"title":322,"path":323,"stem":324,"icon":327},"i-ph-package",{"title":329,"path":330,"stem":331,"icon":327},"Review an install","\u002Fbuild\u002Fplugins\u002Finstall\u002Freview","04.build\u002F01.plugins\u002F02.install\u002F01.review",{"title":333,"path":334,"stem":335,"icon":327},"Install from a source","\u002Fbuild\u002Fplugins\u002Finstall\u002Fsources","04.build\u002F01.plugins\u002F02.install\u002F02.sources",{"title":337,"path":338,"stem":339,"icon":327},"Update a plugin","\u002Fbuild\u002Fplugins\u002Finstall\u002Fupdate","04.build\u002F01.plugins\u002F02.install\u002F03.update",{"title":341,"path":342,"stem":343,"icon":327},"Roll out a plugin","\u002Fbuild\u002Fplugins\u002Finstall\u002Frollouts","04.build\u002F01.plugins\u002F02.install\u002F04.rollouts",{"title":345,"path":346,"stem":347,"icon":327},"Grant access between plugins","\u002Fbuild\u002Fplugins\u002Finstall\u002Fgrants","04.build\u002F01.plugins\u002F02.install\u002F05.grants",{"title":349,"path":350,"stem":351,"icon":327},"Retire or remove a plugin","\u002Fbuild\u002Fplugins\u002Finstall\u002Fretire-and-remove","04.build\u002F01.plugins\u002F02.install\u002F06.retire-and-remove",{"title":353,"path":354,"stem":355,"icon":356},"Configure an installed plugin","\u002Fbuild\u002Fplugins\u002Fconfigure","04.build\u002F01.plugins\u002F03.configure","i-ph-sliders-horizontal",{"title":358,"path":359,"stem":360,"icon":361},"Sets","\u002Fbuild\u002Fplugins\u002Fsets","04.build\u002F01.plugins\u002F04.sets","i-ph-stack",{"title":363,"path":364,"stem":365,"icon":366},"Your first plugin","\u002Fbuild\u002Fplugins\u002Ffirst-plugin","04.build\u002F01.plugins\u002F05.first-plugin","i-ph-hammer",{"title":368,"path":369,"stem":370,"children":371,"icon":373},"Structure a plugin","\u002Fbuild\u002Fplugins\u002Fstructure","04.build\u002F01.plugins\u002F06.structure\u002F00.index",[372,374],{"title":368,"path":369,"stem":370,"icon":373},"i-ph-tree-structure",{"title":375,"path":376,"stem":377,"icon":373},"Plugin structure rules","\u002Fbuild\u002Fplugins\u002Fstructure\u002Flint-rules","04.build\u002F01.plugins\u002F06.structure\u002F01.lint-rules",{"title":379,"path":380,"stem":381,"children":382,"icon":384},"Develop a plugin","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test","04.build\u002F01.plugins\u002F07.develop-and-test\u002F00.index",[383,385,389,393],{"title":379,"path":380,"stem":381,"icon":384},"i-ph-flask",{"title":386,"path":387,"stem":388,"icon":384},"Check a plugin candidate","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Fcandidate-checks","04.build\u002F01.plugins\u002F07.develop-and-test\u002F01.candidate-checks",{"title":390,"path":391,"stem":392,"icon":384},"Lint and test a plugin","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Flint-and-tests","04.build\u002F01.plugins\u002F07.develop-and-test\u002F02.lint-and-tests",{"title":394,"path":395,"stem":396,"icon":384},"Run failure drills","\u002Fbuild\u002Fplugins\u002Fdevelop-and-test\u002Ftests-and-drills","04.build\u002F01.plugins\u002F07.develop-and-test\u002F03.tests-and-drills",{"title":398,"path":399,"stem":400,"children":401,"icon":403},"Build in Studio","\u002Fbuild\u002Fplugins\u002Fstudio","04.build\u002F01.plugins\u002F08.studio\u002F00.index",[402,404,408],{"title":398,"path":399,"stem":400,"icon":403},"i-ph-code",{"title":405,"path":406,"stem":407,"icon":403},"Test and explain a draft","\u002Fbuild\u002Fplugins\u002Fstudio\u002Ftest-and-explain","04.build\u002F01.plugins\u002F08.studio\u002F01.test-and-explain",{"title":409,"path":410,"stem":411,"icon":403},"Release a workspace plugin","\u002Fbuild\u002Fplugins\u002Fstudio\u002Frelease","04.build\u002F01.plugins\u002F08.studio\u002F02.release",{"title":413,"path":414,"stem":415,"icon":416},"The build kit","\u002Fbuild\u002Fplugins\u002Fclaude-code","04.build\u002F01.plugins\u002F09.claude-code","i-ph-sparkle",{"title":418,"path":419,"stem":420,"icon":421},"Example: support triage","\u002Fbuild\u002Fplugins\u002Fexample-support-triage","04.build\u002F01.plugins\u002F10.example-support-triage","i-ph-lifebuoy",{"title":423,"path":424,"stem":425,"icon":426},"Publish and version","\u002Fbuild\u002Fplugins\u002Fpublish","04.build\u002F01.plugins\u002F11.publish","i-ph-tag",{"title":428,"path":429,"stem":430,"children":431,"icon":433},"List a plugin","\u002Fbuild\u002Fplugins\u002Flist-a-plugin","04.build\u002F01.plugins\u002F12.list-a-plugin\u002F00.index",[432,434,438],{"title":428,"path":429,"stem":430,"icon":433},"i-ph-storefront",{"title":435,"path":436,"stem":437,"icon":433},"Hub review checks","\u002Fbuild\u002Fplugins\u002Flist-a-plugin\u002Freview","04.build\u002F01.plugins\u002F12.list-a-plugin\u002F01.review",{"title":439,"path":440,"stem":441,"icon":433},"Maintain a listing","\u002Fbuild\u002Fplugins\u002Flist-a-plugin\u002Fmaintain","04.build\u002F01.plugins\u002F12.list-a-plugin\u002F02.maintain",{"title":443,"path":444,"stem":445,"icon":446},"The catalog","\u002Fbuild\u002Fplugins\u002Fcatalog","04.build\u002F01.plugins\u002F13.catalog","i-ph-books",{"title":448,"path":449,"stem":450,"icon":451},"Folders, bundles and OCI","\u002Fbuild\u002Fplugins\u002Fsources","04.build\u002F01.plugins\u002F14.sources","i-ph-archive",{"title":453,"path":454,"stem":455,"icon":456},"The workspace","\u002Fbuild\u002Fplugins\u002Fworkspace","04.build\u002F01.plugins\u002F15.workspace","i-ph-folder-notch-open",{"title":458,"path":459,"stem":460,"children":461,"icon":463},"Use a plugin index","\u002Fbuild\u002Fplugins\u002Findexes","04.build\u002F01.plugins\u002F16.indexes\u002F00.index",[462,464,468],{"title":458,"path":459,"stem":460,"icon":463},"i-ph-seal-check",{"title":465,"path":466,"stem":467,"icon":463},"Read index version records","\u002Fbuild\u002Fplugins\u002Findexes\u002Fversion-records","04.build\u002F01.plugins\u002F16.indexes\u002F01.version-records",{"title":469,"path":470,"stem":471,"icon":463},"Manage plugin indexes","\u002Fbuild\u002Fplugins\u002Findexes\u002Fmanage","04.build\u002F01.plugins\u002F16.indexes\u002F02.manage",{"title":473,"path":474,"stem":475,"icon":327},"Existing MCP packages","\u002Fbuild\u002Fplugins\u002Fpackages","04.build\u002F01.plugins\u002F17.packages",{"title":477,"path":478,"stem":479,"icon":480},"MCP servers from container images","\u002Fbuild\u002Fplugins\u002Fcontainer-images","04.build\u002F01.plugins\u002F18.container-images","i-ph-cube",{"title":482,"path":483,"stem":484,"children":485,"icon":487},"Import agent plugins","\u002Fbuild\u002Fplugins\u002Fclaude-code-and-agent-plugins","04.build\u002F01.plugins\u002F19.claude-code-and-agent-plugins\u002F00.index",[486,488],{"title":482,"path":483,"stem":484,"icon":487},"i-ph-arrow-square-in",{"title":489,"path":490,"stem":491,"icon":487},"Import from registries","\u002Fbuild\u002Fplugins\u002Fclaude-code-and-agent-plugins\u002Fmarketplaces","04.build\u002F01.plugins\u002F19.claude-code-and-agent-plugins\u002F01.marketplaces",{"title":493,"path":494,"stem":495,"icon":496},"GitHub","\u002Fbuild\u002Fplugins\u002Fgithub","04.build\u002F01.plugins\u002F20.github","i-ph-github-logo",{"title":498,"path":499,"stem":500,"icon":501},"Known vulnerabilities","\u002Fbuild\u002Fplugins\u002Fvulnerabilities","04.build\u002F01.plugins\u002F21.vulnerabilities","i-ph-shield-warning",{"title":503,"path":504,"stem":505,"children":506,"icon":71},"Verified plugins","\u002Fbuild\u002Fplugins\u002Fverified","04.build\u002F01.plugins\u002F22.verified\u002F01.index",[507,508,513,518,523,528,533,538,543,548,553,558,580,585,589,594,599,604,608,612,617,622,626],{"title":503,"path":504,"stem":505,"icon":463},{"title":509,"path":510,"stem":511,"icon":512},"ai.oz0\u002Fweb","\u002Fbuild\u002Fplugins\u002Fverified\u002Fweb","04.build\u002F01.plugins\u002F22.verified\u002F02.web","i-ph-globe",{"title":514,"path":515,"stem":516,"icon":517},"ai.oz0\u002Fnet-diag","\u002Fbuild\u002Fplugins\u002Fverified\u002Fnet-diag","04.build\u002F01.plugins\u002F22.verified\u002F03.net-diag","i-ph-network",{"title":519,"path":520,"stem":521,"icon":522},"ai.oz0\u002Fcve-triage","\u002Fbuild\u002Fplugins\u002Fverified\u002Fcve-triage","04.build\u002F01.plugins\u002F22.verified\u002F04.cve-triage","i-ph-bug",{"title":524,"path":525,"stem":526,"icon":527},"ai.oz0\u002Fhost-health","\u002Fbuild\u002Fplugins\u002Fverified\u002Fhost-health","04.build\u002F01.plugins\u002F22.verified\u002F05.host-health","i-ph-heartbeat",{"title":529,"path":530,"stem":531,"icon":532},"ai.oz0\u002Fpr-reviewer","\u002Fbuild\u002Fplugins\u002Fverified\u002Fpr-reviewer","04.build\u002F01.plugins\u002F22.verified\u002F06.pr-reviewer","i-ph-git-pull-request",{"title":534,"path":535,"stem":536,"icon":537},"Slack","\u002Fbuild\u002Fplugins\u002Fverified\u002Fslack","04.build\u002F01.plugins\u002F22.verified\u002F07.slack","i-ph-slack-logo",{"title":539,"path":540,"stem":541,"icon":542},"Discord","\u002Fbuild\u002Fplugins\u002Fverified\u002Fdiscord","04.build\u002F01.plugins\u002F22.verified\u002F08.discord","i-ph-discord-logo",{"title":544,"path":545,"stem":546,"icon":547},"Microsoft Teams","\u002Fbuild\u002Fplugins\u002Fverified\u002Fteams","04.build\u002F01.plugins\u002F22.verified\u002F09.teams","i-ph-microsoft-teams-logo",{"title":549,"path":550,"stem":551,"icon":552},"ai.oz0\u002Fai-spend","\u002Fbuild\u002Fplugins\u002Fverified\u002Fai-spend","04.build\u002F01.plugins\u002F22.verified\u002F10.ai-spend","i-ph-coins",{"title":554,"path":555,"stem":556,"icon":557},"ai.oz0\u002Fa2a-remote","\u002Fbuild\u002Fplugins\u002Fverified\u002Fa2a-remote","04.build\u002F01.plugins\u002F22.verified\u002F11.a2a-remote","i-ph-arrows-left-right",{"title":559,"path":560,"stem":561,"children":562,"icon":98},"Guardrails","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F00.index",[563,564,568,572,576],{"title":559,"path":560,"stem":561,"icon":98},{"title":565,"path":566,"stem":567,"icon":98},"Configure guardrails","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fsettings","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F01.settings",{"title":569,"path":570,"stem":571,"icon":98},"Check classified text","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fclassified-text","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F02.classified-text",{"title":573,"path":574,"stem":575,"icon":98},"Check shell commands","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fcommands","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F03.commands",{"title":577,"path":578,"stem":579,"icon":98},"Guardrail coverage and limits","\u002Fbuild\u002Fplugins\u002Fverified\u002Fguardrails\u002Fintent-and-limits","04.build\u002F01.plugins\u002F22.verified\u002F12.guardrails\u002F04.intent-and-limits",{"title":581,"path":582,"stem":583,"icon":584},"ai.oz0\u002Fmemory","\u002Fbuild\u002Fplugins\u002Fverified\u002Fmemory","04.build\u002F01.plugins\u002F22.verified\u002F13.memory","i-ph-brain",{"title":586,"path":587,"stem":588,"icon":416},"ai.oz0\u002Fsetup-assistant","\u002Fbuild\u002Fplugins\u002Fverified\u002Fsetup-assistant","04.build\u002F01.plugins\u002F22.verified\u002F14.setup-assistant",{"title":590,"path":591,"stem":592,"icon":593},"ai.oz0\u002Fpublic-access","\u002Fbuild\u002Fplugins\u002Fverified\u002Fpublic-access","04.build\u002F01.plugins\u002F22.verified\u002F15.public-access","i-ph-files",{"title":595,"path":596,"stem":597,"icon":598},"ai.oz0\u002Femail","\u002Fbuild\u002Fplugins\u002Fverified\u002Femail","04.build\u002F01.plugins\u002F22.verified\u002F16.email","i-ph-envelope-simple",{"title":600,"path":601,"stem":602,"icon":603},"Atlassian Cloud","\u002Fbuild\u002Fplugins\u002Fverified\u002Fatlassian","04.build\u002F01.plugins\u002F22.verified\u002F17.atlassian","i-ph-kanban",{"title":605,"path":606,"stem":607,"icon":603},"Atlassian Data Center","\u002Fbuild\u002Fplugins\u002Fverified\u002Fatlassian-dc","04.build\u002F01.plugins\u002F22.verified\u002F18.atlassian-dc",{"title":609,"path":610,"stem":611,"icon":421},"ServiceNow","\u002Fbuild\u002Fplugins\u002Fverified\u002Fservicenow","04.build\u002F01.plugins\u002F22.verified\u002F19.servicenow",{"title":613,"path":614,"stem":615,"icon":616},"GitLab","\u002Fbuild\u002Fplugins\u002Fverified\u002Fgitlab","04.build\u002F01.plugins\u002F22.verified\u002F20.gitlab","i-ph-git-merge",{"title":618,"path":619,"stem":620,"icon":621},"Support triage","\u002Fbuild\u002Fplugins\u002Fverified\u002Fsupport-triage","04.build\u002F01.plugins\u002F22.verified\u002F21.support-triage","i-ph-ticket",{"title":623,"path":624,"stem":625,"icon":361},"Essentials","\u002Fbuild\u002Fplugins\u002Fverified\u002Fessentials","04.build\u002F01.plugins\u002F22.verified\u002F22.essentials",{"title":627,"path":628,"stem":629,"children":630,"icon":532},"Plugin improver","\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver","04.build\u002F01.plugins\u002F22.verified\u002F23.plugin-improver\u002F00.index",[631,632,636],{"title":627,"path":628,"stem":629,"icon":532},{"title":633,"path":634,"stem":635,"icon":532},"How an improvement runs","\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver\u002Fjob-lifecycle","04.build\u002F01.plugins\u002F22.verified\u002F23.plugin-improver\u002F01.job-lifecycle",{"title":637,"path":638,"stem":639,"icon":532},"Improver limits and records","\u002Fbuild\u002Fplugins\u002Fverified\u002Fplugin-improver\u002Flimits-and-records","04.build\u002F01.plugins\u002F22.verified\u002F23.plugin-improver\u002F02.limits-and-records",{"title":641,"path":642,"stem":643,"children":644,"icon":646},"Plugin size limits","\u002Fbuild\u002Fplugins\u002Flimits","04.build\u002F01.plugins\u002F23.limits\u002F00.index",[645,647,651],{"title":641,"path":642,"stem":643,"icon":646},"i-ph-ruler",{"title":648,"path":649,"stem":650,"icon":646},"Documentation limits","\u002Fbuild\u002Fplugins\u002Flimits\u002Fdocumentation","04.build\u002F01.plugins\u002F23.limits\u002F01.documentation",{"title":652,"path":653,"stem":654,"icon":646},"Artifact and index limits","\u002Fbuild\u002Fplugins\u002Flimits\u002Fartifacts","04.build\u002F01.plugins\u002F23.limits\u002F02.artifacts",{"title":656,"path":657,"stem":658,"children":659,"icon":71},"Parts","\u002Fbuild\u002Fparts","04.build\u002F02.parts\u002F00.index",[660,662,667,672,690,721,726,730,741,756,761,776,791,814,818,823,828,839],{"title":661,"path":657,"stem":658},"Plugin parts",{"title":663,"path":664,"stem":665,"icon":666},"Agents","\u002Fbuild\u002Fparts\u002Fagents","04.build\u002F02.parts\u002F01.agents","i-ph-robot",{"title":668,"path":669,"stem":670,"icon":671},"What an agent combines","\u002Fbuild\u002Fparts\u002Fwhat-an-agent-combines","04.build\u002F02.parts\u002F02.what-an-agent-combines","i-ph-intersect-three",{"title":673,"path":674,"stem":675,"children":676,"icon":646},"Agent contracts","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F00.index",[677,678,682,686],{"title":673,"path":674,"stem":675,"icon":646},{"title":679,"path":680,"stem":681,"icon":646},"Agent failure kinds","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits\u002Ffailures","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F01.failures",{"title":683,"path":684,"stem":685,"icon":646},"Agent limits","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits\u002Flimits","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F02.limits",{"title":687,"path":688,"stem":689,"icon":646},"Agent budgets","\u002Fbuild\u002Fparts\u002Fcontracts-and-limits\u002Fbudgets","04.build\u002F02.parts\u002F03.contracts-and-limits\u002F03.budgets",{"title":691,"path":692,"stem":693,"children":694,"icon":696},"Write a tool","\u002Fbuild\u002Fparts\u002Ftools","04.build\u002F02.parts\u002F04.tools\u002F00.index",[695,697,701,705,709,713,717],{"title":691,"path":692,"stem":693,"icon":696},"i-ph-wrench",{"title":698,"path":699,"stem":700,"icon":696},"Describe tool functions","\u002Fbuild\u002Fparts\u002Ftools\u002Fdefinitions","04.build\u002F02.parts\u002F04.tools\u002F01.definitions",{"title":702,"path":703,"stem":704,"icon":696},"Return results and files","\u002Fbuild\u002Fparts\u002Ftools\u002Fresults-and-files","04.build\u002F02.parts\u002F04.tools\u002F02.results-and-files",{"title":706,"path":707,"stem":708,"icon":696},"Handle tool call lifecycle","\u002Fbuild\u002Fparts\u002Ftools\u002Fcall-lifecycle","04.build\u002F02.parts\u002F04.tools\u002F03.call-lifecycle",{"title":710,"path":711,"stem":712,"icon":696},"Pin tool definitions","\u002Fbuild\u002Fparts\u002Ftools\u002Fsnapshots","04.build\u002F02.parts\u002F04.tools\u002F04.snapshots",{"title":714,"path":715,"stem":716,"icon":696},"Call a model from a tool","\u002Fbuild\u002Fparts\u002Ftools\u002Fmodel-calls","04.build\u002F02.parts\u002F04.tools\u002F05.model-calls",{"title":718,"path":719,"stem":720,"icon":696},"Tool labels and approvals","\u002Fbuild\u002Fparts\u002Ftools\u002Fpolicy","04.build\u002F02.parts\u002F04.tools\u002F06.policy",{"title":722,"path":723,"stem":724,"icon":725},"TypeScript tools","\u002Fbuild\u002Fparts\u002Ftypescript-tools","04.build\u002F02.parts\u002F05.typescript-tools","i-ph-file-code",{"title":727,"path":728,"stem":729,"icon":725},"Import an OpenAPI document","\u002Fbuild\u002Fparts\u002Fopenapi-import","04.build\u002F02.parts\u002F06.openapi-import",{"title":731,"path":732,"stem":733,"children":734,"icon":736},"Write and load skills","\u002Fbuild\u002Fparts\u002Fskills","04.build\u002F02.parts\u002F07.skills\u002F00.index",[735,737],{"title":731,"path":732,"stem":733,"icon":736},"i-ph-graduation-cap",{"title":738,"path":739,"stem":740,"icon":736},"Review skill use and proposals","\u002Fbuild\u002Fparts\u002Fskills\u002Fusage-and-proposals","04.build\u002F02.parts\u002F07.skills\u002F01.usage-and-proposals",{"title":742,"path":743,"stem":744,"children":745,"icon":747},"Write a flow","\u002Fbuild\u002Fparts\u002Fflows","04.build\u002F02.parts\u002F08.flows\u002F00.index",[746,748,752],{"title":742,"path":743,"stem":744,"icon":747},"i-ph-flow-arrow",{"title":749,"path":750,"stem":751,"icon":747},"Flow steps and expressions","\u002Fbuild\u002Fparts\u002Fflows\u002Fsteps-and-expressions","04.build\u002F02.parts\u002F08.flows\u002F01.steps-and-expressions",{"title":753,"path":754,"stem":755,"icon":747},"Expose and explain flows","\u002Fbuild\u002Fparts\u002Fflows\u002Fflow-tools","04.build\u002F02.parts\u002F08.flows\u002F02.flow-tools",{"title":757,"path":758,"stem":759,"icon":760},"Hooks","\u002Fbuild\u002Fparts\u002Fhooks","04.build\u002F02.parts\u002F09.hooks","i-ph-anchor",{"title":762,"path":763,"stem":764,"children":765,"icon":767},"Declare an event source","\u002Fbuild\u002Fparts\u002Fevent-sources","04.build\u002F02.parts\u002F10.event-sources\u002F00.index",[766,768,772],{"title":762,"path":763,"stem":764,"icon":767},"i-ph-broadcast",{"title":769,"path":770,"stem":771,"icon":767},"Bind and answer deliveries","\u002Fbuild\u002Fparts\u002Fevent-sources\u002Fdelivery-binding","04.build\u002F02.parts\u002F10.event-sources\u002F01.delivery-binding",{"title":773,"path":774,"stem":775,"icon":767},"Use platform events","\u002Fbuild\u002Fparts\u002Fevent-sources\u002Fplatform-events","04.build\u002F02.parts\u002F10.event-sources\u002F02.platform-events",{"title":777,"path":778,"stem":779,"children":780,"icon":782},"Declare a connection","\u002Fbuild\u002Fparts\u002Fconnections","04.build\u002F02.parts\u002F11.connections\u002F00.index",[781,783,787],{"title":777,"path":778,"stem":779,"icon":782},"i-ph-plugs-connected",{"title":784,"path":785,"stem":786,"icon":782},"Connection token lifecycle","\u002Fbuild\u002Fparts\u002Fconnections\u002Ftoken-lifecycle","04.build\u002F02.parts\u002F11.connections\u002F01.token-lifecycle",{"title":788,"path":789,"stem":790,"icon":782},"Connection setup and security","\u002Fbuild\u002Fparts\u002Fconnections\u002Fsetup-and-security","04.build\u002F02.parts\u002F11.connections\u002F02.setup-and-security",{"title":792,"path":793,"stem":794,"children":795,"icon":797},"Choose a harness","\u002Fbuild\u002Fparts\u002Fharnesses","04.build\u002F02.parts\u002F12.harnesses\u002F00.index",[796,798,802,806,810],{"title":792,"path":793,"stem":794,"icon":797},"i-ph-cpu",{"title":799,"path":800,"stem":801,"icon":797},"Harness tool controls","\u002Fbuild\u002Fparts\u002Fharnesses\u002Ftool-controls","04.build\u002F02.parts\u002F12.harnesses\u002F01.tool-controls",{"title":803,"path":804,"stem":805,"icon":797},"Recover a harness session","\u002Fbuild\u002Fparts\u002Fharnesses\u002Frecovery","04.build\u002F02.parts\u002F12.harnesses\u002F02.recovery",{"title":807,"path":808,"stem":809,"icon":797},"Write a harness","\u002Fbuild\u002Fparts\u002Fharnesses\u002Fcustom-harnesses","04.build\u002F02.parts\u002F12.harnesses\u002F03.custom-harnesses",{"title":811,"path":812,"stem":813,"icon":797},"Use an ACP agent","\u002Fbuild\u002Fparts\u002Fharnesses\u002Facp","04.build\u002F02.parts\u002F12.harnesses\u002F04.acp",{"title":815,"path":816,"stem":817,"icon":782},"Bring your own agent","\u002Fbuild\u002Fparts\u002Fbring-your-own-agent","04.build\u002F02.parts\u002F13.bring-your-own-agent",{"title":819,"path":820,"stem":821,"icon":822},"Records and start-up text","\u002Fbuild\u002Fparts\u002Frecords-and-startup","04.build\u002F02.parts\u002F14.records-and-startup","i-ph-database",{"title":824,"path":825,"stem":826,"icon":827},"Addresses","\u002Fbuild\u002Fparts\u002Faddresses","04.build\u002F02.parts\u002F15.addresses","i-ph-signpost",{"title":829,"path":830,"stem":831,"children":832,"icon":834},"Define a routine","\u002Fbuild\u002Fparts\u002Froutines","04.build\u002F02.parts\u002F16.routines\u002F00.index",[833,835],{"title":829,"path":830,"stem":831,"icon":834},"i-ph-clock-clockwise",{"title":836,"path":837,"stem":838,"icon":834},"Routine permissions and outputs","\u002Fbuild\u002Fparts\u002Froutines\u002Foutputs-and-permissions","04.build\u002F02.parts\u002F16.routines\u002F01.outputs-and-permissions",{"title":840,"path":841,"stem":842,"icon":843},"When to split an agent","\u002Fbuild\u002Fparts\u002Fwhen-to-split-an-agent","04.build\u002F02.parts\u002F17.when-to-split-an-agent","i-ph-arrows-split",{"title":845,"path":846,"stem":847,"children":848,"icon":71},"Apps on OZ","\u002Fbuild\u002Fapps","04.build\u002F03.apps\u002F00.index",[849,851,862,867,872,876,880,884,894,908,913,928,942],{"title":850,"path":846,"stem":847},"Applications and clients",{"title":852,"path":853,"stem":854,"children":855,"icon":857},"Use the runtime API","\u002Fbuild\u002Fapps\u002Fruntime-api","04.build\u002F03.apps\u002F01.runtime-api\u002F00.index",[856,858],{"title":852,"path":853,"stem":854,"icon":857},"i-ph-plug",{"title":859,"path":860,"stem":861,"icon":857},"Runtime API authentication","\u002Fbuild\u002Fapps\u002Fruntime-api\u002Fauthentication","04.build\u002F03.apps\u002F01.runtime-api\u002F01.authentication",{"title":863,"path":864,"stem":865,"icon":866},"Python SDK","\u002Fbuild\u002Fapps\u002Fsdk-python","04.build\u002F03.apps\u002F02.sdk-python","i-ph-file-py",{"title":868,"path":869,"stem":870,"icon":871},"TypeScript SDK","\u002Fbuild\u002Fapps\u002Fsdk-typescript","04.build\u002F03.apps\u002F03.sdk-typescript","i-ph-file-ts",{"title":873,"path":874,"stem":875,"icon":725},"Go SDK","\u002Fbuild\u002Fapps\u002Fsdk-go","04.build\u002F03.apps\u002F04.sdk-go",{"title":877,"path":878,"stem":879,"icon":782},"AG-UI for your apps","\u002Fbuild\u002Fapps\u002Fag-ui","04.build\u002F03.apps\u002F05.ag-ui",{"title":881,"path":882,"stem":883,"icon":249},"A chat in your own app","\u002Fbuild\u002Fapps\u002Fchat-app","04.build\u002F03.apps\u002F06.chat-app",{"title":885,"path":886,"stem":887,"children":888,"icon":767},"Follow live jobs","\u002Fbuild\u002Fapps\u002Flive-feeds","04.build\u002F03.apps\u002F07.live-feeds\u002F00.index",[889,890],{"title":885,"path":886,"stem":887,"icon":767},{"title":891,"path":892,"stem":893,"icon":767},"Feed access and browser streams","\u002Fbuild\u002Fapps\u002Flive-feeds\u002Fbrowser-and-access","04.build\u002F03.apps\u002F07.live-feeds\u002F01.browser-and-access",{"title":895,"path":896,"stem":897,"children":898,"icon":782},"Call agents over MCP","\u002Fbuild\u002Fapps\u002Fmcp-server","04.build\u002F03.apps\u002F08.mcp-server\u002F00.index",[899,900,904],{"title":895,"path":896,"stem":897,"icon":782},{"title":901,"path":902,"stem":903,"icon":782},"MCP client OAuth","\u002Fbuild\u002Fapps\u002Fmcp-server\u002Foauth","04.build\u002F03.apps\u002F08.mcp-server\u002F01.oauth",{"title":905,"path":906,"stem":907,"icon":782},"MCP security and limits","\u002Fbuild\u002Fapps\u002Fmcp-server\u002Fsecurity-and-limits","04.build\u002F03.apps\u002F08.mcp-server\u002F02.security-and-limits",{"title":909,"path":910,"stem":911,"icon":912},"A2A agents","\u002Fbuild\u002Fapps\u002Fa2a","04.build\u002F03.apps\u002F09.a2a","i-ph-share-network",{"title":914,"path":915,"stem":916,"children":917,"icon":919},"Run a remote agent","\u002Fbuild\u002Fapps\u002Fremote-agents","04.build\u002F03.apps\u002F10.remote-agents\u002F00.index",[918,920,924],{"title":914,"path":915,"stem":916,"icon":919},"i-ph-cloud-arrow-down",{"title":921,"path":922,"stem":923,"icon":919},"Remote sessions and limits","\u002Fbuild\u002Fapps\u002Fremote-agents\u002Fsessions-and-limits","04.build\u002F03.apps\u002F10.remote-agents\u002F01.sessions-and-limits",{"title":925,"path":926,"stem":927,"icon":919},"Connect an outside A2A agent","\u002Fbuild\u002Fapps\u002Fremote-agents\u002Fa2a","04.build\u002F03.apps\u002F10.remote-agents\u002F02.a2a",{"title":929,"path":930,"stem":931,"children":932,"icon":249},"Connect a chat channel","\u002Fbuild\u002Fapps\u002Fchat-channels","04.build\u002F03.apps\u002F11.chat-channels\u002F00.index",[933,934,938],{"title":929,"path":930,"stem":931,"icon":249},{"title":935,"path":936,"stem":937,"icon":249},"Chat channel conversations","\u002Fbuild\u002Fapps\u002Fchat-channels\u002Fconversations","04.build\u002F03.apps\u002F11.chat-channels\u002F01.conversations",{"title":939,"path":940,"stem":941,"icon":249},"Build a chat channel","\u002Fbuild\u002Fapps\u002Fchat-channels\u002Fbuild","04.build\u002F03.apps\u002F11.chat-channels\u002F02.build",{"title":943,"path":944,"stem":945,"icon":946},"Interop matrix","\u002Fbuild\u002Fapps\u002Finterop","04.build\u002F03.apps\u002F12.interop","i-ph-check-square-offset",{"title":948,"path":949,"stem":950,"children":951,"icon":71},"Improve","\u002Fimprove","05.improve\u002F00.index",[952,953,958,963,968,994,1021,1026,1031,1036],{"title":948,"path":949,"stem":950},{"title":954,"path":955,"stem":956,"icon":957},"Search, compare and fix","\u002Fimprove\u002Fsearch-and-compare","05.improve\u002F01.search-and-compare","i-ph-magnifying-glass",{"title":959,"path":960,"stem":961,"icon":962},"Errors and insights","\u002Fimprove\u002Ferrors-and-insights","05.improve\u002F02.errors-and-insights","i-ph-chart-line",{"title":964,"path":965,"stem":966,"icon":967},"Measured savings","\u002Fimprove\u002Fmeasured-savings","05.improve\u002F03.measured-savings","i-ph-scales",{"title":969,"path":970,"stem":971,"children":972,"icon":463},"Evals and quality gates","\u002Fimprove\u002Fevals","05.improve\u002F04.evals\u002F00.index",[973,974,978,982,986,990],{"title":969,"path":970,"stem":971,"icon":463},{"title":975,"path":976,"stem":977},"Case expectations","\u002Fimprove\u002Fevals\u002Fcases","05.improve\u002F04.evals\u002F01.cases",{"title":979,"path":980,"stem":981},"Record and replay answers","\u002Fimprove\u002Fevals\u002Frecordings","05.improve\u002F04.evals\u002F02.recordings",{"title":983,"path":984,"stem":985},"Check policy paths","\u002Fimprove\u002Fevals\u002Fcoverage","05.improve\u002F04.evals\u002F03.coverage",{"title":987,"path":988,"stem":989},"Gate a plugin update","\u002Fimprove\u002Fevals\u002Fquality-gates","05.improve\u002F04.evals\u002F04.quality-gates",{"title":991,"path":992,"stem":993},"Track quality and regressions","\u002Fimprove\u002Fevals\u002Fregressions","05.improve\u002F04.evals\u002F05.regressions",{"title":995,"path":996,"stem":997,"children":998,"icon":1000},"Outcome checks and patterns","\u002Fimprove\u002Foutcome-checks","05.improve\u002F05.outcome-checks\u002F00.index",[999,1001,1005,1009,1013,1017],{"title":995,"path":996,"stem":997,"icon":1000},"i-ph-gavel",{"title":1002,"path":1003,"stem":1004},"Choose a judge and rubric","\u002Fimprove\u002Foutcome-checks\u002Fjudges","05.improve\u002F05.outcome-checks\u002F01.judges",{"title":1006,"path":1007,"stem":1008},"Measure a judge over time","\u002Fimprove\u002Foutcome-checks\u002Fsampling","05.improve\u002F05.outcome-checks\u002F02.sampling",{"title":1010,"path":1011,"stem":1012},"Use a reviewer agent","\u002Fimprove\u002Foutcome-checks\u002Freviewer","05.improve\u002F05.outcome-checks\u002F03.reviewer",{"title":1014,"path":1015,"stem":1016},"Choose among candidate answers","\u002Fimprove\u002Foutcome-checks\u002Fselection","05.improve\u002F05.outcome-checks\u002F04.selection",{"title":1018,"path":1019,"stem":1020},"Test and roll out judged agents","\u002Fimprove\u002Foutcome-checks\u002Frollouts","05.improve\u002F05.outcome-checks\u002F05.rollouts",{"title":1022,"path":1023,"stem":1024,"icon":1025},"Measured results","\u002Fimprove\u002Fmeasured-results","05.improve\u002F06.measured-results","i-ph-chart-bar",{"title":1027,"path":1028,"stem":1029,"icon":1030},"Comparisons of a changed agent","\u002Fimprove\u002Fcomparisons-of-a-changed-agent","05.improve\u002F07.comparisons-of-a-changed-agent","i-ph-git-diff",{"title":1032,"path":1033,"stem":1034,"icon":1035},"Where a fix belongs","\u002Fimprove\u002Fwhere-a-fix-belongs","05.improve\u002F08.where-a-fix-belongs","i-ph-ladder",{"title":1037,"path":1038,"stem":1039,"icon":957},"Evidence for agents","\u002Fimprove\u002Fevidence-for-agents","05.improve\u002F09.evidence-for-agents",{"title":1041,"path":1042,"stem":1043,"children":1044,"icon":71},"Govern","\u002Fgovern","06.govern\u002F00.index",[1045,1047,1085,1089,1111,1115,1120,1151,1170,1175,1180,1184,1207],{"title":1046,"path":1042,"stem":1043},"Govern agents",{"title":1048,"path":1049,"stem":1050,"children":1051,"icon":98},"Tool policy","\u002Fgovern\u002Ftool-policy","06.govern\u002F01.tool-policy\u002F00.index",[1052,1053,1057,1061,1065,1069,1073,1077,1081],{"title":1048,"path":1049,"stem":1050,"icon":98},{"title":1054,"path":1055,"stem":1056},"Export and apply a tool policy","\u002Fgovern\u002Ftool-policy\u002Ffiles","06.govern\u002F01.tool-policy\u002F02.files",{"title":1058,"path":1059,"stem":1060},"Rules for plugin and remote functions","\u002Fgovern\u002Ftool-policy\u002Fplugin-functions","06.govern\u002F01.tool-policy\u002F03.plugin-functions",{"title":1062,"path":1063,"stem":1064},"Function conditions and action classes","\u002Fgovern\u002Ftool-policy\u002Fconditions","06.govern\u002F01.tool-policy\u002F04.conditions",{"title":1066,"path":1067,"stem":1068},"Rules for taint, origins and sequences","\u002Fgovern\u002Ftool-policy\u002Forigins-and-sequences","06.govern\u002F01.tool-policy\u002F05.origins-and-sequences",{"title":1070,"path":1071,"stem":1072},"How the runtime enforces tool policy","\u002Fgovern\u002Ftool-policy\u002Fruntime","06.govern\u002F01.tool-policy\u002F06.runtime",{"title":1074,"path":1075,"stem":1076},"Preview, review and lint tool policy changes","\u002Fgovern\u002Ftool-policy\u002Freview-changes","06.govern\u002F01.tool-policy\u002F07.review-changes",{"title":1078,"path":1079,"stem":1080},"Assign duties to tool calls","\u002Fgovern\u002Ftool-policy\u002Fduties","06.govern\u002F01.tool-policy\u002F08.duties",{"title":1082,"path":1083,"stem":1084},"Command rules in a tool policy","\u002Fgovern\u002Ftool-policy\u002Fcommand-rules","06.govern\u002F01.tool-policy\u002F09.command-rules",{"title":1086,"path":1087,"stem":1088,"icon":230},"Governance replay","\u002Fgovern\u002Fgovernance-replay","06.govern\u002F02.governance-replay",{"title":1090,"path":1091,"stem":1092,"children":1093,"icon":532},"Reviewed changes","\u002Fgovern\u002Freviewed-changes","06.govern\u002F03.reviewed-changes\u002F00.index",[1094,1095,1099,1103,1107],{"title":1090,"path":1091,"stem":1092,"icon":532},{"title":1096,"path":1097,"stem":1098},"Review assistant and job proposals","\u002Fgovern\u002Freviewed-changes\u002Fproposals","06.govern\u002F03.reviewed-changes\u002F02.proposals",{"title":1100,"path":1101,"stem":1102},"Review plugin configurations","\u002Fgovern\u002Freviewed-changes\u002Fplugin-configurations","06.govern\u002F03.reviewed-changes\u002F03.plugin-configurations",{"title":1104,"path":1105,"stem":1106},"Review and roll back changesets","\u002Fgovern\u002Freviewed-changes\u002Fchangesets","06.govern\u002F03.reviewed-changes\u002F04.changesets",{"title":1108,"path":1109,"stem":1110},"Review changes to protected paths","\u002Fgovern\u002Freviewed-changes\u002Fprotected-paths","06.govern\u002F03.reviewed-changes\u002F05.protected-paths",{"title":1112,"path":1113,"stem":1114,"icon":666},"AI labels","\u002Fgovern\u002Fai-labels","06.govern\u002F04.ai-labels",{"title":1116,"path":1117,"stem":1118,"icon":1119},"Kill switches","\u002Fgovern\u002Fkill-switches","06.govern\u002F05.kill-switches","i-ph-power",{"title":1121,"path":1122,"stem":1123,"children":1124,"icon":1126},"Personal data","\u002Fgovern\u002Fpersonal-data","06.govern\u002F06.personal-data\u002F00.index",[1125,1127,1131,1135,1139,1143,1147],{"title":1121,"path":1122,"stem":1123,"icon":1126},"i-ph-user-minus",{"title":1128,"path":1129,"stem":1130},"Associate people and purposes with jobs","\u002Fgovern\u002Fpersonal-data\u002Fassociate-people","06.govern\u002F06.personal-data\u002F01.associate-people",{"title":1132,"path":1133,"stem":1134},"Find and export personal data","\u002Fgovern\u002Fpersonal-data\u002Fexport","06.govern\u002F06.personal-data\u002F02.export",{"title":1136,"path":1137,"stem":1138},"Restrict processing and record contests","\u002Fgovern\u002Fpersonal-data\u002Frestrictions-and-contests","06.govern\u002F06.personal-data\u002F03.restrictions-and-contests",{"title":1140,"path":1141,"stem":1142},"Erase personal data","\u002Fgovern\u002Fpersonal-data\u002Ferase","06.govern\u002F06.personal-data\u002F04.erase",{"title":1144,"path":1145,"stem":1146},"Retain records and restore backups","\u002Fgovern\u002Fpersonal-data\u002Fretention","06.govern\u002F06.personal-data\u002F05.retention",{"title":1148,"path":1149,"stem":1150},"Personal data held by plugins","\u002Fgovern\u002Fpersonal-data\u002Fplugin-records","06.govern\u002F06.personal-data\u002F06.plugin-records",{"title":1152,"path":1153,"stem":1154,"children":1155,"icon":1157},"Taint and labels","\u002Fgovern\u002Ftaint-and-labels","06.govern\u002F07.taint-and-labels\u002F00.index",[1156,1158,1162,1166],{"title":1152,"path":1153,"stem":1154,"icon":1157},"i-ph-drop-half-bottom",{"title":1159,"path":1160,"stem":1161},"Set rules on taint and labels","\u002Fgovern\u002Ftaint-and-labels\u002Frules","06.govern\u002F07.taint-and-labels\u002F02.rules",{"title":1163,"path":1164,"stem":1165},"Set clearance, egress and content walls","\u002Fgovern\u002Ftaint-and-labels\u002Flabel-policies","06.govern\u002F07.taint-and-labels\u002F03.label-policies",{"title":1167,"path":1168,"stem":1169},"Read outside text in a quarantine child","\u002Fgovern\u002Ftaint-and-labels\u002Fquarantine","06.govern\u002F07.taint-and-labels\u002F04.quarantine",{"title":1171,"path":1172,"stem":1173,"icon":1174},"Works-council mode","\u002Fgovern\u002Fworks-council-mode","06.govern\u002F08.works-council-mode","i-ph-users-three",{"title":1176,"path":1177,"stem":1178,"icon":1179},"Incidents","\u002Fgovern\u002Fincidents","06.govern\u002F09.incidents","i-ph-siren",{"title":1181,"path":1182,"stem":1183,"icon":213},"Inventory","\u002Fgovern\u002Finventory","06.govern\u002F10.inventory",{"title":1185,"path":1186,"stem":1187,"children":1188,"icon":1190},"Audit trail","\u002Fgovern\u002Faudit-trail","06.govern\u002F11.audit-trail\u002F00.index",[1189,1191,1195,1199,1203],{"title":1185,"path":1186,"stem":1187,"icon":1190},"i-ph-scroll",{"title":1192,"path":1193,"stem":1194},"Audit records and run identity","\u002Fgovern\u002Faudit-trail\u002Frecords","06.govern\u002F11.audit-trail\u002F02.records",{"title":1196,"path":1197,"stem":1198},"Verify the audit chain","\u002Fgovern\u002Faudit-trail\u002Fverification","06.govern\u002F11.audit-trail\u002F03.verification",{"title":1200,"path":1201,"stem":1202},"Export and verify evidence bundles","\u002Fgovern\u002Faudit-trail\u002Fevidence-bundles","06.govern\u002F11.audit-trail\u002F04.evidence-bundles",{"title":1204,"path":1205,"stem":1206},"Audit retention, erasure and legal holds","\u002Fgovern\u002Faudit-trail\u002Fretention","06.govern\u002F11.audit-trail\u002F05.retention",{"title":1208,"path":1209,"stem":1210,"children":1211,"icon":1213},"Command rules","\u002Fgovern\u002Fcommand-rules","06.govern\u002F12.command-rules\u002F00.index",[1212,1214,1218,1222,1226],{"title":1208,"path":1209,"stem":1210,"icon":1213},"i-ph-terminal",{"title":1215,"path":1216,"stem":1217},"Command rule patterns","\u002Fgovern\u002Fcommand-rules\u002Fpatterns","06.govern\u002F12.command-rules\u002F02.patterns",{"title":1219,"path":1220,"stem":1221},"What the command reader understands","\u002Fgovern\u002Fcommand-rules\u002Fcommand-reader","06.govern\u002F12.command-rules\u002F03.command-reader",{"title":1223,"path":1224,"stem":1225},"Create a command rule from an approval","\u002Fgovern\u002Fcommand-rules\u002Fallow-from-card","06.govern\u002F12.command-rules\u002F04.allow-from-card",{"title":1227,"path":1228,"stem":1229},"Command rule evaluation and limits","\u002Fgovern\u002Fcommand-rules\u002Fevaluation-and-limits","06.govern\u002F12.command-rules\u002F05.evaluation-and-limits",{"title":1231,"path":1232,"stem":1233,"children":1234,"icon":71},"Fleet","\u002Ffleet","07.fleet\u002F00.index",[1235,1237,1242,1247,1251,1256,1260,1265,1270,1274,1278,1297,1302,1307,1325,1329,1333,1352,1357,1380,1385,1390,1395,1399,1458,1462,1467,1481,1486,1490,1494],{"title":1236,"path":1232,"stem":1233},"Operate a fleet",{"title":1238,"path":1239,"stem":1240,"icon":1241},"Dev mode","\u002Ffleet\u002Fdev-mode","07.fleet\u002F01.dev-mode","i-ph-laptop",{"title":1243,"path":1244,"stem":1245,"icon":1246},"Run a cluster","\u002Ffleet\u002Fcluster","07.fleet\u002F02.cluster","i-ph-hard-drives",{"title":1248,"path":1249,"stem":1250,"icon":782},"Join nodes","\u002Ffleet\u002Fjoin-nodes","07.fleet\u002F03.join-nodes",{"title":1252,"path":1253,"stem":1254,"icon":1255},"Manage nodes","\u002Ffleet\u002Fmanage-nodes","07.fleet\u002F04.manage-nodes","i-ph-list-bullets",{"title":1257,"path":1258,"stem":1259,"icon":527},"Node health","\u002Ffleet\u002Fnodes","07.fleet\u002F05.nodes",{"title":1261,"path":1262,"stem":1263,"icon":1264},"Nodes as services","\u002Ffleet\u002Fservices","07.fleet\u002F06.services","i-ph-gear-six",{"title":1266,"path":1267,"stem":1268,"icon":1269},"Doctor","\u002Ffleet\u002Fdoctor","07.fleet\u002F07.doctor","i-ph-stethoscope",{"title":1271,"path":1272,"stem":1273,"icon":421},"Troubleshooting","\u002Ffleet\u002Ftroubleshooting","07.fleet\u002F08.troubleshooting",{"title":1275,"path":1276,"stem":1277,"icon":962},"Tracing and metrics","\u002Ffleet\u002Fobservability","07.fleet\u002F09.observability",{"title":1279,"path":1280,"stem":1281,"children":1282,"icon":1284},"Choose sandbox tier 2","\u002Ffleet\u002Fsandbox-tier-2","07.fleet\u002F10.sandbox-tier-2\u002F00.index",[1283,1285,1289,1293],{"title":1279,"path":1280,"stem":1281,"icon":1284},"i-ph-shield-chevron",{"title":1286,"path":1287,"stem":1288,"icon":1284},"Set up gVisor","\u002Ffleet\u002Fsandbox-tier-2\u002Fgvisor","07.fleet\u002F10.sandbox-tier-2\u002F01.gvisor",{"title":1290,"path":1291,"stem":1292,"icon":1284},"Set up microVM isolation","\u002Ffleet\u002Fsandbox-tier-2\u002Fmicrovms","07.fleet\u002F10.sandbox-tier-2\u002F02.microvms",{"title":1294,"path":1295,"stem":1296,"icon":1284},"Configure remote sandboxes","\u002Ffleet\u002Fsandbox-tier-2\u002Fremote","07.fleet\u002F10.sandbox-tier-2\u002F03.remote",{"title":1298,"path":1299,"stem":1300,"icon":1301},"Sandbox on macOS","\u002Ffleet\u002Fsandbox-on-macos","07.fleet\u002F11.sandbox-on-macos","i-ph-apple-logo",{"title":1303,"path":1304,"stem":1305,"icon":1306},"Sandbox on Windows","\u002Ffleet\u002Fsandbox-on-windows","07.fleet\u002F12.sandbox-on-windows","i-ph-windows-logo",{"title":1308,"path":1309,"stem":1310,"children":1311,"icon":797},"Configure local models","\u002Ffleet\u002Flocal-models","07.fleet\u002F13.local-models\u002F00.index",[1312,1313,1317,1321],{"title":1308,"path":1309,"stem":1310,"icon":797},{"title":1314,"path":1315,"stem":1316,"icon":797},"Share a local model with the fleet","\u002Ffleet\u002Flocal-models\u002Ffleet","07.fleet\u002F13.local-models\u002F01.fleet",{"title":1318,"path":1319,"stem":1320,"icon":797},"Review local-model safety checks","\u002Ffleet\u002Flocal-models\u002Ftrust","07.fleet\u002F13.local-models\u002F02.trust",{"title":1322,"path":1323,"stem":1324,"icon":797},"Size and price local models","\u002Ffleet\u002Flocal-models\u002Fsizing-and-cost","07.fleet\u002F13.local-models\u002F03.sizing-and-cost",{"title":1326,"path":1327,"stem":1328,"icon":1241},"Agents on a Mac with MLX","\u002Ffleet\u002Flocal-models-on-a-mac","07.fleet\u002F14.local-models-on-a-mac",{"title":1330,"path":1331,"stem":1332,"icon":127},"Queues","\u002Ffleet\u002Fqueues","07.fleet\u002F15.queues",{"title":1334,"path":1335,"stem":1336,"children":1337,"icon":1339},"Choose a Temporal backend","\u002Ffleet\u002Ftemporal-backends","07.fleet\u002F16.temporal-backends\u002F00.index",[1338,1340,1344,1348],{"title":1334,"path":1335,"stem":1336,"icon":1339},"i-ph-cloud",{"title":1341,"path":1342,"stem":1343},"Set retention and move tenants","\u002Ffleet\u002Ftemporal-backends\u002Fretention-and-migration","07.fleet\u002F16.temporal-backends\u002F01.retention-and-migration",{"title":1345,"path":1346,"stem":1347},"Encrypt Temporal payloads","\u002Ffleet\u002Ftemporal-backends\u002Fencryption","07.fleet\u002F16.temporal-backends\u002F02.encryption",{"title":1349,"path":1350,"stem":1351},"Read payloads in Temporal UI","\u002Ffleet\u002Ftemporal-backends\u002Fcodec","07.fleet\u002F16.temporal-backends\u002F03.codec",{"title":1353,"path":1354,"stem":1355,"icon":1356},"Regions","\u002Ffleet\u002Fregions","07.fleet\u002F17.regions","i-ph-globe-hemisphere-east",{"title":1358,"path":1359,"stem":1360,"children":1361,"icon":1363},"Run the roles separately","\u002Ffleet\u002Fseparate-roles","07.fleet\u002F18.separate-roles\u002F00.index",[1362,1364,1368,1372,1376],{"title":1358,"path":1359,"stem":1360,"icon":1363},"i-ph-squares-four",{"title":1365,"path":1366,"stem":1367},"Prepare database rights","\u002Ffleet\u002Fseparate-roles\u002Fdatabase-rights","07.fleet\u002F18.separate-roles\u002F01.database-rights",{"title":1369,"path":1370,"stem":1371},"Keep plaintext secrets on edges","\u002Ffleet\u002Fseparate-roles\u002Fsecrets","07.fleet\u002F18.separate-roles\u002F02.secrets",{"title":1373,"path":1374,"stem":1375},"Operate through role outages","\u002Ffleet\u002Fseparate-roles\u002Foutages","07.fleet\u002F18.separate-roles\u002F03.outages",{"title":1377,"path":1378,"stem":1379},"Use Temporal UI with separate roles","\u002Ffleet\u002Fseparate-roles\u002Ftemporal-ui","07.fleet\u002F18.separate-roles\u002F04.temporal-ui",{"title":1381,"path":1382,"stem":1383,"icon":1384},"High availability","\u002Ffleet\u002Fhigh-availability","07.fleet\u002F19.high-availability","i-ph-copy",{"title":1386,"path":1387,"stem":1388,"icon":1389},"Management over a WAN","\u002Ffleet\u002Fmanagement-over-a-wan","07.fleet\u002F20.management-over-a-wan","i-ph-globe-hemisphere-west",{"title":1391,"path":1392,"stem":1393,"icon":1394},"Cloud federation","\u002Ffleet\u002Fcloud-federation","07.fleet\u002F21.cloud-federation","i-ph-cloud-check",{"title":1396,"path":1397,"stem":1398,"icon":451},"Payload storage","\u002Ffleet\u002Fpayload-storage","07.fleet\u002F22.payload-storage",{"title":1400,"path":1401,"stem":1402,"children":1403,"icon":1405},"Upgrade a cluster","\u002Ffleet\u002Fupgrades","07.fleet\u002F23.upgrades\u002F00.index",[1404,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1454],{"title":1400,"path":1401,"stem":1402,"icon":1405},"i-ph-arrows-clockwise",{"title":1407,"path":1408,"stem":1409},"Prepare for sandbox changes","\u002Ffleet\u002Fupgrades\u002Fsandbox-changes","07.fleet\u002F23.upgrades\u002F01.sandbox-changes",{"title":1411,"path":1412,"stem":1413},"Review policy changes","\u002Ffleet\u002Fupgrades\u002Fpolicy-changes","07.fleet\u002F23.upgrades\u002F02.policy-changes",{"title":1415,"path":1416,"stem":1417},"Review data and privacy migrations","\u002Ffleet\u002Fupgrades\u002Fdata-migrations","07.fleet\u002F23.upgrades\u002F03.data-migrations",{"title":1419,"path":1420,"stem":1421},"Prepare storage and identity migrations","\u002Ffleet\u002Fupgrades\u002Fstorage-and-identity","07.fleet\u002F23.upgrades\u002F04.storage-and-identity",{"title":1423,"path":1424,"stem":1425},"Prepare plugins for an upgrade","\u002Ffleet\u002Fupgrades\u002Fplugin-changes","07.fleet\u002F23.upgrades\u002F05.plugin-changes",{"title":1427,"path":1428,"stem":1429},"Keep calls compatible during upgrades","\u002Ffleet\u002Fupgrades\u002Fcall-compatibility","07.fleet\u002F23.upgrades\u002F06.call-compatibility",{"title":1431,"path":1432,"stem":1433},"Review model and budget migrations","\u002Ffleet\u002Fupgrades\u002Fmodel-and-budget-changes","07.fleet\u002F23.upgrades\u002F07.model-and-budget-changes",{"title":1435,"path":1436,"stem":1437},"Migrate to shared worker pools","\u002Ffleet\u002Fupgrades\u002Fshared-pools","07.fleet\u002F23.upgrades\u002F08.shared-pools",{"title":1439,"path":1440,"stem":1441},"Upgrade node binaries and runtimes","\u002Ffleet\u002Fupgrades\u002Fnodes","07.fleet\u002F23.upgrades\u002F09.nodes",{"title":1443,"path":1444,"stem":1445},"Understand runtime shutdown","\u002Ffleet\u002Fupgrades\u002Fruntime-shutdown","07.fleet\u002F23.upgrades\u002F10.runtime-shutdown",{"title":1447,"path":1448,"stem":1449},"Review runtime behaviour changes","\u002Ffleet\u002Fupgrades\u002Fruntime-changes","07.fleet\u002F23.upgrades\u002F11.runtime-changes",{"title":1451,"path":1452,"stem":1453},"Verify releases and switch channels","\u002Ffleet\u002Fupgrades\u002Frelease-verification","07.fleet\u002F23.upgrades\u002F12.release-verification",{"title":1455,"path":1456,"stem":1457},"Roll a runtime out in steps","\u002Ffleet\u002Fupgrades\u002Fruntime-rollouts","07.fleet\u002F23.upgrades\u002F13.runtime-rollouts",{"title":1459,"path":1460,"stem":1461,"icon":463},"Releases","\u002Ffleet\u002Freleases","07.fleet\u002F24.releases",{"title":1463,"path":1464,"stem":1465,"icon":1466},"Docker","\u002Ffleet\u002Fdocker","07.fleet\u002F25.docker","i-ph-shipping-container",{"title":1468,"path":1469,"stem":1470,"children":1471,"icon":480},"Deploy with Kubernetes","\u002Ffleet\u002Fkubernetes","07.fleet\u002F26.kubernetes\u002F00.index",[1472,1473,1477],{"title":1468,"path":1469,"stem":1470,"icon":480},{"title":1474,"path":1475,"stem":1476,"icon":480},"Helm objects and values","\u002Ffleet\u002Fkubernetes\u002Fvalues","07.fleet\u002F26.kubernetes\u002F01.values",{"title":1478,"path":1479,"stem":1480,"icon":480},"Maintain a Kubernetes deployment","\u002Ffleet\u002Fkubernetes\u002Fmaintenance","07.fleet\u002F26.kubernetes\u002F02.maintenance",{"title":1482,"path":1483,"stem":1484,"icon":1485},"Offline install","\u002Ffleet\u002Foffline-install","07.fleet\u002F27.offline-install","i-ph-airplane-tilt",{"title":1487,"path":1488,"stem":1489,"icon":98},"FIPS builds","\u002Ffleet\u002Ffips","07.fleet\u002F28.fips",{"title":1491,"path":1492,"stem":1493,"icon":249},"Run Orchestrator Zero from an MCP client","\u002Ffleet\u002Fmcp-client","07.fleet\u002F29.mcp-client",{"title":1495,"path":1496,"stem":1497,"children":1498,"icon":451},"Back up a cluster","\u002Ffleet\u002Fbackups","07.fleet\u002F30.backups\u002F00.index",[1499,1500],{"title":1495,"path":1496,"stem":1497,"icon":451},{"title":1501,"path":1502,"stem":1503},"Restore a cluster","\u002Ffleet\u002Fbackups\u002Frestore","07.fleet\u002F30.backups\u002F01.restore",{"title":1505,"path":1506,"stem":1507,"children":1508,"icon":71},"Spend","\u002Fspend","08.spend\u002F00.index",[1509,1511,1533,1547,1585],{"title":1510,"path":1506,"stem":1507},"Manage model access and spending",{"title":1512,"path":1513,"stem":1514,"children":1515,"icon":552},"Read cost and usage","\u002Fspend\u002Fcost-and-usage","08.spend\u002F01.cost-and-usage\u002F00.index",[1516,1517,1521,1525,1529],{"title":1512,"path":1513,"stem":1514,"icon":552},{"title":1518,"path":1519,"stem":1520},"Understand recorded charges","\u002Fspend\u002Fcost-and-usage\u002Faccounting","08.spend\u002F01.cost-and-usage\u002F01.accounting",{"title":1522,"path":1523,"stem":1524},"Read model call timings","\u002Fspend\u002Fcost-and-usage\u002Ftimings","08.spend\u002F01.cost-and-usage\u002F02.timings",{"title":1526,"path":1527,"stem":1528},"Export usage","\u002Fspend\u002Fcost-and-usage\u002Fexports","08.spend\u002F01.cost-and-usage\u002F03.exports",{"title":1530,"path":1531,"stem":1532},"Explain prices and cache costs","\u002Fspend\u002Fcost-and-usage\u002Fprices-and-cache","08.spend\u002F01.cost-and-usage\u002F04.prices-and-cache",{"title":1534,"path":1535,"stem":1536,"children":1537,"icon":134},"Set budgets and quotas","\u002Fspend\u002Fbudgets-and-quotas","08.spend\u002F02.budgets-and-quotas\u002F00.index",[1538,1539,1543],{"title":1534,"path":1535,"stem":1536,"icon":134},{"title":1540,"path":1541,"stem":1542,"icon":134},"Understand quota charging and refusals","\u002Fspend\u002Fbudgets-and-quotas\u002Fcharging","08.spend\u002F02.budgets-and-quotas\u002F01.charging",{"title":1544,"path":1545,"stem":1546,"icon":134},"Request and review budget","\u002Fspend\u002Fbudgets-and-quotas\u002Frequests","08.spend\u002F02.budgets-and-quotas\u002F02.requests",{"title":1548,"path":1549,"stem":1550,"children":1551,"icon":416},"Connect a model provider","\u002Fspend\u002Fmodels-and-keys","08.spend\u002F03.models-and-keys\u002F00.index",[1552,1553,1557,1561,1565,1569,1573,1577,1581],{"title":1548,"path":1549,"stem":1550,"icon":416},{"title":1554,"path":1555,"stem":1556},"Choose model aliases","\u002Fspend\u002Fmodels-and-keys\u002Faliases","08.spend\u002F03.models-and-keys\u002F01.aliases",{"title":1558,"path":1559,"stem":1560},"Map a plugin's models","\u002Fspend\u002Fmodels-and-keys\u002Fmapping","08.spend\u002F03.models-and-keys\u002F02.mapping",{"title":1562,"path":1563,"stem":1564},"Set reasoning effort and cascades","\u002Fspend\u002Fmodels-and-keys\u002Feffort-and-cascades","08.spend\u002F03.models-and-keys\u002F03.effort-and-cascades",{"title":1566,"path":1567,"stem":1568},"Authenticate model calls","\u002Fspend\u002Fmodels-and-keys\u002Fauthentication","08.spend\u002F03.models-and-keys\u002F04.authentication",{"title":1570,"path":1571,"stem":1572},"Control what model calls can reach","\u002Fspend\u002Fmodels-and-keys\u002Fdata-rules","08.spend\u002F03.models-and-keys\u002F05.data-rules",{"title":1574,"path":1575,"stem":1576},"Pool model deployments","\u002Fspend\u002Fmodels-and-keys\u002Fdeployment-pools","08.spend\u002F03.models-and-keys\u002F06.deployment-pools",{"title":1578,"path":1579,"stem":1580},"Configure caches and server tools","\u002Fspend\u002Fmodels-and-keys\u002Fcache-and-tools","08.spend\u002F03.models-and-keys\u002F07.cache-and-tools",{"title":1582,"path":1583,"stem":1584},"Check model changes and retirement","\u002Fspend\u002Fmodels-and-keys\u002Fcanaries-and-retirement","08.spend\u002F03.models-and-keys\u002F08.canaries-and-retirement",{"title":1586,"path":1587,"stem":1588,"icon":1589},"Translating providers","\u002Fspend\u002Ftranslating-providers","08.spend\u002F04.translating-providers","i-ph-translate",{"title":1591,"path":1592,"stem":1593,"children":1594,"icon":71},"Admin","\u002Fadmin","09.admin\u002F00.index",[1595,1597,1623,1650,1654,1658,1680,1685,1696],{"title":1596,"path":1592,"stem":1593},"Administer access and credentials",{"title":1598,"path":1599,"stem":1600,"children":1601,"icon":98},"Configure sign-in","\u002Fadmin\u002Fsign-in","09.admin\u002F01.sign-in\u002F00.index",[1602,1603,1607,1611,1615,1619],{"title":1598,"path":1599,"stem":1600,"icon":98},{"title":1604,"path":1605,"stem":1606},"Configure an identity provider","\u002Fadmin\u002Fsign-in\u002Fidentity-providers","09.admin\u002F01.sign-in\u002F01.identity-providers",{"title":1608,"path":1609,"stem":1610},"Provision accounts from a directory","\u002Fadmin\u002Fsign-in\u002Fprovisioning","09.admin\u002F01.sign-in\u002F02.provisioning",{"title":1612,"path":1613,"stem":1614},"Manage passwords and second factors","\u002Fadmin\u002Fsign-in\u002Fpasswords","09.admin\u002F01.sign-in\u002F03.passwords",{"title":1616,"path":1617,"stem":1618},"Sign in from the CLI and MCP clients","\u002Fadmin\u002Fsign-in\u002Fclients","09.admin\u002F01.sign-in\u002F04.clients",{"title":1620,"path":1621,"stem":1622},"End sessions and inspect sign-in events","\u002Fadmin\u002Fsign-in\u002Fsessions","09.admin\u002F01.sign-in\u002F05.sessions",{"title":1624,"path":1625,"stem":1626,"children":1627,"icon":1629},"Manage tenant secrets","\u002Fadmin\u002Fsecrets","09.admin\u002F02.secrets\u002F00.index",[1628,1630,1634,1638,1642,1646],{"title":1624,"path":1625,"stem":1626,"icon":1629},"i-ph-key",{"title":1631,"path":1632,"stem":1633},"Bind secrets to destination hosts","\u002Fadmin\u002Fsecrets\u002Fhost-bindings","09.admin\u002F02.secrets\u002F01.host-bindings",{"title":1635,"path":1636,"stem":1637},"Test and rotate secrets","\u002Fadmin\u002Fsecrets\u002Frotation","09.admin\u002F02.secrets\u002F02.rotation",{"title":1639,"path":1640,"stem":1641},"Use an external secret store","\u002Fadmin\u002Fsecrets\u002Fexternal-stores","09.admin\u002F02.secrets\u002F03.external-stores",{"title":1643,"path":1644,"stem":1645},"Deliver and scan plugin secrets","\u002Fadmin\u002Fsecrets\u002Fplugin-secrets","09.admin\u002F02.secrets\u002F04.plugin-secrets",{"title":1647,"path":1648,"stem":1649},"Configure plugin settings","\u002Fadmin\u002Fsecrets\u002Fsettings","09.admin\u002F02.secrets\u002F05.settings",{"title":1651,"path":1652,"stem":1653,"icon":1629},"Credential injection","\u002Fadmin\u002Fcredential-injection","09.admin\u002F03.credential-injection",{"title":1655,"path":1656,"stem":1657,"icon":1629},"Key commands","\u002Fadmin\u002Fkey-commands","09.admin\u002F04.key-commands",{"title":1659,"path":1660,"stem":1661,"children":1662,"icon":782},"Connect a plugin to another system","\u002Fadmin\u002Fconnections","09.admin\u002F05.connections\u002F00.index",[1663,1664,1668,1672,1676],{"title":1659,"path":1660,"stem":1661,"icon":782},{"title":1665,"path":1666,"stem":1667,"icon":782},"Renew and reconnect credentials","\u002Fadmin\u002Fconnections\u002Frenewal","09.admin\u002F05.connections\u002F01.renewal",{"title":1669,"path":1670,"stem":1671,"icon":782},"Restrict connection destinations","\u002Fadmin\u002Fconnections\u002Fdestinations","09.admin\u002F05.connections\u002F02.destinations",{"title":1673,"path":1674,"stem":1675,"icon":782},"Diagnose connection failures","\u002Fadmin\u002Fconnections\u002Ftroubleshooting","09.admin\u002F05.connections\u002F03.troubleshooting",{"title":1677,"path":1678,"stem":1679,"icon":782},"Understand connection security","\u002Fadmin\u002Fconnections\u002Fsecurity","09.admin\u002F05.connections\u002F04.security",{"title":1681,"path":1682,"stem":1683,"icon":1684},"Tenants","\u002Fadmin\u002Ftenants","09.admin\u002F06.tenants","i-ph-buildings",{"title":1686,"path":1687,"stem":1688,"children":1689,"icon":1691},"Export and verify a tenant","\u002Fadmin\u002Ftenant-export","09.admin\u002F07.tenant-export\u002F00.index",[1690,1692],{"title":1686,"path":1687,"stem":1688,"icon":1691},"i-ph-export",{"title":1693,"path":1694,"stem":1695,"icon":1691},"Tenant export format","\u002Fadmin\u002Ftenant-export\u002Fformat","09.admin\u002F07.tenant-export\u002F01.format",{"title":1697,"path":1698,"stem":1699,"icon":1700},"Notifications","\u002Fadmin\u002Fnotifications","09.admin\u002F08.notifications","i-ph-bell-ringing",{"title":1702,"path":1703,"stem":1704,"children":1705,"icon":71},"Reference","\u002Freference","10.reference\u002F00.index",[1706,1707,1726,1760,1794,1798,1803,1807,1812,1817,1822,1826],{"title":1702,"path":1703,"stem":1704},{"title":1708,"path":1709,"stem":1710,"children":1711,"icon":1725},"CLI","\u002Freference\u002Fcli","10.reference\u002F01.cli\u002F00.index",[1712,1713,1719],{"title":1708,"path":1709,"stem":1710},{"title":1714,"path":1715,"stem":1716,"children":1717},"oz0","\u002Freference\u002Fcli\u002Foz0","10.reference\u002F01.cli\u002F01.oz0\u002F00.index",[1718],{"title":1714,"path":1715,"stem":1716},{"title":1720,"path":1721,"stem":1722,"children":1723},"oz0-node","\u002Freference\u002Fcli\u002Foz0-node","10.reference\u002F01.cli\u002F02.oz0-node\u002F00.index",[1724],{"title":1720,"path":1721,"stem":1722},"i-ph-terminal-window",{"title":1727,"path":1728,"stem":1729,"children":1730,"icon":725},"oz0-plugin.yaml","\u002Freference\u002Fplugin-manifest","10.reference\u002F02.plugin-manifest\u002F00.index",[1731,1732,1736,1740,1744,1748,1752,1756],{"title":1727,"path":1728,"stem":1729,"icon":725},{"title":1733,"path":1734,"stem":1735},"Dependencies and cross-plugin access","\u002Freference\u002Fplugin-manifest\u002Fdependencies","10.reference\u002F02.plugin-manifest\u002F01.dependencies",{"title":1737,"path":1738,"stem":1739},"Tool declarations","\u002Freference\u002Fplugin-manifest\u002Ftools","10.reference\u002F02.plugin-manifest\u002F02.tools",{"title":1741,"path":1742,"stem":1743},"Harnesses, events and channels","\u002Freference\u002Fplugin-manifest\u002Fruntimes","10.reference\u002F02.plugin-manifest\u002F03.runtimes",{"title":1745,"path":1746,"stem":1747},"Connections and hooks","\u002Freference\u002Fplugin-manifest\u002Fconnections","10.reference\u002F02.plugin-manifest\u002F04.connections",{"title":1749,"path":1750,"stem":1751},"Plugin sets and policies","\u002Freference\u002Fplugin-manifest\u002Fsets-policy","10.reference\u002F02.plugin-manifest\u002F05.sets-policy",{"title":1753,"path":1754,"stem":1755},"Data, evidence and mail","\u002Freference\u002Fplugin-manifest\u002Fdata","10.reference\u002F02.plugin-manifest\u002F06.data",{"title":1757,"path":1758,"stem":1759},"Generated OpenAPI manifests","\u002Freference\u002Fplugin-manifest\u002Fopenapi","10.reference\u002F02.plugin-manifest\u002F07.openapi",{"title":1761,"path":1762,"stem":1763,"children":1764,"icon":666},"Agent definition","\u002Freference\u002Fagent-definition","10.reference\u002F03.agent-definition\u002F00.index",[1765,1766,1770,1774,1778,1782,1786,1790],{"title":1761,"path":1762,"stem":1763,"icon":666},{"title":1767,"path":1768,"stem":1769},"Identity, instructions and tools","\u002Freference\u002Fagent-definition\u002Fidentity","10.reference\u002F03.agent-definition\u002F01.identity",{"title":1771,"path":1772,"stem":1773},"Models and placement","\u002Freference\u002Fagent-definition\u002Fmodels","10.reference\u002F03.agent-definition\u002F02.models",{"title":1775,"path":1776,"stem":1777},"Limits and spend","\u002Freference\u002Fagent-definition\u002Flimits","10.reference\u002F03.agent-definition\u002F03.limits",{"title":1779,"path":1780,"stem":1781},"Judges and candidate selection","\u002Freference\u002Fagent-definition\u002Fquality","10.reference\u002F03.agent-definition\u002F04.quality",{"title":1783,"path":1784,"stem":1785},"Delegation and human decisions","\u002Freference\u002Fagent-definition\u002Fcoordination","10.reference\u002F03.agent-definition\u002F05.coordination",{"title":1787,"path":1788,"stem":1789},"History and recovery","\u002Freference\u002Fagent-definition\u002Fhistory","10.reference\u002F03.agent-definition\u002F06.history",{"title":1791,"path":1792,"stem":1793},"Sandbox, data and retention","\u002Freference\u002Fagent-definition\u002Fsecurity","10.reference\u002F03.agent-definition\u002F07.security",{"title":1795,"path":1796,"stem":1797,"icon":517},"Ports","\u002Freference\u002Fports","10.reference\u002F04.ports",{"title":1799,"path":1800,"stem":1801,"icon":1802},"Environment variables","\u002Freference\u002Fenvironment","10.reference\u002F05.environment","i-ph-brackets-curly",{"title":1804,"path":1805,"stem":1806,"icon":373},"Files and directories","\u002Freference\u002Ffiles","10.reference\u002F06.files",{"title":1808,"path":1809,"stem":1810,"icon":1811},"Lists and pages","\u002Freference\u002Flist-pages","10.reference\u002F07.list-pages","i-ph-list-numbers",{"title":1813,"path":1814,"stem":1815,"icon":1816},"Spend refusals","\u002Freference\u002Fspend-refusals","10.reference\u002F08.spend-refusals","i-ph-hand-coins",{"title":1818,"path":1819,"stem":1820,"icon":1821},"Admin API","\u002Freference\u002Fadmin-api","10.reference\u002F09.admin-api","i-ph-repeat",{"title":1823,"path":1824,"stem":1825},"Compatibility","\u002Freference\u002Fcompatibility","10.reference\u002F10.compatibility",{"title":1827,"path":1828,"stem":1829},"Known issues","\u002Freference\u002Fknown-issues","10.reference\u002F11.known-issues",{"title":1831,"path":1832,"stem":1833,"children":1834,"icon":71},"About","\u002Fabout","11.about\u002F00.index",[1835,1836,1840,1845],{"title":1831,"path":1832,"stem":1833},{"title":1837,"path":1838,"stem":1839,"icon":967},"Licensing","\u002Fabout\u002Flicensing","11.about\u002F01.licensing",{"title":1841,"path":1842,"stem":1843,"icon":1844},"About these docs","\u002Fabout\u002Fcontributing-docs","11.about\u002F02.contributing-docs","i-ph-pencil-simple",{"title":1846,"path":1847,"stem":1848,"icon":42},"A local environment","\u002Fabout\u002Flocal-environment","11.about\u002F03.local-environment",{"id":1850,"title":663,"body":1851,"description":3472,"extension":3473,"links":3474,"meta":3475,"navigation":3478,"path":664,"seo":3479,"stem":665,"__hash__":3480},"docs\u002F04.build\u002F02.parts\u002F01.agents.md",{"type":1852,"value":1853,"toc":3453},"minimark",[1854,1858,1871,1876,1883,1930,2100,2166,2171,2190,2194,2234,2238,2245,2269,2277,2300,2304,2311,2581,2584,2589,2673,2677,2688,2859,2869,3018,3037,3040,3043,3071,3078,3093,3113,3142,3145,3154,3217,3227,3236,3240,3248,3290,3293,3329,3344,3347,3355,3363,3367,3383,3389,3392,3413,3417,3426,3430,3436,3440,3449],[1855,1856,1857],"p",{},"For: plugin authors.",[1855,1859,1860,1861,1865,1866,1870],{},"Define an agent in one Markdown file, or place its definition inside a full plugin. The platform runs each agent as ",[1862,1863,1864],"code",{},"AgentWorkflow"," on its plugin's task queue for the required labels. Only nodes that have the plugin and match those labels can run it; see ",[1867,1868,1869],"a",{"href":89},"routing",".",[1872,1873,1875],"h2",{"id":1874},"an-agent-in-one-file","An agent in one file",[1855,1877,1878,1879,1882],{},"A first agent is one file: its fields in YAML front matter, and its instructions below. ",[1862,1880,1881],{},"oz0 agent new"," writes it:",[1884,1885,1891],"pre",{"className":1886,"code":1887,"filename":1888,"language":1889,"meta":1890,"style":1890},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","oz0 agent new triage --uses github --description \"Triage new GitHub issues\"\n","Terminal","bash","",[1862,1892,1893],{"__ignoreMap":1890},[1894,1895,1898,1901,1905,1908,1911,1914,1917,1920,1924,1927],"span",{"class":1896,"line":1897},"line",1,[1894,1899,1714],{"class":1900},"sBMFI",[1894,1902,1904],{"class":1903},"sfazB"," agent",[1894,1906,1907],{"class":1903}," new",[1894,1909,1910],{"class":1903}," triage",[1894,1912,1913],{"class":1903}," --uses",[1894,1915,1916],{"class":1903}," github",[1894,1918,1919],{"class":1903}," --description",[1894,1921,1923],{"class":1922},"sMK4o"," \"",[1894,1925,1926],{"class":1903},"Triage new GitHub issues",[1894,1928,1929],{"class":1922},"\"\n",[1884,1931,1936],{"className":1932,"code":1933,"filename":1934,"language":1935,"meta":1890,"style":1890},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\napiVersion: oz0\u002Fv1\ndescription: Triage new GitHub issues\nmodel:\n  use: default\n  needs: [tools]\ninput: text\noutput: text\n# Other plugins' functions, by address. Each one listed is granted at install; keep only what it needs.\ntools:\n  - github\u002Foz0_github.get_issue  # Read\n  # - github\u002Foz0_github.add_labels  # Sends out: take out the # to let it call this\nlimits:\n  max_steps: 20\n  timeout: 10m\n---\nYou triage new GitHub issues: read the issue, say whether it is a bug or a feature, and why.\n","triage.md","markdown",[1862,1937,1938,1943,1956,1967,1976,1987,2004,2015,2025,2032,2039,2051,2057,2065,2077,2088,2093],{"__ignoreMap":1890},[1894,1939,1940],{"class":1896,"line":1897},[1894,1941,1942],{"class":1922},"---\n",[1894,1944,1946,1950,1953],{"class":1896,"line":1945},2,[1894,1947,1949],{"class":1948},"swJcz","apiVersion",[1894,1951,1952],{"class":1922},":",[1894,1954,1955],{"class":1903}," oz0\u002Fv1\n",[1894,1957,1959,1962,1964],{"class":1896,"line":1958},3,[1894,1960,1961],{"class":1948},"description",[1894,1963,1952],{"class":1922},[1894,1965,1966],{"class":1903}," Triage new GitHub issues\n",[1894,1968,1970,1973],{"class":1896,"line":1969},4,[1894,1971,1972],{"class":1948},"model",[1894,1974,1975],{"class":1922},":\n",[1894,1977,1979,1982,1984],{"class":1896,"line":1978},5,[1894,1980,1981],{"class":1948},"  use",[1894,1983,1952],{"class":1922},[1894,1985,1986],{"class":1903}," default\n",[1894,1988,1990,1993,1995,1998,2001],{"class":1896,"line":1989},6,[1894,1991,1992],{"class":1948},"  needs",[1894,1994,1952],{"class":1922},[1894,1996,1997],{"class":1922}," [",[1894,1999,2000],{"class":1903},"tools",[1894,2002,2003],{"class":1922},"]\n",[1894,2005,2007,2010,2012],{"class":1896,"line":2006},7,[1894,2008,2009],{"class":1948},"input",[1894,2011,1952],{"class":1922},[1894,2013,2014],{"class":1903}," text\n",[1894,2016,2018,2021,2023],{"class":1896,"line":2017},8,[1894,2019,2020],{"class":1948},"output",[1894,2022,1952],{"class":1922},[1894,2024,2014],{"class":1903},[1894,2026,2028],{"class":1896,"line":2027},9,[1894,2029,2031],{"class":2030},"sHwdD","# Other plugins' functions, by address. Each one listed is granted at install; keep only what it needs.\n",[1894,2033,2035,2037],{"class":1896,"line":2034},10,[1894,2036,2000],{"class":1948},[1894,2038,1975],{"class":1922},[1894,2040,2042,2045,2048],{"class":1896,"line":2041},11,[1894,2043,2044],{"class":1922},"  -",[1894,2046,2047],{"class":1903}," github\u002Foz0_github.get_issue",[1894,2049,2050],{"class":2030},"  # Read\n",[1894,2052,2054],{"class":1896,"line":2053},12,[1894,2055,2056],{"class":2030},"  # - github\u002Foz0_github.add_labels  # Sends out: take out the # to let it call this\n",[1894,2058,2060,2063],{"class":1896,"line":2059},13,[1894,2061,2062],{"class":1948},"limits",[1894,2064,1975],{"class":1922},[1894,2066,2068,2071,2073],{"class":1896,"line":2067},14,[1894,2069,2070],{"class":1948},"  max_steps",[1894,2072,1952],{"class":1922},[1894,2074,2076],{"class":2075},"sbssI"," 20\n",[1894,2078,2080,2083,2085],{"class":1896,"line":2079},15,[1894,2081,2082],{"class":1948},"  timeout",[1894,2084,1952],{"class":1922},[1894,2086,2087],{"class":1903}," 10m\n",[1894,2089,2091],{"class":1896,"line":2090},16,[1894,2092,1942],{"class":1922},[1894,2094,2096],{"class":1896,"line":2095},17,[1894,2097,2099],{"class":2098},"sTEyZ","You triage new GitHub issues: read the issue, say whether it is a bug or a feature, and why.\n",[2101,2102,2103,2128,2146],"ul",{},[2104,2105,2106,2107,2110,2111,2114,2115,2118,2119,2123,2124,2127],"li",{},"It is a plugin of its own. There is no manifest to write: the loader makes one, a ",[1862,2108,2109],{},"capability"," named after the file (",[1862,2112,2113],{},"triage","), whose ",[1862,2116,2117],{},"uses:"," are the other plugins' parts the agent names by address (",[1867,2120,2122],{"href":2121},"\u002Freference\u002Fplugin-manifest#a-plugin-that-is-one-part","A plugin that is one part","). Its version comes from where the file came from: the digest of an upload, a Git tag or commit, a workspace revision, or ",[1862,2125,2126],{},"0.0.0-dev"," on a dev server.",[2104,2129,2130,2133,2134,2137,2138,2141,2142,2145],{},[1862,2131,2132],{},"--uses \u003Cplugin>"," lists that plugin's functions by address from your tenant's catalog when your CLI context reaches a server: the Read ones on, the others commented out with their type, so you take the ",[1862,2135,2136],{},"#"," out of the ones the agent needs. ",[1862,2139,2140],{},"--tool \u003Cplugin>\u002F\u003Ctool>.\u003Cfunction>"," lists exactly one function (repeatable). Without a server it writes a commented example. ",[1862,2143,2144],{},"agent new"," never writes a manifest and never overwrites a file.",[2104,2147,2148,2149,2152,2153,2156,2157,2160,2161,2165],{},"The front matter takes every field of the YAML form below except ",[1862,2150,2151],{},"instructions",", which is the body; ",[1862,2154,2155],{},"apiVersion: oz0\u002Fv1"," tells it from a Claude Code subagent, and ",[1862,2158,2159],{},"name"," may be left out (it is the file's name). ",[1867,2162,2164],{"href":2163},"\u002Freference\u002Fagent-definition#a-markdown-agent","A Markdown agent"," has the details.",[2167,2168,2170],"h3",{"id":2169},"install-and-run-it","Install and run it",[1855,2172,2173,2174,2177,2178,2181,2182,2185,2186,2189],{},"Run ",[1862,2175,2176],{},"oz0 plugin install .\u002Ftriage.md"," in your cluster's tenant. It packs the file alone, without what lies beside it. On a terminal it shows what the agent needs, may do and reaches, and asks once; yes also grants what it uses of other plugins. Then ",[1862,2179,2180],{},"oz0 run triage \"Triage issue 12\"",". A script without a terminal takes the defaults, which grant nothing: it is refused with the ",[1862,2183,2184],{},"--accept-uses \u003Cdigest>"," to give, so a script's install is two commands. An update is ",[1862,2187,2188],{},"oz0 plugin update triage",", which uploads the file again.",[2167,2191,2193],{"id":2192},"try-it-on-a-dev-server","Try it on a dev server",[1855,2195,2173,2196,2199,2200,2203,2204,2207,2208,2211,2212,2214,2215,2218,2219,2218,2222,2225,2226,2229,2230,2233],{},[1862,2197,2198],{},"oz0 dev .\u002Ftriage.md"," to install the file and reinstall it on every save; ",[1862,2201,2202],{},"oz0 run .\u002Ftriage.md \"...\""," runs it once on a dev server and node of its own, which ",[1862,2205,2206],{},"run"," starts and stops (",[1862,2209,2210],{},"--with \u003Cfolder>"," installs a plugin it uses from its folder first). ",[1862,2213,2206],{}," takes its argument as a file or folder when it exists and is written as a path (",[1862,2216,2217],{},".\u002Ftriage.md",", ",[1862,2220,2221],{},".\u002Ftriage",[1862,2223,2224],{},"triage\u002F","); anything else is an agent's name or address, even where a folder of that name exists, such as the one ",[1862,2227,2228],{},"plugin eject"," writes. Write ",[1862,2231,2232],{},".\u002F\u003Cfolder>"," to run a folder.",[2167,2235,2237],{"id":2236},"when-it-needs-more-eject","When it needs more: eject",[1855,2239,2240,2241,2244],{},"When the agent needs code of its own (a tool), evals or more parts (a second agent, a flow, a skill), ",[1862,2242,2243],{},"oz0 plugin eject"," writes the full plugin folder it stands for:",[1884,2246,2248],{"className":1886,"code":2247,"filename":1888,"language":1889,"meta":1890,"style":1890},"oz0 plugin eject .\u002Ftriage.md --out triage\n",[1862,2249,2250],{"__ignoreMap":1890},[1894,2251,2252,2254,2257,2260,2263,2266],{"class":1896,"line":1897},[1894,2253,1714],{"class":1900},[1894,2255,2256],{"class":1903}," plugin",[1894,2258,2259],{"class":1903}," eject",[1894,2261,2262],{"class":1903}," .\u002Ftriage.md",[1894,2264,2265],{"class":1903}," --out",[1894,2267,2268],{"class":1903}," triage\n",[1884,2270,2275],{"className":2271,"code":2273,"language":2274,"meta":1890},[2272],"language-text","triage\u002F\n├── oz0-plugin.yaml      the manifest: the name, kind and uses: the loader made, and the version kept\n├── agents\u002Ftriage.yaml   the front matter's fields as you wrote them, with instructions: prompts\u002Ftriage.md\n├── prompts\u002Ftriage.md    the body\n└── evals\u002Ftriage.yaml    one case to fill in: an install runs the evals on a test node first\n","text",[1862,2276,2273],{"__ignoreMap":1890},[1855,2278,2279,2280,2283,2284,2287,2288,2292,2293,2296,2297,2299],{},"The plugin keeps its name and its version (the installed one's, when your CLI context's server has it; ",[1862,2281,2282],{},"--version"," sets another). Installed over the plugin, ",[1862,2285,2286],{},"oz0 plugin install .\u002Ftriage"," updates it, with its grants, its history and its ",[1867,2289,2291],{"href":2290},"\u002Fbuild\u002Fplugins\u002Finstall\u002Frollouts#new-versions-roll-out-to-canaries-first","rollouts","; its version moves when you change ",[1862,2294,2295],{},"version:"," in ",[1862,2298,1727],{},". A part that wants a version of its own is a one-file plugin of its own, not a second agent in the first one's folder.",[1872,2301,2303],{"id":2302},"an-agent-in-a-plugin","An agent in a plugin",[1855,2305,2306,2307,2310],{},"Inside a full plugin, an agent is a YAML file (or a Markdown agent) listed under ",[1862,2308,2309],{},"agents:"," in the manifest (a file, or a folder of them):",[1884,2312,2317],{"className":2313,"code":2314,"filename":2315,"language":2316,"meta":1890,"style":1890},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: acme-reviewer                  # unique per tenant; jobs address agents by name\ndescription: Reviews pull requests.  # shown to agents that may delegate to this one\nruntime: pydantic-ai\nmodel:\n  use: default                       # one of the tenant's aliases: default, fast or smart\n  needs: [tools]                     # what the alias's model must be able to do\ninstructions: prompts\u002Facme-reviewer.md # the system prompt, a path in the plugin\ntools: [acme_github.get_pr, acme_github.comment, oz.delegate]\ninput_schema: schemas\u002Freview-input.json    # optional JSON Schema for the job's input\noutput_schema: schemas\u002Freview.json         # optional JSON Schema for the answer\nrequires:\n  labels: {gpu: \"true\"}              # only nodes with these labels run it\nlimits:\n  max_steps: 20                      # model calls per job (default 50)\n  max_tokens: 200000                 # input plus output tokens per job\n  timeout: 10m                       # s, m or h\ndelegation:\n  allow: [acme-explainer]            # agents oz.delegate may start\n  max_depth: 1                       # how deep a chain of delegations may go\n  max_children: 3                    # delegations per job\n","agents\u002Facme-reviewer.yaml","yaml",[1862,2318,2319,2331,2343,2353,2359,2371,2387,2399,2423,2436,2449,2456,2485,2491,2503,2516,2528,2535,2553,2567],{"__ignoreMap":1890},[1894,2320,2321,2323,2325,2328],{"class":1896,"line":1897},[1894,2322,2159],{"class":1948},[1894,2324,1952],{"class":1922},[1894,2326,2327],{"class":1903}," acme-reviewer",[1894,2329,2330],{"class":2030},"                  # unique per tenant; jobs address agents by name\n",[1894,2332,2333,2335,2337,2340],{"class":1896,"line":1945},[1894,2334,1961],{"class":1948},[1894,2336,1952],{"class":1922},[1894,2338,2339],{"class":1903}," Reviews pull requests.",[1894,2341,2342],{"class":2030},"  # shown to agents that may delegate to this one\n",[1894,2344,2345,2348,2350],{"class":1896,"line":1958},[1894,2346,2347],{"class":1948},"runtime",[1894,2349,1952],{"class":1922},[1894,2351,2352],{"class":1903}," pydantic-ai\n",[1894,2354,2355,2357],{"class":1896,"line":1969},[1894,2356,1972],{"class":1948},[1894,2358,1975],{"class":1922},[1894,2360,2361,2363,2365,2368],{"class":1896,"line":1978},[1894,2362,1981],{"class":1948},[1894,2364,1952],{"class":1922},[1894,2366,2367],{"class":1903}," default",[1894,2369,2370],{"class":2030},"                       # one of the tenant's aliases: default, fast or smart\n",[1894,2372,2373,2375,2377,2379,2381,2384],{"class":1896,"line":1989},[1894,2374,1992],{"class":1948},[1894,2376,1952],{"class":1922},[1894,2378,1997],{"class":1922},[1894,2380,2000],{"class":1903},[1894,2382,2383],{"class":1922},"]",[1894,2385,2386],{"class":2030},"                     # what the alias's model must be able to do\n",[1894,2388,2389,2391,2393,2396],{"class":1896,"line":2006},[1894,2390,2151],{"class":1948},[1894,2392,1952],{"class":1922},[1894,2394,2395],{"class":1903}," prompts\u002Facme-reviewer.md",[1894,2397,2398],{"class":2030}," # the system prompt, a path in the plugin\n",[1894,2400,2401,2403,2405,2407,2410,2413,2416,2418,2421],{"class":1896,"line":2017},[1894,2402,2000],{"class":1948},[1894,2404,1952],{"class":1922},[1894,2406,1997],{"class":1922},[1894,2408,2409],{"class":1903},"acme_github.get_pr",[1894,2411,2412],{"class":1922},",",[1894,2414,2415],{"class":1903}," acme_github.comment",[1894,2417,2412],{"class":1922},[1894,2419,2420],{"class":1903}," oz.delegate",[1894,2422,2003],{"class":1922},[1894,2424,2425,2428,2430,2433],{"class":1896,"line":2027},[1894,2426,2427],{"class":1948},"input_schema",[1894,2429,1952],{"class":1922},[1894,2431,2432],{"class":1903}," schemas\u002Freview-input.json",[1894,2434,2435],{"class":2030},"    # optional JSON Schema for the job's input\n",[1894,2437,2438,2441,2443,2446],{"class":1896,"line":2034},[1894,2439,2440],{"class":1948},"output_schema",[1894,2442,1952],{"class":1922},[1894,2444,2445],{"class":1903}," schemas\u002Freview.json",[1894,2447,2448],{"class":2030},"         # optional JSON Schema for the answer\n",[1894,2450,2451,2454],{"class":1896,"line":2041},[1894,2452,2453],{"class":1948},"requires",[1894,2455,1975],{"class":1922},[1894,2457,2458,2461,2463,2466,2469,2471,2473,2476,2479,2482],{"class":1896,"line":2053},[1894,2459,2460],{"class":1948},"  labels",[1894,2462,1952],{"class":1922},[1894,2464,2465],{"class":1922}," {",[1894,2467,2468],{"class":1948},"gpu",[1894,2470,1952],{"class":1922},[1894,2472,1923],{"class":1922},[1894,2474,2475],{"class":1903},"true",[1894,2477,2478],{"class":1922},"\"",[1894,2480,2481],{"class":1922},"}",[1894,2483,2484],{"class":2030},"              # only nodes with these labels run it\n",[1894,2486,2487,2489],{"class":1896,"line":2059},[1894,2488,2062],{"class":1948},[1894,2490,1975],{"class":1922},[1894,2492,2493,2495,2497,2500],{"class":1896,"line":2067},[1894,2494,2070],{"class":1948},[1894,2496,1952],{"class":1922},[1894,2498,2499],{"class":2075}," 20",[1894,2501,2502],{"class":2030},"                      # model calls per job (default 50)\n",[1894,2504,2505,2508,2510,2513],{"class":1896,"line":2079},[1894,2506,2507],{"class":1948},"  max_tokens",[1894,2509,1952],{"class":1922},[1894,2511,2512],{"class":2075}," 200000",[1894,2514,2515],{"class":2030},"                 # input plus output tokens per job\n",[1894,2517,2518,2520,2522,2525],{"class":1896,"line":2090},[1894,2519,2082],{"class":1948},[1894,2521,1952],{"class":1922},[1894,2523,2524],{"class":1903}," 10m",[1894,2526,2527],{"class":2030},"                       # s, m or h\n",[1894,2529,2530,2533],{"class":1896,"line":2095},[1894,2531,2532],{"class":1948},"delegation",[1894,2534,1975],{"class":1922},[1894,2536,2538,2541,2543,2545,2548,2550],{"class":1896,"line":2537},18,[1894,2539,2540],{"class":1948},"  allow",[1894,2542,1952],{"class":1922},[1894,2544,1997],{"class":1922},[1894,2546,2547],{"class":1903},"acme-explainer",[1894,2549,2383],{"class":1922},[1894,2551,2552],{"class":2030},"            # agents oz.delegate may start\n",[1894,2554,2556,2559,2561,2564],{"class":1896,"line":2555},19,[1894,2557,2558],{"class":1948},"  max_depth",[1894,2560,1952],{"class":1922},[1894,2562,2563],{"class":2075}," 1",[1894,2565,2566],{"class":2030},"                       # how deep a chain of delegations may go\n",[1894,2568,2570,2573,2575,2578],{"class":1896,"line":2569},20,[1894,2571,2572],{"class":1948},"  max_children",[1894,2574,1952],{"class":1922},[1894,2576,2577],{"class":2075}," 3",[1894,2579,2580],{"class":2030},"                    # delegations per job\n",[1872,2582,2583],{"id":2347},"Runtime",[1855,2585,2586,2588],{},[1862,2587,2347],{}," says how the agent runs:",[2590,2591,2592,2607],"table",{},[2593,2594,2595],"thead",{},[2596,2597,2598,2601,2604],"tr",{},[2599,2600,2583],"th",{},[2599,2602,2603],{},"How it runs",[2599,2605,2606],{},"Status",[2608,2609,2610,2631,2655],"tbody",{},[2596,2611,2612,2618,2628],{},[2613,2614,2615],"td",{},[1862,2616,2617],{},"pydantic-ai",[2613,2619,2620,2621,2627],{},"A ",[1867,2622,2626],{"href":2623,"rel":2624},"https:\u002F\u002Fai.pydantic.dev",[2625],"nofollow","Pydantic AI"," agent with Temporal durability: the loop is workflow code and every model call is an activity",[2613,2629,2630],{},"Works today; the default",[2596,2632,2633,2638,2652],{},[2613,2634,2635],{},[1862,2636,2637],{},"harness:\u003Cname>",[2613,2639,2640,2641,2644,2645,2648,2649,1870],{},"A whole session of an agent harness, such as ",[1862,2642,2643],{},"harness:claude-agent-sdk",", run by a harness plugin, with options under ",[1862,2646,2647],{},"harness:",". See ",[1867,2650,2651],{"href":793},"Harnesses",[2613,2653,2654],{},"Works today",[2596,2656,2657,2662,2671],{},[2613,2658,2659],{},[1862,2660,2661],{},"openai-agents",[2613,2663,2664,2665,2670],{},"An agent on the ",[1867,2666,2669],{"href":2667,"rel":2668},"https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",[2625],"OpenAI Agents SDK",", run as Temporal's own integration runs it: the loop is workflow code, every model call and every tool call an activity",[2613,2672,2654],{},[1872,2674,2676],{"id":2675},"choosing-a-framework","Choosing a framework",[1855,2678,2679,2680,2683,2684,2687],{},"Both frameworks run in the node runtime, as workflow code, so a job keeps going from its last step after a node or a worker restarts, and both get what the platform adds to every agent: tools from plugins on the right node, ",[1862,2681,2682],{},"oz.delegate"," and ",[1862,2685,2686],{},"oz.ask_user",", hooks and approvals on every call, default-deny of undeclared tools, contracts, limits, budgets, quotas and kill switches, the live stream, the job's trace, continue-as-new for long agents and shadow runs. An agent on one framework delegates to an agent on the other like to any agent: the child is a job of its own.",[2590,2689,2690,2704],{},[2593,2691,2692],{},[2596,2693,2694,2696,2700],{},[2599,2695],{},[2599,2697,2698],{},[1862,2699,2617],{},[2599,2701,2702],{},[1862,2703,2661],{},[2608,2705,2706,2725,2744,2755,2772,2794,2816,2843],{},[2596,2707,2708,2711,2714],{},[2613,2709,2710],{},"Models",[2613,2712,2713],{},"Every format the gateway speaks: Anthropic's Messages API, OpenAI's Responses and Chat",[2613,2715,2716,2717,2720,2721,2724],{},"OpenAI's Responses API (",[1862,2718,2719],{},"openai\u002F\u003Cmodel>",") and Chat (",[1862,2722,2723],{},"local\u002F\u003Cmodel>",", OpenAI-compatible provider records); an Anthropic model is refused",[2596,2726,2727,2734,2737],{},[2613,2728,2729,2730,2733],{},"Aliases (",[1862,2731,2732],{},"model.use",")",[2613,2735,2736],{},"Any model the alias resolves to",[2613,2738,2739,2740,2743],{},"The models of the alias that speak an OpenAI format; the job fails with ",[1862,2741,2742],{},"ModelFormatUnsupported"," when none does",[2596,2745,2746,2749,2752],{},[2613,2747,2748],{},"Live stream",[2613,2750,2751],{},"Text as the model writes it",[2613,2753,2754],{},"Text as the model writes it, streamed from the model call",[2596,2756,2757,2760,2763],{},[2613,2758,2759],{},"Hand-offs",[2613,2761,2762],{},"No",[2613,2764,2765,2768,2769,2771],{},[1862,2766,2767],{},"handoffs:"," gives the conversation to another ",[1862,2770,2661],{}," agent of the plugin, in the same job",[2596,2773,2774,2777,2785],{},[2613,2775,2776],{},"Long conversations",[2613,2778,2779,2683,2782],{},[1862,2780,2781],{},"history.continue_after",[1862,2783,2784],{},"history.compact",[2613,2786,2787,2789,2790,2793],{},[1862,2788,2781],{}," only; ",[1862,2791,2792],{},"compact"," is ignored, with a warning from lint",[2596,2795,2796,2799,2813],{},[2613,2797,2798],{},"Colleagues, the board, events",[2613,2800,2801,2218,2804,2218,2807,2218,2810],{},[1862,2802,2803],{},"oz.ask_colleague",[1862,2805,2806],{},"oz.board_write",[1862,2808,2809],{},"oz.board_read",[1862,2811,2812],{},"oz.wait_for_event",[2613,2814,2815],{},"The same tools; a colleague's question is answered from the job's task and what it streamed so far",[2596,2817,2818,2821,2840],{},[2613,2819,2820],{},"Outcome checks and best-of",[2613,2822,2823,2218,2826,2829,2830,2218,2833,2836,2837],{},[1862,2824,2825],{},"outcome:",[1862,2827,2828],{},"best_of:"," with ",[1862,2831,2832],{},"n",[1862,2834,2835],{},"models"," or ",[1862,2838,2839],{},"agents",[2613,2841,2842],{},"The same: the check runs around the SDK's run, and a revision is the next turn of its conversation",[2596,2844,2845,2848,2856],{},[2613,2846,2847],{},"Shared GPUs",[2613,2849,2850,2218,2853],{},[1862,2851,2852],{},"model.placement: fleet",[1862,2854,2855],{},"model.priority",[2613,2857,2858],{},"The same: the SDK's model calls go to the model's queue, and the GPU node answers them without the agent",[1855,2860,2861,2862,2864,2865,2868],{},"Pick ",[1862,2863,2617],{}," unless you want the SDK's hand-offs or already think in its terms. The example plugin ",[1862,2866,2867],{},"examples\u002Fopenai-desk"," currently requires repository access; public source downloads are coming soon. It has an SDK agent that hands off to a second one, delegates to a Pydantic AI agent and calls an MCP tool:",[1884,2870,2873],{"className":2313,"code":2871,"filename":2872,"language":2316,"meta":1890,"style":1890},"name: openai-desk-triage\nruntime: openai-agents\nmodel:\n  primary: openai\u002Fgpt-5.5\ninstructions: prompts\u002Ftriage.md\ninput: text\noutput: text\ntools: [oz.delegate, openai_desk.hello]\nhandoffs: [openai-desk-billing] # SDK hand-offs: openai-desk-billing takes the conversation over, in this job\ndelegation:\n  allow: [openai-desk-writer, openai-desk-billing] # a hand-off target must be allowed too\n  max_depth: 2                       # how long a chain of hand-offs may be\n  max_children: 3                    # delegations and hand-offs together\n","agents\u002Ftriage.yaml",[1862,2874,2875,2884,2893,2899,2909,2918,2926,2934,2951,2968,2974,2995,3007],{"__ignoreMap":1890},[1894,2876,2877,2879,2881],{"class":1896,"line":1897},[1894,2878,2159],{"class":1948},[1894,2880,1952],{"class":1922},[1894,2882,2883],{"class":1903}," openai-desk-triage\n",[1894,2885,2886,2888,2890],{"class":1896,"line":1945},[1894,2887,2347],{"class":1948},[1894,2889,1952],{"class":1922},[1894,2891,2892],{"class":1903}," openai-agents\n",[1894,2894,2895,2897],{"class":1896,"line":1958},[1894,2896,1972],{"class":1948},[1894,2898,1975],{"class":1922},[1894,2900,2901,2904,2906],{"class":1896,"line":1969},[1894,2902,2903],{"class":1948},"  primary",[1894,2905,1952],{"class":1922},[1894,2907,2908],{"class":1903}," openai\u002Fgpt-5.5\n",[1894,2910,2911,2913,2915],{"class":1896,"line":1978},[1894,2912,2151],{"class":1948},[1894,2914,1952],{"class":1922},[1894,2916,2917],{"class":1903}," prompts\u002Ftriage.md\n",[1894,2919,2920,2922,2924],{"class":1896,"line":1989},[1894,2921,2009],{"class":1948},[1894,2923,1952],{"class":1922},[1894,2925,2014],{"class":1903},[1894,2927,2928,2930,2932],{"class":1896,"line":2006},[1894,2929,2020],{"class":1948},[1894,2931,1952],{"class":1922},[1894,2933,2014],{"class":1903},[1894,2935,2936,2938,2940,2942,2944,2946,2949],{"class":1896,"line":2017},[1894,2937,2000],{"class":1948},[1894,2939,1952],{"class":1922},[1894,2941,1997],{"class":1922},[1894,2943,2682],{"class":1903},[1894,2945,2412],{"class":1922},[1894,2947,2948],{"class":1903}," openai_desk.hello",[1894,2950,2003],{"class":1922},[1894,2952,2953,2956,2958,2960,2963,2965],{"class":1896,"line":2027},[1894,2954,2955],{"class":1948},"handoffs",[1894,2957,1952],{"class":1922},[1894,2959,1997],{"class":1922},[1894,2961,2962],{"class":1903},"openai-desk-billing",[1894,2964,2383],{"class":1922},[1894,2966,2967],{"class":2030}," # SDK hand-offs: openai-desk-billing takes the conversation over, in this job\n",[1894,2969,2970,2972],{"class":1896,"line":2034},[1894,2971,2532],{"class":1948},[1894,2973,1975],{"class":1922},[1894,2975,2976,2978,2980,2982,2985,2987,2990,2992],{"class":1896,"line":2041},[1894,2977,2540],{"class":1948},[1894,2979,1952],{"class":1922},[1894,2981,1997],{"class":1922},[1894,2983,2984],{"class":1903},"openai-desk-writer",[1894,2986,2412],{"class":1922},[1894,2988,2989],{"class":1903}," openai-desk-billing",[1894,2991,2383],{"class":1922},[1894,2993,2994],{"class":2030}," # a hand-off target must be allowed too\n",[1894,2996,2997,2999,3001,3004],{"class":1896,"line":2053},[1894,2998,2558],{"class":1948},[1894,3000,1952],{"class":1922},[1894,3002,3003],{"class":2075}," 2",[1894,3005,3006],{"class":2030},"                       # how long a chain of hand-offs may be\n",[1894,3008,3009,3011,3013,3015],{"class":1896,"line":2059},[1894,3010,2572],{"class":1948},[1894,3012,1952],{"class":1922},[1894,3014,2577],{"class":2075},[1894,3016,3017],{"class":2030},"                    # delegations and hand-offs together\n",[1855,3019,3020,3021,3024,3025,3028,3029,3032,3033,3036],{},"A hand-off is a delegation within the job: its target must be in ",[1862,3022,3023],{},"delegation.allow",", a chain of hand-offs is at most ",[1862,3026,3027],{},"max_depth"," long, and hand-offs count against ",[1862,3030,3031],{},"max_children"," with the job's delegations. The target calls its own tools under its own name, so hooks, approvals and kill switches for it apply, and its model calls are metered under its name in the job of the agent that handed off. Its answer is the job's answer, so it answers with the output contract of the agent the job started on, not its own; ",[1862,3034,3035],{},"plugin lint"," warns when the two differ.",[1855,3038,3039],{},"What the SDK offers beyond that, such as its guardrails, sessions, hosted tools and agents as tools inside one run, is not part of an agent's YAML: an agent is data, and tools are plugins.",[1872,3041,3042],{"id":1972},"Model",[1855,3044,3045,3046,3050,3051,2218,3054,2683,3057,3060,3061,3064,3065,3067,3068,3070],{},"Ask for an alias. A plugin that names a vendor's model runs only for tenants who pay that vendor. Every tenant has the ",[1867,3047,3049],{"href":3048},"\u002Fspend\u002Fmodels-and-keys\u002Faliases#the-standard-aliases","standard aliases"," ",[1862,3052,3053],{},"default",[1862,3055,3056],{},"fast",[1862,3058,3059],{},"smart",", seeded from its providers, so ask for one of them with what the agent needs: ",[1862,3062,3063],{},"model: {use: default, needs: [tools]}"," for most agents, ",[1862,3066,3056],{}," for short, frequent jobs, ",[1862,3069,3059],{}," for the hardest ones.",[1855,3072,3073,3074,3077],{},"A tenant that installs the plugin maps any other alias you ask for at install (",[1862,3075,3076],{},"plugin install --map",").",[1855,3079,3080,3081,3084,3085,3088,3089,3077],{},"Name a vendor's model only when the agent needs that vendor's own feature, and say which in ",[1862,3082,3083],{},"model.vendor_reason","; a verified plugin fails ",[1862,3086,3087],{},"plugin lint --verified"," without it (",[1867,3090,3092],{"href":3091},"\u002Fbuild\u002Fplugins\u002Fstructure\u002Flint-rules#oz-s016","OZ-S016",[1855,3094,3095,3096,3099,3100,2218,3103,3105,3106,3108,3109,3112],{},"Models are named ",[1862,3097,3098],{},"\u003Cprovider>\u002F\u003Cmodel>",": ",[1862,3101,3102],{},"anthropic\u002Fclaude-sonnet-5-5",[1862,3104,2719],{},", any provider record of the tenant's, or ",[1862,3107,2723],{}," for a model server on the node. Calls go through the node's local LLM proxy to the edge's gateway, which adds the tenant's key. Nodes never hold provider keys. ",[1862,3110,3111],{},"fallback"," models are tried in order when the primary fails.",[1855,3114,3115,3116,3119,3120,3123,3124,2829,3126,3128,3129,3132,3133,3135,3136,2683,3139,1870],{},"Instead of a vendor's model, an agent may ask for one of the tenant's aliases with what it needs, ",[1862,3117,3118],{},"model: {use: smart, needs: [tools], min_context: 128k}",", which the edge resolves when a job starts; and ",[1862,3121,3122],{},"data: local"," keeps an agent on local models only. An agent on ",[1862,3125,2723],{},[1862,3127,2852],{}," runs anywhere and sends its model calls to the GPU nodes that serve the model to the fleet, waiting ",[1862,3130,3131],{},"model.wait"," for a slot before its fallback; ",[1862,3134,2855],{}," (1 first, 5 last) orders its calls among the fleet's. See ",[1867,3137,3138],{"href":1549},"Models and providers",[1867,3140,3141],{"href":1309},"Local models",[1872,3143,3144],{"id":2000},"Tools",[1855,3146,3147,3149,3150,3153],{},[1862,3148,2000],{}," lists ",[1862,3151,3152],{},"\u003Ctool>.\u003Cfunction>"," names from the tenant's plugins, and built-ins:",[2590,3155,3156,3166],{},[2593,3157,3158],{},[2596,3159,3160,3163],{},[2599,3161,3162],{},"Built-in",[2599,3164,3165],{},"What it does",[2608,3167,3168,3182,3193,3204],{},[2596,3169,3170,3174],{},[2613,3171,3172],{},[1862,3173,2682],{},[2613,3175,3176,3177,3179,3180,1870],{},"Hands a task to an agent in ",[1862,3178,3023],{}," and waits for its answer. See ",[1867,3181,241],{"href":242},[2596,3183,3184,3188],{},[2613,3185,3186],{},[1862,3187,2686],{},[2613,3189,3190,3191,1870],{},"Asks a person a question and waits for the answer. See ",[1867,3192,300],{"href":301},[2596,3194,3195,3199],{},[2613,3196,3197],{},[1862,3198,2803],{},[2613,3200,3201,3202,1870],{},"Asks a running agent of the same job tree a question and waits for its answer. See ",[1867,3203,246],{"href":247},[2596,3205,3206,3212],{},[2613,3207,3208,2218,3210],{},[1862,3209,2806],{},[1862,3211,2809],{},[2613,3213,3214,3215,1870],{},"Pin a note or finding to the job tree's shared board, and read it. See ",[1867,3216,246],{"href":247},[1855,3218,3219,3220,3223,3224,1870],{},"An agent can call only the tools it lists, and only those its job's home node has installed: every other call is refused, and the model reads why, such as ",[1862,3221,3222],{},"The call to acme_crm.refund was not made: it is not among the tools this agent declares."," Hooks and approvals then decide each call that is allowed. Tools run on the job's home node unless their affinity is ",[1862,3225,3226],{},"any",[1855,3228,3229,3230,3233,3234,1870],{},"An agent that runs for hundreds of steps sets ",[1862,3231,3232],{},"history:"," to keep its conversation and its Temporal history bounded. See ",[1867,3235,232],{"href":233},[2167,3237,3239],{"id":3238},"lazy-tool-loading","Lazy tool loading",[1855,3241,3242,3243,3247],{},"Every function an agent lists is in every model request it makes (",[1867,3244,3246],{"href":3245},"\u002Fbuild\u002Fparts\u002Ftools\u002Fdefinitions#what-a-definition-costs","what a definition costs","). An agent over a plugin with many functions, such as a plugin made from an API with hundreds of operations, can load them when it needs them instead:",[1884,3249,3252],{"className":2313,"code":3250,"filename":3251,"language":2316,"meta":1890,"style":1890},"tools: [office.create_issue, office.read_file, office.send_invoice]   # and the rest\ntool_loading: lazy\n","agents\u002Fclerk.yaml",[1862,3253,3254,3280],{"__ignoreMap":1890},[1894,3255,3256,3258,3260,3262,3265,3267,3270,3272,3275,3277],{"class":1896,"line":1897},[1894,3257,2000],{"class":1948},[1894,3259,1952],{"class":1922},[1894,3261,1997],{"class":1922},[1894,3263,3264],{"class":1903},"office.create_issue",[1894,3266,2412],{"class":1922},[1894,3268,3269],{"class":1903}," office.read_file",[1894,3271,2412],{"class":1922},[1894,3273,3274],{"class":1903}," office.send_invoice",[1894,3276,2383],{"class":1922},[1894,3278,3279],{"class":2030},"   # and the rest\n",[1894,3281,3282,3285,3287],{"class":1896,"line":1945},[1894,3283,3284],{"class":1948},"tool_loading",[1894,3286,1952],{"class":1922},[1894,3288,3289],{"class":1903}," lazy\n",[1855,3291,3292],{},"Its model then gets two built-in tools in place of those definitions, the same two in every request of the job:",[2590,3294,3295,3303],{},[2593,3296,3297],{},[2596,3298,3299,3301],{},[2599,3300,3162],{},[2599,3302,3165],{},[2608,3304,3305,3319],{},[2596,3306,3307,3312],{},[2613,3308,3309],{},[1862,3310,3311],{},"oz.find_tools(query, limit)",[2613,3313,3314,3315,3318],{},"Searches the functions this agent may call now, by the words of their names and descriptions, and answers with up to ",[1862,3316,3317],{},"limit"," of them (5 unless it says, at most 20): each one's name, the first sentence of its description and its input schema.",[2596,3320,3321,3326],{},[2613,3322,3323],{},[1862,3324,3325],{},"oz.call_tool(name, arguments)",[2613,3327,3328],{},"Calls one of them by name with its arguments.",[1855,3330,3331,3332,3335,3336,3339,3340,3343],{},"Nothing about a call changes. The platform unwraps ",[1862,3333,3334],{},"oz.call_tool"," before anything decides it, so the call is the real function's: the agent must list it, the tenant's ",[1867,3337,3338],{"href":1049},"tool policy"," and its conditions, the plugin's grants, the hooks, ",[1867,3341,3342],{"href":270},"approvals"," and kill switches decide it, and the audit log, the job's trace and the live feed name the real function.",[1855,3345,3346],{},"The search never offers a function the agent may not call: what the tool policy refuses, a routine does not list, a grant does not reach, a kill switch stops or the node's tool snapshot does not have is left out before anything is ranked. It is a plain keyword search on the node: no model, no embeddings, nothing sent anywhere.",[1855,3348,3349,3350,2218,3352,3354],{},"Use it when an agent lists more functions than a model needs to see at once, roughly when its definitions pass a few thousand tokens. Keep it eager when the agent uses most of its few tools in every job: the model then takes a step to search before each new tool, and the search's answer is in the conversation instead. Built-ins (",[1862,3351,2682],{},[1862,3353,2686],{}," and the others) always stay as they are.",[1855,3356,3357,3358,2683,3360,3362],{},"Lazy loading applies to ",[1862,3359,2617],{},[1862,3361,2661],{}," agents, and to ACP harness agents, whose session's MCP server then offers the two tools; a JSON-lines harness and a remote agent run their own tools, so lint warns that it does nothing there.",[1872,3364,3366],{"id":3365},"contracts","Contracts",[2101,3368,3369,3378],{},[2104,3370,3371,3373,3374,3377],{},[1862,3372,2427],{},": a job whose input does not match fails before the agent starts, with ",[1862,3375,3376],{},"InvalidInput",". With an input schema, the job's input is JSON.",[2104,3379,3380,3382],{},[1862,3381,2440],{},": the model answers in that structure, and an answer that does not match goes back to it with the reason, at most twice.",[1855,3384,3385,3386,1870],{},"Schemas are JSON Schema files in the plugin. See ",[1867,3387,3388],{"href":674},"Contracts and limits",[1872,3390,3391],{"id":2062},"Limits",[1855,3393,3394,2218,3397,2683,3400,3403,3404,3407,3408,3412],{},[1862,3395,3396],{},"max_steps",[1862,3398,3399],{},"max_tokens",[1862,3401,3402],{},"timeout"," end the job when reached. The platform enforces them; the model cannot ignore them. ",[1862,3405,3406],{},"tool_tokens"," is the agent's ",[1867,3409,3411],{"href":3410},"\u002Fbuild\u002Fparts\u002Ftools\u002Fdefinitions#the-size-budget","size budget"," for its tool definitions, which lint, test and pack check.",[1872,3414,3416],{"id":3415},"where-it-runs","Where it runs",[1855,3418,3419,3422,3423,1870],{},[1862,3420,3421],{},"requires.labels"," limits the agent to nodes with those labels. The catalog shows which nodes are ready: ",[1862,3424,3425],{},"oz0 catalog",[1872,3427,3429],{"id":3428},"every-field","Every field",[1855,3431,3432,3433,1870],{},"See the ",[1867,3434,3435],{"href":1762},"agent definition reference",[1872,3437,3439],{"id":3438},"when-an-agent-gets-a-job-wrong","When an agent gets a job wrong",[1855,3441,3442,3443,3445,3446,3448],{},"Keep the job as an eval case, then put the fix in the cheapest part that holds it: a skill, a tool, a tool's manual, delegation, a hook or an outcome check before more instructions. ",[1867,3444,1032],{"href":1033}," has the order, and ",[1867,3447,840],{"href":841}," says when one agent should become two.",[3450,3451,3452],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":1890,"searchDepth":1945,"depth":1945,"links":3454},[3455,3460,3461,3462,3463,3464,3467,3468,3469,3470,3471],{"id":1874,"depth":1945,"text":1875,"children":3456},[3457,3458,3459],{"id":2169,"depth":1958,"text":2170},{"id":2192,"depth":1958,"text":2193},{"id":2236,"depth":1958,"text":2237},{"id":2302,"depth":1945,"text":2303},{"id":2347,"depth":1945,"text":2583},{"id":2675,"depth":1945,"text":2676},{"id":1972,"depth":1945,"text":3042},{"id":2000,"depth":1945,"text":3144,"children":3465},[3466],{"id":3238,"depth":1958,"text":3239},{"id":3365,"depth":1945,"text":3366},{"id":2062,"depth":1945,"text":3391},{"id":3415,"depth":1945,"text":3416},{"id":3428,"depth":1945,"text":3429},{"id":3438,"depth":1945,"text":3439},"Define an agent in one Markdown file, or in YAML inside a plugin: model, instructions, tools, contracts, limits and delegation.","md",null,{"audience":3476,"doc_type":3477},"plugin authors","how-to",{"icon":666},{"title":663,"description":3472},"SfcW0l0vi3SQl0Yjc7icdpv5p_wVXMdy3DxdsCD4tbA",[3482,3484],{"title":661,"path":657,"stem":658,"description":3483,"children":-1},"Choose a task in plugin parts.",{"title":668,"path":669,"stem":670,"description":3485,"icon":671,"children":-1},"An agent that reads private data, takes in outside input and can send without anyone asked is flagged on the install screen, the Configure tab and its own page, with the functions that would close it. A flag never refuses an install.",1794442921909]