Sign in

Agents API — Configurator

API reference for Configurator agent management endpoints

configurator
apiconfiguratoragents

Updated 2026-11-03

Verified 2026-11-03

The Agents API manages agents: an LLM, a prompt, tools, skills, knowledge, guardrails, and optional sub-agents combined into a versioned, deployable configuration that ADK runs. For architecture and configuration, see Configurator.

Paths are relative to the Configurator service root (port 8100 locally). Authentication, required headers, errors, and the pagination envelope follow the API conventions; see Pagination for page and page_size (default 20, maximum 100).

When a request sends X-Project-Id, list and bulk-fetch results only include agents enabled in that project, and detail routes return 404 for agents that are not enabled. New agents are bound to the project; if binding fails, the creation is rolled back.

Endpoints

MethodPathPermissionDescription
GET/api/v1/agents/HasCanListAgentPermissionList agents
POST/api/v1/agents/HasCanCreateAgentPermissionCreate an agent (201)
GET/api/v1/agents/{id}/HasCanViewAgentPermissionGet an agent with its latest draft and deployed configurations
PUT/api/v1/agents/{id}/HasCanUpdateAgentPermissionUpdate an agent (creates or edits a draft)
DELETE/api/v1/agents/{id}/HasCanDeleteAgentPermissionDelete an agent (204)
POST/api/v1/agents/{id}/deploy/HasCanUpdateAgentPermissionDeploy the latest draft
GET/api/v1/agents/{id}/versions/HasCanViewAgentPermissionList configuration versions
GET/api/v1/agents/{id}/tree/HasCanViewAgentPermissionResolved sub-agent tree for a version
GET/api/v1/agents/bulk-fetch/HasCanListAgentPermissionFetch several agents by reference
GET/api/v1/agents/by-collection/{collection_id}/HasCanListAgentPermissionAgents that use a knowledge base collection
GET/api/v1/agents/authorized-search/—Agents the caller may execute in an app scope
GET/api/v1/agents/{id}/runtime-resources/Service permissionRuntime resource manifest for consumer execution
POST/api/v1/agents/{id}/candidate-apply/HasCanUpdateAgentPermissionApply an experiment or suggestion candidate
POST/api/v1/agents/{id}/share-with-organization/Organization administratorShare a project agent with the organization

There is no PATCH and no clone route.


Create or Update an Agent

POST /api/v1/agents/ and PUT /api/v1/agents/{id}/

FieldTypeRequiredDescription
namestringyesAgent name
descriptionstringnoDescription
tagsstring[]noTags
configurationobjectyesConfiguration fields below
visibilitystringnoCreate only; project or organization visibility when X-Project-Id is sent

Configuration fields

FieldDescription
typellm or workflow. sequential, parallel, and loop are deprecated for writes; use workflow with workflow_kind.
workflow_kindsequential, parallel, loop, or graph
workflow_graphGraph definition for workflow_kind: graph
model{"provider": "...", "model": "..."} from the organization's BYOT models
promptSystem instructions
temperature0.1 to 1.9
max_output_tokensOutput limit
thinking_mode, reasoning_effortReasoning controls, clamped to the model's capabilities
dynamic_thinking_enabledLets ADK pick thinking settings per query
prompt_caching, prompt_caching_historyAnthropic-family prompt caching; null means on
headroom_compression_enabledOpts in to the Headroom compression proxy
sub_agents[{"id": "...", "version": "1.0"}]
tools[{"id": "...", "type": "api", "version": "1.0"}]
skills[{"id": "...", "version": "1.0"}]
knowledge_base_collections, knowledge_graph_idsKnowledge sources
web_browsing_enabledDefault false
enable_contextContext injection toggle
guardrails, use_org_default_guardrailsContent filter guardrails, or the organization defaults; the two are mutually exclusive
is_rootRoot agent flag
output_keyState key for the agent's output
max_iterationsLoop workflows
context_window_tokensRoot-agent context window override, at least 8192
token_thresholdCompaction trigger in tokens
num_invocations_to_keep, compaction_interval, overlap_size, event_retention_sizeHistory and compaction settings ADK applies
analyzer_id, analyzer_versionAttached analyzer
trigger_policyAnalyzer trigger policy
source_experiment_id, source_suggestion_idProvenance for candidate-applied versions

Read-only fields: version, status, content_hash, topology_hash, and business_events (deprecated; replaced by analyzers, with a business_events_deprecated flag in the output).

bash
curl -s -X POST 'http://localhost:8100/api/v1/agents/' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'X-Org-Id: YOUR_ORG_ID' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "customer_support_agent",
    "description": "Handles customer support inquiries",
    "configuration": {
      "type": "llm",
      "model": {"provider": "azure_openai", "model": "gpt-4o"},
      "prompt": "You are a helpful customer support agent.",
      "tools": [{"id": "TOOL_ID", "type": "api", "version": "1.0"}]
    }
  }'

The response is the agent (id, org_id, name, description, tags, timestamps) with latest_draft and latest_deployed configurations.

Versioning

Versions are major.minor strings. On update:

Latest versionChangeResult
DeployedOnly sub-agent versions changedNext minor version
DeployedAnything elseNext major version
Draft (major) or only sub-agent versions changedAnyThe draft is updated in place
Draft (minor)Anything elseNext major version

Each new configuration emits agent.configuration.added or agent.configuration.updated on the configurator Kafka topic.


List Agents

GET /api/v1/agents/

ParameterDescription
nameName filter
tagsTag filter
is_rootRoot agents only
statusdraft or deployed
sort_bycreated_at, updated_at (default), or name
sort_orderasc or desc (default)
page, page_sizePagination

List Versions

GET /api/v1/agents/{id}/versions/

ParameterDescription
statusdraft or deployed
versionOne or more exact versions
version_typeall, major, or minor
sort_byversion, created_at, or updated_at
sort_orderasc or desc
page, page_sizePagination

Deploy

POST /api/v1/agents/{id}/deploy/

Takes no body. Deploys the agent's latest draft and also deploys any draft sub-agents it references. Returns 400 when there is no draft. ADK and the other consumers receive agent.configuration.deployed.

Delete

DELETE /api/v1/agents/{id}/ soft-deletes the agent and returns 204. Deletion is blocked while the agent is used as a sub-agent, a graph node, or an app's orchestrator. Consumers receive agent.deleted.

Bulk Fetch

GET /api/v1/agents/bulk-fetch/?agent=<uuid>&agent=<uuid>:2.1

Each agent value is either a UUID (latest deployed configuration; returned with configuration: null when nothing is deployed) or uuid:version (that exact version; omitted when it does not exist). Malformed UUIDs and empty versions (uuid:) return 400.

GET /api/v1/agents/authorized-search/?app_id=...&scope_type=...&scope_id=...

Takes the list filters plus app_id, scope_type, scope_id (all required), and action (default agent.execute). Returns only the agents the caller may run in that scope.

Tree

GET /api/v1/agents/{id}/tree/?version=1.0 returns the agent and its resolved sub-agents for the given version.


Running Agents

Deployed agents run on ADK, not Configurator. Use the ADK host with /api/v1/adk/converse/ (sync), /api/v1/adk/converse/v2 (WebSocket), or /api/v1/adk/async/requests/ (async). See the ADK Converse API.