agent_settings_diff and conversation_settings_diff are sparse diffs
that are deep-merged into the org row and then validated as full settings
before persistence.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenHands Docs","colors":{"primary":"#99873c","light":"#ffe165","dark":"#ffe165"},"logo":{"light":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/light.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=49b636402b03f7279ca5e1afefeec1d2","dark":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/dark.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=e0c4017631cebc3a289798438e2c0d7a"},"favicon":"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/openhands/logo-square.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=6ef1bab575660ae6e2d44fcc57bc675f","appearance":{"default":"light"},"background":{"color":{"light":"#f7f3ee","dark":"#0B0D0E"}},"navbar":{"links":[],"primary":{"type":"github","href":"https://github.com/OpenHands/OpenHands"}},"footer":{"socials":{"slack":"https://openhands.dev/joinslack","github":"https://github.com/OpenHands"},"links":[{"header":"Links","items":[{"label":"Company","href":"https://openhands.dev/"},{"label":"Blog","href":"https://openhands.dev/blog"},{"label":"Cloud","href":"https://app.all-hands.dev"},{"label":"Enterprise","href":"https://openhands.dev/enterprise"}]}]},"seo":{"indexing":"navigable"},"integrations":{"gtm":{"tagId":"GTM-M9S7V5BQ"}},"contextual":{"options":["copy","view","download-spec","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"allhandsai","hasAudioNarration":false,"actualSubdomain":"allhandsai","customDomains":["docs.openhands.dev"],"gitSource":{"type":"github","owner":"openhands","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af637bd58c1bbe7022a7b66","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"Cloud","count":196},{"language":"default","tag":"Cloud API","count":187},{"language":"default","tag":"REST API Reference","count":185},{"language":"default","tag":"SDK","count":128},{"language":"default","tag":"Guides","count":105},{"language":"default","tag":"API Reference","count":95},{"language":"default","tag":"Enterprise","count":73},{"language":"default","tag":"Agent Canvas","count":64},{"language":"default","tag":"Home","count":58},{"language":"default","tag":"Remote Agent Server","count":55}]},"assistantConfig":{"deflection":{"enabled":true,"email":"contact@openhands.dev","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#banner *{color:rgb(67, 66, 64)}"}],"page":{"pagePath":"openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings","slug":"/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings","pageMetadata":{"title":"Update Legacy Org Defaults Settings","description":"Update org-default settings through the deprecated ``/llm`` wrapper.","deprecated":true,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/llm","href":"/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Update org-default settings through the deprecated \", _jsx(_components.code, {\n children: \"/llm\"\n }), \" wrapper.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update Legacy Org Defaults Settings","description":"Update org-default settings through the deprecated ``/llm`` wrapper.","deprecated":true,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/llm","href":"/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/allhandsai/dddab338317a519d/openhands/reo-init.js","/_mintlify/custom/allhandsai/ae719f15d762e1fe/openhands/posthog-init.js","/_mintlify/custom/allhandsai/b35f7f3c3c83fb4c/openhands/canvas-handoff.js","/_mintlify/custom/allhandsai/771d6371c43b73b7/openhands/linkedin-copy-tracking.js","/_mintlify/custom/allhandsai/46724455a27ebfc6/openhands/copy-click-tracking.js"],"openApiReferenceData":{"operation":{"tags":["Orgs"],"summary":"Update Legacy Org Defaults Settings","description":"Update org-default settings through the deprecated ``/llm`` wrapper.","operationId":"update_legacy_org_defaults_settings_api_organizations_llm_post","deprecated":true,"security":["18b0e94d-9e90-4fb7-9d22-c16d3bcc9c6f"],"parameters":["1898a7e9-1ca5-4f97-a922-54890cad7685","13fd7250-9e5d-4ea7-b811-7a2957445e20"],"requestBody":"17a85a1e-63bb-4f21-b4ba-f98d0c5eba73","responses":{"200":"46dbb744-fb7c-4569-9af2-585903d95655","422":"67139c4a-9828-4798-afee-5baadc865d8e"},"method":"post","type":"path","servers":[],"path":"/api/organizations/llm","baseUrlOptions":[],"title":"Update Legacy Org Defaults Settings","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1898a7e9-1ca5-4f97-a922-54890cad7685":{"name":"org_id","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Org Id","format":"uuid","uniqueKey":"oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Org Id","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string\u003cuuid> | null"}},"13fd7250-9e5d-4ea7-b811-7a2957445e20":{"name":"X-Org-Id","in":"header","required":false,"schema":{"oneOf":[{"type":"string","title":"X-Org-Id","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"X-Org-Id","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"oneOf":[{"type":"string","title":"Name","maxLength":255,"minLength":1,"uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"contact_name":{"oneOf":[{"type":"string","title":"Contact Name","uniqueKey":"contact_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Contact Name","uniqueKey":"contact_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"contact_name","typeLabel":"string | null"},"contact_email":{"oneOf":[{"type":"string","title":"Contact Email","format":"email","uniqueKey":"contact_email.oneOf.0","typeLabel":"string\u003cemail>"},{"type":"null","title":"Contact Email","uniqueKey":"contact_email.oneOf.1","typeLabel":"null"}],"uniqueKey":"contact_email","typeLabel":"string\u003cemail> | null"},"conversation_expiration":{"oneOf":[{"type":"integer","title":"Conversation Expiration","uniqueKey":"conversation_expiration.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Conversation Expiration","uniqueKey":"conversation_expiration.oneOf.1","typeLabel":"null"}],"uniqueKey":"conversation_expiration","typeLabel":"integer | null"},"remote_runtime_resource_factor":{"oneOf":[{"type":"integer","title":"Remote Runtime Resource Factor","minimum":0,"exclusiveMinimum":true,"uniqueKey":"remote_runtime_resource_factor.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Remote Runtime Resource Factor","uniqueKey":"remote_runtime_resource_factor.oneOf.1","typeLabel":"null"}],"uniqueKey":"remote_runtime_resource_factor","typeLabel":"integer | null"},"billing_margin":{"oneOf":[{"type":"number","title":"Billing Margin","maximum":1,"minimum":0,"uniqueKey":"billing_margin.oneOf.0","typeLabel":"number"},{"type":"null","title":"Billing Margin","uniqueKey":"billing_margin.oneOf.1","typeLabel":"null"}],"uniqueKey":"billing_margin","typeLabel":"number | null"},"enable_proactive_conversation_starters":{"oneOf":[{"type":"boolean","title":"Enable Proactive Conversation Starters","uniqueKey":"enable_proactive_conversation_starters.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Enable Proactive Conversation Starters","uniqueKey":"enable_proactive_conversation_starters.oneOf.1","typeLabel":"null"}],"uniqueKey":"enable_proactive_conversation_starters","typeLabel":"boolean | null"},"sandbox_base_container_image":{"oneOf":[{"type":"string","title":"Sandbox Base Container Image","uniqueKey":"sandbox_base_container_image.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sandbox Base Container Image","uniqueKey":"sandbox_base_container_image.oneOf.1","typeLabel":"null"}],"uniqueKey":"sandbox_base_container_image","typeLabel":"string | null"},"sandbox_runtime_container_image":{"oneOf":[{"type":"string","title":"Sandbox Runtime Container Image","uniqueKey":"sandbox_runtime_container_image.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sandbox Runtime Container Image","uniqueKey":"sandbox_runtime_container_image.oneOf.1","typeLabel":"null"}],"uniqueKey":"sandbox_runtime_container_image","typeLabel":"string | null"},"sandbox_api_key":{"oneOf":[{"type":"string","title":"Sandbox Api Key","uniqueKey":"sandbox_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sandbox Api Key","uniqueKey":"sandbox_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"sandbox_api_key","typeLabel":"string | null"},"max_budget_per_task":{"oneOf":[{"type":"number","title":"Max Budget Per Task","minimum":0,"exclusiveMinimum":true,"uniqueKey":"max_budget_per_task.oneOf.0","typeLabel":"number"},{"type":"null","title":"Max Budget Per Task","uniqueKey":"max_budget_per_task.oneOf.1","typeLabel":"null"}],"uniqueKey":"max_budget_per_task","typeLabel":"number | null"},"v1_enabled":{"oneOf":[{"type":"boolean","title":"V1 Enabled","uniqueKey":"v1_enabled.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"V1 Enabled","uniqueKey":"v1_enabled.oneOf.1","typeLabel":"null"}],"uniqueKey":"v1_enabled","typeLabel":"boolean | null"},"search_api_key":{"oneOf":[{"type":"string","title":"Search Api Key","uniqueKey":"search_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Search Api Key","uniqueKey":"search_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"search_api_key","typeLabel":"string | null"},"llm_api_key":{"oneOf":[{"type":"string","title":"Llm Api Key","uniqueKey":"llm_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Llm Api Key","uniqueKey":"llm_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"llm_api_key","typeLabel":"string | null"},"agent_settings_diff":{"oneOf":[{"type":"object","title":"Agent Settings Diff","additionalProperties":true,"uniqueKey":"agent_settings_diff.oneOf.0","typeLabel":"Agent Settings Diff · object"},{"type":"null","title":"Agent Settings Diff","uniqueKey":"agent_settings_diff.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings_diff","typeLabel":"Agent Settings Diff · object | null"},"conversation_settings_diff":{"oneOf":[{"type":"object","title":"Conversation Settings Diff","additionalProperties":true,"uniqueKey":"conversation_settings_diff.oneOf.0","typeLabel":"Conversation Settings Diff · object"},{"type":"null","title":"Conversation Settings Diff","uniqueKey":"conversation_settings_diff.oneOf.1","typeLabel":"null"}],"uniqueKey":"conversation_settings_diff","typeLabel":"Conversation Settings Diff · object | null"}},"type":"object","title":"OrgUpdate","description":"Request model for updating an organization.\n\n``agent_settings_diff`` and ``conversation_settings_diff`` are sparse diffs\nthat are deep-merged into the org row and then validated as full settings\nbefore persistence.","uniqueKey":"","typeLabel":"OrgUpdate · object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","contact_name":"\u003cstring>","contact_email":"jsmith@example.com","conversation_expiration":123,"remote_runtime_resource_factor":1,"billing_margin":0.5,"enable_proactive_conversation_starters":true,"sandbox_base_container_image":"\u003cstring>","sandbox_runtime_container_image":"\u003cstring>","sandbox_api_key":"\u003cstring>","max_budget_per_task":1,"v1_enabled":true,"search_api_key":"\u003cstring>","llm_api_key":"\u003cstring>","agent_settings_diff":{},"conversation_settings_diff":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"46dbb744-fb7c-4569-9af2-585903d95655":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"agent_settings":{"oneOf":[{"type":"object","title":"OpenHandsAgentSettings","description":"Settings for a standard LLM-backed :class:`Agent`.\n\nThis is the long-standing ``AgentSettings`` shape; fields here build\nthe default ``Agent`` (LLM + tools + MCP + condenser + critic).","properties":{"schema_version":{"type":"integer","minimum":1,"title":"Schema Version","default":5,"uniqueKey":"agent_settings.oneOf.0.schema_version","typeLabel":"integer"},"agent_kind":{"type":"string","const":"openhands","title":"Agent Kind","description":"Discriminator for the ``AgentSettings`` union. ``'openhands'`` selects the standard built-in OpenHands agent.","default":"openhands","uniqueKey":"agent_settings.oneOf.0.agent_kind","typeLabel":"string"},"agent":{"type":"string","title":"Agent","description":"Agent class to use.","default":"CodeActAgent","openhands_settings":{"depends_on":[],"label":"Agent","prominence":"major","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.agent","typeLabel":"string"},"llm":{"properties":{"is_subscription":{"type":"boolean","title":"Is Subscription","description":"Whether this LLM uses subscription-based authentication. Serialized so that subscription-specific request handling survives transport to a remote agent-server.","readOnly":true,"isRequired":true,"uniqueKey":"agent_settings.oneOf.0.llm.is_subscription","typeLabel":"boolean"},"model":{"type":"string","title":"Model","description":"Model name.","default":"gpt-5.5","openhands_settings":{"depends_on":[],"prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.llm.model","typeLabel":"string"},"api_key":{"oneOf":[{"type":"string","title":"Api Key","description":"API key.","uniqueKey":"agent_settings.oneOf.0.llm.api_key.oneOf.0","typeLabel":"string"},{"type":"string","title":"Api Key","description":"API key.","format":"password","uniqueKey":"agent_settings.oneOf.0.llm.api_key.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Api Key","description":"API key.","uniqueKey":"agent_settings.oneOf.0.llm.api_key.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.api_key","typeLabel":"string | string\u003cpassword> | null"},"auth_type":{"type":"string","enum":["api_key","subscription"],"title":"Auth Type","description":"Authentication mode for the LLM.","default":"api_key","openhands_settings":{"depends_on":[],"label":"Authentication","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.llm.auth_type","typeLabel":"enum\u003cstring>"},"subscription_vendor":{"oneOf":[{"type":"string","title":"Subscription Vendor","description":"Subscription provider for subscription-backed LLM access.","const":"openai","uniqueKey":"agent_settings.oneOf.0.llm.subscription_vendor.oneOf.0","typeLabel":"string"},{"type":"null","title":"Subscription Vendor","description":"Subscription provider for subscription-backed LLM access.","uniqueKey":"agent_settings.oneOf.0.llm.subscription_vendor.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.subscription_vendor","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Custom base URL.","uniqueKey":"agent_settings.oneOf.0.llm.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Custom base URL.","uniqueKey":"agent_settings.oneOf.0.llm.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.base_url","typeLabel":"string | null"},"api_version":{"oneOf":[{"type":"string","title":"Api Version","description":"API version (e.g., Azure).","uniqueKey":"agent_settings.oneOf.0.llm.api_version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Api Version","description":"API version (e.g., Azure).","uniqueKey":"agent_settings.oneOf.0.llm.api_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.api_version","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","uniqueKey":"agent_settings.oneOf.0.llm.aws_access_key_id.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"agent_settings.oneOf.0.llm.aws_access_key_id.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"agent_settings.oneOf.0.llm.aws_access_key_id.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_access_key_id","typeLabel":"string | string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","uniqueKey":"agent_settings.oneOf.0.llm.aws_secret_access_key.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"agent_settings.oneOf.0.llm.aws_secret_access_key.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"agent_settings.oneOf.0.llm.aws_secret_access_key.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_secret_access_key","typeLabel":"string | string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","uniqueKey":"agent_settings.oneOf.0.llm.aws_session_token.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"agent_settings.oneOf.0.llm.aws_session_token.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"agent_settings.oneOf.0.llm.aws_session_token.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_session_token","typeLabel":"string | string\u003cpassword> | null"},"aws_region_name":{"oneOf":[{"type":"string","title":"Aws Region Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_region_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Region Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_region_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_region_name","typeLabel":"string | null"},"aws_profile_name":{"oneOf":[{"type":"string","title":"Aws Profile Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_profile_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_profile_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_profile_name","typeLabel":"string | null"},"aws_role_name":{"oneOf":[{"type":"string","title":"Aws Role Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_role_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Role Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_role_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_role_name","typeLabel":"string | null"},"aws_session_name":{"oneOf":[{"type":"string","title":"Aws Session Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_session_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Session Name","uniqueKey":"agent_settings.oneOf.0.llm.aws_session_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_session_name","typeLabel":"string | null"},"aws_bedrock_runtime_endpoint":{"oneOf":[{"type":"string","title":"Aws Bedrock Runtime Endpoint","uniqueKey":"agent_settings.oneOf.0.llm.aws_bedrock_runtime_endpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Bedrock Runtime Endpoint","uniqueKey":"agent_settings.oneOf.0.llm.aws_bedrock_runtime_endpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.aws_bedrock_runtime_endpoint","typeLabel":"string | null"},"openrouter_site_url":{"type":"string","title":"Openrouter Site Url","default":"https://docs.all-hands.dev/","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.openrouter_site_url","typeLabel":"string"},"openrouter_app_name":{"type":"string","title":"Openrouter App Name","default":"OpenHands","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.openrouter_app_name","typeLabel":"string"},"num_retries":{"type":"integer","minimum":0,"title":"Num Retries","default":5,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.num_retries","typeLabel":"integer"},"retry_multiplier":{"type":"number","minimum":0,"title":"Retry Multiplier","default":8,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.retry_multiplier","typeLabel":"number"},"retry_min_wait":{"type":"integer","minimum":0,"title":"Retry Min Wait","default":8,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.retry_min_wait","typeLabel":"integer"},"retry_max_wait":{"type":"integer","minimum":0,"title":"Retry Max Wait","default":64,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.retry_max_wait","typeLabel":"integer"},"timeout":{"oneOf":[{"type":"integer","title":"Timeout","description":"HTTP timeout in seconds. Default is 300s (5 minutes). Set to None to disable timeout (not recommended for production).","default":300,"minimum":0,"uniqueKey":"agent_settings.oneOf.0.llm.timeout.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Timeout","description":"HTTP timeout in seconds. Default is 300s (5 minutes). Set to None to disable timeout (not recommended for production).","default":300,"uniqueKey":"agent_settings.oneOf.0.llm.timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.timeout","typeLabel":"integer | null"},"max_message_chars":{"type":"integer","minimum":1,"title":"Max Message Chars","description":"Approx max chars in each event/content sent to the LLM.","default":30000,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.max_message_chars","typeLabel":"integer"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"Sampling temperature for response generation. Defaults to None (uses provider default temperature). Set to 0.0 for deterministic outputs, or higher values (0.7-1.0) for more creative responses.","minimum":0,"uniqueKey":"agent_settings.oneOf.0.llm.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"Sampling temperature for response generation. Defaults to None (uses provider default temperature). Set to 0.0 for deterministic outputs, or higher values (0.7-1.0) for more creative responses.","uniqueKey":"agent_settings.oneOf.0.llm.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.temperature","typeLabel":"number | null"},"top_p":{"oneOf":[{"type":"number","title":"Top P","description":"Nucleus sampling parameter. Defaults to None (uses provider default). Set to a value between 0 and 1 to control diversity of outputs.","maximum":1,"minimum":0,"uniqueKey":"agent_settings.oneOf.0.llm.top_p.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top P","description":"Nucleus sampling parameter. Defaults to None (uses provider default). Set to a value between 0 and 1 to control diversity of outputs.","uniqueKey":"agent_settings.oneOf.0.llm.top_p.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.top_p","typeLabel":"number | null"},"top_k":{"oneOf":[{"type":"number","title":"Top K","minimum":0,"uniqueKey":"agent_settings.oneOf.0.llm.top_k.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top K","uniqueKey":"agent_settings.oneOf.0.llm.top_k.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.top_k","typeLabel":"number | null"},"max_input_tokens":{"oneOf":[{"type":"integer","title":"Max Input Tokens","description":"The maximum number of input tokens. Note that this is currently unused, and the value at runtime is actually the total tokens in OpenAI (e.g. 128,000 tokens for GPT-4).","minimum":1,"uniqueKey":"agent_settings.oneOf.0.llm.max_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Input Tokens","description":"The maximum number of input tokens. Note that this is currently unused, and the value at runtime is actually the total tokens in OpenAI (e.g. 128,000 tokens for GPT-4).","uniqueKey":"agent_settings.oneOf.0.llm.max_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.max_input_tokens","typeLabel":"integer | null"},"max_output_tokens":{"oneOf":[{"type":"integer","title":"Max Output Tokens","description":"The maximum number of output tokens. This is sent to the LLM.","minimum":1,"uniqueKey":"agent_settings.oneOf.0.llm.max_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Output Tokens","description":"The maximum number of output tokens. This is sent to the LLM.","uniqueKey":"agent_settings.oneOf.0.llm.max_output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.max_output_tokens","typeLabel":"integer | null"},"model_canonical_name":{"oneOf":[{"type":"string","title":"Model Canonical Name","description":"Optional canonical model name for feature registry lookups. The OpenHands SDK maintains a model feature registry that maps model names to capabilities (e.g., vision support, prompt caching, responses API support). When using proxied or aliased model identifiers, set this field to the canonical model name (e.g., 'openai/gpt-4o') to ensure correct capability detection. If not provided, the 'model' field will be used for capability lookups.","uniqueKey":"agent_settings.oneOf.0.llm.model_canonical_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Canonical Name","description":"Optional canonical model name for feature registry lookups. The OpenHands SDK maintains a model feature registry that maps model names to capabilities (e.g., vision support, prompt caching, responses API support). When using proxied or aliased model identifiers, set this field to the canonical model name (e.g., 'openai/gpt-4o') to ensure correct capability detection. If not provided, the 'model' field will be used for capability lookups.","uniqueKey":"agent_settings.oneOf.0.llm.model_canonical_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.model_canonical_name","typeLabel":"string | null"},"api_mode":{"type":"string","enum":["auto","chat","responses"],"title":"Api Mode","description":"LLM API endpoint mode. 'auto' resolves from model metadata and SDK fallbacks; use 'chat' or 'responses' to override endpoint selection for proxy aliases and newly released models.","default":"auto","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.api_mode","typeLabel":"enum\u003cstring>"},"capability_overrides":{"additionalProperties":{"oneOf":[{"type":"boolean","uniqueKey":"agent_settings.oneOf.0.llm.capability_overrides.additionalProperties.oneOf.0","typeLabel":"boolean"},{"type":"string","uniqueKey":"agent_settings.oneOf.0.llm.capability_overrides.additionalProperties.oneOf.1","typeLabel":"string"}],"uniqueKey":"agent_settings.oneOf.0.llm.capability_overrides.additionalProperties","typeLabel":"boolean | string"},"type":"object","title":"Capability Overrides","description":"Explicit model capability overrides. Supported keys include supports_reasoning_effort, thinking_mode (adaptive, manual, none, or unknown), supports_sampling_params, supports_prompt_cache, supports_stop_words, supports_responses_api, supports_vision, and supports_prompt_cache_retention. Overrides take precedence over LiteLLM metadata and SDK fallbacks.","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.capability_overrides","typeLabel":"Capability Overrides · object"},"extra_headers":{"oneOf":[{"type":"object","title":"Extra Headers","description":"Optional HTTP headers to forward to LiteLLM requests.","additionalProperties":{"type":"string","uniqueKey":"agent_settings.oneOf.0.llm.extra_headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_settings.oneOf.0.llm.extra_headers.oneOf.0","typeLabel":"Extra Headers · object"},{"type":"null","title":"Extra Headers","description":"Optional HTTP headers to forward to LiteLLM requests.","uniqueKey":"agent_settings.oneOf.0.llm.extra_headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.extra_headers","typeLabel":"Extra Headers · object | null"},"input_cost_per_token":{"oneOf":[{"type":"number","title":"Input Cost Per Token","description":"The cost per input token. This will available in logs for user.","minimum":0,"uniqueKey":"agent_settings.oneOf.0.llm.input_cost_per_token.oneOf.0","typeLabel":"number"},{"type":"null","title":"Input Cost Per Token","description":"The cost per input token. This will available in logs for user.","uniqueKey":"agent_settings.oneOf.0.llm.input_cost_per_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.input_cost_per_token","typeLabel":"number | null"},"output_cost_per_token":{"oneOf":[{"type":"number","title":"Output Cost Per Token","description":"The cost per output token. This will available in logs for user.","minimum":0,"uniqueKey":"agent_settings.oneOf.0.llm.output_cost_per_token.oneOf.0","typeLabel":"number"},{"type":"null","title":"Output Cost Per Token","description":"The cost per output token. This will available in logs for user.","uniqueKey":"agent_settings.oneOf.0.llm.output_cost_per_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.output_cost_per_token","typeLabel":"number | null"},"ollama_base_url":{"oneOf":[{"type":"string","title":"Ollama Base Url","uniqueKey":"agent_settings.oneOf.0.llm.ollama_base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ollama Base Url","uniqueKey":"agent_settings.oneOf.0.llm.ollama_base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.ollama_base_url","typeLabel":"string | null"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses from the LLM. When enabled, the provided `on_token` callback in .completions and .responses will be invoked for each chunk of tokens.","default":false,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.stream","typeLabel":"boolean"},"drop_params":{"type":"boolean","title":"Drop Params","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.drop_params","typeLabel":"boolean"},"modify_params":{"type":"boolean","title":"Modify Params","description":"Modify params allows litellm to do transformations like adding a default message, when a message is empty.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.modify_params","typeLabel":"boolean"},"disable_vision":{"oneOf":[{"type":"boolean","title":"Disable Vision","description":"If model is vision capable, this option allows to disable image processing (useful for cost reduction).","uniqueKey":"agent_settings.oneOf.0.llm.disable_vision.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Vision","description":"If model is vision capable, this option allows to disable image processing (useful for cost reduction).","uniqueKey":"agent_settings.oneOf.0.llm.disable_vision.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.disable_vision","typeLabel":"boolean | null"},"disable_stop_word":{"oneOf":[{"type":"boolean","title":"Disable Stop Word","description":"Disable using of stop word.","default":false,"uniqueKey":"agent_settings.oneOf.0.llm.disable_stop_word.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Stop Word","description":"Disable using of stop word.","default":false,"uniqueKey":"agent_settings.oneOf.0.llm.disable_stop_word.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.disable_stop_word","typeLabel":"boolean | null"},"caching_prompt":{"type":"boolean","title":"Caching Prompt","description":"Enable caching of prompts.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.caching_prompt","typeLabel":"boolean"},"log_completions":{"type":"boolean","title":"Log Completions","description":"Enable logging of completions.","default":false,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.log_completions","typeLabel":"boolean"},"log_completions_folder":{"type":"string","title":"Log Completions Folder","description":"The folder to log LLM completions to. Required if log_completions is True.","default":"logs/completions","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.log_completions_folder","typeLabel":"string"},"custom_tokenizer":{"oneOf":[{"type":"string","title":"Custom Tokenizer","description":"A custom tokenizer to use for token counting.","uniqueKey":"agent_settings.oneOf.0.llm.custom_tokenizer.oneOf.0","typeLabel":"string"},{"type":"null","title":"Custom Tokenizer","description":"A custom tokenizer to use for token counting.","uniqueKey":"agent_settings.oneOf.0.llm.custom_tokenizer.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.custom_tokenizer","typeLabel":"string | null"},"native_tool_calling":{"type":"boolean","title":"Native Tool Calling","description":"Whether to use native tool calling.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.native_tool_calling","typeLabel":"boolean"},"force_string_serializer":{"oneOf":[{"type":"boolean","title":"Force String Serializer","description":"Force using string content serializer when sending to LLM API. If None (default), auto-detect based on model. Useful for providers that do not support list content, like HuggingFace and Groq.","uniqueKey":"agent_settings.oneOf.0.llm.force_string_serializer.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Force String Serializer","description":"Force using string content serializer when sending to LLM API. If None (default), auto-detect based on model. Useful for providers that do not support list content, like HuggingFace and Groq.","uniqueKey":"agent_settings.oneOf.0.llm.force_string_serializer.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.force_string_serializer","typeLabel":"boolean | null"},"inline_image_urls":{"oneOf":[{"type":"boolean","title":"Inline Image Urls","description":"If True, fetch any http(s) image URL in outgoing messages and inline it as a base64 ``data:`` URL before sending. If None (default), auto-detect based on model (some APIs such as Moonshot's public Kimi endpoint reject URL-formatted images and require base64). Set this explicitly when the model is reached through a proxy alias that hides the underlying provider (e.g. ``litellm_proxy/\u003ccustom-alias>``). Note: inlining only runs when ``vision_is_active()`` is True, so the alias must still be recognised as vision-capable by the SDK feature registry or proxy model metadata.","uniqueKey":"agent_settings.oneOf.0.llm.inline_image_urls.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Inline Image Urls","description":"If True, fetch any http(s) image URL in outgoing messages and inline it as a base64 ``data:`` URL before sending. If None (default), auto-detect based on model (some APIs such as Moonshot's public Kimi endpoint reject URL-formatted images and require base64). Set this explicitly when the model is reached through a proxy alias that hides the underlying provider (e.g. ``litellm_proxy/\u003ccustom-alias>``). Note: inlining only runs when ``vision_is_active()`` is True, so the alias must still be recognised as vision-capable by the SDK feature registry or proxy model metadata.","uniqueKey":"agent_settings.oneOf.0.llm.inline_image_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.inline_image_urls","typeLabel":"boolean | null"},"reasoning_effort":{"oneOf":[{"type":"string","title":"Reasoning Effort","description":"Provider-neutral reasoning effort. Common values include 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. The SDK accepts future provider values and lets LiteLLM translate them.","default":"high","enum":["low","medium","high","xhigh","none"],"uniqueKey":"agent_settings.oneOf.0.llm.reasoning_effort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoning Effort","description":"Provider-neutral reasoning effort. Common values include 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. The SDK accepts future provider values and lets LiteLLM translate them.","default":"high","uniqueKey":"agent_settings.oneOf.0.llm.reasoning_effort.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.reasoning_effort","typeLabel":"enum\u003cstring> | null"},"reasoning_summary":{"oneOf":[{"type":"string","title":"Reasoning Summary","description":"The level of detail for reasoning summaries. This is a string that can be one of 'auto', 'concise', or 'detailed'. Requires verified OpenAI organization. Only sent when explicitly set.","enum":["auto","concise","detailed"],"uniqueKey":"agent_settings.oneOf.0.llm.reasoning_summary.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoning Summary","description":"The level of detail for reasoning summaries. This is a string that can be one of 'auto', 'concise', or 'detailed'. Requires verified OpenAI organization. Only sent when explicitly set.","uniqueKey":"agent_settings.oneOf.0.llm.reasoning_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.reasoning_summary","typeLabel":"enum\u003cstring> | null"},"enable_encrypted_reasoning":{"type":"boolean","title":"Enable Encrypted Reasoning","description":"If True, ask for ['reasoning.encrypted_content'] in Responses API include.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.enable_encrypted_reasoning","typeLabel":"boolean"},"prompt_cache_retention":{"oneOf":[{"type":"string","title":"Prompt Cache Retention","description":"Retention policy for prompt cache. Only sent for supported models (GPT-5+ and GPT-4.1, excluding Azure deployments); explicitly stripped for all others.","default":"24h","uniqueKey":"agent_settings.oneOf.0.llm.prompt_cache_retention.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt Cache Retention","description":"Retention policy for prompt cache. Only sent for supported models (GPT-5+ and GPT-4.1, excluding Azure deployments); explicitly stripped for all others.","default":"24h","uniqueKey":"agent_settings.oneOf.0.llm.prompt_cache_retention.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.prompt_cache_retention","typeLabel":"string | null"},"extended_thinking_budget":{"oneOf":[{"type":"integer","title":"Extended Thinking Budget","description":"Legacy token budget for models confirmed to use manual Anthropic extended thinking. Ignored for adaptive-thinking models. Prefer reasoning_effort for new integrations.","default":200000,"uniqueKey":"agent_settings.oneOf.0.llm.extended_thinking_budget.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Extended Thinking Budget","description":"Legacy token budget for models confirmed to use manual Anthropic extended thinking. Ignored for adaptive-thinking models. Prefer reasoning_effort for new integrations.","default":200000,"uniqueKey":"agent_settings.oneOf.0.llm.extended_thinking_budget.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.extended_thinking_budget","typeLabel":"integer | null"},"seed":{"oneOf":[{"type":"integer","title":"Seed","description":"The seed to use for random number generation.","uniqueKey":"agent_settings.oneOf.0.llm.seed.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Seed","description":"The seed to use for random number generation.","uniqueKey":"agent_settings.oneOf.0.llm.seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.llm.seed","typeLabel":"integer | null"},"usage_id":{"type":"string","title":"Usage Id","description":"Unique usage identifier for the LLM. Used for registry lookups, telemetry, and spend tracking.","default":"default","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.usage_id","typeLabel":"string"},"litellm_extra_body":{"additionalProperties":true,"type":"object","title":"Litellm Extra Body","description":"Additional key-value pairs to pass to litellm's extra_body parameter. This is useful for custom inference endpoints that need additional parameters for configuration, routing, or advanced features. NOTE: Not all LLM providers support extra_body parameters. Some providers (e.g., OpenAI) may reject requests with unrecognized options. This is commonly supported by: - LiteLLM proxy servers (routing metadata, tracing) - vLLM endpoints (return_token_ids, etc.) - Custom inference clusters Examples: - Proxy routing: {'trace_version': '1.0.0', 'tags': ['agent:my-agent']} - vLLM features: {'return_token_ids': True}","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.llm.litellm_extra_body","typeLabel":"Litellm Extra Body · object"}},"type":"object","required":["is_subscription"],"title":"LLM","description":"LLM settings for the agent.","openhands_settings_section":{"key":"llm","label":"LLM","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.llm","typeLabel":"LLM · object"},"tools":{"oneOf":[{"type":"array","items":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the tool class, e.g., 'TerminalTool'. Import it from an `openhands.tools.\u003cmodule>` subpackage.","examples":["TerminalTool","FileEditorTool","TaskTrackerTool"],"isRequired":true,"uniqueKey":"agent_settings.oneOf.0.tools.oneOf.0.items.[INDEX].name","typeLabel":"string"},"params":{"additionalProperties":true,"type":"object","title":"Params","description":"Parameters for the tool's .create() method, e.g., {'working_dir': '/app'}","examples":[{"working_dir":"/workspace"}],"uniqueKey":"agent_settings.oneOf.0.tools.oneOf.0.items.[INDEX].params","typeLabel":"Params · object"}},"type":"object","required":["name"],"title":"Tool","description":"Defines a tool to be initialized for the agent.\n\nThis is only used in agent-sdk for type schema for server use.","uniqueKey":"agent_settings.oneOf.0.tools.oneOf.0.items.[INDEX]","typeLabel":"Tool · object"},"title":"Tools","description":"Tools available to the agent. None (the default) resolves to the standard exec set (see openhands.sdk.tool.defaults), plus the sub-agent tool set when enable_sub_agents is set; [] is an explicitly bare agent; a non-empty list is used exactly as given. Environment-dependent tools (browser) are injected by the serving layer, not the default.","uniqueKey":"agent_settings.oneOf.0.tools.oneOf.0","typeLabel":"Tool · object[]"},{"type":"null","title":"Tools","description":"Tools available to the agent. None (the default) resolves to the standard exec set (see openhands.sdk.tool.defaults), plus the sub-agent tool set when enable_sub_agents is set; [] is an explicitly bare agent; a non-empty list is used exactly as given. Environment-dependent tools (browser) are injected by the serving layer, not the default.","uniqueKey":"agent_settings.oneOf.0.tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.tools","typeLabel":"Tool · object[] | null"},"enable_sub_agents":{"type":"boolean","title":"Enable Sub Agents","description":"Enable sub-agent delegation via TaskToolSet.","default":false,"openhands_settings":{"depends_on":[],"label":"Enable sub-agents","prominence":"major","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.enable_sub_agents","typeLabel":"boolean"},"enable_switch_llm_tool":{"type":"boolean","title":"Enable Switch Llm Tool","description":"Enable the built-in switch_llm tool for switching between saved LLM profiles.","default":true,"openhands_settings":{"depends_on":[],"label":"Enable LLM switching tool","prominence":"minor","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.enable_switch_llm_tool","typeLabel":"boolean"},"tool_concurrency_limit":{"type":"integer","minimum":1,"title":"Tool Concurrency Limit","description":"Maximum number of tool calls to execute concurrently per agent step. 1 = sequential (default). Values > 1 enable parallel tool calls; concurrent tools share the conversation object, filesystem, and working directory, so mutations to shared state may race.","default":1,"openhands_settings":{"depends_on":[],"label":"Parallel tool calls","prominence":"major","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.tool_concurrency_limit","typeLabel":"integer"},"mcp_config":{"additionalProperties":{"properties":{"url":{"oneOf":[{"type":"string","title":"Url","minLength":1,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.url","typeLabel":"string | null"},"transport":{"oneOf":[{"type":"string","title":"Transport","enum":["stdio","http","sse","streamable-http"],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.transport.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transport","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.transport.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.transport","typeLabel":"enum\u003cstring> | null"},"command":{"oneOf":[{"type":"string","title":"Command","minLength":1,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.command.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.command","typeLabel":"string | null"},"args":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.args.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Args","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.args.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Args","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.args.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.args","typeLabel":"string[] | null"},"env":{"oneOf":[{"type":"object","title":"Env","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.env.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.env.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.env.oneOf.0","typeLabel":"Env · object"},{"type":"null","title":"Env","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.env.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.env","typeLabel":"Env · object | null"},"cwd":{"oneOf":[{"type":"string","title":"Cwd","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.cwd.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cwd","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.cwd.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.cwd","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.description","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","title":"Icon","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.icon.oneOf.0","typeLabel":"string"},{"type":"null","title":"Icon","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.icon.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.icon","typeLabel":"string | null"},"timeout":{"oneOf":[{"type":"number","title":"Timeout","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.timeout.oneOf.0","typeLabel":"number"},{"type":"null","title":"Timeout","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.timeout","typeLabel":"number | null"},"sse_read_timeout":{"oneOf":[{"type":"number","title":"Sse Read Timeout","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.sse_read_timeout.oneOf.0","typeLabel":"number"},{"type":"null","title":"Sse Read Timeout","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.sse_read_timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.sse_read_timeout","typeLabel":"number | null"},"keep_alive":{"oneOf":[{"type":"boolean","title":"Keep Alive","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.keep_alive.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Keep Alive","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.keep_alive.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.keep_alive","typeLabel":"boolean | null"},"headers":{"oneOf":[{"type":"object","title":"Headers","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.headers.oneOf.0","typeLabel":"Headers · object"},{"type":"null","title":"Headers","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.headers","typeLabel":"Headers · object | null"},"auth":{"oneOf":[{"type":"object","title":"MCPNoneAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"none","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.0.strategy","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.0","typeLabel":"MCPNoneAuthCredential · object"},{"type":"object","title":"MCPApiKeyAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"api_key","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.strategy","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.value","typeLabel":"string | null"},"header_name":{"oneOf":[{"type":"string","title":"Header Name","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.header_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Header Name","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.header_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1.header_name","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.1","typeLabel":"MCPApiKeyAuthCredential · object"},{"type":"object","title":"MCPBearerAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"bearer","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.2.strategy","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.2.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.2.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.2.value","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.2","typeLabel":"MCPBearerAuthCredential · object"},{"type":"object","title":"MCPBasicAuthCredential","required":["strategy","username"],"properties":{"strategy":{"type":"string","const":"basic","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.3.strategy","typeLabel":"string"},"username":{"type":"string","title":"Username","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.3.username","typeLabel":"string"},"password":{"oneOf":[{"type":"string","title":"Password","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.3.password.oneOf.0","typeLabel":"string"},{"type":"null","title":"Password","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.3.password.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.3.password","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.3","typeLabel":"MCPBasicAuthCredential · object"},{"type":"object","title":"MCPHeaderAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"header","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.4.strategy","typeLabel":"string"},"headers":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties","typeLabel":"string | null"},"type":"object","title":"Headers","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.4.headers","typeLabel":"Headers · object"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.4","typeLabel":"MCPHeaderAuthCredential · object"},{"type":"object","title":"MCPOAuthAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"oauth2","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.strategy","typeLabel":"string"},"authentication":{"oneOf":[{"type":"object","title":"MCPOAuthAuthentication","required":["type"],"properties":{"type":{"type":"string","const":"oauth","title":"Type","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.type","typeLabel":"string"},"client_auth_method":{"oneOf":[{"type":"string","title":"Client Auth Method","enum":["none","client_secret_post","client_secret_basic","private_key_jwt"],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Client Auth Method","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method","typeLabel":"enum\u003cstring> | null"},"scopes":{"oneOf":[{"type":"string","title":"Scopes","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Scopes","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.1","typeLabel":"string[]"},{"type":"null","title":"Scopes","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes","typeLabel":"string | string[] | null"},"client_name":{"oneOf":[{"type":"string","title":"Client Name","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Name","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name","typeLabel":"string | null"},"client_metadata_url":{"oneOf":[{"type":"string","title":"Client Metadata Url","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Metadata Url","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url","typeLabel":"string | null"},"client_id":{"oneOf":[{"type":"string","title":"Client Id","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Id","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id","typeLabel":"string | null"},"client_secret":{"oneOf":[{"type":"string","title":"Client Secret","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Secret","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret","typeLabel":"string | null"},"additional_client_metadata":{"oneOf":[{"type":"object","title":"Additional Client Metadata","additionalProperties":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata.oneOf.0","typeLabel":"Additional Client Metadata · object"},{"type":"null","title":"Additional Client Metadata","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata","typeLabel":"Additional Client Metadata · object | null"}},"additionalProperties":false,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0","typeLabel":"MCPOAuthAuthentication · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.authentication","typeLabel":"MCPOAuthAuthentication · object | null"},"state":{"oneOf":[{"type":"object","title":"MCPOAuthState","properties":{"tokens":{"oneOf":[{"type":"object","title":"MCPOAuthTokenState","properties":{"access_token":{"oneOf":[{"type":"string","title":"Access Token","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Access Token","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token","typeLabel":"string | null"},"refresh_token":{"oneOf":[{"type":"string","title":"Refresh Token","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Refresh Token","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0","typeLabel":"MCPOAuthTokenState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens","typeLabel":"MCPOAuthTokenState · object | null"},"client_info":{"oneOf":[{"type":"object","title":"MCPOAuthClientInfoState","properties":{"client_secret":{"oneOf":[{"type":"string","title":"Client Secret","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Secret","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0","typeLabel":"MCPOAuthClientInfoState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info","typeLabel":"MCPOAuthClientInfoState · object | null"},"token_expires_at":{"oneOf":[{"type":"number","title":"Token Expires At","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at.oneOf.0","typeLabel":"number"},{"type":"null","title":"Token Expires At","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at","typeLabel":"number | null"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0","typeLabel":"MCPOAuthState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5.state","typeLabel":"MCPOAuthState · object | null"}},"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.5","typeLabel":"MCPOAuthAuthCredential · object"},{"type":"null","title":"Auth","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth.oneOf.6","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.auth","typeLabel":"MCPNoneAuthCredential · object | MCPApiKeyAuthCredential · object | MCPBearerAuthCredential · object | MCPBasicAuthCredential · object | MCPHeaderAuthCredential · object | MCPOAuthAuthCredential · object | null"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether this server is exposed to the agent. A disabled server stays fully configured -- including its secrets -- but is skipped when MCP tools are created and when servers are forwarded to an ACP subprocess.","default":true,"uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties.enabled","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","title":"MCPServer","description":"One MCP server in the settings DataModel.","uniqueKey":"agent_settings.oneOf.0.mcp_config.additionalProperties","typeLabel":"MCPServer · object"},"type":"object","title":"Mcp Config","description":"MCP servers available to the agent.","openhands_settings":{"depends_on":[],"label":"MCP servers","prominence":"minor","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.mcp_config","typeLabel":"Mcp Config · object"},"agent_context":{"properties":{"skills":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].name","typeLabel":"string"},"content":{"type":"string","title":"Content","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].content","typeLabel":"string"},"trigger":{"oneOf":[{"type":"object","title":"KeywordTrigger","description":"Trigger for keyword-based skills.\n\nThese skills are activated when specific keywords appear in the user's query.","required":["keywords"],"properties":{"keywords":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.0.keywords.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Keywords","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.0.keywords","typeLabel":"string[]"},"type":{"type":"string","const":"keyword","title":"Type","default":"keyword","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.0.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.0","typeLabel":"KeywordTrigger · object"},{"type":"object","title":"TaskTrigger","description":"Trigger for task-specific skills.\n\nThese skills are activated for specific task types and can modify prompts.","required":["triggers"],"properties":{"triggers":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.1.triggers.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Triggers","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.1.triggers","typeLabel":"string[]"},"type":{"type":"string","const":"task","title":"Type","default":"task","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.1.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.1","typeLabel":"TaskTrigger · object"},{"type":"object","title":"PathTrigger","description":"Trigger for path-scoped skills (\"rules\").\n\nThese skills are activated when the agent touches a file whose path matches\none of the ``paths`` glob patterns (gitignore-style ``**`` semantics).","required":["paths"],"properties":{"paths":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.2.paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.2.paths","typeLabel":"string[]"},"type":{"type":"string","const":"path","title":"Type","default":"path","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.2.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.2","typeLabel":"PathTrigger · object"},{"type":"null","title":"Trigger","description":"Trigger determines when skill content is auto-injected. None = no auto-injection (for AgentSkills: agent reads on demand; for legacy: full content always in system prompt). KeywordTrigger = auto-inject when keywords appear in user messages. TaskTrigger = auto-inject for specific tasks, may require user input.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger.oneOf.3","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].trigger","typeLabel":"KeywordTrigger · object | TaskTrigger · object | PathTrigger · object | null"},"source":{"oneOf":[{"type":"string","title":"Source","description":"The source path or identifier of the skill. When it is None, it is treated as a programmatically defined skill.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","description":"The source path or identifier of the skill. When it is None, it is treated as a programmatically defined skill.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].source.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].source","typeLabel":"string | null"},"mcp_tools":{"oneOf":[{"type":"object","title":"Mcp Tools","description":"MCP servers for the skill (repo skills only).","additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].mcp_tools.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].mcp_tools.oneOf.0","typeLabel":"Mcp Tools · object"},{"type":"null","title":"Mcp Tools","description":"MCP servers for the skill (repo skills only).","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].mcp_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].mcp_tools","typeLabel":"Mcp Tools · object | null"},"inputs":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the input parameter","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].inputs.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","title":"Description","description":"Description of the input parameter","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].inputs.items.[INDEX].description","typeLabel":"string"}},"type":"object","required":["name","description"],"title":"InputMetadata","description":"Metadata for task skill inputs.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].inputs.items.[INDEX]","typeLabel":"InputMetadata · object"},"type":"array","title":"Inputs","description":"Input metadata for the skill (task skills only)","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].inputs","typeLabel":"InputMetadata · object[]"},"is_agentskills_format":{"type":"boolean","title":"Is Agentskills Format","description":"Whether this skill was loaded from a SKILL.md file following the AgentSkills standard. AgentSkills-format skills use progressive disclosure: always listed in \u003cavailable_skills> with name, description, and location. If the skill also has triggers, content is auto-injected when triggered AND agent can read file anytime.","default":false,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].is_agentskills_format","typeLabel":"boolean"},"version":{"type":"string","title":"Version","description":"Skill version (AgentSkills standard field).","default":"1.0.0","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].version","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"A brief description of what the skill does and when to use it. Descriptions exceeding MAX_DESCRIPTION_LENGTH are truncated with a notice pointing to the skill's source path.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"A brief description of what the skill does and when to use it. Descriptions exceeding MAX_DESCRIPTION_LENGTH are truncated with a notice pointing to the skill's source path.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].description","typeLabel":"string | null"},"license":{"oneOf":[{"type":"string","title":"License","description":"The license under which the skill is distributed. AgentSkills standard field (e.g., 'Apache-2.0', 'MIT').","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].license.oneOf.0","typeLabel":"string"},{"type":"null","title":"License","description":"The license under which the skill is distributed. AgentSkills standard field (e.g., 'Apache-2.0', 'MIT').","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].license.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].license","typeLabel":"string | null"},"compatibility":{"oneOf":[{"type":"string","title":"Compatibility","description":"Environment requirements or compatibility notes for the skill. AgentSkills standard field (e.g., 'Requires git and docker').","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].compatibility.oneOf.0","typeLabel":"string"},{"type":"null","title":"Compatibility","description":"Environment requirements or compatibility notes for the skill. AgentSkills standard field (e.g., 'Requires git and docker').","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].compatibility.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].compatibility","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Arbitrary key-value metadata for the skill. AgentSkills standard field for extensibility.","additionalProperties":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].metadata.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Arbitrary key-value metadata for the skill. AgentSkills standard field for extensibility.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].metadata","typeLabel":"Metadata · object | null"},"allowed_tools":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].allowed_tools.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Allowed Tools","description":"List of pre-approved tools for this skill. AgentSkills standard field (parsed from space-delimited string).","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].allowed_tools.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Allowed Tools","description":"List of pre-approved tools for this skill. AgentSkills standard field (parsed from space-delimited string).","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].allowed_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].allowed_tools","typeLabel":"string[] | null"},"disable_model_invocation":{"type":"boolean","title":"Disable Model Invocation","description":"Whether this skill can only be activated by trigger matching and should not be advertised to the model for direct invocation.","default":false,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].disable_model_invocation","typeLabel":"boolean"},"resources":{"oneOf":[{"type":"object","title":"SkillResources","description":"Resource directories for the skill (scripts/, references/, assets/). AgentSkills standard field. Only populated for SKILL.md directory format.","required":["skill_root"],"properties":{"skill_root":{"type":"string","title":"Skill Root","description":"Root directory of the skill (absolute path)","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.skill_root","typeLabel":"string"},"scripts":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.scripts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Scripts","description":"List of script files in scripts/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.scripts","typeLabel":"string[]"},"references":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.references.items.[INDEX]","typeLabel":"string"},"type":"array","title":"References","description":"List of reference files in references/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.references","typeLabel":"string[]"},"assets":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.assets.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Assets","description":"List of asset files in assets/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0.assets","typeLabel":"string[]"}},"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.0","typeLabel":"SkillResources · object"},{"type":"null","description":"Resource directories for the skill (scripts/, references/, assets/). AgentSkills standard field. Only populated for SKILL.md directory format.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX].resources","typeLabel":"SkillResources · object | null"}},"type":"object","required":["name","content"],"title":"Skill","description":"A skill provides specialized knowledge or functionality.\n\nSkill behavior depends on format (is_agentskills_format) and trigger:\n\nAgentSkills format (SKILL.md files):\n- Always listed in \u003cavailable_skills> with name, description, location\n- Agent reads full content on demand (progressive disclosure)\n- If has triggers: content is ALSO auto-injected when triggered\n\nLegacy OpenHands format:\n- With triggers: Listed in \u003cavailable_skills>, content injected on trigger\n- Without triggers (None): Full content in \u003cREPO_CONTEXT>, always active\n\nThis model supports both OpenHands-specific fields and AgentSkills standard\nfields (https://agentskills.io/specification) for cross-platform compatibility.","uniqueKey":"agent_settings.oneOf.0.agent_context.skills.items.[INDEX]","typeLabel":"Skill · object"},"type":"array","title":"Skills","description":"List of available skills that can extend the user's input.","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.skills","typeLabel":"Skill · object[]"},"system_message_suffix":{"oneOf":[{"type":"string","title":"System Message Suffix","description":"Optional suffix to append to the system prompt.","uniqueKey":"agent_settings.oneOf.0.agent_context.system_message_suffix.oneOf.0","typeLabel":"string"},{"type":"null","title":"System Message Suffix","description":"Optional suffix to append to the system prompt.","uniqueKey":"agent_settings.oneOf.0.agent_context.system_message_suffix.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.system_message_suffix","typeLabel":"string | null"},"user_message_suffix":{"oneOf":[{"type":"string","title":"User Message Suffix","description":"Optional suffix to append to the user's message.","uniqueKey":"agent_settings.oneOf.0.agent_context.user_message_suffix.oneOf.0","typeLabel":"string"},{"type":"null","title":"User Message Suffix","description":"Optional suffix to append to the user's message.","uniqueKey":"agent_settings.oneOf.0.agent_context.user_message_suffix.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.user_message_suffix","typeLabel":"string | null"},"load_user_skills":{"type":"boolean","title":"Load User Skills","description":"Whether to automatically load user skills from ~/.openhands/skills/ and ~/.openhands/microagents/ (for backward compatibility). ","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.load_user_skills","typeLabel":"boolean"},"load_public_skills":{"type":"boolean","title":"Load Public Skills","description":"Whether to automatically load skills from the public OpenHands skills repository at https://github.com/OpenHands/extensions. This allows you to get the latest skills without SDK updates.","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.load_public_skills","typeLabel":"boolean"},"marketplace_path":{"oneOf":[{"type":"string","title":"Marketplace Path","description":"Relative marketplace JSON path within the public skills repository. Set to None to load all public skills without marketplace filtering.","default":"marketplaces/default.json","uniqueKey":"agent_settings.oneOf.0.agent_context.marketplace_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Marketplace Path","description":"Relative marketplace JSON path within the public skills repository. Set to None to load all public skills without marketplace filtering.","default":"marketplaces/default.json","uniqueKey":"agent_settings.oneOf.0.agent_context.marketplace_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.marketplace_path","typeLabel":"string | null"},"registered_marketplaces":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Identifier for this marketplace registration","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].name","typeLabel":"string"},"source":{"type":"string","title":"Source","description":"Marketplace source: 'github:owner/repo', git URL, or local path","isRequired":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].source","typeLabel":"string"},"ref":{"oneOf":[{"type":"string","title":"Ref","description":"Optional branch, tag, or commit for git sources","uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].ref.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ref","description":"Optional branch, tag, or commit for git sources","uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].ref","typeLabel":"string | null"},"repo_path":{"oneOf":[{"type":"string","title":"Repo Path","description":"Subdirectory path within the git repository containing the marketplace. Only relevant for git sources.","uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].repo_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Repo Path","description":"Subdirectory path within the git repository containing the marketplace. Only relevant for git sources.","uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].repo_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].repo_path","typeLabel":"string | null"},"auto_load":{"oneOf":[{"type":"boolean","title":"Auto Load","description":"Whether to load marketplace plugins and standalone skills at conversation start. Use True for all, False or [] for none, or a list of plugin/skill names for selective loading.","default":false,"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].auto_load.oneOf.0","typeLabel":"boolean"},{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].auto_load.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Auto Load","description":"Whether to load marketplace plugins and standalone skills at conversation start. Use True for all, False or [] for none, or a list of plugin/skill names for selective loading.","default":false,"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].auto_load.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX].auto_load","typeLabel":"boolean | string[]"}},"type":"object","required":["name","source"],"title":"MarketplaceRegistration","description":"Registration for a marketplace source used for plugin resolution.","uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces.items.[INDEX]","typeLabel":"MarketplaceRegistration · object"},"type":"array","title":"Registered Marketplaces","description":"Marketplace registrations for plugin resolution. Registrations with auto_load=True or a list of plugin names are resolved by LocalConversation at startup.","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.registered_marketplaces","typeLabel":"MarketplaceRegistration · object[]"},"load_project_skills":{"type":"boolean","title":"Load Project Skills","description":"Whether to automatically load project skills from the conversation workspace (e.g. .openhands/skills/, AGENTS.md). Unlike load_user_skills / load_public_skills, this flag is not resolved by AgentContext itself (the workspace path is unknown at validation time); LocalConversation resolves it lazily on the first send_message() / run(), when the workspace is known. Also unlike load_user_skills / load_public_skills (which yield to explicit skills on a name conflict), resolved project skills are authoritative: a project skill overrides a same-named skill already present in `skills`.","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.load_project_skills","typeLabel":"boolean"},"load_memory":{"type":"boolean","title":"Load Memory","description":"Whether to load persistent agent memory (MEMORY.md indexes under ~/.openhands/memory/ and \u003cworkspace>/.openhands/memory/) into the system prompt. Like load_project_skills, this flag is not resolved by AgentContext itself (the workspace path is unknown at validation time); LocalConversation resolves it lazily on the first send_message() / run() and stores the result in memory_context.","default":false,"acp_compatible":true,"openhands_settings":{"depends_on":[],"label":"Persistent memory","prominence":"major"},"uniqueKey":"agent_settings.oneOf.0.agent_context.load_memory","typeLabel":"boolean"},"disabled_skills":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.0.agent_context.disabled_skills.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Disabled Skills","description":"Names of skills to EXCLUDE from this context — a deny-list applied after every skill source is loaded (auto-loaded user/public, explicit, and lazily-loaded project skills). A listed name absent from the loaded set is a harmless no-op. [] (the default) keeps every skill. This is the single, drift-tolerant skill-selection mechanism (agent profiles set it from their own deny-list; #4017).","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.disabled_skills","typeLabel":"string[]"},"secrets":{"oneOf":[{"type":"object","title":"Secrets","description":"Dictionary mapping secret keys to values or secret sources. Secrets are used for authentication and sensitive data handling. Values can be either strings or SecretSource instances (str | SecretSource).","additionalProperties":true,"uniqueKey":"agent_settings.oneOf.0.agent_context.secrets.oneOf.0","typeLabel":"Secrets · object"},{"type":"null","title":"Secrets","description":"Dictionary mapping secret keys to values or secret sources. Secrets are used for authentication and sensitive data handling. Values can be either strings or SecretSource instances (str | SecretSource).","uniqueKey":"agent_settings.oneOf.0.agent_context.secrets.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.secrets","typeLabel":"Secrets · object | null"},"current_datetime":{"oneOf":[{"type":"string","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","format":"date-time","uniqueKey":"agent_settings.oneOf.0.agent_context.current_datetime.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"string","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","uniqueKey":"agent_settings.oneOf.0.agent_context.current_datetime.oneOf.1","typeLabel":"string"},{"type":"null","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","uniqueKey":"agent_settings.oneOf.0.agent_context.current_datetime.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.agent_context.current_datetime","typeLabel":"string\u003cdate-time> | string | null"}},"type":"object","title":"AgentContext","description":"Context for the agent (skills, secrets, message suffixes).","openhands_settings_section":{"key":"agent_context","label":"Memory","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.agent_context","typeLabel":"AgentContext · object"},"condenser":{"oneOf":[{"type":"object","title":"LLMSummarizingCondenserSettings","description":"Settings for the default LLM summarizing condenser.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Enable conversation memory condensation.","default":true,"openhands_settings":{"depends_on":[],"label":"Enable memory condensation","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.enabled","typeLabel":"boolean"},"max_size":{"type":"integer","minimum":20,"title":"Max Size","description":"Maximum number of events kept before the condenser runs. Kept on the base settings class for compatibility; concrete condenser-settings variants may opt out when this does not apply.","default":240,"openhands_settings":{"depends_on":["enabled"],"label":"Max size","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.max_size","typeLabel":"integer"},"condenser_kind":{"type":"string","const":"llm_summarizing","title":"Condenser Kind","description":"Discriminator for the condenser settings union. ``'llm_summarizing'`` selects the default LLM summarizing condenser.","default":"llm_summarizing","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.condenser_kind","typeLabel":"string"},"max_tokens":{"oneOf":[{"type":"integer","title":"Max Tokens","description":"Maximum number of tokens allowed before the condenser runs. When unset, condensation is only based on event count.","minimum":0,"exclusiveMinimum":true,"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.max_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Tokens","description":"Maximum number of tokens allowed before the condenser runs. When unset, condensation is only based on event count.","uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.max_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.max_tokens","typeLabel":"integer | null"},"keep_first":{"type":"integer","minimum":0,"title":"Keep First","description":"Minimum number of initial events to preserve before condensation.","default":2,"openhands_settings":{"depends_on":["enabled"],"label":"Keep first","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.keep_first","typeLabel":"integer"},"minimum_progress":{"type":"number","exclusiveMaximum":1,"exclusiveMinimum":0,"title":"Minimum Progress","description":"Minimum fraction of events that must be condensed for condensation to be considered successful.","default":0.1,"openhands_settings":{"depends_on":["enabled"],"label":"Minimum progress","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.minimum_progress","typeLabel":"number"},"hard_context_reset_max_retries":{"type":"integer","exclusiveMinimum":0,"title":"Hard Context Reset Max Retries","description":"Number of hard context reset attempts before raising an error.","default":5,"openhands_settings":{"depends_on":["enabled"],"label":"Hard reset retries","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.hard_context_reset_max_retries","typeLabel":"integer"},"hard_context_reset_context_scaling":{"type":"number","exclusiveMaximum":1,"exclusiveMinimum":0,"title":"Hard Context Reset Context Scaling","description":"Factor used to reduce event string size after a hard context reset summarization failure.","default":0.8,"openhands_settings":{"depends_on":["enabled"],"label":"Hard reset scaling","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0.hard_context_reset_context_scaling","typeLabel":"number"}},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.0","typeLabel":"LLMSummarizingCondenserSettings · object"},{"type":"object","title":"NoOpCondenserSettings","description":"Settings for a condenser that leaves conversation views unchanged.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Enable conversation memory condensation.","default":true,"openhands_settings":{"depends_on":[],"label":"Enable memory condensation","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.1.enabled","typeLabel":"boolean"},"condenser_kind":{"type":"string","const":"no_op","title":"Condenser Kind","description":"Discriminator for the condenser settings union. ``'no_op'`` selects a condenser that leaves conversation views unchanged.","default":"no_op","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.1.condenser_kind","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.0.condenser.oneOf.1","typeLabel":"NoOpCondenserSettings · object"}],"uniqueKey":"agent_settings.oneOf.0.condenser","typeLabel":"LLMSummarizingCondenserSettings · object | NoOpCondenserSettings · object"},"verification":{"properties":{"critic_enabled":{"type":"boolean","title":"Critic Enabled","description":"Enable critic evaluation for the agent.","default":false,"openhands_settings":{"depends_on":[],"label":"Enable critic","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.verification.critic_enabled","typeLabel":"boolean"},"critic_mode":{"type":"string","enum":["finish_and_message","all_actions"],"title":"Critic Mode","description":"When critic evaluation should run.","default":"finish_and_message","openhands_settings":{"depends_on":["critic_enabled"],"label":"Critic mode","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.verification.critic_mode","typeLabel":"enum\u003cstring>"},"enable_iterative_refinement":{"type":"boolean","title":"Enable Iterative Refinement","description":"Automatically retry tasks when critic scores fall below the threshold.","default":false,"openhands_settings":{"depends_on":["critic_enabled"],"label":"Enable iterative refinement","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.verification.enable_iterative_refinement","typeLabel":"boolean"},"critic_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Critic Threshold","description":"Critic success threshold used for iterative refinement.","default":0.6,"openhands_settings":{"depends_on":["critic_enabled","enable_iterative_refinement"],"label":"Critic threshold","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.verification.critic_threshold","typeLabel":"number"},"max_refinement_iterations":{"type":"integer","minimum":1,"title":"Max Refinement Iterations","description":"Maximum number of refinement attempts after critic feedback.","default":3,"openhands_settings":{"depends_on":["critic_enabled","enable_iterative_refinement"],"label":"Max refinement iterations","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.0.verification.max_refinement_iterations","typeLabel":"integer"},"critic_server_url":{"oneOf":[{"type":"string","title":"Critic Server Url","description":"Override the critic service URL. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.0.verification.critic_server_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Critic Server Url","description":"Override the critic service URL. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.0.verification.critic_server_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.verification.critic_server_url","typeLabel":"string | null"},"critic_model_name":{"oneOf":[{"type":"string","title":"Critic Model Name","description":"Override the critic model name. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.0.verification.critic_model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Critic Model Name","description":"Override the critic model name. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.0.verification.critic_model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.0.verification.critic_model_name","typeLabel":"string | null"},"critic_api_key":{"title":"Critic Api Key","description":"API key used to authenticate with the critic service. When None, the LLM's ``api_key`` is reused, which preserves the auto-configuration path for the All-Hands LLM proxy.","openhands_settings":{"depends_on":["critic_enabled"],"label":"Critic API Key","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.0.verification.critic_api_key","typeLabel":"any"}},"type":"object","title":"VerificationSettings","description":"Verification settings for the agent critic.","openhands_settings_section":{"key":"verification","label":"Verification","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.0.verification","typeLabel":"VerificationSettings · object"}},"uniqueKey":"agent_settings.oneOf.0","typeLabel":"OpenHandsAgentSettings · object"},{"type":"object","title":"LLMAgentSettings","description":"Legacy ``agent_kind='llm'`` variant of :class:`OpenHandsAgentSettings`.\n\n``LLMAgentSettings`` was the public class name before the v1.19.0 rename.\nThe public import aliases (``from openhands.sdk import LLMAgentSettings`` and\n``from openhands.sdk.settings import LLMAgentSettings``) were removed in\nv1.24.0 — use :class:`OpenHandsAgentSettings` for all new code.\n\nThe class itself is retained (reachable at\n``openhands.sdk.settings.model.LLMAgentSettings``) because it remains a\nmember of the settings discriminated union: it keeps ``agent_kind='llm'`` so\npersisted legacy payloads still deserialize and the API-breakage checker\nsees no field-value change versus the published release.","properties":{"schema_version":{"type":"integer","minimum":1,"title":"Schema Version","default":5,"uniqueKey":"agent_settings.oneOf.1.schema_version","typeLabel":"integer"},"agent_kind":{"type":"string","const":"llm","title":"Agent Kind","description":"Discriminator for the ``AgentSettings`` union. ``'llm'`` selects the standard LLM-backed agent. Deprecated; use ``'openhands'``.","default":"llm","uniqueKey":"agent_settings.oneOf.1.agent_kind","typeLabel":"string"},"agent":{"type":"string","title":"Agent","description":"Agent class to use.","default":"CodeActAgent","openhands_settings":{"depends_on":[],"label":"Agent","prominence":"major","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.agent","typeLabel":"string"},"llm":{"properties":{"is_subscription":{"type":"boolean","title":"Is Subscription","description":"Whether this LLM uses subscription-based authentication. Serialized so that subscription-specific request handling survives transport to a remote agent-server.","readOnly":true,"isRequired":true,"uniqueKey":"agent_settings.oneOf.1.llm.is_subscription","typeLabel":"boolean"},"model":{"type":"string","title":"Model","description":"Model name.","default":"gpt-5.5","openhands_settings":{"depends_on":[],"prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.llm.model","typeLabel":"string"},"api_key":{"oneOf":[{"type":"string","title":"Api Key","description":"API key.","uniqueKey":"agent_settings.oneOf.1.llm.api_key.oneOf.0","typeLabel":"string"},{"type":"string","title":"Api Key","description":"API key.","format":"password","uniqueKey":"agent_settings.oneOf.1.llm.api_key.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Api Key","description":"API key.","uniqueKey":"agent_settings.oneOf.1.llm.api_key.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.api_key","typeLabel":"string | string\u003cpassword> | null"},"auth_type":{"type":"string","enum":["api_key","subscription"],"title":"Auth Type","description":"Authentication mode for the LLM.","default":"api_key","openhands_settings":{"depends_on":[],"label":"Authentication","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.llm.auth_type","typeLabel":"enum\u003cstring>"},"subscription_vendor":{"oneOf":[{"type":"string","title":"Subscription Vendor","description":"Subscription provider for subscription-backed LLM access.","const":"openai","uniqueKey":"agent_settings.oneOf.1.llm.subscription_vendor.oneOf.0","typeLabel":"string"},{"type":"null","title":"Subscription Vendor","description":"Subscription provider for subscription-backed LLM access.","uniqueKey":"agent_settings.oneOf.1.llm.subscription_vendor.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.subscription_vendor","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Custom base URL.","uniqueKey":"agent_settings.oneOf.1.llm.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Custom base URL.","uniqueKey":"agent_settings.oneOf.1.llm.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.base_url","typeLabel":"string | null"},"api_version":{"oneOf":[{"type":"string","title":"Api Version","description":"API version (e.g., Azure).","uniqueKey":"agent_settings.oneOf.1.llm.api_version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Api Version","description":"API version (e.g., Azure).","uniqueKey":"agent_settings.oneOf.1.llm.api_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.api_version","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","uniqueKey":"agent_settings.oneOf.1.llm.aws_access_key_id.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"agent_settings.oneOf.1.llm.aws_access_key_id.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"agent_settings.oneOf.1.llm.aws_access_key_id.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_access_key_id","typeLabel":"string | string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","uniqueKey":"agent_settings.oneOf.1.llm.aws_secret_access_key.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"agent_settings.oneOf.1.llm.aws_secret_access_key.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"agent_settings.oneOf.1.llm.aws_secret_access_key.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_secret_access_key","typeLabel":"string | string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","uniqueKey":"agent_settings.oneOf.1.llm.aws_session_token.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"agent_settings.oneOf.1.llm.aws_session_token.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"agent_settings.oneOf.1.llm.aws_session_token.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_session_token","typeLabel":"string | string\u003cpassword> | null"},"aws_region_name":{"oneOf":[{"type":"string","title":"Aws Region Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_region_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Region Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_region_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_region_name","typeLabel":"string | null"},"aws_profile_name":{"oneOf":[{"type":"string","title":"Aws Profile Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_profile_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_profile_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_profile_name","typeLabel":"string | null"},"aws_role_name":{"oneOf":[{"type":"string","title":"Aws Role Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_role_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Role Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_role_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_role_name","typeLabel":"string | null"},"aws_session_name":{"oneOf":[{"type":"string","title":"Aws Session Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_session_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Session Name","uniqueKey":"agent_settings.oneOf.1.llm.aws_session_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_session_name","typeLabel":"string | null"},"aws_bedrock_runtime_endpoint":{"oneOf":[{"type":"string","title":"Aws Bedrock Runtime Endpoint","uniqueKey":"agent_settings.oneOf.1.llm.aws_bedrock_runtime_endpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Bedrock Runtime Endpoint","uniqueKey":"agent_settings.oneOf.1.llm.aws_bedrock_runtime_endpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.aws_bedrock_runtime_endpoint","typeLabel":"string | null"},"openrouter_site_url":{"type":"string","title":"Openrouter Site Url","default":"https://docs.all-hands.dev/","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.openrouter_site_url","typeLabel":"string"},"openrouter_app_name":{"type":"string","title":"Openrouter App Name","default":"OpenHands","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.openrouter_app_name","typeLabel":"string"},"num_retries":{"type":"integer","minimum":0,"title":"Num Retries","default":5,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.num_retries","typeLabel":"integer"},"retry_multiplier":{"type":"number","minimum":0,"title":"Retry Multiplier","default":8,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.retry_multiplier","typeLabel":"number"},"retry_min_wait":{"type":"integer","minimum":0,"title":"Retry Min Wait","default":8,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.retry_min_wait","typeLabel":"integer"},"retry_max_wait":{"type":"integer","minimum":0,"title":"Retry Max Wait","default":64,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.retry_max_wait","typeLabel":"integer"},"timeout":{"oneOf":[{"type":"integer","title":"Timeout","description":"HTTP timeout in seconds. Default is 300s (5 minutes). Set to None to disable timeout (not recommended for production).","default":300,"minimum":0,"uniqueKey":"agent_settings.oneOf.1.llm.timeout.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Timeout","description":"HTTP timeout in seconds. Default is 300s (5 minutes). Set to None to disable timeout (not recommended for production).","default":300,"uniqueKey":"agent_settings.oneOf.1.llm.timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.timeout","typeLabel":"integer | null"},"max_message_chars":{"type":"integer","minimum":1,"title":"Max Message Chars","description":"Approx max chars in each event/content sent to the LLM.","default":30000,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.max_message_chars","typeLabel":"integer"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"Sampling temperature for response generation. Defaults to None (uses provider default temperature). Set to 0.0 for deterministic outputs, or higher values (0.7-1.0) for more creative responses.","minimum":0,"uniqueKey":"agent_settings.oneOf.1.llm.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"Sampling temperature for response generation. Defaults to None (uses provider default temperature). Set to 0.0 for deterministic outputs, or higher values (0.7-1.0) for more creative responses.","uniqueKey":"agent_settings.oneOf.1.llm.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.temperature","typeLabel":"number | null"},"top_p":{"oneOf":[{"type":"number","title":"Top P","description":"Nucleus sampling parameter. Defaults to None (uses provider default). Set to a value between 0 and 1 to control diversity of outputs.","maximum":1,"minimum":0,"uniqueKey":"agent_settings.oneOf.1.llm.top_p.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top P","description":"Nucleus sampling parameter. Defaults to None (uses provider default). Set to a value between 0 and 1 to control diversity of outputs.","uniqueKey":"agent_settings.oneOf.1.llm.top_p.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.top_p","typeLabel":"number | null"},"top_k":{"oneOf":[{"type":"number","title":"Top K","minimum":0,"uniqueKey":"agent_settings.oneOf.1.llm.top_k.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top K","uniqueKey":"agent_settings.oneOf.1.llm.top_k.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.top_k","typeLabel":"number | null"},"max_input_tokens":{"oneOf":[{"type":"integer","title":"Max Input Tokens","description":"The maximum number of input tokens. Note that this is currently unused, and the value at runtime is actually the total tokens in OpenAI (e.g. 128,000 tokens for GPT-4).","minimum":1,"uniqueKey":"agent_settings.oneOf.1.llm.max_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Input Tokens","description":"The maximum number of input tokens. Note that this is currently unused, and the value at runtime is actually the total tokens in OpenAI (e.g. 128,000 tokens for GPT-4).","uniqueKey":"agent_settings.oneOf.1.llm.max_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.max_input_tokens","typeLabel":"integer | null"},"max_output_tokens":{"oneOf":[{"type":"integer","title":"Max Output Tokens","description":"The maximum number of output tokens. This is sent to the LLM.","minimum":1,"uniqueKey":"agent_settings.oneOf.1.llm.max_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Output Tokens","description":"The maximum number of output tokens. This is sent to the LLM.","uniqueKey":"agent_settings.oneOf.1.llm.max_output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.max_output_tokens","typeLabel":"integer | null"},"model_canonical_name":{"oneOf":[{"type":"string","title":"Model Canonical Name","description":"Optional canonical model name for feature registry lookups. The OpenHands SDK maintains a model feature registry that maps model names to capabilities (e.g., vision support, prompt caching, responses API support). When using proxied or aliased model identifiers, set this field to the canonical model name (e.g., 'openai/gpt-4o') to ensure correct capability detection. If not provided, the 'model' field will be used for capability lookups.","uniqueKey":"agent_settings.oneOf.1.llm.model_canonical_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Canonical Name","description":"Optional canonical model name for feature registry lookups. The OpenHands SDK maintains a model feature registry that maps model names to capabilities (e.g., vision support, prompt caching, responses API support). When using proxied or aliased model identifiers, set this field to the canonical model name (e.g., 'openai/gpt-4o') to ensure correct capability detection. If not provided, the 'model' field will be used for capability lookups.","uniqueKey":"agent_settings.oneOf.1.llm.model_canonical_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.model_canonical_name","typeLabel":"string | null"},"api_mode":{"type":"string","enum":["auto","chat","responses"],"title":"Api Mode","description":"LLM API endpoint mode. 'auto' resolves from model metadata and SDK fallbacks; use 'chat' or 'responses' to override endpoint selection for proxy aliases and newly released models.","default":"auto","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.api_mode","typeLabel":"enum\u003cstring>"},"capability_overrides":{"additionalProperties":{"oneOf":[{"type":"boolean","uniqueKey":"agent_settings.oneOf.1.llm.capability_overrides.additionalProperties.oneOf.0","typeLabel":"boolean"},{"type":"string","uniqueKey":"agent_settings.oneOf.1.llm.capability_overrides.additionalProperties.oneOf.1","typeLabel":"string"}],"uniqueKey":"agent_settings.oneOf.1.llm.capability_overrides.additionalProperties","typeLabel":"boolean | string"},"type":"object","title":"Capability Overrides","description":"Explicit model capability overrides. Supported keys include supports_reasoning_effort, thinking_mode (adaptive, manual, none, or unknown), supports_sampling_params, supports_prompt_cache, supports_stop_words, supports_responses_api, supports_vision, and supports_prompt_cache_retention. Overrides take precedence over LiteLLM metadata and SDK fallbacks.","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.capability_overrides","typeLabel":"Capability Overrides · object"},"extra_headers":{"oneOf":[{"type":"object","title":"Extra Headers","description":"Optional HTTP headers to forward to LiteLLM requests.","additionalProperties":{"type":"string","uniqueKey":"agent_settings.oneOf.1.llm.extra_headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_settings.oneOf.1.llm.extra_headers.oneOf.0","typeLabel":"Extra Headers · object"},{"type":"null","title":"Extra Headers","description":"Optional HTTP headers to forward to LiteLLM requests.","uniqueKey":"agent_settings.oneOf.1.llm.extra_headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.extra_headers","typeLabel":"Extra Headers · object | null"},"input_cost_per_token":{"oneOf":[{"type":"number","title":"Input Cost Per Token","description":"The cost per input token. This will available in logs for user.","minimum":0,"uniqueKey":"agent_settings.oneOf.1.llm.input_cost_per_token.oneOf.0","typeLabel":"number"},{"type":"null","title":"Input Cost Per Token","description":"The cost per input token. This will available in logs for user.","uniqueKey":"agent_settings.oneOf.1.llm.input_cost_per_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.input_cost_per_token","typeLabel":"number | null"},"output_cost_per_token":{"oneOf":[{"type":"number","title":"Output Cost Per Token","description":"The cost per output token. This will available in logs for user.","minimum":0,"uniqueKey":"agent_settings.oneOf.1.llm.output_cost_per_token.oneOf.0","typeLabel":"number"},{"type":"null","title":"Output Cost Per Token","description":"The cost per output token. This will available in logs for user.","uniqueKey":"agent_settings.oneOf.1.llm.output_cost_per_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.output_cost_per_token","typeLabel":"number | null"},"ollama_base_url":{"oneOf":[{"type":"string","title":"Ollama Base Url","uniqueKey":"agent_settings.oneOf.1.llm.ollama_base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ollama Base Url","uniqueKey":"agent_settings.oneOf.1.llm.ollama_base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.ollama_base_url","typeLabel":"string | null"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses from the LLM. When enabled, the provided `on_token` callback in .completions and .responses will be invoked for each chunk of tokens.","default":false,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.stream","typeLabel":"boolean"},"drop_params":{"type":"boolean","title":"Drop Params","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.drop_params","typeLabel":"boolean"},"modify_params":{"type":"boolean","title":"Modify Params","description":"Modify params allows litellm to do transformations like adding a default message, when a message is empty.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.modify_params","typeLabel":"boolean"},"disable_vision":{"oneOf":[{"type":"boolean","title":"Disable Vision","description":"If model is vision capable, this option allows to disable image processing (useful for cost reduction).","uniqueKey":"agent_settings.oneOf.1.llm.disable_vision.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Vision","description":"If model is vision capable, this option allows to disable image processing (useful for cost reduction).","uniqueKey":"agent_settings.oneOf.1.llm.disable_vision.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.disable_vision","typeLabel":"boolean | null"},"disable_stop_word":{"oneOf":[{"type":"boolean","title":"Disable Stop Word","description":"Disable using of stop word.","default":false,"uniqueKey":"agent_settings.oneOf.1.llm.disable_stop_word.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Stop Word","description":"Disable using of stop word.","default":false,"uniqueKey":"agent_settings.oneOf.1.llm.disable_stop_word.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.disable_stop_word","typeLabel":"boolean | null"},"caching_prompt":{"type":"boolean","title":"Caching Prompt","description":"Enable caching of prompts.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.caching_prompt","typeLabel":"boolean"},"log_completions":{"type":"boolean","title":"Log Completions","description":"Enable logging of completions.","default":false,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.log_completions","typeLabel":"boolean"},"log_completions_folder":{"type":"string","title":"Log Completions Folder","description":"The folder to log LLM completions to. Required if log_completions is True.","default":"logs/completions","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.log_completions_folder","typeLabel":"string"},"custom_tokenizer":{"oneOf":[{"type":"string","title":"Custom Tokenizer","description":"A custom tokenizer to use for token counting.","uniqueKey":"agent_settings.oneOf.1.llm.custom_tokenizer.oneOf.0","typeLabel":"string"},{"type":"null","title":"Custom Tokenizer","description":"A custom tokenizer to use for token counting.","uniqueKey":"agent_settings.oneOf.1.llm.custom_tokenizer.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.custom_tokenizer","typeLabel":"string | null"},"native_tool_calling":{"type":"boolean","title":"Native Tool Calling","description":"Whether to use native tool calling.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.native_tool_calling","typeLabel":"boolean"},"force_string_serializer":{"oneOf":[{"type":"boolean","title":"Force String Serializer","description":"Force using string content serializer when sending to LLM API. If None (default), auto-detect based on model. Useful for providers that do not support list content, like HuggingFace and Groq.","uniqueKey":"agent_settings.oneOf.1.llm.force_string_serializer.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Force String Serializer","description":"Force using string content serializer when sending to LLM API. If None (default), auto-detect based on model. Useful for providers that do not support list content, like HuggingFace and Groq.","uniqueKey":"agent_settings.oneOf.1.llm.force_string_serializer.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.force_string_serializer","typeLabel":"boolean | null"},"inline_image_urls":{"oneOf":[{"type":"boolean","title":"Inline Image Urls","description":"If True, fetch any http(s) image URL in outgoing messages and inline it as a base64 ``data:`` URL before sending. If None (default), auto-detect based on model (some APIs such as Moonshot's public Kimi endpoint reject URL-formatted images and require base64). Set this explicitly when the model is reached through a proxy alias that hides the underlying provider (e.g. ``litellm_proxy/\u003ccustom-alias>``). Note: inlining only runs when ``vision_is_active()`` is True, so the alias must still be recognised as vision-capable by the SDK feature registry or proxy model metadata.","uniqueKey":"agent_settings.oneOf.1.llm.inline_image_urls.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Inline Image Urls","description":"If True, fetch any http(s) image URL in outgoing messages and inline it as a base64 ``data:`` URL before sending. If None (default), auto-detect based on model (some APIs such as Moonshot's public Kimi endpoint reject URL-formatted images and require base64). Set this explicitly when the model is reached through a proxy alias that hides the underlying provider (e.g. ``litellm_proxy/\u003ccustom-alias>``). Note: inlining only runs when ``vision_is_active()`` is True, so the alias must still be recognised as vision-capable by the SDK feature registry or proxy model metadata.","uniqueKey":"agent_settings.oneOf.1.llm.inline_image_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.inline_image_urls","typeLabel":"boolean | null"},"reasoning_effort":{"oneOf":[{"type":"string","title":"Reasoning Effort","description":"Provider-neutral reasoning effort. Common values include 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. The SDK accepts future provider values and lets LiteLLM translate them.","default":"high","enum":["low","medium","high","xhigh","none"],"uniqueKey":"agent_settings.oneOf.1.llm.reasoning_effort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoning Effort","description":"Provider-neutral reasoning effort. Common values include 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. The SDK accepts future provider values and lets LiteLLM translate them.","default":"high","uniqueKey":"agent_settings.oneOf.1.llm.reasoning_effort.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.reasoning_effort","typeLabel":"enum\u003cstring> | null"},"reasoning_summary":{"oneOf":[{"type":"string","title":"Reasoning Summary","description":"The level of detail for reasoning summaries. This is a string that can be one of 'auto', 'concise', or 'detailed'. Requires verified OpenAI organization. Only sent when explicitly set.","enum":["auto","concise","detailed"],"uniqueKey":"agent_settings.oneOf.1.llm.reasoning_summary.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoning Summary","description":"The level of detail for reasoning summaries. This is a string that can be one of 'auto', 'concise', or 'detailed'. Requires verified OpenAI organization. Only sent when explicitly set.","uniqueKey":"agent_settings.oneOf.1.llm.reasoning_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.reasoning_summary","typeLabel":"enum\u003cstring> | null"},"enable_encrypted_reasoning":{"type":"boolean","title":"Enable Encrypted Reasoning","description":"If True, ask for ['reasoning.encrypted_content'] in Responses API include.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.enable_encrypted_reasoning","typeLabel":"boolean"},"prompt_cache_retention":{"oneOf":[{"type":"string","title":"Prompt Cache Retention","description":"Retention policy for prompt cache. Only sent for supported models (GPT-5+ and GPT-4.1, excluding Azure deployments); explicitly stripped for all others.","default":"24h","uniqueKey":"agent_settings.oneOf.1.llm.prompt_cache_retention.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt Cache Retention","description":"Retention policy for prompt cache. Only sent for supported models (GPT-5+ and GPT-4.1, excluding Azure deployments); explicitly stripped for all others.","default":"24h","uniqueKey":"agent_settings.oneOf.1.llm.prompt_cache_retention.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.prompt_cache_retention","typeLabel":"string | null"},"extended_thinking_budget":{"oneOf":[{"type":"integer","title":"Extended Thinking Budget","description":"Legacy token budget for models confirmed to use manual Anthropic extended thinking. Ignored for adaptive-thinking models. Prefer reasoning_effort for new integrations.","default":200000,"uniqueKey":"agent_settings.oneOf.1.llm.extended_thinking_budget.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Extended Thinking Budget","description":"Legacy token budget for models confirmed to use manual Anthropic extended thinking. Ignored for adaptive-thinking models. Prefer reasoning_effort for new integrations.","default":200000,"uniqueKey":"agent_settings.oneOf.1.llm.extended_thinking_budget.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.extended_thinking_budget","typeLabel":"integer | null"},"seed":{"oneOf":[{"type":"integer","title":"Seed","description":"The seed to use for random number generation.","uniqueKey":"agent_settings.oneOf.1.llm.seed.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Seed","description":"The seed to use for random number generation.","uniqueKey":"agent_settings.oneOf.1.llm.seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.llm.seed","typeLabel":"integer | null"},"usage_id":{"type":"string","title":"Usage Id","description":"Unique usage identifier for the LLM. Used for registry lookups, telemetry, and spend tracking.","default":"default","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.usage_id","typeLabel":"string"},"litellm_extra_body":{"additionalProperties":true,"type":"object","title":"Litellm Extra Body","description":"Additional key-value pairs to pass to litellm's extra_body parameter. This is useful for custom inference endpoints that need additional parameters for configuration, routing, or advanced features. NOTE: Not all LLM providers support extra_body parameters. Some providers (e.g., OpenAI) may reject requests with unrecognized options. This is commonly supported by: - LiteLLM proxy servers (routing metadata, tracing) - vLLM endpoints (return_token_ids, etc.) - Custom inference clusters Examples: - Proxy routing: {'trace_version': '1.0.0', 'tags': ['agent:my-agent']} - vLLM features: {'return_token_ids': True}","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.llm.litellm_extra_body","typeLabel":"Litellm Extra Body · object"}},"type":"object","required":["is_subscription"],"title":"LLM","description":"LLM settings for the agent.","openhands_settings_section":{"key":"llm","label":"LLM","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.llm","typeLabel":"LLM · object"},"tools":{"oneOf":[{"type":"array","items":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the tool class, e.g., 'TerminalTool'. Import it from an `openhands.tools.\u003cmodule>` subpackage.","examples":["TerminalTool","FileEditorTool","TaskTrackerTool"],"isRequired":true,"uniqueKey":"agent_settings.oneOf.1.tools.oneOf.0.items.[INDEX].name","typeLabel":"string"},"params":{"additionalProperties":true,"type":"object","title":"Params","description":"Parameters for the tool's .create() method, e.g., {'working_dir': '/app'}","examples":[{"working_dir":"/workspace"}],"uniqueKey":"agent_settings.oneOf.1.tools.oneOf.0.items.[INDEX].params","typeLabel":"Params · object"}},"type":"object","required":["name"],"title":"Tool","description":"Defines a tool to be initialized for the agent.\n\nThis is only used in agent-sdk for type schema for server use.","uniqueKey":"agent_settings.oneOf.1.tools.oneOf.0.items.[INDEX]","typeLabel":"Tool · object"},"title":"Tools","description":"Tools available to the agent. None (the default) resolves to the standard exec set (see openhands.sdk.tool.defaults), plus the sub-agent tool set when enable_sub_agents is set; [] is an explicitly bare agent; a non-empty list is used exactly as given. Environment-dependent tools (browser) are injected by the serving layer, not the default.","uniqueKey":"agent_settings.oneOf.1.tools.oneOf.0","typeLabel":"Tool · object[]"},{"type":"null","title":"Tools","description":"Tools available to the agent. None (the default) resolves to the standard exec set (see openhands.sdk.tool.defaults), plus the sub-agent tool set when enable_sub_agents is set; [] is an explicitly bare agent; a non-empty list is used exactly as given. Environment-dependent tools (browser) are injected by the serving layer, not the default.","uniqueKey":"agent_settings.oneOf.1.tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.tools","typeLabel":"Tool · object[] | null"},"enable_sub_agents":{"type":"boolean","title":"Enable Sub Agents","description":"Enable sub-agent delegation via TaskToolSet.","default":false,"openhands_settings":{"depends_on":[],"label":"Enable sub-agents","prominence":"major","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.enable_sub_agents","typeLabel":"boolean"},"enable_switch_llm_tool":{"type":"boolean","title":"Enable Switch Llm Tool","description":"Enable the built-in switch_llm tool for switching between saved LLM profiles.","default":true,"openhands_settings":{"depends_on":[],"label":"Enable LLM switching tool","prominence":"minor","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.enable_switch_llm_tool","typeLabel":"boolean"},"tool_concurrency_limit":{"type":"integer","minimum":1,"title":"Tool Concurrency Limit","description":"Maximum number of tool calls to execute concurrently per agent step. 1 = sequential (default). Values > 1 enable parallel tool calls; concurrent tools share the conversation object, filesystem, and working directory, so mutations to shared state may race.","default":1,"openhands_settings":{"depends_on":[],"label":"Parallel tool calls","prominence":"major","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.tool_concurrency_limit","typeLabel":"integer"},"mcp_config":{"additionalProperties":{"properties":{"url":{"oneOf":[{"type":"string","title":"Url","minLength":1,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.url","typeLabel":"string | null"},"transport":{"oneOf":[{"type":"string","title":"Transport","enum":["stdio","http","sse","streamable-http"],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.transport.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transport","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.transport.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.transport","typeLabel":"enum\u003cstring> | null"},"command":{"oneOf":[{"type":"string","title":"Command","minLength":1,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.command.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.command","typeLabel":"string | null"},"args":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.args.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Args","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.args.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Args","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.args.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.args","typeLabel":"string[] | null"},"env":{"oneOf":[{"type":"object","title":"Env","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.env.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.env.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.env.oneOf.0","typeLabel":"Env · object"},{"type":"null","title":"Env","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.env.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.env","typeLabel":"Env · object | null"},"cwd":{"oneOf":[{"type":"string","title":"Cwd","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.cwd.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cwd","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.cwd.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.cwd","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.description","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","title":"Icon","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.icon.oneOf.0","typeLabel":"string"},{"type":"null","title":"Icon","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.icon.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.icon","typeLabel":"string | null"},"timeout":{"oneOf":[{"type":"number","title":"Timeout","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.timeout.oneOf.0","typeLabel":"number"},{"type":"null","title":"Timeout","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.timeout","typeLabel":"number | null"},"sse_read_timeout":{"oneOf":[{"type":"number","title":"Sse Read Timeout","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.sse_read_timeout.oneOf.0","typeLabel":"number"},{"type":"null","title":"Sse Read Timeout","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.sse_read_timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.sse_read_timeout","typeLabel":"number | null"},"keep_alive":{"oneOf":[{"type":"boolean","title":"Keep Alive","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.keep_alive.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Keep Alive","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.keep_alive.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.keep_alive","typeLabel":"boolean | null"},"headers":{"oneOf":[{"type":"object","title":"Headers","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.headers.oneOf.0","typeLabel":"Headers · object"},{"type":"null","title":"Headers","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.headers","typeLabel":"Headers · object | null"},"auth":{"oneOf":[{"type":"object","title":"MCPNoneAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"none","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.0.strategy","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.0","typeLabel":"MCPNoneAuthCredential · object"},{"type":"object","title":"MCPApiKeyAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"api_key","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.strategy","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.value","typeLabel":"string | null"},"header_name":{"oneOf":[{"type":"string","title":"Header Name","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.header_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Header Name","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.header_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1.header_name","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.1","typeLabel":"MCPApiKeyAuthCredential · object"},{"type":"object","title":"MCPBearerAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"bearer","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.2.strategy","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.2.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.2.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.2.value","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.2","typeLabel":"MCPBearerAuthCredential · object"},{"type":"object","title":"MCPBasicAuthCredential","required":["strategy","username"],"properties":{"strategy":{"type":"string","const":"basic","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.3.strategy","typeLabel":"string"},"username":{"type":"string","title":"Username","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.3.username","typeLabel":"string"},"password":{"oneOf":[{"type":"string","title":"Password","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.3.password.oneOf.0","typeLabel":"string"},{"type":"null","title":"Password","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.3.password.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.3.password","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.3","typeLabel":"MCPBasicAuthCredential · object"},{"type":"object","title":"MCPHeaderAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"header","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.4.strategy","typeLabel":"string"},"headers":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties","typeLabel":"string | null"},"type":"object","title":"Headers","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.4.headers","typeLabel":"Headers · object"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.4","typeLabel":"MCPHeaderAuthCredential · object"},{"type":"object","title":"MCPOAuthAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"oauth2","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.strategy","typeLabel":"string"},"authentication":{"oneOf":[{"type":"object","title":"MCPOAuthAuthentication","required":["type"],"properties":{"type":{"type":"string","const":"oauth","title":"Type","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.type","typeLabel":"string"},"client_auth_method":{"oneOf":[{"type":"string","title":"Client Auth Method","enum":["none","client_secret_post","client_secret_basic","private_key_jwt"],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Client Auth Method","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method","typeLabel":"enum\u003cstring> | null"},"scopes":{"oneOf":[{"type":"string","title":"Scopes","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Scopes","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.1","typeLabel":"string[]"},{"type":"null","title":"Scopes","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes","typeLabel":"string | string[] | null"},"client_name":{"oneOf":[{"type":"string","title":"Client Name","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Name","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name","typeLabel":"string | null"},"client_metadata_url":{"oneOf":[{"type":"string","title":"Client Metadata Url","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Metadata Url","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url","typeLabel":"string | null"},"client_id":{"oneOf":[{"type":"string","title":"Client Id","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Id","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id","typeLabel":"string | null"},"client_secret":{"oneOf":[{"type":"string","title":"Client Secret","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Secret","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret","typeLabel":"string | null"},"additional_client_metadata":{"oneOf":[{"type":"object","title":"Additional Client Metadata","additionalProperties":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata.oneOf.0","typeLabel":"Additional Client Metadata · object"},{"type":"null","title":"Additional Client Metadata","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata","typeLabel":"Additional Client Metadata · object | null"}},"additionalProperties":false,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0","typeLabel":"MCPOAuthAuthentication · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.authentication","typeLabel":"MCPOAuthAuthentication · object | null"},"state":{"oneOf":[{"type":"object","title":"MCPOAuthState","properties":{"tokens":{"oneOf":[{"type":"object","title":"MCPOAuthTokenState","properties":{"access_token":{"oneOf":[{"type":"string","title":"Access Token","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Access Token","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token","typeLabel":"string | null"},"refresh_token":{"oneOf":[{"type":"string","title":"Refresh Token","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Refresh Token","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0","typeLabel":"MCPOAuthTokenState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens","typeLabel":"MCPOAuthTokenState · object | null"},"client_info":{"oneOf":[{"type":"object","title":"MCPOAuthClientInfoState","properties":{"client_secret":{"oneOf":[{"type":"string","title":"Client Secret","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Secret","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0","typeLabel":"MCPOAuthClientInfoState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info","typeLabel":"MCPOAuthClientInfoState · object | null"},"token_expires_at":{"oneOf":[{"type":"number","title":"Token Expires At","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at.oneOf.0","typeLabel":"number"},{"type":"null","title":"Token Expires At","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at","typeLabel":"number | null"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0","typeLabel":"MCPOAuthState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5.state","typeLabel":"MCPOAuthState · object | null"}},"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.5","typeLabel":"MCPOAuthAuthCredential · object"},{"type":"null","title":"Auth","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth.oneOf.6","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.auth","typeLabel":"MCPNoneAuthCredential · object | MCPApiKeyAuthCredential · object | MCPBearerAuthCredential · object | MCPBasicAuthCredential · object | MCPHeaderAuthCredential · object | MCPOAuthAuthCredential · object | null"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether this server is exposed to the agent. A disabled server stays fully configured -- including its secrets -- but is skipped when MCP tools are created and when servers are forwarded to an ACP subprocess.","default":true,"uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties.enabled","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","title":"MCPServer","description":"One MCP server in the settings DataModel.","uniqueKey":"agent_settings.oneOf.1.mcp_config.additionalProperties","typeLabel":"MCPServer · object"},"type":"object","title":"Mcp Config","description":"MCP servers available to the agent.","openhands_settings":{"depends_on":[],"label":"MCP servers","prominence":"minor","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.mcp_config","typeLabel":"Mcp Config · object"},"agent_context":{"properties":{"skills":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].name","typeLabel":"string"},"content":{"type":"string","title":"Content","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].content","typeLabel":"string"},"trigger":{"oneOf":[{"type":"object","title":"KeywordTrigger","description":"Trigger for keyword-based skills.\n\nThese skills are activated when specific keywords appear in the user's query.","required":["keywords"],"properties":{"keywords":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.0.keywords.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Keywords","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.0.keywords","typeLabel":"string[]"},"type":{"type":"string","const":"keyword","title":"Type","default":"keyword","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.0.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.0","typeLabel":"KeywordTrigger · object"},{"type":"object","title":"TaskTrigger","description":"Trigger for task-specific skills.\n\nThese skills are activated for specific task types and can modify prompts.","required":["triggers"],"properties":{"triggers":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.1.triggers.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Triggers","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.1.triggers","typeLabel":"string[]"},"type":{"type":"string","const":"task","title":"Type","default":"task","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.1.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.1","typeLabel":"TaskTrigger · object"},{"type":"object","title":"PathTrigger","description":"Trigger for path-scoped skills (\"rules\").\n\nThese skills are activated when the agent touches a file whose path matches\none of the ``paths`` glob patterns (gitignore-style ``**`` semantics).","required":["paths"],"properties":{"paths":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.2.paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.2.paths","typeLabel":"string[]"},"type":{"type":"string","const":"path","title":"Type","default":"path","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.2.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.2","typeLabel":"PathTrigger · object"},{"type":"null","title":"Trigger","description":"Trigger determines when skill content is auto-injected. None = no auto-injection (for AgentSkills: agent reads on demand; for legacy: full content always in system prompt). KeywordTrigger = auto-inject when keywords appear in user messages. TaskTrigger = auto-inject for specific tasks, may require user input.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger.oneOf.3","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].trigger","typeLabel":"KeywordTrigger · object | TaskTrigger · object | PathTrigger · object | null"},"source":{"oneOf":[{"type":"string","title":"Source","description":"The source path or identifier of the skill. When it is None, it is treated as a programmatically defined skill.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","description":"The source path or identifier of the skill. When it is None, it is treated as a programmatically defined skill.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].source.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].source","typeLabel":"string | null"},"mcp_tools":{"oneOf":[{"type":"object","title":"Mcp Tools","description":"MCP servers for the skill (repo skills only).","additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].mcp_tools.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].mcp_tools.oneOf.0","typeLabel":"Mcp Tools · object"},{"type":"null","title":"Mcp Tools","description":"MCP servers for the skill (repo skills only).","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].mcp_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].mcp_tools","typeLabel":"Mcp Tools · object | null"},"inputs":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the input parameter","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].inputs.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","title":"Description","description":"Description of the input parameter","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].inputs.items.[INDEX].description","typeLabel":"string"}},"type":"object","required":["name","description"],"title":"InputMetadata","description":"Metadata for task skill inputs.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].inputs.items.[INDEX]","typeLabel":"InputMetadata · object"},"type":"array","title":"Inputs","description":"Input metadata for the skill (task skills only)","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].inputs","typeLabel":"InputMetadata · object[]"},"is_agentskills_format":{"type":"boolean","title":"Is Agentskills Format","description":"Whether this skill was loaded from a SKILL.md file following the AgentSkills standard. AgentSkills-format skills use progressive disclosure: always listed in \u003cavailable_skills> with name, description, and location. If the skill also has triggers, content is auto-injected when triggered AND agent can read file anytime.","default":false,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].is_agentskills_format","typeLabel":"boolean"},"version":{"type":"string","title":"Version","description":"Skill version (AgentSkills standard field).","default":"1.0.0","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].version","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"A brief description of what the skill does and when to use it. Descriptions exceeding MAX_DESCRIPTION_LENGTH are truncated with a notice pointing to the skill's source path.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"A brief description of what the skill does and when to use it. Descriptions exceeding MAX_DESCRIPTION_LENGTH are truncated with a notice pointing to the skill's source path.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].description","typeLabel":"string | null"},"license":{"oneOf":[{"type":"string","title":"License","description":"The license under which the skill is distributed. AgentSkills standard field (e.g., 'Apache-2.0', 'MIT').","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].license.oneOf.0","typeLabel":"string"},{"type":"null","title":"License","description":"The license under which the skill is distributed. AgentSkills standard field (e.g., 'Apache-2.0', 'MIT').","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].license.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].license","typeLabel":"string | null"},"compatibility":{"oneOf":[{"type":"string","title":"Compatibility","description":"Environment requirements or compatibility notes for the skill. AgentSkills standard field (e.g., 'Requires git and docker').","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].compatibility.oneOf.0","typeLabel":"string"},{"type":"null","title":"Compatibility","description":"Environment requirements or compatibility notes for the skill. AgentSkills standard field (e.g., 'Requires git and docker').","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].compatibility.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].compatibility","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Arbitrary key-value metadata for the skill. AgentSkills standard field for extensibility.","additionalProperties":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].metadata.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Arbitrary key-value metadata for the skill. AgentSkills standard field for extensibility.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].metadata","typeLabel":"Metadata · object | null"},"allowed_tools":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].allowed_tools.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Allowed Tools","description":"List of pre-approved tools for this skill. AgentSkills standard field (parsed from space-delimited string).","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].allowed_tools.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Allowed Tools","description":"List of pre-approved tools for this skill. AgentSkills standard field (parsed from space-delimited string).","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].allowed_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].allowed_tools","typeLabel":"string[] | null"},"disable_model_invocation":{"type":"boolean","title":"Disable Model Invocation","description":"Whether this skill can only be activated by trigger matching and should not be advertised to the model for direct invocation.","default":false,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].disable_model_invocation","typeLabel":"boolean"},"resources":{"oneOf":[{"type":"object","title":"SkillResources","description":"Resource directories for the skill (scripts/, references/, assets/). AgentSkills standard field. Only populated for SKILL.md directory format.","required":["skill_root"],"properties":{"skill_root":{"type":"string","title":"Skill Root","description":"Root directory of the skill (absolute path)","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.skill_root","typeLabel":"string"},"scripts":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.scripts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Scripts","description":"List of script files in scripts/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.scripts","typeLabel":"string[]"},"references":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.references.items.[INDEX]","typeLabel":"string"},"type":"array","title":"References","description":"List of reference files in references/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.references","typeLabel":"string[]"},"assets":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.assets.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Assets","description":"List of asset files in assets/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0.assets","typeLabel":"string[]"}},"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.0","typeLabel":"SkillResources · object"},{"type":"null","description":"Resource directories for the skill (scripts/, references/, assets/). AgentSkills standard field. Only populated for SKILL.md directory format.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX].resources","typeLabel":"SkillResources · object | null"}},"type":"object","required":["name","content"],"title":"Skill","description":"A skill provides specialized knowledge or functionality.\n\nSkill behavior depends on format (is_agentskills_format) and trigger:\n\nAgentSkills format (SKILL.md files):\n- Always listed in \u003cavailable_skills> with name, description, location\n- Agent reads full content on demand (progressive disclosure)\n- If has triggers: content is ALSO auto-injected when triggered\n\nLegacy OpenHands format:\n- With triggers: Listed in \u003cavailable_skills>, content injected on trigger\n- Without triggers (None): Full content in \u003cREPO_CONTEXT>, always active\n\nThis model supports both OpenHands-specific fields and AgentSkills standard\nfields (https://agentskills.io/specification) for cross-platform compatibility.","uniqueKey":"agent_settings.oneOf.1.agent_context.skills.items.[INDEX]","typeLabel":"Skill · object"},"type":"array","title":"Skills","description":"List of available skills that can extend the user's input.","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.skills","typeLabel":"Skill · object[]"},"system_message_suffix":{"oneOf":[{"type":"string","title":"System Message Suffix","description":"Optional suffix to append to the system prompt.","uniqueKey":"agent_settings.oneOf.1.agent_context.system_message_suffix.oneOf.0","typeLabel":"string"},{"type":"null","title":"System Message Suffix","description":"Optional suffix to append to the system prompt.","uniqueKey":"agent_settings.oneOf.1.agent_context.system_message_suffix.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.system_message_suffix","typeLabel":"string | null"},"user_message_suffix":{"oneOf":[{"type":"string","title":"User Message Suffix","description":"Optional suffix to append to the user's message.","uniqueKey":"agent_settings.oneOf.1.agent_context.user_message_suffix.oneOf.0","typeLabel":"string"},{"type":"null","title":"User Message Suffix","description":"Optional suffix to append to the user's message.","uniqueKey":"agent_settings.oneOf.1.agent_context.user_message_suffix.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.user_message_suffix","typeLabel":"string | null"},"load_user_skills":{"type":"boolean","title":"Load User Skills","description":"Whether to automatically load user skills from ~/.openhands/skills/ and ~/.openhands/microagents/ (for backward compatibility). ","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.load_user_skills","typeLabel":"boolean"},"load_public_skills":{"type":"boolean","title":"Load Public Skills","description":"Whether to automatically load skills from the public OpenHands skills repository at https://github.com/OpenHands/extensions. This allows you to get the latest skills without SDK updates.","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.load_public_skills","typeLabel":"boolean"},"marketplace_path":{"oneOf":[{"type":"string","title":"Marketplace Path","description":"Relative marketplace JSON path within the public skills repository. Set to None to load all public skills without marketplace filtering.","default":"marketplaces/default.json","uniqueKey":"agent_settings.oneOf.1.agent_context.marketplace_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Marketplace Path","description":"Relative marketplace JSON path within the public skills repository. Set to None to load all public skills without marketplace filtering.","default":"marketplaces/default.json","uniqueKey":"agent_settings.oneOf.1.agent_context.marketplace_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.marketplace_path","typeLabel":"string | null"},"registered_marketplaces":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Identifier for this marketplace registration","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].name","typeLabel":"string"},"source":{"type":"string","title":"Source","description":"Marketplace source: 'github:owner/repo', git URL, or local path","isRequired":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].source","typeLabel":"string"},"ref":{"oneOf":[{"type":"string","title":"Ref","description":"Optional branch, tag, or commit for git sources","uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].ref.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ref","description":"Optional branch, tag, or commit for git sources","uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].ref","typeLabel":"string | null"},"repo_path":{"oneOf":[{"type":"string","title":"Repo Path","description":"Subdirectory path within the git repository containing the marketplace. Only relevant for git sources.","uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].repo_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Repo Path","description":"Subdirectory path within the git repository containing the marketplace. Only relevant for git sources.","uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].repo_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].repo_path","typeLabel":"string | null"},"auto_load":{"oneOf":[{"type":"boolean","title":"Auto Load","description":"Whether to load marketplace plugins and standalone skills at conversation start. Use True for all, False or [] for none, or a list of plugin/skill names for selective loading.","default":false,"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].auto_load.oneOf.0","typeLabel":"boolean"},{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].auto_load.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Auto Load","description":"Whether to load marketplace plugins and standalone skills at conversation start. Use True for all, False or [] for none, or a list of plugin/skill names for selective loading.","default":false,"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].auto_load.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX].auto_load","typeLabel":"boolean | string[]"}},"type":"object","required":["name","source"],"title":"MarketplaceRegistration","description":"Registration for a marketplace source used for plugin resolution.","uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces.items.[INDEX]","typeLabel":"MarketplaceRegistration · object"},"type":"array","title":"Registered Marketplaces","description":"Marketplace registrations for plugin resolution. Registrations with auto_load=True or a list of plugin names are resolved by LocalConversation at startup.","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.registered_marketplaces","typeLabel":"MarketplaceRegistration · object[]"},"load_project_skills":{"type":"boolean","title":"Load Project Skills","description":"Whether to automatically load project skills from the conversation workspace (e.g. .openhands/skills/, AGENTS.md). Unlike load_user_skills / load_public_skills, this flag is not resolved by AgentContext itself (the workspace path is unknown at validation time); LocalConversation resolves it lazily on the first send_message() / run(), when the workspace is known. Also unlike load_user_skills / load_public_skills (which yield to explicit skills on a name conflict), resolved project skills are authoritative: a project skill overrides a same-named skill already present in `skills`.","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.load_project_skills","typeLabel":"boolean"},"load_memory":{"type":"boolean","title":"Load Memory","description":"Whether to load persistent agent memory (MEMORY.md indexes under ~/.openhands/memory/ and \u003cworkspace>/.openhands/memory/) into the system prompt. Like load_project_skills, this flag is not resolved by AgentContext itself (the workspace path is unknown at validation time); LocalConversation resolves it lazily on the first send_message() / run() and stores the result in memory_context.","default":false,"acp_compatible":true,"openhands_settings":{"depends_on":[],"label":"Persistent memory","prominence":"major"},"uniqueKey":"agent_settings.oneOf.1.agent_context.load_memory","typeLabel":"boolean"},"disabled_skills":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.1.agent_context.disabled_skills.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Disabled Skills","description":"Names of skills to EXCLUDE from this context — a deny-list applied after every skill source is loaded (auto-loaded user/public, explicit, and lazily-loaded project skills). A listed name absent from the loaded set is a harmless no-op. [] (the default) keeps every skill. This is the single, drift-tolerant skill-selection mechanism (agent profiles set it from their own deny-list; #4017).","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.disabled_skills","typeLabel":"string[]"},"secrets":{"oneOf":[{"type":"object","title":"Secrets","description":"Dictionary mapping secret keys to values or secret sources. Secrets are used for authentication and sensitive data handling. Values can be either strings or SecretSource instances (str | SecretSource).","additionalProperties":true,"uniqueKey":"agent_settings.oneOf.1.agent_context.secrets.oneOf.0","typeLabel":"Secrets · object"},{"type":"null","title":"Secrets","description":"Dictionary mapping secret keys to values or secret sources. Secrets are used for authentication and sensitive data handling. Values can be either strings or SecretSource instances (str | SecretSource).","uniqueKey":"agent_settings.oneOf.1.agent_context.secrets.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.secrets","typeLabel":"Secrets · object | null"},"current_datetime":{"oneOf":[{"type":"string","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","format":"date-time","uniqueKey":"agent_settings.oneOf.1.agent_context.current_datetime.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"string","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","uniqueKey":"agent_settings.oneOf.1.agent_context.current_datetime.oneOf.1","typeLabel":"string"},{"type":"null","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","uniqueKey":"agent_settings.oneOf.1.agent_context.current_datetime.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.agent_context.current_datetime","typeLabel":"string\u003cdate-time> | string | null"}},"type":"object","title":"AgentContext","description":"Context for the agent (skills, secrets, message suffixes).","openhands_settings_section":{"key":"agent_context","label":"Memory","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.agent_context","typeLabel":"AgentContext · object"},"condenser":{"oneOf":[{"type":"object","title":"LLMSummarizingCondenserSettings","description":"Settings for the default LLM summarizing condenser.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Enable conversation memory condensation.","default":true,"openhands_settings":{"depends_on":[],"label":"Enable memory condensation","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.enabled","typeLabel":"boolean"},"max_size":{"type":"integer","minimum":20,"title":"Max Size","description":"Maximum number of events kept before the condenser runs. Kept on the base settings class for compatibility; concrete condenser-settings variants may opt out when this does not apply.","default":240,"openhands_settings":{"depends_on":["enabled"],"label":"Max size","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.max_size","typeLabel":"integer"},"condenser_kind":{"type":"string","const":"llm_summarizing","title":"Condenser Kind","description":"Discriminator for the condenser settings union. ``'llm_summarizing'`` selects the default LLM summarizing condenser.","default":"llm_summarizing","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.condenser_kind","typeLabel":"string"},"max_tokens":{"oneOf":[{"type":"integer","title":"Max Tokens","description":"Maximum number of tokens allowed before the condenser runs. When unset, condensation is only based on event count.","minimum":0,"exclusiveMinimum":true,"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.max_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Tokens","description":"Maximum number of tokens allowed before the condenser runs. When unset, condensation is only based on event count.","uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.max_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.max_tokens","typeLabel":"integer | null"},"keep_first":{"type":"integer","minimum":0,"title":"Keep First","description":"Minimum number of initial events to preserve before condensation.","default":2,"openhands_settings":{"depends_on":["enabled"],"label":"Keep first","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.keep_first","typeLabel":"integer"},"minimum_progress":{"type":"number","exclusiveMaximum":1,"exclusiveMinimum":0,"title":"Minimum Progress","description":"Minimum fraction of events that must be condensed for condensation to be considered successful.","default":0.1,"openhands_settings":{"depends_on":["enabled"],"label":"Minimum progress","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.minimum_progress","typeLabel":"number"},"hard_context_reset_max_retries":{"type":"integer","exclusiveMinimum":0,"title":"Hard Context Reset Max Retries","description":"Number of hard context reset attempts before raising an error.","default":5,"openhands_settings":{"depends_on":["enabled"],"label":"Hard reset retries","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.hard_context_reset_max_retries","typeLabel":"integer"},"hard_context_reset_context_scaling":{"type":"number","exclusiveMaximum":1,"exclusiveMinimum":0,"title":"Hard Context Reset Context Scaling","description":"Factor used to reduce event string size after a hard context reset summarization failure.","default":0.8,"openhands_settings":{"depends_on":["enabled"],"label":"Hard reset scaling","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0.hard_context_reset_context_scaling","typeLabel":"number"}},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.0","typeLabel":"LLMSummarizingCondenserSettings · object"},{"type":"object","title":"NoOpCondenserSettings","description":"Settings for a condenser that leaves conversation views unchanged.","properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Enable conversation memory condensation.","default":true,"openhands_settings":{"depends_on":[],"label":"Enable memory condensation","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.1.enabled","typeLabel":"boolean"},"condenser_kind":{"type":"string","const":"no_op","title":"Condenser Kind","description":"Discriminator for the condenser settings union. ``'no_op'`` selects a condenser that leaves conversation views unchanged.","default":"no_op","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.1.condenser_kind","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.1.condenser.oneOf.1","typeLabel":"NoOpCondenserSettings · object"}],"uniqueKey":"agent_settings.oneOf.1.condenser","typeLabel":"LLMSummarizingCondenserSettings · object | NoOpCondenserSettings · object"},"verification":{"properties":{"critic_enabled":{"type":"boolean","title":"Critic Enabled","description":"Enable critic evaluation for the agent.","default":false,"openhands_settings":{"depends_on":[],"label":"Enable critic","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.verification.critic_enabled","typeLabel":"boolean"},"critic_mode":{"type":"string","enum":["finish_and_message","all_actions"],"title":"Critic Mode","description":"When critic evaluation should run.","default":"finish_and_message","openhands_settings":{"depends_on":["critic_enabled"],"label":"Critic mode","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.verification.critic_mode","typeLabel":"enum\u003cstring>"},"enable_iterative_refinement":{"type":"boolean","title":"Enable Iterative Refinement","description":"Automatically retry tasks when critic scores fall below the threshold.","default":false,"openhands_settings":{"depends_on":["critic_enabled"],"label":"Enable iterative refinement","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.verification.enable_iterative_refinement","typeLabel":"boolean"},"critic_threshold":{"type":"number","maximum":1,"minimum":0,"title":"Critic Threshold","description":"Critic success threshold used for iterative refinement.","default":0.6,"openhands_settings":{"depends_on":["critic_enabled","enable_iterative_refinement"],"label":"Critic threshold","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.verification.critic_threshold","typeLabel":"number"},"max_refinement_iterations":{"type":"integer","minimum":1,"title":"Max Refinement Iterations","description":"Maximum number of refinement attempts after critic feedback.","default":3,"openhands_settings":{"depends_on":["critic_enabled","enable_iterative_refinement"],"label":"Max refinement iterations","prominence":"minor"},"uniqueKey":"agent_settings.oneOf.1.verification.max_refinement_iterations","typeLabel":"integer"},"critic_server_url":{"oneOf":[{"type":"string","title":"Critic Server Url","description":"Override the critic service URL. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.1.verification.critic_server_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Critic Server Url","description":"Override the critic service URL. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.1.verification.critic_server_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.verification.critic_server_url","typeLabel":"string | null"},"critic_model_name":{"oneOf":[{"type":"string","title":"Critic Model Name","description":"Override the critic model name. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.1.verification.critic_model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Critic Model Name","description":"Override the critic model name. When None, the APIBasedCritic default is used.","uniqueKey":"agent_settings.oneOf.1.verification.critic_model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.1.verification.critic_model_name","typeLabel":"string | null"},"critic_api_key":{"title":"Critic Api Key","description":"API key used to authenticate with the critic service. When None, the LLM's ``api_key`` is reused, which preserves the auto-configuration path for the All-Hands LLM proxy.","openhands_settings":{"depends_on":["critic_enabled"],"label":"Critic API Key","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.1.verification.critic_api_key","typeLabel":"any"}},"type":"object","title":"VerificationSettings","description":"Verification settings for the agent critic.","openhands_settings_section":{"key":"verification","label":"Verification","variant":"openhands"},"uniqueKey":"agent_settings.oneOf.1.verification","typeLabel":"VerificationSettings · object"}},"uniqueKey":"agent_settings.oneOf.1","typeLabel":"LLMAgentSettings · object"},{"type":"object","title":"ACPAgentSettings","description":"Settings for an ACP (Agent Client Protocol) agent.\n\n``create_agent()`` returns an :class:`ACPAgent` that delegates to a\nsubprocess ACP server. The ACP server manages its own system prompt,\ntools, MCP, and (primary) LLM calls; those fields from\n:class:`OpenHandsAgentSettings` do not apply here.\n\n``ACPAgent`` uses the :attr:`llm` field purely for cost/token attribution,\nnever for LLM requests; :attr:`acp_model` is the model identity. Any\ncredentials set on it (``llm.api_key`` / ``llm.base_url``) are ignored —\nprovider credentials ride the conversation secrets channel\n(``request.secrets`` / ``agent_context.secrets`` → ``state.secret_registry``)\nkeyed by the provider's env var name (:attr:`api_key_env_var`).","properties":{"schema_version":{"type":"integer","minimum":1,"title":"Schema Version","default":5,"uniqueKey":"agent_settings.oneOf.2.schema_version","typeLabel":"integer"},"agent_kind":{"type":"string","const":"acp","title":"Agent Kind","description":"Discriminator for the ``AgentSettings`` union. ``'acp'`` selects an ACP-delegating agent.","default":"acp","uniqueKey":"agent_settings.oneOf.2.agent_kind","typeLabel":"string"},"acp_server":{"type":"string","enum":["claude-code","codex","gemini-cli","custom"],"title":"Acp Server","description":"Which ACP-compatible backend to launch. Each choice maps to a default subprocess command (see ``acp_command`` to override).","default":"claude-code","openhands_settings":{"depends_on":[],"label":"ACP server","prominence":"critical"},"openhands_settings_section":{"key":"acp","label":"ACP (Agent Client Protocol)","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.acp_server","typeLabel":"enum\u003cstring>"},"acp_command":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.acp_command.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Acp Command","description":"Optional explicit command to launch the ACP subprocess. Leave empty to use the default for :attr:`acp_server` (e.g. ``npx -y @agentclientprotocol/claude-agent-acp`` for ``claude-code``). Must be set when :attr:`acp_server` is ``'custom'``.","openhands_settings":{"depends_on":[],"label":"ACP command (custom override)","prominence":"minor"},"openhands_settings_section":{"key":"acp","label":"ACP (Agent Client Protocol)","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.acp_command","typeLabel":"string[]"},"acp_args":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.acp_args.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Acp Args","description":"Additional arguments appended to the ACP server command.","openhands_settings":{"depends_on":[],"label":"ACP extra args","prominence":"minor"},"openhands_settings_section":{"key":"acp","label":"ACP (Agent Client Protocol)","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.acp_args","typeLabel":"string[]"},"acp_model":{"oneOf":[{"type":"string","title":"Acp Model","description":"Model identifier for the ACP server to use (e.g. ``'sonnet'`` or ``'gpt-5.5'``). Applied via the protocol — set_config_option(model) for configOptions-based servers (codex, claude), else set_session_model. Leave blank to let the server pick its default.","uniqueKey":"agent_settings.oneOf.2.acp_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Acp Model","description":"Model identifier for the ACP server to use (e.g. ``'sonnet'`` or ``'gpt-5.5'``). Applied via the protocol — set_config_option(model) for configOptions-based servers (codex, claude), else set_session_model. Leave blank to let the server pick its default.","uniqueKey":"agent_settings.oneOf.2.acp_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.acp_model","typeLabel":"string | null"},"acp_session_mode":{"oneOf":[{"type":"string","title":"Acp Session Mode","description":"Session mode ID (e.g. ``bypassPermissions``). Leave blank to auto-detect from the ACP server type.","uniqueKey":"agent_settings.oneOf.2.acp_session_mode.oneOf.0","typeLabel":"string"},{"type":"null","title":"Acp Session Mode","description":"Session mode ID (e.g. ``bypassPermissions``). Leave blank to auto-detect from the ACP server type.","uniqueKey":"agent_settings.oneOf.2.acp_session_mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.acp_session_mode","typeLabel":"string | null"},"acp_prompt_timeout":{"type":"number","exclusiveMinimum":0,"title":"Acp Prompt Timeout","description":"Inactivity timeout (seconds) for a single ACP prompt() round-trip. The deadline resets on every update from the ACP server, so a steadily-progressing agent keeps running; the prompt is only aborted after this many seconds with no activity at all.","default":1800,"openhands_settings":{"depends_on":[],"label":"ACP prompt inactivity timeout (seconds)","prominence":"minor"},"openhands_settings_section":{"key":"acp","label":"ACP (Agent Client Protocol)","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.acp_prompt_timeout","typeLabel":"number"},"acp_startup_timeout":{"type":"number","exclusiveMinimum":0,"title":"Acp Startup Timeout","description":"Timeout (seconds) for ACP server startup: spawning the subprocess, the initialize/authenticate handshake, and new_session()/load_session(). A hard deadline, unlike acp_prompt_timeout, since startup has no intermediate progress signal to reset it against.","default":90,"openhands_settings":{"depends_on":[],"label":"ACP startup timeout (seconds)","prominence":"minor"},"openhands_settings_section":{"key":"acp","label":"ACP (Agent Client Protocol)","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.acp_startup_timeout","typeLabel":"number"},"mcp_config":{"additionalProperties":{"properties":{"url":{"oneOf":[{"type":"string","title":"Url","minLength":1,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.url","typeLabel":"string | null"},"transport":{"oneOf":[{"type":"string","title":"Transport","enum":["stdio","http","sse","streamable-http"],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.transport.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transport","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.transport.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.transport","typeLabel":"enum\u003cstring> | null"},"command":{"oneOf":[{"type":"string","title":"Command","minLength":1,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.command.oneOf.0","typeLabel":"string"},{"type":"null","title":"Command","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.command.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.command","typeLabel":"string | null"},"args":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.args.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Args","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.args.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Args","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.args.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.args","typeLabel":"string[] | null"},"env":{"oneOf":[{"type":"object","title":"Env","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.env.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.env.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.env.oneOf.0","typeLabel":"Env · object"},{"type":"null","title":"Env","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.env.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.env","typeLabel":"Env · object | null"},"cwd":{"oneOf":[{"type":"string","title":"Cwd","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.cwd.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cwd","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.cwd.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.cwd","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.description","typeLabel":"string | null"},"icon":{"oneOf":[{"type":"string","title":"Icon","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.icon.oneOf.0","typeLabel":"string"},{"type":"null","title":"Icon","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.icon.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.icon","typeLabel":"string | null"},"timeout":{"oneOf":[{"type":"number","title":"Timeout","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.timeout.oneOf.0","typeLabel":"number"},{"type":"null","title":"Timeout","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.timeout","typeLabel":"number | null"},"sse_read_timeout":{"oneOf":[{"type":"number","title":"Sse Read Timeout","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.sse_read_timeout.oneOf.0","typeLabel":"number"},{"type":"null","title":"Sse Read Timeout","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.sse_read_timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.sse_read_timeout","typeLabel":"number | null"},"keep_alive":{"oneOf":[{"type":"boolean","title":"Keep Alive","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.keep_alive.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Keep Alive","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.keep_alive.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.keep_alive","typeLabel":"boolean | null"},"headers":{"oneOf":[{"type":"object","title":"Headers","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.headers.oneOf.0.additionalProperties","typeLabel":"string | null"},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.headers.oneOf.0","typeLabel":"Headers · object"},{"type":"null","title":"Headers","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.headers","typeLabel":"Headers · object | null"},"auth":{"oneOf":[{"type":"object","title":"MCPNoneAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"none","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.0.strategy","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.0","typeLabel":"MCPNoneAuthCredential · object"},{"type":"object","title":"MCPApiKeyAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"api_key","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.strategy","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.value","typeLabel":"string | null"},"header_name":{"oneOf":[{"type":"string","title":"Header Name","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.header_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Header Name","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.header_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1.header_name","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.1","typeLabel":"MCPApiKeyAuthCredential · object"},{"type":"object","title":"MCPBearerAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"bearer","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.2.strategy","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.2.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.2.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.2.value","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.2","typeLabel":"MCPBearerAuthCredential · object"},{"type":"object","title":"MCPBasicAuthCredential","required":["strategy","username"],"properties":{"strategy":{"type":"string","const":"basic","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.3.strategy","typeLabel":"string"},"username":{"type":"string","title":"Username","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.3.username","typeLabel":"string"},"password":{"oneOf":[{"type":"string","title":"Password","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.3.password.oneOf.0","typeLabel":"string"},{"type":"null","title":"Password","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.3.password.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.3.password","typeLabel":"string | null"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.3","typeLabel":"MCPBasicAuthCredential · object"},{"type":"object","title":"MCPHeaderAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"header","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.4.strategy","typeLabel":"string"},"headers":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.4.headers.additionalProperties","typeLabel":"string | null"},"type":"object","title":"Headers","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.4.headers","typeLabel":"Headers · object"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.4","typeLabel":"MCPHeaderAuthCredential · object"},{"type":"object","title":"MCPOAuthAuthCredential","required":["strategy"],"properties":{"strategy":{"type":"string","const":"oauth2","title":"Strategy","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.strategy","typeLabel":"string"},"authentication":{"oneOf":[{"type":"object","title":"MCPOAuthAuthentication","required":["type"],"properties":{"type":{"type":"string","const":"oauth","title":"Type","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.type","typeLabel":"string"},"client_auth_method":{"oneOf":[{"type":"string","title":"Client Auth Method","enum":["none","client_secret_post","client_secret_basic","private_key_jwt"],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Client Auth Method","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_auth_method","typeLabel":"enum\u003cstring> | null"},"scopes":{"oneOf":[{"type":"string","title":"Scopes","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Scopes","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.1","typeLabel":"string[]"},{"type":"null","title":"Scopes","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.scopes","typeLabel":"string | string[] | null"},"client_name":{"oneOf":[{"type":"string","title":"Client Name","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Name","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_name","typeLabel":"string | null"},"client_metadata_url":{"oneOf":[{"type":"string","title":"Client Metadata Url","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Metadata Url","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_metadata_url","typeLabel":"string | null"},"client_id":{"oneOf":[{"type":"string","title":"Client Id","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Id","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_id","typeLabel":"string | null"},"client_secret":{"oneOf":[{"type":"string","title":"Client Secret","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Secret","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.client_secret","typeLabel":"string | null"},"additional_client_metadata":{"oneOf":[{"type":"object","title":"Additional Client Metadata","additionalProperties":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata.oneOf.0","typeLabel":"Additional Client Metadata · object"},{"type":"null","title":"Additional Client Metadata","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0.additional_client_metadata","typeLabel":"Additional Client Metadata · object | null"}},"additionalProperties":false,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.0","typeLabel":"MCPOAuthAuthentication · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.authentication","typeLabel":"MCPOAuthAuthentication · object | null"},"state":{"oneOf":[{"type":"object","title":"MCPOAuthState","properties":{"tokens":{"oneOf":[{"type":"object","title":"MCPOAuthTokenState","properties":{"access_token":{"oneOf":[{"type":"string","title":"Access Token","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Access Token","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.access_token","typeLabel":"string | null"},"refresh_token":{"oneOf":[{"type":"string","title":"Refresh Token","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"Refresh Token","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0.refresh_token","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.0","typeLabel":"MCPOAuthTokenState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.tokens","typeLabel":"MCPOAuthTokenState · object | null"},"client_info":{"oneOf":[{"type":"object","title":"MCPOAuthClientInfoState","properties":{"client_secret":{"oneOf":[{"type":"string","title":"Client Secret","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret.oneOf.0","typeLabel":"string"},{"type":"null","title":"Client Secret","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0.client_secret","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.0","typeLabel":"MCPOAuthClientInfoState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.client_info","typeLabel":"MCPOAuthClientInfoState · object | null"},"token_expires_at":{"oneOf":[{"type":"number","title":"Token Expires At","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at.oneOf.0","typeLabel":"number"},{"type":"null","title":"Token Expires At","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0.token_expires_at","typeLabel":"number | null"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.0","typeLabel":"MCPOAuthState · object"},{"type":"null","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5.state","typeLabel":"MCPOAuthState · object | null"}},"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.5","typeLabel":"MCPOAuthAuthCredential · object"},{"type":"null","title":"Auth","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth.oneOf.6","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.auth","typeLabel":"MCPNoneAuthCredential · object | MCPApiKeyAuthCredential · object | MCPBearerAuthCredential · object | MCPBasicAuthCredential · object | MCPHeaderAuthCredential · object | MCPOAuthAuthCredential · object | null"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether this server is exposed to the agent. A disabled server stays fully configured -- including its secrets -- but is skipped when MCP tools are created and when servers are forwarded to an ACP subprocess.","default":true,"uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties.enabled","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","title":"MCPServer","description":"One MCP server in the settings DataModel.","uniqueKey":"agent_settings.oneOf.2.mcp_config.additionalProperties","typeLabel":"MCPServer · object"},"type":"object","title":"Mcp Config","description":"MCP servers to make available to the ACP subprocess. Unlike the OpenHands agent — where these become in-process MCP tools — the servers are forwarded to the ACP server at session creation and it owns the connection. Remote (http/sse) servers are only forwarded when the ACP server advertises support for that transport; stdio servers (which run inside the runtime) are always forwarded.","openhands_settings":{"depends_on":[],"label":"MCP servers","prominence":"minor","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.mcp_config","typeLabel":"Mcp Config · object"},"acp_isolate_data_dir":{"type":"boolean","title":"Acp Isolate Data Dir","description":"Give the ACP subprocess a per-conversation CLI data/config root instead of the shared user HOME. Forwarded to :attr:`~openhands.sdk.agent.ACPAgent.acp_isolate_data_dir`; off by default. Enable from the deploying application when several conversations share one sandbox (see #1019).","default":false,"uniqueKey":"agent_settings.oneOf.2.acp_isolate_data_dir","typeLabel":"boolean"},"acp_file_secrets":{"items":{"properties":{"secret_name":{"type":"string","minLength":1,"title":"Secret Name","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].secret_name","typeLabel":"string"},"filename":{"type":"string","minLength":1,"title":"Filename","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].filename","typeLabel":"string"},"env_var":{"type":"string","minLength":1,"title":"Env Var","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].env_var","typeLabel":"string"},"subdir":{"type":"string","minLength":1,"title":"Subdir","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].subdir","typeLabel":"string"},"env_points_to":{"type":"string","enum":["dir","file"],"title":"Env Points To","default":"file","uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].env_points_to","typeLabel":"enum\u003cstring>"},"warn_if_unset":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].warn_if_unset.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Warn If Unset","default":[],"uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX].warn_if_unset","typeLabel":"string[]"}},"type":"object","required":["secret_name","filename","env_var","subdir"],"title":"ACPFileSecretSpec","description":"Declarative mapping from a reserved \"file-content\" secret to a credential\nfile the ACP subprocess authenticates from.\n\nSome providers read their credential from a *file on disk* rather than an\nenv var: Codex reads ``$CODEX_HOME/auth.json``; Gemini (Vertex AI) reads a\nservice-account JSON pointed at by ``GOOGLE_APPLICATION_CREDENTIALS``. The\nuser supplies that credential as a pasted blob — a reserved secret named\n:attr:`secret_name` — and :class:`~openhands.sdk.agent.ACPAgent` materialises\nit to :attr:`filename` under the conversation's durable per-conversation root\n(seed-if-absent), then sets :attr:`env_var` so the CLI can find it.\n\nMaterialisation is keyed off :attr:`secret_name` (not the launch command),\nso a custom or aliased ``acp_command`` still works as long as the reserved\nsecret is supplied.\n\nThe SDK owns the *mechanism* (writing the file in the runtime pod, setting\nthe env var, seed-if-absent, permissions); the *policy* — which secrets map\nto which files for which CLIs — lives in these specs. Built-in defaults\ncover the supported providers, but downstream applications can override\n:attr:`~openhands.sdk.agent.ACPAgent.acp_file_secrets` to support other ACP\nservers with different file-auth schemes without an SDK change.","uniqueKey":"agent_settings.oneOf.2.acp_file_secrets.items.[INDEX]","typeLabel":"ACPFileSecretSpec · object"},"type":"array","title":"Acp File Secrets","description":"Reserved 'file-content' credential secrets the SDK materialises to disk before launching the ACP subprocess (e.g. Codex auth.json, Gemini Vertex SA JSON). Defaults to the built-in supported providers; override to support other ACP servers with different file-auth schemes.","uniqueKey":"agent_settings.oneOf.2.acp_file_secrets","typeLabel":"ACPFileSecretSpec · object[]"},"llm":{"properties":{"is_subscription":{"type":"boolean","title":"Is Subscription","description":"Whether this LLM uses subscription-based authentication. Serialized so that subscription-specific request handling survives transport to a remote agent-server.","readOnly":true,"isRequired":true,"uniqueKey":"agent_settings.oneOf.2.llm.is_subscription","typeLabel":"boolean"},"model":{"type":"string","title":"Model","description":"Model name.","default":"gpt-5.5","openhands_settings":{"depends_on":[],"prominence":"critical"},"uniqueKey":"agent_settings.oneOf.2.llm.model","typeLabel":"string"},"api_key":{"oneOf":[{"type":"string","title":"Api Key","description":"API key.","uniqueKey":"agent_settings.oneOf.2.llm.api_key.oneOf.0","typeLabel":"string"},{"type":"string","title":"Api Key","description":"API key.","format":"password","uniqueKey":"agent_settings.oneOf.2.llm.api_key.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Api Key","description":"API key.","uniqueKey":"agent_settings.oneOf.2.llm.api_key.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.api_key","typeLabel":"string | string\u003cpassword> | null"},"auth_type":{"type":"string","enum":["api_key","subscription"],"title":"Auth Type","description":"Authentication mode for the LLM.","default":"api_key","openhands_settings":{"depends_on":[],"label":"Authentication","prominence":"critical"},"uniqueKey":"agent_settings.oneOf.2.llm.auth_type","typeLabel":"enum\u003cstring>"},"subscription_vendor":{"oneOf":[{"type":"string","title":"Subscription Vendor","description":"Subscription provider for subscription-backed LLM access.","const":"openai","uniqueKey":"agent_settings.oneOf.2.llm.subscription_vendor.oneOf.0","typeLabel":"string"},{"type":"null","title":"Subscription Vendor","description":"Subscription provider for subscription-backed LLM access.","uniqueKey":"agent_settings.oneOf.2.llm.subscription_vendor.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.subscription_vendor","typeLabel":"string | null"},"base_url":{"oneOf":[{"type":"string","title":"Base Url","description":"Custom base URL.","uniqueKey":"agent_settings.oneOf.2.llm.base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Base Url","description":"Custom base URL.","uniqueKey":"agent_settings.oneOf.2.llm.base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.base_url","typeLabel":"string | null"},"api_version":{"oneOf":[{"type":"string","title":"Api Version","description":"API version (e.g., Azure).","uniqueKey":"agent_settings.oneOf.2.llm.api_version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Api Version","description":"API version (e.g., Azure).","uniqueKey":"agent_settings.oneOf.2.llm.api_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.api_version","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","uniqueKey":"agent_settings.oneOf.2.llm.aws_access_key_id.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"agent_settings.oneOf.2.llm.aws_access_key_id.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"agent_settings.oneOf.2.llm.aws_access_key_id.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_access_key_id","typeLabel":"string | string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","uniqueKey":"agent_settings.oneOf.2.llm.aws_secret_access_key.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"agent_settings.oneOf.2.llm.aws_secret_access_key.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"agent_settings.oneOf.2.llm.aws_secret_access_key.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_secret_access_key","typeLabel":"string | string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","uniqueKey":"agent_settings.oneOf.2.llm.aws_session_token.oneOf.0","typeLabel":"string"},{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"agent_settings.oneOf.2.llm.aws_session_token.oneOf.1","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"agent_settings.oneOf.2.llm.aws_session_token.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_session_token","typeLabel":"string | string\u003cpassword> | null"},"aws_region_name":{"oneOf":[{"type":"string","title":"Aws Region Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_region_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Region Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_region_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_region_name","typeLabel":"string | null"},"aws_profile_name":{"oneOf":[{"type":"string","title":"Aws Profile Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_profile_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_profile_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_profile_name","typeLabel":"string | null"},"aws_role_name":{"oneOf":[{"type":"string","title":"Aws Role Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_role_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Role Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_role_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_role_name","typeLabel":"string | null"},"aws_session_name":{"oneOf":[{"type":"string","title":"Aws Session Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_session_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Session Name","uniqueKey":"agent_settings.oneOf.2.llm.aws_session_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_session_name","typeLabel":"string | null"},"aws_bedrock_runtime_endpoint":{"oneOf":[{"type":"string","title":"Aws Bedrock Runtime Endpoint","uniqueKey":"agent_settings.oneOf.2.llm.aws_bedrock_runtime_endpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Bedrock Runtime Endpoint","uniqueKey":"agent_settings.oneOf.2.llm.aws_bedrock_runtime_endpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.aws_bedrock_runtime_endpoint","typeLabel":"string | null"},"openrouter_site_url":{"type":"string","title":"Openrouter Site Url","default":"https://docs.all-hands.dev/","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.openrouter_site_url","typeLabel":"string"},"openrouter_app_name":{"type":"string","title":"Openrouter App Name","default":"OpenHands","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.openrouter_app_name","typeLabel":"string"},"num_retries":{"type":"integer","minimum":0,"title":"Num Retries","default":5,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.num_retries","typeLabel":"integer"},"retry_multiplier":{"type":"number","minimum":0,"title":"Retry Multiplier","default":8,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.retry_multiplier","typeLabel":"number"},"retry_min_wait":{"type":"integer","minimum":0,"title":"Retry Min Wait","default":8,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.retry_min_wait","typeLabel":"integer"},"retry_max_wait":{"type":"integer","minimum":0,"title":"Retry Max Wait","default":64,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.retry_max_wait","typeLabel":"integer"},"timeout":{"oneOf":[{"type":"integer","title":"Timeout","description":"HTTP timeout in seconds. Default is 300s (5 minutes). Set to None to disable timeout (not recommended for production).","default":300,"minimum":0,"uniqueKey":"agent_settings.oneOf.2.llm.timeout.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Timeout","description":"HTTP timeout in seconds. Default is 300s (5 minutes). Set to None to disable timeout (not recommended for production).","default":300,"uniqueKey":"agent_settings.oneOf.2.llm.timeout.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.timeout","typeLabel":"integer | null"},"max_message_chars":{"type":"integer","minimum":1,"title":"Max Message Chars","description":"Approx max chars in each event/content sent to the LLM.","default":30000,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.max_message_chars","typeLabel":"integer"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"Sampling temperature for response generation. Defaults to None (uses provider default temperature). Set to 0.0 for deterministic outputs, or higher values (0.7-1.0) for more creative responses.","minimum":0,"uniqueKey":"agent_settings.oneOf.2.llm.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"Sampling temperature for response generation. Defaults to None (uses provider default temperature). Set to 0.0 for deterministic outputs, or higher values (0.7-1.0) for more creative responses.","uniqueKey":"agent_settings.oneOf.2.llm.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.temperature","typeLabel":"number | null"},"top_p":{"oneOf":[{"type":"number","title":"Top P","description":"Nucleus sampling parameter. Defaults to None (uses provider default). Set to a value between 0 and 1 to control diversity of outputs.","maximum":1,"minimum":0,"uniqueKey":"agent_settings.oneOf.2.llm.top_p.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top P","description":"Nucleus sampling parameter. Defaults to None (uses provider default). Set to a value between 0 and 1 to control diversity of outputs.","uniqueKey":"agent_settings.oneOf.2.llm.top_p.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.top_p","typeLabel":"number | null"},"top_k":{"oneOf":[{"type":"number","title":"Top K","minimum":0,"uniqueKey":"agent_settings.oneOf.2.llm.top_k.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top K","uniqueKey":"agent_settings.oneOf.2.llm.top_k.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.top_k","typeLabel":"number | null"},"max_input_tokens":{"oneOf":[{"type":"integer","title":"Max Input Tokens","description":"The maximum number of input tokens. Note that this is currently unused, and the value at runtime is actually the total tokens in OpenAI (e.g. 128,000 tokens for GPT-4).","minimum":1,"uniqueKey":"agent_settings.oneOf.2.llm.max_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Input Tokens","description":"The maximum number of input tokens. Note that this is currently unused, and the value at runtime is actually the total tokens in OpenAI (e.g. 128,000 tokens for GPT-4).","uniqueKey":"agent_settings.oneOf.2.llm.max_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.max_input_tokens","typeLabel":"integer | null"},"max_output_tokens":{"oneOf":[{"type":"integer","title":"Max Output Tokens","description":"The maximum number of output tokens. This is sent to the LLM.","minimum":1,"uniqueKey":"agent_settings.oneOf.2.llm.max_output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Output Tokens","description":"The maximum number of output tokens. This is sent to the LLM.","uniqueKey":"agent_settings.oneOf.2.llm.max_output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.max_output_tokens","typeLabel":"integer | null"},"model_canonical_name":{"oneOf":[{"type":"string","title":"Model Canonical Name","description":"Optional canonical model name for feature registry lookups. The OpenHands SDK maintains a model feature registry that maps model names to capabilities (e.g., vision support, prompt caching, responses API support). When using proxied or aliased model identifiers, set this field to the canonical model name (e.g., 'openai/gpt-4o') to ensure correct capability detection. If not provided, the 'model' field will be used for capability lookups.","uniqueKey":"agent_settings.oneOf.2.llm.model_canonical_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Canonical Name","description":"Optional canonical model name for feature registry lookups. The OpenHands SDK maintains a model feature registry that maps model names to capabilities (e.g., vision support, prompt caching, responses API support). When using proxied or aliased model identifiers, set this field to the canonical model name (e.g., 'openai/gpt-4o') to ensure correct capability detection. If not provided, the 'model' field will be used for capability lookups.","uniqueKey":"agent_settings.oneOf.2.llm.model_canonical_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.model_canonical_name","typeLabel":"string | null"},"api_mode":{"type":"string","enum":["auto","chat","responses"],"title":"Api Mode","description":"LLM API endpoint mode. 'auto' resolves from model metadata and SDK fallbacks; use 'chat' or 'responses' to override endpoint selection for proxy aliases and newly released models.","default":"auto","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.api_mode","typeLabel":"enum\u003cstring>"},"capability_overrides":{"additionalProperties":{"oneOf":[{"type":"boolean","uniqueKey":"agent_settings.oneOf.2.llm.capability_overrides.additionalProperties.oneOf.0","typeLabel":"boolean"},{"type":"string","uniqueKey":"agent_settings.oneOf.2.llm.capability_overrides.additionalProperties.oneOf.1","typeLabel":"string"}],"uniqueKey":"agent_settings.oneOf.2.llm.capability_overrides.additionalProperties","typeLabel":"boolean | string"},"type":"object","title":"Capability Overrides","description":"Explicit model capability overrides. Supported keys include supports_reasoning_effort, thinking_mode (adaptive, manual, none, or unknown), supports_sampling_params, supports_prompt_cache, supports_stop_words, supports_responses_api, supports_vision, and supports_prompt_cache_retention. Overrides take precedence over LiteLLM metadata and SDK fallbacks.","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.capability_overrides","typeLabel":"Capability Overrides · object"},"extra_headers":{"oneOf":[{"type":"object","title":"Extra Headers","description":"Optional HTTP headers to forward to LiteLLM requests.","additionalProperties":{"type":"string","uniqueKey":"agent_settings.oneOf.2.llm.extra_headers.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_settings.oneOf.2.llm.extra_headers.oneOf.0","typeLabel":"Extra Headers · object"},{"type":"null","title":"Extra Headers","description":"Optional HTTP headers to forward to LiteLLM requests.","uniqueKey":"agent_settings.oneOf.2.llm.extra_headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.extra_headers","typeLabel":"Extra Headers · object | null"},"input_cost_per_token":{"oneOf":[{"type":"number","title":"Input Cost Per Token","description":"The cost per input token. This will available in logs for user.","minimum":0,"uniqueKey":"agent_settings.oneOf.2.llm.input_cost_per_token.oneOf.0","typeLabel":"number"},{"type":"null","title":"Input Cost Per Token","description":"The cost per input token. This will available in logs for user.","uniqueKey":"agent_settings.oneOf.2.llm.input_cost_per_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.input_cost_per_token","typeLabel":"number | null"},"output_cost_per_token":{"oneOf":[{"type":"number","title":"Output Cost Per Token","description":"The cost per output token. This will available in logs for user.","minimum":0,"uniqueKey":"agent_settings.oneOf.2.llm.output_cost_per_token.oneOf.0","typeLabel":"number"},{"type":"null","title":"Output Cost Per Token","description":"The cost per output token. This will available in logs for user.","uniqueKey":"agent_settings.oneOf.2.llm.output_cost_per_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.output_cost_per_token","typeLabel":"number | null"},"ollama_base_url":{"oneOf":[{"type":"string","title":"Ollama Base Url","uniqueKey":"agent_settings.oneOf.2.llm.ollama_base_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ollama Base Url","uniqueKey":"agent_settings.oneOf.2.llm.ollama_base_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.ollama_base_url","typeLabel":"string | null"},"stream":{"type":"boolean","title":"Stream","description":"Enable streaming responses from the LLM. When enabled, the provided `on_token` callback in .completions and .responses will be invoked for each chunk of tokens.","default":false,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.stream","typeLabel":"boolean"},"drop_params":{"type":"boolean","title":"Drop Params","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.drop_params","typeLabel":"boolean"},"modify_params":{"type":"boolean","title":"Modify Params","description":"Modify params allows litellm to do transformations like adding a default message, when a message is empty.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.modify_params","typeLabel":"boolean"},"disable_vision":{"oneOf":[{"type":"boolean","title":"Disable Vision","description":"If model is vision capable, this option allows to disable image processing (useful for cost reduction).","uniqueKey":"agent_settings.oneOf.2.llm.disable_vision.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Vision","description":"If model is vision capable, this option allows to disable image processing (useful for cost reduction).","uniqueKey":"agent_settings.oneOf.2.llm.disable_vision.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.disable_vision","typeLabel":"boolean | null"},"disable_stop_word":{"oneOf":[{"type":"boolean","title":"Disable Stop Word","description":"Disable using of stop word.","default":false,"uniqueKey":"agent_settings.oneOf.2.llm.disable_stop_word.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Stop Word","description":"Disable using of stop word.","default":false,"uniqueKey":"agent_settings.oneOf.2.llm.disable_stop_word.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.disable_stop_word","typeLabel":"boolean | null"},"caching_prompt":{"type":"boolean","title":"Caching Prompt","description":"Enable caching of prompts.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.caching_prompt","typeLabel":"boolean"},"log_completions":{"type":"boolean","title":"Log Completions","description":"Enable logging of completions.","default":false,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.log_completions","typeLabel":"boolean"},"log_completions_folder":{"type":"string","title":"Log Completions Folder","description":"The folder to log LLM completions to. Required if log_completions is True.","default":"logs/completions","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.log_completions_folder","typeLabel":"string"},"custom_tokenizer":{"oneOf":[{"type":"string","title":"Custom Tokenizer","description":"A custom tokenizer to use for token counting.","uniqueKey":"agent_settings.oneOf.2.llm.custom_tokenizer.oneOf.0","typeLabel":"string"},{"type":"null","title":"Custom Tokenizer","description":"A custom tokenizer to use for token counting.","uniqueKey":"agent_settings.oneOf.2.llm.custom_tokenizer.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.custom_tokenizer","typeLabel":"string | null"},"native_tool_calling":{"type":"boolean","title":"Native Tool Calling","description":"Whether to use native tool calling.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.native_tool_calling","typeLabel":"boolean"},"force_string_serializer":{"oneOf":[{"type":"boolean","title":"Force String Serializer","description":"Force using string content serializer when sending to LLM API. If None (default), auto-detect based on model. Useful for providers that do not support list content, like HuggingFace and Groq.","uniqueKey":"agent_settings.oneOf.2.llm.force_string_serializer.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Force String Serializer","description":"Force using string content serializer when sending to LLM API. If None (default), auto-detect based on model. Useful for providers that do not support list content, like HuggingFace and Groq.","uniqueKey":"agent_settings.oneOf.2.llm.force_string_serializer.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.force_string_serializer","typeLabel":"boolean | null"},"inline_image_urls":{"oneOf":[{"type":"boolean","title":"Inline Image Urls","description":"If True, fetch any http(s) image URL in outgoing messages and inline it as a base64 ``data:`` URL before sending. If None (default), auto-detect based on model (some APIs such as Moonshot's public Kimi endpoint reject URL-formatted images and require base64). Set this explicitly when the model is reached through a proxy alias that hides the underlying provider (e.g. ``litellm_proxy/\u003ccustom-alias>``). Note: inlining only runs when ``vision_is_active()`` is True, so the alias must still be recognised as vision-capable by the SDK feature registry or proxy model metadata.","uniqueKey":"agent_settings.oneOf.2.llm.inline_image_urls.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Inline Image Urls","description":"If True, fetch any http(s) image URL in outgoing messages and inline it as a base64 ``data:`` URL before sending. If None (default), auto-detect based on model (some APIs such as Moonshot's public Kimi endpoint reject URL-formatted images and require base64). Set this explicitly when the model is reached through a proxy alias that hides the underlying provider (e.g. ``litellm_proxy/\u003ccustom-alias>``). Note: inlining only runs when ``vision_is_active()`` is True, so the alias must still be recognised as vision-capable by the SDK feature registry or proxy model metadata.","uniqueKey":"agent_settings.oneOf.2.llm.inline_image_urls.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.inline_image_urls","typeLabel":"boolean | null"},"reasoning_effort":{"oneOf":[{"type":"string","title":"Reasoning Effort","description":"Provider-neutral reasoning effort. Common values include 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. The SDK accepts future provider values and lets LiteLLM translate them.","default":"high","enum":["low","medium","high","xhigh","none"],"uniqueKey":"agent_settings.oneOf.2.llm.reasoning_effort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoning Effort","description":"Provider-neutral reasoning effort. Common values include 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. The SDK accepts future provider values and lets LiteLLM translate them.","default":"high","uniqueKey":"agent_settings.oneOf.2.llm.reasoning_effort.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.reasoning_effort","typeLabel":"enum\u003cstring> | null"},"reasoning_summary":{"oneOf":[{"type":"string","title":"Reasoning Summary","description":"The level of detail for reasoning summaries. This is a string that can be one of 'auto', 'concise', or 'detailed'. Requires verified OpenAI organization. Only sent when explicitly set.","enum":["auto","concise","detailed"],"uniqueKey":"agent_settings.oneOf.2.llm.reasoning_summary.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoning Summary","description":"The level of detail for reasoning summaries. This is a string that can be one of 'auto', 'concise', or 'detailed'. Requires verified OpenAI organization. Only sent when explicitly set.","uniqueKey":"agent_settings.oneOf.2.llm.reasoning_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.reasoning_summary","typeLabel":"enum\u003cstring> | null"},"enable_encrypted_reasoning":{"type":"boolean","title":"Enable Encrypted Reasoning","description":"If True, ask for ['reasoning.encrypted_content'] in Responses API include.","default":true,"openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.enable_encrypted_reasoning","typeLabel":"boolean"},"prompt_cache_retention":{"oneOf":[{"type":"string","title":"Prompt Cache Retention","description":"Retention policy for prompt cache. Only sent for supported models (GPT-5+ and GPT-4.1, excluding Azure deployments); explicitly stripped for all others.","default":"24h","uniqueKey":"agent_settings.oneOf.2.llm.prompt_cache_retention.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt Cache Retention","description":"Retention policy for prompt cache. Only sent for supported models (GPT-5+ and GPT-4.1, excluding Azure deployments); explicitly stripped for all others.","default":"24h","uniqueKey":"agent_settings.oneOf.2.llm.prompt_cache_retention.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.prompt_cache_retention","typeLabel":"string | null"},"extended_thinking_budget":{"oneOf":[{"type":"integer","title":"Extended Thinking Budget","description":"Legacy token budget for models confirmed to use manual Anthropic extended thinking. Ignored for adaptive-thinking models. Prefer reasoning_effort for new integrations.","default":200000,"uniqueKey":"agent_settings.oneOf.2.llm.extended_thinking_budget.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Extended Thinking Budget","description":"Legacy token budget for models confirmed to use manual Anthropic extended thinking. Ignored for adaptive-thinking models. Prefer reasoning_effort for new integrations.","default":200000,"uniqueKey":"agent_settings.oneOf.2.llm.extended_thinking_budget.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.extended_thinking_budget","typeLabel":"integer | null"},"seed":{"oneOf":[{"type":"integer","title":"Seed","description":"The seed to use for random number generation.","uniqueKey":"agent_settings.oneOf.2.llm.seed.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Seed","description":"The seed to use for random number generation.","uniqueKey":"agent_settings.oneOf.2.llm.seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.llm.seed","typeLabel":"integer | null"},"usage_id":{"type":"string","title":"Usage Id","description":"Unique usage identifier for the LLM. Used for registry lookups, telemetry, and spend tracking.","default":"default","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.usage_id","typeLabel":"string"},"litellm_extra_body":{"additionalProperties":true,"type":"object","title":"Litellm Extra Body","description":"Additional key-value pairs to pass to litellm's extra_body parameter. This is useful for custom inference endpoints that need additional parameters for configuration, routing, or advanced features. NOTE: Not all LLM providers support extra_body parameters. Some providers (e.g., OpenAI) may reject requests with unrecognized options. This is commonly supported by: - LiteLLM proxy servers (routing metadata, tracing) - vLLM endpoints (return_token_ids, etc.) - Custom inference clusters Examples: - Proxy routing: {'trace_version': '1.0.0', 'tags': ['agent:my-agent']} - vLLM features: {'return_token_ids': True}","openhands_settings":{"depends_on":[],"prominence":"minor"},"uniqueKey":"agent_settings.oneOf.2.llm.litellm_extra_body","typeLabel":"Litellm Extra Body · object"}},"type":"object","required":["is_subscription"],"title":"LLM","description":"DEPRECATED (removed in 1.33.0): LLM identity used for cost/token attribution. The ACP subprocess makes its own model calls; ``acp_model`` is the model identity. Credentials set here (``api_key`` / ``base_url``) are ignored — route provider credentials through the conversation secrets channel (agent_context.secrets / StartConversationRequest.secrets, which route through state.secret_registry), keyed by the provider's env var name.","openhands_settings_section":{"key":"llm","label":"LLM (for metrics)","variant":"acp"},"uniqueKey":"agent_settings.oneOf.2.llm","typeLabel":"LLM · object"},"agent_context":{"oneOf":[{"type":"object","title":"AgentContext","description":"Prompt-only context for the ACP server. ``secrets`` here are advertised to the agent (names/descriptions) and reach the subprocess env through ``state.secret_registry``: ``LocalConversation`` seeds ``agent_context.secrets`` into the registry at conversation init (below ``request.secrets``), so callers that build the request outside Python (e.g. canvas-local) are covered too, not just the ``create_request`` path. Provider credentials belong here (or in ``request.secrets``) keyed by the provider's env var name.","properties":{"skills":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].name","typeLabel":"string"},"content":{"type":"string","title":"Content","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].content","typeLabel":"string"},"trigger":{"oneOf":[{"type":"object","title":"KeywordTrigger","description":"Trigger for keyword-based skills.\n\nThese skills are activated when specific keywords appear in the user's query.","required":["keywords"],"properties":{"keywords":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.0.keywords.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Keywords","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.0.keywords","typeLabel":"string[]"},"type":{"type":"string","const":"keyword","title":"Type","default":"keyword","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.0.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.0","typeLabel":"KeywordTrigger · object"},{"type":"object","title":"TaskTrigger","description":"Trigger for task-specific skills.\n\nThese skills are activated for specific task types and can modify prompts.","required":["triggers"],"properties":{"triggers":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.1.triggers.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Triggers","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.1.triggers","typeLabel":"string[]"},"type":{"type":"string","const":"task","title":"Type","default":"task","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.1.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.1","typeLabel":"TaskTrigger · object"},{"type":"object","title":"PathTrigger","description":"Trigger for path-scoped skills (\"rules\").\n\nThese skills are activated when the agent touches a file whose path matches\none of the ``paths`` glob patterns (gitignore-style ``**`` semantics).","required":["paths"],"properties":{"paths":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.2.paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.2.paths","typeLabel":"string[]"},"type":{"type":"string","const":"path","title":"Type","default":"path","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.2.type","typeLabel":"string"}},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.2","typeLabel":"PathTrigger · object"},{"type":"null","title":"Trigger","description":"Trigger determines when skill content is auto-injected. None = no auto-injection (for AgentSkills: agent reads on demand; for legacy: full content always in system prompt). KeywordTrigger = auto-inject when keywords appear in user messages. TaskTrigger = auto-inject for specific tasks, may require user input.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger.oneOf.3","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].trigger","typeLabel":"KeywordTrigger · object | TaskTrigger · object | PathTrigger · object | null"},"source":{"oneOf":[{"type":"string","title":"Source","description":"The source path or identifier of the skill. When it is None, it is treated as a programmatically defined skill.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].source.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source","description":"The source path or identifier of the skill. When it is None, it is treated as a programmatically defined skill.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].source.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].source","typeLabel":"string | null"},"mcp_tools":{"oneOf":[{"type":"object","title":"Mcp Tools","description":"MCP servers for the skill (repo skills only).","additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].mcp_tools.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].mcp_tools.oneOf.0","typeLabel":"Mcp Tools · object"},{"type":"null","title":"Mcp Tools","description":"MCP servers for the skill (repo skills only).","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].mcp_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].mcp_tools","typeLabel":"Mcp Tools · object | null"},"inputs":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the input parameter","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].inputs.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","title":"Description","description":"Description of the input parameter","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].inputs.items.[INDEX].description","typeLabel":"string"}},"type":"object","required":["name","description"],"title":"InputMetadata","description":"Metadata for task skill inputs.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].inputs.items.[INDEX]","typeLabel":"InputMetadata · object"},"type":"array","title":"Inputs","description":"Input metadata for the skill (task skills only)","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].inputs","typeLabel":"InputMetadata · object[]"},"is_agentskills_format":{"type":"boolean","title":"Is Agentskills Format","description":"Whether this skill was loaded from a SKILL.md file following the AgentSkills standard. AgentSkills-format skills use progressive disclosure: always listed in \u003cavailable_skills> with name, description, and location. If the skill also has triggers, content is auto-injected when triggered AND agent can read file anytime.","default":false,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].is_agentskills_format","typeLabel":"boolean"},"version":{"type":"string","title":"Version","description":"Skill version (AgentSkills standard field).","default":"1.0.0","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].version","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"A brief description of what the skill does and when to use it. Descriptions exceeding MAX_DESCRIPTION_LENGTH are truncated with a notice pointing to the skill's source path.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"A brief description of what the skill does and when to use it. Descriptions exceeding MAX_DESCRIPTION_LENGTH are truncated with a notice pointing to the skill's source path.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].description","typeLabel":"string | null"},"license":{"oneOf":[{"type":"string","title":"License","description":"The license under which the skill is distributed. AgentSkills standard field (e.g., 'Apache-2.0', 'MIT').","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].license.oneOf.0","typeLabel":"string"},{"type":"null","title":"License","description":"The license under which the skill is distributed. AgentSkills standard field (e.g., 'Apache-2.0', 'MIT').","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].license.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].license","typeLabel":"string | null"},"compatibility":{"oneOf":[{"type":"string","title":"Compatibility","description":"Environment requirements or compatibility notes for the skill. AgentSkills standard field (e.g., 'Requires git and docker').","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].compatibility.oneOf.0","typeLabel":"string"},{"type":"null","title":"Compatibility","description":"Environment requirements or compatibility notes for the skill. AgentSkills standard field (e.g., 'Requires git and docker').","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].compatibility.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].compatibility","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Arbitrary key-value metadata for the skill. AgentSkills standard field for extensibility.","additionalProperties":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].metadata.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Arbitrary key-value metadata for the skill. AgentSkills standard field for extensibility.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].metadata","typeLabel":"Metadata · object | null"},"allowed_tools":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].allowed_tools.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Allowed Tools","description":"List of pre-approved tools for this skill. AgentSkills standard field (parsed from space-delimited string).","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].allowed_tools.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Allowed Tools","description":"List of pre-approved tools for this skill. AgentSkills standard field (parsed from space-delimited string).","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].allowed_tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].allowed_tools","typeLabel":"string[] | null"},"disable_model_invocation":{"type":"boolean","title":"Disable Model Invocation","description":"Whether this skill can only be activated by trigger matching and should not be advertised to the model for direct invocation.","default":false,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].disable_model_invocation","typeLabel":"boolean"},"resources":{"oneOf":[{"type":"object","title":"SkillResources","description":"Resource directories for the skill (scripts/, references/, assets/). AgentSkills standard field. Only populated for SKILL.md directory format.","required":["skill_root"],"properties":{"skill_root":{"type":"string","title":"Skill Root","description":"Root directory of the skill (absolute path)","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.skill_root","typeLabel":"string"},"scripts":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.scripts.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Scripts","description":"List of script files in scripts/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.scripts","typeLabel":"string[]"},"references":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.references.items.[INDEX]","typeLabel":"string"},"type":"array","title":"References","description":"List of reference files in references/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.references","typeLabel":"string[]"},"assets":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.assets.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Assets","description":"List of asset files in assets/ directory (relative paths)","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0.assets","typeLabel":"string[]"}},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.0","typeLabel":"SkillResources · object"},{"type":"null","description":"Resource directories for the skill (scripts/, references/, assets/). AgentSkills standard field. Only populated for SKILL.md directory format.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX].resources","typeLabel":"SkillResources · object | null"}},"type":"object","required":["name","content"],"title":"Skill","description":"A skill provides specialized knowledge or functionality.\n\nSkill behavior depends on format (is_agentskills_format) and trigger:\n\nAgentSkills format (SKILL.md files):\n- Always listed in \u003cavailable_skills> with name, description, location\n- Agent reads full content on demand (progressive disclosure)\n- If has triggers: content is ALSO auto-injected when triggered\n\nLegacy OpenHands format:\n- With triggers: Listed in \u003cavailable_skills>, content injected on trigger\n- Without triggers (None): Full content in \u003cREPO_CONTEXT>, always active\n\nThis model supports both OpenHands-specific fields and AgentSkills standard\nfields (https://agentskills.io/specification) for cross-platform compatibility.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills.items.[INDEX]","typeLabel":"Skill · object"},"type":"array","title":"Skills","description":"List of available skills that can extend the user's input.","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.skills","typeLabel":"Skill · object[]"},"system_message_suffix":{"oneOf":[{"type":"string","title":"System Message Suffix","description":"Optional suffix to append to the system prompt.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.system_message_suffix.oneOf.0","typeLabel":"string"},{"type":"null","title":"System Message Suffix","description":"Optional suffix to append to the system prompt.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.system_message_suffix.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.system_message_suffix","typeLabel":"string | null"},"user_message_suffix":{"oneOf":[{"type":"string","title":"User Message Suffix","description":"Optional suffix to append to the user's message.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.user_message_suffix.oneOf.0","typeLabel":"string"},{"type":"null","title":"User Message Suffix","description":"Optional suffix to append to the user's message.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.user_message_suffix.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.user_message_suffix","typeLabel":"string | null"},"load_user_skills":{"type":"boolean","title":"Load User Skills","description":"Whether to automatically load user skills from ~/.openhands/skills/ and ~/.openhands/microagents/ (for backward compatibility). ","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.load_user_skills","typeLabel":"boolean"},"load_public_skills":{"type":"boolean","title":"Load Public Skills","description":"Whether to automatically load skills from the public OpenHands skills repository at https://github.com/OpenHands/extensions. This allows you to get the latest skills without SDK updates.","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.load_public_skills","typeLabel":"boolean"},"marketplace_path":{"oneOf":[{"type":"string","title":"Marketplace Path","description":"Relative marketplace JSON path within the public skills repository. Set to None to load all public skills without marketplace filtering.","default":"marketplaces/default.json","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.marketplace_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Marketplace Path","description":"Relative marketplace JSON path within the public skills repository. Set to None to load all public skills without marketplace filtering.","default":"marketplaces/default.json","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.marketplace_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.marketplace_path","typeLabel":"string | null"},"registered_marketplaces":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"Identifier for this marketplace registration","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].name","typeLabel":"string"},"source":{"type":"string","title":"Source","description":"Marketplace source: 'github:owner/repo', git URL, or local path","isRequired":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].source","typeLabel":"string"},"ref":{"oneOf":[{"type":"string","title":"Ref","description":"Optional branch, tag, or commit for git sources","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].ref.oneOf.0","typeLabel":"string"},{"type":"null","title":"Ref","description":"Optional branch, tag, or commit for git sources","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].ref","typeLabel":"string | null"},"repo_path":{"oneOf":[{"type":"string","title":"Repo Path","description":"Subdirectory path within the git repository containing the marketplace. Only relevant for git sources.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].repo_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Repo Path","description":"Subdirectory path within the git repository containing the marketplace. Only relevant for git sources.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].repo_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].repo_path","typeLabel":"string | null"},"auto_load":{"oneOf":[{"type":"boolean","title":"Auto Load","description":"Whether to load marketplace plugins and standalone skills at conversation start. Use True for all, False or [] for none, or a list of plugin/skill names for selective loading.","default":false,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].auto_load.oneOf.0","typeLabel":"boolean"},{"type":"array","items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].auto_load.oneOf.1.items.[INDEX]","typeLabel":"string"},"title":"Auto Load","description":"Whether to load marketplace plugins and standalone skills at conversation start. Use True for all, False or [] for none, or a list of plugin/skill names for selective loading.","default":false,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].auto_load.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX].auto_load","typeLabel":"boolean | string[]"}},"type":"object","required":["name","source"],"title":"MarketplaceRegistration","description":"Registration for a marketplace source used for plugin resolution.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces.items.[INDEX]","typeLabel":"MarketplaceRegistration · object"},"type":"array","title":"Registered Marketplaces","description":"Marketplace registrations for plugin resolution. Registrations with auto_load=True or a list of plugin names are resolved by LocalConversation at startup.","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.registered_marketplaces","typeLabel":"MarketplaceRegistration · object[]"},"load_project_skills":{"type":"boolean","title":"Load Project Skills","description":"Whether to automatically load project skills from the conversation workspace (e.g. .openhands/skills/, AGENTS.md). Unlike load_user_skills / load_public_skills, this flag is not resolved by AgentContext itself (the workspace path is unknown at validation time); LocalConversation resolves it lazily on the first send_message() / run(), when the workspace is known. Also unlike load_user_skills / load_public_skills (which yield to explicit skills on a name conflict), resolved project skills are authoritative: a project skill overrides a same-named skill already present in `skills`.","default":false,"acp_compatible":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.load_project_skills","typeLabel":"boolean"},"load_memory":{"type":"boolean","title":"Load Memory","description":"Whether to load persistent agent memory (MEMORY.md indexes under ~/.openhands/memory/ and \u003cworkspace>/.openhands/memory/) into the system prompt. Like load_project_skills, this flag is not resolved by AgentContext itself (the workspace path is unknown at validation time); LocalConversation resolves it lazily on the first send_message() / run() and stores the result in memory_context.","default":false,"acp_compatible":true,"openhands_settings":{"depends_on":[],"label":"Persistent memory","prominence":"major"},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.load_memory","typeLabel":"boolean"},"disabled_skills":{"items":{"type":"string","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.disabled_skills.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Disabled Skills","description":"Names of skills to EXCLUDE from this context — a deny-list applied after every skill source is loaded (auto-loaded user/public, explicit, and lazily-loaded project skills). A listed name absent from the loaded set is a harmless no-op. [] (the default) keeps every skill. This is the single, drift-tolerant skill-selection mechanism (agent profiles set it from their own deny-list; #4017).","acp_compatible":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.disabled_skills","typeLabel":"string[]"},"secrets":{"oneOf":[{"type":"object","title":"Secrets","description":"Dictionary mapping secret keys to values or secret sources. Secrets are used for authentication and sensitive data handling. Values can be either strings or SecretSource instances (str | SecretSource).","additionalProperties":true,"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.secrets.oneOf.0","typeLabel":"Secrets · object"},{"type":"null","title":"Secrets","description":"Dictionary mapping secret keys to values or secret sources. Secrets are used for authentication and sensitive data handling. Values can be either strings or SecretSource instances (str | SecretSource).","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.secrets.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.secrets","typeLabel":"Secrets · object | null"},"current_datetime":{"oneOf":[{"type":"string","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","format":"date-time","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.current_datetime.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"string","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.current_datetime.oneOf.1","typeLabel":"string"},{"type":"null","title":"Current Datetime","description":"Current date and time information to provide to the agent. Can be a datetime object (which will be formatted as ISO 8601) or a pre-formatted string. When provided, this information is included in the system prompt to give the agent awareness of the current time context. Defaults to the current (timezone-aware) datetime.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.current_datetime.oneOf.2","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0.current_datetime","typeLabel":"string\u003cdate-time> | string | null"}},"uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.0","typeLabel":"AgentContext · object"},{"type":"null","description":"Prompt-only context for the ACP server. ``secrets`` here are advertised to the agent (names/descriptions) and reach the subprocess env through ``state.secret_registry``: ``LocalConversation`` seeds ``agent_context.secrets`` into the registry at conversation init (below ``request.secrets``), so callers that build the request outside Python (e.g. canvas-local) are covered too, not just the ``create_request`` path. Provider credentials belong here (or in ``request.secrets``) keyed by the provider's env var name.","uniqueKey":"agent_settings.oneOf.2.agent_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_settings.oneOf.2.agent_context","typeLabel":"AgentContext · object | null"}},"uniqueKey":"agent_settings.oneOf.2","typeLabel":"ACPAgentSettings · object"}],"uniqueKey":"agent_settings","typeLabel":"OpenHandsAgentSettings · object | LLMAgentSettings · object | ACPAgentSettings · object"},"conversation_settings":{"properties":{"schema_version":{"type":"integer","minimum":1,"title":"Schema Version","default":1,"uniqueKey":"conversation_settings.schema_version","typeLabel":"integer"},"max_iterations":{"type":"integer","minimum":1,"title":"Max Iterations","description":"Maximum number of iterations the conversation will run before stopping.","default":500,"openhands_settings":{"depends_on":[],"label":"Max iterations","prominence":"major"},"uniqueKey":"conversation_settings.max_iterations","typeLabel":"integer"},"confirmation_mode":{"type":"boolean","title":"Confirmation Mode","description":"Require user confirmation before executing risky actions.","default":false,"openhands_settings":{"depends_on":[],"label":"Confirmation mode","prominence":"critical"},"openhands_settings_section":{"key":"verification","label":"Verification"},"uniqueKey":"conversation_settings.confirmation_mode","typeLabel":"boolean"},"security_analyzer":{"oneOf":[{"type":"string","title":"Security Analyzer","description":"Security analyzer that evaluates actions before execution.","default":"llm","enum":["llm","none"],"uniqueKey":"conversation_settings.security_analyzer.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Security Analyzer","description":"Security analyzer that evaluates actions before execution.","default":"llm","uniqueKey":"conversation_settings.security_analyzer.oneOf.1","typeLabel":"null"}],"uniqueKey":"conversation_settings.security_analyzer","typeLabel":"enum\u003cstring> | null"}},"type":"object","title":"ConversationSettings","uniqueKey":"conversation_settings","typeLabel":"ConversationSettings · object"},"llm_api_key_set":{"type":"boolean","title":"Llm Api Key Set","default":false,"uniqueKey":"llm_api_key_set","typeLabel":"boolean"},"search_api_key":{"oneOf":[{"type":"string","title":"Search Api Key","uniqueKey":"search_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Search Api Key","uniqueKey":"search_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"search_api_key","typeLabel":"string | null"}},"type":"object","title":"OrgDefaultsSettingsResponse","description":"Response model for organization default settings.","uniqueKey":"","typeLabel":"OrgDefaultsSettingsResponse · object"},"examples":{"Example":{"title":"Example","value":{"agent_settings":{"schema_version":5,"agent_kind":"openhands","agent":"CodeActAgent","llm":{"is_subscription":true,"model":"gpt-5.5","api_key":"\u003cstring>","auth_type":"api_key","subscription_vendor":"openai","base_url":"\u003cstring>","api_version":"\u003cstring>","aws_access_key_id":"\u003cstring>","aws_secret_access_key":"\u003cstring>","aws_session_token":"\u003cstring>","aws_region_name":"\u003cstring>","aws_profile_name":"\u003cstring>","aws_role_name":"\u003cstring>","aws_session_name":"\u003cstring>","aws_bedrock_runtime_endpoint":"\u003cstring>","openrouter_site_url":"https://docs.all-hands.dev/","openrouter_app_name":"OpenHands","num_retries":5,"retry_multiplier":8,"retry_min_wait":8,"retry_max_wait":64,"timeout":300,"max_message_chars":30000,"temperature":1,"top_p":0.5,"top_k":1,"max_input_tokens":2,"max_output_tokens":2,"model_canonical_name":"\u003cstring>","api_mode":"auto","capability_overrides":{},"extra_headers":{},"input_cost_per_token":1,"output_cost_per_token":1,"ollama_base_url":"\u003cstring>","stream":false,"drop_params":true,"modify_params":true,"disable_vision":true,"disable_stop_word":false,"caching_prompt":true,"log_completions":false,"log_completions_folder":"logs/completions","custom_tokenizer":"\u003cstring>","native_tool_calling":true,"force_string_serializer":true,"inline_image_urls":true,"reasoning_effort":"high","reasoning_summary":"auto","enable_encrypted_reasoning":true,"prompt_cache_retention":"24h","extended_thinking_budget":200000,"seed":123,"usage_id":"default","litellm_extra_body":{}},"tools":[{"name":"TerminalTool","params":{"working_dir":"/workspace"}}],"enable_sub_agents":false,"enable_switch_llm_tool":true,"tool_concurrency_limit":1,"mcp_config":{},"agent_context":{"skills":[{"name":"\u003cstring>","content":"\u003cstring>","trigger":{"keywords":["\u003cstring>"],"type":"keyword"},"source":"\u003cstring>","mcp_tools":{},"inputs":[{"name":"\u003cstring>","description":"\u003cstring>"}],"is_agentskills_format":false,"version":"1.0.0","description":"\u003cstring>","license":"\u003cstring>","compatibility":"\u003cstring>","metadata":{},"allowed_tools":["\u003cstring>"],"disable_model_invocation":false,"resources":{"skill_root":"\u003cstring>","scripts":["\u003cstring>"],"references":["\u003cstring>"],"assets":["\u003cstring>"]}}],"system_message_suffix":"\u003cstring>","user_message_suffix":"\u003cstring>","load_user_skills":false,"load_public_skills":false,"marketplace_path":"marketplaces/default.json","registered_marketplaces":[{"name":"\u003cstring>","source":"\u003cstring>","ref":"\u003cstring>","repo_path":"\u003cstring>","auto_load":false}],"load_project_skills":false,"load_memory":false,"disabled_skills":["\u003cstring>"],"secrets":{},"current_datetime":"2023-11-07T05:31:56Z"},"condenser":{"enabled":true,"max_size":240,"condenser_kind":"llm_summarizing","max_tokens":1,"keep_first":2,"minimum_progress":0.1,"hard_context_reset_max_retries":5,"hard_context_reset_context_scaling":0.8},"verification":{"critic_enabled":false,"critic_mode":"finish_and_message","enable_iterative_refinement":false,"critic_threshold":0.6,"max_refinement_iterations":3,"critic_server_url":"\u003cstring>","critic_model_name":"\u003cstring>","critic_api_key":"\u003cunknown>"}},"conversation_settings":{"schema_version":1,"max_iterations":500,"confirmation_mode":false,"security_analyzer":"llm"},"llm_api_key_set":false,"search_api_key":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"67139c4a-9828-4798-afee-5baadc865d8e":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"18b0e94d-9e90-4fb7-9d22-c16d3bcc9c6f":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-Access-Token","scopes":[]}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Access-Token","scopes":[]},"schema":{"title":"X-Access-Token","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyHeader","name":"X-Access-Token"}],"title":"APIKeyHeader"}]},"originalFileLocation":"openapi/openhands-cloud.json"},"subdomain":"allhandsai","siteName":"OpenHands Docs","title":"Update Legacy Org Defaults Settings - OpenHands Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-13T18:51:55.760Z","originalFileLocation":"openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings.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=\"light\"}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=\"Update org-default settings through the deprecated /llm wrapper.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OpenHands Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_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/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update Legacy Org Defaults Settings - OpenHands Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update org-default settings through the deprecated /llm wrapper.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenHands Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://allhandsai.mintlify.site/_mintlify/api/og/v2?division=Orgs\u0026amp;title=Update+Legacy+Org+Defaults+Settings\u0026amp;description=Update+org-default+settings+through+the+deprecated+%60%60%2Fllm%60%60+wrapper.\u0026amp;theme=2eb43b0b1453a2072ec6e8c0\u0026amp;signature=cec3507164d09f755d9dea373fcab19c80f803e55cbe360448b6ccdc3b900cd8\">\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=\"Update Legacy Org Defaults Settings - OpenHands Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update org-default settings through the deprecated /llm wrapper.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://allhandsai.mintlify.site/_mintlify/api/og/v2?division=Orgs\u0026amp;title=Update+Legacy+Org+Defaults+Settings\u0026amp;description=Update+org-default+settings+through+the+deprecated+%60%60%2Fllm%60%60+wrapper.\u0026amp;theme=2eb43b0b1453a2072ec6e8c0\u0026amp;signature=cec3507164d09f755d9dea373fcab19c80f803e55cbe360448b6ccdc3b900cd8\">\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/allhandsai/NJyVpY-OoVetrcKF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenHands Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#99873c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openhands.dev/#organization\",\"name\":\"OpenHands Docs\",\"url\":\"https://docs.openhands.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/allhandsai/DjhqLcIy_hW6pRTg/logo/light.png?fit=max\u0026auto=format\u0026n=DjhqLcIy_hW6pRTg\u0026q=85\u0026s=49b636402b03f7279ca5e1afefeec1d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openhands.dev#website\",\"name\":\"OpenHands Docs\",\"url\":\"https://docs.openhands.dev\",\"publisher\":{\"@id\":\"https://docs.openhands.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings#webpage\",\"url\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings\",\"name\":\"Update Legacy Org Defaults Settings\",\"description\":\"Update org-default settings through the deprecated /llm wrapper.\",\"dateModified\":\"2026-08-13T18:51:55.760Z\",\"isPartOf\":{\"@id\":\"https://docs.openhands.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cloud API\",\"item\":\"https://docs.openhands.dev/openhands/usage/cloud/cloud-api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST API Reference\",\"item\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/events/search-events\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Orgs\",\"item\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/list-user-orgs\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Update Legacy Org Defaults Settings\",\"item\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings#apireference\",\"headline\":\"Update Legacy Org Defaults Settings\",\"name\":\"Update Legacy Org Defaults Settings\",\"description\":\"Update org-default settings through the deprecated /llm wrapper.\",\"url\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openhands.dev/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings#webpage\"},\"dateModified\":\"2026-08-13T18:51:55.760Z\",\"publisher\":{\"@id\":\"https://docs.openhands.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openhands.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OpenHands Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"OpenHands Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings.md","siteName":"OpenHands Docs","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/overview/introduction"}]},{"tab":"Agent Canvas","pages":[{"title":"Agent Canvas","href":"/openhands/usage/agent-canvas/overview"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk"}]},{"tab":"Cloud","pages":[{"group":"OpenHands Cloud","pages":[{"title":"Getting Started","href":"/openhands/usage/cloud/openhands-cloud"},{"title":"Cloud UI","href":"/openhands/usage/cloud/cloud-ui"}]},{"group":"Settings","pages":[{"title":"API Keys Settings","href":"/openhands/usage/settings/api-keys-settings"}]},{"group":"Integrations","pages":[{"title":"Integrations Settings","href":"/openhands/usage/settings/integrations-settings"},{"title":"GitHub Integration","href":"/openhands/usage/cloud/github-installation"},{"title":"GitLab Integration","href":"/openhands/usage/cloud/gitlab-installation"},{"title":"Bitbucket Integration","href":"/openhands/usage/cloud/bitbucket-installation"},{"title":"Slack Integration","href":"/openhands/usage/cloud/slack-installation"},{"title":"Jira Cloud Integration","href":"/openhands/usage/cloud/project-management/jira-integration"}]},{"group":"Cloud API","pages":[{"title":"Cloud API Overview","href":"/openhands/usage/cloud/cloud-api"},{"title":"Plugin Launcher","href":"/openhands/usage/cloud/plugin-launcher"},{"group":"REST API Reference","expanded":false,"pages":[{"group":"Events","pages":[{"title":"Search Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/conversation/{conversation_id}/events/search","href":"/openhands/usage/cloud/api-reference/events/search-events"},{"title":"Count Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/conversation/{conversation_id}/events/count","href":"/openhands/usage/cloud/api-reference/events/count-events"},{"title":"Batch Get Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/conversation/{conversation_id}/events","href":"/openhands/usage/cloud/api-reference/events/batch-get-events"}]},{"group":"Conversations","pages":[{"title":"Search App Conversations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/search","href":"/openhands/usage/cloud/api-reference/conversations/search-app-conversations"},{"title":"Count App Conversations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/count","href":"/openhands/usage/cloud/api-reference/conversations/count-app-conversations"},{"title":"Batch Get App Conversations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations","href":"/openhands/usage/cloud/api-reference/conversations/batch-get-app-conversations"},{"title":"Start App Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/app-conversations","href":"/openhands/usage/cloud/api-reference/conversations/start-app-conversation"},{"title":"Delete App Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/v1/app-conversations/{conversation_id}","href":"/openhands/usage/cloud/api-reference/conversations/delete-app-conversation"},{"title":"Update App Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json patch /api/v1/app-conversations/{conversation_id}","href":"/openhands/usage/cloud/api-reference/conversations/update-app-conversation"},{"title":"Send Message To Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/app-conversations/{conversation_id}/send-message","href":"/openhands/usage/cloud/api-reference/conversations/send-message-to-conversation"},{"title":"Switch Conversation Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/app-conversations/{conversation_id}/switch_profile","href":"/openhands/usage/cloud/api-reference/conversations/switch-conversation-profile"},{"title":"Switch Conversation Acp Model","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/app-conversations/{conversation_id}/switch_acp_model","href":"/openhands/usage/cloud/api-reference/conversations/switch-conversation-acp-model"},{"title":"Stream App Conversation Start","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/app-conversations/stream-start","href":"/openhands/usage/cloud/api-reference/conversations/stream-app-conversation-start"},{"title":"Search App Conversation Start Tasks","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/start-tasks/search","href":"/openhands/usage/cloud/api-reference/conversations/search-app-conversation-start-tasks"},{"title":"Count App Conversation Start Tasks","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/start-tasks/count","href":"/openhands/usage/cloud/api-reference/conversations/count-app-conversation-start-tasks"},{"title":"Batch Get App Conversation Start Tasks","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/start-tasks","href":"/openhands/usage/cloud/api-reference/conversations/batch-get-app-conversation-start-tasks"},{"title":"Read Conversation File","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/{conversation_id}/file","href":"/openhands/usage/cloud/api-reference/conversations/read-conversation-file"},{"title":"Get Conversation Git Changes","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/{conversation_id}/git/changes","href":"/openhands/usage/cloud/api-reference/conversations/get-conversation-git-changes"},{"title":"Get Conversation Git Diff","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/{conversation_id}/git/diff","href":"/openhands/usage/cloud/api-reference/conversations/get-conversation-git-diff"},{"title":"Get Conversation Skills","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/{conversation_id}/skills","href":"/openhands/usage/cloud/api-reference/conversations/get-conversation-skills"},{"title":"Get Conversation Hooks","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/{conversation_id}/hooks","href":"/openhands/usage/cloud/api-reference/conversations/get-conversation-hooks"},{"title":"Export Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/app-conversations/{conversation_id}/download","href":"/openhands/usage/cloud/api-reference/conversations/export-conversation"}]},{"group":"Pending Messages","pages":[{"title":"Queue Pending Message","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/conversations/{conversation_id}/pending-messages","href":"/openhands/usage/cloud/api-reference/pending-messages/queue-pending-message"}]},{"group":"Sandbox","pages":[{"title":"Search Sandboxes","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/sandboxes/search","href":"/openhands/usage/cloud/api-reference/sandbox/search-sandboxes"},{"title":"Batch Get Sandboxes","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/sandboxes","href":"/openhands/usage/cloud/api-reference/sandbox/batch-get-sandboxes"},{"title":"Start Sandbox","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/sandboxes","href":"/openhands/usage/cloud/api-reference/sandbox/start-sandbox"},{"title":"Pause Sandbox","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/sandboxes/{sandbox_id}/pause","href":"/openhands/usage/cloud/api-reference/sandbox/pause-sandbox"},{"title":"Resume Sandbox","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/sandboxes/{sandbox_id}/resume","href":"/openhands/usage/cloud/api-reference/sandbox/resume-sandbox"},{"title":"Delete Sandbox","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/v1/sandboxes/{id}","href":"/openhands/usage/cloud/api-reference/sandbox/delete-sandbox"},{"title":"List Secret Names","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/sandboxes/{sandbox_id}/settings/secrets","href":"/openhands/usage/cloud/api-reference/sandbox/list-secret-names"},{"title":"Get Secret Value","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/sandboxes/{sandbox_id}/settings/secrets/{secret_name}","href":"/openhands/usage/cloud/api-reference/sandbox/get-secret-value"},{"title":"Search Sandbox Specs","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/sandbox-specs/search","href":"/openhands/usage/cloud/api-reference/sandbox/search-sandbox-specs"},{"title":"Batch Get Sandbox Specs","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/sandbox-specs","href":"/openhands/usage/cloud/api-reference/sandbox/batch-get-sandbox-specs"}]},{"group":"Settings","pages":[{"title":"Load Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/settings","href":"/openhands/usage/cloud/api-reference/settings/load-settings"},{"title":"Store Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/settings","href":"/openhands/usage/cloud/api-reference/settings/store-settings"},{"title":"Load Settings Schema","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/settings/agent-schema","href":"/openhands/usage/cloud/api-reference/settings/load-settings-schema"},{"title":"Load Conversation Settings Schema","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/settings/conversation-schema","href":"/openhands/usage/cloud/api-reference/settings/load-conversation-settings-schema"},{"title":"List Profiles","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/settings/profiles","href":"/openhands/usage/cloud/api-reference/settings/list-profiles"},{"title":"Get Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/settings/profiles/{name}","href":"/openhands/usage/cloud/api-reference/settings/get-profile"},{"title":"Save Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/settings/profiles/{name}","href":"/openhands/usage/cloud/api-reference/settings/save-profile"},{"title":"Delete Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/v1/settings/profiles/{name}","href":"/openhands/usage/cloud/api-reference/settings/delete-profile"},{"title":"Activate Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/settings/profiles/{name}/activate","href":"/openhands/usage/cloud/api-reference/settings/activate-profile"},{"title":"Rename Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/settings/profiles/{name}/rename","href":"/openhands/usage/cloud/api-reference/settings/rename-profile"}]},{"group":"Secrets","pages":[{"title":"Store Provider Tokens","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/secrets/git-providers","href":"/openhands/usage/cloud/api-reference/secrets/store-provider-tokens"},{"title":"Unset Provider Tokens","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/v1/secrets/git-providers","href":"/openhands/usage/cloud/api-reference/secrets/unset-provider-tokens"},{"title":"Search Custom Secrets","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/secrets/search","href":"/openhands/usage/cloud/api-reference/secrets/search-custom-secrets"},{"title":"Create Custom Secret","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/secrets","href":"/openhands/usage/cloud/api-reference/secrets/create-custom-secret"},{"title":"Update Custom Secret","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json put /api/v1/secrets/{secret_id}","href":"/openhands/usage/cloud/api-reference/secrets/update-custom-secret"},{"title":"Delete Custom Secret","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/v1/secrets/{secret_id}","href":"/openhands/usage/cloud/api-reference/secrets/delete-custom-secret"}]},{"group":"User","pages":[{"title":"Get Current User Git Info","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/users/git-info","href":"/openhands/usage/cloud/api-reference/user/get-current-user-git-info"},{"title":"Get Current User Saas","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/users/me","href":"/openhands/usage/cloud/api-reference/user/get-current-user-saas"},{"title":"Get Current User Git Organizations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/users/git-organizations","href":"/openhands/usage/cloud/api-reference/user/get-current-user-git-organizations"}]},{"group":"Skills","pages":[{"title":"Search Skills","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/skills/search","href":"/openhands/usage/cloud/api-reference/skills/search-skills"},{"title":"Get Marketplace Skills","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/skills/marketplace-skills","href":"/openhands/usage/cloud/api-reference/skills/get-marketplace-skills"}]},{"group":"Webhooks","pages":[{"title":"On Conversation Update","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/webhooks/conversations","href":"/openhands/usage/cloud/api-reference/webhooks/on-conversation-update"},{"title":"On Event","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/v1/webhooks/events/{conversation_id}","href":"/openhands/usage/cloud/api-reference/webhooks/on-event"},{"title":"Get Secret","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/webhooks/secrets","href":"/openhands/usage/cloud/api-reference/webhooks/get-secret"}]},{"group":"Config","pages":[{"title":"Get Web Client Config","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/web-client/config","href":"/openhands/usage/cloud/api-reference/config/get-web-client-config"},{"title":"Search Models","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/config/models/search","href":"/openhands/usage/cloud/api-reference/config/search-models"},{"title":"Search Providers","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/config/providers/search","href":"/openhands/usage/cloud/api-reference/config/search-providers"}]},{"group":"Git","pages":[{"title":"Search User Installations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/git/installations/search","href":"/openhands/usage/cloud/api-reference/git/search-user-installations"},{"title":"Search Repositories","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/git/repositories/search","href":"/openhands/usage/cloud/api-reference/git/search-repositories"},{"title":"Search Branches","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/git/branches/search","href":"/openhands/usage/cloud/api-reference/git/search-branches"},{"title":"Search Suggested Tasks","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/v1/git/suggested-tasks/search","href":"/openhands/usage/cloud/api-reference/git/search-suggested-tasks"}]},{"group":"Status","pages":[{"title":"Alive","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /alive","href":"/openhands/usage/cloud/api-reference/status/alive"},{"title":"Health","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /health","href":"/openhands/usage/cloud/api-reference/status/health"},{"title":"Get Server Info","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /server_info","href":"/openhands/usage/cloud/api-reference/status/get-server-info"}]},{"group":"API Reference","pages":[{"title":"Is Ready","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /ready","href":"/openhands/usage/cloud/api-reference/is-ready"},{"title":"Is Saas","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /saas","href":"/openhands/usage/cloud/api-reference/is-saas"},{"title":"Authenticate","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/authenticate","href":"/openhands/usage/cloud/api-reference/authenticate"},{"title":"Accept Tos","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/accept_tos","href":"/openhands/usage/cloud/api-reference/accept-tos"},{"title":"Onboarding Status","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/onboarding_status","href":"/openhands/usage/cloud/api-reference/onboarding-status"},{"title":"Complete Onboarding","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/complete_onboarding","href":"/openhands/usage/cloud/api-reference/complete-onboarding"},{"title":"Logout","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/logout","href":"/openhands/usage/cloud/api-reference/logout"},{"title":"Refresh Tokens","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/refresh-tokens","href":"/openhands/usage/cloud/api-reference/refresh-tokens"},{"title":"Keycloak Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /oauth/keycloak/callback","href":"/openhands/usage/cloud/api-reference/keycloak-callback"},{"title":"Keycloak Offline Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /oauth/keycloak/offline/callback","href":"/openhands/usage/cloud/api-reference/keycloak-offline-callback"},{"title":"Github Dummy Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /oauth/github/callback","href":"/openhands/usage/cloud/api-reference/github-dummy-callback"},{"title":"Device Authorization","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /oauth/device/authorize","href":"/openhands/usage/cloud/api-reference/device-authorization"},{"title":"Device Token","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /oauth/device/token","href":"/openhands/usage/cloud/api-reference/device-token"},{"title":"Device Verification Authenticated","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /oauth/device/verify-authenticated","href":"/openhands/usage/cloud/api-reference/device-verification-authenticated"},{"title":"Get User App Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/users/app","href":"/openhands/usage/cloud/api-reference/get-user-app-settings"},{"title":"Update User App Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/users/app","href":"/openhands/usage/cloud/api-reference/update-user-app-settings"},{"title":"Github Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/github/events","href":"/openhands/usage/cloud/api-reference/github-events"},{"title":"Gitlab Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/gitlab/events","href":"/openhands/usage/cloud/api-reference/gitlab-events"},{"title":"Get Gitlab Resources","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /integration/gitlab/resources","href":"/openhands/usage/cloud/api-reference/get-gitlab-resources"},{"title":"Reinstall Gitlab Webhook","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/gitlab/reinstall-webhook","href":"/openhands/usage/cloud/api-reference/reinstall-gitlab-webhook"},{"title":"Bitbucket Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/bitbucket/events","href":"/openhands/usage/cloud/api-reference/bitbucket-events"},{"title":"List Pending Invitations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/members/invite","href":"/openhands/usage/cloud/api-reference/list-pending-invitations"},{"title":"Create Invitation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/members/invite","href":"/openhands/usage/cloud/api-reference/create-invitation"},{"title":"Revoke Invitation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/organizations/{org_id}/members/invite/{invitation_id}","href":"/openhands/usage/cloud/api-reference/revoke-invitation"},{"title":"Accept Invitation Redirect","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/members/invite/accept","href":"/openhands/usage/cloud/api-reference/accept-invitation-redirect"},{"title":"Accept Invitation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/members/invite/accept","href":"/openhands/usage/cloud/api-reference/accept-invitation"},{"title":"Install","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /slack/install","href":"/openhands/usage/cloud/api-reference/install"},{"title":"Install Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /slack/install-callback","href":"/openhands/usage/cloud/api-reference/install-callback"},{"title":"Keycloak Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /slack/keycloak-callback","href":"/openhands/usage/cloud/api-reference/keycloak-callback-1"},{"title":"On Event","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /slack/on-event","href":"/openhands/usage/cloud/api-reference/on-event"},{"title":"On Options Load","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /slack/on-options-load","href":"/openhands/usage/cloud/api-reference/on-options-load"},{"title":"On Form Interaction","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /slack/on-form-interaction","href":"/openhands/usage/cloud/api-reference/on-form-interaction"},{"title":"Jira Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/jira/events","href":"/openhands/usage/cloud/api-reference/jira-events"},{"title":"Create Jira Workspace","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/jira/workspaces","href":"/openhands/usage/cloud/api-reference/create-jira-workspace"},{"title":"Get Current Workspace Link","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /integration/jira/workspaces/link","href":"/openhands/usage/cloud/api-reference/get-current-workspace-link"},{"title":"Create Workspace Link","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/jira/workspaces/link","href":"/openhands/usage/cloud/api-reference/create-workspace-link"},{"title":"Jira Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /integration/jira/callback","href":"/openhands/usage/cloud/api-reference/jira-callback"},{"title":"Unlink Workspace","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /integration/jira/workspaces/unlink","href":"/openhands/usage/cloud/api-reference/unlink-workspace"},{"title":"Validate Workspace Integration","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /integration/jira/workspaces/validate/{workspace_name}","href":"/openhands/usage/cloud/api-reference/validate-workspace-integration"},{"title":"Update Email","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/email","href":"/openhands/usage/cloud/api-reference/update-email"},{"title":"Resend Email Verification","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json put /api/email/resend","href":"/openhands/usage/cloud/api-reference/resend-email-verification"},{"title":"Verified Email","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/email/verified","href":"/openhands/usage/cloud/api-reference/verified-email"}]},{"group":"Billing","pages":[{"title":"Get Credits","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/billing/credits","href":"/openhands/usage/cloud/api-reference/billing/get-credits"},{"title":"Get Subscription Access","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/billing/subscription-access","href":"/openhands/usage/cloud/api-reference/billing/get-subscription-access"},{"title":"Has Payment Method","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/billing/has-payment-method","href":"/openhands/usage/cloud/api-reference/billing/has-payment-method"},{"title":"Create Customer Setup Session","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/billing/create-customer-setup-session","href":"/openhands/usage/cloud/api-reference/billing/create-customer-setup-session"},{"title":"Create Checkout Session","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/billing/create-checkout-session","href":"/openhands/usage/cloud/api-reference/billing/create-checkout-session"},{"title":"Success Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/billing/success","href":"/openhands/usage/cloud/api-reference/billing/success-callback"},{"title":"Cancel Callback","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/billing/cancel","href":"/openhands/usage/cloud/api-reference/billing/cancel-callback"}]},{"group":"Sharing","pages":[{"title":"Batch Get Shared Conversations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/shared-conversations","href":"/openhands/usage/cloud/api-reference/sharing/batch-get-shared-conversations"},{"title":"Search Shared Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/shared-events/search","href":"/openhands/usage/cloud/api-reference/sharing/search-shared-events"},{"title":"Count Shared Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/shared-events/count","href":"/openhands/usage/cloud/api-reference/sharing/count-shared-events"},{"title":"Batch Get Shared Events","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/shared-events","href":"/openhands/usage/cloud/api-reference/sharing/batch-get-shared-events"},{"title":"Get Shared Event","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/shared-events/{conversation_id}/{event_id}","href":"/openhands/usage/cloud/api-reference/sharing/get-shared-event"}]},{"group":"Keys","pages":[{"title":"Check Byor Permitted","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/keys/llm/byor/permitted","href":"/openhands/usage/cloud/api-reference/keys/check-byor-permitted"},{"title":"List Api Keys","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/keys","href":"/openhands/usage/cloud/api-reference/keys/list-api-keys"},{"title":"Create Api Key","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/keys","href":"/openhands/usage/cloud/api-reference/keys/create-api-key"},{"title":"Delete Api Key","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/keys/{key_id}","href":"/openhands/usage/cloud/api-reference/keys/delete-api-key"},{"title":"Get Current Api Key","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/keys/current","href":"/openhands/usage/cloud/api-reference/keys/get-current-api-key"},{"title":"Refresh Managed Llm Api Key","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/keys/llm/managed/refresh","href":"/openhands/usage/cloud/api-reference/keys/refresh-managed-llm-api-key"},{"title":"Get Llm Api Key For Byor","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/keys/llm/byor","href":"/openhands/usage/cloud/api-reference/keys/get-llm-api-key-for-byor"},{"title":"Refresh Llm Api Key For Byor","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/keys/llm/byor/refresh","href":"/openhands/usage/cloud/api-reference/keys/refresh-llm-api-key-for-byor"}]},{"group":"Service","pages":[{"title":"Service Health","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/service/health","href":"/openhands/usage/cloud/api-reference/service/service-health"},{"title":"Get Or Create Api Key For User","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/service/users/{user_id}/orgs/{org_id}/api-keys","href":"/openhands/usage/cloud/api-reference/service/get-or-create-api-key-for-user"},{"title":"Delete User Api Key","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/service/users/{user_id}/orgs/{org_id}/api-keys/{key_name}","href":"/openhands/usage/cloud/api-reference/service/delete-user-api-key"}]},{"group":"Orgs","pages":[{"title":"List User Orgs","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations","href":"/openhands/usage/cloud/api-reference/orgs/list-user-orgs"},{"title":"Create Org","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations","href":"/openhands/usage/cloud/api-reference/orgs/create-org"},{"title":"Get Org Defaults Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/settings","href":"/openhands/usage/cloud/api-reference/orgs/get-org-defaults-settings"},{"title":"Update Org Defaults Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json patch /api/organizations/{org_id}/settings","href":"/openhands/usage/cloud/api-reference/orgs/update-org-defaults-settings"},{"title":"Get Legacy Org Defaults Settings","description":"Get org-default settings through the deprecated ``/llm`` wrapper.\n\nThe org is the request's *effective* org (``X-Org-Id`` > API-key\nbinding > ``user.current_org_id``).","deprecated":true,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/llm","href":"/openhands/usage/cloud/api-reference/orgs/get-legacy-org-defaults-settings"},{"title":"Update Legacy Org Defaults Settings","deprecated":true,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/llm","href":"/openhands/usage/cloud/api-reference/orgs/update-legacy-org-defaults-settings"},{"title":"Get Org App Settings","description":"Get organization app settings for the user's current organization.\n\nThis endpoint retrieves application settings for the authenticated user's\ncurrent organization. Access requires the MANAGE_APPLICATION_SETTINGS permission,\nwhich is granted to all organization members (member, admin, and owner roles).\n\nArgs:\n service: OrgAppSettingsService (injected by dependency)\n\nReturns:\n OrgAppSettingsResponse: The organization app settings\n\nRaises:\n HTTPException: 401 if user is not authenticated\n HTTPException: 403 if user lacks MANAGE_APPLICATION_SETTINGS permission\n HTTPException: 404 if current organization not found","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/app","href":"/openhands/usage/cloud/api-reference/orgs/get-org-app-settings"},{"title":"Update Org App Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/app","href":"/openhands/usage/cloud/api-reference/orgs/update-org-app-settings"},{"title":"Get Org","deprecated":true,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}","href":"/openhands/usage/cloud/api-reference/orgs/get-org"},{"title":"Delete Org","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/organizations/{org_id}","href":"/openhands/usage/cloud/api-reference/orgs/delete-org"},{"title":"Update Org","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json patch /api/organizations/{org_id}","href":"/openhands/usage/cloud/api-reference/orgs/update-org"},{"title":"Get Me","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/me","href":"/openhands/usage/cloud/api-reference/orgs/get-me"},{"title":"Get Org Members","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/members","href":"/openhands/usage/cloud/api-reference/orgs/get-org-members"},{"title":"Get Org Members Count","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/members/count","href":"/openhands/usage/cloud/api-reference/orgs/get-org-members-count"},{"title":"Get Org Members Financial","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/members/financial","href":"/openhands/usage/cloud/api-reference/orgs/get-org-members-financial"},{"title":"Get Org Budget Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/budgets","href":"/openhands/usage/cloud/api-reference/orgs/get-org-budget-settings"},{"title":"Update Org Budget Settings","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json patch /api/organizations/{org_id}/budgets","href":"/openhands/usage/cloud/api-reference/orgs/update-org-budget-settings"},{"title":"Upsert Org Budget Override","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json put /api/organizations/{org_id}/budgets/overrides/{user_id}","href":"/openhands/usage/cloud/api-reference/orgs/upsert-org-budget-override"},{"title":"Delete Org Budget Override","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/organizations/{org_id}/budgets/overrides/{user_id}","href":"/openhands/usage/cloud/api-reference/orgs/delete-org-budget-override"},{"title":"Remove Org Member","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/organizations/{org_id}/members/{user_id}","href":"/openhands/usage/cloud/api-reference/orgs/remove-org-member"},{"title":"Update Org Member","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json patch /api/organizations/{org_id}/members/{user_id}","href":"/openhands/usage/cloud/api-reference/orgs/update-org-member"},{"title":"Switch Org","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/switch","href":"/openhands/usage/cloud/api-reference/orgs/switch-org"},{"title":"Get Git Claims","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/git-claims","href":"/openhands/usage/cloud/api-reference/orgs/get-git-claims"},{"title":"Claim Git Organization","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/git-claims","href":"/openhands/usage/cloud/api-reference/orgs/claim-git-organization"},{"title":"Disconnect Git Organization","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/organizations/{org_id}/git-claims/{claim_id}","href":"/openhands/usage/cloud/api-reference/orgs/disconnect-git-organization"},{"title":"List Org Conversations","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/conversations","href":"/openhands/usage/cloud/api-reference/orgs/list-org-conversations"},{"title":"Get Org Conversation Stats","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/conversations/stats","href":"/openhands/usage/cloud/api-reference/orgs/get-org-conversation-stats"},{"title":"Get Org Conversation Usage Stats","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/conversations/usage-stats","href":"/openhands/usage/cloud/api-reference/orgs/get-org-conversation-usage-stats"},{"title":"Get Org Conversation User Usage Stats","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/conversations/user-usage","href":"/openhands/usage/cloud/api-reference/orgs/get-org-conversation-user-usage-stats"},{"title":"Export Org Conversations Csv","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/conversations/export","href":"/openhands/usage/cloud/api-reference/orgs/export-org-conversations-csv"},{"title":"Get Org Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/conversations/{conversation_id}","href":"/openhands/usage/cloud/api-reference/orgs/get-org-conversation"},{"title":"Stop Org Conversation","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/conversations/{conversation_id}/stop","href":"/openhands/usage/cloud/api-reference/orgs/stop-org-conversation"}]},{"group":"Admin","pages":[{"title":"List Super Admins","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/admin/super-admins","href":"/openhands/usage/cloud/api-reference/admin/list-super-admins"},{"title":"Grant Super Admin","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/admin/super-admins","href":"/openhands/usage/cloud/api-reference/admin/grant-super-admin"},{"title":"Revoke Super Admin","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/admin/super-admins/{user_id}","href":"/openhands/usage/cloud/api-reference/admin/revoke-super-admin"}]},{"group":"Organization Profiles","pages":[{"title":"List Profiles","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/profiles","href":"/openhands/usage/cloud/api-reference/organization-profiles/list-profiles"},{"title":"Get Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/organizations/{org_id}/profiles/{name}","href":"/openhands/usage/cloud/api-reference/organization-profiles/get-profile"},{"title":"Save Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/profiles/{name}","href":"/openhands/usage/cloud/api-reference/organization-profiles/save-profile"},{"title":"Delete Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/organizations/{org_id}/profiles/{name}","href":"/openhands/usage/cloud/api-reference/organization-profiles/delete-profile"},{"title":"Activate Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/profiles/{name}/activate","href":"/openhands/usage/cloud/api-reference/organization-profiles/activate-profile"},{"title":"Rename Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/organizations/{org_id}/profiles/{name}/rename","href":"/openhands/usage/cloud/api-reference/organization-profiles/rename-profile"}]},{"group":"Agent Profiles","pages":[{"title":"List Agent Profiles","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/agent-profiles","href":"/openhands/usage/cloud/api-reference/agent-profiles/list-agent-profiles"},{"title":"Get Agent Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/agent-profiles/{name}","href":"/openhands/usage/cloud/api-reference/agent-profiles/get-agent-profile"},{"title":"Save Agent Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/agent-profiles/{name}","href":"/openhands/usage/cloud/api-reference/agent-profiles/save-agent-profile"},{"title":"Delete Agent Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/agent-profiles/{name}","href":"/openhands/usage/cloud/api-reference/agent-profiles/delete-agent-profile"},{"title":"Rename Agent Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/agent-profiles/{name}/rename","href":"/openhands/usage/cloud/api-reference/agent-profiles/rename-agent-profile"},{"title":"Activate Agent Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/agent-profiles/{profile_id}/activate","href":"/openhands/usage/cloud/api-reference/agent-profiles/activate-agent-profile"},{"title":"Materialize Agent Profile","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/agent-profiles/{name}/materialize","href":"/openhands/usage/cloud/api-reference/agent-profiles/materialize-agent-profile"}]},{"group":"Verified Models","pages":[{"title":"Search Verified Models","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json get /api/admin/verified-models","href":"/openhands/usage/cloud/api-reference/verified-models/search-verified-models"},{"title":"Create Verified Model","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/admin/verified-models","href":"/openhands/usage/cloud/api-reference/verified-models/create-verified-model"},{"title":"Update Verified Model","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json put /api/admin/verified-models/{provider}/{model_name}","href":"/openhands/usage/cloud/api-reference/verified-models/update-verified-model"},{"title":"Delete Verified Model","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json delete /api/admin/verified-models/{provider}/{model_name}","href":"/openhands/usage/cloud/api-reference/verified-models/delete-verified-model"}]},{"group":"Analytics","pages":[{"title":"Track Frontend Event","deprecated":null,"version":null,"openapi":"/openapi/openhands-cloud.json post /api/analytics/events","href":"/openhands/usage/cloud/api-reference/analytics/track-frontend-event"}]}]}]}]},{"tab":"Enterprise","pages":[{"title":"Enterprise","href":"/enterprise"}]},{"tab":"Enterprise Cookbook","pages":[{"title":"Enterprise Cookbook","href":"/cookbook"}]}]},"basePath":"","title":"Update Legacy Org Defaults Settings - OpenHands Docs","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}