Concept
Why the .exons format exists and how it's structured.
The name
In molecular biology, exons are the regions of a gene a cell actually translates into proteins — the expressed, functional part. An .exons file is the counterpart for an agent: the expressible, executable specification of its behaviour.
A two-part file
Every .exons file has two parts:
- YAML frontmatter — the configuration: identity, execution parameters, tools, memory, safety, and more.
- Template body — the prompt, written with the
{~…~}template syntax.
greeter.exons
---
name: greeter
description: A friendly greeter agent
type: agent
execution:
provider: openai
model: gpt-4o
temperature: 0.7
---
{~exons.message role="system"~}
You are a friendly greeter.
{~/exons.message~}
{~exons.message role="user"~}
Say hello to {~exons.var name="user_name" default="World" /~}
{~/exons.message~}Document types
The type determines which fields are allowed. There are exactly three:
| Type | Description |
|---|---|
prompt | Simple template — variables, conditionals, loops. No skills/tools/constraints. |
skill | Reusable capability with inputs/outputs. May have memory, registry, verification. |
agent | Full agent with tools, skills, constraints, metadata. All fields available. |
Why {~…~}
Prompts often contain braces, double braces, or brackets themselves — JSON, XML, Go templates, Jinja-style syntax. The {~…~} delimiters were chosen deliberately so they never collide with prompt content. A prompt can carry JSON examples or code verbatim without confusing the template engine.
Note
Need a literal
{~ in the output? Write \{~ — the escape sequence produces the literal characters.Next
- Format Reference — every field and tag in detail.
- Examples — complete, runnable files.