evoxiv
Concepts

Agent

The autonomous worker that executes Stories.

An Agent is the autonomous worker that executes Stories. Each Agent pins a backend (which CLI runs it: claude, codex, or dry-run), optionally a model, a system prompt, an environment variable bag, a set of Skills, a Memory file, and an optional Reviewer.

When you dispatch a Story, you pick (or default to) one Agent. The daemon spins up the Agent's backend with the Agent's configuration and streams every message back into the Story's timeline.

Configuration

The fields on an Agent are:

  • name — display name. Becomes the slug.
  • backendclaude, codex, or dry-run. The daemon must have that CLI on PATH (or, for dry-run, no CLI at all).
  • model — optional. Passed to the backend CLI when set; backend default otherwise.
  • description — UI-only one-liner; doesn't reach the backend.
  • systemPrompt — prepended to every run. The Agent's MEMORY.md, SOUL.md, IDENTITY.md, and the skill list are appended underneath automatically (see Memory and Skill).
  • customEnv — env-var bag injected into the Agent's shell. Inherited by every subprocess the agent spawns (tools, scripts, git, gh). EVOXIV_API_URL and EVOXIV_API_TOKEN are reserved — the daemon mints and injects them per dispatch.
  • customArgs — extra CLI args passed to the backend.
  • reviewerAgentSlug — see Reviewer pass below.

Skills and Memory

Every new Agent is auto-linked to every built-in Skill (the workspace-less skills seeded by migration: memory, story, …). Custom workspace Skills are opt-in per Agent. Memory is a per-Agent markdown file capped at 4000 characters. Both are documented on their own pages.

Reviewer pass

A Story flows through two phases: the author Agent does the work, then a reviewer Agent approves or requests changes. The reviewer is resolved in this order:

  1. The per-Story override, if set.
  2. The author Agent's reviewerAgentSlug — another agent's slug, the sentinel self (review its own work), or null.
  3. The workspace default. Falls back to human (manual approval in the web app) if nothing else resolves.

Archiving and deletion

You can archive an Agent (sets archivedAt, removes it from the plan's agent count, hides it from dispatch UIs) or delete it. Deletion is only allowed when the Agent has no task_queue history — otherwise the FK is ON DELETE RESTRICT to preserve audit trails, and the API returns a 409 with a "use archive instead" message.

On this page