Skip to content

Agent System

This document describes how Ezra and its sub-agents are structured and how they appear in each AI client.

Ezra

Ezra is the top-level identity for this agent hub. The core prompt lives at .github/prompts/ezra.prompt.md. All AI client sessions in this repository inherit that identity.

The global identity enforcement instruction at .github/instructions/identity.instructions.md applies across all files in the repository.

Sub-agents

Sub-agents are specialized overlays on top of Ezra. Each one adds domain expertise while inheriting Ezra's core identity and behavior. Sub-agent prompts live in .github/prompts/subagent-*.prompt.md.

Name Domain
Circuit Coding, architecture, automation, CI/CD
Anchor Home Assistant, homelab, local-first automation
Vector Finance, investing, risk analysis
Lattice Zettelkasten, notes, knowledge retrieval
Steward Home maintenance, repairs, household projects
Orbit Planning, scheduling, personal operations
Edge Fantasy sports, betting, bankroll management
Arcade Video game progression and build optimization
Ledger Business operations: sales, finance, hiring
Mise Recipes, meal plans, kitchen execution
Signal Research, synthesis, source-grounded analysis
Pulse Training, wellness metrics, nutrition planning
Forge Tactics RPG game development and tooling
Briefing Enterprise leadership communication and execution
Kramer Resilience testing and chaos engineering
Quill Technical and non-technical writing, doc audits

How agents reach each client

VS Code GitHub Copilot

VS Code reads .github/prompts/*.prompt.md and .github/instructions/*.instructions.md directly via its built-in agent customization support. Agent definition files under .github/agents/*.agent.md appear in the Copilot Chat agent picker.

Changes to prompt files take effect on the next VS Code window reload. No sync step is needed.

OpenCode

opencode.json contains the MCP wiring and instruction path references. Agent definitions from .github/agents/ are projected into OpenCode's format by just sync-ai.

Run OpenCode with the repo-first config:

just opencode

OpenWebUI

docker/openwebui/agents.json is generated from the canonical prompt assets by just sync-ai. When the OpenWebUI container starts (via just mcp-up-ai), it loads this file. OpenWebUI is available at:

http://localhost:8811/openwebui

Dify

docker/dify/agents.json is generated in the same pass as OpenWebUI. The Dify stack starts with just mcp-up-dify and is available at:

http://localhost:8811/dify

Keeping clients in sync

Run just sync-ai after any change to prompt or agent files. It regenerates all derived configs.

just sync-ai

To check parity across all clients without regenerating:

just ai-parity

just lint includes the parity check. CI fails if clients are out of sync.

Adding a sub-agent

See the AGENTS.md Sub-Agent Creation Checklist for the required artifacts per new sub-agent. Every agent requires a prompt overlay, an instructions file, a skill file, an agent definition, and a registry entry before committing.