Develop
Agent configuration
An agent's stored configuration is the source of truth for every turn: its instructions, default model, reasoning effort, timeout, tool presentation, memory policy, tool selectors, and skill assignments.
Create or update the agent when its standing behavior changes. Invocation requests carry the conversation input, not a second copy of the agent.
Configure the agent
Create an agent with the behavior that scheduled runs and interactive sessions should share:
{
"name": "Support",
"external_ref": "primary-support-agent",
"model": "claude-sonnet-5",
"system_prompt": "Answer support questions and cite ticket numbers.",
"thinking_effort": "medium",
"timeout_seconds": 120
}Use PATCH /v1/agents/{agent_id} to change these fields, including
tool_selectors; assign skills through the agent-assignment endpoints. The next turn reads the
updated agent configuration; existing sessions keep their transcript and
memory.
external_ref is an assign-once identity for reconciliation with your own
system. It does not supply behavior and remains stable when the display name
changes.
Select a model for one session
When creating a session, model_override can select a managed model for that
conversation without changing the agent's default:
{
"agent_id": "<agent-id>",
"session_key": "app:<account-id>:support",
"model_override": "gpt-5.6-sol"
}The override belongs to the session and applies to all of its turns. It is accepted only when the session is created; resolving an existing session does not silently change it. Start a new session to compare another model.
The override changes only the model. Instructions, reasoning effort, timeout, memory, skills, and tools still come from the stored agent and session policy. Model availability and billing-plan checks still apply. Worker-routed agents do not accept a managed-model override because their worker route chooses the model.
The workspace model picker uses this same session field. The model and
model_provider fields returned on a session are observed execution facts,
populated after turns run; they are not configuration inputs.
Invoke the configured agent
An invocation identifies the agent and session, then supplies only the input:
{
"agent_ref": { "id": "<agent-id>" },
"session": {
"mode": "continue_or_create",
"session_key": "app:<account-id>:support",
"model_override": "gpt-5.6-sol"
},
"input": {
"content": [{ "type": "text", "text": "Summarize my open tickets." }],
"idempotency_key": "<message-id>"
}
}Routine occurrences, messaging turns, and direct invocations all read the same configuration. There is no invocation-time definition or organization-level definition resolver to create a second authority.
Next
- Start turns with agent invocation.
- Provision durable identities with provisioning.
- Understand conversation state in agent sessions.