Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “<name> (copy)” at the next free agent id (`billing-copy`, `billing-copy-2`…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.
The AI model the agent runs on: claude-haiku-5-5, claude-sonnet-5-5, claude-opus-5-5 or claude-fable-5-1 (Anthropic), gpt-6-luna, gpt-6.1-sol or gpt-6-astra (OpenAI), gemini-3.8-flash or gemini-4-argon (Google). Null for Eager’s default, GPT-6 Astra (gpt-6-astra). It sets the price of the agent’s tokens (US$ per million: see /pricing). Starting a task with a model this server can’t run returns 503 with code: "model_unavailable".
The app shows the agent’s thoughts and steps on the person’s screen as it works, and its summary when it finishes. These are the agent’s own words, so they can repeat what your team answered. Off: no thoughts, steps or summary; they see the banner with the Stop button (and the agent’s questions and approval requests, if customer_answers and customer_approvals are on).
The person at the computer can answer the agent’s questions in the Eager app (your team still can too; the first answer is used). Off: only your team answers, and the question isn’t shown on the person’s screen.
The person at the computer can approve or deny the agent’s approval requests in the Eager app (your team still can too; the first decision is used). Off: only your team decides, and the request isn’t shown on the person’s screen.
Rules Eager enforces on each action the agent asks for, before it runs. They add to Eager’s own rules and can’t loosen them. In order, the first that applies decides: text that looks like a secret, or typing into a password field, is not typed (the person is asked to type it); a match in apps.block or sites.block is blocked; with a non-empty apps.allow or sites.allow, anything not on it is blocked; a step in a block category is blocked; a step in a confirm category waits for an approval; anything else runs. On a Mac (Eager 1.0.20 or later) a step’s category comes from what it would do: what’s under a click; what Space, Return or Enter presses (the focused button, or a dialog’s default button); Cmd/Ctrl+Enter, and Enter in a message box, count as sending; Delete or Backspace outside a text field counts as deleting; both ends of a drag (dropping on the Trash counts as deleting); and typed text a line at a time (text holding a secret is refused whole). A click or acting key Eager can’t see waits for an approval when the agent has any confirm or block categories. A Mac where Eager isn’t allowed Accessibility can’t check guardrails, so a task with rules to check fails at start. On Windows, and before 1.0.20, categories rest on the agent’s own approval requests. Always returned whole, with defaults filled in.
The agent’s tools beyond the computer: its own file system (on by default) your HTTP tools, and its cloud browser’s sign-ins, and Run code. Part of its config, so versioned with it. Always returned whole, with defaults filled in.
Where the agent’s tasks may run. browser: its own cloud browser in each conversation (enabled, off by default; start_url, an absolute http(s) address where it opens; keep_logins, the same setting as tools.browser.keep_logins). computers: up to 50 linked computers and pools for its desktop tasks, used in order, whichever is free first. Send part of it to change only those keys; computers, when sent, is the whole list; browser: null turns the browser off and resources: null resets both.
What needs the team, and whether the agent's procedure runs are checked. Every key is on by default. Returned whole; in a change, send only the keys that change (null turns them all back on).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Eager","description":"Train AI agents like new hires: hand an agent your files and coach it, and it writes its own procedures and works in any software, even without an API.","colors":{"primary":"#183B2B","light":"#C9EE6A","dark":"#183B2B"},"logo":{"light":"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/light.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=e586dcc65be9b0c262b28f3c88841ebd","dark":"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/dark.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=47ef805b722f3fb6888488a040c99a9b","href":"https://guidinghand.ai"},"favicon":"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/favicon.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=825f6431fe8735610a0d5b4d82b094ef","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"links":[{"href":"https://guidinghand.ai/console","label":"Console"}],"primary":{"type":"button","label":"Get an API key","href":"https://guidinghand.ai/console"}},"footer":{"socials":{"website":"https://guidinghand.ai"}},"fonts":{"heading":{"family":"Instrument Serif","weight":400},"body":{"family":"Geist"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"guiding-hand","hasAudioNarration":false,"actualSubdomain":"guiding-hand","customDomains":["docs.guidinghand.ai"],"gitSource":{"type":"github","owner":"chaowss","repo":"guidinghand","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6add309dc712644f43433dab","collectionId":"4389e879-6cd8-4a16-a557-fa3f3063eaee","liveDeploymentHistoryId":"6add309dc712644f43433dab","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6add309dc712644f43433dab","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API reference","count":326},{"language":"default","tag":"Documentation","count":26},{"language":"default","tag":"Agent tools","count":16},{"language":"default","tag":"Agents","count":15},{"language":"default","tag":"Phone numbers","count":12},{"language":"default","tag":"Test runs","count":11},{"language":"default","tag":"Computers","count":10},{"language":"default","tag":"Procedures","count":10},{"language":"default","tag":"Schedules","count":10},{"language":"default","tag":"Start states","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"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":true},"customCss":[],"page":{"pagePath":"api-reference/agents/duplicate-an-agent","slug":"/api-reference/agents/duplicate-an-agent","pageMetadata":{"title":"Duplicate an agent","description":"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “\u003cname> (copy)” at the next free agent id (`billing-copy`, `billing-copy-2`…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-an-agent","autogeneratedByOpenApi":true},"description":"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “\u003cname> (copy)” at the next free agent id (`billing-copy`, `billing-copy-2`…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.","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":"Duplicate an agent","description":"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “\u003cname> (copy)” at the next free agent id (`billing-copy`, `billing-copy-2`…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-an-agent","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Agents"],"summary":"Duplicate an agent","operationId":"duplicateAgent","description":"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “\u003cname> (copy)” at the next free agent id (`billing-copy`, `billing-copy-2`…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.","responses":{"200":"b08330b3-abfb-4916-bb16-2a6ec86e4109","401":"4216b65a-d3fd-41d8-b3dc-923e0fbb771d","403":"df9054a0-2999-45dc-882b-13176fbf4255","404":"cef2151b-816f-480e-b175-3816ca0bf480","409":"14a60ccf-2aca-40b5-b01c-5c80e7917d99"},"method":"post","type":"path","servers":["85e29cb7-6717-4fc8-a547-7f631658d89f","9a2e9bd4-a985-4b06-b2e6-6058cff49185"],"security":["19caf6ec-6aee-430b-b1b4-3f12500d5525"],"path":"/v1/agents/{agent_id}/duplicate","baseUrlOptions":["https://guidinghand.ai","https://dev.guidinghand.ai"],"title":"Duplicate an agent","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"7809f2a0-3189-409e-b503-906a9a96a5ac":{"name":"agent_id","in":"path","required":true,"description":"The agent’s id, e.g. `billing`.","schema":{"type":"string","isRequired":true,"description":"The agent’s id, e.g. `billing`.","uniqueKey":"","typeLabel":"string"}}},"responses":{"b08330b3-abfb-4916-bb16-2a6ec86e4109":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"const":"agent","uniqueKey":"object","typeLabel":"any"},"agent_id":{"type":"string","example":"billing","uniqueKey":"agent_id","typeLabel":"string"},"name":{"type":"string","example":"Billing help","uniqueKey":"name","typeLabel":"string"},"instructions":{"type":"string","description":"Added under Eager’s own rules, which always win.","uniqueKey":"instructions","typeLabel":"string"},"model":{"oneOf":[{"type":"string","enum":["claude-haiku-5-5","claude-sonnet-5-5","claude-opus-5-5","claude-fable-5-1","gpt-6-luna","gpt-6.1-sol","gpt-6-astra","gemini-3.8-flash","gemini-4-argon",null],"description":"The AI model the agent runs on: `claude-haiku-5-5`, `claude-sonnet-5-5`, `claude-opus-5-5` or `claude-fable-5-1` (Anthropic), `gpt-6-luna`, `gpt-6.1-sol` or `gpt-6-astra` (OpenAI), `gemini-3.8-flash` or `gemini-4-argon` (Google). Null for Eager’s default, GPT-6 Astra (`gpt-6-astra`). It sets the price of the agent’s tokens (US$ per million: see /pricing). Starting a task with a model this server can’t run returns 503 with `code: \"model_unavailable\"`.","uniqueKey":"model.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["claude-haiku-5-5","claude-sonnet-5-5","claude-opus-5-5","claude-fable-5-1","gpt-6-luna","gpt-6.1-sol","gpt-6-astra","gemini-3.8-flash","gemini-4-argon",null],"description":"The AI model the agent runs on: `claude-haiku-5-5`, `claude-sonnet-5-5`, `claude-opus-5-5` or `claude-fable-5-1` (Anthropic), `gpt-6-luna`, `gpt-6.1-sol` or `gpt-6-astra` (OpenAI), `gemini-3.8-flash` or `gemini-4-argon` (Google). Null for Eager’s default, GPT-6 Astra (`gpt-6-astra`). It sets the price of the agent’s tokens (US$ per million: see /pricing). Starting a task with a model this server can’t run returns 503 with `code: \"model_unavailable\"`.","uniqueKey":"model.oneOf.1","typeLabel":"null"}],"uniqueKey":"model","typeLabel":"enum\u003cstring> | null"},"effort":{"oneOf":[{"type":"string","enum":["low","medium","high",null],"description":"How much the model thinks per step. Null for Eager’s default (Low). It has no price of its own: more thinking uses more tokens.","uniqueKey":"effort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["low","medium","high",null],"description":"How much the model thinks per step. Null for Eager’s default (Low). It has no price of its own: more thinking uses more tokens.","uniqueKey":"effort.oneOf.1","typeLabel":"null"}],"uniqueKey":"effort","typeLabel":"enum\u003cstring> | null"},"greeting":{"type":"string","description":"The agent’s first message: it opens every new conversation (the first item, before the person’s message) and is shown on the invite page.","uniqueKey":"greeting","typeLabel":"string"},"display_name":{"type":"string","description":"What the Eager app calls the agent on the person’s screen while it works (“Acme Support is typing”). Empty means “Eager”.","example":"Acme Support","uniqueKey":"display_name","typeLabel":"string"},"narration":{"type":"boolean","description":"The app shows the agent’s thoughts and steps on the person’s screen as it works, and its summary when it finishes. These are the agent’s own words, so they can repeat what your team answered. Off: no thoughts, steps or summary; they see the banner with the Stop button (and the agent’s questions and approval requests, if `customer_answers` and `customer_approvals` are on).","uniqueKey":"narration","typeLabel":"boolean"},"customer_answers":{"type":"boolean","description":"The person at the computer can answer the agent’s questions in the Eager app (your team still can too; the first answer is used). Off: only your team answers, and the question isn’t shown on the person’s screen.","uniqueKey":"customer_answers","typeLabel":"boolean"},"customer_approvals":{"type":"boolean","description":"The person at the computer can approve or deny the agent’s approval requests in the Eager app (your team still can too; the first decision is used). Off: only your team decides, and the request isn’t shown on the person’s screen.","uniqueKey":"customer_approvals","typeLabel":"boolean"},"guardrails":{"type":"object","required":["mode","confirm","block","apps","sites","safety_checks","scope","screen_check","max_steps","max_minutes","approval_timeout_minutes"],"description":"Rules Eager enforces on each action the agent asks for, before it runs. They add to Eager’s own rules and can’t loosen them. In order, the first that applies decides: text that looks like a secret, or typing into a password field, is not typed (the person is asked to type it); a match in `apps.block` or `sites.block` is blocked; with a non-empty `apps.allow` or `sites.allow`, anything not on it is blocked; a step in a `block` category is blocked; a step in a `confirm` category waits for an approval; anything else runs. On a Mac (Eager 1.0.20 or later) a step’s category comes from what it would do: what’s under a click; what Space, Return or Enter presses (the focused button, or a dialog’s default button); Cmd/Ctrl+Enter, and Enter in a message box, count as sending; Delete or Backspace outside a text field counts as deleting; both ends of a drag (dropping on the Trash counts as deleting); and typed text a line at a time (text holding a secret is refused whole). A click or acting key Eager can’t see waits for an approval when the agent has any `confirm` or `block` categories. A Mac where Eager isn’t allowed Accessibility can’t check guardrails, so a task with rules to check fails at start. On Windows, and before 1.0.20, categories rest on the agent’s own approval requests. Always returned whole, with defaults filled in.","properties":{"mode":{"type":"string","enum":["supervised","auto","unattended"],"default":"supervised","description":"`supervised`: someone can approve (your team, and the person at the computer when `customer_approvals` is on). `auto`: nobody is asked; anything that would need an approval (a step, a safety check, a screen check, a tool call) is approved automatically and recorded as an `approved` event with `answered_by: \"auto\"`, so the task only waits on a person for questions. Blocked categories, app and site rules and secrets still apply, and `safety_checks: stop` still stops. `unattended`: nobody is there to approve, so anything that would need an approval is refused instead and the agent plans around it, and a safety check stops the task. Questions still go to your team (and the person at the computer, when `customer_answers` is on) as usual.","isRequired":true,"uniqueKey":"guardrails.mode","typeLabel":"enum\u003cstring>"},"confirm":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"guardrails.confirm.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueItems":true,"default":["purchase","send","delete","install","security","terms"],"description":"Always ask for an approval before these, described by Eager rather than by the model. In `auto` mode they are approved automatically, and in `unattended` mode refused.","isRequired":true,"uniqueKey":"guardrails.confirm","typeLabel":"enum\u003cstring>[]"},"block":{"type":"array","items":{"type":"string","enum":["purchase","send","delete","install","security","terms"],"description":"`purchase`: buying or paying. `send`: sending, posting or submitting. `delete`: deleting or removing. `install`: installing software. `security`: security and account settings. `terms`: accepting terms or agreements.","uniqueKey":"guardrails.block.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueItems":true,"default":[],"description":"Never do these. A category in both `confirm` and `block` is blocked; take it out of `block` later and, if it’s still in `confirm`, the agent asks first again. Both lists come back as you set them.","isRequired":true,"uniqueKey":"guardrails.block","typeLabel":"enum\u003cstring>[]"},"apps":{"type":"object","required":["allow","block"],"properties":{"allow":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":100,"uniqueKey":"guardrails.apps.allow.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Only these apps (when not empty).","isRequired":true,"uniqueKey":"guardrails.apps.allow","typeLabel":"string[]"},"block":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":100,"uniqueKey":"guardrails.apps.block.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Never these apps.","isRequired":true,"uniqueKey":"guardrails.apps.block","typeLabel":"string[]"}},"description":"App names or ids (`Google Chrome`, `com.google.Chrome`, `chrome.exe`), matched without regard to case. Names differ by system, so for Macs and Windows PCs list both. A non-empty `allow` means only those apps; on a Mac the Dock, menu bar, Control Center and Spotlight stay usable, and on Windows nothing is exempt (the taskbar, File Explorer and the Run box are `explorer.exe`). `block` always wins. With any app rule, a step Eager can’t place in an app is refused.","isRequired":true,"uniqueKey":"guardrails.apps","typeLabel":"object"},"sites":{"type":"object","required":["allow","block"],"properties":{"allow":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":100,"uniqueKey":"guardrails.sites.allow.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Only these sites in a browser (when not empty).","isRequired":true,"uniqueKey":"guardrails.sites.allow","typeLabel":"string[]"},"block":{"type":"array","maxItems":50,"items":{"type":"string","maxLength":100,"uniqueKey":"guardrails.sites.block.items.[INDEX]","typeLabel":"string"},"default":[],"description":"Never these sites.","isRequired":true,"uniqueKey":"guardrails.sites.block","typeLabel":"string[]"}},"description":"Hosts, stored in lowercase without a scheme, path or port (`https://Shop.example.com/cart` is kept as `shop.example.com`). `example.com` also covers its subdomains. Site rules cover anything showing a web page: browsers, and apps with web content such as Slack’s desktop app, which counts as the site it shows; an app’s local files (`file://`) aren’t a site. A non-empty `allow` means only those sites. `block` wins over `allow`. With any site rule, a step on a page whose address can’t be read is refused, and what’s typed into the address bar since it was last clicked is judged together, by where it goes. Site rules need a computer that reports page addresses (macOS with Eager 1.0.20 or later, for now): on one that can’t, tasks with this agent fail at start.","isRequired":true,"uniqueKey":"guardrails.sites","typeLabel":"object"},"safety_checks":{"type":"string","enum":["ask","stop"],"default":"ask","description":"When the model raises a safety check on a step: `ask` for an approval with `risk: high` (denying it stops the task), or `stop` the task. In `auto` mode an `ask` is approved automatically; in `unattended` mode a safety check always stops the task.","isRequired":true,"uniqueKey":"guardrails.safety_checks","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","maxLength":2000,"default":"","description":"What this agent is for, in plain language. When set, each task is checked against it before it starts: a task that is clearly something else, or one the check can’t give a clear yes or no on, fails with the reason in `error`. Empty: no check.","isRequired":true,"uniqueKey":"guardrails.scope","typeLabel":"string"},"screen_check":{"type":"boolean","default":false,"description":"Check each new app, window or site the agent sees for text that tries to give the agent instructions (prompt injection). What happens when it finds some, or can’t check, follows `safety_checks`.","isRequired":true,"uniqueKey":"guardrails.screen_check","typeLabel":"boolean"},"max_steps":{"type":"integer","minimum":1,"maximum":500,"default":150,"description":"Model turns per task. A task that reaches it without finishing fails.","isRequired":true,"uniqueKey":"guardrails.max_steps","typeLabel":"integer"},"max_minutes":{"oneOf":[{"type":"integer","minimum":1,"maximum":240,"default":null,"description":"Running minutes per task, not counting time waiting for answers or approvals. A task that reaches it fails. `null`: no limit.","isRequired":true,"uniqueKey":"guardrails.max_minutes.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":240,"default":null,"description":"Running minutes per task, not counting time waiting for answers or approvals. A task that reaches it fails. `null`: no limit.","isRequired":true,"uniqueKey":"guardrails.max_minutes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"guardrails.max_minutes","typeLabel":"integer | null"},"approval_timeout_minutes":{"oneOf":[{"type":"integer","minimum":1,"maximum":1440,"default":null,"description":"An approval nobody decides within this many minutes is denied, with `answered_by: \"timeout\"`. `null`: wait until someone decides.","isRequired":true,"uniqueKey":"guardrails.approval_timeout_minutes.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":1,"maximum":1440,"default":null,"description":"An approval nobody decides within this many minutes is denied, with `answered_by: \"timeout\"`. `null`: wait until someone decides.","isRequired":true,"uniqueKey":"guardrails.approval_timeout_minutes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"guardrails.approval_timeout_minutes","typeLabel":"integer | null"}},"uniqueKey":"guardrails","typeLabel":"object"},"tools":{"type":"object","required":["files","http"],"description":"The agent’s tools beyond the computer: its own file system (on by default) your HTTP tools, and its cloud browser’s sign-ins, and Run code. Part of its config, so versioned with it. Always returned whole, with defaults filled in.","properties":{"files":{"type":"object","required":["enabled","access"],"properties":{"enabled":{"type":"boolean","default":true,"description":"The agent has its own file system: text files Eager keeps for this agent, separate from the computer it works on. It can list, read and search them during tasks (read only, for now).","isRequired":true,"uniqueKey":"tools.files.enabled","typeLabel":"boolean"},"access":{"type":"string","enum":["read_only"],"default":"read_only","description":"For now agents only read their files: `read_only` (it lists, reads and searches them; your team adds and changes them). `read_write` isn’t available and is refused.","isRequired":true,"uniqueKey":"tools.files.access","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"tools.files","typeLabel":"object"},"http":{"type":"array","maxItems":20,"items":{"type":"object","required":["name","description","url"],"description":"An API the agent can call. When the model calls the tool, Eager makes the call as the tool says (unsigned) and gives the model the response body (64 KB, within `timeout_seconds`). A set call (`method`, `parameters`): `{name}` placeholders in `url`’s path take those arguments, and the others are the query of a `GET` or `DELETE`, else the JSON body. An open call (`methods`): `url` is a base, and the agent gives each call’s `method`, `path` (with any query) and JSON `body`; a call that would leave the base (another host, or a path outside it) is refused. Redirects are followed only to an address the tool could call itself. Tools made before 2026-10-21 were signed POSTs of an envelope; they are now set calls, a POST of their arguments to the same `url`.","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9_-]{0,63}$","example":"lookup_order","description":"What the model calls it: a letter, then letters, numbers, `_` or `-`, up to 64. Unique for the agent (in any case), and not one of Eager’s own (`ask_user`, `request_approval`, `computer`, or the file system’s).","isRequired":true,"uniqueKey":"tools.http.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","maxLength":1000,"example":"Look up an order by its number: status, items and delivery date.","description":"What it does and when to use it, for the model.","isRequired":true,"uniqueKey":"tools.http.items.[INDEX].description","typeLabel":"string"},"url":{"type":"string","format":"uri","example":"https://api.acme.com/v1/orders/{order}","description":"The API’s address: public https, without a user name or password, and no keys or tokens in its query. For a set call, the endpoint, with `{name}` placeholders in its path for arguments. For an open call, the base (its host and path prefix, without a query), like `https://api.example.com/v1/`: the agent calls only paths under it.","isRequired":true,"uniqueKey":"tools.http.items.[INDEX].url","typeLabel":"string\u003curi>"},"method":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"default":"POST","description":"A set call’s method. Arguments not in `url` go in the query of a `GET` or `DELETE`, else in the JSON body.","uniqueKey":"tools.http.items.[INDEX].method","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","default":{"type":"object","properties":{}},"description":"A set call’s arguments, as a JSON Schema object (`{ \"type\": \"object\", \"properties\": { … } }`), under 10 KB. Left out: no arguments.","uniqueKey":"tools.http.items.[INDEX].parameters","typeLabel":"object"},"methods":{"type":"array","items":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"uniqueKey":"tools.http.items.[INDEX].methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"default":["GET","POST"],"description":"Makes it an open call: the methods the agent may use. It then has no `method` or `parameters`: each call takes `method`, `path` and `body`.","uniqueKey":"tools.http.items.[INDEX].methods","typeLabel":"enum\u003cstring>[]"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"tools.http.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"maxProperties":20,"example":{"User-Agent":"Mozilla/5.0"},"description":"Fixed headers sent with every call. No keys, tokens or sign-ins (a header named like `Authorization`, `Cookie` or `X-Api-Key` is refused: it would be kept in every version of the agent). Tools can’t hold keys yet.","uniqueKey":"tools.http.items.[INDEX].headers","typeLabel":"object"},"timeout_seconds":{"type":"integer","minimum":5,"maximum":120,"description":"How long a call waits for an answer, in seconds. Left out: 45. A `GET` that times out is tried once more.","uniqueKey":"tools.http.items.[INDEX].timeout_seconds","typeLabel":"integer"},"approval":{"type":"string","enum":["never","always"],"default":"never","description":"`always`: each call waits for your team’s approval first, asked in the conversation (a task is `paused` until it’s decided). In `auto` mode such a call is approved automatically, and in `unattended` mode refused.","uniqueKey":"tools.http.items.[INDEX].approval","typeLabel":"enum\u003cstring>"}},"uniqueKey":"tools.http.items.[INDEX]","typeLabel":"object"},"default":[],"description":"Your own functions the agent can call, up to 20.","isRequired":true,"uniqueKey":"tools.http","typeLabel":"object[]"},"mcp":{"type":"array","maxItems":10,"items":{"type":"object","required":["name","url","tools","approval"],"description":"A remote MCP server the agent can call. Eager lists its tools (`tools/list`) when it's saved and keeps them with the agent's version, so a version always offers the same tools; at run time each call is a `tools/call` from Eager's servers, signed in with the server's saved headers or OAuth sign-in (its access token renewed before it expires). The tool's text result is what the model gets (images and audio are described, not shown).","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9-]{0,29}$","example":"crm","description":"The server's name: a letter, then letters, numbers or `-`, up to 30. The model sees each of its tools as `\u003cname>__\u003ctool>` (characters other than letters, numbers, `_` and `-` in a tool's name become `_`).","isRequired":true,"uniqueKey":"tools.mcp.items.[INDEX].name","typeLabel":"string"},"url":{"type":"string","format":"uri","example":"https://mcp.example.com/mcp","description":"Its Streamable HTTP address (MCP 2025-03-26 or later): public https only. Servers that only speak the older SSE transport aren't supported.","isRequired":true,"uniqueKey":"tools.mcp.items.[INDEX].url","typeLabel":"string\u003curi>"},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"lookup_order","uniqueKey":"tools.mcp.items.[INDEX].tools.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","uniqueKey":"tools.mcp.items.[INDEX].tools.items.[INDEX].description","typeLabel":"string"},"parameters":{"type":"object","description":"Its arguments' JSON Schema, as the server gave it.","uniqueKey":"tools.mcp.items.[INDEX].tools.items.[INDEX].parameters","typeLabel":"object"}},"uniqueKey":"tools.mcp.items.[INDEX].tools.items.[INDEX]","typeLabel":"object"},"description":"Its tools, as listed when it was last saved (or refreshed).","isRequired":true,"uniqueKey":"tools.mcp.items.[INDEX].tools","typeLabel":"object[]"},"approval":{"type":"string","enum":["never","always"],"default":"never","description":"`always`: your team allows each call first (unattended agents can't use its tools).","isRequired":true,"uniqueKey":"tools.mcp.items.[INDEX].approval","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":1000,"description":"When the agent should use it. Added to each of its tools' descriptions.","uniqueKey":"tools.mcp.items.[INDEX].description","typeLabel":"string"},"auth":{"type":"object","description":"The sign-in it was saved with: the header names and the id of the secret holding them, or (`type: \"oauth\"`) an OAuth sign-in connected in the console. The values and tokens are kept encrypted for your organization, never returned and never kept in the agent's versions.","properties":{"headers":{"type":"array","items":{"type":"string","uniqueKey":"tools.mcp.items.[INDEX].auth.headers.items.[INDEX]","typeLabel":"string"},"example":["Authorization"],"uniqueKey":"tools.mcp.items.[INDEX].auth.headers","typeLabel":"string[]"},"secret_id":{"type":"string","example":"tsec_8Zp2kQ7wLm4x","uniqueKey":"tools.mcp.items.[INDEX].auth.secret_id","typeLabel":"string"},"type":{"type":"string","enum":["oauth"],"description":"`oauth`: an OAuth sign-in (see `GET /v1/mcp_oauth/{secret_id}` for whether it's connected). Left out: headers.","uniqueKey":"tools.mcp.items.[INDEX].auth.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"tools.mcp.items.[INDEX].auth","typeLabel":"object"},"allowed_tools":{"type":"array","items":{"type":"string","uniqueKey":"tools.mcp.items.[INDEX].allowed_tools.items.[INDEX]","typeLabel":"string"},"description":"The names of its tools the agent may use. Left out (or `null`): all of them. Up to 100 tools across an agent's servers.","uniqueKey":"tools.mcp.items.[INDEX].allowed_tools","typeLabel":"string[]"},"timeout_seconds":{"type":"integer","minimum":5,"maximum":120,"description":"How long a call waits for an answer, in seconds. Left out: 30.","uniqueKey":"tools.mcp.items.[INDEX].timeout_seconds","typeLabel":"integer"}},"uniqueKey":"tools.mcp.items.[INDEX]","typeLabel":"object"},"default":[],"description":"Remote MCP servers the agent can call, up to 10.","uniqueKey":"tools.mcp","typeLabel":"object[]"},"browser":{"type":"object","properties":{"keep_logins":{"type":"boolean","description":"Its cloud browser keeps the sites your team signed in to (its cookies, encrypted) from one browser to the next. Off: every browser starts signed out, and turning it off forgets what was kept.","default":false,"isRequired":true,"uniqueKey":"tools.browser.keep_logins","typeLabel":"boolean"}},"required":["keep_logins"],"uniqueKey":"tools.browser","typeLabel":"object"},"code":{"type":"object","description":"Run code: in the chat, the agent has its model provider’s own sandbox, with no internet. On Claude models, Anthropic’s code execution (Bash and Python), kept between turns; on GPT models, OpenAI’s Code Interpreter (Python), reset after 20 minutes unused, with the conversation’s files put back. Either works on files people attach (they’re in the sandbox too), does exact calculations, and can hand back files it makes; one sandbox per conversation. On Gemini models, Gemini’s code execution (Python, 30 seconds a run, nothing kept between runs): exact calculations and charts, but no other files in or out, so files only a sandbox opens are refused.","properties":{"enabled":{"type":"boolean","default":false,"uniqueKey":"tools.code.enabled","typeLabel":"boolean"}},"uniqueKey":"tools.code","typeLabel":"object"},"visual":{"type":"object","description":"Visual answers: in the chat, a long answer (a status, options to compare, a table, steps) is also laid out as UI, which the console and the website widget show (`view` on the message). The text stays the answer. On unless turned off.","properties":{"enabled":{"type":"boolean","default":true,"uniqueKey":"tools.visual.enabled","typeLabel":"boolean"},"blocks":{"type":"array","items":{"type":"string","enum":["facts","table","options","list","callout","badges","bars"],"uniqueKey":"tools.visual.blocks.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The cards a view may use; all of them by default. `text` is always there, and `buttons` come with `choices`.","uniqueKey":"tools.visual.blocks","typeLabel":"enum\u003cstring>[]"},"choices":{"type":"boolean","default":true,"description":"Whether a view has anything to press: a `pick` on options and `buttons` for next steps, which send a reply for the person. Off: nothing to press.","uniqueKey":"tools.visual.choices","typeLabel":"boolean"},"instructions":{"oneOf":[{"type":"string","maxLength":2000,"description":"How answers should be laid out, in your words, like \"Lead with the warranty status. Put part numbers in a table.\" It steers the layout only: a view still has only what the answer says. null: none.","uniqueKey":"tools.visual.instructions.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2000,"description":"How answers should be laid out, in your words, like \"Lead with the warranty status. Put part numbers in a table.\" It steers the layout only: a view still has only what the answer says. null: none.","uniqueKey":"tools.visual.instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.visual.instructions","typeLabel":"string | null"}},"uniqueKey":"tools.visual","typeLabel":"object"}},"uniqueKey":"tools","typeLabel":"object"},"resources":{"type":"object","description":"Where the agent’s tasks may run. `browser`: its own cloud browser in each conversation (`enabled`, off by default; `start_url`, an absolute http(s) address where it opens; `keep_logins`, the same setting as `tools.browser.keep_logins`). `computers`: up to 50 linked computers and pools for its desktop tasks, used in order, whichever is free first. Send part of it to change only those keys; `computers`, when sent, is the whole list; `browser: null` turns the browser off and `resources: null` resets both.","properties":{"browser":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"uniqueKey":"resources.browser.enabled","typeLabel":"boolean"},"start_url":{"oneOf":[{"type":"string","format":"uri","maxLength":2000,"uniqueKey":"resources.browser.start_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","maxLength":2000,"uniqueKey":"resources.browser.start_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"resources.browser.start_url","typeLabel":"string\u003curi> | null"},"keep_logins":{"type":"boolean","default":false,"uniqueKey":"resources.browser.keep_logins","typeLabel":"boolean"}},"uniqueKey":"resources.browser","typeLabel":"object"},"computers":{"type":"array","maxItems":50,"items":{"type":"object","required":["type","id"],"properties":{"type":{"type":"string","enum":["computer","pool"],"isRequired":true,"uniqueKey":"resources.computers.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","maxLength":60,"description":"A linked computer’s id (its code, like `K7QM-24XP`) or a pool’s (`pool_…`).","isRequired":true,"uniqueKey":"resources.computers.items.[INDEX].id","typeLabel":"string"}},"uniqueKey":"resources.computers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"resources.computers","typeLabel":"object[]"}},"example":{"browser":{"enabled":true,"start_url":"https://portal.example.com/orders","keep_logins":false},"computers":[{"type":"pool","id":"pool_8fK2mQ0aLp4x"}]},"uniqueKey":"resources","typeLabel":"object"},"escalations":{"type":"object","description":"What needs the team, and whether the agent's procedure runs are checked. Every key is on by default. Returned whole; in a change, send only the keys that change (null turns them all back on).","properties":{"qa":{"type":"boolean","default":true,"description":"AI Review: check each run of one of the agent's procedures against its steps, on the cheapest model of the agent's provider. Charged by its tokens at that model's price. Off: runs aren't checked, and no `procedure_failed` or `procedure_change` is raised.","uniqueKey":"escalations.qa","typeLabel":"boolean"},"approval":{"type":"boolean","default":true,"description":"Escalate approvals only the team can decide (list, email, webhook). Off: they still wait in their conversation.","uniqueKey":"escalations.approval","typeLabel":"boolean"},"question":{"type":"boolean","default":true,"description":"Escalate questions only the team can answer. Off: they still wait in their conversation.","uniqueKey":"escalations.question","typeLabel":"boolean"},"procedure_failed":{"type":"boolean","default":true,"description":"Escalate runs the check found failed (needs `qa`).","uniqueKey":"escalations.procedure_failed","typeLabel":"boolean"},"procedure_change":{"type":"boolean","default":true,"description":"Escalate runs the check found worked another way, with the procedure rewritten to match (needs `qa`).","uniqueKey":"escalations.procedure_change","typeLabel":"boolean"},"handoff":{"type":"boolean","default":true,"description":"Let the agent hand a request to the team from a chat (its `escalate` tool), raising a `handoff` escalation (list, email, webhook). Off: it isn’t offered the tool.","uniqueKey":"escalations.handoff","typeLabel":"boolean"}},"uniqueKey":"escalations","typeLabel":"object"},"voice":{"oneOf":[{"type":"string","enum":["marin","gleam","meridian","vesper","willow","stone","quartz","ripple","delta","cinder","beacon","bossa","tempo","nuri","juni","flitz","brise","sillage","nira","harema","shida","noeul",null],"description":"The voice it speaks with on GPT-Live: in Coach by voice and on phone calls to its numbers. null means the default, marin. Voices are listed by language at https://developers.openai.com/api/docs/guides/live-conversations#voice-options.","example":"meridian","uniqueKey":"voice.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["marin","gleam","meridian","vesper","willow","stone","quartz","ripple","delta","cinder","beacon","bossa","tempo","nuri","juni","flitz","brise","sillage","nira","harema","shida","noeul",null],"description":"The voice it speaks with on GPT-Live: in Coach by voice and on phone calls to its numbers. null means the default, marin. Voices are listed by language at https://developers.openai.com/api/docs/guides/live-conversations#voice-options.","example":"meridian","uniqueKey":"voice.oneOf.1","typeLabel":"null"}],"uniqueKey":"voice","typeLabel":"enum\u003cstring> | null"},"folder_id":{"oneOf":[{"type":"string","description":"The folder it’s in (`client.agentFolders`); null at the top. Moving an agent makes no new version.","uniqueKey":"folder_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The folder it’s in (`client.agentFolders`); null at the top. Moving an agent makes no new version.","uniqueKey":"folder_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"folder_id","typeLabel":"string | null"},"invite_url_template":{"type":"string","example":"https://guidinghand.ai/acme/billing/{code}","uniqueKey":"invite_url_template","typeLabel":"string"},"version":{"type":"integer","minimum":0,"example":3,"description":"The published version: what sessions and tasks run. 1 when the agent is made; each publish adds one.","uniqueKey":"version","typeLabel":"integer"},"has_draft":{"type":"boolean","description":"It has unpublished changes (`GET /v1/agents/{agent_id}/draft`).","uniqueKey":"has_draft","typeLabel":"boolean"},"created_by":{"oneOf":[{"type":"object","title":"Person","description":"Who made it.","properties":{"type":{"const":"user","uniqueKey":"created_by.oneOf.0.type","typeLabel":"any"},"email":{"oneOf":[{"type":"string","example":"jane@acme.com","uniqueKey":"created_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","example":"jane@acme.com","uniqueKey":"created_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"created_by.oneOf.0","typeLabel":"Person · object"},{"type":"object","title":"API key","description":"Who made it.","properties":{"type":{"const":"api_key","uniqueKey":"created_by.oneOf.1.type","typeLabel":"any"},"key_id":{"type":"string","uniqueKey":"created_by.oneOf.1.key_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","example":"Zendesk","uniqueKey":"created_by.oneOf.1.name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Zendesk","uniqueKey":"created_by.oneOf.1.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by.oneOf.1.name","typeLabel":"string | null"},"prefix":{"oneOf":[{"type":"string","description":"The key’s first characters.","example":"gh_live_AbC1","uniqueKey":"created_by.oneOf.1.prefix.oneOf.0","typeLabel":"string"},{"type":"null","description":"The key’s first characters.","example":"gh_live_AbC1","uniqueKey":"created_by.oneOf.1.prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by.oneOf.1.prefix","typeLabel":"string | null"}},"uniqueKey":"created_by.oneOf.1","typeLabel":"API key · object"},{"type":"null","description":"Who made it.","uniqueKey":"created_by.oneOf.2","typeLabel":"null"}],"uniqueKey":"created_by","typeLabel":"Person · object | API key · object | null"},"updated_by":{"oneOf":[{"type":"object","title":"Person","description":"Who last changed it: saved its draft, published it or restored a version.","properties":{"type":{"const":"user","uniqueKey":"updated_by.oneOf.0.type","typeLabel":"any"},"email":{"oneOf":[{"type":"string","example":"jane@acme.com","uniqueKey":"updated_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","example":"jane@acme.com","uniqueKey":"updated_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"updated_by.oneOf.0","typeLabel":"Person · object"},{"type":"object","title":"API key","description":"Who last changed it: saved its draft, published it or restored a version.","properties":{"type":{"const":"api_key","uniqueKey":"updated_by.oneOf.1.type","typeLabel":"any"},"key_id":{"type":"string","uniqueKey":"updated_by.oneOf.1.key_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","example":"Zendesk","uniqueKey":"updated_by.oneOf.1.name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Zendesk","uniqueKey":"updated_by.oneOf.1.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by.oneOf.1.name","typeLabel":"string | null"},"prefix":{"oneOf":[{"type":"string","description":"The key’s first characters.","example":"gh_live_AbC1","uniqueKey":"updated_by.oneOf.1.prefix.oneOf.0","typeLabel":"string"},{"type":"null","description":"The key’s first characters.","example":"gh_live_AbC1","uniqueKey":"updated_by.oneOf.1.prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by.oneOf.1.prefix","typeLabel":"string | null"}},"uniqueKey":"updated_by.oneOf.1","typeLabel":"API key · object"},{"type":"null","description":"Who last changed it: saved its draft, published it or restored a version.","uniqueKey":"updated_by.oneOf.2","typeLabel":"null"}],"uniqueKey":"updated_by","typeLabel":"Person · object | API key · object | null"},"created_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"created_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_at","typeLabel":"string\u003cdate-time> | null"},"updated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"agent","agent_id":"billing","name":"Billing help","instructions":"\u003cstring>","model":"claude-haiku-5-5","effort":"low","greeting":"\u003cstring>","display_name":"Acme Support","narration":true,"customer_answers":true,"customer_approvals":true,"guardrails":{"mode":"supervised","confirm":["purchase","send","delete","install","security","terms"],"block":[],"apps":{"allow":[],"block":[]},"sites":{"allow":[],"block":[]},"safety_checks":"ask","scope":"","screen_check":false,"max_steps":150,"max_minutes":null,"approval_timeout_minutes":null},"tools":{"files":{"enabled":true,"access":"read_only"},"http":[],"mcp":[],"browser":{"keep_logins":false},"code":{"enabled":false},"visual":{"enabled":true,"blocks":["facts"],"choices":true,"instructions":"\u003cstring>"}},"resources":{"browser":{"enabled":true,"start_url":"https://portal.example.com/orders","keep_logins":false},"computers":[{"type":"pool","id":"pool_8fK2mQ0aLp4x"}]},"escalations":{"qa":true,"approval":true,"question":true,"procedure_failed":true,"procedure_change":true,"handoff":true},"voice":"meridian","folder_id":"\u003cstring>","invite_url_template":"https://guidinghand.ai/acme/billing/{code}","version":3,"has_draft":true,"created_by":{"type":"user","email":"jane@acme.com"},"updated_by":{"type":"user","email":"jane@acme.com"},"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"4216b65a-d3fd-41d8-b3dc-923e0fbb771d":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"df9054a0-2999-45dc-882b-13176fbf4255":{"description":"Your role can’t do this.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"cef2151b-816f-480e-b175-3816ca0bf480":{"description":"Not found in this org.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"14a60ccf-2aca-40b5-b01c-5c80e7917d99":{"description":"Conflicts with the current state (e.g. no computer connected, a task already running, nothing pending, no draft to publish, an agent’s file limits).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["invalid_request","authentication","payment_required","permission","not_found","conflict","rate_limit","server_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Why it was refused, when there’s more to say than the status. Starting a task or a chat reply: `insufficient_balance`, `auto_topup_limit_reached` or `card_needs_attention` (402: the balance is empty and auto top-up can’t add funds; add funds, raise the auto top-up limit, or update the card), `concurrency_limit` (429), `model_unavailable` (503: the agent’s `model` can’t run on this server; choose another). Deciding a conversation’s request: `already_decided` (409: someone decided or answered it first; see `decided_by`) or `not_pending` (409: its task has ended, so nothing would act on it). POST /v1/tasks/{task_id}/respond: `decide_in_conversation` (409: decide it in the task’s conversation; see `conversation_id`, `agent_id`, and `approval_id` or `question_id`). Deleting a start state that test cases use: `in_use` (409, with `test_case_ids`).","uniqueKey":"error.code","typeLabel":"string"},"test_case_ids":{"type":"array","items":{"type":"string","uniqueKey":"error.test_case_ids.items.[INDEX]","typeLabel":"string"},"description":"With `in_use`: the test cases that use the start state.","uniqueKey":"error.test_case_ids","typeLabel":"string[]"},"decided_by":{"type":"object","description":"With `already_decided`: who decided first.","required":["type"],"properties":{"type":{"type":"string","enum":["person","team","auto","refused","timeout","operator","moved_on"],"description":"`person`: the person in the chat (in the Eager app, or a visitor to your website’s widget), when the agent lets them (`customer_approvals`, `customer_answers`) and the request isn’t for your team only. `team`: a member in the console (`email`) or an API key (`key_id`). `auto`: the agent’s guardrails approve without asking (`mode: auto`). `refused`: its guardrails refuse (`mode: unattended`). `timeout`: nobody decided within its `approval_timeout_minutes`. `operator`: an eval case’s operator. `moved_on`: the person sent a new message instead, so it was declined.","isRequired":true,"uniqueKey":"error.decided_by.type","typeLabel":"enum\u003cstring>"},"email":{"type":"string","description":"`team`: the member who decided.","uniqueKey":"error.decided_by.email","typeLabel":"string"},"key_id":{"type":"string","description":"`team`: the API key that decided.","uniqueKey":"error.decided_by.key_id","typeLabel":"string"}},"uniqueKey":"error.decided_by","typeLabel":"object"},"conversation_id":{"type":"string","description":"With `decide_in_conversation`: the conversation to decide it in (POST /v1/conversations/{conversation_id}/decisions).","uniqueKey":"error.conversation_id","typeLabel":"string"},"agent_id":{"oneOf":[{"type":"string","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"With `decide_in_conversation`: the task’s agent (null for a task run without one).","uniqueKey":"error.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.agent_id","typeLabel":"string | null"},"approval_id":{"type":"string","description":"With `decide_in_conversation`: the approval to decide.","uniqueKey":"error.approval_id","typeLabel":"string"},"question_id":{"type":"string","description":"With `decide_in_conversation`: the question to answer.","uniqueKey":"error.question_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","code":"\u003cstring>","test_case_ids":["\u003cstring>"],"decided_by":{"type":"person","email":"\u003cstring>","key_id":"\u003cstring>"},"conversation_id":"\u003cstring>","agent_id":"\u003cstring>","approval_id":"\u003cstring>","question_id":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"19caf6ec-6aee-430b-b1b4-3f12500d5525":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An org API key (`gh_live_…`) from Settings → API keys in the console.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"85e29cb7-6717-4fc8-a547-7f631658d89f":{"url":"https://guidinghand.ai","description":"Production"},"9a2e9bd4-a985-4b06-b2e6-6058cff49185":{"url":"https://dev.guidinghand.ai","description":"Development (Stripe test mode)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An org API key (`gh_live_…`) from Settings → API keys in the console.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An org API key (`gh_live_…`) from Settings → API keys in the console.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"guiding-hand","siteName":"Eager","title":"Duplicate an agent - Eager","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T22:26:43.789Z","originalFileLocation":"api-reference/agents/duplicate-an-agent.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=\"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “ (copy)” at the next free agent id (billing-copy, billing-copy-2…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Eager\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_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/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Duplicate an agent - Eager\">\u003cmeta data-mint-head property=\"og:description\" content=\"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “ (copy)” at the next free agent id (billing-copy, billing-copy-2…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Eager\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://guiding-hand.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Duplicate+an+agent\u0026amp;description=Makes+a+new+agent+from+this+one%E2%80%99s+current+config+%28its+draft%2C+when+it+has+unpublished+changes%29%2C+with+copies+of+its+files+and+procedures.+The+copy+is+named+%E2%80%9C%3Cname\u0026amp;theme=7594b6f93cdebe57af53f99d\u0026amp;signature=b7e1852c65c12e53e3d067b5e5b501d35a392c603819e64326dfabb60697e87e\">\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=\"Duplicate an agent - Eager\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “ (copy)” at the next free agent id (billing-copy, billing-copy-2…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://guiding-hand.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Duplicate+an+agent\u0026amp;description=Makes+a+new+agent+from+this+one%E2%80%99s+current+config+%28its+draft%2C+when+it+has+unpublished+changes%29%2C+with+copies+of+its+files+and+procedures.+The+copy+is+named+%E2%80%9C%3Cname\u0026amp;theme=7594b6f93cdebe57af53f99d\u0026amp;signature=b7e1852c65c12e53e3d067b5e5b501d35a392c603819e64326dfabb60697e87e\">\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/guiding-hand/d699KjTsEa_7cIfs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Eager\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#183B2B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent\">\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/duplicate-an-agent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.guidinghand.ai/#organization\",\"name\":\"Eager\",\"url\":\"https://docs.guidinghand.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/guiding-hand/lgKNkM-YLkSemq1m/logo/light.svg?fit=max\u0026auto=format\u0026n=lgKNkM-YLkSemq1m\u0026q=85\u0026s=e586dcc65be9b0c262b28f3c88841ebd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.guidinghand.ai#website\",\"name\":\"Eager\",\"url\":\"https://docs.guidinghand.ai\",\"publisher\":{\"@id\":\"https://docs.guidinghand.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent#webpage\",\"url\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent\",\"name\":\"Duplicate an agent\",\"description\":\"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “ (copy)” at the next free agent id (billing-copy, billing-copy-2…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.\",\"dateModified\":\"2026-10-24T22:26:43.789Z\",\"isPartOf\":{\"@id\":\"https://docs.guidinghand.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API reference\",\"item\":\"https://docs.guidinghand.ai/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agents\",\"item\":\"https://docs.guidinghand.ai/api-reference/agents/list-agents\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Duplicate an agent\",\"item\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent#apireference\",\"headline\":\"Duplicate an agent\",\"name\":\"Duplicate an agent\",\"description\":\"Makes a new agent from this one’s current config (its draft, when it has unpublished changes), with copies of its files and procedures. The copy is named “ (copy)” at the next free agent id (billing-copy, billing-copy-2…) and published as its version 1. Its versions and its cloud browser’s saved logins stay with the original. Returns the new agent.\",\"url\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.guidinghand.ai/api-reference/agents/duplicate-an-agent#webpage\"},\"dateModified\":\"2026-10-24T22:26:43.789Z\",\"publisher\":{\"@id\":\"https://docs.guidinghand.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.guidinghand.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Eager\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Eager","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"API reference","pages":[{"title":"API reference","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents","href":"/api-reference/agents/list-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents","href":"/api-reference/agents/create-an-agent"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}","href":"/api-reference/agents/get-an-agent"},{"title":"Delete an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}","href":"/api-reference/agents/delete-an-agent"},{"title":"Update and publish an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}","href":"/api-reference/agents/update-and-publish-an-agent"},{"title":"Get the draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/draft","href":"/api-reference/agents/get-the-draft"},{"title":"Discard the draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/draft","href":"/api-reference/agents/discard-the-draft"},{"title":"Save a draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/draft","href":"/api-reference/agents/save-a-draft"},{"title":"Publish the draft","description":"Makes the draft the agent’s next version: new tasks run it from now on (one already running keeps its version). Returns the agent. 409 when there’s no draft to publish.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/publish","href":"/api-reference/agents/publish-the-draft"},{"title":"Duplicate an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-an-agent"},{"title":"Get the website widget","description":"The agent's website widget: its snippet and settings. Its widget_id is made the first time it's asked for.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/widget","href":"/api-reference/agents/get-the-website-widget"},{"title":"Change the website widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/widget","href":"/api-reference/agents/change-the-website-widget"},{"title":"List versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/versions","href":"/api-reference/agents/list-versions"},{"title":"Get a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/versions/{version}","href":"/api-reference/agents/get-a-version"},{"title":"Restore a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/versions/{version}/restore","href":"/api-reference/agents/restore-a-version"}]},{"group":"Agent files","pages":[{"title":"List an agent’s files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/files","href":"/api-reference/agent-files/list-an-agent’s-files"},{"title":"Get a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/files/{path}","href":"/api-reference/agent-files/get-a-file"},{"title":"Write a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/agents/{agent_id}/files/{path}","href":"/api-reference/agent-files/write-a-file"},{"title":"Delete a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/files/{path}","href":"/api-reference/agent-files/delete-a-file"},{"title":"List a file's earlier versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/file_revisions","href":"/api-reference/agent-files/list-a-files-earlier-versions"},{"title":"Get an earlier version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/file_revisions/{revision_id}","href":"/api-reference/agent-files/get-an-earlier-version"},{"title":"Restore an earlier version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/file_revisions/{revision_id}/restore","href":"/api-reference/agent-files/restore-an-earlier-version"}]},{"group":"Sessions","pages":[{"title":"List sessions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Create a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions","href":"/api-reference/sessions/create-a-session"},{"title":"Get a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sessions/{session_id}","href":"/api-reference/sessions/get-a-session"},{"title":"Delete a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sessions/{session_id}","href":"/api-reference/sessions/delete-a-session"},{"title":"Disconnect a session’s computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/disconnect","href":"/api-reference/sessions/disconnect-a-session’s-computer"},{"title":"Expire a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/expire","href":"/api-reference/sessions/expire-a-session"},{"title":"Open a cloud browser","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/open","href":"/api-reference/sessions/open-a-cloud-browser"},{"title":"Control a cloud browser","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/input","href":"/api-reference/sessions/control-a-cloud-browser"}]},{"group":"Tasks","pages":[{"title":"Start a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/tasks","href":"/api-reference/tasks/start-a-task"},{"title":"List tasks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Get a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}","href":"/api-reference/tasks/get-a-task"},{"title":"Follow a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}/events","href":"/api-reference/tasks/follow-a-task"},{"title":"Answer a question or approval (moved to the conversation)","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json post /v1/tasks/{task_id}/respond","href":"/api-reference/tasks/answer-a-question-or-approval-moved-to-the-conversation"},{"title":"Stop a task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tasks/{task_id}/stop","href":"/api-reference/tasks/stop-a-task"},{"title":"Get a task recording","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}/recording","href":"/api-reference/tasks/get-a-task-recording"},{"title":"Get a recorded screen","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tasks/{task_id}/recording/{seq}","href":"/api-reference/tasks/get-a-recorded-screen"}]},{"group":"Webhooks","pages":[{"title":"Get the webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook","href":"/api-reference/webhooks/get-the-webhook-endpoint"},{"title":"Set the webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/webhook","href":"/api-reference/webhooks/set-the-webhook-endpoint"}]},{"group":"Test cases","pages":[{"title":"List test cases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_cases","href":"/api-reference/test-cases/list-test-cases"},{"title":"Create a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_cases","href":"/api-reference/test-cases/create-a-test-case"},{"title":"Create or update test cases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_cases/batch","href":"/api-reference/test-cases/create-or-update-test-cases"},{"title":"Get a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_cases/{test_case_id}","href":"/api-reference/test-cases/get-a-test-case"},{"title":"Delete a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_cases/{test_case_id}","href":"/api-reference/test-cases/delete-a-test-case"},{"title":"Update a test case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/test_cases/{test_case_id}","href":"/api-reference/test-cases/update-a-test-case"}]},{"group":"Test sets","pages":[{"title":"List test sets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_sets","href":"/api-reference/test-sets/list-test-sets"},{"title":"Create a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_sets","href":"/api-reference/test-sets/create-a-test-set"},{"title":"Get a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_sets/{test_set_id}","href":"/api-reference/test-sets/get-a-test-set"},{"title":"Delete a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_sets/{test_set_id}","href":"/api-reference/test-sets/delete-a-test-set"},{"title":"Update a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/test_sets/{test_set_id}","href":"/api-reference/test-sets/update-a-test-set"},{"title":"Add cases to a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_sets/{test_set_id}/cases","href":"/api-reference/test-sets/add-cases-to-a-test-set"},{"title":"Remove a case from a test set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_sets/{test_set_id}/cases/{test_case_id}","href":"/api-reference/test-sets/remove-a-case-from-a-test-set"}]},{"group":"Test runs","pages":[{"title":"List test runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs","href":"/api-reference/test-runs/list-test-runs"},{"title":"Start a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_runs","href":"/api-reference/test-runs/start-a-test-run"},{"title":"Compare test runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/compare","href":"/api-reference/test-runs/compare-test-runs"},{"title":"Get a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}","href":"/api-reference/test-runs/get-a-test-run"},{"title":"Delete a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/test_runs/{test_run_id}","href":"/api-reference/test-runs/delete-a-test-run"},{"title":"Cancel a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_runs/{test_run_id}/cancel","href":"/api-reference/test-runs/cancel-a-test-run"},{"title":"Rerun a test run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/test_runs/{test_run_id}/rerun","href":"/api-reference/test-runs/rerun-a-test-run"},{"title":"Get a test run's agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}/agents/{agent_id}","href":"/api-reference/test-runs/get-a-test-runs-agent"},{"title":"Get test run results","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}/results","href":"/api-reference/test-runs/get-test-run-results"},{"title":"List test run attempts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/test_runs/{test_run_id}/attempts","href":"/api-reference/test-runs/list-test-run-attempts"},{"title":"Get an attempt","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/attempts/{attempt_id}","href":"/api-reference/test-runs/get-an-attempt"}]},{"group":"Start states","pages":[{"title":"List start states","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/start_states","href":"/api-reference/start-states/list-start-states"},{"title":"Create a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states","href":"/api-reference/start-states/create-a-start-state"},{"title":"Get a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/start_states/{start_state_id}","href":"/api-reference/start-states/get-a-start-state"},{"title":"Delete a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/start_states/{start_state_id}","href":"/api-reference/start-states/delete-a-start-state"},{"title":"Update a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/start_states/{start_state_id}","href":"/api-reference/start-states/update-a-start-state"},{"title":"Open a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/open","href":"/api-reference/start-states/open-a-start-state"},{"title":"Save a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/save","href":"/api-reference/start-states/save-a-start-state"},{"title":"Close a start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/close","href":"/api-reference/start-states/close-a-start-state"},{"title":"Screenshot an open start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/start_states/{start_state_id}/screen","href":"/api-reference/start-states/screenshot-an-open-start-state"},{"title":"Send input to an open start state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/start_states/{start_state_id}/input","href":"/api-reference/start-states/send-input-to-an-open-start-state"}]},{"group":"Runners","pages":[{"title":"List runners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/runners","href":"/api-reference/runners/list-runners"},{"title":"Create a runner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/runners","href":"/api-reference/runners/create-a-runner"},{"title":"Delete a runner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/runners/{runner_id}","href":"/api-reference/runners/delete-a-runner"}]},{"group":"Agent tools","pages":[{"title":"Get the tool signing secret","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json get /v1/tool_secret","href":"/api-reference/agent-tools/get-the-tool-signing-secret"},{"title":"Rotate the tool signing secret","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json post /v1/tool_secret/rotate","href":"/api-reference/agent-tools/rotate-the-tool-signing-secret"},{"title":"Start an OAuth sign-in for an MCP server","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mcp_oauth/start","href":"/api-reference/agent-tools/start-an-oauth-sign-in-for-an-mcp-server"},{"title":"Get an OAuth sign-in","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mcp_oauth/{secret_id}","href":"/api-reference/agent-tools/get-an-oauth-sign-in"},{"title":"List the connector library","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/connectors","href":"/api-reference/agent-tools/list-the-connector-library"},{"title":"List connections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/connections","href":"/api-reference/agent-tools/list-connections"},{"title":"Create a connection with headers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/connections","href":"/api-reference/agent-tools/create-a-connection-with-headers"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/connections/{connection_id}","href":"/api-reference/agent-tools/get-a-connection"},{"title":"Disconnect a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/connections/{connection_id}","href":"/api-reference/agent-tools/disconnect-a-connection"},{"title":"Rename a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/connections/{connection_id}","href":"/api-reference/agent-tools/rename-a-connection"},{"title":"Get the chat apps","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/chat_apps","href":"/api-reference/agent-tools/get-the-chat-apps"},{"title":"Make a link code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat_apps/link_code","href":"/api-reference/agent-tools/make-a-link-code"},{"title":"Download the Teams app","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/chat_apps/teams/package","href":"/api-reference/agent-tools/download-the-teams-app"},{"title":"Start adding Eager to Slack","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/chat_apps/slack/install","href":"/api-reference/agent-tools/start-adding-eager-to-slack"},{"title":"Unlink a chat app workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/chat_apps/workspaces/{workspace_id}","href":"/api-reference/agent-tools/unlink-a-chat-app-workspace"},{"title":"Update a chat app workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/chat_apps/workspaces/{workspace_id}","href":"/api-reference/agent-tools/update-a-chat-app-workspace"}]},{"group":"Audit log","pages":[{"title":"List audit events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/audit_events","href":"/api-reference/audit-log/list-audit-events"}]},{"group":"Responses","pages":[{"title":"Send a message to an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/responses","href":"/api-reference/responses/send-a-message-to-an-agent"},{"title":"Get a response","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/responses/{response_id}","href":"/api-reference/responses/get-a-response"},{"title":"Cancel a response","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/responses/{response_id}/cancel","href":"/api-reference/responses/cancel-a-response"}]},{"group":"Conversations","pages":[{"title":"List conversations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations","href":"/api-reference/conversations/list-conversations"},{"title":"Get a conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}","href":"/api-reference/conversations/get-a-conversation"},{"title":"List a conversation’s items","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/items","href":"/api-reference/conversations/list-a-conversation’s-items"},{"title":"Decide a request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/decisions","href":"/api-reference/conversations/decide-a-request"}]},{"group":"Procedures","pages":[{"title":"List an agent’s procedures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures","href":"/api-reference/procedures/list-an-agent’s-procedures"},{"title":"Add a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/procedures","href":"/api-reference/procedures/add-a-procedure"},{"title":"Get a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}","href":"/api-reference/procedures/get-a-procedure"},{"title":"Delete a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/procedures/{procedure_id}","href":"/api-reference/procedures/delete-a-procedure"},{"title":"Change a procedure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/procedures/{procedure_id}","href":"/api-reference/procedures/change-a-procedure"},{"title":"A procedure’s revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/revisions","href":"/api-reference/procedures/a-procedure’s-revisions"},{"title":"What a procedure’s runs cost","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/costs","href":"/api-reference/procedures/what-a-procedure’s-runs-cost"},{"title":"How long a procedure’s runs take","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/latency","href":"/api-reference/procedures/how-long-a-procedure’s-runs-take"},{"title":"Test a procedure lookup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/procedures/match","href":"/api-reference/procedures/test-a-procedure-lookup"},{"title":"Add or change procedures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/procedures/batch","href":"/api-reference/procedures/add-or-change-procedures"}]},{"group":"Uploads","pages":[{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/uploads","href":"/api-reference/uploads/upload-a-file"},{"title":"Get an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/uploads/{upload_id}","href":"/api-reference/uploads/get-an-upload"},{"title":"Delete an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/uploads/{upload_id}","href":"/api-reference/uploads/delete-an-upload"},{"title":"Download an upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/uploads/{upload_id}/content","href":"/api-reference/uploads/download-an-upload"}]},{"group":"Computers","pages":[{"title":"List computers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computers","href":"/api-reference/computers/list-computers"},{"title":"Link a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/computers","href":"/api-reference/computers/link-a-computer"},{"title":"Get a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computers/{computer_id}","href":"/api-reference/computers/get-a-computer"},{"title":"Unlink a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/computers/{computer_id}","href":"/api-reference/computers/unlink-a-computer"},{"title":"Rename a computer","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/computers/{computer_id}","href":"/api-reference/computers/rename-a-computer"},{"title":"List pools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computer_pools","href":"/api-reference/computers/list-pools"},{"title":"Create a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/computer_pools","href":"/api-reference/computers/create-a-pool"},{"title":"Get a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/computer_pools/{pool_id}","href":"/api-reference/computers/get-a-pool"},{"title":"Delete a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/computer_pools/{pool_id}","href":"/api-reference/computers/delete-a-pool"},{"title":"Change a pool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/computer_pools/{pool_id}","href":"/api-reference/computers/change-a-pool"}]},{"group":"Phone numbers","pages":[{"title":"List the agent's phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/phone_numbers","href":"/api-reference/phone-numbers/list-the-agents-phone-numbers"},{"title":"Give the agent a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/phone_numbers","href":"/api-reference/phone-numbers/give-the-agent-a-phone-number"},{"title":"Take a phone number off the agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/take-a-phone-number-off-the-agent"},{"title":"List numbers on connected accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_numbers/available","href":"/api-reference/phone-numbers/list-numbers-on-connected-accounts"},{"title":"List Twilio connections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_connections","href":"/api-reference/phone-numbers/list-twilio-connections"},{"title":"Connect a Twilio account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/phone_connections","href":"/api-reference/phone-numbers/connect-a-twilio-account"},{"title":"Remove a Twilio connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/phone_connections/{connection_id}","href":"/api-reference/phone-numbers/remove-a-twilio-connection"},{"title":"List phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_numbers","href":"/api-reference/phone-numbers/list-phone-numbers"},{"title":"Add a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/phone_numbers","href":"/api-reference/phone-numbers/add-a-phone-number"},{"title":"Get a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/get-a-phone-number"},{"title":"Take a phone number off Eager","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/take-a-phone-number-off-eager"},{"title":"Pick the agent that answers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/phone_numbers/{phone_number_id}","href":"/api-reference/phone-numbers/pick-the-agent-that-answers"}]},{"group":"Escalations","pages":[{"title":"List escalations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/escalations","href":"/api-reference/escalations/list-escalations"},{"title":"Get an escalation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/escalations/{escalation_id}","href":"/api-reference/escalations/get-an-escalation"},{"title":"Dismiss a failed run, or mark a hand-off handled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/escalations/{escalation_id}/dismiss","href":"/api-reference/escalations/dismiss-a-failed-run-or-mark-a-hand-off-handled"},{"title":"Accept a proposed change","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/escalations/{escalation_id}/accept","href":"/api-reference/escalations/accept-a-proposed-change"},{"title":"Reject a proposed change","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/escalations/{escalation_id}/reject","href":"/api-reference/escalations/reject-a-proposed-change"}]},{"group":"Agent folders","pages":[{"title":"List agent folders","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agent_folders","href":"/api-reference/agent-folders/list-agent-folders"},{"title":"Make an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agent_folders","href":"/api-reference/agent-folders/make-an-agent-folder"},{"title":"Get an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agent_folders/{folder_id}","href":"/api-reference/agent-folders/get-an-agent-folder"},{"title":"Delete an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agent_folders/{folder_id}","href":"/api-reference/agent-folders/delete-an-agent-folder"},{"title":"Rename or move an agent folder","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agent_folders/{folder_id}","href":"/api-reference/agent-folders/rename-or-move-an-agent-folder"}]},{"group":"Categories","pages":[{"title":"List categories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/categories","href":"/api-reference/categories/list-categories"},{"title":"Add a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/categories","href":"/api-reference/categories/add-a-category"},{"title":"Remove a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/categories/{name}","href":"/api-reference/categories/remove-a-category"},{"title":"Rename a category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/categories/{name}","href":"/api-reference/categories/rename-a-category"}]},{"group":"Schedules","pages":[{"title":"List the org’s schedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/schedules","href":"/api-reference/schedules/list-the-org’s-schedules"},{"title":"Preview a cron expression","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/schedules/preview","href":"/api-reference/schedules/preview-a-cron-expression"},{"title":"List an agent’s schedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules","href":"/api-reference/schedules/list-an-agent’s-schedules"},{"title":"Add a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/schedules","href":"/api-reference/schedules/add-a-schedule"},{"title":"Get a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules/{schedule_id}","href":"/api-reference/schedules/get-a-schedule"},{"title":"Delete a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/agents/{agent_id}/schedules/{schedule_id}","href":"/api-reference/schedules/delete-a-schedule"},{"title":"Change, pause or resume a schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/agents/{agent_id}/schedules/{schedule_id}","href":"/api-reference/schedules/change-pause-or-resume-a-schedule"},{"title":"Run a schedule now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/agents/{agent_id}/schedules/{schedule_id}/run","href":"/api-reference/schedules/run-a-schedule-now"},{"title":"List a schedule’s runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules/{schedule_id}/runs","href":"/api-reference/schedules/list-a-schedule’s-runs"},{"title":"Get a schedule run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/agents/{agent_id}/schedules/{schedule_id}/runs/{run_id}","href":"/api-reference/schedules/get-a-schedule-run"}]},{"group":"API Reference","pages":[{"title":"Webhook event","version":null,"deprecated":null,"openapi":"/api-reference/openapi.json webhook event","href":"/api-reference/webhook-event"}]}]}]}]},"title":"Duplicate an agent - Eager","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}