Skip to content
Get started
Guides

Agents

Define agent behavior with variations, prompts, and tool assignment.

Agents are workspace-scoped resources that define how an AI executes work. Each agent contains one or more variations — distinct configurations that specify a system prompt, model, and available tools.

Agents have three statuses:

  • Draft — The agent is being configured. It cannot be used in objectives.
  • Published — The agent is available for use in objectives.
  • Archived — The agent is retired. Existing objectives continue to work, but new objectives cannot use it.
// Create a draft agent
const agent = await client.agents.create({
name: "Research Agent",
description: "Researches topics using web tools",
status: "draft",
});
// Publish when ready
await client.agents.update(agent.metadata.id, {
status: "published",
});

Variations are the core of agent configuration. Each variation defines a complete set of instructions and capabilities for the agent.

A variation includes:

  • System prompt — Instructions that define the agent’s behavior, personality, and constraints. Up to 1MB.
  • Model — Which LLM to use and its temperature setting.
  • Tool assignment — Which tools, tool sets, or sub-agents are available.
  • Constraints — Limits on tool calls and sub-objectives.

When you create an agent, you can include an initial variation using default_variation:

const agent = await client.agents.create({
name: "Research Agent",
description: "Researches topics using web tools",
status: "published",
default_variation: {
name: "v1",
prompt:
"You are a research assistant. Find accurate, up-to-date information using the tools available to you. Cite your sources.",
model_config: {
model_id: "claude/opus-4.6",
temperature: 0.3,
},
agent_tools: [
{
tool_set: {
tool_set_id: "toolset_01ABC...",
},
},
],
},
});

You can also add variations to an existing agent:

const variation = await client.agents.variations.create(agent.metadata.id, {
name: "v2",
description: "More creative research style",
prompt:
"You are a creative research assistant. Explore unconventional angles and connections.",
model_config: {
model_id: "claude/opus-4.6",
temperature: 0.8,
},
agent_tools: [
{
tool_set: {
tool_set_id: "toolset_01ABC...",
},
},
],
});

Three types of tools can be assigned to a variation:

Assign an entire tool set. All tools in the set become available to the agent.

agent_tools: [
{
tool_set: {
tool_set_id: "toolset_01ABC...",
},
},
];

Assign specific tools from a tool set, rather than the entire set.

agent_tools: [
{
tool: {
tool_id: "tool_01XYZ...",
},
},
];

Assign other agents as sub-agents. The variation can spawn objectives against them during execution.

agent_tools: [
{
agent: {
agent_id: "agent_01DEF...",
},
},
];

Each variation specifies which model to use:

  • Model ID — In family/model format, e.g., claude/opus-4.6.
  • Temperature — Controls randomness, from 0.0 (deterministic) to 1.0 (creative). Defaults vary by model.
model_config: {
model_id: "claude/opus-4.6",
temperature: 0.5,
}