DocsAgents

Agents

An agent is a role the session can play. Four things define one:

  • A system prompt — the instructions for this role.
  • A tool allow-list — which tools it can see. Omitted means all of them.
  • A permission ruleset — what it may do without asking you.
  • Optional model and temperature — a stage that should run on a different model says so here.

You pick one per session from the composer's dropdown, and it can change mid-session: a harness advances it, plan_enter swaps it, and the agent_handoff tool hands it forward.

Modes

Mode decides where an agent can be used, not what it can do.

ModePickable by youUsable as a task sub-agentValid harness stage
primaryyesnoyes
subagentnoyesno
allyesyesyes
hiddennonono

hidden is for the runtime's own bookkeeping turns — summarising, titling, compacting. They never appear anywhere.

The built-in agents

AgentModeWhat it's for
buildprimaryThe default. Full filesystem access; everything dangerous asks.
planprimaryRead-only planning. Investigates, writes a plan file for your approval, cannot modify code.
orchestratorprimaryDecomposes a task, delegates to specialists, synthesizes the result.
implementallCoding worker. Executes one scoped change end to end and returns a summary.
debugallRoot-causes a failure: reproduce, isolate, explain. Reports the cause, not a symptom patch.
testallWrites and runs tests, reports real pass/fail output.
reviewallRead-only adversarial review of a diff. Returns severity-ranked findings.
exploresubagentRead-only codebase search and analysis.
researchsubagentRead-only web and codebase research, returns a cited answer.
generalsubagentGeneral-purpose delegate. Most tools, no recursive spawning.
socialprimaryDrafts and posts to configured social integrations.

Four more — react-architect, react-scaffold, react-runner, and react-qa-brief — are stages of the built-in React JS harness rather than personas. They're valid stages in any chain, but they stay out of the agent picker. See harness-only agents.

Where definitions come from

SourceLocationEditable
NativeShips in the buildNo — override specific fields via the config block
Global markdown~/.config/podcode/agent/<id>.mdYes, from Settings → Agents or by hand
Workspace markdown.podcode/agent/*.md, only when agent_autodiscover is onBy hand; belongs to the repo
Config blockagent.<id> in config.jsonBy hand

Agent ids are global. Whichever source an agent comes from, its id has to be unique across all of them — which is why the React harness prefixes its stages react-.

Next