Agents
The Agents page at Dashboard → Agents is your view of the agent roster — every named Claude principal the runtime knows about, with the tool budget, persona, and recent run history for each. This is where you go to invoke an agent ad-hoc, inspect its config, or read the persona file driving its behaviour.
The roster
Catentio ships with 19 named agents covering content production, code work, research, and orchestration. The core lineup:
| Agent | Persona | Typical work |
|---|---|---|
| cimi | Hachimi — the orchestrator | General orchestration, "what should I do next", routing |
| tora | The implementer | Shipping code |
| sai | Scene worker | Per-scene content production |
| ren | Research operator | Web + repository research |
| fumi | Storyboard / planning | Multi-step plan composition |
| iro | Taste-learning runner | Pipelines that learn from approve/reject |
Plus a long tail of project-specific agents the runtime registers at startup. The dashboard always reflects the live roster — not the hard-coded list above.
The portal lists every agent with:
- The agent's slug (e.g.,
cimi,tora). - A short persona summary pulled from
agents/<slug>/CLAUDE.mdin the runtime. - The tool budget the agent has access to.
- The last run, with status and timestamp.
- Total cost for the agent over the trailing 30 days.
Invoking an agent
Click any agent to open its detail page, then click Invoke. The dialog has one field by default:
- Message — the prompt to send. Free-form markdown; the agent receives it as the initial user message.
Optional fields, exposed via the Advanced disclosure:
- Attached context — URLs or file paths the agent should read first.
- Run mode —
interactive(subtasks wait for approval) orautonomous(taste rules decide). - Model override — pin a specific Claude model rather than the agent's default.
Submitting creates a run. The portal switches to the run page and live-streams output as the agent works.
The same call via the SDK:
const run = await catentio.agents.invoke('cimi', {
message: 'Summarise the project board in three bullets.',
});
Or the CLI:
catentio-saas agents invoke cimi --message "Summarise the project board in three bullets."
The detail page
Beyond the invoke button, each agent's detail page shows:
- Persona — rendered markdown from the agent's CLAUDE.md. Read-only here; edits go through the runtime repo (PR flow).
- Tool budget — the list of tools this agent is allowed to call, with their schemas. Linked to Tools for editing.
- Heartbeat config — if a heartbeat is bound to this agent, its schedule + prompt template.
- Voice config — for agents wired to Discord VC (cimi, sai), the ElevenLabs voice ID, model, and pitch knobs.
- Recent runs — the last 20 runs, click-through to detail.
- Cost — trailing 7-day, 30-day, and lifetime totals.
Editing the roster
Adding, removing, or reconfiguring agents is a runtime repo change, not a portal action. The portal exposes a PR-flow link — click Propose change, edit the agent config in the diff editor, and the portal opens a pull request against the runtime repo. You merge manually.
This is by design. Agent config is load-bearing (persona, tool budget, voice) and we want it tracked in git history alongside the prompts.
Heartbeats
If an agent is wired to a heartbeat, the portal shows the schedule at the top of the detail page. Click Configure to change the cron expression or the prompt template. Heartbeats are saved live (no PR-flow); the runtime picks up the new schedule on its next config refresh.
See Heartbeats for the full surface.
Memory
Agents read and write to the runtime's memory layer during runs. The portal links from the agent detail page to Memory filtered to that agent's namespace — useful for inspecting what an agent has been writing.
Memory mutations are OTP-gated (see Concepts → Memory).
Voice agents
A subset of agents (currently cimi, sai) are wired to ElevenLabs voices for Discord VC integration. The voice config lives in the runtime per-agent and is editable from the agent detail page. Voice playback in the portal is preview-only — actual VC routing happens in the runtime's Discord bot.
Coming features
- Bulk-invoke (kick off N parallel runs against an agent).
- Per-agent rate limits.
- Approval queue for autonomous runs paused on taste-rule uncertainty.
Next
- Portal → Runs — what an agent invocation produces.
- Portal → Projects — agents wired into multi-step pipelines.
- API reference — invoking agents over REST.