Configuring native agents
Each native agent includes these components:Specifies the large language model (LLM) that powers the agent’s ability to understand and respond to queries. For more information, see Managing custom LLMs with the AI gateway.
Defines the prompting structure the agent uses. This structure determines how the LLM interprets and responds to instructions. For more information, see Choosing the agent style.
Defines whether the agent’s reasoning appears to the end user. When set to
True, the agent hides its reasoning from the user. When set to False, the agent displays its reasoning. The default value is False.Provides natural language guidance to the LLM. These instructions shape the agent’s behavior, such as adopting a specific persona like a customer service representative and explaining how to use tools and collaborators. For more information, see Writing instructions for agents.
Extends the LLM’s capabilities by enabling access to external functions and services. Examples include:
- OpenAPI definitions for external APIs
- Python functions for scripting more complex interactions with external systems
- Agentic workflows for orchestrating operations across tools and agents
- Toolkit-exposed tools such as an MCP server
Lists other agents this agent interacts with to solve complex problems. Collaborators can include native watsonx Orchestrate agents, external agents, or watsonx Assistants. For more information, see Connect to external agents.
Provides a human-readable summary of the agent’s purpose, visible in the Manage Agents UI. It also helps other agents understand its role when used as a collaborator. The description does not affect responses unless invoked as a collaborator. For more information, see Writing descriptions for agents.
Represents domain-specific knowledge that is acquired by the LLM from uploaded files or connected vector data stores. Agent Knowledge allows you to provide information that the agent should inherently know and use to answer questions. This knowledge can come from documents you upload or from various data sources integrated with watsonx Orchestrate, such as Milvus, Elasticsearch, AstraDB, and others.
To learn more about setting up a knowledge base see the section on Knowledge bases.
Specifies whether the Agent remains editable after import. This field accepts one of the following options:
editableSets the Agent as editable. This is the default value.non_editableSets the Agent as non-editable and prevents it from being exported.
An SVG-format string of an icon for the agent. The icon is used in the UI and in channels where the agent is connected to. It must follow these restrictions:
- SVG format
- Square shape
- Width and height between 64 and 100
- Maximum file size: 200 KB
Additional features of native agents
Customize your agent with extra features to match your needs.Guidelines
Use guidelines to control agent behavior. Guidelines create predictable, rule-based responses. Apply them when you need consistent actions.-
Define guidelines using the following format:
When
conditionthenperform an actionand/orinvoke a tool. - Include only guidelines relevant to the current user request in the agent prompt. This reduces complexity for the LLM.
- Configure the guidelines in priority order. Guidelines execute it, based on their position in the list.
A list of guidelines the agent should follow. Each guideline uses the format:
- When
conditionthenperform an actionand/orinvoke a tool. Provide at least one of action or tool.
Web chat configuration
Adjust web chat settings to control how your agent behaves in the web chat UI. Set up a welcome message and starter prompts to guide users from the start.Welcome message

welcome_content schema in your agent file:
Configures the welcome content.
Starter prompts

starter_prompts section of your agent file.
First, define whether these prompts are the default set. Then, for each prompt, specify these details:
Configures starter prompts shown to the user.
Chat with documents
Enable Chat with Documents to let users upload a document during a conversation and ask questions about its content. The document is available only for the session and is not stored in watsonx Orchestrate.Configures the Chat with Documents feature.
Providing access to context variables
Use context variables to inject user-specific identifiers—such as username, user ID, or tenant ID—from upstream systems into your agent. This creates personalized, context-aware interactions during execution. Your agent includes these variables by default:wxo_email_id- The email address of the user who invoked the agent or toolwxo_user_name- The username of the user who invoked the agent or toolwxo_tenant_id- The unique tenant ID for the request
Specifies if the agent can access context variables set by the Runs API.
Lists the context variables the agent can access.
Note:For scheduled workflows, the email address and username belong to the user who scheduled the workflow.
context_variables when you use these endpoints:
By default, agents invoked during a run cannot access context variables. To enable access, set context_access_enabled to true.
After enabling access, specify the context_variables your agent uses. These variables define which contextual details—such as user identifiers or session data—are available during execution.
You can reference these variables in descriptions, guidelines, or instructions by using curly braces like {my_context_variable}. You can also pass them as arguments to a Python function. When you pass them to a function, the agent runtime fills the values automatically without asking the user.

