AGENT.md File Format¶
Custom agents are defined using AGENT.md files — markdown documents with YAML frontmatter. This format enables declarative agent definition with rich instruction bodies.
File Structure¶
An AGENT.md file consists of two sections:
- YAML frontmatter — Agent metadata enclosed between
---delimiters - Markdown body — The agent's system instruction
---
name: code-reviewer
description: Reviews code for quality, security, and best practices
status: active
prefixes:
- review_*
- lint_*
keywords:
- review
- code quality
- security audit
capabilities:
- code-review
- security-analysis
accepts: "code snippets, file paths, repository URLs"
returns: "structured review with severity ratings"
cannot_do:
- execute code
- modify files
always_include: false
session_isolation: false
---
You are a code review specialist. Analyze code for quality, security vulnerabilities,
and adherence to best practices. Provide structured feedback with severity ratings.
## Review Format
For each issue found:
1. **Location** — File and line reference
2. **Severity** — Critical, Major, Minor, or Suggestion
3. **Description** — Clear explanation of the issue
4. **Fix** — Concrete code suggestion
Frontmatter Fields¶
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | - | Unique agent name (used for routing and identification) |
description | string | No | "" | Short description shown in agent listings |
status | string | No | active | Agent status: active, disabled, or draft |
prefixes | []string | No | [] | Tool name prefixes this agent handles (e.g., review_*) |
keywords | []string | No | [] | Keywords for orchestrator routing decisions |
capabilities | []string | No | [] | Capability tags for discovery and matching |
accepts | string | No | "" | Description of what input this agent accepts |
returns | string | No | "" | Description of what this agent returns |
cannot_do | []string | No | [] | Explicit list of things this agent cannot do |
always_include | bool | No | false | Always include in the agent tree even with no matching tools |
session_isolation | bool | No | false | Run in isolated child sessions |
Status Values¶
| Status | Behavior |
|---|---|
active | Agent is loaded and participates in routing |
disabled | Agent is registered but skipped during routing |
draft | Agent is not loaded (work-in-progress) |
Directory Structure¶
Agent definitions are loaded from the directory specified by agent.agentsDir in configuration. Each agent resides in its own subdirectory:
~/.lango/agents/
├── code-reviewer/
│ └── AGENT.md
├── translator/
│ └── AGENT.md
└── data-analyst/
└── AGENT.md
Loading Sources¶
Agent definitions are loaded from multiple sources with the following priority:
| Priority | Source | Description |
|---|---|---|
| 1 | Built-in | Hardcoded agents (operator, navigator, vault, librarian, etc.) |
| 2 | Embedded | Default agents bundled in the binary (defaults/ directory) |
| 3 | User | User-defined agents from agent.agentsDir |
| 4 | Remote | Agents loaded from P2P network |
Higher-priority sources take precedence. User-defined agents cannot override built-in agent names.
Rendering¶
Agent definitions can be rendered back to the AGENT.md format using RenderAgentMD(). The rendered output preserves the frontmatter/body structure:
---
name: my-agent
description: My custom agent
status: active
---
Agent instruction body here.
Integration with Multi-Agent Orchestration¶
When multi-agent mode is enabled (agent.multiAgent: true), custom agents are integrated into the orchestrator's routing table alongside built-in agents. The orchestrator uses:
- prefixes — to partition tools among agents
- keywords — to route user requests by topic affinity
- capabilities — to match agents against task requirements
- cannot_do — to verify agent suitability and handle rejections
See Multi-Agent Orchestration for routing details.
CLI Commands¶
lango agent list # List all agents (built-in + user-defined)
lango agent tools # Show tool-to-agent assignments
Configuration¶
| Setting | Default | Description |
|---|---|---|
agent.agentsDir | "" | Directory containing user-defined AGENT.md files |
agent.multiAgent | false | Enable multi-agent orchestration |