diff --git a/ROADMAP.md b/ROADMAP.md index 9b9c375..9dcda46 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -19,47 +19,52 @@ - [x] ngircd configured (`nyx.fireclaw.local`, FireclawNet) - [x] Channel layout: #control (overseer), #agents (common room), DMs, /invite -- [x] Ollama with 5 models (qwen2.5-coder, qwen2.5, llama3.1, gemma3, phi4-mini) +- [x] Ollama with 5+ models, hot-swappable per agent - [x] Agent rootfs — Alpine + Python IRC bot + podman + tools - [x] Agent manager — start/stop/list/reload long-running VMs -- [x] Overseer — host-side IRC bot, !invoke/!destroy/!list/!model/!templates +- [x] Overseer — !invoke, !destroy, !list, !model, !models, !templates, !status, !help - [x] 5 agent templates — worker, coder, researcher, quick, creative -- [x] Agent tool access — shell commands + podman containers -- [x] Persistent workspace — 64 MiB ext4 as second virtio drive at /workspace -- [x] Agent memory system — MEMORY.md + save_memory tool, survives restarts -- [x] Agent hot-reload — SSH config update + SIGHUP, no VM restart +- [x] Agent tools — run_command, web_search (searx), save_memory +- [x] Persistent workspace — 64 MiB ext4 as second virtio drive +- [x] Agent memory system — MEMORY.md pattern, survives restarts +- [x] Agent hot-reload — model/persona swap via SSH + SIGHUP - [x] Non-root agents — unprivileged `agent` user -- [x] Agent-to-agent via IRC mentions, 10s cooldown -- [x] DM support — private messages without mention -- [x] /invite support — agents auto-join invited channels -- [x] Overseer resilience — crash recovery, agent adoption, KillMode=process -- [x] Graceful shutdown — SSH SIGTERM → IRC QUIT → kill VM -- [x] Systemd service — fireclaw-overseer.service -- [x] Regression test suite — 20 tests +- [x] Agent-to-agent via IRC, DMs, /invite +- [x] Overseer resilience — crash recovery, health checks, KillMode=process +- [x] Graceful shutdown — IRC QUIT before VM kill +- [x] Systemd service, regression tests -## Phase 4: Hardening & Performance +## Phase 4: Hardening & Deployment (done) -- [ ] Network policies per agent — iptables rules per tap device +- [x] Network policies per agent — full/local/none via iptables +- [x] Thread safety — lock around IRC socket writes +- [x] Agent health checks — 30s interval, announces deaths in #control +- [x] Trigger matching fix — start-of-message only +- [x] agents.json race condition fix +- [x] Install script — one-command deployment, battle-tested on Debian + Ubuntu +- [x] Uninstall script +- [x] Deployed on GPU server (Xeon + Quadro P5000) +- [x] Refactor — shared firecracker-vm.ts helpers, -43 lines + +### Remaining - [ ] Warm pool — pre-booted VMs from snapshots for instant spawns - [ ] Concurrent snapshot runs via network namespaces - [ ] Thin provisioning — device-mapper snapshots instead of full rootfs copies -- [ ] Thread safety — lock around IRC socket writes in agent.py -- [ ] Agent health checks — overseer monitors and restarts dead agents ## Phase 5: Advanced Features -- [ ] Persistent agent memory v2 — richer structure, auto-save from conversations - [ ] Scheduled/cron tasks — agents that run on a timer -- [ ] Advanced tool use — MCP tools, multi-step execution, file I/O -- [ ] Cost tracking — log duration, model, tokens per interaction -- [ ] Execution recording — full audit trail of agent actions +- [ ] !logs command — tail agent interaction history +- [ ] Persistent agent memory v2 — richer structure, auto-save +- [ ] Advanced tool use — MCP servers in Firecracker VMs +- [ ] Cost tracking — duration, model, tokens per interaction +- [ ] Execution recording — audit trail ## Phase 6: Ideas & Experiments -- [ ] vsock — replace SSH with virtio-vsock for lower overhead -- [ ] Web dashboard — status page for running agents -- [ ] Podman-in-Firecracker — double isolation for untrusted container images -- [ ] Honeypot mode — test agent safety with fake credentials/services -- [ ] Self-healing rootfs — agents evolve their own images -- [ ] Claude API backend — for tasks requiring deep reasoning -- [ ] IRC federation — link nyx.fireclaw.local ↔ odin for external access +See IDEAS.md for the full list. Highlights: +- MCP servers as a single Firecracker VM with podman containers +- Cron agents, webhook triggers, alert forwarding +- Agent-written agents, agent debates, dream mode +- Web dashboard, install script dry-run +- Persistent agent memory with CLAUDE.md pattern (v2)