Appearance
工作流与自动化
模块编号: 10 · 难度: 高级 · 预计时间: 1 小时
当你熟练掌握了 Claude 的单次对话能力后,下一步就是把它整合进你的日常工作流里。让 AI 从被动响应的助手变成主动运转的齿轮。
这节课我们来看看怎么把 Claude 接入 CI/CD 流水线,怎么深度绑定 GitHub 仓库,还有如何构建自动化的复杂操作序列。
1. CI/CD 集成
想在自动化脚本里调用 Claude,你肯定不能用平时的交互模式。因为 CI 服务器上没有真人去按回车键确认。这就需要加上一些非交互参数。
基础命令是加上 -p 或者 --prompt。如果要做到在脚本里无缝安全地运行,还需要这两个关键参数:
--output-format json这个参数强迫 Claude 返回结构化的 JSON 数据。不管中间发生了什么,你拿到的结果总是可以用脚本轻松解析的,不用再手写正则去抓取文本。--permission-mode bypassPermissions这个非常重要。它允许程序绕过所有的终端确认提示框。
来看个在 GitHub Actions 里跑自动化代码审查的例子:
yaml
name: 自动代码审查
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 安装 Claude
run: npm install -g @anthropic-ai/claude-cli
- name: 执行审查
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: >
claude -p "检查这个 PR 里的代码改动有没有明显的安全漏洞,只输出 JSON"
--output-format json
--permission-mode bypassPermissions > review.json2. 深度接入 GitHub
除了用 Action,你还可以直接让 Claude 成为你代码仓库的机器人协作者。
用 /install-github-app 命令可以在你的 GitHub 账号或组织下安装 Claude 的官方 App。装好之后,它就不再只是个本地的命令行工具了,而是变成了在线协作的好帮手。
你能在任何 PR 的评论区直接艾特它。比如 @claude 帮忙看看为什么这个单元测试突然挂了。它会自动拉取当前的上下文去排查问题,甚至能直接帮你提交一个修复缺陷的代码变更。
3. 定时与循环任务
有时候你需要 AI 帮你周期性地干活,或者一直跑直到某个条件满足为止。这里有两个超级实用的指令。
/loop指令可以在当前的命令行会话里开启死循环模式。比如你写了个脚本一直在跑测试,你可以用/loop "如果测试失败就尝试修复并重新跑,直到所有测试都绿了为止"。这个简直是本地持续死磕疑难杂症的利器。/schedule是云端的定时器。你可以这么设定/schedule "每天早上 9 点帮我总结一下昨天各个仓库的新 issue 并发个简报"。它在后台默默运行,到了点就会准时把结果发给你。
4. 多步工作流与大规模操作
单点任务搞定后,我们来看看怎么组装更复杂的工作流。
"开发验证" 模式
有时候 Claude 会在任务没彻底干完时就停下。为了防止这种半途而废,我们可以设置 Stop prompt hook。这其实是在触发最终结束状态前插入的一段自动检查逻辑。
比如让它每次宣布完工前,强制跑一遍类型检查和 Lint 检查。如果出错了就不许停,强制它继续修代码,直到通过为止。
"并行审查" 模式 (Agent Teams)
在处理大型复杂需求时,你可以召唤不止一个智能体协同干活。Agent Teams 允许你把复杂的任务拆分成多个并行的子任务。
当你开启并行审查模式时,系统会启动多个专门的 Agent。比如一个专门负责检查代码的安全性,另一个同时开始排查性能瓶颈。多个 Agent 各司其职互不干扰,最后再把所有的改进建议合并到一起给你。
大规模跨文件操作
如果你需要给项目里几百个文件同时加上统一的版权声明,或者把所有的旧版 API 调用批量换成新版,用 /batch 命令最合适不过了。
你可以输入类似于 /batch "*.ts" "把所有的 any 类型都替换成具体的接口定义" 这样的指令。它会自动找到所有符合条件的文件,并在后台并发处理,效率比一个个文件去改高了不知道多少倍。
模板区
这里准备了两个实用的自动化模板,直接抄走就能用到你的项目里。
模板 1: 完整的 CI 代码审查 GitHub Action
这是一个稍微复杂点的版本,专门用来抓取当前分支和主分支的区别,并让 Claude 进行结构化审查。
yaml
name: 深度代码审查
on:
pull_request:
types: [opened, synchronize]
jobs:
deep-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: 安装依赖与工具
run: |
npm install -g @anthropic-ai/claude-cli
- name: 收集变更并审查
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
git diff origin/main > diff.txt
claude -p "阅读 diff.txt 并指出性能瓶颈和逻辑错误。返回 JSON 数组格式的评论列表。" \
--output-format json \
--permission-mode bypassPermissions > comments.json
# 后续可以用脚本把 comments.json 发到 PR 评论区里模板 2: Stop hook 完成验证配置
把这段配置放在你的 settings.json 中,用来强制 Claude 在结束任务前跑测试和类型检查。
json
{
"hooks": {
"Stop": [
{
"matcher": "",
"run": "npm run test || echo '测试还没全过,继续修代码'; npm run typecheck || echo '类型检查报错了,修了再结束'"
}
]
}
}测验
测验时间
第 1/3 题
在 CI/CD 脚本中调用 Claude 时,哪两个参数组合最关键?