Skip to content
返回Claude Code 教程首页

工作流与自动化 ​

模块编号: 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.json

2. 深度接入 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 时,哪两个参数组合最关键?

← 进阶功能 · 下一个:插件 →