Use this API to create a new custom agent configuration. The engine stores the agent in Firestore and writes version 1 to the agent’s versions subcollection. The schema uses .passthrough(), so any additional behavioral fields are forwarded to the service layer.
Processed/enhanced instructions used by the AI execution. Required whenever the execution strategy consumes a prompt — "ai" (the default), "service+ai", "stagehand-agent", and "mcp-tools". Only pure "service" agents may omit it.
Per-strategy option overrides, keyed by strategy name (see below). When strategies includes "rest-api", strategyOptions["rest-api"] is required (see below).
aiConfig
object
no
AI provider/model override for the gather phase (see below).
Execution configuration. Send {} to accept the defaults (the "ai" strategy).
Field
Type
Required
Description
executionStrategy
string
no
"ai" (default), "service", "service+ai", "stagehand-agent", or "mcp-tools".
serviceId
string
no
Required when executionStrategy is "service" or "service+ai". Values: "broken-links", "crawler", "screenshot", "accessibility-checker", "og-image-checker".
aiConfig
object
no
AI provider/model override for the execute phase (see below).
mcpServers
object[]
no
Required (≥1) when executionStrategy is "mcp-tools". Remote MCP servers the model may call during the tool loop (see below).
responseDescriptions
object
no
Per-field descriptions guiding AI response shaping (see below).
Accepted and stored, but not consumed. See the note below.
AI response formatting is not implemented yet. useAiFormatting, formattingPrompt, and response.aiConfig are accepted and stored, but nothing reads them at runtime, so setting them has no effect on the agent’s output.
Post-processing pipeline configuration. All stages default to enabled when omitted or when enabled is not explicitly false.
Field
Type
Required
Description
guardrails
object
no
{ enabled?: boolean }: finding quality pipeline — deduplicates findings (identical source URL + target text + occurrence + issue type) and sanitizes HTML/XSS from all text fields.
deletePreviousSuggestions
object
no
{ enabled?: boolean }: per-URL delete-and-recreate that clears the prior run’s suggestions for the URL before writing the new ones. This is the active dedup mechanism.
annotations
object
no
{ enabled?: boolean, strategy?: string }: strategy is "findings", "word-level", "page-level", or "none".
analytics
object
no
{ enabled?: boolean }: analytics event tracking.
matchAndMerge
object
no
Deprecated / ignored.{ enabled?: boolean }: replaced by deletePreviousSuggestions. Still accepted for backward compatibility but has no effect.
customProcessors
string[]
no
Custom post-processor names.
findingEnrichment
object
no
{ commentFormat?: "plain" | "legacy" }: the layout of the comment each finding posts. Default for custom agents: "legacy". See Comment format.
Unknown keys inside postProcess are rejected. Pin resolution (anchoring visual findings to element coordinates) always runs as part of the pipeline and is not configurable via this field.
Each userContextFields[] entry: id (min 1), title (min 1), type ("string" / "number" / "boolean"), optional required (boolean), optional example (string; sample value surfaced in setup UIs), optional defaultValue (string / number / boolean).At run time, a field that is missing, null, or an empty string takes its defaultValue and then satisfies required.An id cannot be one of the reserved keys every agent honors: the run-scope keys focusIssueTypes, sourceAnnotationId, sourcePageUrl, and sourceElementXpath, or the run-control keys forceFullRun and changeDetection (see Run Execution). The request returns INVALID_ARGUMENT with This userContextFields id is reserved for run scope or run control (focusIssueTypes, sourceAnnotationId, sourcePageUrl, sourceElementXpath, forceFullRun, changeDetection); give the field another id. The key names are case-sensitive.
input.supportedVariables is response-only. It lists the template variables the agent’s prompt can reference (e.g. {{restApiData}}, {{memoryContext}}) and is server-computed from contextGathering.strategies and input.variableKeys. On create, anything you send in this field is discarded. On a version update it is recomputed only when those inputs change.
Required when strategies includes "rest-api". Each configured endpoint is fetched at execution time and the resolved URL + description + JSON-stringified response is injected into the prompt via the {{restApiData}} template variable.
Auth secret handling (redaction-on-read):token, password, and header values are encrypted before the Firestore write and are never returned to clients. On read (Get / List Agents), encrypted secret fields are replaced with "__redacted__". To rotate a secret, send the new plaintext value on update; to keep an existing secret, omit the field.
When execution.executionStrategy is "mcp-tools", the agent runs a model-driven tool loop: at execution time the engine connects to each remote MCP (Model Context Protocol) server declared in execution.mcpServers, lists its tools, exposes them to the model, and runs a multi-turn call→tool→call loop until the model emits a final structured response. For example, a docs code-verification agent can check on-page snippets live against your documentation MCP server instead of a pre-ingested corpus.
The "mcp-tools" strategy is provider-agnostic (works on both Claude and Gemini) and requires a non-empty top-level instructions field and at least one entry in execution.mcpServers. Omitting either fails validation.
execution.mcpServers is an array of 1–5 server objects. Each server object is strictly validated (unknown keys rejected):
Field
Type
Required
Description
id
string
yes
Min 1 char. Stable identifier for the server (used in logs + findings).
url
string
yes
Remote MCP server URL. Must start with http(s):// or contain a {{template}} that resolves to one. SSRF-validated at connect time (no internal/loopback/link-local hosts; redirects re-validated, max 3 hops).
name
string
no
Human-readable label.
description
string
no
What this server provides (e.g. "Velt docs MCP").
transport
string
no
Transport type. Only "http" is supported (Streamable HTTP with SSE fallback). Defaults to "http".
auth
object
no
Auth config. Discriminated union (none | bearer | basic | header); same shape as the rest-api strategy. Secret fields are encrypted at rest and redacted on read.
allowedTools
string[]
no
Allowlist of tool names. When set, only these tools are exposed/callable. Up to 64 tools per server are exposed.
timeoutMs
number
no
Per-request timeout (ms) for connect/listTools/callTool. Default 30000, hard-capped 120000.
Auth secret handling (redaction-on-read): MCP token, password, and header values are encrypted before the Firestore write (using an MCP-specific encryption salt) and are never returned to clients. On read (Get / List Agents, List Versions), encrypted secret fields are replaced with "__redacted__". To rotate a secret, send the new plaintext value on a version update; to keep an existing secret, omit the field.
execution.aiConfig, contextGathering.aiConfig, and response.aiConfig all accept the same strictly-validated object. Unknown keys are rejected.
Field
Type
Description
provider
string
LLM provider: "gemini", "claude", or "openai". Defaults to the platform default, Claude on Velt’s hosted platform, when omitted. Persisted.
model
string
Accepted for backward compatibility and then discarded. Not persisted, and not validated against any allowlist.
responseMimeType
string
Accepted for backward compatibility and then discarded. Not persisted.
maxToolTurns
number
Tool-loop turn budget for the mcp-tools strategy. Integer 1..16; out-of-range values are rejected at config time. Default: 8. Persisted on execution.aiConfig only.
Only provider survives a write here (plus maxToolTurns on execution.aiConfig). The effective model is resolved on every execution rather than frozen onto the agent, so pinning model at create time does nothing and returns 200 without complaint.To pin a model, send aiConfig on the request instead: see Run Execution. That one is validated against a model allowlist and returns INVALID_ARGUMENT for anything off it.
execution.strategyOptions["<strategy>"] carries per-strategy runtime overrides. The stagehand-agent strategy opens the page in a browser, and the agent’s model drives it with browser tools in a loop. It accepts:
Option
Type
Default
Description
maxSteps
number
16
Most tool-calling turns. A larger value is lowered to 16.
systemPrompt
string
Text placed before the prompt the model receives.
useStructuredOutput
boolean
true
Return structured output.
waitUntil
string
"networkidle2"
"domcontentloaded" / "load" / "networkidle2".
navigationTimeout
number
30000
Navigation timeout in ms.
executeTimeout
number
540000
Time limit in ms for the whole run: opening the browser, loading the first page, and the tool loop. Keep it below the agent’s phase timeout.
perStepTimeout
number
90000
Time limit in ms for one step, a model turn plus its tool call. Past it, the model is asked for its final answer, which is kept.
toolTimeout
number
30000
Time limit in ms for one browser action or page read.
excludeTools
string[]
Browser tools to withhold from the model: any of act, observe, act_on_element, snapshot, extract, goto, read_page, scroll, go_back, wait.
mode and model are accepted but ignored: the loop runs on the provider and model resolved for each execution, as for every AI strategy (see AI config). A value of the wrong type is ignored, and the default applies.
When using stagehand-agent, set contextGathering.strategies: ["none"]; the agent handles navigation, interaction, and extraction itself. A run whose first page does not load fails with The page could not be opened: <url> (<reason>).
execution.knowledge pulls workspace knowledge from Velt Memory into the prompt. Strictly validated. Only these four fields are accepted:
Field
Type
Range
Description
useMemory
boolean
When true, retrieves knowledge/patterns/activities and injects them as {{memoryContext}}.
maxChunks
number
1–20
Max knowledge chunks to retrieve.
maxPatterns
number
1–20
Max learned patterns to retrieve.
maxActivities
number
1–20
Max recent activities to retrieve.
The legacy sourceIds field has been removed and maxChunks is now capped at 20 (previously 50). Sending sourceIds or any other extra key inside knowledge returns a 400 INVALID_ARGUMENT.
postProcess.findingEnrichment.commentFormat sets how each finding’s comment text is laid out when the agent posts it as a comment annotation. Built-in agents use "plain". Custom agents use "legacy" unless you set "plain". Any other value returns INVALID_ARGUMENT.
Format
commentText
commentHtml
"legacy"
{title}: {description}. When there is a suggestion, followed by a space, an em dash (U+2014), a space, and Suggestion: {suggestion}.
<b>{title}</b><br/>{description}<br/><br/><b>Suggestion:</b> {suggestion}. Values are not HTML-escaped, but link tags in them are removed and their text kept.
"plain"
{title}, a line break, {description}, a blank line, and {suggestion}, with no label. Empty parts are left out.
<b>{title}</b><br/>{description}<br/><br/>{suggestion}, with every value HTML-escaped.
For a finding titled “CTA uses non-brand color”, the two formats produce:
{ "commentText": "CTA uses non-brand color\nThe 'Buy now' button uses #FF5722 instead of #1A73E8\n\nChange background-color to #1A73E8", "commentHtml": "<b>CTA uses non-brand color</b><br/>The 'Buy now' button uses #FF5722 instead of #1A73E8<br/><br/>Change background-color to #1A73E8"}
{ "commentText": "CTA uses non-brand color: The 'Buy now' button uses #FF5722 instead of #1A73E8 \u2014 Suggestion: Change background-color to #1A73E8", "commentHtml": "<b>CTA uses non-brand color</b><br/>The 'Buy now' button uses #FF5722 instead of #1A73E8<br/><br/><b>Suggestion:</b> Change background-color to #1A73E8"}
Links in comments. Comment HTML links only to addresses the agent’s own code added, such as the Mobile Inspector’s screenshot link, which opens in a new tab. A link written by a model, for example in a custom agent’s title, description, or suggestion, appears as plain text, never as a link, in either format.The setting applies to new runs. To change it on an existing agent, send postProcess.findingEnrichment to Update Agent Version.
{ "data": { "name": "Simple Content Checker", "description": "Checks for broken images and missing alt text", "enabled": true, "instructions": "Check for broken images and missing alt text on the page.", "contextGathering": { "strategies": ["web-page-html"] }, "execution": {} }}
4. Agent that verifies content against an MCP server (mcp-tools)
{ "data": { "name": "Docs Code Verifier", "description": "Verifies on-page code snippets against the docs MCP", "enabled": true, "instructions": "For every code snippet on the page, use the documentation MCP tools to find the matching feature and verify the snippet is correct and up to date. Flag any snippet that does not match the docs.", "contextGathering": { "strategies": ["web-page-html"] }, "execution": { "executionStrategy": "mcp-tools", "mcpServers": [ { "id": "velt-docs", "name": "Velt Docs MCP", "description": "Live Velt documentation MCP server", "url": "https://velt.dev/docs/mcp", "transport": "http", "auth": { "type": "none" } } ] } }}
Errors:INVALID_ARGUMENT (Zod validation failure, e.g. missing name, description, enabled, contextGathering.strategies, or execution; an unknown key inside knowledge or postProcess; an invalid userContextFields.type; a userContextFields id that is a reserved run-scope or run-control key; missing instructions for an AI/stagehand-agent/mcp-tools strategy; or missing/invalid execution.mcpServers when executionStrategy is "mcp-tools") / RESOURCE_EXHAUSTED (workspace already has the maximum number of custom agents).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Velt","colors":{"primary":"#272728","light":"#D5D5D5","dark":"#000000"},"logo":{"light":"https://mintcdn.com/velt/gY7ilEx2g4g3-HVe/velt-logo-big-light.png?fit=max\u0026auto=format\u0026n=gY7ilEx2g4g3-HVe\u0026q=85\u0026s=c75fd62a074f53174a364509b4363fdc","dark":"https://mintcdn.com/velt/gY7ilEx2g4g3-HVe/velt-logo-big.png?fit=max\u0026auto=format\u0026n=gY7ilEx2g4g3-HVe\u0026q=85\u0026s=3b5f452918e68f127b7dcae71c396463","href":"https://docs.velt.dev"},"favicon":"https://mintcdn.com/velt/gY7ilEx2g4g3-HVe/velt-favi.png?fit=max\u0026auto=format\u0026n=gY7ilEx2g4g3-HVe\u0026q=85\u0026s=5ddfb042b3fd320882626c440411bd95","api":{"playground":{"display":"interactive"}},"appearance":{"default":"dark"},"background":{"color":{"dark":"#090014"}},"navbar":{"primary":{"type":"button","label":"Get API Key","href":"https://console.velt.dev/"}},"footer":{"socials":{"twitter":"https://twitter.com/veltjs","linkedin":"https://www.linkedin.com/company/veltjs"}},"search":{"prompt":"Search or ask..."},"seo":{"metatags":{"og:image":"https://firebasestorage.googleapis.com/v0/b/snippyly.appspot.com/o/external%2Fvelt_docs.png?alt=media\u0026token=9e4502da-66ef-4005-9124-dbc76f04b1fd","twitter:image":"https://firebasestorage.googleapis.com/v0/b/snippyly.appspot.com/o/external%2Fvelt_docs.png?alt=media\u0026token=9e4502da-66ef-4005-9124-dbc76f04b1fd","twitter:card":"summary_large_image"},"indexing":"all"},"integrations":{"intercom":{"appId":"fxx14qnk"},"mixpanel":{"projectToken":"6fe5c5cd3adeb341288776482e7bb147"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"velt","hasAudioNarration":false,"actualSubdomain":"velt","customDomains":["velt.dev"],"gitSource":{"type":"github","owner":"velt-js","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeaec9cd4a2465447e7dd9d","collectionId":"c55a8d84-f3bd-4e45-aa44-82e3d31c316c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeaec9cd4a2465447e7dd9d"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeaec9cd4a2465447e7dd9d","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":218},{"language":"default","tag":"REST APIs","count":215},{"language":"default","tag":"v2","count":170},{"language":"default","tag":"Documentation","count":168},{"language":"default","tag":"UI Customization","count":125},{"language":"default","tag":"Comments","count":94},{"language":"default","tag":"Release Notes","count":90},{"language":"default","tag":"Components: Async Collaboration","count":75},{"language":"default","tag":"Async Collaboration","count":62},{"language":"default","tag":"Realtime Collaboration","count":46}],"searchSettings":{"showContentSnippets":true,"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"rakesh@velt.dev","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":""},{"filePath":"style.css","content":"::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}th{text-align:left}.update-container .relative{max-width:525px!important}#table-of-contents-content{overflow-x:clip;height:100%}"},{"filePath":"public/custom.css","content":""}],"page":{"pagePath":"api-reference/rest-apis/v2/agents/create","slug":"/api-reference/rest-apis/v2/agents/create","pageMetadata":{"title":"Create Agent","api":"POST https://api.velt.dev/v2/agents/create","description":null,"href":"/api-reference/rest-apis/v2/agents/create"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Expandable,Heading,Note,ParamField,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use this API to create a new custom agent configuration. The engine stores the agent in Firestore and writes version 1 to the agent’s versions subcollection. The schema uses `,_jsx(_components.code,{children:`.passthrough()`}),`, so any additional behavioral fields are forwarded to the service layer.`]}),`\n`,_jsx(Heading,{level:`1`,id:`endpoint`,children:`Endpoint`}),`\n`,_jsx(_components.p,{children:_jsx(_components.code,{children:`POST https://api.velt.dev/v2/agents/create`})}),`\n`,_jsx(Heading,{level:`1`,id:`headers`,children:`Headers`}),`\n`,_jsx(ParamField,{header:`x-velt-api-key`,type:`string`,required:true,id:`param-x-velt-api-key`,children:_jsx(_components.p,{children:`Your API key.`})}),`\n`,_jsx(ParamField,{header:`x-velt-auth-token`,type:`string`,required:true,id:`param-x-velt-auth-token`,children:_jsxs(_components.p,{children:[`Your `,_jsx(_components.a,{href:`/security/auth-tokens`,children:`Auth Token`}),`.`]})}),`\n`,_jsx(Heading,{level:`1`,id:`body`,children:`Body`}),`\n`,_jsx(Heading,{level:`4`,id:`params`,children:`Params`}),`\n`,_jsx(ParamField,{body:`data`,type:`object`,required:true,id:`param-data`,children:_jsxs(Expandable,{title:`properties`,children:[_jsx(ParamField,{body:`name`,type:`string`,required:true,id:`param-name`,children:_jsx(_components.p,{children:`Min 1 char. Agent display name.`})}),_jsx(ParamField,{body:`description`,type:`string`,required:true,id:`param-description`,children:_jsx(_components.p,{children:`Min 1 char. Human-readable description of what the agent does.`})}),_jsx(ParamField,{body:`rawInstructions`,type:`string`,id:`param-raw-instructions`,children:_jsx(_components.p,{children:`Original user-provided instructions (before enhancement).`})}),_jsx(ParamField,{body:`instructions`,type:`string`,id:`param-instructions`,children:_jsxs(_components.p,{children:[`Processed/enhanced instructions used by the AI execution. Required whenever the execution strategy consumes a prompt — `,_jsx(_components.code,{children:`\"ai\"`}),` (the default), `,_jsx(_components.code,{children:`\"service+ai\"`}),`, `,_jsx(_components.code,{children:`\"stagehand-agent\"`}),`, and `,_jsx(_components.code,{children:`\"mcp-tools\"`}),`. Only pure `,_jsx(_components.code,{children:`\"service\"`}),` agents may omit it.`]})}),_jsx(ParamField,{body:`enabled`,type:`boolean`,required:true,id:`param-enabled`,children:_jsx(_components.p,{children:`Whether the agent is active.`})}),_jsx(ParamField,{body:`phaseTimeoutMs`,type:`number`,id:`param-phase-timeout-ms`,children:_jsx(_components.p,{children:`Per-phase timeout in milliseconds. Positive integer, no upper bound. Omit to use the platform default.`})}),_jsx(ParamField,{body:`metadata`,type:`object`,id:`param-metadata`,children:_jsxs(_components.p,{children:[`Arbitrary client metadata. Use your own keys (e.g. `,_jsx(_components.code,{children:`{ \"team\": \"growth\", \"owner\": \"jane\" }`}),`).`]})}),_jsxs(ParamField,{body:`contextGathering`,type:`object`,required:true,id:`param-context-gathering`,children:[_jsx(_components.p,{children:`Context gathering configuration.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`strategies`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[`Min 1 strategy. See `,_jsx(_components.a,{href:`#context-gathering-strategies`,children:`context gathering strategies`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`strategyOptions`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Per-strategy option overrides, keyed by strategy name (`,_jsx(_components.a,{href:`#context-gathering-strategy-options`,children:`see below`}),`). When `,_jsx(_components.code,{children:`strategies`}),` includes `,_jsx(_components.code,{children:`\"rest-api\"`}),`, `,_jsx(_components.code,{children:`strategyOptions[\"rest-api\"]`}),` is required (`,_jsx(_components.a,{href:`#rest-api-strategy-options`,children:`see below`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`aiConfig`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`AI provider/model override for the gather phase (`,_jsx(_components.a,{href:`#ai-config-provider--model`,children:`see below`}),`).`]})]})]})]})]}),_jsxs(ParamField,{body:`execution`,type:`object`,required:true,id:`param-execution`,children:[_jsxs(_components.p,{children:[`Execution configuration. Send `,_jsx(_components.code,{children:`{}`}),` to accept the defaults (the `,_jsx(_components.code,{children:`\"ai\"`}),` strategy).`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`executionStrategy`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"ai\"`}),` (default), `,_jsx(_components.code,{children:`\"service\"`}),`, `,_jsx(_components.code,{children:`\"service+ai\"`}),`, `,_jsx(_components.code,{children:`\"stagehand-agent\"`}),`, or `,_jsx(_components.code,{children:`\"mcp-tools\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`serviceId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Required when `,_jsx(_components.code,{children:`executionStrategy`}),` is `,_jsx(_components.code,{children:`\"service\"`}),` or `,_jsx(_components.code,{children:`\"service+ai\"`}),`. Values: `,_jsx(_components.code,{children:`\"broken-links\"`}),`, `,_jsx(_components.code,{children:`\"crawler\"`}),`, `,_jsx(_components.code,{children:`\"screenshot\"`}),`, `,_jsx(_components.code,{children:`\"accessibility-checker\"`}),`, `,_jsx(_components.code,{children:`\"og-image-checker\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`aiConfig`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`AI provider/model override for the execute phase (`,_jsx(_components.a,{href:`#ai-config-provider--model`,children:`see below`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`mcpServers`})}),_jsx(_components.td,{children:`object[]`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Required (≥1) when `,_jsx(_components.code,{children:`executionStrategy`}),` is `,_jsx(_components.code,{children:`\"mcp-tools\"`}),`. Remote MCP servers the model may call during the tool loop (`,_jsx(_components.a,{href:`#mcp-servers-mcp-tools-strategy`,children:`see below`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`responseDescriptions`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Per-field descriptions guiding AI response shaping (`,_jsx(_components.a,{href:`#response-descriptions`,children:`see below`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`strategyOptions`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Per-strategy option overrides. See `,_jsx(_components.a,{href:`#execution-strategy-options`,children:`execution strategy options`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`knowledge`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Memory-RAG knowledge integration (`,_jsx(_components.a,{href:`#knowledge-memory-rag`,children:`see below`}),`).`]})]})]})]})]}),_jsxs(ParamField,{body:`response`,type:`object`,id:`param-response`,children:[_jsx(_components.p,{children:`Response formatting configuration.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`useAiFormatting`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Whether to use AI for response formatting.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`formattingPrompt`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Custom prompt for AI formatting.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`responseAdapter`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Adapter name: `,_jsx(_components.code,{children:`\"broken-links-response\"`}),`, `,_jsx(_components.code,{children:`\"crawler-response\"`}),`, `,_jsx(_components.code,{children:`\"screenshot-response\"`}),`, `,_jsx(_components.code,{children:`\"accessibility-checker-response\"`}),`, `,_jsx(_components.code,{children:`\"og-image-checker-response\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`aiConfig`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Accepted and stored, but not consumed. See the note below.`})]})]})]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`AI response formatting is not implemented yet. `,_jsx(_components.code,{children:`useAiFormatting`}),`, `,_jsx(_components.code,{children:`formattingPrompt`}),`, and `,_jsx(_components.code,{children:`response.aiConfig`}),` are accepted and stored, but nothing reads them at runtime, so setting them has no effect on the agent’s output.`]})})]}),_jsxs(ParamField,{body:`postProcess`,type:`object`,id:`param-post-process`,children:[_jsxs(_components.p,{children:[`Post-processing pipeline configuration. All stages default to `,_jsx(_components.strong,{children:`enabled`}),` when omitted or when `,_jsx(_components.code,{children:`enabled`}),` is not explicitly `,_jsx(_components.code,{children:`false`}),`.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`guardrails`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ enabled?: boolean }`}),`: finding quality pipeline — deduplicates findings (identical source URL + target text + occurrence + issue type) and sanitizes HTML/XSS from all text fields.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`deletePreviousSuggestions`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ enabled?: boolean }`}),`: per-URL delete-and-recreate that clears the prior run’s suggestions for the URL before writing the new ones. This is the active dedup mechanism.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`annotations`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ enabled?: boolean, strategy?: string }`}),`: strategy is `,_jsx(_components.code,{children:`\"findings\"`}),`, `,_jsx(_components.code,{children:`\"word-level\"`}),`, `,_jsx(_components.code,{children:`\"page-level\"`}),`, or `,_jsx(_components.code,{children:`\"none\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`analytics`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ enabled?: boolean }`}),`: analytics event tracking.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`matchAndMerge`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Deprecated / ignored.`}),` `,_jsx(_components.code,{children:`{ enabled?: boolean }`}),`: replaced by `,_jsx(_components.code,{children:`deletePreviousSuggestions`}),`. Still accepted for backward compatibility but has no effect.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`customProcessors`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Custom post-processor names.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`findingEnrichment`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ commentFormat?: \"plain\" | \"legacy\" }`}),`: the layout of the comment each finding posts. Default for custom agents: `,_jsx(_components.code,{children:`\"legacy\"`}),`. See `,_jsx(_components.a,{href:`#comment-format`,children:`Comment format`}),`.`]})]})]})]}),_jsxs(_components.p,{children:[`Unknown keys inside `,_jsx(_components.code,{children:`postProcess`}),` are rejected. Pin resolution (anchoring visual findings to element coordinates) always runs as part of the pipeline and is not configurable via this field.`]})]}),_jsxs(ParamField,{body:`input`,type:`object`,id:`param-input`,children:[_jsx(_components.p,{children:`Input declaration configuration.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`variableKeys`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Variable names the agent expects in `,_jsx(_components.code,{children:`payload.variables`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`userContextFields`})}),_jsx(_components.td,{children:`object[]`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`User-context field definitions (`,_jsx(_components.code,{children:`{ id, title, type, required?, example?, defaultValue? }`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`inputRequirements`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ requires?: string[], requiresOneOf?: string[] }`}),`.`]})]})]})]}),_jsxs(_components.p,{children:[`Each `,_jsx(_components.code,{children:`userContextFields[]`}),` entry: `,_jsx(_components.code,{children:`id`}),` (min 1), `,_jsx(_components.code,{children:`title`}),` (min 1), `,_jsx(_components.code,{children:`type`}),` (`,_jsx(_components.code,{children:`\"string\"`}),` / `,_jsx(_components.code,{children:`\"number\"`}),` / `,_jsx(_components.code,{children:`\"boolean\"`}),`), optional `,_jsx(_components.code,{children:`required`}),` (boolean), optional `,_jsx(_components.code,{children:`example`}),` (string; sample value surfaced in setup UIs), optional `,_jsx(_components.code,{children:`defaultValue`}),` (string / number / boolean).`]}),_jsxs(_components.p,{children:[`At run time, a field that is missing, `,_jsx(_components.code,{children:`null`}),`, or an empty string takes its `,_jsx(_components.code,{children:`defaultValue`}),` and then satisfies `,_jsx(_components.code,{children:`required`}),`.`]}),_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`id`}),` cannot be one of the reserved keys every agent honors: the run-scope keys `,_jsx(_components.code,{children:`focusIssueTypes`}),`, `,_jsx(_components.code,{children:`sourceAnnotationId`}),`, `,_jsx(_components.code,{children:`sourcePageUrl`}),`, and `,_jsx(_components.code,{children:`sourceElementXpath`}),`, or the run-control keys `,_jsx(_components.code,{children:`forceFullRun`}),` and `,_jsx(_components.code,{children:`changeDetection`}),` (see `,_jsx(_components.a,{href:`/api-reference/rest-apis/v2/agents/execution/run`,children:`Run Execution`}),`). The request returns `,_jsx(_components.code,{children:`INVALID_ARGUMENT`}),` with `,_jsx(_components.code,{children:`This userContextFields id is reserved for run scope or run control (focusIssueTypes, sourceAnnotationId, sourcePageUrl, sourceElementXpath, forceFullRun, changeDetection); give the field another id`}),`. The key names are case-sensitive.`]}),_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`input.supportedVariables`}),` is `,_jsx(_components.strong,{children:`response-only`}),`. It lists the template variables the agent’s prompt can reference (e.g. `,_jsx(_components.code,{children:`{{restApiData}}`}),`, `,_jsx(_components.code,{children:`{{memoryContext}}`}),`) and is server-computed from `,_jsx(_components.code,{children:`contextGathering.strategies`}),` and `,_jsx(_components.code,{children:`input.variableKeys`}),`. On create, anything you send in this field is discarded. On a `,_jsx(_components.a,{href:`/api-reference/rest-apis/v2/agents/version/update`,children:`version update`}),` it is recomputed only when those inputs change.`]})})]}),_jsxs(ParamField,{body:`scope`,type:`object`,id:`param-scope`,children:[_jsx(_components.p,{children:`Scope and targeting configuration.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pageScope`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`URL glob patterns the agent runs on.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pageScopeExclude`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`URL glob patterns to exclude.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`contentTypes`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Content types the agent handles.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`crossPage`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Cross-page execution config. See below.`})]})]})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`crossPage`}),` is optional, but when present these three fields are `,_jsx(_components.strong,{children:`required`}),`; omitting any of them fails validation.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`enabled`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Whether cross-page evaluation is on.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`targetProperty`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`The property being compared across pages.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pageDiscovery`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"auto\"`}),` (crawl to discover pages) or `,_jsx(_components.code,{children:`\"manual\"`}),` (use `,_jsx(_components.code,{children:`pages[]`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pages`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Explicit page list. Pair with `,_jsx(_components.code,{children:`pageDiscovery: \"manual\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sourceOfTruthKnowledgeSourceId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Knowledge source to treat as the reference for the comparison.`})]})]})]})]}),_jsxs(ParamField,{body:`setup`,type:`object`,id:`param-setup`,children:[_jsx(_components.p,{children:`Tooling metadata for the setup assistant and checklist-to-agent converter. Not consumed by the agent pipeline at runtime.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`setupSamples`})}),_jsx(_components.td,{children:`object[]`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Sample content plus the findings the agent should produce on it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`checklistOrigin`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Provenance for an agent generated from a checklist.`})]})]})]}),_jsxs(_components.p,{children:[`Each `,_jsx(_components.code,{children:`setupSamples[]`}),` entry:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`content`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`The sample content the agent is evaluated against.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`source`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"synthetic\"`}),` or `,_jsx(_components.code,{children:`\"user-provided\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`findings`})}),_jsx(_components.td,{children:`object[]`}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[`Expected findings, each `,_jsx(_components.code,{children:`{ message (required), elementSelector?, isCorrect? }`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pmVerdict`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Reviewer verdict: `,_jsx(_components.code,{children:`\"correct\"`}),` or `,_jsx(_components.code,{children:`\"incorrect\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pmNotes`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Free-text reviewer notes.`})]})]})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`checklistOrigin`}),`:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`checklistId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Source checklist ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`checklistVersion`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Source checklist version. Integer ≥ 0.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sectionRefs`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Checklist sections this agent covers.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`memoryRuleIds`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Knowledge rules this agent was derived from.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`deduplicatedFrom`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Count of source rules collapsed into this agent. Integer ≥ 0.`})]})]})]})]})]})}),`\n`,_jsx(Heading,{level:`4`,id:`context-gathering-strategies`,children:`Context gathering strategies`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Strategy`}),_jsx(_components.th,{children:`What it returns`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-text`})}),_jsx(_components.td,{children:`Visible text extracted via Puppeteer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-screenshot`})}),_jsx(_components.td,{children:`Full-page screenshot as image (multimodal input)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-html`})}),_jsx(_components.td,{children:`Cleaned HTML content`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-css`})}),_jsx(_components.td,{children:`Cleaned CSS content from stylesheets`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-links`})}),_jsx(_components.td,{children:`All hyperlinks, classified internal/external`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-accessibility`})}),_jsx(_components.td,{children:`Accessibility issues (Pa11y / HTML_CodeSniffer)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`computed-styles`})}),_jsx(_components.td,{children:`Browser-resolved computed CSS for specific selectors`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`robots-txt`})}),_jsxs(_components.td,{children:[`Fetched `,_jsx(_components.code,{children:`robots.txt`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sitemap-data`})}),_jsx(_components.td,{children:`Discovered and parsed XML sitemaps`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lighthouse`})}),_jsx(_components.td,{children:`Google Lighthouse audit (performance / a11y / best-practices / SEO)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`rest-api`})}),_jsxs(_components.td,{children:[`Customer-configured REST endpoints fetched at runtime (`,_jsx(_components.a,{href:`#rest-api-strategy-options`,children:`see below`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`none`})}),_jsx(_components.td,{children:`No context gathering (for service-only or text-only agents)`})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`context-gathering-strategy-options`,children:`Context gathering strategy options`}),`\n`,_jsxs(_components.p,{children:[`Per-strategy overrides are supplied under `,_jsx(_components.code,{children:`contextGathering.strategyOptions[\"\u003cstrategy>\"]`}),`. All are optional unless noted.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Strategy`}),_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-text`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`deviceType`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"mobile\"`}),` / `,_jsx(_components.code,{children:`\"desktop\"`}),` (default `,_jsx(_components.code,{children:`\"desktop\"`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`excludeIframes`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`Exclude iframe content. Default `,_jsx(_components.code,{children:`false`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-screenshot`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`scrollBeforeCapture`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`Scroll the full page before capture.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`maxPageHeightPx`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`Cap the captured page height.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`waitUntil`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Puppeteer wait condition.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`deviceType`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"mobile\"`}),` / `,_jsx(_components.code,{children:`\"desktop\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-html`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`includeHead`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`Include `,_jsx(_components.code,{children:`\u003chead>`}),`. Default `,_jsx(_components.code,{children:`true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`includeBody`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`Include `,_jsx(_components.code,{children:`\u003cbody>`}),`. Default `,_jsx(_components.code,{children:`true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`excludeIframes`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`Default `,_jsx(_components.code,{children:`false`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`waitUntil`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Puppeteer wait condition.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`web-page-css`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`includeInlineStyles`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`Include inline `,_jsx(_components.code,{children:`\u003cstyle>`}),` content.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`computed-styles`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`selectors`})}),_jsx(_components.td,{children:`string[]`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Required`}),`: CSS selectors to inspect.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`properties`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`Override the curated default property list.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sitemap-data`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`maxEntries`})}),_jsx(_components.td,{children:`number`}),_jsxs(_components.td,{children:[`Max sitemap entries. Default `,_jsx(_components.code,{children:`500`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lighthouse`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`categories`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`Lighthouse categories to run.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.code,{children:`formFactor`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"mobile\"`}),` / `,_jsx(_components.code,{children:`\"desktop\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`rest-api`})}),_jsx(_components.td,{children:_jsx(_components.em,{children:`(see below)`})}),_jsx(_components.td,{children:`object`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Required`}),` when `,_jsx(_components.code,{children:`rest-api`}),` is selected: `,_jsxs(_components.a,{href:`#rest-api-strategy-options`,children:[_jsx(_components.code,{children:`rest-api`}),` strategy options`]}),`.`]})]})]})]}),`\n`,_jsxs(Heading,{level:`4`,id:`rest-api-strategy-options`,children:[_jsx(_components.code,{children:`rest-api`}),` strategy options`]}),`\n`,_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`strategies`}),` includes `,_jsx(_components.code,{children:`\"rest-api\"`}),`. Each configured endpoint is fetched at execution time and the resolved URL + description + JSON-stringified response is injected into the prompt via the `,_jsx(_components.code,{children:`{{restApiData}}`}),` template variable.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`endpoints`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RestApiEndpoint[]`})}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`1–10 endpoints to fetch.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`maxResponseBytes`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Per-endpoint response-body cap. Default `,_jsx(_components.code,{children:`1000000`}),`, hard-capped `,_jsx(_components.code,{children:`5000000`}),`.`]})]})]})]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`RestApiEndpoint`}),` fields:`]})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`What this endpoint is about; surfaced in the prompt alongside the URL + response.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`url`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[`Endpoint URL. Supports `,_jsx(_components.code,{children:`{{variable}}`}),` templating. SSRF-validated at fetch time (no internal/loopback/link-local hosts).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`method`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"GET\"`}),`|`,_jsx(_components.code,{children:`\"POST\"`}),`|`,_jsx(_components.code,{children:`\"PUT\"`}),`|`,_jsx(_components.code,{children:`\"PATCH\"`}),`|`,_jsx(_components.code,{children:`\"DELETE\"`})]}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Default `,_jsx(_components.code,{children:`\"GET\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Stable endpoint identifier.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Human label.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`headers`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Non-secret headers (templated).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`query`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Query params (templated).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`body`})}),_jsx(_components.td,{children:`object | string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Request body for write methods (templated).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`auth`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Discriminated union (`,_jsx(_components.code,{children:`none`}),`|`,_jsx(_components.code,{children:`bearer`}),`|`,_jsx(_components.code,{children:`basic`}),`|`,_jsx(_components.code,{children:`header`}),`). Secret fields are encrypted at rest and redacted on read.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cacheTtlSeconds`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`In-process per-instance cache TTL. Default `,_jsx(_components.code,{children:`0`}),` (always fresh). Max `,_jsx(_components.code,{children:`86400`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`timeoutMs`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Per-request timeout. Default `,_jsx(_components.code,{children:`10000`}),`, hard-capped `,_jsx(_components.code,{children:`30000`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`responsePath`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Dot-path to extract a sub-field of the JSON response.`})]})]})]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`auth`}),` shapes:`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"none\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bearer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003csecret>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"basic\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"username\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003csecret>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"header\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"headers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"X-Api-Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003csecret>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } }`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Auth secret handling (redaction-on-read):`}),` `,_jsx(_components.code,{children:`token`}),`, `,_jsx(_components.code,{children:`password`}),`, and `,_jsx(_components.code,{children:`header`}),` values are encrypted before the Firestore write and are never returned to clients. On read (Get / List Agents), encrypted secret fields are replaced with `,_jsx(_components.code,{children:`\"__redacted__\"`}),`. To rotate a secret, send the new plaintext value on update; to keep an existing secret, omit the field.`]})}),`\n`,_jsxs(Heading,{level:`4`,id:`mcp-servers-mcp-tools-strategy`,children:[`MCP servers (`,_jsx(_components.code,{children:`mcp-tools`}),` strategy)`]}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`execution.executionStrategy`}),` is `,_jsx(_components.code,{children:`\"mcp-tools\"`}),`, the agent runs a model-driven tool loop: at execution time the engine connects to each remote `,_jsx(_components.a,{href:`https://modelcontextprotocol.io`,children:`MCP (Model Context Protocol)`}),` server declared in `,_jsx(_components.code,{children:`execution.mcpServers`}),`, lists its tools, exposes them to the model, and runs a multi-turn call→tool→call loop until the model emits a final structured response. For example, a docs code-verification agent can check on-page snippets live against your documentation MCP server instead of a pre-ingested corpus.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`\"mcp-tools\"`}),` strategy is `,_jsx(_components.strong,{children:`provider-agnostic`}),` (works on both Claude and Gemini) and `,_jsx(_components.strong,{children:`requires`}),` a non-empty top-level `,_jsx(_components.code,{children:`instructions`}),` field `,_jsx(_components.strong,{children:`and`}),` at least one entry in `,_jsx(_components.code,{children:`execution.mcpServers`}),`. Omitting either fails validation.`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`execution.mcpServers`}),` is an array of `,_jsx(_components.strong,{children:`1–5`}),` server objects. Each server object is strictly validated (unknown keys rejected):`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsx(_components.td,{children:`Min 1 char. Stable identifier for the server (used in logs + findings).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`url`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`yes`}),_jsxs(_components.td,{children:[`Remote MCP server URL. Must start with `,_jsx(_components.code,{children:`http(s)://`}),` or contain a `,_jsx(_components.code,{children:`{{template}}`}),` that resolves to one. SSRF-validated at connect time (no internal/loopback/link-local hosts; redirects re-validated, max 3 hops).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Human-readable label.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`What this server provides (e.g. `,_jsx(_components.code,{children:`\"Velt docs MCP\"`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`transport`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Transport type. Only `,_jsx(_components.code,{children:`\"http\"`}),` is supported (Streamable HTTP with SSE fallback). Defaults to `,_jsx(_components.code,{children:`\"http\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`auth`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Auth config. Discriminated union (`,_jsx(_components.code,{children:`none`}),` | `,_jsx(_components.code,{children:`bearer`}),` | `,_jsx(_components.code,{children:`basic`}),` | `,_jsx(_components.code,{children:`header`}),`); same shape as the `,_jsx(_components.code,{children:`rest-api`}),` strategy. Secret fields are encrypted at rest and redacted on read.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`allowedTools`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`no`}),_jsx(_components.td,{children:`Allowlist of tool names. When set, only these tools are exposed/callable. Up to 64 tools per server are exposed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`timeoutMs`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`no`}),_jsxs(_components.td,{children:[`Per-request timeout (ms) for connect/listTools/callTool. Default `,_jsx(_components.code,{children:`30000`}),`, hard-capped `,_jsx(_components.code,{children:`120000`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`auth`}),` shapes`]}),` (identical to the `,_jsx(_components.code,{children:`rest-api`}),` strategy):`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"none\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bearer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003csecret>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"basic\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"username\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"password\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003csecret>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"header\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"headers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"X-Api-Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003csecret>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } }`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Auth secret handling (redaction-on-read):`}),` MCP `,_jsx(_components.code,{children:`token`}),`, `,_jsx(_components.code,{children:`password`}),`, and `,_jsx(_components.code,{children:`header`}),` values are encrypted before the Firestore write (using an MCP-specific encryption salt) and are never returned to clients. On read (Get / List Agents, List Versions), encrypted secret fields are replaced with `,_jsx(_components.code,{children:`\"__redacted__\"`}),`. To rotate a secret, send the new plaintext value on a `,_jsx(_components.a,{href:`/api-reference/rest-apis/v2/agents/version/update`,children:`version update`}),`; to keep an existing secret, omit the field.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`ai-config-provider-/-model`,children:`AI config (provider / model)`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`execution.aiConfig`}),`, `,_jsx(_components.code,{children:`contextGathering.aiConfig`}),`, and `,_jsx(_components.code,{children:`response.aiConfig`}),` all accept the same strictly-validated object. Unknown keys are rejected.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`provider`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`LLM provider: `,_jsx(_components.code,{children:`\"gemini\"`}),`, `,_jsx(_components.code,{children:`\"claude\"`}),`, or `,_jsx(_components.code,{children:`\"openai\"`}),`. Defaults to the platform default, Claude on Velt’s hosted platform, when omitted. Persisted.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`model`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Accepted for backward compatibility and then discarded. Not persisted, and not validated against any allowlist.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`responseMimeType`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Accepted for backward compatibility and then discarded. Not persisted.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`maxToolTurns`})}),_jsx(_components.td,{children:`number`}),_jsxs(_components.td,{children:[`Tool-loop turn budget for the `,_jsx(_components.code,{children:`mcp-tools`}),` strategy. Integer `,_jsx(_components.code,{children:`1..16`}),`; out-of-range values are rejected at config time. Default: `,_jsx(_components.code,{children:`8`}),`. Persisted on `,_jsx(_components.code,{children:`execution.aiConfig`}),` only.`]})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`Only `,_jsx(_components.code,{children:`provider`}),` survives a write here (plus `,_jsx(_components.code,{children:`maxToolTurns`}),` on `,_jsx(_components.code,{children:`execution.aiConfig`}),`). The effective model is resolved on every execution rather than frozen onto the agent, so pinning `,_jsx(_components.code,{children:`model`}),` at create time does nothing and returns `,_jsx(_components.code,{children:`200`}),` without complaint.`]}),_jsxs(_components.p,{children:[`To pin a model, send `,_jsx(_components.code,{children:`aiConfig`}),` on the request instead: see `,_jsx(_components.a,{href:`/api-reference/rest-apis/v2/agents/execution/run`,children:`Run Execution`}),`. That one `,_jsx(_components.strong,{children:`is`}),` validated against a model allowlist and returns `,_jsx(_components.code,{children:`INVALID_ARGUMENT`}),` for anything off it.`]})]}),`\n`,_jsx(Heading,{level:`4`,id:`execution-strategy-options`,children:`Execution strategy options`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`execution.strategyOptions[\"\u003cstrategy>\"]`}),` carries per-strategy runtime overrides. The `,_jsx(_components.code,{children:`stagehand-agent`}),` strategy opens the page in a browser, and the agent’s model drives it with browser tools in a loop. It accepts:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`maxSteps`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`16`})}),_jsx(_components.td,{children:`Most tool-calling turns. A larger value is lowered to 16.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`systemPrompt`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Text placed before the prompt the model receives.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`useStructuredOutput`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsx(_components.td,{children:`Return structured output.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`waitUntil`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`\"networkidle2\"`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"domcontentloaded\"`}),` / `,_jsx(_components.code,{children:`\"load\"`}),` / `,_jsx(_components.code,{children:`\"networkidle2\"`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`navigationTimeout`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`30000`})}),_jsx(_components.td,{children:`Navigation timeout in ms.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`executeTimeout`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`540000`})}),_jsx(_components.td,{children:`Time limit in ms for the whole run: opening the browser, loading the first page, and the tool loop. Keep it below the agent’s phase timeout.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`perStepTimeout`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`90000`})}),_jsx(_components.td,{children:`Time limit in ms for one step, a model turn plus its tool call. Past it, the model is asked for its final answer, which is kept.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`toolTimeout`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`30000`})}),_jsx(_components.td,{children:`Time limit in ms for one browser action or page read.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`excludeTools`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{}),_jsxs(_components.td,{children:[`Browser tools to withhold from the model: any of `,_jsx(_components.code,{children:`act`}),`, `,_jsx(_components.code,{children:`observe`}),`, `,_jsx(_components.code,{children:`act_on_element`}),`, `,_jsx(_components.code,{children:`snapshot`}),`, `,_jsx(_components.code,{children:`extract`}),`, `,_jsx(_components.code,{children:`goto`}),`, `,_jsx(_components.code,{children:`read_page`}),`, `,_jsx(_components.code,{children:`scroll`}),`, `,_jsx(_components.code,{children:`go_back`}),`, `,_jsx(_components.code,{children:`wait`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`mode`}),` and `,_jsx(_components.code,{children:`model`}),` are accepted but ignored: the loop runs on the provider and model resolved for each execution, as for every AI strategy (see `,_jsx(_components.a,{href:`#ai-config-provider--model`,children:`AI config`}),`). A value of the wrong type is ignored, and the default applies.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`When using `,_jsx(_components.code,{children:`stagehand-agent`}),`, set `,_jsx(_components.code,{children:`contextGathering.strategies: [\"none\"]`}),`; the agent handles navigation, interaction, and extraction itself. A run whose first page does not load fails with `,_jsx(_components.code,{children:`The page could not be opened: \u003curl> (\u003creason>).`})]})}),`\n`,_jsx(Heading,{level:`4`,id:`knowledge-memory-rag`,children:`Knowledge (Memory-RAG)`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`execution.knowledge`}),` pulls workspace knowledge from Velt Memory into the prompt. Strictly validated. Only these four fields are accepted:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Range`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`useMemory`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{}),_jsxs(_components.td,{children:[`When `,_jsx(_components.code,{children:`true`}),`, retrieves knowledge/patterns/activities and injects them as `,_jsx(_components.code,{children:`{{memoryContext}}`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`maxChunks`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`1–20`}),_jsx(_components.td,{children:`Max knowledge chunks to retrieve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`maxPatterns`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`1–20`}),_jsx(_components.td,{children:`Max learned patterns to retrieve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`maxActivities`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`1–20`}),_jsx(_components.td,{children:`Max recent activities to retrieve.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The legacy `,_jsx(_components.code,{children:`sourceIds`}),` field has been `,_jsx(_components.strong,{children:`removed`}),` and `,_jsx(_components.code,{children:`maxChunks`}),` is now capped at `,_jsx(_components.strong,{children:`20`}),` (previously 50). Sending `,_jsx(_components.code,{children:`sourceIds`}),` or any other extra key inside `,_jsx(_components.code,{children:`knowledge`}),` returns a `,_jsx(_components.code,{children:`400 INVALID_ARGUMENT`}),`.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`comment-format`,children:`Comment format`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`postProcess.findingEnrichment.commentFormat`}),` sets how each finding’s comment text is laid out when the agent posts it as a comment annotation. Built-in agents use `,_jsx(_components.code,{children:`\"plain\"`}),`. Custom agents use `,_jsx(_components.code,{children:`\"legacy\"`}),` unless you set `,_jsx(_components.code,{children:`\"plain\"`}),`. Any other value returns `,_jsx(_components.code,{children:`INVALID_ARGUMENT`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Format`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`commentText`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`commentHtml`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`\"legacy\"`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{title}: {description}`}),`. When there is a suggestion, followed by a space, an em dash (U+2014), a space, and `,_jsx(_components.code,{children:`Suggestion: {suggestion}`}),`.`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\u003cb>{title}\u003c/b>\u003cbr/>{description}\u003cbr/>\u003cbr/>\u003cb>Suggestion:\u003c/b> {suggestion}`}),`. Values are not HTML-escaped, but link tags in them are removed and their text kept.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`\"plain\"`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{title}`}),`, a line break, `,_jsx(_components.code,{children:`{description}`}),`, a blank line, and `,_jsx(_components.code,{children:`{suggestion}`}),`, with no label. Empty parts are left out.`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\u003cb>{title}\u003c/b>\u003cbr/>{description}\u003cbr/>\u003cbr/>{suggestion}`}),`, with every value HTML-escaped.`]})]})]})]}),`\n`,_jsx(_components.p,{children:`For a finding titled “CTA uses non-brand color”, the two formats produce:`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Plain`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"commentText\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CTA uses non-brand color`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`The 'Buy now' button uses #FF5722 instead of #1A73E8`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\n\\\\n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Change background-color to #1A73E8\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"commentHtml\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cb>CTA uses non-brand color\u003c/b>\u003cbr/>The 'Buy now' button uses #FF5722 instead of #1A73E8\u003cbr/>\u003cbr/>Change background-color to #1A73E8\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Legacy`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"commentText\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CTA uses non-brand color: The 'Buy now' button uses #FF5722 instead of #1A73E8 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\u2014`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Suggestion: Change background-color to #1A73E8\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"commentHtml\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cb>CTA uses non-brand color\u003c/b>\u003cbr/>The 'Buy now' button uses #FF5722 instead of #1A73E8\u003cbr/>\u003cbr/>\u003cb>Suggestion:\u003c/b> Change background-color to #1A73E8\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Links in comments.`}),` Comment HTML links only to addresses the agent’s own code added, such as the Mobile Inspector’s screenshot link, which opens in a new tab. A link written by a model, for example in a custom agent’s title, description, or suggestion, appears as plain text, never as a link, in either format.`]}),`\n`,_jsxs(_components.p,{children:[`The setting applies to new runs. To change it on an existing agent, send `,_jsx(_components.code,{children:`postProcess.findingEnrichment`}),` to `,_jsx(_components.a,{href:`/api-reference/rest-apis/v2/agents/version/update`,children:`Update Agent Version`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`response-descriptions`,children:`Response Descriptions`}),`\n`,_jsx(_components.p,{children:`All fields are optional strings that instruct the AI on how to populate each finding field:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`summary`})}),_jsx(_components.td,{children:`Summary text of the overall analysis.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:`Short title of the finding.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:`Detailed description of the finding.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`severity`})}),_jsxs(_components.td,{children:[`Severity level. Values: `,_jsx(_components.code,{children:`critical`}),`, `,_jsx(_components.code,{children:`high`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`low`}),`, `,_jsx(_components.code,{children:`info`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`targetText`})}),_jsx(_components.td,{children:`The exact text on the page this finding refers to.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`suggestion`})}),_jsx(_components.td,{children:`Suggested fix or recommendation.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`isPageLevel`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`\"true\"`}),` for visual/layout findings; `,_jsx(_components.code,{children:`\"false\"`}),` when targetText is real DOM text.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`issueType`})}),_jsx(_components.td,{children:`Issue classification tag (short, lowercase, hyphenated).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`confidence`})}),_jsx(_components.td,{children:`Confidence score from 0 to 100.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`htmlSelector`})}),_jsx(_components.td,{children:`CSS selector of the DOM element.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`findingType`})}),_jsx(_components.td,{children:`Finding type classification.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`example-requests`,children:_jsx(_components.strong,{children:`Example Requests`})}),`\n`,_jsx(Heading,{level:`4`,id:`1-minimal-agent`,children:`1. Minimal agent`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Simple Content Checker\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Checks for broken images and missing alt text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instructions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Check for broken images and missing alt text on the page.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"contextGathering\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategies\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web-page-html\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"execution\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`4`,id:`2-full-custom-agent-with-cross-page-execution-and-memory-rag`,children:`2. Full custom agent with cross-page execution and Memory-RAG`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`53`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`53`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Brand Consistency Checker\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Validates brand colors, logos, and typography across pages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rawInstructions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Check that all headings use the brand font 'Inter'. Verify the primary color #1A73E8 is used for CTAs.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instructions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Check that all headings use the brand font 'Inter'. Verify the primary color #1A73E8 is used for CTAs.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"metadata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"team\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"growth\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"owner\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"jane\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"contextGathering\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategies\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web-page-screenshot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web-page-text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web-page-html\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategyOptions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"web-page-screenshot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"scrollBeforeCapture\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"execution\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"executionStrategy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ai\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"responseDescriptions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Short name for the brand inconsistency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"severity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"One of: critical, high, medium, low\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"suggestion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Specific CSS or design fix\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"issueType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"One of: brand-color, brand-font, brand-logo\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"knowledge\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"useMemory\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"maxChunks\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"maxPatterns\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"maxActivities\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"postProcess\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"guardrails\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"deletePreviousSuggestions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"annotations\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"strategy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"findings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"analytics\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"input\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inputRequirements\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"requires\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"userContextFields\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"brand_color\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Primary brand color?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"brand_font\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Heading font family?\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pageScope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://example.com/*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pageScopeExclude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://example.com/admin/*\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"crossPage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"targetProperty\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"brandConsistency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pageDiscovery\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"auto\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`4`,id:`3-agent-with-live-rest-api-context`,children:`3. Agent with live REST API context`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`29`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`29`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Pricing Parity Checker\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Compares on-page prices with the billing API\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instructions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Compare the price shown on the page with the price returned by the billing API and flag any mismatch.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"execution\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"contextGathering\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategies\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web-page-text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rest-api\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategyOptions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rest-api\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"endpoints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Plan pricing\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Canonical plan prices from the billing service\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.example.com/plans/{{variables.planId}}\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"method\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"GET\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"headers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"Accept\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"auth\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bearer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"token\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sk_live_xxx\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cacheTtlSeconds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`60`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"responsePath\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"data.plan\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"input\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"variableKeys\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"planId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`4`,id:`4-agent-that-verifies-content-against-an-mcp-server-mcp-tools`,children:[`4. Agent that verifies content against an MCP server (`,_jsx(_components.code,{children:`mcp-tools`}),`)`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`24`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Docs Code Verifier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Verifies on-page code snippets against the docs MCP\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"enabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instructions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"For every code snippet on the page, use the documentation MCP tools to find the matching feature and verify the snippet is correct and up to date. Flag any snippet that does not match the docs.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"contextGathering\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategies\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web-page-html\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"execution\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"executionStrategy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mcp-tools\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"velt-docs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Velt Docs MCP\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Live Velt documentation MCP server\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://velt.dev/docs/mcp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"transport\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"http\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"auth\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"none\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`1`,id:`response`,children:`Response`}),`\n`,_jsx(Heading,{level:`4`,id:`success-response`,children:`Success Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Agent created successfully\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"agentId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"abc123def456\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`data.agentId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Firestore document ID of the new agent`})]})})]}),`\n`,_jsx(Heading,{level:`4`,id:`failure-response`,children:`Failure Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ERROR_MESSAGE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"INVALID_ARGUMENT\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Errors:`}),` `,_jsx(_components.code,{children:`INVALID_ARGUMENT`}),` (Zod validation failure, e.g. missing `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`description`}),`, `,_jsx(_components.code,{children:`enabled`}),`, `,_jsx(_components.code,{children:`contextGathering.strategies`}),`, or `,_jsx(_components.code,{children:`execution`}),`; an unknown key inside `,_jsx(_components.code,{children:`knowledge`}),` or `,_jsx(_components.code,{children:`postProcess`}),`; an invalid `,_jsx(_components.code,{children:`userContextFields.type`}),`; a `,_jsx(_components.code,{children:`userContextFields`}),` id that is a reserved run-scope or run-control key; missing `,_jsx(_components.code,{children:`instructions`}),` for an AI/`,_jsx(_components.code,{children:`stagehand-agent`}),`/`,_jsx(_components.code,{children:`mcp-tools`}),` strategy; or missing/invalid `,_jsx(_components.code,{children:`execution.mcpServers`}),` when `,_jsx(_components.code,{children:`executionStrategy`}),` is `,_jsx(_components.code,{children:`\"mcp-tools\"`}),`) / `,_jsx(_components.code,{children:`RESOURCE_EXHAUSTED`}),` (workspace already has the maximum number of custom agents).`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Agent","api":"POST https://api.velt.dev/v2/agents/create","description":null,"href":"/api-reference/rest-apis/v2/agents/create"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[404,408,"ResponseExample,Tabl"],[743,758,"ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Table)_missingM"],[130025,130027,",`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Agent created successfully\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"agentId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"abc123def456\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}"]]},"mdxExtracts":{"tableOfContents":[{"title":"Endpoint","slug":"endpoint","depth":1,"children":[]},{"title":"Headers","slug":"headers","depth":1,"children":[]},{"title":"Body","slug":"body","depth":1,"children":[{"title":"Params","slug":"params","depth":4,"children":[]},{"title":"Context gathering strategies","slug":"context-gathering-strategies","depth":4,"children":[]},{"title":"Context gathering strategy options","slug":"context-gathering-strategy-options","depth":4,"children":[]},{"title":"rest-api strategy options","slug":"rest-api-strategy-options","depth":4,"children":[]},{"title":"MCP servers (mcp-tools strategy)","slug":"mcp-servers-mcp-tools-strategy","depth":4,"children":[]},{"title":"AI config (provider / model)","slug":"ai-config-provider-/-model","depth":4,"children":[]},{"title":"Execution strategy options","slug":"execution-strategy-options","depth":4,"children":[]},{"title":"Knowledge (Memory-RAG)","slug":"knowledge-memory-rag","depth":4,"children":[]},{"title":"Comment format","slug":"comment-format","depth":4,"children":[]},{"title":"Response Descriptions","slug":"response-descriptions","depth":4,"children":[]}]},{"title":"Example Requests","slug":"example-requests","depth":2,"children":[{"title":"1. Minimal agent","slug":"1-minimal-agent","depth":4,"children":[]},{"title":"2. Full custom agent with cross-page execution and Memory-RAG","slug":"2-full-custom-agent-with-cross-page-execution-and-memory-rag","depth":4,"children":[]},{"title":"3. Agent with live REST API context","slug":"3-agent-with-live-rest-api-context","depth":4,"children":[]},{"title":"4. Agent that verifies content against an MCP server (mcp-tools)","slug":"4-agent-that-verifies-content-against-an-mcp-server-mcp-tools","depth":4,"children":[]}]},{"title":"Response","slug":"response","depth":1,"children":[{"title":"Success Response","slug":"success-response","depth":4,"children":[]},{"title":"Failure Response","slug":"failure-response","depth":4,"children":[]}]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"javascript\">\u003ccode language=\"javascript\" numberOfLines=\"9\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"result\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"success\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Agent created successfully\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">:\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"agentId\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"abc123def456\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Create Agent","path":"/v2/agents/create","servers":[{"url":"https://api.velt.dev"}],"method":"post","request":{"security":[],"parameters":{"query":{},"header":{"x-velt-api-key":{"schema":[{"type":"string","description":"Your API key.","required":true}]},"x-velt-auth-token":{"schema":[{"type":"string","description":"Your Auth Token .","required":true}]}},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"data":[{"type":"object","properties":{"name":[{"type":"string","description":"Min 1 char. Agent display name.","required":true}],"description":[{"type":"string","description":"Min 1 char. Human-readable description of what the agent does.","required":true}],"rawInstructions":[{"type":"string","description":"Original user-provided instructions (before enhancement)."}],"instructions":[{"type":"string","description":"Processed/enhanced instructions used by the AI execution. Required whenever the execution strategy consumes a prompt — `\"ai\"` (the default), `\"service+ai\"` , `\"stagehand-agent\"` , and `\"mcp-tools\"` . Only pure `\"service\"` agents may omit it."}],"enabled":[{"type":"boolean","description":"Whether the agent is active.","required":true}],"phaseTimeoutMs":[{"type":"number","description":"Per-phase timeout in milliseconds. Positive integer, no upper bound. Omit to use the platform default."}],"metadata":[{"type":"object","properties":{},"description":"Arbitrary client metadata. Use your own keys (e.g. `{ \"team\": \"growth\", \"owner\": \"jane\" }` )."}],"contextGathering":[{"type":"object","properties":{},"description":"Context gathering configuration. Field Type Required Description `strategies` string[] yes Min 1 strategy. See context gathering strategies . `strategyOptions` object no Per-strategy option overrides, keyed by strategy name ( see below ). When `strategies` includes `\"rest-api\"` , `strategyOptions[\"rest-api\"]` is required ( see below ). `aiConfig` object no AI provider/model override for the gather phase ( see below ).","required":true}],"execution":[{"type":"object","properties":{},"description":"Execution configuration. Send `{}` to accept the defaults (the `\"ai\"` strategy). Field Type Required Description `executionStrategy` string no `\"ai\"` (default), `\"service\"` , `\"service+ai\"` , `\"stagehand-agent\"` , or `\"mcp-tools\"` . `serviceId` string no Required when `executionStrategy` is `\"service\"` or `\"service+ai\"` . Values: `\"broken-links\"` , `\"crawler\"` , `\"screenshot\"` , `\"accessibility-checker\"` , `\"og-image-checker\"` . `aiConfig` object no AI provider/model override for the execute phase ( see below ). `mcpServers` object[] no Required (≥1) when `executionStrategy` is `\"mcp-tools\"` . Remote MCP servers the model may call during the tool loop ( see below ). `responseDescriptions` object no Per-field descriptions guiding AI response shaping ( see below ). `strategyOptions` object no Per-strategy option overrides. See execution strategy options . `knowledge` object no Memory-RAG knowledge integration ( see below ).","required":true}],"response":[{"type":"object","properties":{},"description":"Response formatting configuration. Field Type Required Description `useAiFormatting` boolean no Whether to use AI for response formatting. `formattingPrompt` string no Custom prompt for AI formatting. `responseAdapter` string no Adapter name: `\"broken-links-response\"` , `\"crawler-response\"` , `\"screenshot-response\"` , `\"accessibility-checker-response\"` , `\"og-image-checker-response\"` . `aiConfig` object no Accepted and stored, but not consumed. See the note below."}],"postProcess":[{"type":"object","properties":{},"description":"Post-processing pipeline configuration. All stages default to enabled when omitted or when `enabled` is not explicitly `false` . Field Type Required Description `guardrails` object no `{ enabled?: boolean }` : finding quality pipeline — deduplicates findings (identical source URL + target text + occurrence + issue type) and sanitizes HTML/XSS from all text fields. `deletePreviousSuggestions` object no `{ enabled?: boolean }` : per-URL delete-and-recreate that clears the prior run’s suggestions for the URL before writing the new ones. This is the active dedup mechanism. `annotations` object no `{ enabled?: boolean, strategy?: string }` : strategy is `\"findings\"` , `\"word-level\"` , `\"page-level\"` , or `\"none\"` . `analytics` object no `{ enabled?: boolean }` : analytics event tracking. `matchAndMerge` object no Deprecated / ignored. `{ enabled?: boolean }` : replaced by `deletePreviousSuggestions` . Still accepted for backward compatibility but has no effect. `customProcessors` string[] no Custom post-processor names. `findingEnrichment` object no `{ commentFormat?: \"plain\" | \"legacy\" }` : the layout of the comment each finding posts. Default for custom agents: `\"legacy\"` . See Comment format . Unknown keys inside `postProcess` are rejected. Pin resolution (anchoring visual findings to element coordinates) always runs as part of the pipeline and is not configurable via this field."}],"input":[{"type":"object","properties":{},"description":"Input declaration configuration. Field Type Required Description `variableKeys` string[] no Variable names the agent expects in `payload.variables` . `userContextFields` object[] no User-context field definitions ( `{ id, title, type, required?, example?, defaultValue? }` ). `inputRequirements` object no `{ requires?: string[], requiresOneOf?: string[] }` . Each `userContextFields[]` entry: `id` (min 1), `title` (min 1), `type` ( `\"string\"` / `\"number\"` / `\"boolean\"` ), optional `required` (boolean), optional `example` (string; sample value surfaced in setup UIs), optional `defaultValue` (string / number / boolean). At run time, a field that is missing, `null` , or an empty string takes its `defaultValue` and then satisfies `required` . An `id` cannot be one of the reserved keys every agent honors: the run-scope keys `focusIssueTypes` , `sourceAnnotationId` , `sourcePageUrl` , and `sourceElementXpath` , or the run-control keys `forceFullRun` and `changeDetection` (see Run Execution ). The request returns `INVALID_ARGUMENT` with `This userContextFields id is reserved for run scope or run control (focusIssueTypes, sourceAnnotationId, sourcePageUrl, sourceElementXpath, forceFullRun, changeDetection); give the field another id` . The key names are case-sensitive."}],"scope":[{"type":"object","properties":{},"description":"Scope and targeting configuration. Field Type Required Description `pageScope` string[] no URL glob patterns the agent runs on. `pageScopeExclude` string[] no URL glob patterns to exclude. `contentTypes` string[] no Content types the agent handles. `crossPage` object no Cross-page execution config. See below. `crossPage` is optional, but when present these three fields are required ; omitting any of them fails validation. Field Type Required Description `enabled` boolean yes Whether cross-page evaluation is on. `targetProperty` string yes The property being compared across pages. `pageDiscovery` string yes `\"auto\"` (crawl to discover pages) or `\"manual\"` (use `pages[]` ). `pages` string[] no Explicit page list. Pair with `pageDiscovery: \"manual\"` . `sourceOfTruthKnowledgeSourceId` string no Knowledge source to treat as the reference for the comparison."}],"setup":[{"type":"object","properties":{},"description":"Tooling metadata for the setup assistant and checklist-to-agent converter. Not consumed by the agent pipeline at runtime. Field Type Required Description `setupSamples` object[] no Sample content plus the findings the agent should produce on it. `checklistOrigin` object no Provenance for an agent generated from a checklist. Each `setupSamples[]` entry: Field Type Required Description `content` string yes The sample content the agent is evaluated against. `source` string yes `\"synthetic\"` or `\"user-provided\"` . `findings` object[] yes Expected findings, each `{ message (required), elementSelector?, isCorrect? }` . `pmVerdict` string no Reviewer verdict: `\"correct\"` or `\"incorrect\"` . `pmNotes` string no Free-text reviewer notes. `checklistOrigin` : Field Type Required Description `checklistId` string yes Source checklist ID. `checklistVersion` number yes Source checklist version. Integer ≥ 0. `sectionRefs` string[] yes Checklist sections this agent covers. `memoryRuleIds` string[] yes Knowledge rules this agent was derived from. `deduplicatedFrom` number no Count of source rules collapsed into this agent. Integer ≥ 0."}]},"required":true}]}}],"examples":{"example":{"value":{"data":{"name":"\u003cstring>","description":"\u003cstring>","rawInstructions":"\u003cstring>","instructions":"\u003cstring>","enabled":true,"phaseTimeoutMs":123,"metadata":{},"contextGathering":{},"execution":{},"response":{},"postProcess":{},"input":{},"scope":{},"setup":{}}}}}}}},"response":{},"deprecated":false}},"jsLinks":["/docs/_mintlify/custom/velt/752c38235fc975ab/reb2b-tracking.js","/docs/_mintlify/custom/velt/39475307ed77f9b2/signals-tracking.js"],"subdomain":"velt","siteName":"Velt","title":"Create Agent - Velt","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T20:56:02.142Z","originalFileLocation":"api-reference/rest-apis/v2/agents/create.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=\"dark\"}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=\"application-name\" content=\"Velt\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_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=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Agent - Velt\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Velt\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://firebasestorage.googleapis.com/v0/b/snippyly.appspot.com/o/external%2Fvelt_docs.png?alt=media\u0026amp;token=9e4502da-66ef-4005-9124-dbc76f04b1fd\">\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=\"Create Agent - Velt\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://firebasestorage.googleapis.com/v0/b/snippyly.appspot.com/o/external%2Fvelt_docs.png?alt=media\u0026amp;token=9e4502da-66ef-4005-9124-dbc76f04b1fd\">\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=\"/docs/mintlify-assets/_mintlify/favicons/velt/XJwux-wDtXKfbtc-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Velt\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#272728\">\u003clink data-mint-head rel=\"canonical\" href=\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/rest-apis/v2/agents/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://velt.dev/#organization\",\"name\":\"Velt\",\"url\":\"https://velt.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/velt/gY7ilEx2g4g3-HVe/velt-logo-big-light.png?fit=max\u0026auto=format\u0026n=gY7ilEx2g4g3-HVe\u0026q=85\u0026s=c75fd62a074f53174a364509b4363fdc\"}},{\"@type\":\"WebSite\",\"@id\":\"https://velt.dev/docs#website\",\"name\":\"Velt\",\"url\":\"https://velt.dev/docs\",\"publisher\":{\"@id\":\"https://velt.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create#webpage\",\"url\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create\",\"name\":\"Create Agent\",\"dateModified\":\"2026-10-29T20:56:02.142Z\",\"isPartOf\":{\"@id\":\"https://velt.dev/docs#website\"},\"breadcrumb\":{\"@id\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST APIs\",\"item\":\"https://velt.dev/docs/api-reference/rest-apis/v2/organizations/add-organizations\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"v2\",\"item\":\"https://velt.dev/docs/api-reference/rest-apis/v2/organizations/add-organizations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create Agent\",\"item\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create#apireference\",\"headline\":\"Create Agent\",\"name\":\"Create Agent\",\"url\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create\",\"mainEntityOfPage\":{\"@id\":\"https://velt.dev/docs/api-reference/rest-apis/v2/agents/create#webpage\"},\"image\":\"https://firebasestorage.googleapis.com/v0/b/snippyly.appspot.com/o/external%2Fvelt_docs.png?alt=media\u0026token=9e4502da-66ef-4005-9124-dbc76f04b1fd\",\"dateModified\":\"2026-10-29T20:56:02.142Z\",\"publisher\":{\"@id\":\"https://velt.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://velt.dev/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Velt\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Velt","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/get-started/overview"}]},{"tab":"UI Customization","pages":[{"title":"UI Customization","href":"/ui-customization/overview"}]},{"tab":"API Reference","groups":[{"group":"REST APIs","pages":[{"group":"v2","pages":[{"group":"Organizations","pages":[{"title":"Add Organizations","api":"POST https://api.velt.dev/v2/organizations/add","href":"/api-reference/rest-apis/v2/organizations/add-organizations"},{"title":"Get Organizations","api":"POST https://api.velt.dev/v2/organizations/get","href":"/api-reference/rest-apis/v2/organizations/get-organizations-v2"},{"title":"Update Organizations","api":"POST https://api.velt.dev/v2/organizations/update","href":"/api-reference/rest-apis/v2/organizations/update-organizations"},{"title":"Delete Organizations","api":"POST https://api.velt.dev/v2/organizations/delete","href":"/api-reference/rest-apis/v2/organizations/delete-organizations"},{"title":"Update Disabled State for Organizations","api":"POST https://api.velt.dev/v2/organizations/access/disablestate/update","href":"/api-reference/rest-apis/v2/organizations/update-organization-disable-state"}]},{"group":"Folders","pages":[{"title":"Add Folder","api":"POST https://api.velt.dev/v2/organizations/folders/add","href":"/api-reference/rest-apis/v2/folders/add-folder"},{"title":"Get Folders","api":"POST https://api.velt.dev/v2/organizations/folders/get","href":"/api-reference/rest-apis/v2/folders/get-folders"},{"title":"Update Folder","api":"POST https://api.velt.dev/v2/organizations/folders/update","href":"/api-reference/rest-apis/v2/folders/update-folder"},{"title":"Delete Folder","api":"POST https://api.velt.dev/v2/organizations/folders/delete","href":"/api-reference/rest-apis/v2/folders/delete-folder"},{"title":"Update Access for Folders","api":"POST https://api.velt.dev/v2/organizations/folders/access/update","href":"/api-reference/rest-apis/v2/folders/update-folder-access"}]},{"group":"Documents","pages":[{"title":"Add Documents","api":"POST https://api.velt.dev/v2/organizations/documents/add","href":"/api-reference/rest-apis/v2/documents/add-documents"},{"title":"Get Documents","api":"POST https://api.velt.dev/v2/organizations/documents/get","href":"/api-reference/rest-apis/v2/documents/get-documents-v2"},{"title":"Update Documents","api":"POST https://api.velt.dev/v2/organizations/documents/update","href":"/api-reference/rest-apis/v2/documents/update-documents"},{"title":"Delete Documents","api":"POST https://api.velt.dev/v2/organizations/documents/delete","href":"/api-reference/rest-apis/v2/documents/delete-documents"},{"title":"Move Documents","api":"POST https://api.velt.dev/v2/organizations/documents/move","href":"/api-reference/rest-apis/v2/documents/move-documents"},{"title":"Migrate Documents","api":"POST https://api.velt.dev/v2/organizations/documents/migrate","href":"/api-reference/rest-apis/v2/documents/migrate-documents"},{"title":"Migrate Documents Status","api":"POST https://api.velt.dev/v2/organizations/documents/migrate/status","href":"/api-reference/rest-apis/v2/documents/migrate-documents-status"},{"title":"Update Access for Documents","api":"POST https://api.velt.dev/v2/organizations/documents/access/update","href":"/api-reference/rest-apis/v2/documents/update-document-access"},{"title":"Update Disabled State for Documents","api":"POST https://api.velt.dev/v2/organizations/documents/access/disablestate/update","href":"/api-reference/rest-apis/v2/documents/update-document-disable-state"}]},{"group":"Users","pages":[{"title":"Add Users","api":"POST https://api.velt.dev/v2/users/add","href":"/api-reference/rest-apis/v2/users/add-users"},{"title":"Get Users","api":"POST https://api.velt.dev/v2/users/get","href":"/api-reference/rest-apis/v2/users/get-users-v2"},{"title":"Update Users","api":"POST https://api.velt.dev/v2/users/update","href":"/api-reference/rest-apis/v2/users/update-users"},{"title":"Delete Users","api":"POST https://api.velt.dev/v2/users/delete","href":"/api-reference/rest-apis/v2/users/delete-users"}]},{"group":"User Groups","pages":[{"title":"Add User Groups","api":"POST https://api.velt.dev/v2/organizations/usergroups/add","href":"/api-reference/rest-apis/v2/user-groups/add-groups"},{"title":"Add Users to Groups","api":"POST https://api.velt.dev/v2/organizations/usergroups/users/add","href":"/api-reference/rest-apis/v2/user-groups/add-users-to-group"},{"title":"Delete Users from Groups","api":"POST https://api.velt.dev/v2/organizations/usergroups/users/delete","href":"/api-reference/rest-apis/v2/user-groups/delete-users-from-group"}]},{"group":"Comments Feature","pages":[{"group":"Comments Annotations","pages":[{"title":"Add Comment Annotations","api":"POST https://api.velt.dev/v2/commentannotations/add","href":"/api-reference/rest-apis/v2/comments-feature/comment-annotations/add-comment-annotations"},{"title":"Get Comment Annotations","api":"POST https://api.velt.dev/v2/commentannotations/get","href":"/api-reference/rest-apis/v2/comments-feature/comment-annotations/get-comment-annotations-v2"},{"title":"Update Comment Annotations","api":"POST https://api.velt.dev/v2/commentannotations/update","href":"/api-reference/rest-apis/v2/comments-feature/comment-annotations/update-comment-annotations"},{"title":"Delete Comment Annotations","api":"POST https://api.velt.dev/v2/commentannotations/delete","href":"/api-reference/rest-apis/v2/comments-feature/comment-annotations/delete-comment-annotations"},{"title":"Get Comment Annotations Count","api":"POST https://api.velt.dev/v2/commentannotations/count/get","href":"/api-reference/rest-apis/v2/comments-feature/comment-annotations/get-comment-annotations-count"}]},{"group":"Comments","pages":[{"title":"Add Comments","api":"POST https://api.velt.dev/v2/commentannotations/comments/add","href":"/api-reference/rest-apis/v2/comments-feature/comments/add-comments"},{"title":"Get Comments","api":"POST https://api.velt.dev/v2/commentannotations/comments/get","href":"/api-reference/rest-apis/v2/comments-feature/comments/get-comments"},{"title":"Update Comments","api":"POST https://api.velt.dev/v2/commentannotations/comments/update","href":"/api-reference/rest-apis/v2/comments-feature/comments/update-comments"},{"title":"Delete Comments","api":"POST https://api.velt.dev/v2/commentannotations/comments/delete","href":"/api-reference/rest-apis/v2/comments-feature/comments/delete-comments"}]}]},{"group":"Notifications","pages":[{"title":"Add Notifications","api":"POST https://api.velt.dev/v2/notifications/add","href":"/api-reference/rest-apis/v2/notifications/add-notifications"},{"title":"Get Notifications","api":"POST https://api.velt.dev/v2/notifications/get","href":"/api-reference/rest-apis/v2/notifications/get-notifications-v2"},{"title":"Update Notifications","api":"POST https://api.velt.dev/v2/notifications/update","href":"/api-reference/rest-apis/v2/notifications/update-notifications"},{"title":"Delete Notifications","api":"POST https://api.velt.dev/v2/notifications/delete","href":"/api-reference/rest-apis/v2/notifications/delete-notifications"},{"title":"Set Config","api":"POST https://api.velt.dev/v2/notifications/config/set","href":"/api-reference/rest-apis/v2/notifications/set-config"},{"title":"Get Config","api":"POST https://api.velt.dev/v2/notifications/config/get","href":"/api-reference/rest-apis/v2/notifications/get-config"}]},{"group":"Activity Logs","pages":[{"title":"Add Activity Logs","api":"POST https://api.velt.dev/v2/activities/add","href":"/api-reference/rest-apis/v2/activities/add-activities"},{"title":"Get Activity Logs","api":"POST https://api.velt.dev/v2/activities/get","href":"/api-reference/rest-apis/v2/activities/get-activities"},{"title":"Update Activity Logs","api":"POST https://api.velt.dev/v2/activities/update","href":"/api-reference/rest-apis/v2/activities/update-activities"},{"title":"Delete Activity Logs","api":"POST https://api.velt.dev/v2/activities/delete","href":"/api-reference/rest-apis/v2/activities/delete-activities"}]},{"group":"Recordings","pages":[{"title":"Get Recordings","api":"POST https://api.velt.dev/v2/recordings/get","href":"/api-reference/rest-apis/v2/recordings/get-recordings"}]},{"group":"GDPR","pages":[{"title":"Get All User Data","api":"POST https://api.velt.dev/v2/users/data/get","href":"/api-reference/rest-apis/v2/gdpr/get-all-user-data-gdpr"},{"title":"Delete All User Data","api":"POST https://api.velt.dev/v2/users/data/delete","href":"/api-reference/rest-apis/v2/gdpr/delete-all-user-data-gdpr"},{"title":"Get Delete All User Data Status","api":"POST https://api.velt.dev/v2/users/data/delete/status","href":"/api-reference/rest-apis/v2/gdpr/get-delete-user-data-status-gdpr"}]},{"group":"Access Control","pages":[{"title":"Generate Token","api":"POST https://api.velt.dev/v2/auth/generate_token","href":"/api-reference/rest-apis/v2/auth/generate-token"},{"title":"Add Permissions","api":"POST https://api.velt.dev/v2/auth/permissions/add","href":"/api-reference/rest-apis/v2/auth/add-permissions"},{"title":"Get Permissions","api":"POST https://api.velt.dev/v2/auth/permissions/get","href":"/api-reference/rest-apis/v2/auth/get-permissions"},{"title":"Remove Permissions","api":"POST https://api.velt.dev/v2/auth/permissions/remove","href":"/api-reference/rest-apis/v2/auth/remove-permissions"}]},{"group":"CRDT","pages":[{"title":"Get CRDT Data","api":"POST https://api.velt.dev/v2/crdt/get","href":"/api-reference/rest-apis/v2/crdt/get-crdt-data"},{"title":"Add CRDT Data","api":"POST https://api.velt.dev/v2/crdt/add","href":"/api-reference/rest-apis/v2/crdt/add-crdt-data"},{"title":"Update CRDT Data","api":"POST https://api.velt.dev/v2/crdt/update","href":"/api-reference/rest-apis/v2/crdt/update-crdt-data"}]},{"group":"Live State","pages":[{"title":"Broadcast Event","api":"POST https://api.velt.dev/v2/livestate/broadcast","href":"/api-reference/rest-apis/v2/livestate/broadcast-event"}]},{"group":"Presence","pages":[{"title":"Add Presence","api":"POST https://api.velt.dev/v2/presence/add","href":"/api-reference/rest-apis/v2/presence/add-presence"},{"title":"Update Presence","api":"POST https://api.velt.dev/v2/presence/update","href":"/api-reference/rest-apis/v2/presence/update-presence"},{"title":"Delete Presence","api":"POST https://api.velt.dev/v2/presence/delete","href":"/api-reference/rest-apis/v2/presence/delete-presence"}]},{"group":"Rewriter","pages":[{"title":"Ask AI","api":"POST https://api.velt.dev/v2/rewriter/ask-ai","href":"/api-reference/rest-apis/v2/rewriter/ask-ai"}]},{"group":"Review Workflow Builder","pages":[{"group":"Definitions","pages":[{"title":"Create Definition","api":"POST https://api.velt.dev/v2/workflow/definitions/create","href":"/api-reference/rest-apis/v2/approval-engine/definitions/create-definition"},{"title":"Update Definition","api":"POST https://api.velt.dev/v2/workflow/definitions/update","href":"/api-reference/rest-apis/v2/approval-engine/definitions/update-definition"},{"title":"Delete Definition","api":"POST https://api.velt.dev/v2/workflow/definitions/delete","href":"/api-reference/rest-apis/v2/approval-engine/definitions/delete-definition"},{"title":"Get Definition","api":"POST https://api.velt.dev/v2/workflow/definitions/get","href":"/api-reference/rest-apis/v2/approval-engine/definitions/get-definition"},{"title":"List Definitions","api":"POST https://api.velt.dev/v2/workflow/definitions/list","href":"/api-reference/rest-apis/v2/approval-engine/definitions/list-definitions"}]},{"group":"Executions","pages":[{"title":"Dispatch Execution","api":"POST https://api.velt.dev/v2/workflow/executions/dispatch","href":"/api-reference/rest-apis/v2/approval-engine/executions/dispatch-execution"},{"title":"Get Execution","api":"POST https://api.velt.dev/v2/workflow/executions/get","href":"/api-reference/rest-apis/v2/approval-engine/executions/get-execution"},{"title":"Cancel Execution","api":"POST https://api.velt.dev/v2/workflow/executions/cancel","href":"/api-reference/rest-apis/v2/approval-engine/executions/cancel-execution"},{"title":"Get Execution Events","api":"POST https://api.velt.dev/v2/workflow/executions/getEvents","href":"/api-reference/rest-apis/v2/approval-engine/executions/get-execution-events"},{"title":"List Executions","api":"POST https://api.velt.dev/v2/workflow/executions/list","href":"/api-reference/rest-apis/v2/approval-engine/executions/list-executions"}]},{"group":"Steps","pages":[{"title":"Record Reviewer Decision","api":"POST https://api.velt.dev/v2/workflow/steps/recordReviewerDecision","href":"/api-reference/rest-apis/v2/approval-engine/steps/record-reviewer-decision"},{"title":"Record Agent Resolution","api":"POST https://api.velt.dev/v2/workflow/steps/recordAgentResolution","href":"/api-reference/rest-apis/v2/approval-engine/steps/record-agent-resolution"},{"title":"Cancel Step","api":"POST https://api.velt.dev/v2/workflow/steps/cancel","href":"/api-reference/rest-apis/v2/approval-engine/steps/cancel-step"},{"title":"Resolve Step","api":"POST https://api.velt.dev/v2/workflow/steps/resolve","description":null,"href":"/api-reference/rest-apis/v2/approval-engine/steps/resolve-step"}]}]},{"group":"Agents","pages":[{"title":"Create Agent","api":"POST https://api.velt.dev/v2/agents/create","href":"/api-reference/rest-apis/v2/agents/create"},{"title":"Get Agent(s)","api":"POST https://api.velt.dev/v2/agents/get","description":null,"href":"/api-reference/rest-apis/v2/agents/get"},{"title":"Update Agent (Identity)","api":"POST https://api.velt.dev/v2/agents/update","href":"/api-reference/rest-apis/v2/agents/update"},{"title":"Delete Agent","api":"POST https://api.velt.dev/v2/agents/delete","href":"/api-reference/rest-apis/v2/agents/delete"},{"title":"Extract Agents from File","api":"POST https://api.velt.dev/v2/agents/extract","href":"/api-reference/rest-apis/v2/agents/extract"},{"group":"Versioning","pages":[{"title":"Update Agent Version","api":"POST https://api.velt.dev/v2/agents/version/update","href":"/api-reference/rest-apis/v2/agents/version/update"},{"title":"List Agent Versions","api":"POST https://api.velt.dev/v2/agents/versions/list","href":"/api-reference/rest-apis/v2/agents/versions/list"},{"title":"Restore Agent Version","api":"POST https://api.velt.dev/v2/agents/versions/restore","href":"/api-reference/rest-apis/v2/agents/versions/restore"}]},{"group":"Execution","pages":[{"title":"Run Execution","api":"POST https://api.velt.dev/v2/agents/execution/run","href":"/api-reference/rest-apis/v2/agents/execution/run"},{"title":"Get Execution","api":"POST https://api.velt.dev/v2/agents/execution/get","href":"/api-reference/rest-apis/v2/agents/execution/get"},{"title":"List Executions","api":"POST https://api.velt.dev/v2/agents/execution/list","href":"/api-reference/rest-apis/v2/agents/execution/list"},{"title":"Count Executions","api":"POST https://api.velt.dev/v2/agents/execution/count","href":"/api-reference/rest-apis/v2/agents/execution/count"}]},{"group":"Fix It Everywhere","pages":[{"title":"Estimate Fix It Everywhere","api":"POST https://api.velt.dev/v2/agents/fix-it-everywhere/estimate","href":"/api-reference/rest-apis/v2/agents/fix-it-everywhere/estimate"}]},{"group":"Prompt","pages":[{"title":"Enhance Prompt","api":"POST https://api.velt.dev/v2/agents/prompt/enhance","href":"/api-reference/rest-apis/v2/agents/prompt/enhance"},{"title":"Validate Prompt","api":"POST https://api.velt.dev/v2/agents/prompt/validate","href":"/api-reference/rest-apis/v2/agents/prompt/validate"},{"title":"Refine Prompt","api":"POST https://api.velt.dev/v2/agents/prompt/refine","href":"/api-reference/rest-apis/v2/agents/prompt/refine"}]},{"group":"Config","pages":[{"title":"Resolve Config","api":"POST https://api.velt.dev/v2/agents/config/resolve","href":"/api-reference/rest-apis/v2/agents/config/resolve"}]},{"group":"Analytics","pages":[{"title":"Get Agent Analytics","api":"POST https://api.velt.dev/v2/agents/analytics/get","href":"/api-reference/rest-apis/v2/agents/analytics/get"}]},{"group":"Groups","pages":[{"title":"Create Agent Group","api":"POST https://api.velt.dev/v2/agents/groups/create","href":"/api-reference/rest-apis/v2/agents/groups/create"},{"title":"Get Agent Group","api":"POST https://api.velt.dev/v2/agents/groups/get","href":"/api-reference/rest-apis/v2/agents/groups/get"},{"title":"List Agent Groups","api":"POST https://api.velt.dev/v2/agents/groups/list","href":"/api-reference/rest-apis/v2/agents/groups/list"},{"title":"Update Agent Group","api":"POST https://api.velt.dev/v2/agents/groups/update","href":"/api-reference/rest-apis/v2/agents/groups/update"},{"title":"Delete Agent Group","api":"POST https://api.velt.dev/v2/agents/groups/delete","href":"/api-reference/rest-apis/v2/agents/groups/delete"},{"title":"Add Agents to Group","api":"POST https://api.velt.dev/v2/agents/groups/add-agents","href":"/api-reference/rest-apis/v2/agents/groups/add-agents"},{"title":"Remove Agents from Group","api":"POST https://api.velt.dev/v2/agents/groups/remove-agents","href":"/api-reference/rest-apis/v2/agents/groups/remove-agents"}]},{"group":"Checks","pages":[{"title":"Checks Overview","href":"/api-reference/rest-apis/v2/agents/checks/overview"},{"title":"List Checks","api":"POST https://api.velt.dev/v2/agents/checks/list","href":"/api-reference/rest-apis/v2/agents/checks/list"},{"title":"List Check Comments","api":"POST https://api.velt.dev/v2/agents/checks/comments/list","href":"/api-reference/rest-apis/v2/agents/checks/comments/list"},{"title":"Get Site Score","api":"POST https://api.velt.dev/v2/agents/checks/score/get","href":"/api-reference/rest-apis/v2/agents/checks/score/get"},{"title":"Get Capture Focus","api":"POST https://api.velt.dev/v2/agents/checks/capture-focus/get","href":"/api-reference/rest-apis/v2/agents/checks/capture-focus/get"},{"title":"Get Source Location","api":"POST https://api.velt.dev/v2/agents/checks/source-location/get","href":"/api-reference/rest-apis/v2/agents/checks/source-location/get"},{"title":"Resolve Comment","api":"POST https://api.velt.dev/v2/agents/checks/comments/resolve","href":"/api-reference/rest-apis/v2/agents/checks/comments/resolve"},{"title":"Resolve Check","api":"POST https://api.velt.dev/v2/agents/checks/resolve","href":"/api-reference/rest-apis/v2/agents/checks/resolve"},{"title":"Reject Comment","api":"POST https://api.velt.dev/v2/agents/checks/comments/reject","href":"/api-reference/rest-apis/v2/agents/checks/comments/reject"},{"title":"Reopen Comment","api":"POST https://api.velt.dev/v2/agents/checks/comments/reopen","href":"/api-reference/rest-apis/v2/agents/checks/comments/reopen"},{"title":"Exclude Check","api":"POST https://api.velt.dev/v2/agents/checks/exclude","href":"/api-reference/rest-apis/v2/agents/checks/exclude"},{"title":"Include Check","api":"POST https://api.velt.dev/v2/agents/checks/include","href":"/api-reference/rest-apis/v2/agents/checks/include"},{"title":"Set Check Owner","api":"POST https://api.velt.dev/v2/agents/checks/owner/set","href":"/api-reference/rest-apis/v2/agents/checks/owner/set"},{"title":"Get Check Settings","api":"POST https://api.velt.dev/v2/agents/checks/settings/get","href":"/api-reference/rest-apis/v2/agents/checks/settings/get"},{"title":"Update Check Settings","api":"POST https://api.velt.dev/v2/agents/checks/settings/update","href":"/api-reference/rest-apis/v2/agents/checks/settings/update"},{"title":"Attach Comment","api":"POST https://api.velt.dev/v2/agents/checks/comments/attach","href":"/api-reference/rest-apis/v2/agents/checks/comments/attach"},{"title":"Detach Comment","api":"POST https://api.velt.dev/v2/agents/checks/comments/detach","href":"/api-reference/rest-apis/v2/agents/checks/comments/detach"},{"title":"List Rescan Agents","api":"POST https://api.velt.dev/v2/agents/checks/rescan-agents/list","href":"/api-reference/rest-apis/v2/agents/checks/rescan-agents/list"}]}]},{"group":"Memory","pages":[{"group":"Search and Ask","pages":[{"title":"Search Judgments","api":"POST https://api.velt.dev/v2/memory/search","href":"/api-reference/rest-apis/v2/memory/search"},{"title":"Ask Memory","api":"POST https://api.velt.dev/v2/memory/ask","href":"/api-reference/rest-apis/v2/memory/ask"},{"title":"Suggest Decision","api":"POST https://api.velt.dev/v2/memory/suggest","href":"/api-reference/rest-apis/v2/memory/suggest"},{"title":"Query Judgments","api":"POST https://api.velt.dev/v2/memory/judgments/query","href":"/api-reference/rest-apis/v2/memory/judgments/query"}]},{"group":"Knowledge","pages":[{"title":"Ingest Knowledge","api":"POST https://api.velt.dev/v2/memory/knowledge/ingest","href":"/api-reference/rest-apis/v2/memory/knowledge/ingest"},{"title":"Get Ingest Status","api":"POST https://api.velt.dev/v2/memory/knowledge/ingest-status","href":"/api-reference/rest-apis/v2/memory/knowledge/ingest-status"},{"title":"Get Upload URL","api":"POST https://api.velt.dev/v2/memory/knowledge/upload-url","href":"/api-reference/rest-apis/v2/memory/knowledge/upload-url"},{"title":"Search Knowledge Base","api":"POST https://api.velt.dev/v2/memory/knowledge/search","href":"/api-reference/rest-apis/v2/memory/knowledge/search"},{"title":"List Knowledge Sources","api":"POST https://api.velt.dev/v2/memory/knowledge/list","href":"/api-reference/rest-apis/v2/memory/knowledge/list"},{"title":"List Extracted Rules","api":"POST https://api.velt.dev/v2/memory/knowledge/rules","href":"/api-reference/rest-apis/v2/memory/knowledge/rules"},{"title":"Update Knowledge","api":"POST https://api.velt.dev/v2/memory/knowledge/update","href":"/api-reference/rest-apis/v2/memory/knowledge/update"},{"title":"Download Canonical Markdown","api":"POST https://api.velt.dev/v2/memory/knowledge/download","href":"/api-reference/rest-apis/v2/memory/knowledge/download"},{"title":"Delete Knowledge","api":"POST https://api.velt.dev/v2/memory/knowledge/delete","href":"/api-reference/rest-apis/v2/memory/knowledge/delete"}]},{"group":"Insights","pages":[{"title":"Get Reviewer Profile","api":"POST https://api.velt.dev/v2/memory/profiles/get","href":"/api-reference/rest-apis/v2/memory/profiles/get"},{"title":"Get Patterns","api":"POST https://api.velt.dev/v2/memory/patterns/get","href":"/api-reference/rest-apis/v2/memory/patterns/get"},{"title":"Get Stats","api":"POST https://api.velt.dev/v2/memory/stats/get","href":"/api-reference/rest-apis/v2/memory/stats/get"}]},{"group":"Alerts","pages":[{"title":"List Alerts","api":"POST https://api.velt.dev/v2/memory/alerts/list","href":"/api-reference/rest-apis/v2/memory/alerts/list"},{"title":"Dismiss Alert","api":"POST https://api.velt.dev/v2/memory/alerts/dismiss","href":"/api-reference/rest-apis/v2/memory/alerts/dismiss"},{"title":"Mark Alert Actioned","api":"POST https://api.velt.dev/v2/memory/alerts/action","href":"/api-reference/rest-apis/v2/memory/alerts/action"},{"title":"Get Alert Config","api":"POST https://api.velt.dev/v2/memory/alerts/config/get","href":"/api-reference/rest-apis/v2/memory/alerts/config/get"},{"title":"Update Alert Config","api":"POST https://api.velt.dev/v2/memory/alerts/config/update","href":"/api-reference/rest-apis/v2/memory/alerts/config/update"}]}]},{"group":"Workspace","pages":[{"group":"Account Creation and Verification","pages":[{"title":"Create Workspace","api":"POST https://api.velt.dev/v2/workspace/create","href":"/api-reference/rest-apis/v2/workspace/create"},{"title":"Get Workspace","api":"POST https://api.velt.dev/v2/workspace/get","href":"/api-reference/rest-apis/v2/workspace/get"},{"title":"Get Email Verification Status","api":"POST https://api.velt.dev/v2/workspace/email/status","href":"/api-reference/rest-apis/v2/workspace/email-status"},{"title":"Send Login Link","api":"POST https://api.velt.dev/v2/workspace/email/send-login-link","href":"/api-reference/rest-apis/v2/workspace/send-login-link"}]},{"group":"API Key Management","pages":[{"title":"Create API Key","api":"POST https://api.velt.dev/v2/workspace/apikey/create","href":"/api-reference/rest-apis/v2/workspace/apikey-create"},{"title":"Get API Keys","api":"POST https://api.velt.dev/v2/workspace/apikeys/get","href":"/api-reference/rest-apis/v2/workspace/apikeys-get"},{"title":"Update API Key","api":"POST https://api.velt.dev/v2/workspace/apikey/update","href":"/api-reference/rest-apis/v2/workspace/apikey-update"}]},{"group":"API Key Configuration","pages":[{"title":"Get API Key Config","api":"POST https://api.velt.dev/v2/workspace/apikeyconfig/get","href":"/api-reference/rest-apis/v2/workspace/apikeyconfig-get"},{"title":"Update API Key Config","api":"POST https://api.velt.dev/v2/workspace/apikeyconfig/update","href":"/api-reference/rest-apis/v2/workspace/apikeyconfig-update"}]},{"group":"Auth Tokens","pages":[{"title":"Get Auth Tokens","api":"POST https://api.velt.dev/v2/workspace/authtokens/get","href":"/api-reference/rest-apis/v2/workspace/authtokens-get"},{"title":"Reset Auth Token","api":"POST https://api.velt.dev/v2/workspace/authtoken/reset","href":"/api-reference/rest-apis/v2/workspace/authtoken-reset"}]},{"group":"Manage Domains","pages":[{"title":"Add Domains","api":"POST https://api.velt.dev/v2/workspace/domains/add","href":"/api-reference/rest-apis/v2/workspace/add-domain"},{"title":"Delete Domains","api":"POST https://api.velt.dev/v2/workspace/domains/delete","href":"/api-reference/rest-apis/v2/workspace/delete-domain"},{"title":"Get Domains","api":"POST https://api.velt.dev/v2/workspace/domains/get","href":"/api-reference/rest-apis/v2/workspace/domains-get"}]},{"group":"Email Notifications Configuration","pages":[{"title":"Get Email Config","api":"POST https://api.velt.dev/v2/workspace/emailconfig/get","href":"/api-reference/rest-apis/v2/workspace/emailconfig-get"},{"title":"Update Email Config","api":"POST https://api.velt.dev/v2/workspace/emailconfig/update","href":"/api-reference/rest-apis/v2/workspace/emailconfig-update"}]},{"group":"Basic Webhooks","pages":[{"title":"Get Webhook Config","api":"POST https://api.velt.dev/v2/workspace/webhookconfig/get","href":"/api-reference/rest-apis/v2/workspace/webhookconfig-get"},{"title":"Update Webhook Config","api":"POST https://api.velt.dev/v2/workspace/webhookconfig/update","href":"/api-reference/rest-apis/v2/workspace/webhookconfig-update"}]},{"group":"Advanced Webhooks","pages":[{"title":"Get Advanced Webhook Config","api":"POST https://api.velt.dev/v2/workspace/advancedwebhookconfig/get","href":"/api-reference/rest-apis/v2/workspace/advancedwebhookconfig-get"},{"title":"Update Advanced Webhook Config","api":"POST https://api.velt.dev/v2/workspace/advancedwebhookconfig/update","href":"/api-reference/rest-apis/v2/workspace/advancedwebhookconfig-update"},{"title":"Create Advanced Webhook Endpoint","api":"POST https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/create","href":"/api-reference/rest-apis/v2/workspace/advancedwebhook-endpoints-create"},{"title":"Get Advanced Webhook Endpoints","api":"POST https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/get","href":"/api-reference/rest-apis/v2/workspace/advancedwebhook-endpoints-get"},{"title":"Update Advanced Webhook Endpoint","api":"POST https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/update","href":"/api-reference/rest-apis/v2/workspace/advancedwebhook-endpoints-update"},{"title":"Delete Advanced Webhook Endpoint","api":"POST https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/delete","href":"/api-reference/rest-apis/v2/workspace/advancedwebhook-endpoints-delete"},{"title":"Get Advanced Webhook Endpoint Secret","api":"POST https://api.velt.dev/v2/workspace/advancedwebhook/endpoints/secret/get","href":"/api-reference/rest-apis/v2/workspace/advancedwebhook-endpoints-secret-get"}]},{"group":"Activity Configuration","pages":[{"title":"Get Activity Config","api":"POST https://api.velt.dev/v2/workspace/activityconfig/get","href":"/api-reference/rest-apis/v2/workspace/activityconfig-get"},{"title":"Update Activity Config","api":"POST https://api.velt.dev/v2/workspace/activityconfig/update","href":"/api-reference/rest-apis/v2/workspace/activityconfig-update"}]},{"group":"Notification Configuration","pages":[{"title":"Get Notification Config","api":"POST https://api.velt.dev/v2/workspace/notificationconfig/get","href":"/api-reference/rest-apis/v2/workspace/notificationconfig-get"},{"title":"Update Notification Config","api":"POST https://api.velt.dev/v2/workspace/notificationconfig/update","href":"/api-reference/rest-apis/v2/workspace/notificationconfig-update"}]},{"group":"Permission Provider Configuration","pages":[{"title":"Get Permission Provider Config","api":"POST https://api.velt.dev/v2/workspace/permissionproviderconfig/get","href":"/api-reference/rest-apis/v2/workspace/permissionproviderconfig-get"},{"title":"Update Permission Provider Config","api":"POST https://api.velt.dev/v2/workspace/permissionproviderconfig/update","href":"/api-reference/rest-apis/v2/workspace/permissionproviderconfig-update"}]}]}]},{"group":"v1","pages":[{"group":"Organizations","pages":[{"title":"Add Organizations","api":"POST https://api.velt.dev/v1/organizations/add","href":"/api-reference/rest-apis/v1/organizations/add-organizations"},{"title":"Get Organizations","api":"POST https://api.velt.dev/v1/organizations/get","href":"/api-reference/rest-apis/v1/organizations/get-organizations"},{"title":"Update Organizations","api":"POST https://api.velt.dev/v1/organizations/update","href":"/api-reference/rest-apis/v1/organizations/update-organizations"},{"title":"Delete Organizations","api":"POST https://api.velt.dev/v1/organizations/delete","href":"/api-reference/rest-apis/v1/organizations/delete-organizations"},{"title":"Update Disabled State for Organizations","api":"POST https://api.velt.dev/v1/organizations/access/disablestate/update","href":"/api-reference/rest-apis/v1/organizations/update-organization-disable-state"}]},{"group":"Folders","pages":[{"title":"Add Folder","api":"POST https://api.velt.dev/v1/organizations/folders/add","href":"/api-reference/rest-apis/v1/folders/add-folder"},{"title":"Get Folders","api":"POST https://api.velt.dev/v1/organizations/folders/get","href":"/api-reference/rest-apis/v1/folders/get-folders"},{"title":"Update Folder","api":"POST https://api.velt.dev/v1/organizations/folders/update","href":"/api-reference/rest-apis/v1/folders/update-folder"},{"title":"Update Access for Folders","api":"POST https://api.velt.dev/v1/organizations/folders/access/update","href":"/api-reference/rest-apis/v1/folders/update-folder-access"}]},{"group":"Documents","pages":[{"title":"Add Documents","api":"POST https://api.velt.dev/v1/organizations/documents/add","href":"/api-reference/rest-apis/v1/documents/add-documents"},{"title":"Get Documents","api":"POST https://api.velt.dev/v1/organizations/documents/get","href":"/api-reference/rest-apis/v1/documents/get-documents"},{"title":"Update Documents","api":"POST https://api.velt.dev/v1/organizations/documents/update","href":"/api-reference/rest-apis/v1/documents/update-documents"},{"title":"Delete Documents","api":"POST https://api.velt.dev/v1/organizations/documents/delete","href":"/api-reference/rest-apis/v1/documents/delete-documents"},{"title":"Move Documents","api":"POST https://api.velt.dev/v1/organizations/documents/move","href":"/api-reference/rest-apis/v1/documents/move-documents"},{"title":"Update Access for Documents","api":"POST https://api.velt.dev/v1/organizations/documents/access/update","href":"/api-reference/rest-apis/v1/documents/update-document-access"},{"title":"Update Disabled State for Documents","api":"POST https://api.velt.dev/v1/organizations/documents/access/disablestate/update","href":"/api-reference/rest-apis/v1/documents/update-document-disable-state"}]},{"group":"Users","pages":[{"title":"Add Users","api":"POST https://api.velt.dev/v1/users/add","href":"/api-reference/rest-apis/v1/users/add-users"},{"title":"Get Users","api":"POST https://api.velt.dev/v1/users/get","href":"/api-reference/rest-apis/v1/users/get-users"},{"title":"Update Users","api":"POST https://api.velt.dev/v1/users/update","href":"/api-reference/rest-apis/v1/users/update-users"},{"title":"Delete Users","api":"POST https://api.velt.dev/v1/users/delete","href":"/api-reference/rest-apis/v1/users/delete-users"}]},{"group":"User Groups","pages":[{"title":"Add User Groups","api":"POST https://api.velt.dev/v1/organizations/usergroups/add","href":"/api-reference/rest-apis/v1/user-groups/add-groups"},{"title":"Add Users to Groups","api":"POST https://api.velt.dev/v1/organizations/usergroups/users/add","href":"/api-reference/rest-apis/v1/user-groups/add-users-to-group"},{"title":"Delete Users from Groups","api":"POST https://api.velt.dev/v1/organizations/usergroups/users/delete","href":"/api-reference/rest-apis/v1/user-groups/delete-users-from-group"}]},{"group":"Comments Feature","pages":[{"group":"Comments Annotations","pages":[{"title":"Add Comment Annotations","api":"POST https://api.velt.dev/v1/commentannotations/add","href":"/api-reference/rest-apis/v1/comments-feature/comment-annotations/add-comment-annotations"},{"title":"Get Comment Annotations","api":"POST https://api.velt.dev/v1/commentannotations/get","href":"/api-reference/rest-apis/v1/comments-feature/comment-annotations/get-comment-annotations"},{"title":"Update Comment Annotations","api":"POST https://api.velt.dev/v1/commentannotations/update","href":"/api-reference/rest-apis/v1/comments-feature/comment-annotations/update-comment-annotations"},{"title":"Delete Comment Annotations","api":"POST https://api.velt.dev/v1/commentannotations/delete","href":"/api-reference/rest-apis/v1/comments-feature/comment-annotations/delete-comment-annotations"},{"title":"Get Comment Annotations Count","api":"POST https://api.velt.dev/v1/commentannotations/count/get","href":"/api-reference/rest-apis/v1/comments-feature/comment-annotations/get-comment-annotations-count"}]},{"group":"Comments","pages":[{"title":"Add Comments","api":"POST https://api.velt.dev/v1/commentannotations/comments/add","href":"/api-reference/rest-apis/v1/comments-feature/comments/add-comments"},{"title":"Get Comments","api":"POST https://api.velt.dev/v1/commentannotations/comments/get","href":"/api-reference/rest-apis/v1/comments-feature/comments/get-comments"},{"title":"Update Comments","api":"POST https://api.velt.dev/v1/commentannotations/comments/update","href":"/api-reference/rest-apis/v1/comments-feature/comments/update-comments"},{"title":"Delete Comments","api":"POST https://api.velt.dev/v1/commentannotations/comments/delete","href":"/api-reference/rest-apis/v1/comments-feature/comments/delete-comments"}]}]},{"group":"Notifications","pages":[{"title":"Add Notifications","api":"POST https://api.velt.dev/v1/notifications/add","href":"/api-reference/rest-apis/v1/notifications/add-notifications"},{"title":"Get Notifications","api":"POST https://api.velt.dev/v1/notifications/get","href":"/api-reference/rest-apis/v1/notifications/get-notifications"},{"title":"Update Notifications","api":"POST https://api.velt.dev/v1/notifications/update","href":"/api-reference/rest-apis/v1/notifications/update-notifications"},{"title":"Delete Notifications","api":"POST https://api.velt.dev/v1/notifications/delete","href":"/api-reference/rest-apis/v1/notifications/delete-notifications"},{"title":"Set Config","api":"POST https://api.velt.dev/v1/notifications/config/set","href":"/api-reference/rest-apis/v1/notifications/set-config"},{"title":"Get Config","api":"POST https://api.velt.dev/v1/notifications/config/get","href":"/api-reference/rest-apis/v1/notifications/get-config"}]},{"group":"Access Control","pages":[{"title":"Generate Token","api":"POST https://api.velt.dev/v1/auth/token/get","href":"/api-reference/rest-apis/v1/auth/generate-token"}]},{"group":"GDPR","pages":[{"title":"Get All User Data","api":"POST https://api.velt.dev/v1/users/data/get","href":"/api-reference/rest-apis/v1/gdpr/get-all-user-data-gdpr"},{"title":"Delete All User Data","api":"POST https://api.velt.dev/v1/users/data/delete","href":"/api-reference/rest-apis/v1/gdpr/delete-all-user-data-gdpr"},{"title":"Get Delete All User Data Status","api":"POST https://api.velt.dev/v1/users/data/delete/status","href":"/api-reference/rest-apis/v1/gdpr/get-delete-user-data-status-gdpr"}]},{"group":"Live State","pages":[{"title":"Broadcast Event","api":"POST https://api.velt.dev/v1/livestate/broadcast","href":"/api-reference/rest-apis/v1/livestate/broadcast-event"}]},{"group":"Workspace","pages":[{"title":"Add Domains","api":"POST https://api.velt.dev/v1/workspace/domains/add","href":"/api-reference/rest-apis/v1/workspace/add-domain"},{"title":"Delete Domains","api":"POST https://api.velt.dev/v1/workspace/domains/delete","href":"/api-reference/rest-apis/v1/workspace/delete-domain"}]}]}]},{"group":"SDK","pages":[{"group":"APIs","pages":[{"title":"API Methods Index","href":"/api-reference/sdk/api/api-methods"},{"title":"React Hooks Index","href":"/api-reference/sdk/api/react-hooks"}]},{"title":null,"href":"/api-reference/sdk/models/data-models"}]}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/version-6/sdk-changelog"}]},{"tab":"Examples","href":"https://velt.dev/examples"},{"tab":"DevTools","href":"https://velt.dev/devtools"}]},"basePath":"","title":"Create Agent - Velt","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-CNqlzjVB.js","utils-BqFiXZ79.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CnR4QBe6.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BY2ZM1OO.js","snippetPresets-x-8ACO8V.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ch-SJE05.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CqqG_0NE.js","shallow-BXrZ2b0C.js","getApiPlaygroundDisplay-n7J_wkjq.js","CodeSnippet-CQsp4vyQ.js","CodeSnippets-BfuHqvZx.js","Page-CTxrMSpo.js","getPastedJson-BjrGIK1i.js","icon-7iLZnVOC.js","MethodPill-TBS1m84e.js","DuplicateIcon-BNMrV4Vs.js","createIcon-C5kCqeU2.js","DynamicMarkdown-Bq09mRwR.js","SectionHeading-G4Bflf5Q.js","axios-vUo_bRtp.js"]}