01 / Capability Radar
Framework scores across 8 dimensions
02 / Score Matrix
Dimension-by-dimension breakdown — click rows to compare
| Dimension | Nanobot | OpenClaw | NanoClaw | OpenFang | IronClaw | Lyra Now | Lyra Target |
|---|
03 / Category Leaders
Best-in-class per domain
5/5
Memory / Search
OpenClaw + IronClaw
5/5
Context Management
OpenClaw
5/5
Channel Count
OpenFang (40 adapters)
5/5
Channel Abstraction
OpenClaw (7-tier bindings)
5/5
Bus / Events
OpenClaw + OpenFang
5/5
LLM Providers
IronClaw (decorator chain)
5/5
Tool System
IronClaw + OpenFang
5/5
Plugin System
OpenClaw (typed SDK)
5/5
Security
OpenFang (16 layers) + IronClaw
5/5
Orchestration
OpenFang (workflow engine)
5/5
Observability
OpenClaw (diagnostic events)
5/5
Config / Hot-Reload
OpenClaw + ScalyClaw
5/5
Proactive Engagement
ScalyClaw (unique)
5/5
Readability
Nanobot + Lyra
04 / The "Chimera" Strategy
Best of each — ~2,170 LOC gives Lyra production-grade capabilities
Phase 1b~710 LOC
1
Provider Registry
Metadata-driven auto-detection via JSON/TOML
Nanobot#76
2
LLM Decorator Chain
Retry → SmartRoute → Failover → CircuitBreaker → Cache
IronClaw#104
3
Hybrid RRF Search
FTS always works, vector boosts — Reciprocal Rank Fusion
IronClaw#83
4
ContextEngine Protocol
Pluggable token-budget assembly — lazy-load recall
OpenClaw#83
5
Smart Routing Decorator
Complexity classifier → cheap model for trivial, powerful for complex
IronClaw#134
6
Runtime Agent Config
!config command — live-tune temperature/model/style without restart
ScalyClaw#135
Phase 2~760 LOC
5
Lane-Based Queue
Cron lane separate — never blocks user messages
OpenClaw#112
6
Binding Resolution Tiers
Exact match → wildcard → default agent
OpenClaw#112
7
Tool Approval Levels
Never / UnlessAutoApproved / Always
IronClaw#106
8
Credential Proxy
Plugins declare secret names — hub injects at boundary
IronClaw#106
9
Diagnostic Events
Stuck detection, token tracking, per-session observability
OpenClaw#44
10
Prompt Injection Scanner
Block / Warn / Review / Sanitize severity levels
OpenFangfuture
11
Proactive Engagement Engine
2-phase: cron signal scan (no LLM) → eval job (LLM only when warranted)
ScalyClawfuture
12
Command Shield
Deterministic blocklist/allowlist — no LLM, fail-closed, zero latency
ScalyClawfuture
05 / Pattern → Issue Dependency Flow
Which patterns unblock which Lyra issues
flowchart TD
subgraph FW["Source Frameworks"]
IC["IronClaw"]
OC["OpenClaw"]
NC["NanoClaw"]
NB["Nanobot"]
SC["ScalyClaw"]
end
subgraph P0["Phase 0 — Bot Core Parity #101"]
I104["#104 Circuit Breaker"]
I106["#106 Plugin System"]
end
subgraph P1b["Phase 1b — Agent Core #73"]
I76["#76 Anthropic SDK Agent"]
I75["#75 Persona System"]
I134["#134 Smart Routing"]
I135["#135 Runtime Config"]
I67["#67 Session Persistence"]
I83["#83 Memory Integration"]
I99["#99 Hub Command Sessions"]
I112["#112 Hub Refactor"]
end
subgraph P2["Phase 2"]
I48["#48 Bus Abstraction"]
I44["#44 Event Monitoring"]
end
IC -->|"decorator chain"| I104
IC -->|"smart routing"| I134
IC -->|"approval levels"| I106
IC -->|"credential proxy"| I106
IC -->|"RRF fusion"| I83
OC -->|"append-only JSONL"| I67
OC -->|"lane-based queue"| I112
OC -->|"diagnostic events"| I44
NC -->|"dual cursors"| I67
NC -->|"self-register factory"| I106
NB -->|"split queues"| I112
NB -->|"per-session Task"| I112
SC -->|"runtime config"| I135
I76 -->|"unblocks"| I134
I76 -->|"unblocks"| I135
I75 -->|"persona path"| I135
P0 -->|"unblocks"| I67
P0 -->|"unblocks"| I83
I83 -->|"unblocks"| I99
I112 -->|"unblocks"| I48
classDef fw fill:#0f2a3a44,stroke:#22d3ee,stroke-width:1.5px
classDef issue fill:#0d1f1a33,stroke:#34d399,stroke-width:1px
classDef new fill:#1a2a0033,stroke:#facc15,stroke-width:1.5px
class IC,OC,NC,NB,SC fw
class I104,I106,I67,I83,I99,I112,I48,I44,I76,I75 issue
class I134,I135 new
06 / Lyra Today
What we have vs what we're building
Already solid
✓RoutingKey (platform, bot_id, user_id)Matches OpenClaw session key pattern
✓asyncio single event loopCorrect foundation — Nanobot validates this
✓Protocol-based adapters (ChannelAdapter)Matches all frameworks' structural approach
✓WebSocket via aiogram + discord.pyBest-practice ingestion for both platforms
✓roxabi-memory (SQLite + FTS5 + vectors)Best-in-class storage stack. Needs RRF fusion.
✓Bounded asyncio.Queue (size 100)Better than Nanobot's unbounded queue
✓Python-first paradigmHighest readability score alongside Nanobot
Being built
→Per-session asyncio.Task (has per-user Lock)No cancellation, no per-turn timeout#112
→Split inbound / outbound queuesSingle queue limits backpressure control#112
→Crash recovery (JSONL + dual cursors)Pool.history is volatile, lost on restart#67
→LLM decorator chain (retry + CB + cache)No resilience on Anthropic API failures#104
→Tool approval levels (Never/Auto/Always)Mandatory for plugin safety#106
→Credential proxy at hub boundaryPlugins should never see raw API keys#106
→RRF fusion in hybrid searchCurrently naive score averaging in roxabi-memory#83