Files
koios/docs/engineering/subagents.md
Robert Helewka 703b3402d4 docs(readme): update assistant roster, prompt layers, repo structure
- Update assistant lists (added Shawn, Watson, David, CASE, AWS SA; modified Scotty/Harper roles)
- Reflect new architecture layers: Tool Prompt Snippets and Shared Context
- Align repository structure diagram with current filesystem layout
2026-05-20 22:50:22 -04:00

3.7 KiB

Engineering Subagents

The engineering leads (Harper, Scotty, CASE) delegate narrow, repeatable tasks to subagents — minimal-personality agents with a tight tool surface and a focused role. Subagents are called as tools, not addressed as collaborators. They 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/engineering/subagents/ — copies in the runtime code should match.

Catalog

research

Purpose: Answer a question by querying both the public web and Robert's personal Neo4j memory in parallel, then synthesizing one integrated response.

Composition: fast.parallel of three sub-agents:

  • web_search — argos
  • memory_lookup — neo4j (read-only)
  • synthesizer — merges the two reports, flags conflicts, suggests memory updates

Tools: argos, neo4j_cypher

When to delegate:

  • A user question where the answer might exist in Robert's notes AND on the public web
  • "What do I already know about X, and what's the current public information on it?"
  • When the lead wants memory-aware research without burning its own context on parallel queries

When NOT to delegate:

  • Quick web lookups where memory isn't relevant — use Argos directly
  • Pure graph queries where the web isn't needed — query Neo4j directly
  • Technical library/API research — use tech_research instead

Prompt: prompts/engineering/subagents/research.md

Runtime: kottos/agents/research.py — port 24150


tech_research

Purpose: Investigate technical questions — library comparisons, API docs, framework patterns, code examples. Returns structured analysis with options, trade-offs, code snippets, version notes, and cited recommendations.

Tools: context7 (primary), github, argos (fallback)

When to delegate:

  • "How does library X work?" / "What are my options for Y?" / "Which framework should I use for Z?"
  • Anything where the answer requires checking current documentation, real-world code, and possibly web research
  • Library version migration questions
  • API design comparison work

When NOT to delegate:

  • General research where memory matters — use research instead
  • Quick documentation lookup on a known library — use Context7 directly
  • Code review of Robert's own code — leads handle that with their full context

Prompt: prompts/engineering/subagents/tech_research.md

Runtime: kottos/agents/tech_research.py — port 24151


Conventions

Source of truth: koios is the master. The prompt text in prompts/engineering/subagents/ is canonical; runtime .py files should load from or match these prompts. When iterating, edit koios first and propagate.

Personality: Subagents have minimal personality. Their identity is their role: "you are a technical research specialist," not a named character. CASE was once cataloged here but was promoted to a lead agent in 2026-05 — see case.md. The line: if the agent has a character, an inspiration, a domain it owns end-to-end, it's a lead; if it's a narrow utility called by other agents, it's a subagent.

Cross-team reuse: A subagent may be useful to other teams (work, personal). The convention is copy with tweaks rather than share a single file — small per-team adjustments (different tool emphasis, different output format) are legitimate and the duplication is cheap.

Graph ownership: Subagents do not own node types and generally do not write to the graph. If a subagent needs to persist something, it returns the proposed write to the calling agent and lets the lead persist it.