3.0.0
Agents
Compatibility Matrix
0.5.1
3.0.0
0.5.0
3.0.0
0.4.2
2.1.0
0.4.1
2.1.0
AgentManifest
The complete definition of an agent deployment — identity, version, environment, and agent-specific configuration.
name
string
yes
-
Human-readable display name for the agent. Free text; surfaced in the platform UI and logs.
id
string
yes
-
Stable agent identifier, unique within the project. Used in URLs and routing — should be a URL-safe slug. Immutable across deploys; renaming an agent means deploying a new manifest under a new id.
version
string
yes
-
Version label for this manifest revision. Free-form string (semver, build sha, calendar version — whatever the deployer tracks). Surfaced in logs and traces and changes whenever the manifest is re-applied with different content.
endpoint
boolean
no
False
Whether the agent is exposed under a public URL. Defaults to false — the agent is reachable only via the platform's internal API. Set to true to provision a public-facing endpoint.
env
list[EnvVar]
no
-
Plain environment variables injected into the agent process. Stored in cleartext in the manifest — use for non-sensitive configuration only; declare secrets for credentials.
name
string
yes
-
Environment variable name. Must match the standard POSIX identifier form (letter or underscore followed by letters, digits, or underscores) so the value is reachable by every shell and runtime that reads os.environ.
value
string
yes
-
Literal value bound to name. Stored in cleartext in the manifest — do NOT use this field for secrets; declare a SecretRef instead.
secrets
list[SecretRef]
no
-
References to platform secrets to expose as env vars on the agent process. Each entry resolves to its stored key/value pairs at boot; values are never inlined into the manifest.
secretName
string
yes
-
Identifier of the secret in the deployment's secret store (e.g. a Kubernetes Secret name). Serialized as secretName in YAML/JSON to match the platform's manifest syntax.
agent_config
AgentConfig
yes
-
EnvVar
Environment variable passed to the agent at runtime.
name
string
yes
-
Environment variable name. Must match the standard POSIX identifier form (letter or underscore followed by letters, digits, or underscores) so the value is reachable by every shell and runtime that reads os.environ.
value
string
yes
-
Literal value bound to name. Stored in cleartext in the manifest — do NOT use this field for secrets; declare a SecretRef instead.
SecretRef
Reference to a secret made available to the agent as environment variables.
secretName
string
yes
-
Identifier of the secret in the deployment's secret store (e.g. a Kubernetes Secret name). Serialized as secretName in YAML/JSON to match the platform's manifest syntax.
Validation Rules
Priority: exactly one of
overorover_all_routinesString fields with
minLength >= 1reject whitespace-only values
AgentConfig
Configuration specific to the Interactive Agent — defines the LLM, behavioral context, tools, and integrations.
llms
Llms
yes
-
context
AgentContext
yes
-
database
Database
no
-
Optional Postgres connection block for the agent's session/state store. When omitted the runtime falls back to its configured STORAGE_SPEC (typically transient for dev and a managed Postgres for production deployments).
traces_backend
TracesBackend
no
-
Optional OTel-compatible traces endpoint. When omitted the runtime emits OTLP traces to the endpoint derived from INTERACTIVEAI_HOST using platform credentials.
mcps
list[McpConfig]
no
-
MCP servers the agent connects to for tool calls. Each entry exposes its tools under the configured id namespace at runtime. Empty list means the agent runs with built-in tools only.
id
string
yes
-
Runtime tool-namespace id (NOT a platform reference)
hostname
string
yes
-
MCP server hostname. Must include the URL scheme (http:// or https://) and contain only the host — no path, query, fragment, port, or whitespace (port is carried by the separate port field).
port
integer
yes
-
TCP port the MCP server listens on. Standard range 1–65535; no default — every MCP entry must declare its port explicitly.
transport
string
yes
-
MCP transport protocol. Must be streamable-http — the current MCP spec transport. Legacy SSE transport is not supported by the runtime.
api_key
string
no
-
Optional env-var reference for the MCP API key, in ${VAR_NAME} form. The runtime resolves it and sends Authorization: Bearer <key>. Literal keys MUST NOT be inlined here. Omit when the MCP server does not require authentication.
knowledge_base
KnowledgeBase
no
-
Optional knowledge-base retrieval configuration. When set, the agent gains a retrieval tool wired to the configured endpoint and a framing prompt; omit to disable KB retrieval.
webhooks
list[WebhookEntry]
no
-
Manifest-level third-party webhook bindings. Each entry exposes a POST /webhooks/{name} endpoint that HMAC-verifies requests against an env-var secret and dispatches them to one or more autonomous routines.
name
string
yes
-
URL slug exposed under POST /webhooks/{name}.
secret_env
string
yes
-
Env-var reference for the HMAC shared secret, in ${VAR_NAME} form. The runtime re-reads the bare env var on every request so secret rotation picks up without a restart. Must be set in the runtime environment at boot. Literal secrets MUST NOT be inlined here.
header
string
yes
-
HTTP header the provider uses to carry the signature (e.g. X-Hub-Signature-256 for GitHub-style senders).
algorithm
string
no
sha256
HMAC digest algorithm the provider signs with. Enum: ['sha256', 'sha1', 'sha512']
prefix
string
no
-
Optional literal prefix the provider prepends to the hex digest in header (e.g. "sha256=" for GitHub).
routines
list[string]
yes
-
Autonomous routine ids this webhook can fan out to. Each id must reference a routine declared in context.routines with an autonomous: block; cross-reference validation runs at boot, not in this schema.
Llms
LLM selection for the agent: a primary model plus optional fallbacks.
default
string
yes
-
Primary routable model id, provider/specific-model form (e.g. openai/gpt-4o-mini).
fallback
list[string]
no
-
Models the runtime falls back to, in order, if default fails. Same routable id form as default.
api_key
string
yes
-
Env-var reference for the InteractiveAI LLM router API key, in ${VAR_NAME} form. Required whenever the llms block is present. Literal keys MUST NOT be inlined here.
evaluation
string
no
-
Primary model for the engine's retry-loop evaluation calls. When unset, the runtime applies its hardcoded default. Same provider/specific-model form as default.
evaluation_fallback
string
no
-
Model used when evaluation exhausts its retry loop. When unset, the runtime applies its hardcoded default. Pass the literal string "none" to disable the fallback layer entirely.
AgentContext
The behavioural context shared by all runs of the agent.
system_prompt
SystemPromptRef
yes
-
language
string
yes
-
Language directive for the agent. Free text in v1; the sentinel value match_user instructs the agent to mirror the user's language. Other strings are treated as explicit language names.
routines
list[PromptRef]
no
-
Routines the agent can run — each entry is a versioned prompt reference resolved against the project's routine catalog. Order is informational only; the engine matches routines by their declared conditions at runtime.
id
string
yes
-
Prompt id/slug in the project
version
integer | string
no
-
Exact version of the prompt to bind to (int or string)
reevaluation_tools
list[ReevaluationTool]
no
-
Tools whose successful execution forces the engine to re-evaluate routines and policies on the next turn instead of continuing along the current journey.
id
string
yes
-
Tool id whose successful execution triggers a routine/policy reevaluation. Must match a tool exposed by an mcps server or a built-in tool name; cross-reference validation runs at boot, not in this schema.
policies
list[PromptRef]
no
-
Behavioural policies layered on top of every routine — each entry is a versioned prompt reference resolved against the project's policy catalog. Policies are always-on guardrails (safety, compliance, tone) and do not consume turns.
id
string
yes
-
Prompt id/slug in the project
version
integer | string
no
-
Exact version of the prompt to bind to (int or string)
glossaries
list[PromptRef]
no
-
Glossary references injected into the agent's context — each entry is a versioned prompt reference resolved against the project's glossary catalog. Useful for domain vocabulary the model would not otherwise know.
id
string
yes
-
Prompt id/slug in the project
version
integer | string
no
-
Exact version of the prompt to bind to (int or string)
preamble
Preamble
no
-
Inline preamble configuration. When set, the agent emits a short preamble before invoking tools; omit to disable preambles.
relationships
Relationships
no
-
Cross-routine / cross-policy priority overrides. Omit when the default priority (declaration order) is fine.
SystemPromptRef
Reference to the prompt that supplies the agent's system prompt.
prompt_id
string
yes
-
Prompt id/slug in the project
version
integer | string
no
-
Exact version of the prompt to bind to (int or string)
PromptRef
A reference to a project prompt at a specific version.
id
string
yes
-
Prompt id/slug in the project
version
integer | string
no
-
Exact version of the prompt to bind to (int or string)
ReevaluationTool
Entry in reevaluation_tools — opaque tool id reference.
id
string
yes
-
Tool id whose successful execution triggers a routine/policy reevaluation. Must match a tool exposed by an mcps server or a built-in tool name; cross-reference validation runs at boot, not in this schema.
Preamble
Inline preamble configuration.
examples
list[string]
yes
-
Few-shot example preambles the model conditions on when deciding what to say before invoking a tool. Each entry is a natural-language sentence in the agent's voice (e.g. "Let me check that for you."). At least one example is required when the preamble block is present.
greeting
string
no
-
First-turn greeting. When set, the model is instructed to make its first preamble a greeting close in meaning to this string (adapted for language). Subsequent preambles are unaffected. Omit to let the model choose its own opening.
Relationships
priorities
list[Priority]
no
-
higher
string
yes
-
Routine/policy reference that takes priority (manifest-internal name)
over
list[string]
no
-
Routines/policies this entry takes priority over (manifest-internal names)
over_all_routines
boolean
no
-
When set, this entry takes priority over every routine in the manifest. Only true is accepted — omit the key to opt out (use over instead).
Priority
A single priority entry inside :class:Relationships.
higher
string
yes
-
Routine/policy reference that takes priority (manifest-internal name)
over
list[string]
no
-
Routines/policies this entry takes priority over (manifest-internal names)
over_all_routines
boolean
no
-
When set, this entry takes priority over every routine in the manifest. Only true is accepted — omit the key to opt out (use over instead).
Database
Postgres connection block for the agent's session/state store.
hostname
string
yes
-
Hostname of the Postgres server. Bare host only — no scheme, path, or port (port is carried by the separate port field).
port
integer
no
5432
TCP port the Postgres server listens on. Defaults to 5432 (Postgres standard). Override only when the server is exposed on a non-default port.
user
string
no
postgres
Postgres role the agent connects as. Defaults to postgres. Use a least-privilege role in production deployments.
password
string
yes
-
Env-var reference for the DB password, in ${VAR_NAME} form. Required whenever the database block is present. Literal passwords MUST NOT be inlined here.
dbname
string
no
postgres
Name of the Postgres database the agent connects to. Defaults to postgres (the cluster's bootstrap DB). Override to isolate the agent's state in a dedicated database.
sslmode
string
no
require
Postgres sslmode parameter applied to the connection. Defaults to require — encrypted but without certificate verification. Use verify-ca or verify-full in production when the server has a trusted certificate. disable/allow/prefer are accepted for parity with libpq but should be avoided over untrusted networks. Enum: ['disable', 'allow', 'prefer', 'require', 'verify-ca', 'verify-full']
TracesBackend
OTel-compatible traces endpoint. All fields are optional — runtime defaults apply.
url
string
no
-
Full OTLP HTTP traces endpoint URL (e.g. https://cloud.langfuse.com/api/public/otel). Must include the URL scheme. When unset, the runtime derives the endpoint from INTERACTIVEAI_HOST. Must be set together with api_key or not at all.
api_key
string
no
-
Env-var reference for the traces API key, in ${VAR_NAME} form. How the resolved value is sent is controlled by api_key_scheme. Must be set together with url or not at all.
api_key_scheme
string
no
bearer
HTTP auth scheme the runtime applies to the resolved api_key. bearer sends Authorization: Bearer <value> (default; matches the OTel-spec recommendation for OTLP HTTP). basic sends Authorization: Basic <base64(value)> (typical when the resolved value is a public_key:private_key pair). Ignored when api_key is unset. Enum: ['bearer', 'basic']
McpConfig
Connection info for an MCP server (the mcps list in the manifest).
id
string
yes
-
Runtime tool-namespace id (NOT a platform reference)
hostname
string
yes
-
MCP server hostname. Must include the URL scheme (http:// or https://) and contain only the host — no path, query, fragment, port, or whitespace (port is carried by the separate port field).
port
integer
yes
-
TCP port the MCP server listens on. Standard range 1–65535; no default — every MCP entry must declare its port explicitly.
transport
string
yes
-
MCP transport protocol. Must be streamable-http — the current MCP spec transport. Legacy SSE transport is not supported by the runtime.
api_key
string
no
-
Optional env-var reference for the MCP API key, in ${VAR_NAME} form. The runtime resolves it and sends Authorization: Bearer <key>. Literal keys MUST NOT be inlined here. Omit when the MCP server does not require authentication.
KnowledgeBase
Knowledge-base retrieval configuration.
prompt
PromptRef
yes
-
hostname
string
yes
-
Hostname of the knowledge-base server. Either a bare host (defaults to http://) or a http:///https:// prefixed value; the port is carried by the separate port field, and path/query/fragment must not be embedded.
port
integer
yes
-
TCP port the knowledge-base server listens on. Standard range 1–65535; no default — every KB block must declare its port explicitly.
path
string
yes
-
HTTP path on the knowledge-base host that the runtime issues retrieval requests against (e.g. /search). Must begin with a slash and exclude scheme, host, query, and fragment.
api_key
string
no
-
Optional env-var reference for the knowledge-base API key, in ${VAR_NAME} form. The runtime resolves it and sends Authorization: Bearer <key>. Literal keys MUST NOT be inlined here.
WebhookEntry
Manifest-level entry that groups one or more autonomous routines
name
string
yes
-
URL slug exposed under POST /webhooks/{name}.
secret_env
string
yes
-
Env-var reference for the HMAC shared secret, in ${VAR_NAME} form. The runtime re-reads the bare env var on every request so secret rotation picks up without a restart. Must be set in the runtime environment at boot. Literal secrets MUST NOT be inlined here.
header
string
yes
-
HTTP header the provider uses to carry the signature (e.g. X-Hub-Signature-256 for GitHub-style senders).
algorithm
string
no
sha256
HMAC digest algorithm the provider signs with. Enum: ['sha256', 'sha1', 'sha512']
prefix
string
no
-
Optional literal prefix the provider prepends to the hex digest in header (e.g. "sha256=" for GitHub).
routines
list[string]
yes
-
Autonomous routine ids this webhook can fan out to. Each id must reference a routine declared in context.routines with an autonomous: block; cross-reference validation runs at boot, not in this schema.
Validation Rules
Priority: exactly one of
overorover_all_routinesString fields with
minLength >= 1reject whitespace-only values
Context
RoutineSchema
A multi-step conversational workflow that guides the agent through a sequence of actions.
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.
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.
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
-
Validation Rules
Step IDs must be unique across steps (
uniqueItemProperties)tool_instructionrequirestoolsthinkrequiresoutput_schemaoutput_schemarequiresthinkthinkis mutually exclusive withtools,tool_instruction,macro,chat_state,fork,redirecttoolsis mutually exclusive withmacroandchat_stateRouting-only steps (
redirectorfork: true) cannot havetools,macro, orchat_stateEach step must define at least one of
tools,macro,chat_state,think,redirect, orforkconditionsis required unlessextendsis presenttimeout_secondsminimum is 1String fields with
minLength >= 1reject whitespace-only values
PolicySchema
A single-step behavioral rule — a condition-action pair that governs how the agent responds in specific situations.
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
-
Validation Rules
At least one of
actionortoolsis requiredString fields with
minLength >= 1reject whitespace-only values
GlossarySchema
A collection of domain-specific terms and definitions the agent uses to understand context.
id
string
no
-
terms
dict[string, GlossaryEntry]
yes
-
GlossaryEntry
A single glossary term.
name
string
yes
-
description
string
yes
-
synonyms
list[string]
no
-
Validation Rules
termsmust have at least one entryTerm keys must be non-empty and contain at least one non-whitespace character
String fields with
minLength >= 1reject whitespace-only values
MacroSchema
A reusable text block that can be injected into routine steps.
id
string
no
-
text
string
yes
-
VariableSchema
A set of named variables with optional defaults, used to parameterize agent behavior.
id
string
no
-
variables
dict[string, VariableEntry]
yes
-
VariableEntry
A single variable definition.
description
string
yes
-
default_value
any
no
-
Validation Rules
variablesmust have at least one entryVariable keys must be non-empty and contain at least one non-whitespace character
String fields with
minLength >= 1reject whitespace-only values
Last updated
Was this helpful?

