Overview¶
ποΈ What is Kourai Khryseai?¶
Kourai Khryseai is an interactive multi-agent development system where ten specialized AI agents collaborate with you on software development. Instead of running autonomously, they stream their work in real-time, show their reasoning, and pause for guidance when decisions matter.
You describe what you need. Agents break it down, show options, execute on your feedback, and iterate. You're not delegating β you're directing.
Three interfaces share the same Docker-hosted backend: a fast terminal CLI, a Pygame GUI with portraits and TTS, and a Ren'Py visual novel with affinity tiers and romance routes. See Getting Started for installation and a first request.
π€ Why ten agents?¶
Single-agent tools struggle with multi-discipline problems. A development task usually requires planning, coding, testing, review, and documentation. Rather than hoping one model handles all five well, Kourai splits them across ten specialist agents β six core developers, two companion spirits, and two quality validators.
Specialists run as independent HTTP servers communicating via the open A2A protocol, so any one of them can be deployed separately, tested in isolation, or replaced with a custom implementation.
| Tier | Agents | Purpose |
|---|---|---|
| Core specialists | π₯ Hephaestus, π Metis, βοΈ Techne, π§ͺ Dokimasia, β¨ Kallos, π Mneme | Plan / code / test / style / commit |
| Companion spirits | π Puck, π Cupid | Tutorial, idle nudges, romance coaching |
| Quality validators | πͺ Aidos, π Aletheia | Anti-slop screening + research validation |
Per-agent detail lives in the Agents Overview and Agents Reference.
π How a request actually flows¶
Hephaestus is a Forge Master, not a switchboard. It maintains a running Forge Transcript of the whole exchange and broadcasts the full transcript to every specialist it calls. Each specialist sees the complete prior reasoning β Techne reads Metis's spec, Kallos reads everything Techne wrote, etc. β so no agent works blind from a decontextualized stub. Between steps, Hephaestus emits an in-character narration line that streams to the host immediately so the forge feels alive while specialists generate.
Sequence diagram + a real dialogue excerpt
sequenceDiagram
actor You
participant UI as CLI / GUI / VN
participant Hep as π₯ Hephaestus<br/>(Forge Master)
participant Spec as Specialists
You->>UI: "add user authentication"
UI->>Hep: A2A stream (SSE)
Hep->>Hep: CONFIRM_ORDER read-back
Hep-->>UI: "Forge will plan + scaffold + test. Light it?"
You->>UI: yes
Hep->>Hep: Select pipeline Β· init transcript
loop Each specialist in sequence
Hep->>Hep: Append [Hephaestus] narration
Hep-->>UI: Forge narration (streamed)
Hep->>Spec: Full transcript β next agent
Spec-->>UI: Status + findings (streamed)
Hep->>Hep: Append [Agent] output to transcript
UI-->>You: Live updates
end
Note over Spec: Kallos finds issues β Techne fixes β Kallos re-checks (max 3Γ)
Hep-->>UI: Final summary
UI-->>You: Done
A trimmed real example:
β― add authentication to /api/users
π₯ Hephaestus: "Plan + JWT + tests + commit. Light the forge?"
β― yes
π₯ Hephaestus: "Metis! Lay out the path."
π Metis: spec ready (JWT 15m, refresh rotation, rate-limit on refresh)
π₯ Hephaestus: "Techne! Take what she's built and make it real."
βοΈ Techne: src/auth/tokens.py + src/api/users.py written
π§ͺ Dokimasia: 8 tests, 92% coverage β
β¨ Kallos: style review clean β
π Mneme: feat(auth): implement JWT authentication ...
Execution stays sequential (Hephaestus awaits each specialist's final artifact before calling the next), but generation is fully transparent β specialists stream their inner monologue in real-time via AsyncGenerator over A2A with streaming=True.
π― Pipelines¶
Hephaestus's LLM router selects from a small set of templates:
| Request type | Pipeline |
|---|---|
| "implement feature X" | π β βοΈ β π§ͺ β β¨ β π (full stack) |
| "fix bug in X" | βοΈ β π§ͺ β β¨ β π (no planning needed) |
| "add tests for X" | π§ͺ β β¨ β π (testing-focused) |
| "clean up X" | β¨ β π (style only) |
| "commit prep" | π (just organize commits) |
| "plan feature X" | π (planning only) |
| "@metis, why use async here?" | π (1-on-1 question) |
π Human-on-the-loop¶
Two mechanisms keep you in the loop:
CONFIRM_ORDERβ every dev pipeline runs a pre-flight read-back. Hephaestus emits a tiered confirmation card (clear / smart / clarify) and pauses; the player confirms or redirects before any tokens get spent./yoloopts out for power users.AgentInputRequiredβ any specialist can pause mid-pipeline. Metis pauses on architecture trade-offs; Techne pauses on ambiguous patterns; Kallos pauses if a fix loop saturates. The CLI / GUI / VN all surface the question and resume on the player's reply.
π Metis: Should CSV export support streaming for large files?
[A] Yesβuse async generator (slower startup, constant memory)
[B] Noβload and write all at once (faster start, high memory)
β― A
Nothing decisive happens silently β that prevents wasted tokens on speculation and keeps trade-offs in your hands.
π§ Built with¶
- Protocol β A2A, open agent-to-agent (pinned
>=1.0,<2.0; M7 cutover shipped 2026-04-30) - LLM β LiteLLM wrapping Anthropic, Google, and Ollama
- Language β Python
>=3.12,<3.14 - Server β Starlette + uvicorn via
a2a-sdk - Observability β OpenTelemetry β Jaeger v2 + Prometheus v3 + Dozzle
- Containers β Docker + Docker Compose (one image per agent, single shared
Dockerfile) - Visual novel β Ren'Py 8.5.x via the
vn-bridgeDocker service (:10010) - Tools β MCP servers (
forge,shell)
ποΈ The name¶
In Greek mythology, Hephaestus β god of fire and the forge β crafted the ΞΞΏαΏ¦ΟΞ±ΞΉ Ξ§ΟΟΟΡαι (Golden Maidens): women-shaped automatons of living gold who served as intelligent attendants in his divine workshop. Each could think, speak, and work independently.
Each agent is named after a Greek concept matching its function: Hephaestus (god of the forge), Metis (wisdom and craft), Techne (technical skill), Dokimasia (scrutiny and proof), Kallos (beauty and form), Mneme (memory), Puck (the mischievous daimon), Cupid (eros), Aidos (the mirror of honesty), and Aletheia (truth, the unveiling of what is real).