OpenClaw能不能做AI Coding?我测了6个环节
OpenClaw能不能做AI Coding?我测了6个环节 🦞
先说结论
能用,但只能用到 40%。
代码实现环节,OpenClaw 和 Claude Code 几乎没差距(底层是同一套代码)。
但任务拆解、代码审核、测试、提交上线——这四个环节,OpenClaw 缺少内置工具,需要自己搭。
测评的完整流水线
Code
6个环节
├── ① 需求澄清
├── ② 任务拆解
├── ③ 代码实现
├── ④ 代码审核
├── ⑤ 测试验证
└── ⑥ 提交上线
① 需求澄清
这个环节做什么?
用户说一句话,AI 理解他要做什么。
Code
用户:帮我做个用户登录功能,要能微信登录
AI 需要:
Claude Code 怎么做
Code
你:帮我做个用户登录功能,要能微信登录
Claude Code:
我理解你的需求。要澄清几个问题:
1. 现有系统还是全新项目?
2. 技术栈是什么?(React/Vue/移动端)
3. 微信登录需要申请 AppID,这部分你有吗?
你:全新项目,React + Node.js,有微信 AppID
Claude Code:
明白了。开始规划:
[生成结构化需求文档]
OpenClaw 怎么做
Code
用户(飞书):帮我做个用户登录功能,要能微信登录
OpenClaw:
收到你的消息,通过飞书发给 Agent
Agent 处理……
飞书回复:
我理解你的需求。要澄清几个问题:
1. 现有系统还是全新项目?
2. 技术栈是什么?
3. 微信登录需要申请 AppID,有吗?
差距在哪
| 能力 | Claude Code | OpenClaw |
|---|---|---|
| 对话理解 | ✅ | ✅ |
| 追问机制 | ✅ | ✅ |
| 结构化需求文档 | ❌ 靠对话 | ❌ 靠对话 |
| 多渠道汇总 | ❌ 只支持本地 CLI | ✅ 飞书+Slack+Discord |
| 响应速度 | ✅ 本地毫秒级 | ⭐ 有网络延迟 |
✅ OpenClaw 的优点
多渠道需求汇总——Claude Code 完全做不到
– 客户在飞书提需求 → 进队列
– 员工在 Slack 提 Bug → 进队列
– 客服在 Discord 收到投诉 → 进队列
– OpenClaw 统一分类、自动去重、按优先级处理场景举例:
某电商公司,客服在飞书、工程师在 Slack、CEO 在微信提需求。以前靠人工汇总,现在 OpenClaw 统一进队,自动标记优先级,负责人直接在飞书收到通知。
② 任务拆解
这个环节做什么?
把一个需求拆成具体可执行的步骤。
Code
原始需求:做个微信登录功能
拆解后:
□ 1. 创建用户表(用户名、微信openid、创建时间)
□ 2. 实现微信 OAuth 授权页面
□ 3. 获取微信 access_token
□ 4. 创建 /auth/wechat/callback 接口
□ 5. 实现 JWT token 生成
□ 6. 前端登录页面对接
□ 7. 写单元测试
□ 8. 写集成测试
Claude Code 怎么做
/plan 命令Code
你:帮我做个微信登录功能
Claude Code:输入 /plan
[/plan 触发]
根据你的需求,我制定了以下计划:
步骤 1:数据库设计
- 创建 users 表
- 字段:id, username, wechat_openid, created_at
步骤 2:后端微信 OAuth
- 调用微信授权接口
- 获取 openid 和 access_token
- 生成 JWT 返回给前端
步骤 3:前端对接
- 登录页面 UI
- 微信登录按钮
- Token 存储和刷新逻辑
步骤 4:测试覆盖
- 单元测试(JWT 生成)
- 集成测试(OAuth 流程)
你说「开始」,Claude Code 按顺序执行所有步骤。
中途你也可以说「跳过步骤3,先做步骤4」。
/plan 是 Claude Code 的核心功能之一/plan 重跑,全链路自动调整OpenClaw 怎么做
Code
你(飞书):帮我做个微信登录功能
OpenClaw:
好的,我来帮你实现微信登录功能。
首先创建用户表……
[直接开始写代码,没有任务拆解]
Code
你:帮我拆解一下这个任务,列出步骤
OpenClaw:
好的,拆解如下:
1. 创建用户表
2. 实现微信 OAuth
3. 前端对接
4. 测试
你:开始做第一步
OpenClaw:
好的,创建用户表……
[开始执行第一步]
/plan 命令差距在哪
| 能力 | Claude Code | OpenClaw |
|---|---|---|
| 自动拆解 | ✅ /plan |
❌ 没有 |
| 任务清单可视化 | ✅ | ❌ 没有 |
| 中途重计划 | ✅ /plan 重跑 |
❌ 需重头对话 |
| 任务持久化 | ✅ 跨 Session | ❌ 对话结束就丢 |
| 并行执行 | ✅ 多 Agent | ✅ subagent |
| 人工协调需求 | 需要 | 需要 |
/plan 是专门的规划引擎,能自动识别步骤依赖、生成执行顺序。OpenClaw 完全靠对话。/plan 重跑,全链路自动调整。OpenClaw 要从第一步重新说一遍。✅ OpenClaw 的优点
定时自动执行拆解好的任务——Claude Code 没有这个能力
– 每天早上 9 点自动触发任务拆解
– 拆解结果存到飞书云文档
– 相关负责人收到飞书通知场景举例:
每天早晨,OpenClaw 自动读取飞书里的需求池,拆解成任务清单,存到共享文档,相关工程师一上班就能看到今天要做什么。
③ 代码实现
这个环节做什么?
根据拆解好的任务,实际写代码、改文件、执行命令。
Code
□ 1. 创建用户表(写 SQL)
□ 2. 实现微信 OAuth(写 Node.js)
□ 3. 前端登录页面(写 React)
□ 4. 写单元测试(写 Jest)
Claude Code 怎么做
Code
你:开始做第一步,创建用户表
Claude Code:
正在创建 users 表...
[终端输出 60fps 流畅动画]
执行:CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE not null,
wechat_openid VARCHAR(100) UNIQUE,
created_at TIMESTAMP default NOW()
);
✅ 用户表创建完成
你说:继续做第二步
Claude Code:
正在实现微信 OAuth...
[调用微信授权接口]
[创建 /auth/wechat/callback 路由]
[生成 JWT token]
✅ 微信 OAuth 实现完成
read / write / edit / bash / Apply Patch/context 看当前用了多少上下文OpenClaw 怎么做
Code
你(飞书):帮我创建用户表
OpenClaw(内置):
执行:CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE not null,
wechat_openid VARCHAR(100) UNIQUE,
created_at TIMESTAMP default NOW()
);
✅ 完成
Code
你(飞书):帮我做个微信登录
OpenClaw(CLI Runner):
启动 Claude Code 子进程……
[通过 SDKMessage 协议通信]
子进程执行 /plan
子进程执行写代码
结果通过协议返回 OpenClaw
OpenClaw 把结果发到飞书
✅ 完成
🔑 关键发现:同一个内核
Code
这是最重要的发现:
OpenClaw 源码 src/agents/pi-tools.ts:
import { codingTools } from "@mariozechner/pi-coding-agent"
^^^^^^^^^^^^^^^^^^^^^^^^
OpenClaw 和 Claude Code,用的是同一个底层编码库!
版本:
OpenClaw 内置:v0.63.1
Claude Code 底层:同款
结论:read/write/edit/bash 这些基础工具,OpenClaw 和 Claude Code 是一样的!
差距在哪
| 能力 | Claude Code | OpenClaw(内置模式) | OpenClaw(CLI Runner) |
|---|---|---|---|
| read/write/edit/bash | ✅ 同一内核 | ✅ 同一内核 | ✅ 同一内核 |
| Apply Patch | ✅ 精准 | ✅ 同一实现 | ✅ 同一实现 |
| Ink 渲染(60fps) | ✅ | ❌ 纯文本 | ❌ 纯文本 |
| Buddy 陪伴 | ✅ | ❌ 没有 | ❌ 没有 |
/context Token 可视化 |
✅ | ❌ 没有 | ❌ 没有 |
| 条件触发(Paths) | ✅ | ❌ 没有 | ❌ 没有 |
| 会话恢复 | ✅ 三阶段 | ❌ 没有 | ❌ 没有 |
| 完整 Claude Code 能力 | — | — | ✅ 但状态不共享 |
/context 看 Token 用量,有条件触发(Paths frontmatter)。OpenClaw 没有。✅ OpenClaw 的优点
多渠道触发编码——Claude Code 完全做不到
在飞书发消息,OpenClaw 直接执行代码,不需要 SSH 到服务器。
场景举例:
某公司内网服务器,只能通过跳板机访问。以前工程师必须 VPN + SSH 才能改代码。现在员工在飞书发消息,OpenClaw 直接在服务器上执行,5秒出结果。
Skills 增强编码——可自定义扩展
可以开发一个「代码质量 Skill」,在写代码过程中自动调用 ESLint、自动检查规范。这点 Claude Code 需要自己配置。
场景举例:
开发团队要求所有 JavaScript 代码必须过 ESLint 检查。可以写一个eslint-checkSkill,每次写完代码自动触发,返回违规列表。
④ 代码审核
这个环节做什么?
写完代码后,检查质量、Bug、安全问题。
JavaScript
// 用户刚写了一段登录代码
async function login(req, res) {
const { username, password } = req.body;
// 直接 SQL 查询,有 SQL 注入风险
const user = await db.query(
`select * from users WHERE username = '${username}'`
);
res.json({ token: generateToken(user) });
}
Claude Code 怎么做
/review 命令Code
你:/review
Claude Code:
[/review 开始全项目扫描]
🔍 安全问题 [1个]
文件:auth/login.js 第8行
问题:SQL 注入漏洞
详情:user input directly in SQL query
建议:使用参数化查询
🔍 代码规范 [2个]
文件:auth/login.js 第15行
问题:generateToken 缺少错误处理
🔍 性能问题 [1个]
文件:auth/login.js 第12行
问题:每次登录都查库,可以缓存
---
你说:帮我修复安全问题
Claude Code:
[自动生成修复补丁]
✅ SQL 注入已修复,使用参数化查询
你说:apply
Claude Code:
[应用补丁到文件]
✅ 已应用
/review 是 Claude Code 的核心功能之一apply 一键修复OpenClaw 怎么做
Code
你(飞书):帮我看看这段代码对不对
OpenClaw:
让我看看……
[看代码]
[只能靠 LLM 对话理解]
这段代码有 SQL 注入风险,建议使用参数化查询。
/review 工具差距在哪
| 能力 | Claude Code | OpenClaw |
|---|---|---|
/review 命令 |
✅ | ❌ 没有 |
| 系统性全项目扫描 | ✅ | ❌ 只能一段段看 |
| 内置审查规则引擎 | ✅ | ❌ 没有 |
| 可视化报告 | ✅ | ❌ 纯文本 |
| 审核意见 → 补丁 | ✅ apply 一键 |
❌ 人工一条条改 |
/review 能扫描整个项目。OpenClaw 只能一段段扔给 LLM,容易漏。apply 一键修复所有问题。OpenClaw 只能一条条改。✅ OpenClaw 的优点
集成外部审核工具 + 飞书通知——Claude Code 做不到
OpenClaw 可以接 SonarQube、ESLint 等外部审核工具,审核完成后,自动把报告发到飞书,发现高危问题,自动 @ 对应负责人。
场景举例:
每天早上自动跑代码扫描 → 发现3个安全问题 → 飞书通知:
「[@张三] 安全团队,有3个漏洞需要紧急处理:SQL注入 x1、XSS x2」Claude Code 的审核结果只在 Terminal 里,团队其他人看不到。
⑤ 测试验证
这个环节做什么?
跑单元测试、集成测试,验证代码是否正确。
JavaScript
// 用户刚写了 generateToken 函数
function generateToken(user) {
return jwt.sign({ id: user.id }, 'secret', { expiresIn: '1h' });
}
Claude Code 怎么做
/test 命令Code
你:/test
Claude Code:
[/test 开始分析]
发现需要测试的函数:
□ generateToken (auth/token.js:3)
□ login (auth/login.js:10)
□ validateToken (auth/middleware.js:5)
你说:全部跑
Claude Code:
[生成测试用例]
[执行 Jest]
pass auth/token.test.js
✓ generateToken should sign with secret (5ms)
✓ generateToken should include user id (3ms)
✓ generateToken should set expiration (2ms)
pass auth/login.test.js
✓ login should query user from db (15ms)
✓ login should return token on valid creds (8ms)
覆盖率:85%
你说:覆盖率不够,帮我提升到 95%
Claude Code:
[分析未覆盖的分支]
[补充测试用例]
覆盖率提升到 96% ✅
/test 是 Claude Code 的核心功能OpenClaw 怎么做
Code
你(飞书):帮我跑一下测试
OpenClaw:
执行:npm test
pass auth/token.test.js
✓ generateToken (5ms)
测试通过,覆盖率 85%
你:覆盖率不够,怎么提升?
OpenClaw:
可以这样补充测试用例……
[生成建议,但不会自动补]
/test 命令npm test 或 jest差距在哪
| 能力 | Claude Code | OpenClaw |
|---|---|---|
/test 命令 |
✅ | ❌ 没有 |
| 自动识别测试函数 | ✅ | ❌ 没有 |
| 自动生成测试用例 | ✅ | ❌ LLM 对话生成,不稳定 |
| 自动执行 + 覆盖率报告 | ✅ | ⚠️ exec 执行,人工看覆盖率 |
| test-mode | ✅ | ❌ 没有 |
| 改代码 → 自动提示补测 | ✅ | ❌ 没有联动 |
✅ OpenClaw 的优点
1
⑥ 提交上线
这个环节做什么?
代码写好测试完,提交到 Git、生成 PR、发布。
Claude Code 怎么做
/submit 命令Code
你:/submit
Claude Code:
[/submit 开始]
改动摘要:
✏️ auth/login.js(SQL注入修复)
✏️ auth/token.js(添加错误处理)
✏️ test/auth.test.js(新增3个测试用例)
选择:
[1] commit only(本地提交)
[2] commit + PR(提交并创建PR)
[3] commit + PR + review(提交+PR+找人review)
你:选 2
Claude Code:
✅ git add .
✅ git commit -m "fix: 修复SQL注入,提升测试覆盖率"
✅ git push
✅ GitHub PR 创建成功:https://github.com/xxx/pull/123
✅ 已添加 2 名 reviewer
你说:把 PR 链接发给我
Claude Code:
已发送 ✅
/submit 是 Claude Code 的核心功能OpenClaw 怎么做
Code
你(飞书):帮我提交代码
OpenClaw:
执行:git add .
执行:git commit -m "修复SQL注入"
执行:git push
✅ 提交成功
/submit 命令差距在哪
| 能力 | Claude Code | OpenClaw |
|---|---|---|
/submit 命令 |
✅ | ❌ 没有 |
| 自动生成规范 commit | ✅ | ⚠️ 依赖 LLM 对话 |
| commit + PR + review | ✅ | ❌ 没有 |
| 自动推送到远程 | ✅ | ⚠️ 手动拼 git 命令 |
✅ OpenClaw 的优点
提交后多渠道通知——Claude Code 做不到
提交成功后,自动发飞书通知:「代码已提交,请相关人员 review」,附带改动摘要、涉及文件、PR 链接。
场景举例:
员工提交了代码 → 立刻飞书通知 team lead →
「[@王五] 有人提交了代码,3个文件改了,你看下:
– auth/login.js(SQL注入修复)
– auth/token.js(添加错误处理)
– test/auth.test.js(新增3个测试)
PR:https://github.com/xxx/pull/123」Claude Code 的提交只在本地,team lead 不知道有人改了代码。
总结对比表
| 环节 | Claude Code | OpenClaw | 差距 |
|---|---|---|---|
| 📋 需求澄清 | 响应快 | 多渠道汇总 | -1.2 |
| 🧠 任务拆解 | /plan 自动拆+Todo |
靠对话 | -2.6 |
| 🔨 代码实现 | 同一内核+渲染好 | 同一内核 | -0.8 |
| 🔍 代码审核 | 系统扫描+补丁 | 靠对话一段段看 | -2.8 |
| 🧪 测试验证 | 自动生成+覆盖 | exec 执行 | -2.4 |
| 🚀 提交上线 | PR+review | exec git | -2.4 |
OpenClaw 能用吗?
能用 ✅ 的场景
| 场景 | 为什么能用 |
|---|---|
| 轻量级编码任务 | 代码实现环节和 Claude Code 几乎没差距 |
| 多渠道需求汇总 | 飞书/Slack/Discord 统一进队,Claude Code 完全做不到 |
| 定时自动任务 | 每天自动跑代码任务,Claude Code 做不到 |
| 测试/CI 结果通知 | 失败自动发飞书 @ 负责人,Claude Code 做不到 |
| 企业系统集成 | SSO/API Keys/Skills 扩展,Claude Code 没有 |
| 内网服务器操控 | 飞书发消息直接执行,不需要 SSH |
慎重 ❌ 的场景
| 场景 | 为什么慎重 |
|---|---|
| 复杂项目任务拆解 | 没有 /plan,全靠对话,人工协调成本高 |
| 系统性代码审核 | 没有 /review,只能一段段看,容易漏问题 |
| 自动化测试生成 | 没有 /test,生成质量不稳定 |
| 标准化提交流程 | 没有 /submit,commit message 质量不稳定 |
OpenClaw vs Claude Code:怎么选?
| 你的情况 | 建议 |
|---|---|
| 个人开发者,复杂项目 | 用 Claude Code |
| 企业内部,轻量任务 + 团队协作 | 用 OpenClaw |
| 既有 Claude Code 又有 OpenClaw | 日常任务用 OpenClaw 通知,核心编码用 Claude Code 执行 |
| 内网服务器,无法 SSH | 用 OpenClaw 飞书操控 |
| 需要定时自动跑代码 | 用 OpenClaw cron job |
结论
Code
Claude Code = 执行层(写代码)
OpenClaw = 协作层(触发、通知、集成)
📍 写在最后
我每天都在研究 AI 工具落地的实战玩法,尤其是 OpenClaw 在企业场景中的应用。
如果你:
夜雨聆风