Coordinator
The Coordinator is Curia’s primary agent. It receives every inbound message, maintains the unified persona, and decides whether to handle a task itself or delegate to a specialist.| Field | Value |
|---|---|
| Role | coordinator |
| Model | Claude Sonnet |
| Skills | 30+ pinned skills (email, memory, scheduling, tasks, web research, autonomy, and more) |
| Discovery | Enabled — can find and invoke skills not in its pinned list |
| Task management | Enabled (enable_task_management) — owns and advances the task backlog |
- Conversational messages and questions
- Email reading, sending, replying, and drafting
- Scheduling recurring and one-shot tasks
- Tracking deferred work in the task backlog — “remind me to…”, “what’s open?”, “mark X done”
- Knowledge graph queries and memory storage
- Autonomy score management
- Web research (search, fetch, browse)
- Held message processing for unknown senders
- Calendar operations and scheduling intelligence → Calendar Specialist
- Contact briefings, deduplication, and relationship intelligence → Contact Specialist
- Multi-source web research → Research Analyst
- CEO inbox queries, triage, and rule management → CEO Inbox
- First-conversation onboarding and “help me set up X” requests → Setup Wizard
- Resolves possessive pronouns (“my calendar”, “your schedule”) to explicit entity identities before delegating to any specialist
- Adapts its communication style based on who it’s talking to — candid with the CEO, professional and opaque with external contacts
- Never exposes internal system details, tool names, or agent architecture to non-CEO users
- Enforces authorization decisions from the dispatch layer (provisional contacts, blocked senders, permission denials)
- Respects trust score thresholds before taking action on external requests
- Recognizes when it was CC’d (vs. directly addressed) on email and adjusts behavior — reads the thread for context, infers what’s expected, and replies via the correct account
Calendar Specialist
A specialist agent that owns the full calendar domain.| Field | Value |
|---|---|
| Role | specialist |
| Model | Claude Sonnet |
| Skills | calendar-*, date-resolve, email-send, email-reply, memory-query |
| Discovery | Disabled |
- Scheduling intelligence — finds free time, resolves conflicts, and makes scheduling decisions based on stored CEO preferences
- Free/busy queries across multiple calendars and participants
- Event CRUD (create, update, delete) with timezone-aware slot finding
- Scheduling-related email composition — meeting requests, reschedules, cancellations
Contact Specialist
A specialist agent that owns the full contact domain.| Field | Value |
|---|---|
| Role | specialist |
| Model | Claude Sonnet |
| Skills | contact-*, memory-query, memory-store, entity-context |
| Discovery | Disabled |
- Contact briefings — assembles enriched context (facts, relationships, interaction history) for a person or organization
- Contact CRUD and identity management
- Deduplication — runs a weekly background scan and surfaces merge candidates for CEO review
- Entity resolution for people and organizations
Research Analyst
A specialist agent for conducting web research and providing analysis.| Field | Value |
|---|---|
| Role | specialist |
| Model | Claude Sonnet |
| Skills | web-search, web-fetch, memory-store, memory-query, entity-context, scheduler-create, scheduler-list, scheduler-cancel |
| Discovery | Disabled |
- Uses web-search (Tavily) with multiple queries to cover different angles
- Follows up on important sources with web-fetch for full content
- Synthesizes findings into clear, concise summaries for an executive audience
- Highlights key takeaways and concerns with source attribution
- Persists important findings about known entities to the knowledge graph, so research about contacts and organizations builds over time
CEO Inbox
A specialist agent that manages the CEO’s personal email inbox. It runs on a 15-minute schedule and can also be delegated inbox queries or rule management tasks by the Coordinator.| Field | Value |
|---|---|
| Role | specialist |
| Model | Claude Sonnet |
| Skills | ceo-inbox-* (incl. ceo-inbox-draft-compose), task-* (via task management), contact-register, signal-send, bullpen, entity-context, memory-query, memory-store, config-store, executive-profile-get, file-parse, date-resolve |
| Discovery | Disabled |
| Task management | Enabled (enable_task_management) |
| Schedule | Every 15 minutes |
- Autonomous inbox triage — reads unread messages and classifies each as URGENT, ACTIONABLE, NEEDS DRAFT, LEAVE FOR CEO, or NOISE
- Draft reply creation — writes reply-all drafts in the CEO’s voice using the stored executive profile; the CEO reviews and sends from Gmail
- Cold-outreach drafts — composes new (non-reply) drafts into the CEO’s Gmail Drafts via
ceo-inbox-draft-compose - Escalation — sends a Signal alert and opens a Bullpen thread for URGENT items; opens a Bullpen thread mentioning the appropriate specialist for ACTIONABLE items
- Standing rules and decision tagging — maintains a configurable set of per-sender instructions and auto-labels via
config-store - Inbox queries — searches, reads, and labels messages on demand when delegated by the Coordinator
inbox-overflow tasks, so the time spent per run no longer grows with the backlog.
Urgent alerts route through the coordinator. When the CEO Inbox classifies a message as URGENT, it does not call signal-send directly — it opens a Bullpen thread mentioning the coordinator and asks for an outbound alert. The coordinator’s send is what hits Signal, which means the alert participates in the same delegation-aware reply correlation as any other coordinator-initiated message. If the CEO replies to the alert, the coordinator routes the reply back to the inbox agent via the normal delegation path.
Setup Wizard
A specialist agent that owns the first-conversation experience after a new install and stays available for “help me set up X” requests later.| Field | Value |
|---|---|
| Role | specialist |
| Model | Claude Sonnet |
| Skills | behavioral-preferences-update, scheduler-create, scheduler-list, scheduler-cancel, skill-registry, memory-store, executive-profile-update |
| Discovery | Disabled |
| inject_specialists | False |
- Auto-triggered on the first chat message after the form wizard at
/setupcompletes. The chat view sends a one-shot kickoff message that the Coordinator routes here. - On demand when the principal asks “help me set up Nylas / Twilio / Signal / OpenAI” or similar — the specialist returns the env var names, restart instructions, and a note that in-app integration flows are coming in a future release.
- On “what can you do?” — returns a plain-language capability summary grouped by category.
- Greet, then ask what takes up most of the principal’s time (email, scheduling, research, news).
- Map the answer to concrete next steps (email-heavy → Nylas setup; research → web search is already wired) and append the preference to
OfficeIdentity.behavioralPreferencesviabehavioral-preferences-update. Then ask about working hours and timezone. - Acknowledge the hours and ask whether a regular debrief would be useful — daily summary or weekly digest.
- If yes, schedule the debrief via
scheduler-create. Close with a brief summary of what got set up and what’s next.
Meeting Debrief
A proactive specialist agent that scans the CEO’s calendar for recently-ended external meetings, prompts for takeaways, and executes whatever follow-up actions the CEO’s notes imply.| Field | Value |
|---|---|
| Role | specialist |
| Model | Claude Sonnet |
| Skills | calendar-, email-draft-save, email-send, scheduler-, task-*, bullpen, memory-query, memory-store, config-store, entity-context |
| Discovery | Disabled |
| Schedule | Every 5 minutes |
- Detection — scans calendar events ending in the recent past, classifies attendees as internal vs external, and uses LLM judgment to decide which meetings warrant a debrief prompt (
YES,NO,DEFER) - Prompting — opens a Bullpen thread asking the coordinator to send a brief conversational prompt on the CEO’s preferred channel (Signal by default): “You just wrapped up with Sarah Chen and David Park from Meridian. Any takeaways or follow-ups?”
- Follow-up execution — when the CEO replies with notes, the agent uses its full skill set to draft emails, find conflict-free meeting slots, store commitments, and post Bullpen threads to other specialists (e.g. research-analyst) for cross-cutting work
- Reminders — nudges the CEO on the same thread if a prompt goes unanswered after a configurable delay (default: 2 hours)
- Preference learning — when the CEO says “don’t debrief me on meetings with X”, the rule is stored as a KG fact and respected on future scans
debrief-pending), and the reminder is just that task’s wake-up; follow-up actions become child tasks owned by Curia, you, or an external party. Pending debriefs therefore also surface in the daily digest, and you can ask “what debriefs are outstanding?” through the coordinator.
Bullpen-through-coordinator pattern. The Meeting Debrief agent has no outbound communication skills pinned. All proactive prompts and follow-up sends route through the coordinator via Bullpen, which keeps the unified persona intact and lets reply correlation work the same way as any other coordinator-initiated outbound.
Tunable via the debrief block in config/default.yaml — channel, reminder delay, scan window, and context-bridge TTL for replies.
How delegation works
When the Coordinator receives a task that requires specialist expertise, it uses thedelegate skill to hand the task to the appropriate agent. The specialist works independently, using only its pinned skills, and returns its findings to the Coordinator. The Coordinator synthesizes the specialist’s response into its own voice — the user never sees that multiple agents were involved.
On synchronous channels (CLI, Signal, HTTP), the Coordinator sends a brief acknowledgment before delegating (“This will take a few minutes — I’ll reply when it’s ready”). On asynchronous channels (email), delegation happens silently.
Building custom agents
How to create, configure, and register a new agent.
Architecture
How agents fit into the five-layer message bus architecture.