---
sidebar:
  label: roboto.ai.agent
  order: 0
title: roboto.ai.agent
---
Reusable, parameterized agent definitions.

An agent captures a parameterized [`StartAgentThreadRequest`](/docs/reference/python-sdk/roboto/ai/agent_thread#roboto.ai.agent_thread.StartAgentThreadRequest) alongside the variables it declares, so the same workflow (triage, summary, etc.) can be re-invoked against new subjects without re-authoring the request. Variables appear as `{{name}}` placeholders in any string leaf of the request body and are substituted client-side before the request is sent — unresolved or unknown placeholders raise rather than reach the service.

## Submodules

- [roboto.ai.agent.agent](/docs/reference/python-sdk/roboto/ai/agent/agent)
- [roboto.ai.agent.record](/docs/reference/python-sdk/roboto/ai/agent/record)
- [roboto.ai.agent.resolver](/docs/reference/python-sdk/roboto/ai/agent/resolver)

## Package Contents

- [Agent](/reference/python-sdk/roboto/ai/agent/agent#roboto.ai.agent.agent.Agent) (class): A reusable, parameterized factory for [`AgentThread`](/reference/python-sdk/roboto/ai/agent_thread/agent_thread#roboto.ai.agent_thread.agent_thread.AgentThread).

- [AgentRecord](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.AgentRecord) (class): A pre-filled [`StartAgentThreadRequest`](/reference/python-sdk/roboto/ai/agent_thread/record#roboto.ai.agent_thread.record.StartAgentThreadRequest) plus declared variables.

- [AgentResolutionError](/reference/python-sdk/roboto/ai/agent/resolver#roboto.ai.agent.resolver.AgentResolutionError) (exception): Base class for resolver-raised errors. Routes map subclasses to 4xx.

- [CreateAgentRequest](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.CreateAgentRequest) (class): Wire payload for `POST /v1/ai/agents`.

- [LaunchAgentRequest](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.LaunchAgentRequest) (class): Wire payload for `POST /v1/ai/agents/<agent_id>/launch`.

- [TemplateVariable](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.TemplateVariable) (class): A named slot in an [`AgentRecord`](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.AgentRecord) that must be filled before the agent can be invoked.

- [TemplateVariableType](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.TemplateVariableType) (class): How a variable's value is interpreted when an agent is launched.

- [UnknownAgentVariablesError](/reference/python-sdk/roboto/ai/agent/resolver#roboto.ai.agent.resolver.UnknownAgentVariablesError) (exception): Caller supplied values for variables the agent no longer declares — almost always a stale invoke form. Mapped to 400 so the UI can refetch.

- [UnresolvedAgentVariablesError](/reference/python-sdk/roboto/ai/agent/resolver#roboto.ai.agent.resolver.UnresolvedAgentVariablesError) (exception): Required variables had no supplied value and no default. Mapped to 400 with the names so the invoke page can highlight the empty inputs.

- [UpdateAgentRequest](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.UpdateAgentRequest) (class): Wire payload for `PUT /v1/ai/agents/<agent_id>`.

- [extract_placeholders()](/reference/python-sdk/roboto/ai/agent/record#roboto.ai.agent.record.extract_placeholders) (function): Return every `{{name}}` placeholder referenced anywhere in `body`.

- [resolve_agent()](/reference/python-sdk/roboto/ai/agent/resolver#roboto.ai.agent.resolver.resolve_agent) (function): Substitute `values` into `agent.request_template` and return a fully-validated [`StartAgentThreadRequest`](/reference/python-sdk/roboto/ai/agent_thread/record#roboto.ai.agent_thread.record.StartAgentThreadRequest).
