Agents
An agent is a named persona living inside an APC project. It has a name, a description, an
optional model override, a language preference, and an optional set of skills. Its canonical
definition is a single Markdown file at .apc/agents/<slug>.md.
The agent definition file
Section titled “The agent definition file”---name: reviewermodel: inheritdescription: Reviews PRs and pushes back on hand-wavy diffs.role: Code reviewerlanguage: estools: read,write,runskills: code-review,gitcolor: indigoemoji: 🔍vibe: Concrete feedback, no hand-waving.---name and description are required. Use model: inherit unless the project truly requires a
specific model — this lets each runtime (Codex, Claude Code, Cursor, APX) apply its own configured
default.
Directory.apc/
Directoryagents/
- reviewer.md agent definition
Agent runtime data is local and uncommitted:
~/.apx/projects/<project_id>/agents/reviewer/memory.mdRequired and optional fields
Section titled “Required and optional fields”| Field | Required | Purpose |
|---|---|---|
name | Yes | Stable agent slug used in commands and file name |
model | Yes | Use inherit unless the project truly requires a specific model |
description | Yes | Semantic activation trigger and responsibility summary |
role | No | Human-readable job title shown in prompts and listings |
language | No | Response language preference (e.g. es, en) |
tools | No | Comma-separated tool grants |
skills | No | APC skills the agent commonly uses |
is_background | No | Whether compatible runtimes may run the agent asynchronously |
color, emoji, vibe | No | UI and personality hints for runtimes that support them |
APC should not tie one vendor’s model as the default. Use inherit and let each runtime (Codex,
Claude Code, Cursor, APX) apply its configured default. A specific provider:model-id is only
appropriate when it is an explicit part of the project contract.
Commands
Section titled “Commands”List agents
Section titled “List agents”apx agent list # agents in the current directory's projectapx agent list --project my-app # agents in a named project$ apx agent list orchestrator super-agent (Roby) inherit frontend UI engineer inherit backend API engineer inherit researcher web researcher openai:gpt-4o sofia backend reviewer ollama:llama3.2:3b
Add an agent
Section titled “Add an agent”apx agent add reviewer \ --description "Reviews PRs and pushes back on hand-wavy diffs." \ --role "Code reviewer" \ --model inherit \ --language es \ --tools read,write,run \ --skills code-review,gitThis writes .apc/agents/reviewer.md and regenerates AGENTS.md.
Inspect an agent
Section titled “Inspect an agent”apx agent get reviewer # full definition + memory excerptapx agent show reviewer # aliasImport from the vault
Section titled “Import from the vault”The vault is a global library of reusable agent templates kept in ~/.apx/agents/. APX ships
bundled defaults (a cody code assistant, a doc writer, and so on); you can add your own.
apx agent vault list # see bundled defaults + your overridesapx agent import cody # register the vault template in this projectapx agent import cody --copy # copy the .md into .apc/agents/ for local editsapx agent import cody --force # overwrite an existing local definitionVault management:
apx agent vault add <slug> # create a new template in ~/.apx/agents/apx agent vault rm <slug> # hide a bundled default (tombstone)apx agent vault restore <slug> # un-hide a tombstoned bundled defaultPer-agent model override
Section titled “Per-agent model override”The recommended value is model: inherit — the agent uses whichever model the runtime has
configured as its default. Set a specific provider:model-id only when the project contract
explicitly requires it:
---name: reviewermodel: inherit------name: cheap-summarizermodel: ollama:llama3.2:3b---Any provider:model-id string that your configured engines support works here — for example
openai:gpt-4o or ollama:llama3.2:3b.
How the system prompt is built
Section titled “How the system prompt is built”When you call apx exec <slug> or an agent runs inside a routine, APX composes the system prompt
in this order:
- Identity block —
You are <slug>+ project name - Description from
AGENTS.md - Role and Language fields
- Invocation channel —
engine | telegram | routine | runtime - Memory from
~/.apx/projects/<project_id>/agents/<slug>/memory.md(if it exists) - Skills declared in the agent’s
skills:field - The
apxmeta-skill - Fixed action-discipline footer
Agents vs. the super-agent
Section titled “Agents vs. the super-agent”| Aspect | Super-agent (APX itself) | Project agent |
|---|---|---|
| Has tools? | Yes — full tool registry | No — text-in / text-out only |
| Execution loop | Multi-iteration tool loop | Single LLM call |
| System prompt | super-agent-base.md + channel template + identity | Built per-agent as above |
| Configured via | super_agent.* in config | .apc/agents/<slug>.md |
When in doubt: the super-agent is APX itself; project agents are specialized personas you define.
- Memory — curating durable facts for an agent.
- Sessions — how agent invocations are tracked.
- Agent vault — deep dive on the bundled templates.