Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.
The updated agents, in the same order as the request items. Items whose agent could not be found or read after update are omitted.
Agent configuration - can be either a built in (system-managed) or custom (user-created) agent
Option 1
Option 2
Show child attributes
Was this page helpful?
⌘I
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Cotool Documentation","colors":{"primary":"#A9D5F5","light":"#A9D5F5","dark":"#ADB7C2"},"logo":{"light":"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/light.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=ed5fa6ba5fadea78cb6d1341380b9873","dark":"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/dark.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=fab6122c7e0ad6a1e8299f49397231f5"},"favicon":"https://mintcdn.com/cotool-bcb49c92/YkFCFtl3swKv9Xqp/favicon.png?fit=max\u0026auto=format\u0026n=YkFCFtl3swKv9Xqp\u0026q=85\u0026s=4c02ec1d53713897f1c2b6f7815e864b","api":{"playground":{"display":"simple"},"examples":{"defaults":"all","languages":["curl","python","javascript","java","go"]}},"navbar":{"links":[{"href":"mailto:support@cotool.ai","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/cotoolai","linkedin":"https://www.linkedin.com/company/cotool-ai","website":"https://cotool.ai"}},"integrations":{"ga4":{"measurementId":"G-RJSB18V7N5"},"gtm":{"tagId":"GTM-5BPJH7T2"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"background":{"color":{"light":"#fcfeff","dark":"#0e0f12"}},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://cotool.ai/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cotool-bcb49c92","hasAudioNarration":false,"actualSubdomain":"cotool-bcb49c92","customDomains":["docs.cotool.ai"],"gitSource":{"type":"github","owner":"cotool","repo":"cogent-client","deployBranch":"stable","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adab817df07ff0fca84f17c","collectionId":"7dd0535e-fe12-400e-a93e-2a525722422c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adab817df07ff0fca84f17c"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adb8e72858a516f4e16fc1e","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":151},{"language":"default","tag":"Endpoints","count":150},{"language":"default","tag":"Documentation","count":58},{"language":"default","tag":"Agents","count":28},{"language":"default","tag":"Alerts","count":19},{"language":"default","tag":"Integrations","count":17},{"language":"default","tag":"Agent Runs","count":14},{"language":"default","tag":"Hunt","count":12},{"language":"default","tag":"Agent Triggers","count":12},{"language":"default","tag":"Intel","count":11}]},"assistantConfig":{},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/agents/batch-update-agents","slug":"/api-reference/agents/batch-update-agents","pageMetadata":{"title":"Batch update agents","description":"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/batch","href":"/api-reference/agents/batch-update-agents","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Batch update agents","description":"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/batch","href":"/api-reference/agents/batch-update-agents","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Batch update agents","description":"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.","tags":["Agents"],"x-codeSamples":[{"lang":"shell","label":"cURL","source":"curl -X PUT \"https://app.cotool.ai/api/agents/batch\" \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"items\":[{\"name\":\"string\",\"description\":\"string\",\"versionDescription\":\"string\",\"systemPrompt\":\"string\",\"toolNames\":[\"string\"],\"toolSelectionMode\":\"manual\",\"cliNames\":[\"string\"],\"toolActionConfigs\":null,\"modelAlias\":null,\"contextDocs\":[{\"provider\":\"googleDocs\",\"id\":\"string\",\"name\":\"string\",\"mimeType\":\"string\"}],\"tinesStoryImportId\":\"string\",\"planningMode\":\"never\",\"structuredOutputSchema\":null,\"persistentWorkspaceEnabled\":true,\"slackReplyScope\":\"anyone\",\"tags\":[null],\"skills\":[{\"skillId\":\"string\",\"skillVersionId\":\"string\"}],\"acceptanceCriteria\":[\"string\"],\"id\":\"string\"}]}'"}],"requestBody":"f33eff82-6c24-4cee-b118-675c87600703","responses":{"200":"6a1fe0de-801e-4caf-ba81-e7609ba44cd1","400":"13314627-5da1-4730-98f7-7ca6f68f6229","401":"8e17f8ce-8e2d-4253-9025-92febb278568","403":"eb43a92b-ed1c-4bb3-8113-4718f14d4395","500":"3e415684-1ef8-4c9d-8210-f9b7e7fc272d"},"method":"put","type":"path","servers":["f12402bf-094d-4e8f-a6cd-e74cf07b2abe"],"security":["e618135f-d82c-4c86-a175-8e63ddc0cbf3"],"path":"/api/agents/batch","baseUrlOptions":["https://app.cotool.ai"],"title":"Batch update agents","codeSamples":[{"label":"cURL","lang":"shell","source":"curl -X PUT \"https://app.cotool.ai/api/agents/batch\" \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"items\":[{\"name\":\"string\",\"description\":\"string\",\"versionDescription\":\"string\",\"systemPrompt\":\"string\",\"toolNames\":[\"string\"],\"toolSelectionMode\":\"manual\",\"cliNames\":[\"string\"],\"toolActionConfigs\":null,\"modelAlias\":null,\"contextDocs\":[{\"provider\":\"googleDocs\",\"id\":\"string\",\"name\":\"string\",\"mimeType\":\"string\"}],\"tinesStoryImportId\":\"string\",\"planningMode\":\"never\",\"structuredOutputSchema\":null,\"persistentWorkspaceEnabled\":true,\"slackReplyScope\":\"anyone\",\"tags\":[null],\"skills\":[{\"skillId\":\"string\",\"skillVersionId\":\"string\"}],\"acceptanceCriteria\":[\"string\"],\"id\":\"string\"}]}'"}],"requestExampleLanguages":["bash","python","javascript","java","go"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Identifier of the agent to update","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","description":"Optional new name for the agent","uniqueKey":"\\items.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","description":"Optional new description for the agent","uniqueKey":"\\items.items.[INDEX].description","typeLabel":"string"},"versionDescription":{"type":"string","description":"Optional description for the agent version created by this update","uniqueKey":"\\items.items.[INDEX].versionDescription","typeLabel":"string"},"systemPrompt":{"type":"string","description":"Optional new system prompt for the agent","uniqueKey":"\\items.items.[INDEX].systemPrompt","typeLabel":"string"},"toolNames":{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].toolNames.items.[INDEX]","typeLabel":"string"},"description":"Optional new array of tool names for the agent","uniqueKey":"\\items.items.[INDEX].toolNames","typeLabel":"string[]"},"toolSelectionMode":{"type":"string","enum":["manual","all_read_only"],"description":"Optional new tool selection mode for the agent","uniqueKey":"\\items.items.[INDEX].toolSelectionMode","typeLabel":"enum\u003cstring>"},"cliNames":{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].cliNames.items.[INDEX]","typeLabel":"string"},"description":"Optional new array of CLI integration ids for the agent","uniqueKey":"\\items.items.[INDEX].cliNames","typeLabel":"string[]"},"toolActionConfigs":{"type":"array","items":{"oneOf":[{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedRecipients"],"properties":{"type":{"type":"string","const":"cotool-email_sendEmail","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.0.type","typeLabel":"string"},"allowedRecipients":{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.0.allowedRecipients.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":500,"description":"Email addresses and domains this agent may send email to. A domain allows every address at that domain, not its subdomains. With no entries the agent cannot send email.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.0.allowedRecipients","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_sendMessage","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1.hideAgentButton","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_replyToThread","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2.hideAgentButton","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_readChannelMessages","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.3.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_readThreadMessages","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.4.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_downloadMessageFiles","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.5.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_waitForUserResponse","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.hideAgentButton","typeLabel":"boolean"},"timeout":{"type":"object","properties":{"amount":{"type":"integer","exclusiveMinimum":0,"description":"Number of units to wait before an unanswered prompt times out.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.timeout.amount","typeLabel":"integer"},"unit":{"type":"string","enum":["minutes","hours","days"],"description":"Unit for the timeout amount.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.timeout.unit","typeLabel":"enum\u003cstring>"}},"required":["amount","unit"],"additionalProperties":false,"description":"Optional fixed timeout for unanswered prompts. When omitted, the agent decides how long to wait via the tool input (and waits indefinitely if it specifies nothing).","uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6.timeout","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].toolActionConfigs.items.[INDEX]","typeLabel":"object"},"description":"Optional updated per-tool-action configuration for the agent","uniqueKey":"\\items.items.[INDEX].toolActionConfigs","typeLabel":"object[]"},"modelAlias":{"description":"Model alias must be a valid user-selectable model from the registry","uniqueKey":"\\items.items.[INDEX].modelAlias","typeLabel":"any"},"contextDocs":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["googleDocs","notion","confluence","mcp"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].contextDocs.items.[INDEX].provider","typeLabel":"enum\u003cstring>"},"id":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].contextDocs.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].contextDocs.items.[INDEX].name","typeLabel":"string"},"mimeType":{"type":"string","uniqueKey":"\\items.items.[INDEX].contextDocs.items.[INDEX].mimeType","typeLabel":"string"}},"required":["provider","id","name"],"uniqueKey":"\\items.items.[INDEX].contextDocs.items.[INDEX]","typeLabel":"object"},"description":"Optional new context documents for the agent","uniqueKey":"\\items.items.[INDEX].contextDocs","typeLabel":"object[]"},"tinesStoryImportId":{"oneOf":[{"type":"string","format":"uuid","description":"Optional reference to the Tines story import template (can be set to null to clear)","uniqueKey":"\\items.items.[INDEX].tinesStoryImportId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Optional reference to the Tines story import template (can be set to null to clear)","uniqueKey":"\\items.items.[INDEX].tinesStoryImportId.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].tinesStoryImportId","typeLabel":"string\u003cuuid> | null"},"planningMode":{"type":"string","enum":["never","always","auto"],"description":"Optional new planning behavior for this agent","uniqueKey":"\\items.items.[INDEX].planningMode","typeLabel":"enum\u003cstring>"},"structuredOutputSchema":{"oneOf":[{"type":"object","description":"Optional updated structured output schema definition for this agent","required":["type"],"properties":{"type":{"type":"string","enum":["string","number","boolean","null","object","array"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.description","typeLabel":"string"},"properties":{"type":"object","additionalProperties":{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"},"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.properties","typeLabel":"object"},"items":{"oneOf":[{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"}],"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.\\items","typeLabel":"any"},"minItems":{"type":"integer","minimum":0,"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.minItems","typeLabel":"integer"},"maxItems":{"type":"integer","minimum":0,"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.maxItems","typeLabel":"integer"},"required":{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.required","typeLabel":"string[]"},"enum":{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.enum","typeLabel":"string[]"},"additionalProperties":{"type":"boolean","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.\\additionalProperties","typeLabel":"boolean"},"x-cotool":{"type":"object","properties":{"presetId":{"type":"string","enum":["classification","markdown","templatedReport","toolCallEvidence"],"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.presetId","typeLabel":"enum\u003cstring>"},"viewerId":{"type":"string","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.viewerId","typeLabel":"string"}},"additionalProperties":{"oneOf":[{"type":"string","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.4.items.[INDEX]","typeLabel":"any"},"description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.4","typeLabel":"any[]"},{"type":"object","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.5","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool.additionalProperties","typeLabel":"string | number | boolean | null | any[] | object"},"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0.x-cotool","typeLabel":"object"}},"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional updated structured output schema definition for this agent","uniqueKey":"\\items.items.[INDEX].structuredOutputSchema.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].structuredOutputSchema","typeLabel":"object | null"},"persistentWorkspaceEnabled":{"type":"boolean","description":"Optional persistent workspace setting for this agent","uniqueKey":"\\items.items.[INDEX].persistentWorkspaceEnabled","typeLabel":"boolean"},"slackReplyScope":{"oneOf":[{"type":"string","enum":["anyone","cotool_users",null],"description":"Optional default Slack reply scope for chats not started by a Slack trigger (anyone | cotool_users)","uniqueKey":"\\items.items.[INDEX].slackReplyScope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["anyone","cotool_users",null],"description":"Optional default Slack reply scope for chats not started by a Slack trigger (anyone | cotool_users)","uniqueKey":"\\items.items.[INDEX].slackReplyScope.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].slackReplyScope","typeLabel":"enum\u003cstring> | null"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"description":"A tag label for categorizing agents (normalized to lowercase)","uniqueKey":"\\items.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"description":"Array of tags for categorizing the agent","uniqueKey":"\\items.items.[INDEX].tags","typeLabel":"string[]"},"skills":{"type":"array","items":{"type":"object","properties":{"skillId":{"type":"string","format":"uuid","description":"Unique identifier of the skill to attach","isRequired":true,"uniqueKey":"\\items.items.[INDEX].skills.items.[INDEX].skillId","typeLabel":"string\u003cuuid>"},"skillVersionId":{"type":"string","format":"uuid","description":"Optional specific version to pin for this agent binding","uniqueKey":"\\items.items.[INDEX].skills.items.[INDEX].skillVersionId","typeLabel":"string\u003cuuid>"}},"required":["skillId"],"uniqueKey":"\\items.items.[INDEX].skills.items.[INDEX]","typeLabel":"object"},"description":"Optional set of skills to attach to this agent","uniqueKey":"\\items.items.[INDEX].skills","typeLabel":"object[]"},"acceptanceCriteria":{"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"uniqueKey":"\\items.items.[INDEX].acceptanceCriteria.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"Optional list of acceptance criteria evaluated for every run","uniqueKey":"\\items.items.[INDEX].acceptanceCriteria","typeLabel":"string[]"}},"required":["id"],"description":"Single agent update inside a batch — same shape as the single-agent update body, plus the agent id.","uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":200,"description":"Per-agent update payloads. The whole batch is applied in a single transaction.","isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"}},"required":["items"],"description":"Atomically update many agents in a single transaction. The entire batch succeeds or rolls back together.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"items":[{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>","description":"\u003cstring>","versionDescription":"\u003cstring>","systemPrompt":"\u003cstring>","toolNames":["\u003cstring>"],"cliNames":["\u003cstring>"],"toolActionConfigs":[{"type":"cotool-email_sendEmail","allowedRecipients":["\u003cstring>"]}],"modelAlias":"\u003cunknown>","contextDocs":[{"id":"\u003cstring>","name":"\u003cstring>","mimeType":"\u003cstring>"}],"tinesStoryImportId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","structuredOutputSchema":{"title":"\u003cstring>","description":"\u003cstring>","properties":{},"items":"\u003cunknown>","minItems":1,"maxItems":1,"required":["\u003cstring>"],"enum":["\u003cstring>"],"additionalProperties":true,"x-cotool":{"viewerId":"\u003cstring>"}},"persistentWorkspaceEnabled":true,"tags":["\u003cstring>"],"skills":[{"skillId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","skillVersionId":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}],"acceptanceCriteria":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"6a1fe0de-801e-4caf-ba81-e7609ba44cd1":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"agents":{"type":"array","items":{"oneOf":[{"type":"object","description":"Agent configuration - can be either a built in (system-managed) or custom (user-created) agent","required":["id","organizationId","name","description","systemPrompt","createdAt","updatedAt","deletedAt","toolNames","toolSelectionMode","toolActionConfigs","modelAlias","planningMode","agentType","origin","isBuiltIn","builtInAgentType"],"properties":{"id":{"type":"string","description":"Unique identifier for the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.id","typeLabel":"string"},"organizationId":{"type":"string","description":"Unique identifier of the organization that owns this agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.organizationId","typeLabel":"string"},"name":{"type":"string","description":"Human-readable name of the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.name","typeLabel":"string"},"description":{"type":"string","description":"Description of what the agent does and its purpose","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.description","typeLabel":"string"},"systemPrompt":{"type":"string","description":"The agent's live system prompt (version history lives in agent_versions)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.systemPrompt","typeLabel":"string"},"createdAt":{"type":"string","description":"Timestamp when the agent was created","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdAt","typeLabel":"string"},"updatedAt":{"type":"string","description":"Timestamp when the agent was last updated","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedAt","typeLabel":"string"},"deletedAt":{"oneOf":[{"type":"string","description":"Timestamp when the agent was soft-deleted, or null if not deleted","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.deletedAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp when the agent was soft-deleted, or null if not deleted","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.deletedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.deletedAt","typeLabel":"string | null"},"toolNames":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.toolNames.items.[INDEX]","typeLabel":"string"},"description":"Array of tool names that this agent can use during execution","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolNames","typeLabel":"string[]"},"toolSelectionMode":{"type":"string","enum":["manual","all_read_only"],"description":"How this agent resolves tools at runtime","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolSelectionMode","typeLabel":"enum\u003cstring>"},"toolActionConfigs":{"type":"array","items":{"oneOf":[{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedRecipients"],"properties":{"type":{"type":"string","const":"cotool-email_sendEmail","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.0.type","typeLabel":"string"},"allowedRecipients":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.0.allowedRecipients.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":500,"description":"Email addresses and domains this agent may send email to. A domain allows every address at that domain, not its subdomains. With no entries the agent cannot send email.","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.0.allowedRecipients","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_sendMessage","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1.hideAgentButton","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_replyToThread","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2.hideAgentButton","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_readChannelMessages","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.3.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_readThreadMessages","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.4.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_downloadMessageFiles","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.5.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_waitForUserResponse","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.hideAgentButton","typeLabel":"boolean"},"timeout":{"type":"object","properties":{"amount":{"type":"integer","exclusiveMinimum":0,"description":"Number of units to wait before an unanswered prompt times out.","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.timeout.amount","typeLabel":"integer"},"unit":{"type":"string","enum":["minutes","hours","days"],"description":"Unit for the timeout amount.","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.timeout.unit","typeLabel":"enum\u003cstring>"}},"required":["amount","unit"],"additionalProperties":false,"description":"Optional fixed timeout for unanswered prompts. When omitted, the agent decides how long to wait via the tool input (and waits indefinitely if it specifies nothing).","uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6.timeout","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs.items.[INDEX]","typeLabel":"object"},"description":"Per-tool-action configuration for this agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.toolActionConfigs","typeLabel":"object[]"},"modelAlias":{"description":"Model alias specifying which LLM model to use for this agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.modelAlias","typeLabel":"any"},"planningMode":{"type":"string","enum":["auto","never","always"],"description":"Planning behavior mode for the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.planningMode","typeLabel":"enum\u003cstring>"},"agentType":{"type":"string","enum":["response","detection"],"description":"Type of agent: response (standard) or detection (security detection)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.agentType","typeLabel":"enum\u003cstring>"},"origin":{"type":"string","enum":["user","orchestrator"],"description":"Who created this agent: user or orchestrator","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.origin","typeLabel":"enum\u003cstring>"},"isBuiltIn":{"type":"boolean","const":true,"description":"Whether this agent is built in to the system (true for built-in (system-managed) agents)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.isBuiltIn","typeLabel":"boolean"},"builtInAgentType":{"type":"string","enum":["threat-relevancy","threat-research","autonomous-hunt","detection-engineer","code-detection-tuner","detection-calibrator","test-agent"],"description":"Type of built-in agent (e.g., threat-validation, threat-hunt)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.builtInAgentType","typeLabel":"enum\u003cstring>"},"createdByUserId":{"oneOf":[{"type":"string","description":"User ID that created this agent, or null for system-created or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.0.createdByUserId.oneOf.0","typeLabel":"string"},{"type":"null","description":"User ID that created this agent, or null for system-created or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.0.createdByUserId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.createdByUserId","typeLabel":"string | null"},"updatedByUserId":{"oneOf":[{"type":"string","description":"User ID that last edited this agent, or null for system edits or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.0.updatedByUserId.oneOf.0","typeLabel":"string"},{"type":"null","description":"User ID that last edited this agent, or null for system edits or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.0.updatedByUserId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedByUserId","typeLabel":"string | null"},"createdBy":{"oneOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0.name","typeLabel":"string | null"},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0.imageUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0.imageUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0.imageUrl","typeLabel":"string | null"}},"required":["name","imageUrl"],"description":"Display identity of the user that created this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email"},{"type":"null","description":"The user's profile display name, falling back to their email"}]},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available"},{"type":"null","description":"The user's profile image URL, if one is available"}]}},"required":["name","imageUrl"],"description":"Display identity of the user that created this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.createdBy","typeLabel":"object | null"},"updatedBy":{"oneOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0.name","typeLabel":"string | null"},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0.imageUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0.imageUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0.imageUrl","typeLabel":"string | null"}},"required":["name","imageUrl"],"description":"Display identity of the user that last edited this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email"},{"type":"null","description":"The user's profile display name, falling back to their email"}]},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available"},{"type":"null","description":"The user's profile image URL, if one is available"}]}},"required":["name","imageUrl"],"description":"Display identity of the user that last edited this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.updatedBy","typeLabel":"object | null"},"invocationCount":{"type":"integer","minimum":0,"description":"All-time number of top-level invocations of this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.invocationCount","typeLabel":"integer"},"invocationCount30d":{"type":"integer","minimum":0,"description":"Number of top-level invocations of this agent in the last 30 days","uniqueKey":"agents.items.[INDEX].oneOf.0.invocationCount30d","typeLabel":"integer"},"lastInvokedAt":{"oneOf":[{"type":"string","description":"Timestamp of the most recent top-level invocation, or null if the agent has never been invoked","uniqueKey":"agents.items.[INDEX].oneOf.0.lastInvokedAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp of the most recent top-level invocation, or null if the agent has never been invoked","uniqueKey":"agents.items.[INDEX].oneOf.0.lastInvokedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.lastInvokedAt","typeLabel":"string | null"},"cliNames":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.cliNames.items.[INDEX]","typeLabel":"string"},"description":"Optional array of CLI integration ids that this agent can use during execution","uniqueKey":"agents.items.[INDEX].oneOf.0.cliNames","typeLabel":"string[]"},"contextDocs":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["googleDocs","notion","confluence","mcp"],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.contextDocs.items.[INDEX].provider","typeLabel":"enum\u003cstring>"},"id":{"type":"string","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.contextDocs.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.contextDocs.items.[INDEX].name","typeLabel":"string"},"mimeType":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.contextDocs.items.[INDEX].mimeType","typeLabel":"string"}},"required":["provider","id","name"],"uniqueKey":"agents.items.[INDEX].oneOf.0.contextDocs.items.[INDEX]","typeLabel":"object"},"description":"Optional array of context documents (e.g., Google Docs, Notion pages) to provide to the agent","uniqueKey":"agents.items.[INDEX].oneOf.0.contextDocs","typeLabel":"object[]"},"tinesStoryImportId":{"oneOf":[{"type":"string","description":"Optional reference to the Tines story import template used to create this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.tinesStoryImportId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional reference to the Tines story import template used to create this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.tinesStoryImportId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.tinesStoryImportId","typeLabel":"string | null"},"triggerSummary":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the trigger","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX].id","typeLabel":"string"},"source":{"type":"string","enum":["jira","jira-automation","slack","linear","cron","webhook","email","bugcrowd","hackerone","zscaler","darktrace","seon"],"description":"The source platform or system that triggers the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Human-readable name for the trigger","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX].name","typeLabel":"string"},"enabled":{"type":"boolean","description":"Whether the trigger is currently enabled","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX].enabled","typeLabel":"boolean"},"eventMode":{"type":"string","enum":["direct","alert_source"],"description":"Whether this event runs the agent directly or creates an alert first","uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX].eventMode","typeLabel":"enum\u003cstring>"},"createsAlert":{"type":"boolean","description":"Legacy compatibility projection of eventMode","uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX].createsAlert","typeLabel":"boolean"}},"required":["id","source","name","enabled"],"uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary.items.[INDEX]","typeLabel":"object"},"description":"Optional array of triggers configured for this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.triggerSummary","typeLabel":"object[]"},"structuredOutputSchema":{"oneOf":[{"type":"object","description":"Optional JSON schema describing the structured output the agent should emit (may include x-cotool metadata for preset UX; metadata is stripped before sending to the LLM)","required":["type"],"properties":{"type":{"type":"string","enum":["string","number","boolean","null","object","array"],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.description","typeLabel":"string"},"properties":{"type":"object","additionalProperties":{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"},"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.properties","typeLabel":"object"},"items":{"oneOf":[{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.\\items","typeLabel":"any"},"minItems":{"type":"integer","minimum":0,"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.minItems","typeLabel":"integer"},"maxItems":{"type":"integer","minimum":0,"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.maxItems","typeLabel":"integer"},"required":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.required","typeLabel":"string[]"},"enum":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.enum","typeLabel":"string[]"},"additionalProperties":{"type":"boolean","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.\\additionalProperties","typeLabel":"boolean"},"x-cotool":{"type":"object","properties":{"presetId":{"type":"string","enum":["classification","markdown","templatedReport","toolCallEvidence"],"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.presetId","typeLabel":"enum\u003cstring>"},"viewerId":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.viewerId","typeLabel":"string"}},"additionalProperties":{"oneOf":[{"type":"string","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.4.items.[INDEX]","typeLabel":"any"},"description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.4","typeLabel":"any[]"},{"type":"object","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.5","typeLabel":"object"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties","typeLabel":"string | number | boolean | null | any[] | object"},"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0.x-cotool","typeLabel":"object"}},"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional JSON schema describing the structured output the agent should emit (may include x-cotool metadata for preset UX; metadata is stripped before sending to the LLM)","uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.structuredOutputSchema","typeLabel":"object | null"},"persistentWorkspaceEnabled":{"type":"boolean","description":"Whether this agent may use persistent workspace","uniqueKey":"agents.items.[INDEX].oneOf.0.persistentWorkspaceEnabled","typeLabel":"boolean"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"description":"A tag label for categorizing agents (normalized to lowercase)","uniqueKey":"agents.items.[INDEX].oneOf.0.tags.items.[INDEX]","typeLabel":"string"},"description":"Array of tags for categorizing the agent","uniqueKey":"agents.items.[INDEX].oneOf.0.tags","typeLabel":"string[]"},"skills":{"type":"array","items":{"type":"object","properties":{"skillId":{"type":"string","format":"uuid","description":"Unique identifier of an attached skill","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skillId","typeLabel":"string\u003cuuid>"},"skill":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","minLength":1,"maxLength":64,"description":"Machine-safe skill name used in sandbox paths and imports","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skill.name","typeLabel":"string"},"description":{"type":"string","description":"Skill description","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skill.description","typeLabel":"string"},"requiredTools":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skill.requiredTools.items.[INDEX]","typeLabel":"string"},"description":"Required tool types for this skill","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skill.requiredTools","typeLabel":"string[]"}},"required":["name","description","requiredTools"],"description":"Skill metadata snapshot","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skill","typeLabel":"object"},"skillVersionId":{"oneOf":[{"type":"string","format":"uuid","description":"Pinned version ID, or null/undefined to track latest","uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skillVersionId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Pinned version ID, or null/undefined to track latest","uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skillVersionId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].skillVersionId","typeLabel":"string\u003cuuid> | null"},"invocationCount30d":{"type":"number","description":"Distinct chats for this agent in the last 30 days where the skill was read from the sandbox","uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX].invocationCount30d","typeLabel":"number"}},"required":["skillId","skill"],"uniqueKey":"agents.items.[INDEX].oneOf.0.skills.items.[INDEX]","typeLabel":"object"},"description":"Array of reusable skills attached to this agent","uniqueKey":"agents.items.[INDEX].oneOf.0.skills","typeLabel":"object[]"},"acceptanceCriteria":{"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"description":"A user-configured acceptance criterion that must be satisfied for an agent run","uniqueKey":"agents.items.[INDEX].oneOf.0.acceptanceCriteria.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"Optional list of acceptance criteria evaluated for every run","uniqueKey":"agents.items.[INDEX].oneOf.0.acceptanceCriteria","typeLabel":"string[]"},"slackReplyScope":{"oneOf":[{"type":"string","enum":["anyone","cotool_users",null],"description":"Default Slack reply scope for chats not started by a Slack trigger (null/absent → cotool_users)","uniqueKey":"agents.items.[INDEX].oneOf.0.slackReplyScope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["anyone","cotool_users",null],"description":"Default Slack reply scope for chats not started by a Slack trigger (null/absent → cotool_users)","uniqueKey":"agents.items.[INDEX].oneOf.0.slackReplyScope.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.slackReplyScope","typeLabel":"enum\u003cstring> | null"},"syncKey":{"oneOf":[{"type":"string","description":"Stable logical key for the agent (slug, immutable, unique per org)","uniqueKey":"agents.items.[INDEX].oneOf.0.syncKey.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable logical key for the agent (slug, immutable, unique per org)","uniqueKey":"agents.items.[INDEX].oneOf.0.syncKey.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.syncKey","typeLabel":"string | null"},"syncSource":{"oneOf":[{"type":"string","description":"Sync backend managing this agent (e.g. \"github\"); null/absent when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.0.syncSource.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sync backend managing this agent (e.g. \"github\"); null/absent when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.0.syncSource.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.syncSource","typeLabel":"string | null"},"syncFilePath":{"oneOf":[{"type":"string","description":"Path of the source YAML file for a GitOps-managed agent","uniqueKey":"agents.items.[INDEX].oneOf.0.syncFilePath.oneOf.0","typeLabel":"string"},{"type":"null","description":"Path of the source YAML file for a GitOps-managed agent","uniqueKey":"agents.items.[INDEX].oneOf.0.syncFilePath.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.syncFilePath","typeLabel":"string | null"},"syncConfigId":{"oneOf":[{"type":"string","description":"Which agent_sync_config (repo source) materialized this managed agent; null when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.0.syncConfigId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which agent_sync_config (repo source) materialized this managed agent; null when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.0.syncConfigId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.syncConfigId","typeLabel":"string | null"},"syncSourceUrl":{"oneOf":[{"type":"string","description":"Link to the source YAML file on GitHub for a GitOps-managed agent. Only returned when retrieving a single agent; null when the agent is UI-managed or its repository is not configured","uniqueKey":"agents.items.[INDEX].oneOf.0.syncSourceUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to the source YAML file on GitHub for a GitOps-managed agent. Only returned when retrieving a single agent; null when the agent is UI-managed or its repository is not configured","uniqueKey":"agents.items.[INDEX].oneOf.0.syncSourceUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.syncSourceUrl","typeLabel":"string | null"},"detectionCategory":{"oneOf":[{"type":"string","enum":["baseline_anomaly","first_occurrence","sequence_pattern","privilege_escalation","custom",null],"description":"Category of detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.detectionCategory.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["baseline_anomaly","first_occurrence","sequence_pattern","privilege_escalation","custom",null],"description":"Category of detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.detectionCategory.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.detectionCategory","typeLabel":"enum\u003cstring> | null"},"detectionQuery":{"oneOf":[{"type":"string","description":"The SIEM query for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.detectionQuery.oneOf.0","typeLabel":"string"},{"type":"null","description":"The SIEM query for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.detectionQuery.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.detectionQuery","typeLabel":"string | null"},"siemType":{"oneOf":[{"type":"string","description":"The SIEM platform type (e.g., splunk, elastic) for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.siemType.oneOf.0","typeLabel":"string"},{"type":"null","description":"The SIEM platform type (e.g., splunk, elastic) for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.siemType.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.siemType","typeLabel":"string | null"},"isSuggestion":{"type":"boolean","description":"Whether this detection is a suggestion (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.isSuggestion","typeLabel":"boolean"},"lastDetectionRunAt":{"oneOf":[{"type":"string","description":"Timestamp of when this detection was last run (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.lastDetectionRunAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp of when this detection was last run (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.0.lastDetectionRunAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.0.lastDetectionRunAt","typeLabel":"string | null"},"legacyDetection":{"type":"boolean","description":"Client-side marker for a migrated legacy customer detection remapped to a unified agent","uniqueKey":"agents.items.[INDEX].oneOf.0.legacyDetection","typeLabel":"boolean"}},"uniqueKey":"agents.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Agent configuration - can be either a built in (system-managed) or custom (user-created) agent","required":["id","organizationId","name","description","systemPrompt","createdAt","updatedAt","deletedAt","toolNames","toolSelectionMode","toolActionConfigs","modelAlias","planningMode","agentType","origin","isBuiltIn"],"properties":{"id":{"type":"string","description":"Unique identifier for the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.id","typeLabel":"string"},"organizationId":{"type":"string","description":"Unique identifier of the organization that owns this agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.organizationId","typeLabel":"string"},"name":{"type":"string","description":"Human-readable name of the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.name","typeLabel":"string"},"description":{"type":"string","description":"Description of what the agent does and its purpose","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.description","typeLabel":"string"},"systemPrompt":{"type":"string","description":"The agent's live system prompt (version history lives in agent_versions)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.systemPrompt","typeLabel":"string"},"createdAt":{"type":"string","description":"Timestamp when the agent was created","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdAt","typeLabel":"string"},"updatedAt":{"type":"string","description":"Timestamp when the agent was last updated","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedAt","typeLabel":"string"},"deletedAt":{"oneOf":[{"type":"string","description":"Timestamp when the agent was soft-deleted, or null if not deleted","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.deletedAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp when the agent was soft-deleted, or null if not deleted","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.deletedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.deletedAt","typeLabel":"string | null"},"toolNames":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.toolNames.items.[INDEX]","typeLabel":"string"},"description":"Array of tool names that this agent can use during execution","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolNames","typeLabel":"string[]"},"toolSelectionMode":{"type":"string","enum":["manual","all_read_only"],"description":"How this agent resolves tools at runtime","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolSelectionMode","typeLabel":"enum\u003cstring>"},"toolActionConfigs":{"type":"array","items":{"oneOf":[{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedRecipients"],"properties":{"type":{"type":"string","const":"cotool-email_sendEmail","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.0.type","typeLabel":"string"},"allowedRecipients":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.0.allowedRecipients.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":500,"description":"Email addresses and domains this agent may send email to. A domain allows every address at that domain, not its subdomains. With no entries the agent cannot send email.","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.0.allowedRecipients","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_sendMessage","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1.hideAgentButton","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_replyToThread","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2.hideAgentButton","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_readChannelMessages","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.3.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.3.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_readThreadMessages","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.4.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.4.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type","allowedChannels"],"properties":{"type":{"type":"string","const":"slack_downloadMessageFiles","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.5.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.5.allowedChannels","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Configuration for a specific tool action","required":["type"],"properties":{"type":{"type":"string","const":"slack_waitForUserResponse","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.type","typeLabel":"string"},"allowedChannels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Slack channel ID (for example C123ABC456)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","minLength":1,"description":"Slack channel name without the leading #","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX].name","typeLabel":"string"}},"required":["id","name"],"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels.items.[INDEX]","typeLabel":"object"},"minItems":1,"description":"Allowlist of Slack channels this agent may access when using this tool action","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.allowedChannels","typeLabel":"object[]"},"hideAgentButton":{"type":"boolean","description":"When true, omits the \"Open in Cotool\" run link and the agent name from the footer of Slack messages produced by this tool action. Defaults to false (link is shown).","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.hideAgentButton","typeLabel":"boolean"},"timeout":{"type":"object","properties":{"amount":{"type":"integer","exclusiveMinimum":0,"description":"Number of units to wait before an unanswered prompt times out.","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.timeout.amount","typeLabel":"integer"},"unit":{"type":"string","enum":["minutes","hours","days"],"description":"Unit for the timeout amount.","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.timeout.unit","typeLabel":"enum\u003cstring>"}},"required":["amount","unit"],"additionalProperties":false,"description":"Optional fixed timeout for unanswered prompts. When omitted, the agent decides how long to wait via the tool input (and waits indefinitely if it specifies nothing).","uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6.timeout","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs.items.[INDEX]","typeLabel":"object"},"description":"Per-tool-action configuration for this agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.toolActionConfigs","typeLabel":"object[]"},"modelAlias":{"description":"Model alias specifying which LLM model to use for this agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.modelAlias","typeLabel":"any"},"planningMode":{"type":"string","enum":["auto","never","always"],"description":"Planning behavior mode for the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.planningMode","typeLabel":"enum\u003cstring>"},"agentType":{"type":"string","enum":["response","detection"],"description":"Type of agent: response (standard) or detection (security detection)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.agentType","typeLabel":"enum\u003cstring>"},"origin":{"type":"string","enum":["user","orchestrator"],"description":"Who created this agent: user or orchestrator","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.origin","typeLabel":"enum\u003cstring>"},"isBuiltIn":{"type":"boolean","const":false,"description":"Whether this agent is built in to the system (false for custom (user-created) agents)","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.isBuiltIn","typeLabel":"boolean"},"createdByUserId":{"oneOf":[{"type":"string","description":"User ID that created this agent, or null for system-created or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.1.createdByUserId.oneOf.0","typeLabel":"string"},{"type":"null","description":"User ID that created this agent, or null for system-created or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.1.createdByUserId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.createdByUserId","typeLabel":"string | null"},"updatedByUserId":{"oneOf":[{"type":"string","description":"User ID that last edited this agent, or null for system edits or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.1.updatedByUserId.oneOf.0","typeLabel":"string"},{"type":"null","description":"User ID that last edited this agent, or null for system edits or unknown authorship","uniqueKey":"agents.items.[INDEX].oneOf.1.updatedByUserId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedByUserId","typeLabel":"string | null"},"createdBy":{"oneOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0.name","typeLabel":"string | null"},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0.imageUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0.imageUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0.imageUrl","typeLabel":"string | null"}},"required":["name","imageUrl"],"description":"Display identity of the user that created this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email"},{"type":"null","description":"The user's profile display name, falling back to their email"}]},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available"},{"type":"null","description":"The user's profile image URL, if one is available"}]}},"required":["name","imageUrl"],"description":"Display identity of the user that created this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.createdBy","typeLabel":"object | null"},"updatedBy":{"oneOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile display name, falling back to their email","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0.name","typeLabel":"string | null"},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0.imageUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"The user's profile image URL, if one is available","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0.imageUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0.imageUrl","typeLabel":"string | null"}},"required":["name","imageUrl"],"description":"Display identity of the user that last edited this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"oneOf":[{"type":"string","description":"The user's profile display name, falling back to their email"},{"type":"null","description":"The user's profile display name, falling back to their email"}]},"imageUrl":{"oneOf":[{"type":"string","description":"The user's profile image URL, if one is available"},{"type":"null","description":"The user's profile image URL, if one is available"}]}},"required":["name","imageUrl"],"description":"Display identity of the user that last edited this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.updatedBy","typeLabel":"object | null"},"invocationCount":{"type":"integer","minimum":0,"description":"All-time number of top-level invocations of this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.invocationCount","typeLabel":"integer"},"invocationCount30d":{"type":"integer","minimum":0,"description":"Number of top-level invocations of this agent in the last 30 days","uniqueKey":"agents.items.[INDEX].oneOf.1.invocationCount30d","typeLabel":"integer"},"lastInvokedAt":{"oneOf":[{"type":"string","description":"Timestamp of the most recent top-level invocation, or null if the agent has never been invoked","uniqueKey":"agents.items.[INDEX].oneOf.1.lastInvokedAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp of the most recent top-level invocation, or null if the agent has never been invoked","uniqueKey":"agents.items.[INDEX].oneOf.1.lastInvokedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.lastInvokedAt","typeLabel":"string | null"},"cliNames":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.cliNames.items.[INDEX]","typeLabel":"string"},"description":"Optional array of CLI integration ids that this agent can use during execution","uniqueKey":"agents.items.[INDEX].oneOf.1.cliNames","typeLabel":"string[]"},"contextDocs":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["googleDocs","notion","confluence","mcp"],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.contextDocs.items.[INDEX].provider","typeLabel":"enum\u003cstring>"},"id":{"type":"string","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.contextDocs.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.contextDocs.items.[INDEX].name","typeLabel":"string"},"mimeType":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.contextDocs.items.[INDEX].mimeType","typeLabel":"string"}},"required":["provider","id","name"],"uniqueKey":"agents.items.[INDEX].oneOf.1.contextDocs.items.[INDEX]","typeLabel":"object"},"description":"Optional array of context documents (e.g., Google Docs, Notion pages) to provide to the agent","uniqueKey":"agents.items.[INDEX].oneOf.1.contextDocs","typeLabel":"object[]"},"tinesStoryImportId":{"oneOf":[{"type":"string","description":"Optional reference to the Tines story import template used to create this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.tinesStoryImportId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional reference to the Tines story import template used to create this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.tinesStoryImportId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.tinesStoryImportId","typeLabel":"string | null"},"triggerSummary":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the trigger","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX].id","typeLabel":"string"},"source":{"type":"string","enum":["jira","jira-automation","slack","linear","cron","webhook","email","bugcrowd","hackerone","zscaler","darktrace","seon"],"description":"The source platform or system that triggers the agent","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Human-readable name for the trigger","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX].name","typeLabel":"string"},"enabled":{"type":"boolean","description":"Whether the trigger is currently enabled","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX].enabled","typeLabel":"boolean"},"eventMode":{"type":"string","enum":["direct","alert_source"],"description":"Whether this event runs the agent directly or creates an alert first","uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX].eventMode","typeLabel":"enum\u003cstring>"},"createsAlert":{"type":"boolean","description":"Legacy compatibility projection of eventMode","uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX].createsAlert","typeLabel":"boolean"}},"required":["id","source","name","enabled"],"uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary.items.[INDEX]","typeLabel":"object"},"description":"Optional array of triggers configured for this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.triggerSummary","typeLabel":"object[]"},"structuredOutputSchema":{"oneOf":[{"type":"object","description":"Optional JSON schema describing the structured output the agent should emit (may include x-cotool metadata for preset UX; metadata is stripped before sending to the LLM)","required":["type"],"properties":{"type":{"type":"string","enum":["string","number","boolean","null","object","array"],"isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.description","typeLabel":"string"},"properties":{"type":"object","additionalProperties":{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"},"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.properties","typeLabel":"object"},"items":{"oneOf":[{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.\\items","typeLabel":"any"},"minItems":{"type":"integer","minimum":0,"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.minItems","typeLabel":"integer"},"maxItems":{"type":"integer","minimum":0,"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.maxItems","typeLabel":"integer"},"required":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.required","typeLabel":"string[]"},"enum":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.enum","typeLabel":"string[]"},"additionalProperties":{"type":"boolean","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.\\additionalProperties","typeLabel":"boolean"},"x-cotool":{"type":"object","properties":{"presetId":{"type":"string","enum":["classification","markdown","templatedReport","toolCallEvidence"],"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.presetId","typeLabel":"enum\u003cstring>"},"viewerId":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.viewerId","typeLabel":"string"}},"additionalProperties":{"oneOf":[{"type":"string","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"number","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.4.items.[INDEX]","typeLabel":"any"},"description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.4","typeLabel":"any[]"},{"type":"object","description":"A JSON value (string, number, boolean, null, array, or object)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties.oneOf.5","typeLabel":"object"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool.additionalProperties","typeLabel":"string | number | boolean | null | any[] | object"},"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0.x-cotool","typeLabel":"object"}},"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional JSON schema describing the structured output the agent should emit (may include x-cotool metadata for preset UX; metadata is stripped before sending to the LLM)","uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.structuredOutputSchema","typeLabel":"object | null"},"persistentWorkspaceEnabled":{"type":"boolean","description":"Whether this agent may use persistent workspace","uniqueKey":"agents.items.[INDEX].oneOf.1.persistentWorkspaceEnabled","typeLabel":"boolean"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100,"description":"A tag label for categorizing agents (normalized to lowercase)","uniqueKey":"agents.items.[INDEX].oneOf.1.tags.items.[INDEX]","typeLabel":"string"},"description":"Array of tags for categorizing the agent","uniqueKey":"agents.items.[INDEX].oneOf.1.tags","typeLabel":"string[]"},"skills":{"type":"array","items":{"type":"object","properties":{"skillId":{"type":"string","format":"uuid","description":"Unique identifier of an attached skill","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skillId","typeLabel":"string\u003cuuid>"},"skill":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","minLength":1,"maxLength":64,"description":"Machine-safe skill name used in sandbox paths and imports","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skill.name","typeLabel":"string"},"description":{"type":"string","description":"Skill description","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skill.description","typeLabel":"string"},"requiredTools":{"type":"array","items":{"type":"string","uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skill.requiredTools.items.[INDEX]","typeLabel":"string"},"description":"Required tool types for this skill","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skill.requiredTools","typeLabel":"string[]"}},"required":["name","description","requiredTools"],"description":"Skill metadata snapshot","isRequired":true,"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skill","typeLabel":"object"},"skillVersionId":{"oneOf":[{"type":"string","format":"uuid","description":"Pinned version ID, or null/undefined to track latest","uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skillVersionId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Pinned version ID, or null/undefined to track latest","uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skillVersionId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].skillVersionId","typeLabel":"string\u003cuuid> | null"},"invocationCount30d":{"type":"number","description":"Distinct chats for this agent in the last 30 days where the skill was read from the sandbox","uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX].invocationCount30d","typeLabel":"number"}},"required":["skillId","skill"],"uniqueKey":"agents.items.[INDEX].oneOf.1.skills.items.[INDEX]","typeLabel":"object"},"description":"Array of reusable skills attached to this agent","uniqueKey":"agents.items.[INDEX].oneOf.1.skills","typeLabel":"object[]"},"acceptanceCriteria":{"type":"array","items":{"type":"string","minLength":1,"maxLength":500,"description":"A user-configured acceptance criterion that must be satisfied for an agent run","uniqueKey":"agents.items.[INDEX].oneOf.1.acceptanceCriteria.items.[INDEX]","typeLabel":"string"},"maxItems":20,"description":"Optional list of acceptance criteria evaluated for every run","uniqueKey":"agents.items.[INDEX].oneOf.1.acceptanceCriteria","typeLabel":"string[]"},"slackReplyScope":{"oneOf":[{"type":"string","enum":["anyone","cotool_users",null],"description":"Default Slack reply scope for chats not started by a Slack trigger (null/absent → cotool_users)","uniqueKey":"agents.items.[INDEX].oneOf.1.slackReplyScope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["anyone","cotool_users",null],"description":"Default Slack reply scope for chats not started by a Slack trigger (null/absent → cotool_users)","uniqueKey":"agents.items.[INDEX].oneOf.1.slackReplyScope.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.slackReplyScope","typeLabel":"enum\u003cstring> | null"},"syncKey":{"oneOf":[{"type":"string","description":"Stable logical key for the agent (slug, immutable, unique per org)","uniqueKey":"agents.items.[INDEX].oneOf.1.syncKey.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stable logical key for the agent (slug, immutable, unique per org)","uniqueKey":"agents.items.[INDEX].oneOf.1.syncKey.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.syncKey","typeLabel":"string | null"},"syncSource":{"oneOf":[{"type":"string","description":"Sync backend managing this agent (e.g. \"github\"); null/absent when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.1.syncSource.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sync backend managing this agent (e.g. \"github\"); null/absent when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.1.syncSource.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.syncSource","typeLabel":"string | null"},"syncFilePath":{"oneOf":[{"type":"string","description":"Path of the source YAML file for a GitOps-managed agent","uniqueKey":"agents.items.[INDEX].oneOf.1.syncFilePath.oneOf.0","typeLabel":"string"},{"type":"null","description":"Path of the source YAML file for a GitOps-managed agent","uniqueKey":"agents.items.[INDEX].oneOf.1.syncFilePath.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.syncFilePath","typeLabel":"string | null"},"syncConfigId":{"oneOf":[{"type":"string","description":"Which agent_sync_config (repo source) materialized this managed agent; null when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.1.syncConfigId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Which agent_sync_config (repo source) materialized this managed agent; null when UI-managed","uniqueKey":"agents.items.[INDEX].oneOf.1.syncConfigId.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.syncConfigId","typeLabel":"string | null"},"syncSourceUrl":{"oneOf":[{"type":"string","description":"Link to the source YAML file on GitHub for a GitOps-managed agent. Only returned when retrieving a single agent; null when the agent is UI-managed or its repository is not configured","uniqueKey":"agents.items.[INDEX].oneOf.1.syncSourceUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Link to the source YAML file on GitHub for a GitOps-managed agent. Only returned when retrieving a single agent; null when the agent is UI-managed or its repository is not configured","uniqueKey":"agents.items.[INDEX].oneOf.1.syncSourceUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.syncSourceUrl","typeLabel":"string | null"},"detectionCategory":{"oneOf":[{"type":"string","enum":["baseline_anomaly","first_occurrence","sequence_pattern","privilege_escalation","custom",null],"description":"Category of detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.detectionCategory.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["baseline_anomaly","first_occurrence","sequence_pattern","privilege_escalation","custom",null],"description":"Category of detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.detectionCategory.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.detectionCategory","typeLabel":"enum\u003cstring> | null"},"detectionQuery":{"oneOf":[{"type":"string","description":"The SIEM query for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.detectionQuery.oneOf.0","typeLabel":"string"},{"type":"null","description":"The SIEM query for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.detectionQuery.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.detectionQuery","typeLabel":"string | null"},"siemType":{"oneOf":[{"type":"string","description":"The SIEM platform type (e.g., splunk, elastic) for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.siemType.oneOf.0","typeLabel":"string"},{"type":"null","description":"The SIEM platform type (e.g., splunk, elastic) for the detection (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.siemType.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.siemType","typeLabel":"string | null"},"isSuggestion":{"type":"boolean","description":"Whether this detection is a suggestion (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.isSuggestion","typeLabel":"boolean"},"lastDetectionRunAt":{"oneOf":[{"type":"string","description":"Timestamp of when this detection was last run (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.lastDetectionRunAt.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp of when this detection was last run (only for detection agents)","uniqueKey":"agents.items.[INDEX].oneOf.1.lastDetectionRunAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"agents.items.[INDEX].oneOf.1.lastDetectionRunAt","typeLabel":"string | null"},"legacyDetection":{"type":"boolean","description":"Client-side marker for a migrated legacy customer detection remapped to a unified agent","uniqueKey":"agents.items.[INDEX].oneOf.1.legacyDetection","typeLabel":"boolean"}},"uniqueKey":"agents.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"agents.items.[INDEX]","typeLabel":"object"},"description":"The updated agents, in the same order as the request items. Items whose agent could not be found or read after update are omitted.","isRequired":true,"uniqueKey":"agents","typeLabel":"object[]"}},"required":["agents"],"description":"Updated agents from a batch update.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agents":[{"id":"\u003cstring>","organizationId":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","systemPrompt":"\u003cstring>","createdAt":"\u003cstring>","updatedAt":"\u003cstring>","deletedAt":"\u003cstring>","toolNames":["\u003cstring>"],"toolSelectionMode":"manual","toolActionConfigs":[{"type":"cotool-email_sendEmail","allowedRecipients":["\u003cstring>"]}],"modelAlias":"\u003cunknown>","planningMode":"auto","agentType":"response","origin":"user","isBuiltIn":true,"builtInAgentType":"threat-relevancy","createdByUserId":"\u003cstring>","updatedByUserId":"\u003cstring>","createdBy":{"name":"\u003cstring>","imageUrl":"\u003cstring>"},"updatedBy":{"name":"\u003cstring>","imageUrl":"\u003cstring>"},"invocationCount":1,"invocationCount30d":1,"lastInvokedAt":"\u003cstring>","cliNames":["\u003cstring>"],"contextDocs":[{"provider":"googleDocs","id":"\u003cstring>","name":"\u003cstring>","mimeType":"\u003cstring>"}],"tinesStoryImportId":"\u003cstring>","triggerSummary":[{"id":"\u003cstring>","source":"jira","name":"\u003cstring>","enabled":true,"eventMode":"direct","createsAlert":true}],"structuredOutputSchema":{"type":"string","title":"\u003cstring>","description":"\u003cstring>","properties":{},"items":"\u003cunknown>","minItems":1,"maxItems":1,"required":["\u003cstring>"],"enum":["\u003cstring>"],"additionalProperties":true,"x-cotool":{"presetId":"classification","viewerId":"\u003cstring>"}},"persistentWorkspaceEnabled":true,"tags":["\u003cstring>"],"skills":[{"skillId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","skill":{"name":"\u003cstring>","description":"\u003cstring>","requiredTools":["\u003cstring>"]},"skillVersionId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","invocationCount30d":123}],"acceptanceCriteria":["\u003cstring>"],"slackReplyScope":"anyone","syncKey":"\u003cstring>","syncSource":"\u003cstring>","syncFilePath":"\u003cstring>","syncConfigId":"\u003cstring>","syncSourceUrl":"\u003cstring>","detectionCategory":"baseline_anomaly","detectionQuery":"\u003cstring>","siemType":"\u003cstring>","isSuggestion":true,"lastDetectionRunAt":"\u003cstring>","legacyDetection":true}]}}},"exampleType":"generated"}},"exampleType":"generated"},"13314627-5da1-4730-98f7-7ca6f68f6229":{"description":"Bad request — input validation failed or the request was malformed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"issues":{"type":"array","description":"Detailed validation issues, present when request or response schema validation fails","items":{"type":"object","additionalProperties":true,"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","issues":[{}]}}},"exampleType":"generated"}},"exampleType":"generated"},"8e17f8ce-8e2d-4253-9025-92febb278568":{"description":"Unauthorized — missing or invalid API key / session","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"eb43a92b-ed1c-4bb3-8113-4718f14d4395":{"description":"Forbidden — the authenticated user lacks the required permissions","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"missingPerms":{"type":"array","description":"Permissions the authenticated user is missing for this operation","items":{"type":"string","uniqueKey":"missingPerms.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missingPerms","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","missingPerms":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"3e415684-1ef8-4c9d-8210-f9b7e7fc272d":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message describing what went wrong","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e618135f-d82c-4c86-a175-8e63ddc0cbf3":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API Key authentication for programmatic access. Include your API key in the Authorization header as: `Bearer your_api_key_here`","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"f12402bf-094d-4e8f-a6cd-e74cf07b2abe":{"url":"https://app.cotool.ai","description":"Production server"}},"schemas":{"4c0d484c-ad3f-4ae2-b23e-8818a783ff14":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","boolean","null","object","array"],"isRequired":true},"title":{"type":"string"},"description":{"type":"string"},"properties":{"type":"object","additionalProperties":{"$circularRef":"4c0d484c-ad3f-4ae2-b23e-8818a783ff14"}},"items":{"oneOf":[{}]},"minItems":{"type":"integer","minimum":0},"maxItems":{"type":"integer","minimum":0},"required":{"type":"array","items":{"type":"string"}},"enum":{"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean"},"x-cotool":{"type":"object","properties":{"presetId":{"type":"string","enum":["classification","markdown","templatedReport","toolCallEvidence"]},"viewerId":{"type":"string"}},"additionalProperties":{"oneOf":[{"type":"string","description":"A JSON value (string, number, boolean, null, array, or object)"},{"type":"number","description":"A JSON value (string, number, boolean, null, array, or object)"},{"type":"boolean","description":"A JSON value (string, number, boolean, null, array, or object)"},{"type":"null","description":"A JSON value (string, number, boolean, null, array, or object)"},{"type":"array","items":{"oneOf":[{}]},"description":"A JSON value (string, number, boolean, null, array, or object)"},{"type":"object","description":"A JSON value (string, number, boolean, null, array, or object)"}]}}},"required":["type"],"description":"A JSON Schema definition with Cotool-specific extensions for structured output presets"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API Key authentication for programmatic access. Include your API key in the Authorization header as: `Bearer your_api_key_here`","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API Key authentication for programmatic access. Include your API key in the Authorization header as: `Bearer your_api_key_here`","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"https://app.cotool.ai/api/docs/openapi.json"},"subdomain":"cotool-bcb49c92","siteName":"Cotool Documentation","title":"Batch update agents - Cotool Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T23:52:32.749Z","originalFileLocation":"api-reference/agents/batch-update-agents.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cotool Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Batch update agents - Cotool Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cotool Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cotool.ai/api-reference/agents/batch-update-agents\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cotool-bcb49c92.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Batch+update+agents\u0026amp;description=Atomically+update+many+agents+in+a+single+SERIALIZABLE+transaction.+The+entire+batch+succeeds+or+rolls+back+together%3B+this+avoids+partial-failure+modes+seen+whe\u0026amp;theme=cf64d3cca19862b8e8178ed4\u0026amp;signature=43020372578185f702657a0de46d7af1b518008ed000cce0a7d9d8504e0f8cf4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Batch update agents - Cotool Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cotool-bcb49c92.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Batch+update+agents\u0026amp;description=Atomically+update+many+agents+in+a+single+SERIALIZABLE+transaction.+The+entire+batch+succeeds+or+rolls+back+together%3B+this+avoids+partial-failure+modes+seen+whe\u0026amp;theme=cf64d3cca19862b8e8178ed4\u0026amp;signature=43020372578185f702657a0de46d7af1b518008ed000cce0a7d9d8504e0f8cf4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cotool Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#A9D5F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cotool.ai/api-reference/agents/batch-update-agents\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agents/batch-update-agents.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cotool.ai/#organization\",\"name\":\"Cotool Documentation\",\"url\":\"https://docs.cotool.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/light.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=ed5fa6ba5fadea78cb6d1341380b9873\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cotool.ai#website\",\"name\":\"Cotool Documentation\",\"url\":\"https://docs.cotool.ai\",\"publisher\":{\"@id\":\"https://docs.cotool.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents#webpage\",\"url\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents\",\"name\":\"Batch update agents\",\"description\":\"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.\",\"dateModified\":\"2026-10-21T23:52:32.749Z\",\"isPartOf\":{\"@id\":\"https://docs.cotool.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.cotool.ai/api-reference/agent-triggers/list-agent-triggers\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agents\",\"item\":\"https://docs.cotool.ai/api-reference/agents/run-agent-asynchronously\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Batch update agents\",\"item\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents#apireference\",\"headline\":\"Batch update agents\",\"name\":\"Batch update agents\",\"description\":\"Atomically update many agents in a single SERIALIZABLE transaction. The entire batch succeeds or rolls back together; this avoids partial-failure modes seen when issuing many concurrent single-agent updates that conflict on the same rows.\",\"url\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cotool.ai/api-reference/agents/batch-update-agents#webpage\"},\"dateModified\":\"2026-10-21T23:52:32.749Z\",\"publisher\":{\"@id\":\"https://docs.cotool.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cotool.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cotool Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cotool Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://cotool.ai/blog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Agent Triggers","pages":[{"title":"List agent triggers","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/trigger","href":"/api-reference/agent-triggers/list-agent-triggers"},{"title":"Retrieve an agent trigger secret","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/trigger/{triggerId}/secret","href":"/api-reference/agent-triggers/retrieve-an-agent-trigger-secret"},{"title":"Update trigger status","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agents/{agentId}/trigger/{triggerId}/status","href":"/api-reference/agent-triggers/update-trigger-status"},{"title":"Update trigger definition","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/{agentId}/trigger/{triggerId}","href":"/api-reference/agent-triggers/update-trigger-definition"},{"title":"Delete trigger","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/agents/{agentId}/trigger/{triggerId}","href":"/api-reference/agent-triggers/delete-trigger"},{"title":"Get webhook fields","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/trigger/{source}/fields","href":"/api-reference/agent-triggers/get-webhook-fields"},{"title":"Save trigger definition","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/trigger/save","href":"/api-reference/agent-triggers/save-trigger-definition"},{"title":"Webhook trigger","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/trigger/{source}/{triggerId}","href":"/api-reference/agent-triggers/webhook-trigger"},{"title":"Create Linear agent session for an agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/linear/agent-session","href":"/api-reference/agent-triggers/create-linear-agent-session-for-an-agent"},{"title":"Move trigger to another agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/trigger/{triggerId}/move","href":"/api-reference/agent-triggers/move-trigger-to-another-agent"},{"title":"Get webhook fields for a trigger source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/trigger-sources/{source}/fields","href":"/api-reference/agent-triggers/get-webhook-fields-for-a-trigger-source"},{"title":"Update trigger event mode","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agents/{agentId}/trigger/{triggerId}/event-mode","href":"/api-reference/agent-triggers/update-trigger-event-mode"}]},{"group":"Chat","pages":[{"title":"Get chat history","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/chat/history","href":"/api-reference/chat/get-chat-history"},{"title":"Get chat metadata","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/chat/meta","href":"/api-reference/chat/get-chat-metadata"},{"title":"List chats","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/chats","href":"/api-reference/chat/list-chats"},{"title":"Submit thumbs feedback for a chat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/chats/{chatId}/feedback","href":"/api-reference/chat/submit-thumbs-feedback-for-a-chat"},{"title":"Delete chat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/chats/{chatId}","href":"/api-reference/chat/delete-chat"}]},{"group":"Agents","pages":[{"title":"Run agent asynchronously","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/run-async","href":"/api-reference/agents/run-agent-asynchronously"},{"title":"Get async run status (deprecated)","deprecated":true,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}","href":"/api-reference/agents/get-async-run-status-deprecated"},{"title":"Get async run status","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}/status","href":"/api-reference/agents/get-async-run-status"},{"title":"Get async run result","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/run-async/{runId}/result","href":"/api-reference/agents/get-async-run-result"},{"title":"Run agent synchronously","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/run-sync","href":"/api-reference/agents/run-agent-synchronously"},{"title":"List all agents","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents","href":"/api-reference/agents/list-all-agents"},{"title":"Create a new agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents","href":"/api-reference/agents/create-a-new-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}","href":"/api-reference/agents/get-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/{agentId}","href":"/api-reference/agents/update-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/agents/{agentId}","href":"/api-reference/agents/delete-agent"},{"title":"Convert a disconnected managed agent into a manual agent","description":"Convert a sync-managed (GitOps) agent whose integration is disconnected into an editable manual agent: copies its config + prompt, transfers its trigger rows (preserving email/webhook/Slack bindings), and parks the managed original as a recoverable soft-delete.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/copy","href":"/api-reference/agents/convert-a-disconnected-managed-agent-into-a-manual-agent"},{"title":"Batch update agents","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agents/batch","href":"/api-reference/agents/batch-update-agents"},{"title":"List agent tags","description":"Retrieve all tags available in the organization with their usage counts.","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-tags","href":"/api-reference/agents/list-agent-tags"},{"title":"Create agent tag","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-tags","href":"/api-reference/agents/create-agent-tag"},{"title":"Rename agent tag","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/agent-tags/{tagId}","href":"/api-reference/agents/rename-agent-tag"},{"title":"Delete agent tag","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/agent-tags/{tagId}","href":"/api-reference/agents/delete-agent-tag"},{"title":"List agent templates","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-templates","href":"/api-reference/agents/list-agent-templates"},{"title":"List agent versions","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/versions","href":"/api-reference/agents/list-agent-versions"},{"title":"Revert an agent to a previous version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/{agentId}/versions/{versionId}/revert","href":"/api-reference/agents/revert-an-agent-to-a-previous-version"},{"title":"Change agent tag color","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/agent-tags/{tagId}/color","href":"/api-reference/agents/change-agent-tag-color"}]},{"group":"Agent Runs","pages":[{"title":"Get response-agent notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/response-agent-notification-defaults","href":"/api-reference/agent-runs/get-response-agent-notification-defaults"},{"title":"Update response-agent notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/response-agent-notification-defaults","href":"/api-reference/agent-runs/update-response-agent-notification-defaults"},{"title":"List agent runs/chats","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/chats","href":"/api-reference/agent-runs/list-agent-runschats"},{"title":"List agent runs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-runs","href":"/api-reference/agent-runs/list-agent-runs"},{"title":"List critical issues","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/critical-issues","href":"/api-reference/agent-runs/list-critical-issues"},{"title":"Dismiss critical issue","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/critical-issues/{issueId}/dismiss","href":"/api-reference/agent-runs/dismiss-critical-issue"},{"title":"Submit feedback for an agent run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-runs/{runId}/feedback","href":"/api-reference/agent-runs/submit-feedback-for-an-agent-run"},{"title":"Submit feedback for multiple agent runs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-runs/feedback-batch","href":"/api-reference/agent-runs/submit-feedback-for-multiple-agent-runs"},{"title":"Get detailed feedback metrics for an agent","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/feedback-metrics","href":"/api-reference/agent-runs/get-detailed-feedback-metrics-for-an-agent"},{"title":"Get LLM evaluation metrics","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agents/{agentId}/llm-eval-metrics","href":"/api-reference/agent-runs/get-llm-evaluation-metrics"},{"title":"Get LLM evaluation metrics for multiple agents","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agents/llm-eval-metrics/batch","href":"/api-reference/agent-runs/get-llm-evaluation-metrics-for-multiple-agents"},{"title":"List trigger sources","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-runs/trigger-sources","href":"/api-reference/agent-runs/list-trigger-sources"},{"title":"List output deliveries and notifications for an agent run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/agent-runs/{runId}/deliveries","href":"/api-reference/agent-runs/list-output-deliveries-and-notifications-for-an-agent-run"},{"title":"Resend a failed output delivery or notification","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-runs/{runId}/deliveries/{deliveryId}/resend","href":"/api-reference/agent-runs/resend-a-failed-output-delivery-or-notification"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Get alert filter options","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/filter-options","href":"/api-reference/alerts/get-alert-filter-options"},{"title":"Get alert routing overview","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alert-routing","href":"/api-reference/alerts/get-alert-routing-overview"},{"title":"Update default alert routing","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-routing/defaults","href":"/api-reference/alerts/update-default-alert-routing"},{"title":"Get detection alert routing","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detections/{id}/alert-routing","href":"/api-reference/alerts/get-detection-alert-routing"},{"title":"Get alert for run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/for-run/{runId}","href":"/api-reference/alerts/get-alert-for-run"},{"title":"Get alert","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/{alertId}","href":"/api-reference/alerts/get-alert"},{"title":"Update alert details","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json patch /api/alerts/{alertId}","href":"/api-reference/alerts/update-alert-details"},{"title":"Get alert timeline","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/{alertId}/timeline","href":"/api-reference/alerts/get-alert-timeline"},{"title":"Get alert source payload","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alerts/{alertId}/source-payloads/{sourcePayloadId}","href":"/api-reference/alerts/get-alert-source-payload"},{"title":"Add alert comment","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/comments","href":"/api-reference/alerts/add-alert-comment"},{"title":"Update alert status","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/status","href":"/api-reference/alerts/update-alert-status"},{"title":"Get escalated alert notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alert-escalation-notification-defaults","href":"/api-reference/alerts/get-escalated-alert-notification-defaults"},{"title":"Update escalated alert notification defaults","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-escalation-notification-defaults","href":"/api-reference/alerts/update-escalated-alert-notification-defaults"},{"title":"Update alert severity","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/severity","href":"/api-reference/alerts/update-alert-severity"},{"title":"Start alert triage run","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/alerts/{alertId}/triage-runs","href":"/api-reference/alerts/start-alert-triage-run"},{"title":"Update Hunt Alert routing","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-routing/hunt-alerts","href":"/api-reference/alerts/update-hunt-alert-routing"},{"title":"Get alert triage routes","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/alert-triage-routes","href":"/api-reference/alerts/get-alert-triage-routes"},{"title":"Replace alert triage routes","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/alert-triage-routes","href":"/api-reference/alerts/replace-alert-triage-routes"}]},{"group":"Agents as Code","pages":[{"title":"Validate Response-Agent-as-Code YAML","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/agent-sync/validate","href":"/api-reference/agents-as-code/validate-response-agent-as-code-yaml"}]},{"group":"Artifacts","pages":[{"title":"Get artifact","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/artifacts/{artifactId}","href":"/api-reference/artifacts/get-artifact"}]},{"group":"Audit Logs","pages":[{"title":"Count audit logs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/count","href":"/api-reference/audit-logs/count-audit-logs"},{"title":"Get audit-log filter options","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/filter-options","href":"/api-reference/audit-logs/get-audit-log-filter-options"},{"title":"Get audit-log event catalog","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/event-catalog","href":"/api-reference/audit-logs/get-audit-log-event-catalog"},{"title":"List audit logs","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs","href":"/api-reference/audit-logs/list-audit-logs"},{"title":"Get audit log entry","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/audit-logs/{id}","href":"/api-reference/audit-logs/get-audit-log-entry"}]},{"group":"Users","pages":[{"title":"Get current user","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/auth/me","href":"/api-reference/users/get-current-user"},{"title":"Get current user permissions and all available permissions","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/perms","href":"/api-reference/users/get-current-user-permissions-and-all-available-permissions"},{"title":"List user organizations","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/users/organizations","href":"/api-reference/users/list-user-organizations"},{"title":"List users","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/users","href":"/api-reference/users/list-users"},{"title":"Update user","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/users/{id}","href":"/api-reference/users/update-user"},{"title":"Delete user","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/users/{id}","href":"/api-reference/users/delete-user"}]},{"group":"Hunt","pages":[{"title":"Hunt overview","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/hunt/overview","href":"/api-reference/hunt/hunt-overview"},{"title":"List threat actors","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/hunt/actors","href":"/api-reference/hunt/list-threat-actors"},{"title":"List Threats","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threats","href":"/api-reference/hunt/list-threats"},{"title":"Get Threat detail","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threats/{id}","href":"/api-reference/hunt/get-threat-detail"},{"title":"Dismiss a Threat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/dismiss","href":"/api-reference/hunt/dismiss-a-threat"},{"title":"Restore a dismissed Threat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/restore","href":"/api-reference/hunt/restore-a-dismissed-threat"},{"title":"Reassess a Threat","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/reassess","href":"/api-reference/hunt/reassess-a-threat"},{"title":"Dispose a gap via a threat finding","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threats/{id}/deliverables/{deliverableId}/gap-status","href":"/api-reference/hunt/dispose-a-gap-via-a-threat-finding"},{"title":"Dispose an observability gap","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/hunt/gaps/{gapId}/status","href":"/api-reference/hunt/dispose-an-observability-gap"},{"title":"Get Hunt Alert creation settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/hunt/alert-creation-settings","href":"/api-reference/hunt/get-hunt-alert-creation-settings"},{"title":"Update Hunt Alert creation settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/hunt/alert-creation-settings","href":"/api-reference/hunt/update-hunt-alert-creation-settings"}]},{"group":"CLIs","pages":[{"title":"List CLI integrations","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/clis/list","href":"/api-reference/clis/list-cli-integrations"},{"title":"Disconnect CLI","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/clis/{cliType}/disconnect","href":"/api-reference/clis/disconnect-cli"}]},{"group":"Detections","pages":[{"title":"Generate a SIEM query using AI","deprecated":true,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/detection-queries/generate","href":"/api-reference/detections/generate-a-siem-query-using-ai"},{"title":"List detections","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detections","href":"/api-reference/detections/list-detections"},{"title":"List detection hits","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detections/hits","href":"/api-reference/detections/list-detection-hits"},{"title":"List the Cotool detection library","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detection-library","href":"/api-reference/detections/list-the-cotool-detection-library"},{"title":"Read one detection library entry","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/detection-library/{slug}","href":"/api-reference/detections/read-one-detection-library-entry"},{"title":"Add a detection library entry","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/detection-library/{slug}/add","href":"/api-reference/detections/add-a-detection-library-entry"}]},{"group":"Output Destinations","pages":[{"title":"List all output destinations","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/output-destinations","href":"/api-reference/output-destinations/list-all-output-destinations"},{"title":"Create output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/output-destinations","href":"/api-reference/output-destinations/create-output-destination"},{"title":"Update output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/output-destinations/{destinationId}","href":"/api-reference/output-destinations/update-output-destination"},{"title":"Delete output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/output-destinations/{destinationId}","href":"/api-reference/output-destinations/delete-output-destination"},{"title":"Send a test payload to an output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/output-destinations/{destinationId}/test","href":"/api-reference/output-destinations/send-a-test-payload-to-an-output-destination"},{"title":"Send a test payload to an unsaved output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/output-destinations/test","href":"/api-reference/output-destinations/send-a-test-payload-to-an-unsaved-output-destination"},{"title":"Enable or disable output destination","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/output-destinations/{destinationId}/enabled","href":"/api-reference/output-destinations/enable-or-disable-output-destination"}]},{"group":"Roles","pages":[{"title":"List roles for the current organization","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/roles","href":"/api-reference/roles/list-roles-for-the-current-organization"},{"title":"Create a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/roles","href":"/api-reference/roles/create-a-role"},{"title":"Get role by id","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/roles/{id}","href":"/api-reference/roles/get-role-by-id"},{"title":"Update a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/roles/{id}","href":"/api-reference/roles/update-a-role"},{"title":"Delete a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/roles/{id}","href":"/api-reference/roles/delete-a-role"},{"title":"Get permissions for a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/roles/{id}/perms","href":"/api-reference/roles/get-permissions-for-a-role"},{"title":"Apply permission diff to a role","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/roles/{id}/perms","href":"/api-reference/roles/apply-permission-diff-to-a-role"}]},{"group":"MITRE Coverage","pages":[{"title":"Get MITRE ATT\u0026CK matrix with detection coverage","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/mitre/matrix","href":"/api-reference/mitre-coverage/get-mitre-att\u0026ck-matrix-with-detection-coverage"},{"title":"Get MITRE ATT\u0026CK technique labels","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/mitre/technique-labels","href":"/api-reference/mitre-coverage/get-mitre-att\u0026ck-technique-labels"}]},{"group":"Organizations","pages":[{"title":"Get organization-level activity metrics","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/org-metrics","href":"/api-reference/organizations/get-organization-level-activity-metrics"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills","href":"/api-reference/skills/list-skills"},{"title":"Create skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/skills","href":"/api-reference/skills/create-skill"},{"title":"Get skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}","href":"/api-reference/skills/get-skill"},{"title":"Update skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/skills/{skillId}","href":"/api-reference/skills/update-skill"},{"title":"Delete skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/skills/{skillId}","href":"/api-reference/skills/delete-skill"},{"title":"List agents using skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/agents","href":"/api-reference/skills/list-agents-using-skill"},{"title":"List skill versions","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/versions","href":"/api-reference/skills/list-skill-versions"},{"title":"Get skill version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/versions/{versionId}","href":"/api-reference/skills/get-skill-version"},{"title":"Restore a skill version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/skills/{skillId}/versions/{versionId}/restore","href":"/api-reference/skills/restore-a-skill-version"},{"title":"Import skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/skills/import","href":"/api-reference/skills/import-skill"},{"title":"Export skill","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/skills/{skillId}/export","href":"/api-reference/skills/export-skill"}]},{"group":"Tools","pages":[{"title":"List tools","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/tools/list","href":"/api-reference/tools/list-tools"},{"title":"Disconnect tool","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/tools/{toolType}/disconnect","href":"/api-reference/tools/disconnect-tool"},{"title":"Get raw tool output","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/tools/get-tool-use-raw-output","href":"/api-reference/tools/get-raw-tool-output"}]},{"group":"Threat Model","pages":[{"title":"Get threat model","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model","href":"/api-reference/threat-model/get-threat-model"},{"title":"Update threat model","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/threat-model","href":"/api-reference/threat-model/update-threat-model"},{"title":"Get structured threat model board","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model/board","href":"/api-reference/threat-model/get-structured-threat-model-board"},{"title":"Regenerate threat model","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/threat-model/regenerate","href":"/api-reference/threat-model/regenerate-threat-model"},{"title":"List threat model version history","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model/versions","href":"/api-reference/threat-model/list-threat-model-version-history"},{"title":"Get threat model version","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/threat-model/versions/{versionId}","href":"/api-reference/threat-model/get-threat-model-version"}]},{"group":"Intel","pages":[{"title":"List flattened threat-intel indicators (IOCs)","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/iocs","href":"/api-reference/intel/list-flattened-threat-intel-indicators-iocs"},{"title":"List threat intelligence items","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/items","href":"/api-reference/intel/list-threat-intelligence-items"},{"title":"Get specific intel item","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/items/{id}","href":"/api-reference/intel/get-specific-intel-item"},{"title":"Get threat intel notification settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/notification-settings","href":"/api-reference/intel/get-threat-intel-notification-settings"},{"title":"Update threat intel notification settings","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/intel/notification-settings","href":"/api-reference/intel/update-threat-intel-notification-settings"},{"title":"List intel sources","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/sources","href":"/api-reference/intel/list-intel-sources"},{"title":"Create intel source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/intel/sources","href":"/api-reference/intel/create-intel-source"},{"title":"Update intel source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json put /api/intel/sources/{id}","href":"/api-reference/intel/update-intel-source"},{"title":"Delete intel source","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json delete /api/intel/sources/{id}","href":"/api-reference/intel/delete-intel-source"},{"title":"Trigger intel source sync","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json post /api/intel/sources/{id}/sync","href":"/api-reference/intel/trigger-intel-source-sync"},{"title":"Get intel feed statistics","deprecated":null,"version":null,"openapi":"https://app.cotool.ai/api/docs/openapi.json get /api/intel/stats","href":"/api-reference/intel/get-intel-feed-statistics"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Batch update agents - Cotool Documentation","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}