Agent Packs
An agent pack is a zip file containing everything that defines an agent’s personality, knowledge, and behavior. Upload it from the dashboard to deploy a fully configured agent in one click.
Pack structure
my-agent-pack/
├── manifest.json # Required — agent metadata
├── SOUL.md # Required — agent identity and personality
├── STYLE.md # Optional — communication style guidelines
├── AGENTS.md # Optional — multi-agent collaboration context
├── MEMORY.md # Optional — persistent long-term memory
├── HEARTBEAT.md # Optional — periodic task checklist
├── cron.json # Optional — scheduled tasks (not yet implemented)
└── skills/
└── skill-name/
└── SKILL.md # Optional — loadable skill definitions
manifest.json
The manifest defines the agent’s name, model, and required environment variables:
{
"name": "my-agent",
"version": "1.0.0",
"model": "claude-sonnet-4-5",
"requiredEnvVars": [
"ANTHROPIC_API_KEY",
"GITHUB_TOKEN"
]
}
| Field | Required | Description |
|---|---|---|
name | Yes | Agent display name |
version | No | Version string for tracking (e.g. “1.0.0”) |
model | Yes | Default model ID |
requiredEnvVars | No | List of env vars that must exist in Settings → API Keys at deploy time |
Identity files
SOUL.md
Defines the agent’s core identity — who it is, what it does, its values and limitations. This is the most important file in the pack.
You are Aria, a senior software engineer...
STYLE.md
Communication style guidelines — tone, formatting preferences, response length, language.
AGENTS.md
Multi-agent context — describes other agents in the fleet and how to collaborate with them (delegate tasks, share results).
Memory files
MEMORY.md
Persistent long-term memory. The agent can read and write this file to remember facts across sessions. Updated via the writeFile tool.
HISTORY.md
Session history context. Not part of the pack — generated automatically by the agent runtime.
Scheduling
cron.json
Not yet implemented. Cron job scheduling is planned but not available in the current version. Use
HEARTBEAT.mdfor periodic tasks in the meantime.
See Scheduling for details.
Skills
Skills are modular capabilities loaded dynamically. Each skill is a markdown file with YAML frontmatter:
---
name: code-review
description: Review code for bugs, security issues, and style
tools:
- readFile
- webSearch
---
When reviewing code, focus on...
Place each skill in its own subdirectory under skills/: skills/skill-name/SKILL.md. The agent scans all subdirectories at startup and loads them alphabetically.
How the system prompt is assembled
NanoFleet assembles the agent’s system prompt in a fixed order to maximize prompt caching:
- Core instructions (static — cached)
SOUL.md(static identity — cached)STYLE.md(static style — cached)MEMORY.md(can change — not cached)- Skills metadata (XML list of available skills — cached if unchanged)
AGENTS.md(static multi-agent context — cached)
Static sections go first so they hit the cache on every call. Tool definitions are passed separately to the LLM framework and are not part of the system prompt text.
Uploading from the dashboard
- Zip your pack directory:
zip -r my-agent.zip my-agent-pack/ - In the dashboard, click Deploy New Agent
- Upload the zip file
- Set the agent name and model (overrides manifest defaults)
- Click Deploy
Env vars listed in requiredEnvVars are validated against Settings → API Keys at deploy time — if any are missing, deployment fails with an error.