Manifest

The manifest is the declarative configuration that defines your agent's identity, model, knowledge sources, tools, channels, and constraints. Every setting you configure through the UI is reflected in the manifest, and vice versa.

Overview

You can view and copy your agent's manifest from the Manifest tab. The manifest is a YAML document that represents the complete shape of your agent in a single, portable format.

Manifest tab showing the full agent configuration in YAML

The manifest is useful for:

  • Version control — Track agent configuration changes over time
  • Reproducibility — Recreate an agent from its manifest (coming soon)
  • Auditing — Review the full agent setup in one place
  • Automation — Create or update agents programmatically

Schema Reference

The current schema version is 2.0.0. All top-level sections are optional — omitted sections mean "not configured".

identity

The agent's name, description, system prompt, avatar, and LLM configuration.

Field Type Description
name string Agent display name
description string Short description
prompt string System prompt / personality instructions
avatar string Avatar image URL
model.provider string LLM provider — openai, anthropic, gemini
model.credentials string Credential reference (e.g. anthropic:production)
model.model string Model ID (e.g. claude-opus-4-6, gpt-5.2)
model.temperature float Sampling temperature
model.max_tokens int Max response tokens
model.top_p float Nucleus sampling

knowledge

Training data and information sources the agent can reference when answering questions.

Field Type Description
indexing string Pipeline name used for source indexing
retrieval.top_k int Number of results to retrieve
retrieval.min_score float Minimum similarity score
documents[] array Uploaded files — each has title, file, and optional url
websites object Web crawling config — provider, credentials, schedule, and a list of sites with url, depth, max_pages, included/excluded patterns
datasets[] array CSV/JSON/Excel files — each has title, file, template (for embedding), and key column
faqs[] array Question/answer pairs
transcripts[] array YouTube/RSS/Podcast URLs with title and url

tools

Capabilities the agent can use during conversations.

Field Type Description
custom[] array Custom tools — each has type, name, description, provider, credentials, and config
mcp[] array MCP server connections — credentials and prompt (usage instructions)
scheduler object Scheduled tasks — enabled, timezone, min_interval, max_per_contact. Schedules run in the timezone set here — e.g. if timezone is Australia/Brisbane (GMT+10) and you schedule a prompt for 11am, it fires at 1am GMT.
stash object Handles large MCP reply payloads. When a response exceeds threshold (default 2048 chars), it's stashed in a side channel instead of dumped into context. The LLM can then use stash_peek, stash_search, stash_analyse, and jq to work with the data. Config: enabled, threshold, timeout (TTL), scope

channels

Deployment endpoints where users interact with the agent. See Channels for detailed configuration.

Field Type Description
widget object Web widget — display settings, style (theme, colors, position), initial/suggested messages, allowed domains
slack object Slack integration — credentials, channel, queue mode
email object Email inbox — credentials, poll interval, auto-create contacts
contacts object Contact tracking — memory (cross-session), lead capture with configurable fields

constraints

Guardrails and limits for the agent.

Field Type Description
max_tokens_per_response int Hard cap on response tokens
topics string[] Allowed topic areas
monthly_budget float Monthly spend limit (USD)
per_message_budget float Per-message spend limit (USD)
max_tool_calls_per_message int Tool calls allowed per single message
max_tool_rounds int Tool call loop iterations (default 10)

pipelines

A pipeline is a lightweight workflow — a series of tool calls stitched together where the output of one step acts as input to the next. Pipelines are not yet configurable through the UI.

Field Type Description
name string Pipeline identifier (referenced by knowledge.indexing)
description string What this pipeline does
steps[] array Ordered steps — each has step name (e.g. "chunk", "embed"), provider, credentials, and config

Example

A minimal manifest for a support agent with a product dataset:

yaml
schema_version: 2.0.0identity:  name: SnowBot  description: Snowboarding Supply bot. Product catalog, FAQs and tech specs.  prompt: |    You are a technical support agent. Help users resolve issues efficiently.     When responding:    - Ask ONE clarifying question if the problem is unclear    - Provide numbered steps for solutions    - Use plain language, avoid jargon unless the user is technical    - If you can't solve it, clearly state what information you need     Stay patient and solution-focused. Never blame the user.  model:    provider: anthropic    credentials: anthropic:production    model: claude-opus-4-6    temperature: 0.2 knowledge:  indexing: index-sources  datasets:    - title: Snowboarding Supplies      file: agents/277878251123712/datasets/277878476329984/snowboarding-supplies.csv      template: |        # {{Product_ID}}         **Title**: {{Title}}        **Description**: {{Description}}        **SKU**: {{SKU}}        **Price**: {{Price}}        **Inventory**: {{Inventory}}        **Vendor**: {{Vendor}} channels:  widget:    display_name: SnowBot    initial_messages:      - "Hey 👋 How can we help?"    suggested_messages:      - Burton Boards      - Jackets    style:      theme: auto      primary_color: "#F5055A"      bubble_color: "#7B55F6"      position: bottom-right    intake:      allowed_domains:        - localhost pipelines:  - name: index-sources    description: Default indexing pipeline    steps:      - step: chunk        provider: unstructured        config:          strategy: fast      - step: embed        provider: openai        credentials: openai:default        config:          model: text-embedding-3-small

Notes

  • All top-level sections are optional. Omitted sections mean "not configured".
  • credentials fields use the format provider:tag (e.g. openai:default, slack:production).
  • The knowledge section uses replace-not-merge on PATCH — sending knowledge replaces the entire section.
  • Manifest v1 (integer schema_version or absent) is auto-migrated to v2 on load.
  • The manifest contains some sections not yet exposed through the UI, including pipelines and stash.
  • All tool invocations are saved against the message that triggered them. You can inspect which tools the LLM is choosing in the Playground by enabling Show Tools.
  • No credentials are ever exposed in the manifest. Credentials are stored encrypted at the workspace level and made available to agents when services are configured. The manifest only references credentials by tag (e.g. openai:default), which opens possible futures for agent portability between different environments and workspaces — providing the credential tags match.

Tip

Use the Copy button on the Manifest tab to grab your agent's full configuration. You can then use it as a starting point for new agents via the API.