乐于分享
好东西不私藏

OpenClaw小龙虾架构全面解析

OpenClaw小龙虾架构全面解析

一、项目概述

1.1 什么是OpenClaw小龙虾

OpenClaw小龙虾是OpenClaw开源项目的中文社区版本,专注于为国内用户提供私有化部署的AI智能助手解决方案。它不是简单的翻译版本,而是针对国内网络环境和使用习惯进行了深度优化和定制。

核心定位:

  • • 私有化部署 - 数据完全自主可控
  • • 中文本地化 - 文档、界面、配置全面汉化
  • • 多渠道接入 - 飞书、钉钉、企业微信、QQ等国内主流平台
  • • 开源免费 - MIT协议,无使用限制

1.2 核心特性详解

多模型支持:OpenClaw小龙虾支持国内外主流AI模型,用户可以根据需求灵活选择:

  • • 
  • Claude系列
  •  (Anthropic)
    • • claude-opus-4-5: 最强推理能力,适合复杂任务
    • • claude-3-5-sonnet: 平衡性能和成本
    • • 适合场景: 深度分析、创意写作、代码开发
  • • 
  • GLM系列
  •  (智谱AI)
    • • glm-5: 中文优化,响应快速
    • • glm-4-plus: 增强推理能力
    • • 适合场景: 日常对话、快速问答、中文任务
  • • 
  • DeepSeek系列
    • • deepseek-chat: 代码能力强,性价比高
    • • 适合场景: 编程任务、技术问答

多渠道接入:OpenClaw小龙虾支持多渠道统一接入,一套系统覆盖所有主流平台:

渠道
插件类型
状态
特性
飞书
官方插件
✅ 稳定
富文本、卡片、文件、审批
钉钉
官方插件
✅ 稳定
Stream模式、企业通讯录
企业微信
官方插件
✅ 稳定
企业通讯录、客户管理
QQ
社区插件
✅ 可用
图片、语音、文件、视频
Telegram
内置
✅ 稳定
Markdown、按钮、内联查询
Signal
内置
✅ 稳定
端到端加密

技能系统:技能是OpenClaw小龙虾的核心扩展机制,通过技能可以实现无限可能:

  • • 图像生成: 集成OpenAI DALL-E、Google Imagen、Replicate等
  • • 语音合成: Edge TTS、Azure TTS、ElevenLabs等
  • • 文档管理: 飞书文档、Notion、Obsidian等
  • • 代码执行: Python、Node.js、Shell等
  • • 网络搜索: Brave Search、Tavily、Google Search等
  • • 自动化工具: GitHub、邮件、定时任务等

二、系统架构深度解析

2.1 三层架构设计

OpenClaw小龙虾采用经典的三层架构设计,实现关注点分离和松耦合:

第一层: 用户接入层 (Channel Layer)

职责: 多渠道统一接入,消息格式转换

核心功能:

  • • 监听各渠道消息
  • • 统一消息格式
  • • 用户身份识别
  • • 消息路由分发

实现方式:

  • • 每个渠道一个独立插件
  • • 统一的消息接口
  • • 异步消息处理

第二层: 网关层 (Gateway Layer)

职责: 会话管理、配置中心、消息路由

核心功能:

  • • 会话生命周期管理
  • • 配置热加载
  • • 插件生命周期管理
  • • 消息队列和分发
  • • 定时任务调度
  • • API代理和限流

实现方式:

  • • Node.js + Express
  • • 内存会话池
  • • 事件驱动架构

第三层: 智能核心层 (Agent Layer)

职责: AI推理、技能执行、记忆管理

核心功能:

  • • 多模型统一接口
  • • 工具调用和执行
  • • 技能系统管理
  • • 会话上下文维护
  • • 记忆系统(短期+长期)

实现方式:

  • • Python + LangChain
  • • 工具注册机制
  • • 记忆文件系统

2.2 核心组件详解

2.2.1 Gateway网关

配置文件: ~/.openclaw/openclaw.json

核心配置项:

{  "gateway": {    "host": "0.0.0.0",    "port": 23456,    "sessionTimeout": 7200000,    "maxSessions": 100  },  "channels": {    "feishu": {      "enabled":true,      "app_id": "cli_xxx",      "app_secret": "xxx"    },    "qqbot": {      "enabled":true,      "uin": "123456789"    }  },  "agent": {    "model": "anthropic/claude-opus-4-5",    "tools": ["read", "write", "exec", "web_search"],    "skills": ["image-gen", "wechat-publish"]  }}

主要功能模块:

  1. 1. 
  2. 会话管理器
    • • 会话创建和销毁
    • • 会话状态持久化
    • • 会话超时清理
    • • 会话隔离机制
  3. 2. 
  4. 配置管理器
    • • JSON配置解析
    • • 环境变量替换
    • • 配置热更新
    • • 配置验证
  5. 3. 
  6. 插件管理器
    • • 插件加载和卸载
    • • 插件依赖管理
    • • 插件生命周期钩子
    • • 插件健康检查
  7. 4. 
  8. 任务调度器
    • • Cron定时任务
    • • 延迟任务
    • • 重复任务
    • • 任务持久化

2.2.2 Agent智能助手

核心能力矩阵:

工具类别
工具名称
功能说明
使用场景
文件操作
read
读取文件内容
查看文档、代码
write
写入文件
创建文档、保存数据
edit
编辑文件
修改代码、更新配置
命令执行
exec
执行Shell命令
系统操作、脚本运行
process
管理后台进程
长时间任务、守护进程
网络访问
web_search
网络搜索
信息查询、新闻获取
web_fetch
网页抓取
内容提取、数据采集
browser
浏览器控制
网页操作、截图
AI能力
image_gen
图像生成
AI绘画、创意设计
tts
语音合成
语音播报、音频内容
高级功能
sessions_spawn
子代理
并行任务、专项处理
memory_search
记忆检索
历史查询、上下文回顾

工具调用机制:

  1. 1. 用户请求 → Agent分析
  2. 2. 决定使用工具 → 生成工具调用
  3. 3. Gateway执行工具 → 返回结果
  4. 4. Agent处理结果 → 生成回复

2.2.3 Skills技能系统

技能目录结构:

~/.openclaw/skills/├── skill-image-gen/           # 图像生成技能│   ├── SKILL.md              # 技能说明文档│   ├── scripts/              # 脚本文件│   │   ├── generate.py       # 主脚本│   │   └── utils.py          # 工具函数│   ├── references/           # 参考文档│   │   └── api.md            # API文档│   └── EXTEND.md             # 扩展配置├── skill-wechat-publish/      # 微信发布技能│   ├── SKILL.md│   ├── scripts/│   │   ├── wechat-api.ts     # API发布│   │   └── wechat-browser.ts # 浏览器发布│   └── references/│       └── wechat-api.md└── skill-weather/             # 天气查询技能    ├── SKILL.md    └── scripts/        └── weather.py

SKILL.md文档格式:

---name: skill-image-gendescription: AI图像生成技能,支持OpenAI、Google、Replicate等---# AI图像生成技能## 功能说明支持多种AI模型生成图片...## 使用方法\`\`\`bashpython scripts/generate.py --prompt "描述" --model "dall-e-3"\`\`\`## 配置要求需要配置API密钥...## 示例生成一张小龙虾图片...

技能加载机制:

  1. 1. Gateway启动时扫描skills目录
  2. 2. 读取每个技能的SKILL.md
  3. 3. 解析技能元数据(name, description)
  4. 4. 注册到技能列表
  5. 5. Agent根据需要调用

2.2.4 Memory记忆系统

记忆文件组织:

workspace/├── MEMORY.md                 # 长期记忆(重要信息)│   - 用户偏好│   - 重要决策│   - 项目信息│   - 技能配置├── memory/                   # 中期记忆(日常记录)│   ├── 2025-01-13.md        # 按日期存储│   ├── 2025-01-12.md│   └── heartbeat-state.json # 心跳状态├── AGENTS.md                 # 工作空间规则│   - 代码风格│   - 提交规范│   - 工作流程├── USER.md                   # 用户信息│   - 基本信息│   - 沟通偏好│   - 时区设置├── SOUL.md                   # 助手人格│   - 性格特征│   - 回复风格│   - 专业领域└── TOOLS.md                  # 工具配置    - 常用路径    - 设备别名    - API端点

记忆检索机制:

  1. 1. 关键词检索: 通过memory_search搜索MEMORY.md和memory/*.md
  2. 2. 时间范围: 最近N天的memory文件
  3. 3. 相关性排序: 基于语义相似度
  4. 4. 上下文加载: 只加载相关片段

记忆更新策略:

  • • 重要信息 → MEMORY.md (长期)
  • • 日常记录 → memory/YYYY-MM-DD.md (中期)
  • • 当前会话 → 会话上下文 (短期)

2.3 工作原理详解

2.3.1 消息处理完整流程

1. 用户发送消息(QQ/飞书/钉钉...)   │   ├─ 文本消息: "帮我生成一张小龙虾图片"   ├─ 图片消息: <用户发送图片>   └─ 语音消息: <用户发送语音>2. Channel Plugin接收   │   ├─ QQ: napcat/lagrange接收   ├─ 飞书: webhook接收   └─ 钉钉: stream接收3. Gateway路由到Session   │   ├─ 查找或创建Session ID   ├─ 加载会话上下文   └─ 检查会话权限4. Agent处理消息   │   ├─ 加载记忆(MEMORY.md + memory/)   ├─ 分析用户意图   ├─ 决定使用工具   │   ├─ 调用skill-image-gen   │   └─ 上传图片到COS   └─ 生成回复5. Gateway返回消息   │   ├─ 格式化消息内容   ├─ 添加富媒体标签   └─ 返回给Channel6. Channel Plugin发送   │   ├─ QQ: 发送图片/文本   ├─ 飞书: 发送卡片/消息   └─ 钉钉: 发送markdown

2.3.2 会话隔离机制

为什么需要会话隔离?

  • • 不同用户隐私保护
  • • 上下文不混淆
  • • 资源独立管理

隔离实现:

每个会话独立拥有:

  • • 会话ID: session_${channel}_${userId}
  • • 上下文: 最近N轮对话
  • • 记忆: 独立的memory文件
  • • 配置: 可覆盖全局配置
  • • 资源: 独立的文件空间

会话类型:

  1. 1. 
  2. 主会话(Main Session)
    • • 用户直接对话
    • • 完整上下文
    • • 长期记忆
  3. 2. 
  4. 子会话(Isolated Session)
    • • 后台任务
    • • 独立上下文
    • • 临时记忆
  5. 3. 
  6. 群聊会话(Group Session)
    • • 群组对话
    • • 共享上下文
    • • 群记忆文件

2.3.3 技能执行流程

以图像生成技能为例:

1. 用户请求: "生成一张小龙虾图片"   │2. Agent识别技能需求   │   └─ 匹配到skill-image-gen3. 加载技能   │   ├─ 读取SKILL.md   ├─ 检查依赖   └─ 验证配置4. 执行脚本   │   ├─ python scripts/generate.py \   │     --prompt "小龙虾" \   │     --model "dall-e-3" \   │     --size "1024x1024"   │5. 上传图片   │   ├─ 保存到本地   ├─ 上传到腾讯云COS   └─ 获取图片URL6. 返回结果   │   └─ 图片URL: https://xxx.cos.ap-guangzhou.myqcloud.com/...7. Agent回复   │   └─ "小龙虾图片已生成 <qqimg>URL</qqimg>"

三、部署方案对比

3.1 本地开发环境

适用场景: 个人使用、开发测试、学习研究

优点:

  • • 快速启动,易于调试
  • • 完全免费,无服务器成本
  • • 本地文件直接访问
  • • 方便开发和测试

缺点:

  • • 需要保持电脑开启
  • • 性能受限于本机配置
  • • 网络依赖本机连接
  • • 不适合团队使用

部署步骤:

# 1. 安装Node.js 18+# 下载: https://nodejs.org/# 2. 安装OpenClawnpm install -g openclaw-cn# 3. 初始化配置openclaw-cn init# 4. 编辑配置文件notepad ~/.openclaw/openclaw.json# 5. 启动Gatewayopenclaw-cn gateway start# 6. 查看状态openclaw-cn status

3.2 云服务器部署

适用场景: 团队使用、生产环境、7x24运行

推荐配置:

配置项
最低配置
推荐配置
说明
CPU
1核
2核+
影响并发处理能力
内存
2GB
4GB+
影响会话数量
硬盘
20GB
40GB SSD
存储日志和文件
带宽
1Mbps
5Mbps+
影响响应速度
系统
Ubuntu 20.04
Ubuntu 22.04
LTS版本更稳定

部署步骤:

# 1. 安装Node.jscurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt-get install -y nodejs# 2. 安装OpenClawsudo npm install -g openclaw-cn# 3. 创建服务用户sudo useradd -r -s /bin/bash openclaw# 4. 配置systemd服务sudo nano /etc/systemd/system/openclaw.service

systemd配置文件:

[Unit]Description=OpenClaw Gateway ServiceAfter=network.target[Service]Type=simpleUser=openclawWorkingDirectory=/home/openclawExecStart=/usr/bin/openclaw gateway startRestart=alwaysRestartSec=10StandardOutput=syslogStandardError=syslogSyslogIdentifier=openclaw[Install]WantedBy=multi-user.target

启动和管理:

# 重载配置sudo systemctl daemon-reload# 启用开机自启sudo systemctl enable openclaw# 启动服务sudo systemctl start openclaw# 查看状态sudo systemctl status openclaw# 查看日志sudo journalctl -u openclaw -f

3.3 Docker部署

适用场景: 容器化环境、快速部署、横向扩展

Dockerfile:

FROM node:18-alpine# 安装依赖RUN apk add --no-cache \    python3 \    py3-pip \    git \    curl \    bash# 安装OpenClawRUN npm install -g openclaw-cn# 创建工作目录WORKDIR /appRUN mkdir -p /root/.openclaw# 暴露端口EXPOSE 23456# 健康检查HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \    CMD curl -f http://localhost:23456/health || exit 1# 启动命令CMD ["openclaw", "gateway", "start"]

docker-compose.yml:

version: &#x27;3.8&#x27;services:  openclaw:    build: .    container_name: openclaw    restart: always    ports:      - "23456:23456"    volumes:      - ./config:/root/.openclaw      - ./workspace:/app/workspace      - ./logs:/var/log/openclaw    environment:      - NODE_ENV=production      - TZ=Asia/Shanghai    networks:      - openclaw-networknetworks:  openclaw-network:    driver: bridge

启动和管理:

# 构建镜像docker-compose build# 启动服务docker-compose up -d# 查看日志docker-compose logs -f# 重启服务docker-compose restart# 停止服务docker-compose down

四、最佳实践指南

4.1 安全加固

API密钥管理:

# ❌ 错误: 硬编码在配置文件{  "agent": {    "api_key": "sk-ant-xxxxx"  # 危险!  }}# ✅ 正确: 使用环境变量{  "agent": {    "api_key": "${ANTHROPIC_API_KEY}"  }}# 设置环境变量export ANTHROPIC_API_KEY="sk-ant-xxxxx"

权限控制:

{  "security": {    "enabled":true,    "allowedTools": [      "read", "write", "edit",      "web_search", "web_fetch"    ],    "deniedTools": [      "elevated_exec"  # 禁止提权执行    ],    "sandbox": {      "enabled":true,      "allowedPaths": [        "~/.openclaw/workspace",        "/tmp/openclaw"      ],      "deniedPaths": [        "/etc",        "/root",        "~/.ssh"      ]    }  }}

网络安全:

{  "gateway": {    "host": "127.0.0.1",  // 只监听本地    "port": 23456,    "auth": {      "enabled":true,      "type": "bearer",      "token": "${GATEWAY_TOKEN}"    },    "rateLimit": {      "enabled":true,      "windowMs": 60000,      "maxRequests": 100    }  }}

4.2 性能优化

模型选择策略:

{  "agent": {    "model": "zai/glm-5",  // 默认快速模型    "modelOverrides": {      "coding": "deepseek/deepseek-chat",  // 代码任务      "analysis": "anthropic/claude-opus-4-5",  // 深度分析      "creative": "anthropic/claude-3-5-sonnet"  // 创意写作    },    "fallback": {      "enabled":true,      "model": "zai/glm-4-plus",  // 备用模型      "maxRetries": 3    }  }}

会话池优化:

{  "gateway": {    "sessionPool": {      "enabled":true,      "maxSize": 50,      "idleTimeout": 1800000,  // 30分钟      "cleanupInterval": 300000  // 5分钟清理一次    },    "contextWindow": {      "maxMessages": 20,  // 最多保留20轮对话      "maxTokens": 4000   // 最多4000 tokens    }  }}

缓存策略:

{  "cache": {    "enabled":true,    "skills": {      "ttl": 3600000,  // 1小时      "maxSize": "100MB"    },    "web": {      "ttl": 600000,  // 10分钟      "maxSize": "50MB"    },    "image": {      "ttl": 86400000,  // 24小时      "maxSize": "500MB"    }  }}

4.3 监控告警

日志配置:

{  "logging": {    "level": "info",  // debug/info/warn/error    "file": "~/.openclaw/logs/openclaw.log",    "maxSize": "10MB",    "maxFiles": 5,    "format": "json",    "console":true  }}

健康检查:

# 添加到cron定时任务*/5 * * * * curl -f http://localhost:23456/health || systemctl restart openclaw# 或使用supervisor[program:openclaw]command=openclaw gateway startautostart=trueautorestart=truestartretries=3

告警通知:

{  "alert": {    "enabled":true,    "channels": ["feishu", "email"],    "rules": [      {        "type": "error_rate",        "threshold": 0.1,        "window": 300      },      {        "type": "response_time",        "threshold": 5000,        "window": 60      }    ]  }}

五、常见问题与解决

5.1 Gateway启动失败

问题openclaw gateway start 启动失败

排查步骤:

# 1. 检查端口占用netstat -tulpn | grep 23456lsof -i :23456# 2. 检查配置文件cat ~/.openclaw/openclaw.jsonopenclaw config validate# 3. 查看错误日志tail -f ~/.openclaw/logs/error.log# 4. 检查文件权限ls -la ~/.openclaw/chmod -R 755 ~/.openclaw# 5. 尝试前台运行openclaw gateway start --foreground

5.2 模型调用失败

问题: AI模型不回复或报错

解决方案:

# 1. 检查API Key配置env | grep API_KEYcat ~/.openclaw/openclaw.json | grep api_key# 2. 测试API连接curl https://api.anthropic.com/v1/messages \  -H "x-api-key: $ANTHROPIC_API_KEY" \  -H "content-type: application/json" \  -d &#x27;{"model":"claude-3-5-sonnet-20241022","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}&#x27;# 3. 切换到国内模型# 编辑配置文件: "model": "zai/glm-5"# 4. 检查余额和配额# 登录对应平台查看

5.3 渠道消息收不到

问题: 用户发消息无响应

排查方法:

# 1. 检查渠道配置openclaw config get channels.feishu# 2. 检查插件状态openclaw status# 3. 查看渠道日志tail -f ~/.openclaw/logs/feishu.log# 4. 重启渠道openclaw restart --channel feishu# 5. 测试webhookcurl -X POST http://localhost:23456/webhook/feishu \  -H "Content-Type: application/json" \  -d &#x27;{"test": true}&#x27;

5.4 技能执行失败

问题: 调用技能报错

解决步骤:

# 1. 检查技能目录ls -la ~/.openclaw/skills/# 2. 查看技能文档cat ~/.openclaw/skills/skill-image-gen/SKILL.md# 3. 手动测试技能cd ~/.openclaw/skills/skill-image-genpython scripts/generate.py --test# 4. 检查依赖pip list | grep pillownpm list | grep canvas# 5. 查看详细错误grep "skill-image-gen" ~/.openclaw/logs/error.log

六、未来规划

6.1 短期目标(1-2个月)

  • • 微信渠道: 支持个人号和公众号接入
  • • 语音识别: 集成Whisper实现STT
  • • 多模态: 支持图片理解、视频分析
  • • Web UI: 提供可视化管理界面

6.2 中期目标(3-6个月)

  • • 知识库: 集成向量数据库,实现RAG
  • • Agent市场: 技能分享和交易平台
  • • 协作模式: 多Agent协作处理复杂任务
  • • 移动端: iOS和Android客户端

6.3 长期愿景(6-12个月)

  • • AGI探索: 自主学习和能力进化
  • • 去中心化: P2P网络,分布式部署
  • • 硬件集成: IoT设备控制
  • • 企业版: 多租户、权限管理、审计日志

七、总结

OpenClaw小龙虾通过三层架构设计、丰富的技能系统、完善的记忆机制和多渠道支持,为用户提供了一个功能强大、易于扩展、私有化部署的AI助手解决方案。

核心优势:

  • • 功能强大 - 丰富的工具和技能生态
  • • 易于扩展 - 模块化设计,插件化架构
  • • 私有部署 - 数据安全,完全自主可控
  • • 中文本地化 - 文档、界面、配置全面汉化

适用场景:

  • • 个人AI助手 - 日常对话、信息管理、任务自动化
  • • 团队协作工具 - 知识管理、流程自动化、通知提醒
  • • 企业自动化 - 客服机器人、数据处理、内容生成
  • • 开发测试平台 - AI应用开发、模型测试、技能开发

主要的相关资源:

  • • 官网: https://clawd.org.cn
  • • 文档: https://clawd.org.cn/docs
  • • GitHub: https://github.com/jiulingyun/openclaw-cn
  • • 社区: Discord / GitHub Discussions
  • ......