Formation Resource Types
This page is auto-generated from the formations OpenAPI spec. Do not edit manually — run
pnpm generate-formations-resource-docsto regenerate.
Each resource type that can be declared in a Formation template is listed below. Click a type to see its full properties reference.
Output
All resource types return the public ID of the created resource as their output.
You can reference this ID in other resource properties with a ref expression:
resources:
MyMemory:
type: memory
properties:
name: My Memory
MyEntry:
type: memory_entry
properties:
memory_id:
ref: MyMemory # resolves to the public ID of MyMemory
content: Hello, world
Types
| Type | Description |
|---|---|
ai_provider | Configures an LLM provider connection (API key, model, endpoint) that agents use to generate responses. |
tool | Defines a tool (HTTP endpoint, MCP server, SOAT action, or pipeline) that agents can invoke during a generation. |
agent | Creates an AI agent backed by a provider. The agent handles requests, runs tools, and can be attached to actors. |
actor | Creates a stateful conversation actor that wraps an agent or chat session and optionally links to a memory store. |
api_key | Creates an API key scoped to the formation's project and optionally restricted by a set of policies. The key is owned by the project owner. |
chat | Creates a chat connected to an AI provider within the formation's project. |
conversation | Creates a conversation within the formation's project. |
document | Stores a text document in a project, optionally indexing it for knowledge retrieval. |
file | Registers a file record within the formation's project. |
guardrail | Creates a guardrail — an action-class document (class/guard) that gates tool-call autonomy. Attach it to a tool or agent via that resource's guardrail_ids (a { "ref": … } to this resource in the same template resolves to its physical id at deploy time). Mirrors the guardrails REST contract; class/default_class/guard/escalate are flattened here from the REST API's single document object. |
ingestion_rule | Routes a file content_type to a converter (tool or agent) so ingestion can turn non-native files (images, audio, scanned PDFs) into Documents. See the Ingestion Rules module docs for the matching and converter-invocation model. |
memory | Creates a named memory store that actors can read from and write to across conversations. |
memory_entry | Adds a single text entry to a memory store. |
orchestration | Creates a DAG orchestration that wires agents, tools, and knowledge lookups into a repeatable pipeline within the formation's project. Node resource references (agent_id, tool_id, memory_id, orchestration_id) accept { "ref": "LogicalId" } expressions to point at other resources declared in the same template — the basis for deploying an agent "squad" (a team of agents plus the flow that coordinates them) as a single stack. |
policy | Creates an access-control policy within the formation's project. |
project_price | Upserts a project-scoped price row so a deployed stack produces billing-grade usage cost with no out-of-band pricing step. The row is keyed on (provider, model, component, effective_from) within the formation's project — the middle pricing tier that covers every one of the project's instances of a given provider slug. When effective_from is omitted the price takes effect at deploy time, so generations run right after deploy are priced. |
quota | Creates a quota — a project-scoped cap that blocks (enforce) or reports (monitor) when a windowed aggregate is exceeded. requests quotas are enforced by the request middleware; tokens/cost_usd quotas at the pre-generation check. Mirrors the quotas REST contract; scope, metric, and window are immutable after creation (only limit and mode update). |
secret | Creates an encrypted secret within the formation's project. |
session | Creates a session attached to an agent within the formation's project. |
webhook | Registers an HTTPS endpoint to receive SOAT platform event notifications. |
trigger | Binds a starter (manual, webhook, or schedule) to an executable target (orchestration, agent, or tool). Firings run under the project owner's confined run-as identity. |
workflow | Creates a workflow — a state-machine definition (named states, allowed transitions, guards, and per-state automation) that tasks live in. State and transition dispatch references (agent_id, orchestration_id inside an on_enter block) accept { "ref": "LogicalId" } expressions to point at agents or orchestrations declared in the same template, so a workflow plus the agents that service its states can deploy as one stack. Mirrors the workflows REST contract (states, transitions, payload_schema). |