4.8 KiB
4.8 KiB
Kugetsu vs Pi Feature Mapping
Overview
This document maps Kugetsu's current functionality to what Pi (agent-core) provides, helping understand what to keep, what to modify, and what to build new.
Kugetsu → Pi Feature Comparison
| Kugetsu Function | Pi Has It? | Notes |
|---|---|---|
| Queue system | ❌ No | Pi is single-agent runtime |
| Session tracking | ⚠️ Partial | Events (agent_end, turn_end), but no built-in persistence |
| Worktree management | ❌ No | Git operations not included in Pi |
| PM Agent logic | ❌ No | Task coordination is your responsibility |
| Parallel capacity control | ❌ No | You control concurrency |
| Resource monitoring | ❌ No | You measure memory/CPU |
| Context isolation | ✅ Yes | Each Agent instance is separate |
| Tool execution hooks | ✅ Yes | beforeToolCall, afterToolCall |
| Rich event stream | ✅ Yes | Full lifecycle events |
| Checkpoint/save state | ❌ No | You build this |
What Stays from Kugetsu
| Component | What You Keep | What Changes |
|---|---|---|
| Queue/Orchestration | ✅ Keep | Replace with simpler implementation since Pi is lighter |
| Worktree logic | ✅ Keep | Works the same |
| PM Agent | ✅ Keep | Runs as a Pi agent instead of OpenCode session |
| Telegram/Hermes bridge | ✅ Keep | No changes needed |
| Capacity testing | ✅ Keep | Retest with Pi for new benchmarks |
| CODING_GUIDELINES.md | ✅ Keep | Pi loads AGENTS.md or CLAUDE.md |
What Changes
| Component | Before (OpenCode) | After (Pi) |
|---|---|---|
| Agent runtime | ~340MB per agent | ~80MB per agent |
| Session isolation | Worktree-based | Worktree + context tagging |
| Crash detection | Missing/silent | Event subscription + heartbeats |
| Checkpoint | None | Built into Shadow class |
| Message streaming | Limited | Rich event stream |
The New Architecture
Before:
┌─────────────────────────────────────────────┐
│ Kugetsu (Queue + Orchestration) │
│ ├── Queue system (custom) │
│ ├── Worktree management │
│ ├── PM Agent (OpenCode session) │
│ └── Coding Agents (OpenCode sessions) │
│ └── ~340MB each, context in session │
└─────────────────────────────────────────────┘
After:
┌─────────────────────────────────────────────┐
│ Kugetsu (Queue + Orchestration) │
│ ├── Queue system (simplified, lighter) │
│ ├── Worktree management │
│ ├── PM Agent (Pi agent) │
│ └── Coding Agents (Pi "Shadows") │
│ └── ~80MB each, context isolation │
│ ├── Event-driven tracking │
│ ├── Checkpoint support │
│ └── Rich hooks for UX │
└─────────────────────────────────────────────┘
What You Build New
Since Pi doesn't include these, you add them in Kugetsu:
-
Shadow Manager
- Spawns Pi agents
- Tracks state
- Manages lifecycle
-
Queue with Concurrency Control
- Simpler than before (less resource contention)
- Parallel capacity: 15-20 shadows on 4GB RAM
-
Event-Driven Session Tracking
- Subscribe to
agent_end,agent_error - Know immediately when a session ends/crashes
- No more "silent death"
- Subscribe to
-
Checkpoint System
- Save state every N seconds
- Recover from last checkpoint on crash
-
Resource Monitor
- Track memory per shadow
- Auto-scale based on availability
Why This Works Better
| Problem | Before (OpenCode) | After (Pi) |
|---|---|---|
| Session poisoning | Context bleeds between agents | Strict convertToLlm filtering |
| Silent crashes | Process dies, no trace | Event subscription catches this |
| Memory exhaustion | 5 max, then queue | 15-20 max, more headroom |
| UX in headless | Limited streaming | Rich events rebuild TUI |
Summary
- Keep: Queue, worktree, PM agent logic, Hermes bridge
- Modify: Session isolation (add context tagging), event handling
- Build: Shadow manager, checkpointing, resource monitor
- Gain: 70% less memory, observable sessions, TUI-like headless UX