The watsonx_orchestrate service has 7 resource kinds, each listed below with its endpoints, fields, and dependencies. Values resolve late, so you reference another resource with ${kind.ref_name}. For defaults, validation rules, and examples, run wxctl explain <kind>.
  • Envelope: A config is one or more YAML documents separated by ---. Each has top-level kind and ref_name, then the fields below at the top level (not nested under spec).
  • ref_name: Unique handle for this resource within the config. Used to reference it from other resources, then stripped before the API call (not a schema field).
  • References: Reference another resource by its ref_name: ${<kind>.<ref_name>} resolves to its id, ${<kind>.<ref_name>.<field>} to a specific field. Values resolve late, at plan/apply time.

agent

An Agent is a configurable AI assistant within Watsonx Orchestrate that can perform tasks using tools, collaborate with other agents, and leverage knowledge bases. Runs on SaaS + Software · ID field id Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/agents
ReadGET/v1/orchestrate/agents/{id}
ListGET/v1/orchestrate/agents
UpdatePATCH/v1/orchestrate/agents/{id}
DeleteDELETE/v1/orchestrate/agents/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredUnique name identifier for the agent. Used as the primary reference for the agent within the system and must be unique across all agents in the tenant.
display_namestringOptionalHuman-readable display name shown in the UI. This is the friendly name that users will see when interacting with or selecting the agent.
descriptionstringRequiredPrimary description of what the agent does. This serves as the agent’s system prompt and defines its core purpose, behavior, and capabilities.
instructionsstringOptionalAdditional instructions that supplement the description. Used to provide specific behavioral guidelines, constraints, or detailed operating procedures for the agent.
stylestringRequiredDefines the agent’s interaction and reasoning style. The ‘default’ style provides standard conversational responses. The ‘react’ style enables ReAct (Reasoning + Acting) pattern for more deliberate, step-by-step problem solving with explicit reasoning chains. The ‘planner’ style enables advanced planning capabilities for complex multi-step task decomposition and execution.
llmstringRequiredLLM model identifier that specifies which language model the agent uses. Format typically follows the pattern: provider/model-family/model-name (e.g., watsonx/meta-llama/llama-3-2-90b-vision-instruct). This determines the agent’s language understanding and generation capabilities.
llm_configobjectOptional
structured_outputobjectOptionalJSON schema that defines the required structure for the agent’s responses. When configured, the agent will format its outputs to match this schema, enabling consistent, machine-parseable responses for integration with downstream systems.
hiddenbooleanOptionalControls visibility when listing agents. When true, the agent is hidden from default agent listings and discovery interfaces. Useful for internal/system agents or work-in-progress agents that shouldn’t be publicly available.
hide_reasoningbooleanOptionalWhen enabled, hides the agent’s internal reasoning steps and chain-of-thought from the user interface. Users will only see the final answer/response, not the intermediate reasoning process. Useful for cleaner UX when reasoning details aren’t needed.
sync_tool_flow_interactionsbooleanOptionalEnable/disable syncing user interactions from tool flow to the agent
context_access_enabledbooleanOptionalEnables the agent to access context variables from the runtime environment. When enabled, the agent can read and utilize context-specific information that may vary by session, user, or environment.
toolsarray<string>OptionalList of tool names that the agent can invoke to perform actions and retrieve information. Tools extend the agent’s capabilities beyond conversation, enabling it to interact with external systems, APIs, and data sources.
toolkitsarray<string>OptionalList of toolkit ids available to the agent
collaboratorsarray<string>OptionalList of other agent names that this agent can collaborate with. Enables multi-agent workflows where agents can delegate tasks, consult specialists, and coordinate to solve complex problems.
knowledge_basearray<string>OptionalList of knowledge base names that provide the agent with access to document-based information. Enables the agent to retrieve relevant context, facts, and domain-specific knowledge when answering user queries.
glossaryarray<string>OptionalList of glossary available to the agent
guidelinesarray<object>OptionalBehavioral guidelines that define specific rules, policies, or constraints the agent should follow. Each guideline is an object with display_name (optional), condition (when the guideline applies), and action (what the agent should do).
connection_idsarray<string>OptionalList of connection IDs for direct agent-to-connection bindings
context_variablesarray<string>OptionalList of specific context variable names that this agent is permitted to access. Only the variables listed here will be available to the agent when context_access_enabled is true. Provides fine-grained control over what contextual information the agent can utilize.
additional_propertiesobjectOptionalContainer for additional agent settings such as starter_prompts (suggested conversation starters shown to users), welcome_content (initial greeting message), and other UI/UX customizations defined in the AgentAdditionalPropertiesIn schema.
chat_with_docsobjectOptionalConfiguration for the Chat with Documents feature, which allows agents to dynamically create and interact with document-based knowledge bases during conversation threads. Enables document upload and contextual Q&A within chat sessions.
tagsarray<string>OptionalCategorization tags for organizing and filtering agents. Used for grouping related agents and enabling tag-based search and discovery within the system.
Computed outputs: id, agent_mapping, environments, tenant_id, created_by, created_on, updated_by, updated_at, deleted_by, deleted_at. Depends on
  • llmmodel (optional)
  • toolstool (optional)
  • toolkitstoolkit (optional)
  • collaboratorsagent (optional)
  • knowledge_baseknowledge_base (optional)
Consumers
  • agent.collaborators (optional)
  • agent_release.agent_id (required)

agent_release

Deploys (releases) a watsonx Orchestrate agent’s current draft to the live environment. Runs on SaaS + Software · ID field version Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/agents/{agent_id}/releases
ReadGET/v1/orchestrate/agents/{agent_id}/environment
ListGET/v1/orchestrate/agents/{agent_id}/environment
UpdatePOST/v1/orchestrate/agents/{agent_id}/environment
DeleteDELETE/v1/orchestrate/agents/{agent_id}/environment
Fields
FieldTypeRequiredDescription
agent_idstringRequiredId of the agent to release. Fills {agent_id} on every endpoint; references agent.id so the release orders after the agent in the DAG. Path (not LocalOnly) so build.rs emits the edge (ordering-only-reference-fields-localonly-no-edge-fix).
environmentstringOptionalTarget environment. Only live is supported (draft is the working state; there is no third environment). Matched against each remote env’s name in discovery.
versionintegerOptionalOmit to release the current draft (auto-latest, known after apply); set to an existing version to pin/roll the live environment to it (repoint owned by pre_update in Phase 2).
commentsstringOptionalOptional release comment. LocalOnly, folded into the release body by the handler (not materialized generically). Carries no references, so no edge is lost.
Computed outputs: environment_id, current_version, status. Depends on
  • agent_idagent (required)

knowledge_base

A Knowledge Base provides document-based context and information retrieval capabilities for agents. Runs on SaaS + Software · ID field id Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/knowledge-bases/documents
ReadGET/v1/orchestrate/knowledge-bases/{id}
ListGET/v1/orchestrate/knowledge-bases
UpdatePATCH/v1/orchestrate/knowledge-bases/{id}/documents
DeleteDELETE/v1/orchestrate/knowledge-bases/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredUnique name identifier for the knowledge base. Used as the primary reference for the knowledge base within the system and must be unique across all knowledge bases in the tenant.
display_namestringOptionalHuman-readable display name shown in the UI. This is the friendly name that users will see when browsing or selecting knowledge bases for their agents.
descriptionstringOptionalTextual description explaining what content and information this knowledge base contains. Helps users understand the scope and subject matter of the knowledge base.
prioritize_built_in_indexbooleanOptionalWhen both a built-in vector index and external index are available, this flag determines which to prioritize for search queries. True (default) prioritizes the built-in index managed by Watsonx Orchestrate.
representationstringOptionalDefines how the knowledge base is represented and accessed by agents. The ‘tool’ representation exposes the knowledge base as a callable tool that agents can invoke for information retrieval.
vector_indexobjectOptionalConfiguration for the built-in vector index that enables semantic search over ingested documents. Defines how documents are processed, chunked, embedded, and retrieved during conversational search operations.
conversational_search_toolobjectOptionalComprehensive configuration for the conversational search tool that enables natural language querying over the knowledge base. Controls retrieval behavior, response generation, confidence thresholds, citations, and other advanced search features.
documentsarray<object>OptionalArray of document objects to ingest into the knowledge base via multipart form upload. Each document specifies a local file path to upload and optionally a source URL for metadata tracking. Documents are processed, chunked, and indexed for semantic search.
Computed outputs: id, tenant_id, created_by, updated_at. Consumers
  • agent.knowledge_base (optional)

model

A Model Configuration defines custom language model settings and parameters for use within Watsonx Orchestrate. Runs on SaaS + Software · ID field id Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/models
ReadGET/v1/orchestrate/models/{id}
ListGET/v1/orchestrate/models
UpdatePUT/v1/orchestrate/models/{id}
DeleteDELETE/v1/orchestrate/models/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredUnique name identifier for the model configuration. Typically follows the format virtual-model/provider/model-name (e.g., watsonx/meta-llama/llama-3-2-90b-vision-instruct). This is the identifier that agents use when specifying which LLM to use.
display_namestringRequiredHuman-readable display name shown in the UI when selecting or managing models. Provides a friendly name that users can easily recognize.
provider_configobjectRequiredProvider-specific configuration object that identifies which LLM provider this model uses (e.g., watsonx, openai, anthropic). Contains provider name and any provider-specific settings. Additional provider keys not declared below pass through unchanged, only the fields needing cross-resource references are declared here.
configobjectOptionalInference-time model configuration (the wxO API’s ModelConfig object). Keys pass through unchanged; commonly used keys are model (the provider-side model id), max_tokens / max_completion_tokens (completion budget; the watsonx.ai default is 1024, which reasoning models such as gpt-oss can exhaust on reasoning_content before emitting any answer text), reasoning_effort (low, medium, high), temperature, thinking, parallel_tool_calls, disable_tool_validation, and response_format.
descriptionstringOptionalTextual description of the model configuration, explaining what the model is for, its capabilities, use cases, or any special configuration notes.
tagsarray<string>OptionalCategorization tags for organizing and filtering model configurations. Useful for grouping models by capability, use case, cost tier, or other organizational criteria.
model_typestringRequiredSpecifies the category and usage pattern of the model. ‘chat’ models are for conversational interactions, ‘completion’ models generate text continuations, and ‘embedding’ models convert text into vector representations for semantic search.
connection_idstringRequiredReference to the orchestrate connection that provides authentication credentials for accessing the model’s API. Links this model config to the appropriate connection resource that handles authentication and API access.
titlestringOptionalOptional title for the model configuration. Can be used for additional labeling or categorization beyond the display_name.
api_basestringOptionalCustom base URL for the model’s API endpoint. Overrides the default API endpoint when connecting to custom deployments or alternative hosting environments.
api_versionstringOptionalSpecific API version to use when invoking the model. Allows pinning to particular API versions for stability or accessing version-specific features.
deployment_idstringOptionalIdentifier for a specific model deployment or instance. Used when the provider supports multiple deployments of the same model with different configurations or scaling.
Computed outputs: id, tenant_id, tenant_name, created_on, created_by, created_by_username, updated_at, model_name, provider. Depends on
  • provider_config.watsonx_deployment_idwml_deployment (optional)
  • provider_config.watsonx_project_idproject (optional)
  • provider_config.watsonx_space_idspace (optional)
  • connection_idorchestrate_connection (required)
Consumers
  • agent.llm (optional)
Advisories
  • warn (doc_cited, 2026-06-12): A watsonx Orchestrate model’s connection_id must reference an Orchestrate connection (orchestrate_connection), not a Common Core (CAMS) common_core_connection. A CAMS connection asset id is accepted at create time but inference then fails, because the AI gateway cannot resolve credentials from it. Share cross-product credentials through an Orchestrate connection instead.

orchestrate_connection

A Connection represents authentication credentials and configuration for integrating external applications with Watsonx Orchestrate. Runs on SaaS + Software · ID field app_id Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/connections/applications
ReadGET/v1/orchestrate/connections/applications/{app_id}
ListGET/v1/orchestrate/connections/applications
DeleteDELETE/v1/orchestrate/connections/applications/{app_id}
Fields
FieldTypeRequiredDescription
connection_typestringRequiredType of connection being created. Used during CREATE operations to specify which authentication mechanism to configure. Each type requires different credential fields.
credentialsobjectRequiredJSON object containing the authentication credentials specific to the connection_type. Structure varies based on authentication method (e.g., username/password for basic_auth, tokens for OAuth2). Used during CREATE operations only.
app_idstringRequiredApplication identifier or name that uniquely identifies the external application being connected. This serves as the primary reference for the connection and must be unique within the tenant.
namestringOptionalHuman-readable display name for the connection. If not provided, defaults to the app_id. This is the friendly name shown in UI when selecting or managing connections.
descriptionstringOptionalTextual description of what this connection is for and what external service it connects to. Helps users understand the purpose and scope of the connection.
iconstringOptionalSVG icon data or icon reference for visual representation of the connected application. Used in UI to provide visual identification of the connection type or service.
environmentarray<string>OptionalEnvironments to configure this connection for, as a list. Each element must be draft (pre-production) or live (production). Declare both (for example [draft, live]) to configure the connection in both environments; a deployed agent runs in live, so its connections need a live configuration. Each listed environment is configured independently at apply time.
preferencestringOptionalPreference scope for the connection configuration (e.g., team, personal). Determines whether credentials are shared across a team or kept personal to individual users.
config_security_schemestringOptionalSecurity scheme to use for post-creation configuration (e.g., key_value_creds). Applied when setting up connection authentication after initial creation.
config_auth_typestringOptionalAuthentication type for post-creation configuration. Specifies the auth mechanism when configuring connection settings via the post_create hook.
config_ssobooleanOptionalFlag indicating whether Single Sign-On should be enabled during post-creation configuration. Used when setting up SSO authentication for the connection.
config_server_urlstringOptionalServer URL to configure during post-creation setup. Allows specifying the API endpoint when configuring connection after creation.
idp_config_dataobjectOptionalIdentity Provider (IDP) configuration data object for SSO and OAuth flows. Contains provider-specific settings needed for third-party authentication integration.
app_config_dataobjectOptionalApplication-specific configuration data for the connection. Contains settings and parameters specific to the connected application’s API requirements.
runtime_credentialsobjectOptionalRuntime credentials object to be applied after the connection configuration is complete. Used to set actual credential values during the post-creation configuration phase.
configured_environmentsarray<string>OptionalHandler-managed state: the sorted, deduped set of environments this connection is currently configured for. Not user-settable. The handler sets it in post_validate from environment (desired) and in post_discover by probing the API (remote); it participates in state comparison so a missing environment on an existing connection reconciles as an in-place Update (converge), never a recreate.
Computed outputs: tenant_id, is_connected, connection_id, created_on, security_scheme, auth_type, sso, server_url, credentials_entered. Consumers
  • model.connection_id (required)
  • tool.binding.openapi.connection_id (optional)
  • tool.binding.python.connections (optional)
  • toolkit.mcp.connections (optional)

tool

A Tool is a specification for a callable function or service that agents can invoke to perform actions and retrieve information. Runs on SaaS + Software · ID field id Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/tools
ReadGET/v1/orchestrate/tools/{id}
ListGET/v1/orchestrate/tools
UpdatePUT/v1/orchestrate/tools/{id}
DeleteDELETE/v1/orchestrate/tools/{id}
Fields
FieldTypeRequiredDescription
namestringOptionalUnique name identifier for the tool. Used as the primary reference for the tool and must be unique across all tools in the tenant. Agents and users reference tools by this name.
display_namestringOptionalHuman-readable display name shown in the UI when browsing or selecting tools. Provides a friendly name that users can easily recognize and understand.
descriptionstringOptionalDetailed description of what the tool does, when to use it, and what it returns. This description is crucial as it helps agents (via LLM reasoning) decide when to invoke the tool and how to use it effectively.
permissionstringRequiredThe permission level required to use this tool, controlling what operations it can perform and how agents reason about its safety. ‘read_only’ tools can only retrieve data without side effects. ‘write_only’ tools can create or modify resources. ‘read_write’ tools can both read and write data. ‘admin’ tools have elevated privileges for system-level operations.
input_schemaobjectOptionalJSON Schema defining the input parameters that the tool accepts. Loaded from schema.yaml in the source directory. Defines parameter names, types, descriptions, and constraints that help agents understand how to invoke the tool with correct arguments.
output_schemaobjectOptionalJSON Schema defining the structure and meaning of the tool’s output. Loaded from schema.yaml in the source directory. Helps agents understand what information the tool returns and how to interpret and use the results.
bindingobjectOptionalBinding configuration that specifies how the tool is implemented and executed. Defines the execution runtime (Python, API, etc.) and provides the necessary references and settings to invoke the actual tool implementation.
tagsarray<string>OptionalCategorization tags for organizing and discovering tools. Tags help users filter and find tools by capability, domain, or use case (e.g., ‘data’, ‘analytics’, ‘integration’).
is_asyncbooleanOptionalWhether the tool execution is asynchronous. When true, the tool returns an acknowledgment immediately and the actual result is delivered via callback. Asynchronous tools are suitable for long-running operations where the agent should not block waiting for completion.
source_pathstringOptionalLocal filesystem path to the tool source. For Python bindings, this is a directory containing schema.yaml, Python files, and optionally requirements.txt. For flow bindings, this is a path to a flow definition file (.json, .yaml, or .yml).
spec_pathstringOptionalPath to an OpenAPI specification file (YAML or JSON). Used with binding.openapi. The spec is parsed to auto-discover endpoints and generate tool definitions. Each endpoint becomes an individual tool with schemas extracted from the spec.
flow_pathstringOptionalPath to a flow definition file (.json, .yaml, or .yml). Used with binding.flow. Additive alias for source_path, both fields work for flow bindings: the flow handler reads source_path first, then falls back to flow_path. Both are resolved against the config dir by resolve_file_paths.
flow_llm_modelstringOptionalModel the flow runtime uses for the LLM-backed auto-data-mapping nodes (script/decisions). Accepts a ${model.<ref>} reference (resolved to the model name) or a literal model name; the flow handler injects it into the registered flow’s metadata.llm_model. Use this on deployments whose flow runtime has no usable default flow model, e.g. a CP4D AI-Gateway instance, where it routes flow inference through the same gateway model the agents use. Optional: when unset, the flow runtime falls back to the instance DEFAULT_FLOW_LLM_MODEL (sufficient on SaaS). Local-only: consumed at registration, never sent as its own API field.
artifactobjectOptionalLocal reference to the tool artifact ZIP file that will be uploaded to the API. This ZIP contains the Python code, schema, and dependencies. Automatically generated from source_path during tool creation. This is a local-only field for managing the upload.
Computed outputs: id. Depends on
  • binding.openapi.connection_idorchestrate_connection (optional)
  • binding.python.connectionsorchestrate_connection (optional)
Consumers
  • agent.tools (optional)

toolkit

An MCP (Model Context Protocol) toolkit backed by a local or remote MCP server. Runs on SaaS + Software · ID field id Endpoints
OperationMethodPath
CreatePOST/v1/orchestrate/toolkits
ReadGET/v1/orchestrate/toolkits/{id}
ListGET/v1/orchestrate/toolkits
DeleteDELETE/v1/orchestrate/toolkits/{id}
Fields
FieldTypeRequiredDescription
namestringRequiredDisplay name of the toolkit. Used for discovery matching and must be unique within the tenant.
descriptionstringRequiredHuman-readable description of the toolkit.
mcpobjectOptionalMCP server configuration. Defines how the runtime connects to or starts the MCP server.
server_pathstringOptionalPath to an MCP server source directory. Used with source: files. The directory is packaged as a ZIP and uploaded to the toolkits API.
artifactobjectOptionalInternal reference to the generated ZIP artifact.
tagsarray<string>OptionalLocal-only tags used internally by the artifact build pipeline. The toolkit API does not support tags, these are not persisted remotely or used in reconciliation.
Computed outputs: id. Depends on
  • mcp.connectionsorchestrate_connection (optional)
Consumers
  • agent.toolkits (optional)