← 返回首页

写在前面

作为一名程序员,你是否有过这些困惑?

如果你有以上任意一个需求,这篇文章或许能给你一个不一样的答案。


OpenClaw 是什么?

OpenClaw 是一个开源的个人 AI 助手框架,你可以把它理解为一个"运行在你自己服务器上的 AI 助手"。

它不是另一个聊天机器人,而是一个可深度定制的 AI Agent 平台

官方 slogan 写得挺有意思:

OpenClaw is a personal AI assistant you run on your own devices.


为什么选择 OpenClaw?

先对比一下市面上的主流方案:

特性 OpenClaw ChatGPT Claude Cursor
部署方式 本地/私有 OpenAI 云 Anthropic 云 本地
数据隐私 ✅ 完全本地 ❌ 上传云端 ❌ 上传云端 ✅ 本地
多渠道 ✅ 10+ 渠道 ❌ 仅官方 ❌ 仅官方 ❌ 仅 IDE
可扩展性 ✅ 开源无限 ⚠️ GPTs 有限 ⚠️ 有限 ⚠️ IDE 插件
模型选择 ✅ 任意模型 ❌ 仅 OpenAI ❌ 仅 Anthropic ✅ 多种
开源 ✅ 100% ⚠️ 部分

5 大核心优势

1. 极致隐私 🔒

你的对话数据、文件、偏好设置,都留在你自己部署的服务器上。不依赖任何第三方云服务,数据完全可控。

2. 多渠道统一 📱

一个 AI 助手,同时管理多个渠道:

不用每次在不同平台重复配置,一次部署,处处可用

多渠道展示

📌 上图:PR Review 场景,AI 在 Telegram 上自动回复代码审查意见

3. 无限扩展 🔌

OpenClaw 采用 Skills 机制,你可以:

Skills 示例

📌 上图:红酒库存管理 Skill,AI 通过对话管理库存

4. 长期记忆 🧠

不同于 ChatGPT 每次都是新对话,OpenClaw 支持:

真正的"记得住"的 AI 助手。

5. 完全开源 📦


核心功能拆解

下面我们深入看看 OpenClaw 的架构,了解它是怎么工作的。

1. 网关 - 控制平面

网关是整个系统的核心,负责:

// Gateway 核心逻辑简化版
class 网关 {
  async handleMessage(channel: string, user: string, message: string) {
    // 1. 获取用户会话
    const session = await sessionManager.getOrCreate({ channel, user });
    
    // 2. 构建 Prompt(包含记忆)
    const prompt = await memory.buildPrompt(session, message);
    
    // 3. 调用 AI 模型
    const response = await agent.complete(prompt);
    
    // 4. 通过原渠道发送回复
    await channel.send(user, response);
  }
}

2. Channel - 消息通道

Channel 是 OpenClaw 与外部世界连接的桥梁。目前支持 10+ 种渠道:

每个 Channel 都是一个独立的模块,通过统一接口接入:

// Channel 抽象
abstract class Channel {
  // 接收消息
  abstract onMessage(handler: (msg: Message) => Promise<void>): void;
  
  // 发送消息
  abstract send(to: string, content: Content): Promise<void>;
}

以飞书为例,只需配置 App ID 和 Secret,就能接入:

# 飞书配置示例
feishu:
  app_id: cli_xxxxx
  app_secret: xxxxxxxxx
  webhook: https://open.feishu.cn/xxx

3. Skills - 技能系统

Skills 是 OpenClaw 的扩展机制。你可以把它理解为"插件"或"技能包"。

社区 Skills

官方和社区提供了一些开箱即用的 Skills:

自定义 Skill

自己写一个 Skill 也很简单,只需一个 SKILL.md 文件:

# My Custom Skill

## 功能
帮我查天气

## tools
- get_weather: 查询城市天气

然后在配置中启用:

skills:
  - weather
  - my-custom-skill

4. Memory - 记忆系统

OpenClaw 的记忆系统分为三层:

┌─────────────────────────────────────┐
│           短期记忆                    │
│     (当前会话上下文,内存中)          │
└─────────────────┬───────────────────┘
                  │
                  ▼
┌─────────────────────────────────────┐
│           长期记忆                    │
│    (向量数据库,持久化存储)          │
└─────────────────┬───────────────────┘
                  │
                  ▼
┌─────────────────────────────────────┐
│           文件记忆                    │
│    (从文件系统读取上下文)            │
└─────────────────────────────────────┘
// 记忆检索示例
const results = await memory.search("你上次说的那个项目", {
  limit: 5,        // 返回 5 条
  threshold: 0.7   // 相似度阈值
});

快速上手

说了这么多,来点实际的。

安装

# 1. 安装
npm install -g openclaw@latest

# 2. 初始化(交互式配置)
openclaw onboard --install-daemon

# 3. 启动 Gateway
openclaw gateway --port 18789

配置渠道(以飞书为例)

# 添加飞书渠道
openclaw channel add feishu

然后按提示配置:

  1. 创建飞书应用:https://open.feishu.cn/
  2. 获取 App ID 和 App Secret
  3. 配置权限(消息、用户等)
  4. 填入配置,完成!

测试

# 发送测试消息
openclaw message send --to 你的用户ID --message "你好,我是你的 AI 助手"

总结

OpenClaw 可能不是最简单的 AI 助手,但它是最可控、最可扩展、最隐私的方案。

如果你:

不妨试试 OpenClaw。

当然,如果你就想要一个"打开就能用"的聊天工具,ChatGPT/Claude 依然是最好的选择。

工具没有好坏,只有适不适合。


如果你觉得这篇文章有帮助,欢迎转发给需要的朋友。有问题评论区见。

下篇预告:《OpenClaw 核心架构深度解析》,敬请期待。