Skip to main content

What Is an Agent?

An agent is a named LLM configuration. It combines:
  • A model URI that specifies the provider and model to use.
  • A system prompt that shapes the model’s behaviour.
  • An optional guardrails list that overrides the workflow-level defaults.
Agents are declared once under the agents: key and reused by any number of nodes.

Defining an Agent

Model URI Format

The model field uses a provider:model URI:
See Providers for the full list of supported providers and their configuration.

System Prompts

The system prompt is passed to the model as a system role message (OpenAI/Ollama) or as the top-level system parameter (Anthropic). Write prompts that are specific and task-focused:

Per-Agent Guardrails

By default, every agent inherits the workflow-level guardrails: list (or ["injection"] if unset). You can override this per agent:
An empty list ([]) disables all guardrails for that agent. The agent-level list replaces the workflow-level list rather than merging with it. Configurable guardrails use the {name, config} form, exactly as at the workflow level:
See Guardrails for the available options and their config keys.

Multiple Agents in One Workflow

A workflow can define as many agents as needed. Each node binds to exactly one agent:

How Agents Receive Input

Each node’s agent receives:
  1. System message — the agent’s system prompt.
  2. User message — the first (root) node gets the raw user input; subsequent nodes receive the output of the most recently completed node.
The agent response is written to the context path specified by the node’s writes field.