# 2.1.0

***

## Agents

### Compatibility Matrix

| Agent Version | Schema Version |
| ------------- | -------------- |
| `0.4.1`       | `2.1.0`        |

### AgentManifest

The complete definition of an agent deployment — identity, version, environment, and agent-specific configuration.

| Field          | Type              | Required | Default | Description                                                   |
| -------------- | ----------------- | -------- | ------- | ------------------------------------------------------------- |
| `name`         | `string`          | yes      | -       | Display name for this agent.                                  |
| `id`           | `string`          | yes      | -       | Agent identifier.                                             |
| `version`      | `string`          | yes      | -       | Agent version to deploy.                                      |
| `endpoint`     | `boolean`         | no       | `False` | Whether to expose the agent via a public URL.                 |
| `env`          | `list[EnvVar]`    | no       | -       | Environment variables available to the agent.                 |
| `name`         | `string`          | yes      | -       |                                                               |
| `value`        | `string`          | yes      | -       |                                                               |
| `secrets`      | `list[SecretRef]` | no       | -       | Secrets made available to the agent as environment variables. |
| `secretName`   | `string`          | yes      | -       |                                                               |
| `agent_config` | `AgentConfig`     | yes      | -       |                                                               |

#### EnvVar

Environment variable passed to the agent at runtime.

| Field   | Type     | Required | Default | Description |
| ------- | -------- | -------- | ------- | ----------- |
| `name`  | `string` | yes      | -       |             |
| `value` | `string` | yes      | -       |             |

#### SecretRef

Reference to a secret made available to the agent as environment variables.

| Field        | Type     | Required | Default | Description |
| ------------ | -------- | -------- | ------- | ----------- |
| `secretName` | `string` | yes      | -       |             |

### AgentConfig

Configuration specific to the Interactive Agent — defines the LLM, behavioral context, tools, and integrations.

| Field                 | Type                 | Required | Default | Description                                                                                                             |
| --------------------- | -------------------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| `llm_model`           | `string`             | no       | -       | Model identifier in `provider/model` form (e.g. 'openai/gpt-4o-mini'). Determines which LLM the agent uses.             |
| `context`             | `AgentContext`       | yes      | -       |                                                                                                                         |
| `session_stores`      | `list[McpConfig]`    | no       | -       |                                                                                                                         |
| `id`                  | `string`             | yes      | -       | Unique identifier for this MCP connection.                                                                              |
| `hostname`            | `string`             | yes      | -       | MCP server hostname including URL scheme (e.g. '<https://my-server>'). Must not include path, query, fragment, or port. |
| `port`                | `integer`            | yes      | -       |                                                                                                                         |
| `transport`           | `string`             | yes      | -       | Enum: \['sse', 'streamable-http']                                                                                       |
| `mcps`                | `list[McpConfig]`    | no       | -       |                                                                                                                         |
| `id`                  | `string`             | yes      | -       | Unique identifier for this MCP connection.                                                                              |
| `hostname`            | `string`             | yes      | -       | MCP server hostname including URL scheme (e.g. '<https://my-server>'). Must not include path, query, fragment, or port. |
| `port`                | `integer`            | yes      | -       |                                                                                                                         |
| `transport`           | `string`             | yes      | -       | Enum: \['sse', 'streamable-http']                                                                                       |
| `knowledge_base`      | `KnowledgeBase`      | no       | -       |                                                                                                                         |
| `integration_webhook` | `IntegrationWebhook` | no       | -       |                                                                                                                         |

#### AgentContext

The behavioral configuration that defines how the agent operates — its language, routines, policies, and glossaries.

| Field                       | Type                       | Required | Default | Description                                                                                                                                               |
| --------------------------- | -------------------------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `description`               | `DescriptionRef`           | yes      | -       |                                                                                                                                                           |
| `language`                  | `string`                   | yes      | -       | Language the agent communicates in. Use `match_user` to automatically mirror the user's language, or specify a language name (e.g. 'English', 'Spanish'). |
| `routines`                  | `list[PromptRef]`          | no       | -       |                                                                                                                                                           |
| `id`                        | `string`                   | yes      | -       | Prompt identifier or slug.                                                                                                                                |
| `version`                   | `integer \| string`        | no       | -       | Version to bind to (integer or string).                                                                                                                   |
| `reevaluate_routines_after` | `list[ReevaluationTarget]` | no       | -       |                                                                                                                                                           |
| `id`                        | `string`                   | yes      | -       |                                                                                                                                                           |
| `policies`                  | `list[PromptRef]`          | no       | -       |                                                                                                                                                           |
| `id`                        | `string`                   | yes      | -       | Prompt identifier or slug.                                                                                                                                |
| `version`                   | `integer \| string`        | no       | -       | Version to bind to (integer or string).                                                                                                                   |
| `glossaries`                | `list[PromptRef]`          | no       | -       |                                                                                                                                                           |
| `id`                        | `string`                   | yes      | -       | Prompt identifier or slug.                                                                                                                                |
| `version`                   | `integer \| string`        | no       | -       | Version to bind to (integer or string).                                                                                                                   |
| `preamble`                  | `Preamble`                 | no       | -       |                                                                                                                                                           |
| `relationships`             | `Relationships`            | no       | -       |                                                                                                                                                           |

**DescriptionRef**

Reference to the prompt that serves as the agent's description.

| Field       | Type                | Required | Default | Description                             |
| ----------- | ------------------- | -------- | ------- | --------------------------------------- |
| `prompt_id` | `string`            | yes      | -       | Prompt identifier or slug.              |
| `version`   | `integer \| string` | no       | -       | Version to bind to (integer or string). |

**PromptRef**

A reference to a prompt at a specific version.

| Field     | Type                | Required | Default | Description                             |
| --------- | ------------------- | -------- | ------- | --------------------------------------- |
| `id`      | `string`            | yes      | -       | Prompt identifier or slug.              |
| `version` | `integer \| string` | no       | -       | Version to bind to (integer or string). |

**ReevaluationTarget**

A routine that triggers reevaluation of active routines after it completes.

| Field | Type     | Required | Default | Description |
| ----- | -------- | -------- | ------- | ----------- |
| `id`  | `string` | yes      | -       |             |

**Preamble**

Opening message configuration shown when a conversation starts.

| Field                  | Type           | Required | Default | Description |
| ---------------------- | -------------- | -------- | ------- | ----------- |
| `examples`             | `list[string]` | yes      | -       |             |
| `greeting`             | `string`       | yes      | -       |             |
| `language_instruction` | `string`       | yes      | -       |             |

**Relationships**

| Field               | Type             | Required | Default | Description                                                                                                                     |
| ------------------- | ---------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `priorities`        | `list[Priority]` | no       | -       |                                                                                                                                 |
| `higher`            | `string`         | yes      | -       | Routine or policy that takes priority.                                                                                          |
| `over`              | `list[string]`   | no       | -       | Routines or policies this entry takes priority over.                                                                            |
| `over_all_routines` | `boolean`        | no       | -       | When set, this entry takes priority over every routine. Only `true` is accepted — omit the key to opt out (use `over` instead). |

**Priority**

A rule that determines which routine or policy takes precedence.

| Field               | Type           | Required | Default | Description                                                                                                                     |
| ------------------- | -------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `higher`            | `string`       | yes      | -       | Routine or policy that takes priority.                                                                                          |
| `over`              | `list[string]` | no       | -       | Routines or policies this entry takes priority over.                                                                            |
| `over_all_routines` | `boolean`      | no       | -       | When set, this entry takes priority over every routine. Only `true` is accepted — omit the key to opt out (use `over` instead). |

#### McpConfig

Connection details for an MCP (Model Context Protocol) server.

| Field       | Type      | Required | Default | Description                                                                                                             |
| ----------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| `id`        | `string`  | yes      | -       | Unique identifier for this MCP connection.                                                                              |
| `hostname`  | `string`  | yes      | -       | MCP server hostname including URL scheme (e.g. '<https://my-server>'). Must not include path, query, fragment, or port. |
| `port`      | `integer` | yes      | -       |                                                                                                                         |
| `transport` | `string`  | yes      | -       | Enum: \['sse', 'streamable-http']                                                                                       |

#### KnowledgeBase

Configuration for connecting the agent to a knowledge base.

| Field      | Type        | Required | Default | Description |
| ---------- | ----------- | -------- | ------- | ----------- |
| `prompt`   | `PromptRef` | yes      | -       |             |
| `hostname` | `string`    | yes      | -       |             |
| `port`     | `integer`   | yes      | -       |             |
| `path`     | `string`    | yes      | -       |             |

#### IntegrationWebhook

Webhook endpoint the agent sends events to for external integrations.

| Field      | Type      | Required | Default | Description                                        |
| ---------- | --------- | -------- | ------- | -------------------------------------------------- |
| `hostname` | `string`  | yes      | -       |                                                    |
| `port`     | `integer` | yes      | -       |                                                    |
| `path`     | `string`  | yes      | -       | URL path for the webhook (e.g. '/hooks/delivery'). |

***

## Context

### RoutineSchema

A multi-step conversational workflow that guides the agent through a sequence of actions.

| Field              | Type                     | Required | Default | Description |
| ------------------ | ------------------------ | -------- | ------- | ----------- |
| `id`               | `string`                 | no       | -       |             |
| `title`            | `string`                 | yes      | -       |             |
| `conditions`       | `string \| list[string]` | no       | -       |             |
| `description`      | `string`                 | no       | -       |             |
| `extends`          | `string`                 | no       | -       |             |
| `autonomous`       | `AutonomousConfig`       | no       | -       |             |
| `steps`            | `list[RoutineStep]`      | yes      | -       |             |
| `id`               | `string`                 | no       | -       |             |
| `description`      | `string`                 | no       | -       |             |
| `condition`        | `string`                 | no       | -       |             |
| `source`           | `string`                 | no       | -       |             |
| `fork`             | `boolean`                | no       | -       |             |
| `redirect`         | `string`                 | no       | -       |             |
| `tools`            | `list[string]`           | no       | -       |             |
| `tool_instruction` | `string`                 | no       | -       |             |
| `chat_state`       | `string`                 | no       | -       |             |
| `macro`            | `string`                 | no       | -       |             |
| `think`            | `string`                 | no       | -       |             |
| `output_schema`    | `dict`                   | no       | -       |             |

#### AutonomousConfig

Configuration for autonomous routines that can be triggered via an API endpoint.

| Field                    | Type           | Required | Default | Description |
| ------------------------ | -------------- | -------- | ------- | ----------- |
| `input_schema`           | `dict`         | yes      | -       |             |
| `output_schema`          | `dict`         | yes      | -       |             |
| `timeout_seconds`        | `integer`      | no       | `120`   |             |
| `callback_url_allowlist` | `list[string]` | no       | -       |             |

#### RoutineStep

A single step within a routine workflow.

| Field              | Type           | Required | Default | Description |
| ------------------ | -------------- | -------- | ------- | ----------- |
| `id`               | `string`       | no       | -       |             |
| `description`      | `string`       | no       | -       |             |
| `condition`        | `string`       | no       | -       |             |
| `source`           | `string`       | no       | -       |             |
| `fork`             | `boolean`      | no       | -       |             |
| `redirect`         | `string`       | no       | -       |             |
| `tools`            | `list[string]` | no       | -       |             |
| `tool_instruction` | `string`       | no       | -       |             |
| `chat_state`       | `string`       | no       | -       |             |
| `macro`            | `string`       | no       | -       |             |
| `think`            | `string`       | no       | -       |             |
| `output_schema`    | `dict`         | no       | -       |             |

### PolicySchema

A single-step behavioral rule — a condition-action pair that governs how the agent responds in specific situations.

| Field          | Type           | Required | Default  | Description                      |
| -------------- | -------------- | -------- | -------- | -------------------------------- |
| `id`           | `string`       | no       | -        |                                  |
| `name`         | `string`       | yes      | -        |                                  |
| `condition`    | `string`       | yes      | -        |                                  |
| `action`       | `string`       | no       | -        |                                  |
| `criticality`  | `string`       | no       | `MEDIUM` | Enum: \['HIGH', 'MEDIUM', 'LOW'] |
| `description`  | `string`       | no       | -        |                                  |
| `tools`        | `list[string]` | no       | -        |                                  |
| `always_match` | `boolean`      | no       | -        |                                  |
| `kind`         | `string`       | no       | -        |                                  |

### GlossarySchema

A collection of domain-specific terms and definitions the agent uses to understand context.

| Field   | Type                          | Required | Default | Description |
| ------- | ----------------------------- | -------- | ------- | ----------- |
| `id`    | `string`                      | no       | -       |             |
| `terms` | `dict[string, GlossaryEntry]` | yes      | -       |             |

#### GlossaryEntry

A single glossary term.

| Field         | Type           | Required | Default | Description |
| ------------- | -------------- | -------- | ------- | ----------- |
| `name`        | `string`       | yes      | -       |             |
| `description` | `string`       | yes      | -       |             |
| `synonyms`    | `list[string]` | no       | -       |             |

### MacroSchema

A reusable text block that can be injected into routine steps.

| Field  | Type     | Required | Default | Description |
| ------ | -------- | -------- | ------- | ----------- |
| `id`   | `string` | no       | -       |             |
| `text` | `string` | yes      | -       |             |

### VariableSchema

A set of named variables with optional defaults, used to parameterize agent behavior.

| Field       | Type                          | Required | Default | Description |
| ----------- | ----------------------------- | -------- | ------- | ----------- |
| `id`        | `string`                      | no       | -       |             |
| `variables` | `dict[string, VariableEntry]` | yes      | -       |             |

#### VariableEntry

A single variable definition.

| Field           | Type     | Required | Default | Description |
| --------------- | -------- | -------- | ------- | ----------- |
| `description`   | `string` | yes      | -       |             |
| `default_value` | `any`    | no       | -       |             |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.interactive.ai/schemas/2.1.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
