docs(personal): add mikael subagent to catalog
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
|
||||
The personal lead agents (Shawn, Nate, Hypatia, Marcus, Watson, Bourdain, David, Cousteau, Garth, Cristiano) delegate certain repeatable tasks to a shared **subagent** — minimal personality, narrow scope, called as a tool. Subagents don't own graph nodes and don't have character bibles.
|
||||
|
||||
Subagents are runtime processes defined under `kottos/agents/`, exposed as MCP tools via StreamableHTTP. The canonical prompt text lives in `prompts/personal/subagents/` — copies in the runtime code should match.
|
||||
Subagents are runtime processes defined under `iolaus/agents/` (personal-team variants) or `kottos/agents/` (engineering originals, reused), exposed as MCP tools via StreamableHTTP. The canonical prompt text lives in `prompts/personal/subagents/` — copies in the runtime code should match.
|
||||
|
||||
Mikael has a stronger editorial voice than the other subagents (Scandinavian newsroom skepticism, refusal to launder claims from low-credibility outlets) but is still a narrow-scope tool — no graph nodes, no character bible, invoked by leads as a sub-tool.
|
||||
|
||||
## Catalog
|
||||
|
||||
@@ -36,6 +38,35 @@ Subagents are runtime processes defined under `kottos/agents/`, exposed as MCP t
|
||||
|
||||
---
|
||||
|
||||
### mikael
|
||||
|
||||
**Purpose:** Produce topic-driven, source-verified news briefings. Reads from a curated topic list and applies a strict source policy (preferred sources seeded into queries; avoided sources excluded with `-site:` *and* post-filtered by hostname).
|
||||
|
||||
**Composition:** Single `fast.agent` (not a `fast.parallel`). The agent itself does the search → fetch → image lookup → summarize loop.
|
||||
|
||||
**Tools:** argos (`search_web`, `fetch_webpage`, `search_images`), time, mnemosyne
|
||||
|
||||
**When to delegate:**
|
||||
- "What's the latest on X?" — current events on a single topic, with sources and timestamps
|
||||
- Daily / morning briefings across the configured topic list
|
||||
- Any task where Robert needs *what is currently being reported* (with attribution and recency), not just background knowledge
|
||||
- Lead agents that need news context for their domain — e.g. Cristiano on a transfer story, David on an arts/culture story, Garth on a markets development — when the question is "what's being reported right now"
|
||||
|
||||
**When NOT to delegate:**
|
||||
- Historical / background questions where the answer doesn't depend on the last 24h — use Argos directly or ask the domain lead
|
||||
- Topic deep-dives that need analysis, not headlines — the domain lead is the right answer (don't ask Mikael "what should I think about X")
|
||||
- Anything Robert wants stored — Mikael is read-only and explicitly does not write to Neo4j; the calling lead is responsible for persisting what matters
|
||||
|
||||
**Configuration:** Driven by the top-level `news:` block in `iolaus/fastagent.config.yaml` — topics, preferred sources, avoided sources, default lookback window, max items per topic. Edits take effect on Iolaus restart, no code changes needed.
|
||||
|
||||
**Source policy:** Mikael will never summarize or cite an avoided source, even if another outlet syndicates the claim. If only an avoided source has a story, the story is "unreported" until a credible outlet picks it up.
|
||||
|
||||
**Prompt:** Embedded in [iolaus/agents/mikael.py](https://git.helu.ca/r/iolaus/src/branch/main/agents/mikael.py) (no separate canonical file in `prompts/personal/subagents/` yet — the in-code instruction interpolates the `news:` config block at startup, which is awkward to mirror as static markdown).
|
||||
|
||||
**Runtime:** `iolaus/agents/mikael.py` (exposed as the `news` MCP tool on port 24053). Unlike `research`, there is no engineering-team variant — news briefing is a personal-team-only capability.
|
||||
|
||||
---
|
||||
|
||||
## Conventions
|
||||
|
||||
**Source of truth:** koios is the master. The prompt text in `prompts/personal/subagents/` is canonical; runtime `.py` files should load from or match these prompts. When iterating, edit koios first and propagate.
|
||||
|
||||
Reference in New Issue
Block a user