Agent Identity
Identity is what makes an agent feel like someone rather than a yet-another-CLI instance. It is composed of three layers: a soul, a purpose, and a memory. All three are editable at any time.
Soul — personality & expertise
The soul is a short prose description of how the agent talks and what it cares about. It is injected as the agent's persona in every prompt. Good souls are specific and short; vague ones produce vague agents.
- Pragmatic backend engineer. Concise. Skeptical of premature abstraction. Always asks for acceptance criteria before starting.
- Senior UI reviewer. Cares about keyboard nav, contrast, and reduced-motion. Quotes WCAG by number when relevant.
- Infrastructure operator. Cautious. Insists on dry-run first, change-window second, deploy third.
Purpose — mission & scope
Where the soul defines who the agent is, the purpose defines what it is here to do. It is a short list of should and should-not. The agent sees this on every turn and uses it to refuse out-of-scope requests — gently, with a pointer to the right teammate when one exists.
Memory — persistent context
Memory is persistent, per-agent, and local. It stores conversations, summaries of long tasks, and explicit "remember this" notes you pin. Under the hood the store has two parts — a SQLite table for transcripts and a vector store for semantic recall. When the transcript gets long, SenateLab compacts older turns into rolling summaries so you never hit context-window errors.
You can browse, export, or wipe memory from the detail panel. Wiping is per-agent; deleting the whole map is a separate, explicit action.
Pass-through settings
Some knobs pass straight to the provider:
- Temperature — default 0.3 for Engineer roles, 0.6 for Researcher.
- Max output tokens — capped per turn to keep feedback tight.
- System-prompt extension — an optional free-form addendum, useful for house rules or style guides.