openclawproject-overviewarchitectureai-agent

项目背景

OpenClaw 是一个多通道 AI Agent 平台,基于 Pi SDK 构建。它允许开发者通过多种渠道(WhatsApp、Discord、Telegram 等)与 AI Agent 交互,并提供了完整的记忆、沙箱、扩展等生态系统。

核心功能

mindmap
  root((OpenClaw))
    Multi-Channel
      WhatsApp
      Discord
      Telegram
      Slack
      iMessage
      etc.
    Memory System
      Vector Search
      Hybrid Search
      Agentic Flush
      Multi-layer Storage
    Sandbox
      Code Execution
      File System
      Security Isolation
    Extensions
      VS Code Plugin
      Skills System
      Custom Channels

技术栈

层级技术说明
底层引擎Pi SDK@mariozechner/pi-* 包
核心实现TypeScriptNode.js 22+
数据存储SQLiteFTS5, 可选 sqlite-vec
嵌入模型OpenAI/Gemini/Local多 Provider 支持
外部服务QMDTypeScript CLI 工具

架构特点

1. 分层架构

flowchart TB
    subgraph "应用层"
        A[Channels] --> B[Agent Runtime]
        B --> C[Skills]
    end
    
    subgraph "核心层"
        D[Memory System] --> E[Pi SDK]
        F[Sandbox] --> E
        G[Extensions] --> E
    end
    
    subgraph "基础设施"
        H[SQLite]
        I[File System]
        J[LLM APIs]
    end
    
    B --> D
    E --> J
    D --> H
    D --> I

2. 依赖关系

pi-mono (底层引擎)
    ↓ npm 包
openclaw (集成层)
    ↓ 扩展
channels / skills / extensions

Memory 子系统定位

在 OpenClaw 中,Memory 系统负责长期记忆的存储和检索,是 Agent 能够”记住”跨会话信息的关键组件。

核心职责

  1. 向量索引: 将 Markdown 文档索引为可语义搜索的向量
  2. 混合搜索: 结合向量相似度和 BM25 全文搜索
  3. 智能同步: 文件变更实时感知,增量索引
  4. Agentic Flush: 上下文压缩前自动保存重要记忆

与其他组件的关系

flowchart LR
    A[Agent] -->|调用| B[memory_search]
    B -->|查询| C[Memory System]
    C -->|读取| D[MEMORY.md]
    C -->|读取| E[memory/*.md]
    A -->|写入| F[Memory Flush]
    F -->|写入| G[memory/YYYY-MM-DD.md]
    G -->|索引| C

与同类项目对比

特性OpenClawClaude DesktopLangChain Memory
持久化✅ 文件系统❌ 会话级⚠️ 依赖外部存储
语义搜索✅ Hybrid❌ 无✅ 向量存储
自动保存✅ Agentic Flush❌ 无❌ 无
多层级✅ 3层❌ 1层⚠️ 可配置
双后端✅ Builtin+QMD❌ 无❌ 无

文档索引

Memory 系统

其他模块(待补充)

  • Sandbox 系统
  • Channels 架构
  • Skills 系统