你还在一遍遍给Claude输入指令吗?让AI学会自己加班 | 实测Claude Code上新Routines,附完整教程

19 阅读9分钟

4月14日,Anthropic在Claude Code里上线了一个叫Routines的新功能,一句话概括:你可以把提示词、代码仓库和连接器打包成一个“自动化脚本”,让Claude按时间表、API调用或GitHub事件自己跑起来,全程在Anthropic自家的云端执行,本地电脑可以直接关机。这意味着什么?你晚上睡觉的时候,Claude可以帮你修bug、审查PR、清理开发队列,第二天早上起来直接验收成果就行。今天我就把 Routines 的核心能力、完整配置方法和实战代码全部梳理出来,手把手带大家上手。

image.png

01. Routines 是什么?

1.1 从单点对话到自动化工作流

传统AI编程工具的核心范式是“问答式”交互:开发者提出问题,AI给出回答。虽然能解决代码生成的问题,但每个环节仍然需要人工介入。Routines的出现改变了这一局面。 它允许开发者将复杂的多步骤任务流程定义为可复用的自动化脚本,在Anthropic托管的云端基础设施上执行。一旦配置完成,Claude就能自主完成整个工作流程,不需要你的电脑保持开机状态。

e1f0aa344337bab7d4d6fe1c2e207827.png

1.2 核心能力矩阵

Routines提供了三种触发方式:

触发类型说明适用场景
定时触发按小时/天/周自动执行,CLI中可写自定义cron,最小间隔1小时夜间代码审查、每日构建检查
API触发接收HTTP POST请求启动,每个Routine有独立端点和鉴权token外部系统集成、告警联动、CI/CD流水线
GitHub触发PR、push、issue等事件自动触发,可按作者、标签、分支过滤代码审查自动化、测试验证

需要说明的是,Routines目前提供的是三种触发方式(定时、API、GitHub),而非四种。

1.3 可用范围与每日限额

Routines功能目前以研究预览版形式发布,向Pro、Max、Team、Enterprise订阅用户开放。每日运行次数限制如下:

订阅方案每日可运行次数
Pro用户5次
Max用户15次
Team/Enterprise用户25次

超出部分可走超额计费。所有Routine运行与普通交互会话共用订阅配额。

1.4 触发次数上限与优化策略

对于Pro用户来说,每天5次触发的限制意味着需要合理规划使用场景:

  • 合并多个小Routine为一个大Routine:例如,将代码审查、依赖检查和测试运行整合到一个Routine中,一次触发完成多个任务。
  • 使用条件判断:在GitHub触发中设置精细的过滤器(按作者、标签、分支等),只在真正需要时才触发,避免次数被无关事件消耗。
  • 升级订阅方案:如果自动化需求较大,可考虑升级到Max方案(每日15次)或Team方案(每日25次)。

image.png

02. 快速上手:创建你的第一个 Routines

2.1 代码审查Routine配置

以下是一个完整的代码审查自动化Routine配置示例:

{
"routine_name": "自动化代码审查",
"trigger": {
  "type": "github",
  "events": ["pull_request", "push"],
  "repo_filter": ["org/repo-name"],    "branch_filter": ["main", "develop"]
},
 "steps": [
   {
   "action": "fetch_code",
   "target": "changes",
   "options": {
     "include_new": true,
     "include_modified": true,            
     "exclude_patterns": ["*.lock", "node_modules/**", "dist/**"]      }
 },
 { 
  "action": "analyze",      "focus": ["security", "performance", "best_practices"],      "output_format": "structured_report"
 },
 {
  "action": "comment", 
  "target": "github_pr",
  "format": "markdown",
  "severity_threshold": "medium"
  }
 ],
"notifications": {
"on_complete": "slack",
"on_issue_found": "email"
 }
}

2.2 部署验证 Routine

另一个实用场景是自动化部署验证:

# deploy_verification.sh - 部署验证脚本示例

echo "🚀 开始部署验证流程..."

# 步骤1:环境检查
echo "📋 检查部署环境..."
./scripts/check_env.sh || exit 1

# 步骤2:运行单元测试
echo "🧪 执行单元测试..."
npm run test:unit || { echo "❌ 单元测试失败"; exit 1; }

# 步骤3:执行集成测试
echo "🔗 执行集成测试..."
npm run test:integration || { echo "❌ 集成测试失败"; exit 1; }

# 步骤4:安全扫描
echo "🔒 执行安全扫描..."
./scripts/security_scan.sh || { echo "⚠️ 安全扫描发现警告"; }

# 步骤5:生成部署报告
echo "📊 生成部署报告..."
./scripts/generate_report.sh

echo "✅ 部署验证完成"

2.3 如何创建Routine

在Claude Code中创建Routine,可以通过网页端入口(claude.ai/code/routin…)或在CLI中输入 /schedule 命令进行操作。创建时需要配置三个核心要素:提示词(prompt)、代码仓库和连接器(connectors

三、进阶用法:定时任务与API触发

3.1 配置定时触发

官方给出的一个典型例子是:每晚凌晨2点从Linear拉取优先级最高的bug,尝试修复,然后开一个draft PR,你第二天上班直接review就行

定时任务的cron最小间隔为1小时,支持按小时、每晚、每周等节奏执行。

3.2 API触发实现

每个Routine都有自己独立的API端点和鉴权token,任何能发HTTP请求的地方——Datadog告警、CI/CD hook、内部面板——都可以直接调用Claude Code

以下是一个API触发服务的示例:

import anthropic
import os

app = Flask(__name__)
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

@app.route('/trigger-routine', methods=['POST'])
def trigger_routine():
    data = request.json
    routine_name = data.get('routine_name')
    params = data.get('params', {})
    
    message = f"请执行{routine_name},参数:{params}"
    
    response = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=4096,
        messages=[{"role": "user", "content": message}],
        system="你是一个自动化工作流执行器,负责执行预定义的Routine任务。"
    )
    
    return jsonify({
        "status": "triggered",
        "response_id": response.id
    })

@app.route('/webhook/github', methods=['POST'])
def github_webhook():
    event = request.headers.get('X-GitHub-Event')
    
    if event == 'pull_request':
        routine = 'code_review'
    elif event == 'push':
        routine = 'build_verify'
    else:
        return jsonify({"status": "ignored"})
    
    trigger_routine(routine_name=routine)
    return jsonify({"status": "ok"})

if __name__ == '__main__':
    app.run(port=5000)

3.3 GitHub触发细节

装上Claude GitHub App之后,pull_request、push、issue、check_run这些事件都可以当触发器

一个比较实用的玩法是:让它盯着某个敏感目录(比如 /auth-provider 模块),该模块的任何改动都自动总结并发布到指定频道。每个匹配的PR会拿到独立session,后续的评论和CI失败它也会继续跟进

⚠️ 安全提醒:Claude默认只能推到 claude/ 前缀的分支,不会直接动main分支,这是一个很实用的安全护栏

四、实战案例:代码审查自动化工作流

4.1 场景描述

假设你维护一个开源项目,每天会收到多个PR。传统做法需要手动逐一审查,耗时且容易遗漏。

使用Routines,你可以构建一个自动化工作流:收到PR时自动获取代码变更、分析潜在问题、生成审查意见、自动在PR下评论。整个过程无需人工介入。

4.2 完整实现

"""
Claude Code Routine - 自动化代码审查完整示例
功能:GitHub PR自动审查、问题分析、评论生成
"""

import anthropic
import requests
import os
from typing import Dict, List

class CodeReviewRoutine:
    def __init__(self, github_token: str):
        self.github_token = github_token
        self.client = anthropic.Anthropic()
        self.headers = {
            "Authorization": f"token {github_token}",
            "Accept": "application/vnd.github.v3+json"
        }
    
    def fetch_pr_files(self, owner: str, repo: str, pr_number: int) -> List[Dict]:
        """获取PR修改的文件列表"""
        url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/files"
        response = requests.get(url, headers=self.headers)
        return response.json()
    
    def analyze_code(self, file_changes: List[Dict]) -> str:
        """使用Claude分析代码变更"""
        analysis_prompt = """你是一个专业的代码审查助手。请分析以下代码变更,关注以下方面:
1. **安全性**:是否有SQL注入、XSS、敏感信息泄露等安全风险
2. **性能**:是否有不必要的循环等性能问题
3. **代码质量**:是否符合最佳实践,命名是否清晰
4. **测试覆盖**:是否提供了必要的测试用例

以下是代码变更:
"""
        for file in file_changes:
            analysis_prompt += f"\n\n文件: {file['filename']}\n"
            analysis_prompt += f"变更类型: {file['status']}\n"
            analysis_prompt += f"补丁:\n{file.get('patch', '无内容')[:2000]}"
        
        response = self.client.messages.create(
            model="claude-3-5-sonnet-20241022",
            max_tokens=2048,
            messages=[{"role": "user", "content": analysis_prompt}]
        )
        
        return response.content[0].text
    
    def post_review_comment(self, owner: str, repo: str, pr_number: int, 
                          comment: str, event: str = "COMMENT"):
        """在PR上发表评论"""
        url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{pr_number}/reviews"
        data = {
            "body": f"## 🤖 Claude Code 自动审查报告\n\n{comment}\n\n---\n*此评论由Claude Code Routine自动生成*",
            "event": event
        }
        response = requests.post(url, headers=self.headers, json=data)
        return response.status_code == 200
    
    def execute(self, owner: str, repo: str, pr_number: int):
        """执行完整的代码审查流程"""
        print(f"🔍 开始审查 {owner}/{repo}#{pr_number}")
        
        # 1. 获取变更文件
        files = self.fetch_pr_files(owner, repo, pr_number)
        print(f"📝 修改文件数: {len(files)}")
        
        # 2. AI分析
        print("🧠 正在进行代码分析...")
        analysis = self.analyze_code(files)
        
        # 3. 发布评论
        print("📤 发布审查评论...")
        success = self.post_review_comment(owner, repo, pr_number, analysis)
        
        if success:
            print("✅ 审查完成!")
        else:
            print("❌ 评论发布失败")
        
        return analysis

# 使用示例
if __name__ == "__main__":
    routine = CodeReviewRoutine(github_token=os.environ["GITHUB_TOKEN"])
    
    review_result = routine.execute(
        owner="your-org",
        repo="your-repo", 
        pr_number=123
    )
    
    print("\n审查摘要:")
    print(review_result)

4.3 运行逻辑说明

  1. 触发:当GitHub仓库收到新的PR时,Routine自动启动
  2. 获取:通过GitHub API获取PR中修改的文件列表和代码差异
  3. 分析:将代码变更发送给Claude模型,进行安全、性能、代码质量等多维度分析
  4. 反馈:将分析结果以评论形式自动发布到PR页面,开发者可直接查看并处理

五、常见问题与避坑指南

5.1 执行频率限制

各订阅方案的每日运行次数上限如上所述:Pro 5次、Max 15次、Team/Enterprise 25次。此外,GitHub触发还有小时级的频控,超出窗口的事件会被直接丢弃,因此如果仓库特别活跃,建议提前把过滤器设置好

5.2 网络与权限问题

Routine执行时提示权限不足,可检查以下两点:

  • 确保GitHub Personal Access Token具有repo和workflow权限
  • Routine在Anthropic的云端基础设施上运行,不依赖本地网络环境

5.3 复杂任务处理

对于复杂任务执行时间过长或中途失败的情况:

  • 为每个步骤设置合理的timeout
  • 使用条件判断让Routine在单个步骤失败时继续执行
  • 拆分过长的Routine为多个子Routine

5.4 安全护栏

Claude默认只能推到 claude/ 前缀的分支,不会直接操作main分支。除非下游review流程非常完善,否则建议保留这个设置

六、总结

本文核心要点:Claude Code Routines是一项云端自动化服务,支持定时、API、GitHub三种触发方式。Pro用户每天5次、Max 15次、Team/Enterprise 25次。配置一次即可在云端自动执行,Mac离线也能跑。关键是合理规划触发策略、用好安全护栏、关注每日限额。

Routines功能代表了AI辅助编程工具发展的重要方向:从被动响应转向主动执行,从单点工具转向工作流平台。对于开发者而言,这意味着可以将更多精力投入到创造性工作中,而将重复性任务交给AI自动化处理。

目前Routines还处于研究预览阶段,功能和使用限制都在快速迭代中。建议开发者持续关注Anthropic官方更新,及时了解新特性和使用限制的变化。

你在日常开发中最想用Routines自动化哪些任务?评论区说说你的想法,我会逐一回复~

关注微信公众号【应用研究社】后续将持续更新AI前沿资讯和实操教程,记得星标不迷路!