docs: add Phase 0/1 implementation plan and feature gap analysis
This commit is contained in:
@@ -0,0 +1,306 @@
|
||||
# Flynn vs OpenClaw — Feature Gap Analysis
|
||||
|
||||
**Date:** 2026-02-06
|
||||
**Purpose:** Comprehensive comparison of Flynn's current implementation against OpenClaw's feature set, to guide prioritisation of future work.
|
||||
|
||||
## Legend
|
||||
|
||||
- **MATCH** — Flynn has equivalent functionality
|
||||
- **PARTIAL** — Flynn has some implementation but incomplete
|
||||
- **MISSING** — Not implemented in Flynn
|
||||
|
||||
---
|
||||
|
||||
## 1. Channels / Frontends
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Telegram | grammY bot | grammY bot | **MATCH** |
|
||||
| WhatsApp | Baileys (WhatsApp Web) | -- | **MISSING** |
|
||||
| Discord | discord.js | -- | **MISSING** |
|
||||
| Slack | Bolt SDK | -- | **MISSING** |
|
||||
| Signal | signal-cli | -- | **MISSING** |
|
||||
| iMessage / BlueBubbles | imsg + BlueBubbles | -- | **MISSING** |
|
||||
| Google Chat | Chat API | -- | **MISSING** |
|
||||
| Microsoft Teams | Bot Framework | -- | **MISSING** |
|
||||
| Matrix | Extension | -- | **MISSING** |
|
||||
| Zalo / Zalo Personal | Extension | -- | **MISSING** |
|
||||
| WebChat | Gateway-served | Gateway (stub) | **PARTIAL** |
|
||||
| TUI (terminal) | `openclaw tui` | Minimal + Fullscreen (React/Ink) | **MATCH** |
|
||||
| LINE / Feishu / Mattermost | Extensions/plugins | -- | **MISSING** |
|
||||
|
||||
Flynn has **2 of ~15 channels**. The messaging channel ecosystem is the single biggest gap.
|
||||
|
||||
---
|
||||
|
||||
## 2. Model Providers
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Anthropic (Claude) | Full + OAuth | Full | **MATCH** |
|
||||
| OpenAI | Full + OAuth + Codex | Full | **MATCH** |
|
||||
| Ollama (local) | Supported | Full | **MATCH** |
|
||||
| Llama.cpp (local) | Supported | Basic | **PARTIAL** |
|
||||
| Gemini / Google | Full provider | Stub only | **PARTIAL** |
|
||||
| OpenRouter | Supported | -- | **MISSING** |
|
||||
| Amazon Bedrock | Supported | -- | **MISSING** |
|
||||
| GLM / MiniMax / Moonshot | Supported | -- | **MISSING** |
|
||||
| Vercel AI Gateway | Supported | -- | **MISSING** |
|
||||
| Z.AI | Supported | -- | **MISSING** |
|
||||
| Synthetic provider | Supported | -- | **MISSING** |
|
||||
| OAuth subscription auth | Anthropic + OpenAI | API keys only | **MISSING** |
|
||||
| Model failover chains | Full (fallback + rotation) | Fallback chains | **MATCH** |
|
||||
| Model tier routing | Per-agent, per-provider | default/fast/complex/local | **MATCH** |
|
||||
| Provider-specific tool policy | Per-provider tool filtering | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 3. Agent Runtime & Tools
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Tool loop with streaming | RPC mode + block streaming | Tool loop (max 10 iter) | **MATCH** |
|
||||
| `exec` / shell | Full (background, pty, timeout, elevated) | Basic (bash -c, timeout) | **PARTIAL** |
|
||||
| `read` / file read | Full (line ranges) | Full (line offset/limit) | **MATCH** |
|
||||
| `write` / file write | Full | Full (auto-mkdir) | **MATCH** |
|
||||
| `edit` / file edit | Full | Full (exact match, replace_all) | **MATCH** |
|
||||
| `apply_patch` | Multi-hunk structured patches | -- | **MISSING** |
|
||||
| `file.list` / glob | -- | Full (glob filtering) | **MATCH** |
|
||||
| `web_fetch` | Full (markdown/text extract, caching) | Basic HTTP GET | **PARTIAL** |
|
||||
| `web_search` | Brave Search API | -- | **MISSING** |
|
||||
| Browser control | Full CDP (Chromium profiles, snapshots, actions) | -- | **MISSING** |
|
||||
| Canvas / A2UI | Agent-driven visual workspace | -- | **MISSING** |
|
||||
| `process` tool | Background exec management (poll/log/write/kill) | -- | **MISSING** |
|
||||
| `image` tool | Image analysis with configurable model | -- | **MISSING** |
|
||||
| `message` tool | Cross-channel messaging + actions | -- | **MISSING** |
|
||||
| `cron` tool | Runtime cron management | -- | **MISSING** |
|
||||
| `gateway` tool | Restart/config management | -- | **MISSING** |
|
||||
| `sessions_*` tools | List/history/send/spawn across sessions | -- | **MISSING** |
|
||||
| `agents_list` tool | Sub-agent discovery | -- | **MISSING** |
|
||||
| Tool profiles | minimal/coding/messaging/full | -- | **MISSING** |
|
||||
| Tool groups | `group:fs`, `group:runtime`, etc. | -- | **MISSING** |
|
||||
| Tool allow/deny lists | Global + per-agent + per-provider | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 4. Session Management
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Session persistence | JSONL files | SQLite | **MATCH** (different storage) |
|
||||
| Session isolation | Per-sender + group isolation | `{frontend}:{userId}` | **MATCH** |
|
||||
| Session transfer | Between channels | Between frontends | **MATCH** |
|
||||
| Multi-agent routing | Isolated workspaces per agent | Single backend | **MISSING** |
|
||||
| Session pruning | Tool result trimming (in-memory) | -- | **MISSING** |
|
||||
| `/new` / `/reset` | Full | Full | **MATCH** |
|
||||
| `/status` | Full (model + tokens + cost) | Full (model + confirmations) | **MATCH** |
|
||||
|
||||
---
|
||||
|
||||
## 5. Context Window & Compaction
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Auto-compaction | Full (summarise older history) | -- | **MISSING** |
|
||||
| Manual `/compact` | Full (with instructions) | -- | **MISSING** |
|
||||
| Pre-compaction memory flush | Silent agentic turn | -- | **MISSING** |
|
||||
| Token tracking | Full (per-response, cost) | Input/output counters | **PARTIAL** |
|
||||
|
||||
**Critical gap** — without compaction, long conversations will hit token limits and fail.
|
||||
|
||||
---
|
||||
|
||||
## 6. Memory System
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Markdown memory files | `MEMORY.md` + daily logs | -- | **MISSING** |
|
||||
| `memory_search` tool | Semantic vector search | -- | **MISSING** |
|
||||
| `memory_get` tool | Read memory files | -- | **MISSING** |
|
||||
| Vector embeddings | OpenAI/Gemini/local | -- | **MISSING** |
|
||||
| Hybrid search (BM25 + vector) | Full | -- | **MISSING** |
|
||||
| Session memory indexing | Experimental | -- | **MISSING** |
|
||||
| QMD backend | Experimental | -- | **MISSING** |
|
||||
|
||||
OpenClaw has a sophisticated memory system. Flynn has none.
|
||||
|
||||
---
|
||||
|
||||
## 7. MCP (Model Context Protocol)
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| MCP tool servers | Not emphasised | Full (stdio transport) | **MATCH** |
|
||||
| MCP tool bridging | Not emphasised | Full (`mcp:{server}:{tool}`) | **MATCH** |
|
||||
| MCP server lifecycle | Not emphasised | Full (start/stop/restart) | **MATCH** |
|
||||
|
||||
Flynn actually has MCP support that OpenClaw doesn't emphasise — OpenClaw relies on its own native tool system and plugins instead.
|
||||
|
||||
---
|
||||
|
||||
## 8. Security & Safety
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Tool confirmation hooks | Full | Full (confirm/log/silent patterns) | **MATCH** |
|
||||
| Chat ID allowlists | Per-channel | Telegram only | **PARTIAL** |
|
||||
| DM pairing (unknown senders) | Full (pairing codes) | -- | **MISSING** |
|
||||
| Docker sandboxing | Full (per-session/agent/shared) | -- | **MISSING** |
|
||||
| Elevated mode | Host exec escape hatch | -- | **MISSING** |
|
||||
| Tool execution timeouts | Full (configurable) | 30s default | **MATCH** |
|
||||
| Output truncation | Full | 51KB | **MATCH** |
|
||||
| Gateway auth (token/password) | Full | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 9. Automation & Scheduling
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Cron jobs | Full (runtime + config) | Full (YAML config) | **MATCH** |
|
||||
| Webhooks | Full (inbound triggers) | -- | **MISSING** |
|
||||
| Gmail Pub/Sub | Full | -- | **MISSING** |
|
||||
| Heartbeat | Full | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 10. Apps & Companion Devices
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| macOS menu bar app | Full | -- | **MISSING** |
|
||||
| iOS node | Full (Canvas, Voice, Camera) | -- | **MISSING** |
|
||||
| Android node | Full (Canvas, Talk, Camera) | -- | **MISSING** |
|
||||
| Voice Wake / Talk Mode | Full (ElevenLabs) | -- | **MISSING** |
|
||||
| Camera / screen capture | Via nodes | -- | **MISSING** |
|
||||
| Location access | Via nodes | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 11. Skills & Plugins
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Skills system | Bundled/managed/workspace | Bundled/managed/workspace | **MATCH** |
|
||||
| Skill manifest | Full | Full (requirements, versioning) | **MATCH** |
|
||||
| ClawHub registry | Community skill registry | -- | **MISSING** |
|
||||
| Plugin system | Full (register tools + CLI commands) | -- | **MISSING** |
|
||||
| Workspace prompt injection | AGENTS.md, SOUL.md, TOOLS.md | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 12. Gateway & Infrastructure
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| WebSocket control plane | Full | WebSocket gateway (basic) | **PARTIAL** |
|
||||
| Control UI (web dashboard) | Full | -- | **MISSING** |
|
||||
| Tailscale Serve/Funnel | Full integration | -- | **MISSING** |
|
||||
| Remote gateway access | SSH tunnels + tailnet | -- | **MISSING** |
|
||||
| Health checks / doctor | 10+ checks | 10 checks | **MATCH** |
|
||||
| `onboard` wizard | Full guided setup | -- | **MISSING** |
|
||||
| Docker deployment | Full | -- | **MISSING** |
|
||||
| Nix deployment | Full | -- | **MISSING** |
|
||||
| Fly.io / Railway / Render | Supported | -- | **MISSING** |
|
||||
| Bonjour/mDNS discovery | Full | -- | **MISSING** |
|
||||
| Gateway lock | Full | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## 13. Chat Commands
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| `/status` | Full | Full | **MATCH** |
|
||||
| `/new` / `/reset` | Full | Full | **MATCH** |
|
||||
| `/compact` | Full | -- | **MISSING** |
|
||||
| `/think <level>` | Full (off to xhigh) | -- | **MISSING** |
|
||||
| `/verbose` | Full | -- | **MISSING** |
|
||||
| `/usage` | Full (off/tokens/full) | -- | **MISSING** |
|
||||
| `/local` / `/cloud` | -- | Full | Flynn-unique |
|
||||
| `/model` | -- | Full | Flynn-unique |
|
||||
|
||||
---
|
||||
|
||||
## 14. Miscellaneous
|
||||
|
||||
| Feature | OpenClaw | Flynn | Status |
|
||||
|---------|----------|-------|--------|
|
||||
| Streaming & chunking | Full (per-channel limits) | Full (streaming responses) | **MATCH** |
|
||||
| Typing indicators | Full | Telegram only | **PARTIAL** |
|
||||
| Presence tracking | Full | -- | **MISSING** |
|
||||
| Usage tracking / cost | Full | Basic token counters | **PARTIAL** |
|
||||
| Markdown rendering | Per-channel formatting | Basic (TUI + Telegram) | **PARTIAL** |
|
||||
| Media pipeline | Images/audio/video/transcription | -- | **MISSING** |
|
||||
| Group chat support | Full (mention gating, routing) | -- | **MISSING** |
|
||||
| Retry policy | Full (configurable) | -- | **MISSING** |
|
||||
| System prompt templating | AGENTS.md, SOUL.md, IDENTITY.md, USER.md | -- | **MISSING** |
|
||||
|
||||
---
|
||||
|
||||
## Summary Scorecard
|
||||
|
||||
| Category | Compared | Match | Partial | Missing |
|
||||
|----------|:--------:|:-----:|:-------:|:-------:|
|
||||
| Channels | 15 | 2 | 1 | 12 |
|
||||
| Model Providers | 14 | 5 | 2 | 7 |
|
||||
| Agent & Tools | 17 | 4 | 2 | 11 |
|
||||
| Sessions | 7 | 5 | 0 | 2 |
|
||||
| Context/Compaction | 4 | 0 | 1 | 3 |
|
||||
| Memory | 7 | 0 | 0 | 7 |
|
||||
| MCP | 3 | 3 | 0 | 0 |
|
||||
| Security | 8 | 3 | 1 | 4 |
|
||||
| Automation | 4 | 1 | 0 | 3 |
|
||||
| Companion Apps | 6 | 0 | 0 | 6 |
|
||||
| Skills/Plugins | 5 | 2 | 0 | 3 |
|
||||
| Gateway/Infra | 11 | 1 | 1 | 9 |
|
||||
| Chat Commands | 8 | 2 | 0 | 4 |
|
||||
| Misc | 9 | 1 | 3 | 5 |
|
||||
| **TOTAL** | **118** | **29 (25%)** | **11 (9%)** | **78 (66%)** |
|
||||
|
||||
---
|
||||
|
||||
## Top Priority Gaps (recommended order)
|
||||
|
||||
### P0 — Functionally Critical
|
||||
|
||||
1. **Context compaction** — Without this, long conversations hit token limits and break. Blocks real-world use for extended sessions.
|
||||
|
||||
2. **Memory system** — OpenClaw's markdown-based memory with vector search gives the assistant persistent knowledge across sessions. Flynn has nothing persistent beyond session history.
|
||||
|
||||
### P1 — High Impact
|
||||
|
||||
3. **Messaging channels (WhatsApp, Discord, Slack)** — Flynn has 2 of 15 channels. Adding the top 3 popular channels covers the majority of use cases.
|
||||
|
||||
4. **Web search tool** — `web_search` (Brave API) is a commonly-used agent capability Flynn lacks entirely.
|
||||
|
||||
5. **Background exec / process management** — OpenClaw's `process` tool lets agents manage long-running commands. Flynn's shell tool is fire-and-forget.
|
||||
|
||||
6. **Enhanced `web_fetch`** — Flynn's is basic HTTP GET; OpenClaw extracts markdown/text, caches responses, and handles JS-heavy sites via browser fallback.
|
||||
|
||||
### P2 — Important for Production
|
||||
|
||||
7. **Docker sandboxing** — Tool isolation for non-main sessions. Important for any multi-user or group-facing deployment.
|
||||
|
||||
8. **Multi-agent routing** — Isolated agents per workspace/sender with sub-agent spawning.
|
||||
|
||||
9. **Tool allow/deny and profiles** — Fine-grained control over which tools each agent/session can use.
|
||||
|
||||
10. **System prompt templating** — AGENTS.md, SOUL.md, IDENTITY.md, USER.md workspace injection for personality and behaviour customisation.
|
||||
|
||||
### P3 — Nice to Have
|
||||
|
||||
11. **Browser control (CDP)** — Powerful but complex; depends on use case.
|
||||
12. **Gemini provider (full)** — Currently a stub.
|
||||
13. **Additional model providers** — OpenRouter, Bedrock, etc.
|
||||
14. **Gateway auth** — Token/password auth for the WebSocket control plane.
|
||||
15. **Companion apps** — macOS/iOS/Android nodes (huge scope, niche audience).
|
||||
|
||||
---
|
||||
|
||||
## What Flynn Has That OpenClaw Doesn't Emphasise
|
||||
|
||||
- **Full MCP protocol support** with stdio transport, tool bridging, and server lifecycle management
|
||||
- **Model tier switching** via chat commands (`/local`, `/cloud`, `/model`)
|
||||
- **Gemini provider** (stub, but in the schema — OpenClaw removed non-Pi agent paths)
|
||||
- **SQLite session storage** (vs OpenClaw's JSONL files)
|
||||
Reference in New Issue
Block a user