A component is a functional unit that an agent runtime loads and executes from a volume. Agent Volumes defines seven component types, each with distinct semantics, entrypoint formats, and execution models. When you publish a volume, you declare which components it exports inDocumentation Index
Fetch the complete documentation index at: https://agentvolumes.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
volume.toml, and any compatible runtime can discover and load them.
Component type summary
| Type | Invoked by | Execution model | State | Primary format |
|---|---|---|---|---|
| Agent | Runtime | Autonomous, long-running | Stateful | Markdown/YAML |
| Skill | Runtime (contextual) | Loaded into context | N/A (knowledge) | Markdown (SKILL.md) |
| Command | User (explicit) | Trigger-based workflow | Per-invocation | Markdown |
| Tool | Agent (programmatic) | Function call | Stateless | JSON/YAML/Script |
| Hook | Runtime (event) | Event-driven | Stateless | Markdown/YAML/Script |
| MCP Server | Runtime (process) | Long-running service | Stateful (server) | JSON config |
| LSP Server | Runtime (process) | Long-running service | Stateful (server) | JSON config |
Component types
Agent
An autonomous runtime actor that receives a goal and independently decides how to accomplish it
using tools, skills, and other agents.
Skill
Reusable instructional knowledge loaded into agent context. The runtime interprets and applies
it — skills are not executed as code.
Command
A user-invokable action triggered by a slash command pattern such as
/review or /summarize.Tool
A function or API endpoint that an agent calls programmatically during task execution. Has typed
inputs and outputs.
Hook
A lifecycle event handler that fires automatically at defined points in the agent runtime —
session start, tool use, compaction, and more.
MCP Server
A Model Context Protocol service packaged as a distributable volume component. Runs as a
long-running process.
LSP Server
A Language Server Protocol service that provides code intelligence and editor integration when
loaded by a compatible runtime.
Export model
A volume exports components by declaring them involume.toml and placing their entrypoint files at the declared paths. Three rules govern every exported component:
- Every exported component must be listed in
volume.tomlunder[[components]]. - Every declared component must have a valid entrypoint file at the specified path.
- Component names must be unique within a volume across all component types.
[[components]] entry requires three fields:
| Field | Type | Description |
|---|---|---|
type | string | One of: agent, skill, command, tool, hook, mcp-server, lsp-server. |
name | string | Lowercase alphanumeric + hyphens. Unique within the volume. |
entrypoint | string | Relative path from the volume root to the component’s entry file. |
| Field | Type | Description |
|---|---|---|
description | string | One-line description. |
providers | array of strings | External services integrated by the component. |
Recommended directory layout
The spec recommends organizing your volume with a dedicated directory per component type. This layout is a convention, not a requirement — theentrypoint path in volume.toml is authoritative.
Entrypoint resolution
When a runtime or validator loads a component, it follows a three-level precedence chain:| Source | Precedence |
|---|---|
volume.toml [[components]] entry | Highest — authoritative for package-level metadata |
| Entrypoint frontmatter or descriptor | Second — authoritative for component-level content metadata |
| Inferred defaults | Lowest |
mcp-server, lsp-server), the file must exist, be valid JSON, and parse to an object. For command, the frontmatter must include a valid trigger. For hook, the descriptor must declare a canonical lifecycle event and a valid hook type.
Entrypoint paths must be relative to the volume root. Absolute paths, paths containing
..
segments, and paths that resolve outside the volume root are all validation failures.