A · 运行时架构分层

ZeroClaw 的运行时从输入到输出分为五个层级,每层通过 Trait 解耦,可独立替换。

graph TB subgraph INPUT["① 输入层 (Input Layer)"] CH1[Discord] & CH2[Telegram] & CH3[Matrix] & CH4[Email] CH5[CLI] & CH6[Webhook] & CH7[Voice] & CH8[30+ others] GW[Gateway REST/WebSocket] ACP[ACP JSON-RPC IDE] end subgraph CORE["② 核心处理层 (Core / Agent Loop)"] AL[Agent Loop] SC[Security Policy] SOP[SOP Engine] SCHED[Cron Scheduler] APPR[Approval Manager] end subgraph EXEC["③ 执行层 (Execution Layer)"] PROV[LLM Providers\nAnthropic / OpenAI / Ollama / 20+] TOOLS[Tools\nShell · Browser · HTTP · Hardware] MEM[Memory Engine\nVector + Keyword Hybrid] HOOK[Hook Runner\nTool Receipts] end subgraph INFRA["④ 基础设施层 (Infra)"] CFG[Config TOML] LOG[Logger] PLUG[WASM Plugins] HW[Hardware I2C/GPIO/SPI] end subgraph STORE["⑤ 存储层 (Storage)"] DB[(SQLite Memory)] VEC[(Vector Index)] FS[Filesystem Workspace] end INPUT --> CORE CORE --> EXEC EXEC --> INFRA INFRA --> STORE style INPUT fill:#1a2332,stroke:#f78166,color:#e6edf3 style CORE fill:#1a2332,stroke:#79c0ff,color:#e6edf3 style EXEC fill:#1a2332,stroke:#56d364,color:#e6edf3 style INFRA fill:#1a2332,stroke:#dea584,color:#e6edf3 style STORE fill:#1a2332,stroke:#8b949e,color:#e6edf3
① 输入层 — Channel Adapters + Gateway
discord telegram matrix email cli_input webhook voice slack gateway (REST/WS) acp (JSON-RPC)
② 核心层 — Agent Loop + Security + SOP
agent::loop_ agent::dispatcher agent::context_analyzer security approval sop cron routines trust verifiable_intent
③ 执行层 — Providers + Tools + Memory
providers tools (shell/browser/http) memory rag hooks skills skillforge multimodal
④ 基础设施层 — Config + Hardware + Plugins
config hardware peripherals plugins (WASM) platform observability health i18n
⑤ 存储层 — SQLite + Vector Index + Filesystem
SQLite (memory DB) Vector Index (built-in) Workspace FS identity store

B · Workspace Crate 依赖关系

ZeroClaw 使用 Cargo workspace 组织代码,主 crate 依赖以下独立库:

graph LR BIN["zeroclaw (bin)"] subgraph RUNTIME["zeroclaw-runtime"] RT[agent\nloop / dispatcher\nclassifier / memory_loader] end subgraph CHANNELS["zeroclaw-channels"] CH[Channel Adapters\ndiscord / telegram / matrix / email] end subgraph PROVIDERS["zeroclaw-providers"] PR[LLM Backends\nanthropic / openai / ollama / 20+] end subgraph TOOLS["zeroclaw-tools"] TL[Tool Implementations\nshell / browser / http / hardware] end subgraph MEMORY["zeroclaw-memory"] ME[Memory Engine\nSQLite + Vector Hybrid Search] end subgraph GATEWAY["zeroclaw-gateway"] GW[HTTP/WebSocket Server\nWeb Dashboard] end subgraph HARDWARE["zeroclaw-hardware"] HW[GPIO/I2C/SPI/USB\naardvark-sys bindings] end CFG["zeroclaw-config"] API["zeroclaw-api"] LOG["zeroclaw-log"] PLUG["zeroclaw-plugins"] TUI["zeroclaw-tui"] MACROS["zeroclaw-macros"] TCP["zeroclaw-tool-call-parser"] INFRA["zeroclaw-infra"] RK["robot-kit"] AS["aardvark-sys"] BIN --> RUNTIME & CHANNELS & PROVIDERS & TOOLS & MEMORY & GATEWAY & HARDWARE BIN --> CFG & API & LOG & PLUG & TUI RUNTIME --> CFG & LOG & MACROS & TCP & INFRA & MEMORY CHANNELS --> CFG & LOG & API PROVIDERS --> CFG & LOG & API TOOLS --> CFG & LOG & MEMORY HARDWARE --> RK & AS GATEWAY --> API & LOG & CFG style BIN fill:#f78166,color:#0d1117,stroke:#f78166 style RUNTIME fill:#1a2832,stroke:#79c0ff,color:#e6edf3 style CHANNELS fill:#1a2832,stroke:#56d364,color:#e6edf3 style PROVIDERS fill:#1a2832,stroke:#dea584,color:#e6edf3 style TOOLS fill:#1a2832,stroke:#56d364,color:#e6edf3 style MEMORY fill:#1a2832,stroke:#79c0ff,color:#e6edf3 style GATEWAY fill:#1a2832,stroke:#f78166,color:#e6edf3 style HARDWARE fill:#1a2832,stroke:#dea584,color:#e6edf3

B · Crate 职责详解

17 个 Workspace Crate 各司其职:

zeroclaw-runtime
Agent 核心运行时:Loop、Dispatcher、Classifier、Context Analyzer、History、Memory Loader、Security Policy
核心
zeroclaw-channels
所有通讯渠道的适配器:Discord、Telegram、Matrix、Email、Slack、Webhook、Voice
输入
zeroclaw-providers
LLM 后端抽象:Anthropic、OpenAI、Ollama 及 20+ 兼容接口,支持 fallback chain
执行
zeroclaw-tools
工具实现:Shell 执行、HTTP 客户端、浏览器控制、文件操作等
执行
zeroclaw-memory
全栈内存引擎:SQLite 持久化 + 内置向量嵌入(无外部依赖)+ 混合搜索
存储
zeroclaw-gateway
HTTP/WebSocket 网关:REST API、Web Dashboard、实时流式聊天
输入
zeroclaw-hardware
硬件抽象:GPIO / I2C / SPI / USB,支持 Raspberry Pi、STM32、Arduino、ESP32
硬件
zeroclaw-config
TOML 配置加载、验证与 schema 生成
基础
zeroclaw-api
共享数据类型、Trait 定义、API 契约(跨 crate 接口层)
基础
zeroclaw-plugins
WASM 插件系统:加载、沙箱执行、插件注册表
扩展
zeroclaw-tui
终端 UI:交互式聊天界面、日志面板、配置向导
UI
zeroclaw-log
结构化日志与可观测性(spans、tracing)
基础
zeroclaw-macros
过程宏:工具定义、Trait 派生、代码生成
基础
zeroclaw-tool-call-parser
LLM 输出的 Tool Call 解析器,处理流式和完整响应
执行
zeroclaw-infra
公共基础设施:错误类型、结果包装、异步工具函数
基础
robot-kit
机器人控制工具套件(与 aardvark-sys 配合用于嵌入式设备)
硬件
aardvark-sys
Aardvark USB I2C/SPI 适配器的底层 FFI 绑定
硬件

A · Agent 核心组件

Agent struct 是运行时核心,包含以下关键组件:

classDiagram class Agent { +model_provider: Box~dyn ModelProvider~ +model_name: String +temperature: f32 +tools: Vec~Tool~ +tool_specs: Vec~ToolSpec~ +tool_dispatcher: ToolDispatcher +memory: Arc~dyn MemoryBackend~ +memory_loader: MemoryLoader +history: ConversationHistory +security_summary: String +autonomy_level: AutonomyLevel +workspace_dir: PathBuf +approval_manager: Option~ApprovalManager~ +activated_tools: Vec~McpTool~ +hook_runner: Option~HookRunner~ +response_cache: Option~ResponseCache~ +builder() AgentBuilder +from_config_with_session_cwd_and_mcp() Agent +seed_history() +trim_history() +channel_handles() ChannelHandles } class AgentBuilder { +model_provider() +tools() +memory() +temperature() +workspace_dir() +security_summary() +approval_manager() +build() Agent } class AutonomyLevel { <<enum>> Supervised Autonomous Strict } class ModelProvider { <<trait>> +stream_chat() +complete() +name() str } class MemoryBackend { <<trait>> +store() +search() +recall() } Agent --> AgentBuilder Agent --> AutonomyLevel Agent --> ModelProvider Agent --> MemoryBackend