Vibe Coding 实战:言出码随,对话即开发 目标:把“需求 → 改代码 → 跑测试 → 提 PR”变成一次对话流程,用于远程修复问题与快速验证需求。 前置条件:已完成消息通道接入(如飞书),并能在可访问的代码仓库/工作区里运行 Claude Code(或等价的代码执行能力)。 注意:默认只做代码变更与建议,不做自动合并;涉及危险操作时应保持人工确认。 输出与验收标准 跑通后,你应当能稳定完成以下动作: 场景 1:一句话修 Bug 问题:发现线上 bug,传统流程需要打开 IDE、拉分支、改代码、跑测试、提 PR 解决:在飞书跟龙虾说"修复 user.
目标:把“需求 → 改代码 → 跑测试 → 提 PR”变成一次对话流程,用于远程修复问题与快速验证需求。
前置条件:已完成消息通道接入(如飞书),并能在可访问的代码仓库/工作区里运行 Claude Code(或等价的代码执行能力)。
注意:默认只做代码变更与建议,不做自动合并;涉及危险操作时应保持人工确认。
跑通后,你应当能稳定完成以下动作:

Claude Code 本身已经是一个完整的编码 Agent——它内置了文件读写、代码搜索、Git 操作、命令执行等全部能力。OpenClaw 不需要重复搭建这些能力,只需要安装 claude-code 技能作为桥接层,让 OpenClaw 做好"接消息 → 派任务 → 收结果 → 发通知"这件事。这比给 OpenClaw 装一堆 filesystem/ripgrep/shell/git/github 技能来模拟编码 Agent 要干净得多。
| 方案 | 需要的技能/组件 | 复杂度 | 编码质量 |
|---|---|---|---|
| OpenClaw 全包(不推荐) | filesystem + ripgrep + shell + git + github + 自定义 coding agent prompt | 高(~3000 行配置) | 中等(需要自己拼装工具链) |
| OpenClaw + claude-code 技能(推荐) | claude-code 技能 + Anthropic API Key | 低(~50 行配置) | 高(Claude Code 原生支持整个编码流程) |
核心原因:Claude Code 不是一个普通的 LLM API——它是 Anthropic 专门打造的编码 Agent 产品,内置了仓库理解、语义代码搜索、精确 diff 生成、Git 全流程操作、自动测试运行、智能上下文管理等完整能力。claude-code 技能把这些能力封装成 OpenClaw 可直接调用的接口,你不需要自己拼装工具链。
clawhub install skill-vetter # 安全守卫(必须第一个安装) clawhub install claude-code # 核心:Claude Code 集成技能 clawhub install github # 可选:PR 状态查询 + Cron 轮询
| 技能 | 不可替代性 | 替代方案风险 |
|---|---|---|
| skill-vetter | 自动扫描技能是否窃取 API Key | 不安装可能被恶意技能盗号 |
| claude-code | ClawHub 上的 Claude Code 集成技能,提供子 Agent 管理、编码任务执行、文档查询、最佳实践工作流等接口 | 不装的话需要手动用 exec 调用 Claude Code CLI,处理认证、输入输出解析、错误重试都要自己写 |
| github(可选) | 让 OpenClaw 能查询 PR 审查状态,用于 Cron 轮询 + 飞书推送 | Claude Code 自己就能创建 PR;但如果你想让 OpenClaw 主动轮询审查结果并推送通知,就需要这个技能 |
重要前提:Vibe Coding 需要 OpenClaw Agent 具备命令执行能力(用于调用 Claude Code),因此必须将工具配置档设为
coding或full(默认的messaging不支持)。详见第七章 工具与定时任务。
| 条件 | 说明 | 参考 |
|---|---|---|
| 飞书渠道已配置 | OpenClaw 已接入飞书,能收发消息 | 第四章 聊天平台接入 |
| 工具配置档为 coding/full | OpenClaw Agent 需要命令执行权限 | 第七章 工具与定时任务 |
| 服务器已安装 Node.js >= 22 | Claude Code 运行依赖 | — |
| 服务器已安装 Git | Claude Code 需要 git 命令可用 |
— |
| Anthropic API Key | Claude Code 的"燃料",需要有效的 API 额度 | 下方 3.2 节 |
| GitHub PAT 或 SSH Key | Claude Code 推代码和创建 PR 用 | 下方 3.2 节 |
| 目标仓库已 Clone(首跑建议) | 第一次先用已 clone 且有写权限的测试仓库跑通 | 下方 3.2 节 |
按以下顺序,一路走到底:
开启代码执行权限
openclaw config set tools.profile coding
安装 skill-vetter(安装后自动生效,后续技能安装前会自动扫描安全性)
clawhub install skill-vetter
安装 Claude Code CLI
Linux(推荐,大多数服务器场景):
curl -fsSL https://claude.ai/install.sh | bash
macOS(Homebrew):
brew install --cask claude-code
Windows:
# PowerShell(推荐) irm https://claude.ai/install.ps1 | iex # 或 WinGet winget install Anthropic.ClaudeCode
配置 Anthropic API Key
# 写入 ~/.bashrc 或 ~/.zshrc(确保 OpenClaw 启动时能继承) export ANTHROPIC_API_KEY="sk-ant-xxxxx"
API Key 获取:前往 Anthropic Console → API Keys → API Keys → Create Key。建议创建一个专门用于 Vibe Coding 的独立 Key,便于追踪用量。
⚠️ API Key 只显示一次,务必立即保存到安全位置。如果遗失,需要删除后重新创建。
安装 claude-code 技能
clawhub install claude-code
配置 GitHub 认证(PAT 方式,推荐新手)
打开 GitHub → 点击右上角头像 → Settings → 左侧栏最下方 Developer settings → 左侧栏最下方 Personal access tokens → 选择 Fine-grained tokens(推荐)或 Tokens (classic) → 点击 Generate new token。如果开启了两步验证,此时需要完成验证。
给 Token 取一个有意义的名称(如 openclaw-vibe-coding),然后往下滚动配置以下选项:

export GITHUB_TOKEN="github_pat_xxxxx" # 配置 git credential git config --global credential.helper store # 将 your-github-id 替换为你的 GitHub 用户名 echo "https://your-github-id:${GITHUB_TOKEN}@github.com" > ~/.git-credentials
安全提示:Fine-grained token 比 Classic token 更安全,因为它可以限定到单个仓库。永远不要使用拥有所有仓库权限的 Classic token。
如果你更习惯 SSH Key:
ssh-keygen -t ed25519 -C "openclaw-vibe-coding" # 将 ~/.ssh/id_ed25519.pub 的内容添加到 GitHub Settings → SSH Keys
确保仓库使用 SSH URL clone(git@github.com:owner/repo.git)。
安装 gh CLI 并认证(Claude Code 用它创建 PR)
# Linux sudo apt install gh # macOS brew install gh # 认证 gh auth login --with-token <<< "${GITHUB_TOKEN}"
安装 github 技能(可选,用于 PR 轮询通知)
clawhub install github
首跑建议:第一次先不装它,先用
claude-code技能跑通"改代码 → 提 PR"主链路,确认闭环后再加。
准备测试仓库
第一次先在服务器上准备一个已 clone 且你有写权限的测试仓库,跑通最小闭环后再升级到自动 clone / fork。
把以下内容写入 ~/.openclaw/workspace/IDENTITY.md,让 OpenClaw 知道收到编码任务时如何协调 claude-code 技能:
## 场景处理 —— 代码与 PR 类需求 当用户提出涉及代码修改、提交、PR 的任务时: 1. 确认目标仓库(从消息中提取,或询问用户) 2. 调用 Claude Code 执行任务(权限检查、clone/fork、分支创建、代码修改、测试、提交推送、创建 PR 等细节由 Claude Code 自动处理) 3. 创建 PR 后默认请求 `@copilot` 审查 4. 完成后汇报:PR 链接 + 修改的文件列表 + 代码修改摘要 5. 用户确认合并时:执行 squash merge 并清理远程分支 ### 异常处理 遇到失败时,**先自行诊断修复,修不了再报错**。向用户报告时需包含:具体错误信息 + 已尝试的修复步骤。
为什么需要 IDENTITY.md?
claude-code技能提供了 Claude Code 的调用接口,但 OpenClaw 还需要知道"什么时候调用"和"结果怎么处理"。IDENTITY.md 告诉 OpenClaw 的编排 Agent 这些决策逻辑。
只有当你的工作区规则已经很多,开始出现"身份设定 / 编排策略 / 自动化操作细则"混在一起不好维护时,才值得把其中一部分从 IDENTITY.md 拆到 AGENTS.md。对这篇教程的目标读者来说,先统一写在 IDENTITY.md 最省心。
在服务器终端快速确认三件事:
claude --version # Claude Code CLI 已安装 gh auth status # GitHub 认证正常 openclaw doctor # OpenClaw 整体健康
三个命令都通过,就可以发第一条任务了。任何一个失败,跳到第 6 节排障。
跑通前必查:以下任何一项不满足都会导致失败——
- GitHub 账户已注册,且目标仓库确实存在(拼写错误 = 404)
- 目标仓库中提到的 Issue、文件路径等确实存在(不存在 = 报错)
ANTHROPIC_API_KEY有效且有余额(过期/欠费 = Claude Code 拒绝执行)GITHUB_TOKEN有效且已授权目标仓库(过期/未选仓库 = Permission denied)
在飞书里发送一条真实的编码需求:
请在仓库 SAILResearch/awesome-foundation-model-leaderboards 上执行以下操作: 1) 请帮我把https://github.com/Software-Engineering-Arena组织下的所有榜单都添加到README.md的合适位置上去 2) 完成修改后提交、推送并创建 PR 3) 完成后把 PR 链接和修改摘要发给我
实际飞书对话效果——完整闭环只需四步:
① 发送需求:在飞书里用自然语言描述任务,机器人自动检查历史状态后开始执行。

② 收到 PR 摘要:机器人完成后回传 PR 编号、状态、修改文件和添加详情。飞书里的 PR 链接可以直接点击跳转 GitHub。

③ 审查 diff:点击 PR 链接在手机浏览器里查看代码变更,确认修改内容是否符合预期。

④ 确认合并:回到飞书说一句"合并并清理分支",机器人执行 merge + 删除分支,全程完成。

到这里为止,分支前缀、Copilot 审查、结果回传格式都应该由 IDENTITY.md 自动兜底;后面示例默认都沿用这套规则,除非我明确写"这次要覆盖默认行为"。
这条链路一旦跑通,可以逐步升级:
github 技能,配置 Cron 轮询 PR 审查状态并推送飞书通知IDENTITY.md 中添加自动 clone / fork 规则,省去手动准备仓库问题:PR 提交后,你需要反复打开 GitHub 查看 Copilot 是否审查完成,很不"手机友好"。
解决方案 A — 人在回路(推荐):
配置 Cron 任务自动轮询 PR 审查状态,结果推送到飞书:
openclaw cron add --name "PR审查状态检查" --every 5m --message "检查所有 openclaw/ 前缀分支的开放 PR 审查状态。如果有新的审查结果:1) 列出每个 PR 的审查状态(approved / changes_requested / pending)2) 如果 changes_requested,提取具体修改建议(逐条列出)3) 将结果推送到飞书。如果没有新的审查结果,不推送消息。"
收到飞书推送后,你有三种选择:
解决方案 B — 全自动(进阶,需谨慎):
请启用 Vibe Coding 全自动模式: - Copilot 审查通过(approved)→ 自动合并 PR - Copilot 要求修改(changes_requested)→ 调用 Claude Code 自动修复 → 更新 PR → 重新请求审查 - 超过 3 轮仍未通过 → 停止自动修复,推送到飞书请求人工介入 - 每次操作都在飞书通知我当前状态
警告:全自动模式适合低风险仓库(如文档、个人项目)。生产仓库请务必使用"人在回路"模式,避免自动合并引入问题。
用自然语言描述复杂需求,Claude Code 会自动分析依赖关系并分步执行:
请帮我重构 src/api/ 目录: 1) 把 src/api/handlers.ts 中的 handleUser 和 handleOrder 拆分到各自文件 - src/api/user-handler.ts - src/api/order-handler.ts 2) 更新 src/api/index.ts 的导出 3) 确保所有引用这两个函数的文件也同步更新 import 路径 4) 运行测试确保不破坏现有功能 5) 创建 PR,标题为 "refactor: split API handlers into separate modules" 6) 在 PR description 中列出所有修改的文件和修改原因
提示:复杂重构建议先让龙虾列出修改计划("请先告诉我你打算修改哪些文件,不要直接改"),确认后再执行。Claude Code 擅长理解代码间的依赖关系,多文件重构是它的强项。
请查看仓库 your-repo 的 Issue #42, 根据 Issue 描述实现功能,创建 PR 并关联该 Issue。 PR 描述中注明 "Closes #42",这样合并后 Issue 会自动关闭。
在飞书群聊中,产品经理可以直接 @龙虾:
@龙虾 请修改以下文案: - src/pages/home.tsx 中的标题从"欢迎使用"改为"开始体验" - src/pages/about.tsx 中的描述从"我们是一家..."改为"我们致力于..." - 创建 PR,标题为 "docs: update homepage and about page copy"
群聊安全提示:在群聊中使用 Vibe Coding 前,确保群成员都是可信的。恶意用户可能通过 @龙虾 注入危险操作。详见第十章 安全防护与威胁模型。
诊断步骤:
检查 claude-code 技能是否安装:
clawhub list | grep claude-code
检查 Claude Code CLI 是否可用:
claude --version
检查 API Key 是否有效:
echo "say hi" | claude --print
检查 OpenClaw 的环境变量:
openclaw logs --limit 50 | grep -i "claude\|anthropic\|api"
常见原因:
claude-code 技能未安装——运行 clawhub install claude-codeANTHROPIC_API_KEY 未设置或过期——OpenClaw 通过 systemd/Docker 启动时,环境变量可能没有从 .bashrc 继承,需要在 systemd unit 文件或 Docker compose 中显式设置which claude 确认路径,必要时在 OpenClaw 配置中写全路径(如 /usr/local/bin/claude)诊断步骤:
在服务器上手动测试 Git push:
cd /workspace/repos/your-repo git checkout -b test-push git commit --allow-empty -m "test push" git push origin test-push
如果使用 gh CLI,检查认证:
gh auth status
常见原因:
诊断步骤:
常见原因:
诊断步骤:
CLAUDE.md 文件,写入项目规范(见第 7 节"玩法 1")常见原因:
CLAUDE.md 等上下文文件,Claude Code 不了解项目规范在目标仓库根目录创建 CLAUDE.md 文件。Claude Code 每次启动时会自动读取这个文件,作为编码规范:
# 项目规范 ## 代码风格 - 使用 TypeScript strict mode - 函数命名:camelCase - 文件命名:kebab-case - 每个函数必须有 JSDoc 注释 - 禁止使用 any 类型 ## Git 规范 - commit message 遵循 Conventional Commits - 分支命名:openclaw/feat-xxx、openclaw/fix-xxx - PR 必须包含修改说明和测试计划 ## 测试要求 - 新功能必须附带单元测试 - 测试覆盖率不低于 80% - 使用 Vitest 作为测试框架
CLAUDE.mdvsIDENTITY.md:CLAUDE.md是 Claude Code 原生支持的项目规范文件(放在仓库根目录,跟着代码走)。IDENTITY.md是 OpenClaw 工作区文件(放在~/.openclaw/workspace/,跟着 Agent 走)。两者可以配合使用:CLAUDE.md写项目级规范,IDENTITY.md写 Agent 级编排指令。
如果你维护多个仓库,可以在聊天时指定仓库名:
请在 frontend-app 仓库中修复 Header 组件的样式问题: 导航栏在移动端被截断,需要添加 overflow-x: auto 同时在 backend-api 仓库中添加对应的 /api/layout-config 端点, 返回移动端专属的导航配置
OpenClaw 会根据仓库名在 /workspace/repos/ 下找到对应目录,分别调用 Claude Code。
配置定时任务,每周自动扫描代码质量:
openclaw cron add --name "每周代码巡检" --cron "0 9 * * 1" --message "请对仓库 your-repo 执行以下巡检:1) 搜索所有 TODO 和 FIXME 注释 2) 检查是否有过期依赖(npm outdated)3) 统计过去一周新增的未关闭 Issue 4) 将巡检报告推送到飞书。如果发现高优先级问题(安全漏洞、废弃 API),自动创建 Issue。"
请只修改 src/api/user-handler.ts 和对应的测试文件, 不要扫描整个仓库(除非必要)
原理:Claude Code 默认会智能选择需要读取的文件,但明确指定范围可以减少 token 消耗,加快响应速度。
如果你在第 3 节配置时选的是 coding,这一步已经完成。如果当时设的是 full,建议降级为 coding——它包含文件读写和命令执行,但不包含浏览器和消息工具,比 full 少加载约 30% 的工具描述,OpenClaw 的决策更快更准。
在仓库根目录创建 .github/pull_request_template.md:
## 变更说明 <!-- 一句话描述这个 PR 做了什么 --> ## 修改清单 <!-- 列出所有修改的文件 --> ## 测试计划 - [ ] 单元测试通过 - [ ] 手动验证功能正常 ## Checklist - [ ] 代码风格符合项目规范 - [ ] 无新增 TypeScript 类型错误 - [ ] 无硬编码的密钥或敏感信息
原理:标准化的 PR 模板能引导 Copilot 做更聚焦的审查,减少"代码能跑但不规范"导致的多次往返。Claude Code 在创建 PR 时会自动填写这个模板。
避免每次都 git clone,使用已有的本地仓库:
# 定时拉取最新代码(OpenClaw Cron) openclaw cron add --name "每小时同步仓库" --every 1h --message "请在 /workspace/repos/ 下的所有仓库执行 git fetch --all && git pull origin main"
| 凭证 | 最小权限 | 存放位置 |
|---|---|---|
| Anthropic API Key | 无特殊权限限制,但建议独立创建(便于追踪和撤销) | 环境变量 ANTHROPIC_API_KEY |
| GitHub PAT | Fine-grained,仅选目标仓库,Contents + PRs + Issues | 环境变量 GITHUB_TOKEN |
| GitHub SSH Key | 限定到具体仓库(Deploy Key)或用户级 | ~/.ssh/id_ed25519 |
禁止:使用拥有 admin:org、delete_repo 等危险权限的 Token。
在 GitHub 仓库 Settings → Branches → Branch protection rules 中配置:
原理:即使 Claude Code 的代码完美无瑕,分支保护规则是最后一道安全网。它确保任何代码变更都经过审查和 CI 验证。
重要提示:GitHub Copilot 的代码审查能力持续提升,但它仍然可能:
建议:对于关键模块(认证、支付、数据处理),即使 Copilot 审查通过,也应有人工 Review。
确保 .gitignore 包含以下条目:
.env .env.* *.key *.pem credentials.json secrets/
在目标仓库的 CLAUDE.md 中明确禁止操作敏感文件:
## 安全规则 - 禁止读取或修改 .env、*.key、*.pem、credentials.json 等敏感文件 - 禁止在代码中硬编码任何密钥、Token 或密码 - 提交前检查 git diff,确保不包含敏感信息
Claude Code 在执行命令时有内置的安全策略:
rm -rf /、sudo 等)会被拦截但这些不能替代服务器级别的安全措施。建议在专用的低权限用户下运行 OpenClaw 和 Claude Code,避免使用 root。
Vibe Coding 的核心价值是把开发者从繁琐的工具操作中解放出来——你只需要用自然语言说清楚"要做什么",剩下的全部交给 Agent:
架构哲学:让每个组件做它最擅长的事——OpenClaw 做消息编排,Claude Code 做编码执行,GitHub Copilot 做代码审查,飞书做人机交互。不要让 OpenClaw 用一堆技能去模拟 Claude Code 已经做好的事情。
记住:Vibe Coding 不是偷懒,而是把编码回归本质——想清楚要做什么,剩下的交给工具。你不是在"自己写代码",而是在指挥一个专业的编码 Agent 团队帮你把想法变成可审查的 PR。
本教程只展示了 Vibe Coding 的一种基础形态。基于同样的架构,你完全可以拓展出更多玩法,比如:
TODO/FIXME/HACK 注释,按优先级创建 Issue 并关联代码位置npm outdated / pip list --outdated,自动创建升级 PR 并跑 CI