OpenClaw 完全指南:搭建你的本地化 AI 助手中枢
my-skill/├── skill.yaml # 元数据配置├── main.js # 入口文件├── README.md # 文档└── test/# 方式 1:本地路径# 方式 2:Git 仓库# 启用OpenClaw 的独特价值在于自由度和可扩展性🔓开源:代码完全透明,无厂商锁定🔧可编程:通过 Skill 系统无限扩展🔒可控:数据本地存储,模型自由选择🌐无处不在:任何平台都能接入#
OpenClaw 是什么?
OpenClaw 是一个开源的本地化 AI 助手平台,它将多种大语言模型(LLM)能力与本地工具、消息平台深度集成,让你可以在熟悉的环境中(微信、Telegram、Discord、Web 等)与 AI 交互,同时完全掌控数据隐私。
┌─────────────────────────────────────────────────────────┐
│ OpenClaw 中枢 │
├─────────────┬─────────────┬─────────────┬───────────────┤
│ 消息通道 │ 模型接入 │ 本地工具 │ 扩展能力 │
├─────────────┼─────────────┼─────────────┼───────────────┤
│ • Telegram │ • OpenAI │ • 文件系统 │ • 自定义 Skill │
│ • 微信 │ • Claude │ • 代码执行 │ • 工作流编排 │
│ • Discord │ • 本地模型 │ • 浏览器控制 │ • 多 Agent │
│ • Slack │ • Azure │ • 数据库 │ 协作 │
│ • Web UI │ • 自定义 API │ • API 调用 │ │
└─────────────┴─────────────┴─────────────┴───────────────┘
**典型使用场景:**
- 🤖 **个人助手**:通过 Telegram/微信随时查询信息、管理任务
- 💻 **开发伴侣**:在 IDE 中快速获取代码建议、执行脚本
- 📊 **数据分析师**:连接本地数据库,用自然语言查询数据
- 🔄 **自动化工作流**:定时任务、消息提醒、内容聚合
---
## 核心架构与设计理念
### 1. 模块化设计
OpenClaw 采用**插件化架构**,核心功能通过 Channels 和 Skills 扩展:
```yaml
# openclaw.yaml 配置示例
channels:
- name: telegram
token: ${TELEGRAM_BOT_TOKEN}
- name: webchat
port: 3000
skills:
- name: weather
enabled: true
- name: summarize
enabled: true
agents:
default:
model: openai/gpt-4
temperature: 0.7
2. 隐私优先
与云端 AI 服务不同,OpenClaw 支持:
- 本地模型:通过 Ollama 运行 Llama、Qwen 等模型
- 数据本地化:聊天记录、文件处理都在本地完成
- 灵活路由:敏感任务用本地模型,复杂推理用云端 API
3. 多 Agent 架构
用户消息
│
▼
┌─────────────┐
│ 意图识别 │ ◄── 路由 Agent
│ (Router) │
└──────┬──────┘
│
┌───┴───┐
▼ ▼
┌─────┐ ┌─────┐ ┌─────┐
│编程助手│ │生活助手│ │数据分析│
│Agent │ │Agent │ │Agent │
└─────┘ └─────┘ └─────┘
安装与初始配置
环境要求
- Node.js 18+
- 至少 4GB RAM(运行本地模型需要更多)
- Windows/macOS/Linux
安装步骤
# 1. 全局安装
npm install -g openclaw
# 2. 初始化工作目录
mkdir ~/openclaw-workspace
cd ~/openclaw-workspace
openclaw init
# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 添加你的 API Keys
基础配置
# ~/.openclaw/config.yaml
gateway:
port: 8080
host: localhost
# 模型配置
models:
openai:
apiKey: ${OPENAI_API_KEY}
defaultModel: gpt-4
local:
provider: ollama
baseUrl: http://localhost:11434
model: llama2:13b
# 默认代理设置
defaultAgent:
model: openai/gpt-4
systemPrompt: |
你是一个乐于助人的 AI 助手。
回答要简洁明了,必要时提供代码示例。
# 启用频道
channels:
telegram:
enabled: true
botToken: ${TELEGRAM_TOKEN}
webchat:
enabled: true
port: 3000
启动服务
# 启动 Gateway 服务
openclaw gateway start
# 查看状态
openclaw status
# 查看日志
openclaw logs -f
连接多端:让 AI 触手可及
1. Telegram 机器人
# 1. 在 @BotFather 创建机器人,获取 Token
# 2. 配置环境变量
export TELEGRAM_BOT_TOKEN=your_token_here
# 3. 重启服务
openclaw gateway restart
使用示例:
用户: /weather 北京
AI: 北京今天晴天,温度 15-25°C,空气质量良好。
用户: 帮我写个 Python 爬取豆瓣电影的脚本
AI: [生成代码...]
用户: /task 提醒我明天下午3点开例会
AI: 已设置提醒:明天 15:00 开例会
2. 微信接入(个人号)
# config.yaml
channels:
wechat:
enabled: true
# 使用 itchat 或 wechaty 协议
protocol: wechaty
puppet: wechaty-puppet-wechat
⚠️ 注意:微信个人号接入存在封号风险,建议用小号测试。
3. Web 界面
浏览器访问 http://localhost:3000 即可使用 Web 聊天界面:
channels:
webchat:
enabled: true
port: 3000
# 可选:启用认证
auth:
type: basic
username: admin
password: ${WEB_PASSWORD}
4. VS Code 插件(开发神器)
安装 OpenClaw VS Code 扩展后,可以直接在编辑器中调用:
// 选中代码,右键 "Ask OpenClaw"
// 或按 Ctrl+Shift+P 输入 OpenClaw
// 示例:解释代码
function debounce(fn, delay) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), delay);
};
}
// AI 回复:
// 这是一个防抖函数,用于限制函数执行频率。
// 原理:延迟执行,如果期间再次调用则重新计时...
实战:构建个人知识管理助手
让我们搭建一个能管理笔记、查询资料、定时提醒的个人助手。
1. 目录结构
~/openclaw-workspace/
├── config.yaml
├── memory/ # AI 的记忆文件
│ ├── 2024-01-15.md
│ └── long-term.md
├── notes/ # 知识库
│ ├── work/
│ ├── learn/
│ └── ideas.md
├── skills/ # 自定义技能
│ └── note-manager/
└── tasks/ # 定时任务
└── daily-report.yaml
2. 笔记管理 Skill
创建 skills/note-manager/skill.yaml:
name: note-manager
description: 个人笔记管理
version: 1.0.0
commands:
- name: save
description: 保存笔记
pattern: "记住[::]\\s*(.+)"
- name: search
description: 搜索笔记
pattern: "查找[::]\\s*(.+)"
- name: list
description: 列出最近笔记
pattern: "最近笔记"
skills/note-manager/index.js:
const fs = require('fs').promises;
const path = require('path');
const { exec } = require('child_process');
const util = require('util');
const NOTES_DIR = path.join(process.env.HOME, 'openclaw-workspace/notes');
module.exports = {
async saveNote(content, category = 'general') {
const date = new Date().toISOString().split('T')[0];
const notePath = path.join(NOTES_DIR, category, `${date}.md`);
const timestamp = new Date().toLocaleString('zh-CN');
const note = `\n## ${timestamp}\n\n${content}\n`;
await fs.mkdir(path.dirname(notePath), { recursive: true });
await fs.appendFile(notePath, note);
return `已保存到 ${notePath}`;
},
async searchNotes(keyword) {
// 使用 ripgrep 搜索
const execAsync = util.promisify(exec);
try {
const { stdout } = await execAsync(
`rg -i "${keyword}" ${NOTES_DIR} --type md -A 2 -B 2`
);
return stdout || '未找到相关内容';
} catch (e) {
return '搜索出错:' + e.message;
}
},
async listRecent(count = 5) {
// 列出最近的笔记文件
const files = await fs.readdir(NOTES_DIR, { recursive: true });
const mdFiles = files
.filter(f => f.endsWith('.md'))
.sort()
.reverse()
.slice(0, count);
return mdFiles.join('\n');
}
};
3. 使用示例
用户: 记住:React 19 的新特性包括 Actions、use() Hook、Document Metadata
AI: ✅ 已保存笔记(分类:general)
用户: 查找 React 19
AI: 找到以下内容:
notes/learn/2024-01-15.md:
React 19 的新特性包括 Actions、use() Hook...
用户: 最近笔记
AI: 最近笔记:
- learn/2024-01-15.md
- work/meeting-2024-01-14.md
- ideas/startup-idea.md
自定义 Skill 开发入门
Skill 结构
my-skill/
├── skill.yaml # 元数据配置
├── main.js # 入口文件
├── README.md # 文档
└── test/
└── test.js
示例:股票查询 Skill
skill.yaml:
name: stock-query
description: 查询股票实时行情
version: 1.0.0
author: your-name
# 依赖
dependencies:
- axios
# 命令定义
commands:
- name: query
trigger: ["股票", "股价", "行情"]
description: 查询股票价格
- name: watch
trigger: ["关注股票", "预警"]
description: 设置股价预警
main.js:
const axios = require('axios');
class StockSkill {
constructor(context) {
this.context = context;
this.apiKey = context.config.apiKey;
this.baseURL = 'https://api.stockdata.com/v1';
}
async query(symbol) {
try {
const response = await axios.get(`${this.baseURL}/quote`, {
params: { symbol, apikey: this.apiKey }
});
const data = response.data;
return {
text: `${data.name} (${symbol})\n` +
`当前价格: ¥${data.price}\n` +
`涨跌幅: ${data.change_percent}%\n` +
`成交量: ${data.volume}`,
markdown: `**${data.name}** (${symbol})\n` +
`- 当前价格: ¥${data.price}\n` +
`- 涨跌: ${data.change_percent > 0 ? '📈' : '📉'} ${data.change_percent}%`
};
} catch (error) {
return { error: '查询失败:' + error.message };
}
}
async onMessage(message) {
const text = message.text;
// 匹配 "股票 000001" 或 "000001 股价"
const match = text.match(/(?:股票|股价)\s*([0-9]{6})/);
if (match) {
const symbol = match[1];
return await this.query(symbol);
}
return null; // 不匹配,让其他 skill 处理
}
}
module.exports = StockSkill;
安装自定义 Skill
# 方式 1:本地路径
openclaw skill install ./my-skill
# 方式 2:Git 仓库
openclaw skill install https://github.com/user/my-skill
# 启用
openclaw skill enable my-skill
进阶:多 Agent 协作工作流
复杂任务可以分解给多个专业 Agent:
# agents.yaml
agents:
# 代码专家
coder:
model: openai/gpt-4
systemPrompt: |
你是资深软件工程师,擅长:
- 代码审查和重构
- 算法优化
- 技术方案设计
回答必须包含代码示例。
# 产品经理
pm:
model: anthropic/claude-3-opus
systemPrompt: |
你是产品经理,擅长:
- 需求分析
- 用户故事编写
- 优先级排序
使用中文回答,结构清晰。
# 数据分析师
analyst:
model: openai/gpt-4
tools:
- python
- sql
systemPrompt: |
你是数据分析师,擅长用 Python/SQL 处理数据。
所有分析必须基于实际数据,给出可视化建议。
工作流编排
// workflows/code-review.js
module.exports = {
name: 'code-review-flow',
async execute(code, context) => {
// 1. 代码分析
const analysis = await context.agent('coder').ask(
`分析以下代码的质量问题:\n\`\`\`\n${code}\n\`\`\``
);
// 2. 安全性检查
const security = await context.agent('coder').ask(
`检查这段代码的安全漏洞:\n\`\`\`\n${code}\n\`\`\``
);
// 3. 生成报告
const report = await context.agent('pm').ask(
`根据以下技术分析,生成给开发者的反馈报告:\n` +
`代码分析:${analysis}\n` +
`安全建议:${security}\n` +
`要求:语气友好,给出具体改进建议`
);
return report;
}
};
使用方式:
用户: /workflow code-review-flow
[粘贴代码]
AI: 正在启动代码审查工作流...
1️⃣ 代码质量分析完成
2️⃣ 安全扫描完成
3️⃣ 生成报告中...
=== 代码审查报告 ===
整体评价:代码逻辑清晰,但有几处可以优化...
[详细建议...]
与其他 AI 方案的对比
| 特性 | OpenClaw | ChatGPT | Claude App | 本地 LLM |
|---|---|---|---|---|
| 数据隐私 | ✅ 完全本地 | ❌ 云端 | ❌ 云端 | ✅ 本地 |
| 多平台 | ✅ 任意渠道 | ❌ 官方 App | ❌ 官方 App | ❌ 通常仅 CLI |
| 自定义扩展 | ✅ Skill 系统 | ❌ 有限 | ❌ 有限 | ⚠️ 需开发 |
| 成本 | 仅 API 费用 | 订阅费 | 订阅费 | 硬件成本 |
| 离线使用 | ✅ 支持本地模型 | ❌ 必须联网 | ❌ 必须联网 | ✅ |
| 团队协作 | ✅ 多用户支持 | ❌ | ❌ | ❌ |
选择建议:
- 个人极客:OpenClaw + 本地模型,完全掌控
- 企业团队:OpenClaw + Azure/OpenAI API,私有化部署
- 快速体验:直接使用 ChatGPT/Claude
生产环境部署建议
Docker 部署
# Dockerfile
FROM node:18-alpine
WORKDIR /app
# 安装 OpenClaw
RUN npm install -g openclaw
# 复制配置
COPY config.yaml .env ./
# 暴露端口
EXPOSE 8080 3000
CMD ["openclaw", "gateway", "start"]
# docker-compose.yml
version: '3'
services:
openclaw:
build: .
ports:
- "8080:8080"
- "3000:3000"
volumes:
- ./memory:/app/memory
- ./skills:/app/skills
- ./notes:/app/notes
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
restart: unless-stopped
# 可选:搭配 Ollama 本地模型
ollama:
image: ollama/ollama
volumes:
- ollama:/root/.ollama
ports:
- "11434:11434"
volumes:
ollama:
安全建议
# 生产环境配置
security:
# 启用访问控制
auth:
enabled: true
type: jwt
secret: ${JWT_SECRET}
# 速率限制
rateLimit:
enabled: true
requestsPerMinute: 60
# 敏感词过滤
contentFilter:
enabled: true
blocklist: ['密码', '密钥', 'secret']
# 日志审计
auditLog:
enabled: true
path: ./logs/audit.log
总结
OpenClaw 的独特价值在于自由度和可扩展性:
- 🔓 开源:代码完全透明,无厂商锁定
- 🔧 可编程:通过 Skill 系统无限扩展
- 🔒 可控:数据本地存储,模型自由选择
- 🌐 无处不在:任何平台都能接入
快速开始:
npm install -g openclaw
openclaw init
openclaw gateway start
# 打开 http://localhost:3000 开始对话
祝你搭建出属于自己的 AI 助手!
更多推荐


所有评论(0)