ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI学会了“自己上夜班“——Claude Code Routines到底是什么?

AI学会了“自己上夜班“——Claude Code Routines到底是什么? 1. 从“盯着它干活”到“关电脑它还在跑”Claude Code Routines 到底解决了什么Claude Code 这个工具用过的人大概都有同一个感受它确实能写代码、能改 bug、能跑测试但前提是你得坐在终端前面一句一句地跟它对话。你输入指令它执行你关掉终端它就停了。本质上它还是一个“你在场才动”的交互式工具。Routines 改变的就是这个前提。它把一整套工作打包成一个可以自动触发的“任务包”里面包含三样东西一段指令prompt、一个代码仓库、一组连接器比如 GitHub、Slack、Linear、Google Drive。然后你给它设一个触发条件——定时触发、API 触发、或者 GitHub 事件触发。设好之后你关电脑、断网、睡觉它在云端服务器上继续跑。我第一次看到这个机制的时候脑子里冒出来的类比是扫地机器人。扫地机器人改变家务不是因为它比你扫得干净而是因为你不用在场。你上班它扫地你睡觉它充电。Routines 做的是同一件事只不过场景从“扫地”换成了“代码维护”。具体到 PR 场景这个变化尤其明显。以前有人提了一个 PR你得手动去看改动、跑测试、写 review 意见。现在你可以设一个 GitHub 事件触发的 Routine有人提 PR它自动读 diff、跑测试、生成 review 评论。整个过程不需要你打开电脑。这篇文章会拆解 Routines 的自动化机制给出可复制的配置片段说明如何通过 TaoToken 统一 Key 和 API 通道接入最后用实际请求验证整个流程能不能跑通。如果你正在用 Claude Code 做日常开发或者想搞清楚“AI 值夜班”这件事到底怎么落地下面的内容可以直接跟着操作。2. 前置准备用 TaoToken 统一 Key 和 API 通道接入 Claude Code在配置 Routines 之前需要先把 Claude Code 的 API 通道准备好。这里我用 TaoToken 来做统一接入原因是它把 Key 管理、模型调用、额度查看放在了一个控制台里配置一次之后后面写 Routine 的时候不用再反复换 Key。2.1 获取 API Key 和 Base URL打开 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite注册或登录之后进入控制台的 API Keys 页面。路径是https://taotoken.net/console/api-keys在这个页面创建一个新的 API Key复制出来。注意 Key 只在创建时显示一次建议先存到密码管理器里。Base URL 统一用https://taotoken.net/api这个地址不加任何 UTM 参数直接作为 Claude Code 的 API 端点使用。2.2 配置 Claude Code 的 settings 文件Claude Code 的配置通常放在用户目录下的.claude/settings.json。如果你用的是项目级配置也可以放在项目根目录的.claude/settings.json。我建议先用用户级配置这样所有项目都能复用。文件路径macOS/Linux~/.claude/settings.jsonWindows 下对应C:\Users\你的用户名\.claude\settings.json配置内容如下把sk-开头的 Key 替换成你刚才创建的那个{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }这里三个字段分别对应 Base URL、Key、Model ID。Model ID 可以根据你实际需要换成其他可用模型但建议先用一个稳定的版本跑通流程。2.3 验证 Claude Code 能正常调用配置写完之后打开终端进入任意一个 git 仓库目录运行claude --version确认 Claude Code 已经安装。然后运行一个最简单的对话测试claude -p 用一句话说明这个仓库是做什么的如果返回了正常的文本结果说明 Base URL 和 Key 都配置成功了。如果报 401说明 Key 有问题如果报连接超时检查 Base URL 是否写成了https://taotoken.net/api而不是其他路径。这一步跑通之后Routines 的 API 通道就算准备好了。接下来进入实际配置环节。3. 可复制的 Routines 配置PR 自动 review 的完整片段Routines 的配置方式有三种网页端、命令行、桌面客户端。这里我用命令行方式来做因为配置片段可以直接复制到项目里方便版本管理。3.1 Routine 配置文件的结构一个 Routine 本质上是一个 JSON 或 TOML 描述文件包含触发条件、执行指令、仓库信息和连接器。Claude Code 的命令行工具会读取这个文件然后把它注册到云端。我建议在项目根目录建一个.claude/routines/目录里面放具体的 Routine 文件。比如项目根目录/ .claude/ routines/ pr-review.json3.2 PR 自动 review 的 JSON 配置下面是一个完整的 PR review Routine 配置可以直接复制修改{ name: pr-auto-review, description: 当有新的 PR 提交时自动读取 diff、跑测试、生成 review 意见, trigger: { type: github_event, event: pull_request, actions: [opened, synchronize], repository: your-org/your-repo }, prompt: 你是一个代码审查助手。请完成以下步骤\n1. 读取当前 PR 的完整 diff\n2. 检查是否有明显的逻辑错误、边界条件遗漏、安全问题\n3. 运行仓库中的测试命令如果存在 package.json 则运行 npm test如果存在 Makefile 则运行 make test\n4. 根据测试结果和代码改动生成一段结构化的 review 意见包含改动概述、潜在问题、测试结果、建议修改点\n5. 将 review 意见以评论形式提交到该 PR。, connectors: [ { type: github, repository: your-org/your-repo } ], model: claude-sonnet-4-20250514, max_tokens: 8192 }几个关键字段说明trigger.type设为github_event表示由 GitHub 事件触发。event设为pull_requestactions包含opened和synchronize意思是 PR 新开或者有新提交时都会触发。prompt是核心指令我把它写成了分步骤的形式这样 Routine 执行的时候不容易漏掉环节。你可以根据自己的仓库情况调整测试命令。connectors里声明了 GitHub 连接器需要提前在 TaoToken 控制台或者 Claude Code 的授权页面完成 GitHub 授权。3.3 注册 Routine 并确认状态配置文件写好后在项目根目录运行claude routines register .claude/routines/pr-review.json如果注册成功会返回一个 routine ID。你可以用下面的命令查看当前所有已注册的 Routineclaude routines list输出里应该能看到pr-auto-review的状态是active。如果状态是pending说明连接器授权还没完成需要去控制台补授权。3.4 定时触发的配置变体如果你不想用 GitHub 事件触发也可以改成定时触发。比如每天凌晨 3 点跑一次依赖巡检{ name: dependency-check, description: 每天凌晨检查依赖安全漏洞并尝试升级, trigger: { type: schedule, cron: 0 3 * * * }, prompt: 检查当前仓库的依赖列表对比已知安全漏洞数据库如果有高危漏洞尝试升级到安全版本并运行测试。如果测试通过提交一个 PR如果测试失败生成一份报告。, connectors: [ { type: github, repository: your-org/your-repo } ], model: claude-sonnet-4-20250514 }cron字段用的是标准 cron 表达式0 3 * * *表示每天凌晨 3 点执行。这个配置适合做那种“不需要人盯着、定期跑一次”的任务。4. 验证请求与成功结果确认 Routine 真的在跑配置注册好之后不能只看状态是 active 就完事得实际触发一次确认整个链路是通的。4.1 手动触发一次 RoutineClaude Code 提供了手动触发命令方便调试claude routines trigger pr-auto-review这个命令会立即执行一次 Routine不管触发条件是否满足。执行过程中终端会输出日志包括它读取了哪些文件、跑了什么命令、生成了什么结果。如果一切正常你会在输出里看到类似这样的内容[info] Routine pr-auto-review triggered manually [info] Fetching PR diff for your-org/your-repo#123 [info] Running test command: npm test [info] Test result: 42 passed, 0 failed [info] Generating review comment... [info] Review comment posted to PR #123 [done] Routine completed in 38s4.2 在 GitHub 上确认 review 评论触发完成之后打开对应的 PR 页面应该能看到一条新的评论内容是 Routine 生成的 review 意见。评论通常会包含改动概述、测试结果、潜在问题几个部分。如果 PR 页面没有出现评论先检查 GitHub 连接器的授权是否包含了repo权限。权限不够的话Routine 能读到 diff但没法写评论。4.3 用 API 触发验证除了手动触发也可以用 API 方式触发模拟外部系统调用curl -X POST https://taotoken.net/api/routines/trigger \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d {routine_id: pr-auto-review, payload: {pr_number: 123}}返回结果里会有一个run_id可以用它查询执行状态curl https://taotoken.net/api/routines/runs/run_id \ -H Authorization: Bearer sk-你的TaoToken密钥如果返回的status是completed说明整个流程跑通了。如果返回failed看error字段里的具体信息通常是测试命令失败或者连接器权限问题。4.4 查看执行日志和消耗TaoToken 控制台里可以查看每次 Routine 执行的详细日志和 token 消耗。路径是https://taotoken.net/console在控制台的调用记录页面能看到每次 Routine 触发的模型调用、输入输出 token 数、耗时。这个对于排查问题和估算成本很有用。5. 常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易踩的坑集中在几个报错上下面逐个说明原因和解决方法。5.1 401 Unauthorized报错信息Error: 401 Unauthorized {error: {type: authentication_error, message: invalid api key}}原因通常是 Key 写错了、Key 过期了、或者 Base URL 和 Key 不匹配。检查步骤第一确认settings.json里的ANTHROPIC_API_KEY是完整的sk-开头字符串没有多余空格。第二确认ANTHROPIC_BASE_URL是https://taotoken.net/api没有多写路径或者少写/api。第三去 TaoToken 控制台的 API Keys 页面确认这个 Key 的状态是 active没有过期。如果以上都没问题重新生成一个 Key 再试一次。5.2 local proxy failed报错信息Error: local proxy failed: connection refused这个报错通常出现在你本地设置了代理但代理服务没有启动或者端口不对。Claude Code 会读取环境变量里的HTTP_PROXY和HTTPS_PROXY如果这两个变量指向了一个不可用的地址就会报这个错。解决方法检查环境变量把不需要的代理设置清掉。unset HTTP_PROXY unset HTTPS_PROXY然后重新运行命令。如果你确实需要通过代理访问确认代理服务已经启动端口和地址写对了。5.3 reading choices 相关报错报错信息Error: reading choices: unexpected end of JSON input这个报错一般出现在模型返回的响应格式不符合预期的时候。常见原因是 Model ID 写错了或者请求参数里max_tokens设得太小导致响应被截断。检查settings.json里的ANTHROPIC_MODEL字段确认写的是有效的模型 ID。然后检查 Routine 配置里的max_tokensPR review 这种任务建议至少设 4096复杂仓库设 8192。如果还是报错把max_tokens临时调大然后重新触发一次看是否恢复正常。5.4 OAuth 授权失败报错信息Error: OAuth authorization failed: invalid redirect_uri这个报错出现在配置 GitHub 连接器的时候。原因是你在 GitHub 上创建 OAuth App 时填的回调地址和 Claude Code 实际使用的不一致。解决方法去 GitHub 的 Settings - Developer settings - OAuth Apps找到你创建的那个 App把 Authorization callback URL 改成 Claude Code 提示的地址。通常格式是https://taotoken.net/api/oauth/callback改完之后重新执行连接器授权命令claude connectors authorize github按照提示完成授权流程。5.5 Routine 注册成功但从不触发如果claude routines list显示状态是 active但 GitHub 上提了 PR 之后没有任何反应先检查触发条件里的repository字段是否和实际仓库的org/repo格式完全一致。大小写敏感写错了就不会触发。然后检查 GitHub 连接器的授权范围确认包含了repo和pull_request权限。权限不够的话事件推送会被 GitHub 拒绝。最后检查 Routine 的触发日志claude routines logs pr-auto-review日志里会显示最近几次触发尝试和结果根据具体报错再定位。6. 把夜间自动化跑起来从配置到持续运行Routines 这个机制真正有意思的地方不是它能让 AI 写代码而是它把“人在场”这个前提去掉了。你设好规则它在云端跑你关电脑它还在跑。这个变化对于 PR review、依赖巡检、issue 分诊这类重复性工作来说省下来的不是几分钟而是“必须有人盯着”这件事本身。如果你打算长期用这个流程有几个实际操作上的建议。第一先用一个低风险的仓库试。不要一上来就在核心生产仓库上开自动 review先找一个个人项目或者内部工具仓库跑几天看看生成的 review 质量怎么样再决定要不要扩大到主仓库。第二Routine 的 prompt 要写得足够具体。我试过把 prompt 写得太泛结果它生成的 review 意见也很泛没什么参考价值。后来改成分步骤、带具体检查项的形式输出质量明显提升。第三定期看 TaoToken 控制台里的调用记录。Routines 跑起来之后token 消耗是持续发生的尤其是定时触发的任务。控制台里能看到每次执行的消耗明细方便你估算成本、调整触发频率。第四把 Routine 配置文件纳入版本管理。.claude/routines/目录直接提交到仓库里这样团队成员可以复用同一套配置改了什么也有记录可查。整个流程跑通之后你晚上关电脑第二天早上打开 GitHub看到的是已经生成好的 review 评论、已经跑完的测试结果、已经分好类的 issue 列表。这件事本身不复杂但它是“AI 从对话工具变成自动化工具”的一个具体落地。
返回列表