$curl -o .claude/agents/_index.md https://raw.githubusercontent.com/The-AIOS/aios/HEAD/agents/_index.md> Specialized task agents that spawn as sessions, execute with loaded instructions, and call close-session when done. Not persistent identities — they receive tasks, ship, report back.
| 1 | # Agents — Top-Level Registry |
| 2 | |
| 3 | > Specialized task agents that spawn as sessions, execute with loaded instructions, and call close-session when done. Not persistent identities — they receive tasks, ship, report back. |
| 4 | |
| 5 | Organized into **6 bundles by purpose**. Install only the bundles you need. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Bundles |
| 10 | |
| 11 | | Bundle | Purpose | Count | |
| 12 | |---|---|---| |
| 13 | | **`aios/sales/`** | Lead generation, proposals, CRM, brand monitoring | 4 | |
| 14 | | **`aios/strategy/`** | Market research, advisory, company analysis, open-source governance | 4 | |
| 15 | | **`aios/finance-legal/`** | Accounting, legal review, invoicing, compliance | 4 | |
| 16 | | **`aios/engineering/`** | Code review, documentation, bug triage, security, building, growth, refactoring | 8 | |
| 17 | | **`aios/communication/`** | Content, decks, emails, meeting prep, reports, design systems, animation | 8 | |
| 18 | | **`aios/personal/`** | Study, journaling, growth, decision-making, onboarding, crisis | 6 | |
| 19 | | **`custom/`** | Your own agents (operator-specific extensions, never synced) | — | |
| 20 | |
| 21 | **Total bundled agents: 34.** Each bundle has a `README.md` describing its scope; this file is the master registry. |
| 22 | |
| 23 | > **Standard:** all agents follow the [Agent Skills open standard](https://github.com/anthropics/skills) (138K⭐ — Anthropic's public canonical repo). Cross-platform compatible with Claude Code, Codex, Gemini CLI, Cursor, Antigravity. |
| 24 | |
| 25 | --- |
| 26 | |
| 27 | ## How agents work |
| 28 | |
| 29 | 1. **Define:** Create an agent file from [[agent-template]] in the relevant bundle subfolder (or `custom/` for your own). |
| 30 | 2. **Match:** `/today` reads this index, matches tasks to agents by keywords/domain. |
| 31 | 3. **Spawn:** `spawn {name}` opens a new terminal and launches a session with the agent's instructions loaded. |
| 32 | 4. **Execute:** Agent does the work with its specified tools. |
| 33 | 5. **Close:** Agent calls `/close-session` — writes what it did, what's unresolved. |
| 34 | 6. **Report:** `/close-day` picks up the session report and routes it. |
| 35 | |
| 36 | --- |
| 37 | |
| 38 | ## Agent matching |
| 39 | |
| 40 | When a session starts with a name that doesn't have an exact match, the spawn wrapper + CLAUDE.md perform **glob + fuzzy matching:** |
| 41 | |
| 42 | 1. **Exact match** → `agents/**/{name}.md` glob — first match wins. Both bundle agents and `custom/` agents resolve. |
| 43 | - Conflict rule: if two bundles ship an agent with the same name, the wrapper warns and lists matches. `custom/` always takes precedence over bundled (operator overrides). |
| 44 | 2. **Semantic match** → scan this registry table (and `custom/_index.md` if it exists). Compare session name against agent names, purposes, domains, and match keywords. Pick the closest match if confidence is high. |
| 45 | - `bookkeeper` → matches [[accountant]] (finance domain, bookkeeping keywords) |
| 46 | - `contract-reviewer` → matches [[lawyer]] (legal domain, contract/NDA keywords) |
| 47 | - `strategist` → matches [[consultant]] (strategy domain, advisory keywords) |
| 48 | 3. **No match** → general-purpose worker with session name as role context. |
| 49 | |
| 50 | When a fuzzy match is used, the session tells the user which agent was matched and why, so they can correct if wrong. |
| 51 | |
| 52 | **`archetype:` tags** (e.g. `archetype: maintainer`) mark an agent's *posture* — the [[../skills/aios/team-archetypes/SKILL|five product archetypes]] (Prototyper / Builder / Sweeper / Grower / Maintainer) — **orthogonally to its domain capability**. One agent can carry several (it shifts posture by project stage). They make *"who's my Builder / Maintainer?"* resolvable and let `/7plan` + `/emerge` check the deployed mix matches the project's lifecycle stage (not `/today` — daily routing is tactical, stage→mix is strategic). They are a *lens layered on top of* the domain bundles — never a reason to rename or restructure agents. |
| 53 | |
| 54 | --- |
| 55 | |
| 56 | ## Agent vs Session |
| 57 | |
| 58 | | | Agent | Persistent session | |
| 59 | |---|---|---| |
| 60 | | Identity | Task-specialized, temporary | Named identity, personal | |
| 61 | | Lifecycle | Spawn → execute → close-session | Runs continuously | |
| 62 | | Free will | Executes assigned tasks only | Autonomous decisions | |
| 63 | | Scheduling | Can be scheduled (cron/recurring) | Always-on or manual | |
| 64 | | Example | lead-gen, code-reviewer, content-writer | Primary sessions (e.g. `buddai`, `sarah`) | |
| 65 | |
| 66 | --- |
| 67 | |
| 68 | ## Registry (all bundles, all agents) |
| 69 | |
| 70 | <!-- /today reads this table to match tasks to agents. --> |
| 71 | |
| 72 | ### aios/sales/ — Lead generation, proposals, CRM, brand |
| 73 | |
| 74 | | Agent | Purpose | Match keywords | Schedule | |
| 75 | |---|---|---|---| |
| 76 | | [[sales-lead-hunter]] | Explore leads, qualify, score, draft outreach emails | lead, prospect, outreach, qualify, pipeline, hunt | on-demand | |
| 77 | | [[sales-proposal-writer]] | Draft proposals from project notes + the user's consulting catalog | proposal, quote, offer, pitch, engagement letter | on-demand | |
| 78 | | [[sales-crm-updater]] | Sync deal updates to Monday/CRM from meeting notes | CRM, Monday, deal update, pipeline sync | on-demand | |
| 79 | | [[brand-monitor]] | Track mentions, competitors, industry news | brand mentions, competitor check, industry news, mark |