Digitorn
A declarative framework for building AI agent applications. Define what your agents do, how they think, and what tools they use - entirely in YAML.
8-block YAML
One canonical schema. Every field has exactly one home. Pydantic validates with extra: forbid, typos don't ship.
23 modules preinstalled
Filesystem, shell, web, database, memory, RAG, MCP, channels, widgets, workspace. Drop them under tools.modules.
Multi-provider brains
OpenAI, Anthropic, DeepSeek, Groq, Ollama, vLLM, LM Studio, and 10+ more. Native or text-based tool calling, auto-detected.
Security in three layers
Capabilities (grant / deny / approve), behavior engine (14 built-in rules), OS-level sandbox (Landlock / seccomp).
Multi-agent built-in
Coordinator + specialists, parallel sub-agent orchestration, isolated contexts, eight Agent() modes via one tool.
Background, channels, flows
Cron, webhooks, file-watch, email, Slack, Telegram, RSS. 11 channel adapters, declarative orchestration graphs.
An app in twenty lines
Drop this YAML next to a daemon and chat with it. The same schema scales to multi-agent coordinators with channels, sub-agent fan-out, hooks, and credentials.
app:
app_id: hello
name: "Hello"
agents:
- id: assistant
role: assistant
brain:
provider: ollama
model: qwen25-7b-gpu:latest
backend: openai_compat
config:
base_url: http://localhost:11434/v1
api_key: ollama
system_prompt: |
You are a helpful assistant.
Reply concisely.
tools:
modules:
memory: {}
capabilities:
default_policy: autoDocumentation as a contract
Claims in this documentation are cross-checked against the source code, and YAML examples are deployed against a live daemon before they ship. If you spot a divergence between what's written here and the running system, the doc is the bug; open an issue.
v1 stability
The 8-block YAML is frozen. Required fields are not added, existing field types are not narrowed, and default values stay the same across minor and patch releases. New optional fields land additively.
Read the stability guarantees →