Claude Code 自动模式、-goal 和 -routines:如何在无人值守的情况下运行Agent
公众号名称:奇点先锋
作者名称:扶苏
发布时间:2026-07-03 08:00
你有没有过这种崩溃时刻——半夜 CI 红了一片,第二天还要赶工去修?或者每周例行的依赖审计,每次都得手动跑一遍?接下来把 Claude Code 的 Auto Mode、/goal 命令、/routines 调度这三件套拆得明明白白。看完你就会发现,原来让 AI 员工7×24 自驱干活,根本不需要养一个 DevOps 团队。一杯咖啡的时间,让你从”AI 监工”升级成”AI 老板”。
⚡ 太长不看(TL;DR)
-
Auto Mode = 给 Claude 开”免打扰审批”权限,让它一次性把多步任务跑完
-
/goal= 给 Claude 立一个”KPI”,让它自己拆解路径,而不是事无巨细写 To-Do -
/routines= 给 Claude 装个定时器,按 Cron / Webhook / Git Hook 触发任务 -
三者合一:方向 + 调度 + 执行 = 一个真正不需要人盯的”数字员工”
-
核心安全准则:权限越小越好、失败兜底必须写、测试用例必须跑
正文开始
一、为什么我们需要一个”不用你”的 Claude Code?
先问个扎心的问题👇
你每周到底花多少时间,在手动触发那些”明明可以让 AI 干”的任务上?
跑测试覆盖率检查、写 changelog、扫过期依赖、review PR…… 这些事儿有规律、可重复、却又繁琐得要命。
传统玩法是写个 cron 脚本,或者下班前手动 npx claude "..." 一下。但问题来了——静态脚本没有脑子,AI 对话又没法定时。
于是,Claude Code 推出了三件套:
-
🔥 Auto Mode(自动模式):让 AI 摆脱”步步审批”
-
🎯
/goal命令:给 AI 立一个”KPI” -
⏰
/routines:让 AI 按时间表自动上班
三者合起来的意思就是:你只管睡觉,AI 帮你干活。
二、Auto Mode:把”挨个确认”按钮彻底砸烂
1. 默认 vs. Auto Mode 的区别
默认情况下,Claude Code 是一个”乖学生”:
-
跑命令前问你:“这条命令要执行吗?”
-
写文件前问你:“这个改动可以吗?”
-
删东西前更得问:“你确定要删?”
你写一句 prompt,它回你 15 次确认——这种体验,摸过鱼的兄弟都懂😮💨。
Auto Mode 直接掀桌子:只要权限白名单内的动作,一路狂奔到结束,最后只跟你汇报结果。
2. 怎么开启 Auto Mode?
最暴力的方式:命令行加个 --dangerously-skip-permissions 参数(生产环境慎用)。
更优雅的姿势:用 Claude Code 内置的权限系统,给它白名单某些权限(比如 file_write、shell_exec、web_request),其他权限继续收紧。
比如你想让 Claude 非交互地跑一个任务,直接这样:
```bash
# 非交互模式:跑完即结束,不问问题
claude --no-interactive "审计 auth 模块的测试覆盖率,把报告写到 coverage-report.md"
```
没有 ? (Y/n),没有”请确认”,一句话进、一份报告出。堪称打工人的摸鱼神器。
但这只是一次性任务。想要”天天自动跑”,就要请出下面这俩兄弟👇。
三、/goal 命令:给 Claude 立一个 KPI,而不是 To-Do
1. 这玩意儿跟普通 Prompt 有什么不一样?
博主给你打个比方👇
-
普通 Prompt = To-Do List(“今天买菜、洗衣服、拖地”)
-
/goal= Job Description(“保持家里干净整洁”)
To-Do 写死步骤,Goal 只说结果。剩下的路,Agent 自己走。
2. 一个例子秒懂
/goal 保持 main 分支的测试套件全绿——任何 CI 失败,30 分钟内自动修复
设了这个 Goal 之后,Claude 心里就有数了:
-
✅ 成功长啥样:测试全绿
-
⏰ 触发条件:CI 失败
-
⏳ 时间窗口:30 分钟
至于”该改哪些文件、要不要提 PR、走什么分支策略”——别写,它自己会琢磨。这才是 Agent 跟脚本的本质区别。
3. Goal 的”三段式”写法
Goal 写得烂,AI 就给你摸鱼;写得太死,又退化成脚本。一份合格的 Goal 必须包含三段:
-
清晰的验收标准:啥叫”干完了”?
-
明确的范围:哪些目录、哪些模块能动?
-
明确的禁区:哪些事绝对不能干?
反面教材:
/goal 提高代码质量
——这种 Goal 写出来,AI 只能一脸懵,最后给你把整个项目 format 一遍。
正面教材:
/goal 重构 /api/handlers 目录,使其遵循 CONTRIBUTING.md 里规定的错误处理规范。
不要动任何数据库 migration 文件。
——目标明确、范围清晰、禁区明示,AI 就能放心开干。
4. 持久 Goal vs. 会话 Goal
默认情况下,/goal 只在当前会话有效,关掉就没了。
想要跨会话、跨定时任务一直生效?把它存到项目的 .claude 配置目录里。这是跟 /routines 联动的前置条件。
四、/routines:给 Claude 装个闹钟
1. 啥是 Routine?
Routine = 触发器 + Goal + 权限上下文,三件套打包成一个可重复执行的工作流。
来看一个真实例子:
```yaml
# 文件:.claude/routines/daily-dependency-audit.yaml
name: daily-dependency-audit
schedule: "0 9 * * 1-5" # 工作日早上 9 点
goal: |
检查过期的 npm 依赖。如果有安全告警,
就开一个 GitHub Issue 写明情况。
如果是非破坏性更新,直接提个 PR 改上去。
permissions:
- file_write
- shell_exec
- github_api
```
设完之后——周一到周五早上 9 点,Claude 自动醒来、扫依赖、判断风险、开 Issue 或提 PR。你连手指都不用动,这就是数字员工的真正形态。
2. 怎么创建和管理 Routine?
```bash
/routines new # 新建(交互式向导)
/routines list # 列出所有 routine
/routines run daily-dep # 手动跑一次(上线前先测这个!)
```
除了交互式向导,你也可以直接写 YAML 文件,扔到项目的 .claude/routines/ 目录下。博主更推荐后者——可以进 Git 版本管理,谁改了一目了然。
3. 触发器不只有 Cron!
Routine 的触发器远不止定时任务,还能接这些👇
-
📂 文件系统事件:配置文件改了,自动跑校验
-
🔔 Webhook:CI 系统推送事件,自动触发
-
🪝 Git Hook:commit、merge 后自动跑
-
🖱️ 手动触发:临时跑一次(跟手动模式一致)
说白了,Routine 不是定时任务脚本,而是可复用的智能工作流。
五、三件套合体:真正的”无人值守 Agent”
1. 它们是怎么配合的?
| 组件 | 职责 |
|---|---|
| Auto Mode | 解决”执行问题”——AI 不再等你审批 |
/goal | 解决”方向问题”——AI 知道目标是什么 |
/routines | 解决”时机问题”——AI 知道啥时候该干活 |
合起来就是:一个能按时起床、知道今天该干啥、还不用你盯的 AI 员工。
2. 实例 1:PR Review 自动预处理
需求:每次有人对 main 提 PR,自动生成结构化 review 评论。
Step 1:定义 Goal
/goal 每当新 PR 针对 main 提出来时,分析 diff 并写一条结构化评论,
覆盖:(1) 潜在 Bug,(2) 缺失的测试用例,(3) 风格规范违规,(4) 代码亮点。
最后把评论发到 PR 上。
Step 2:创建 Routine
```yaml
name: pr-review-prep
trigger:
type: webhook
event: pull_request.opened
branch: main
goal: pr-review-prep-goal
permissions:
- github_api
- file_read
```
Step 3:开启 Auto Mode
```yaml
auto_mode: true
skip_confirmations:
- file_read
- github_api_read
- github_api_comment
```
搞定。从此以后,每个 PR 一提出来,几分钟内就有 AI 写的 review 摘要。开发压根不用记着”哦我得跑一下”。
3. 实例 2:周末凌晨自动重构
需求:每周六凌晨 2 点,让 Claude 扫一遍 TODO:REFACTOR 标记的函数,自动重构并跑测试。
```yaml
name: weekly-refactor-pass
schedule: "0 2 * * 6" # 周六凌晨 2 点
goal: |
扫描代码库里所有带 TODO:REFACTOR 注释的函数,
按注释里的说明重构它们。每改一个就跑一遍测试套件。
如果测试挂了,回滚改动并开一个 GitHub Issue。
最后把所有成功的重构打包进一个 PR。
permissions:
- file_read
- file_write
- shell_exec
- github_api
auto_mode: true
```
这个 routine 跑的时候你正在睡觉。周一早上醒来,PR 已经静静地躺在仓库里——祖传代码就这么无声无息地被清理了,堪称”懒人重构”的终极形态。
六、权限管理:这是最关键的一环
博主见过太多”翻车现场”——AI 干太多、或者该干的时候被权限拦住了。根本原因都是权限配置没做好。
1. 三级权限模型
Claude Code 的权限分三档:
-
Always allow:直接放行,不问
-
Ask once per session:开头问一次,后面放行
-
Always ask:每次都问
跑 Auto Mode 的 routine 时,大部分动作应该是”Always allow”,但只允许它真正需要的那些。
2. 这些动作永远要”收紧”!
哪怕开了 Auto Mode,下面这些动作也必须保留确认:
-
🗑️ 删除文件/目录:除非任务就是清理,否则别给权限
-
🚫 推送到保护分支:让 AI 开 PR,人类来 merge
-
🌐 超出范围的外部 API:GitHub routine 不应该能访问任意网站
-
🔐 密钥/凭证访问:能少给就少给,最好全程审计
3. 日志审计别偷懒
每个 Auto Mode 会话都会生成日志。建议养成习惯,每周翻一翻:
-
哪些动作让你意外?
-
哪些任务半路挂了?为啥挂?
-
哪些权限请求被拒了?(这往往说明你的白名单需要调整)
还可以让 Claude 把日志以 结构化 JSON 输出,方便接 ELK / Datadog 这类监控。
七、新手最容易踩的 4 个坑
坑 1:Goal 写得太模糊
/goal 优化一下代码 ❌ 太宽泛,AI 只能瞎猜
正确姿势:写明成功标准、范围、禁区。
坑 2:权限给得太宽
“为了保险,给它开个全权吧”——这是最危险的思路。
权限爆炸半径 = 任务复杂度 × 权限范围。任一项失控,另一项救不了你。
正确姿势:先开最小权限,跑几次没问题再逐步放开。
坑 3:没有失败兜底
“AI 跑挂了怎么办?”
如果你没告诉 Claude 失败时该怎么办,它会直接躺平,啥也不做——日志里一行 failure 就完事了。
正确姿势:在 Goal 里显式写明失败行为:
如果你因为任何原因无法完成重构,开一个 GitHub Issue,
标题:"[Routine Failed]: weekly-refactor-pass",附上错误详情。
不要留下未提交的半成品改动。
坑 4:跑任务不跑测试
Agent 改完代码不跑测试?那不如不跑。
任何涉及代码变更的 routine,都要在 Goal 里写明:改完 → 跑测试 → 通过才能提交。这是 CI/CD 的灵魂,AI 写代码也一样要守。
八、MindStudio:让 Agent 跑出代码库
⚠️ 本节为原文广告内容译介,博主仅做客观翻译,不代表推荐立场。
Claude Code 的这三件套是面向开发者的工具——需要写 YAML、敲命令、懂权限模型。如果你只想拖拖拽拽就搭出”自动跨工具跑任务”的 Agent,MindStudio 提供了另一条路。
它主打”无代码 + 1000+ 工具集成”:定时拉 GitHub 数据、自动发 Slack、写 Notion 文档、发邮件汇总——全在一套工作流里跑完,完全不用碰终端。
如果你已经在用 Claude Code 的 routine,可以把 MindStudio 当作”外围协作层”——让 AI 的产出自动触达业务侧,或者让非技术同事也能看见 Agent 在干啥。
九、常见 FAQ
Q1:什么是 Claude Code Auto Mode?
Auto Mode 是 Claude Code 的一种配置,允许 Agent 执行多步任务时不中断问询。你预先批准一组权限(写文件、跑命令、调 API 等),Claude 就一路跑到结束。特别适合 CI/CD、定时任务等”人插进来反而碍事”的场景。
Q2:/goal 跟普通 Prompt 有什么区别?
普通 Prompt 是一次性指令,/goal 是个持续目标。Claude 在整个会话里都会以这个目标为参考——甚至可以存到项目配置里,跨会话、跨 routine 生效。Goal 决定了 Agent 的”决策参考系”,不是单纯的”初始指令”。
Q3:Claude Code Routine 跟 Cron 一样吗?
不一样。Cron 跑静态脚本,Routine 让 Agent 带着脑子跑——它会看现场情况、根据当前状态做判断、动态调整动作。触发器也不止 Cron,还有 Webhook、文件事件、Git Hook 等。
Q4:怎么防止 AI 在 Auto Mode 里瞎搞?
权限收敛是核心。只给任务必需的那几种权限;不可逆操作(删文件、合保护分支、外部写操作)保留在”每次都问”档位;Goal 里显式写明失败时的应对策略,别让 AI 自己临场发挥。
Q5:能在 CI/CD 里跑 Routine 吗?
能。Claude Code 的 --no-interactive 模式专门干这个。GitHub Actions、GitLab CI、Jenkins 都能调用。跑长时间 routine 时,记得配置好日志输出和失败处理,让流水线能正确解读 Claude 的结果。
Q6:Routine 跑一半挂了咋办?
默认行为是记日志、停止。如果 Goal 里定义了失败路径(开 Issue / 发通知 / 回滚),Claude 会按那个走。啥都没定义的话,就只剩日志里一行红字。所以生产级 routine 一定要写明失败行为。
十、终极总结:一张图带走全文
如果你只能记住一句话,那应该是这句👇
Auto Mode 决定”能不能放手”,
/goal决定”往哪走”,/routines决定”啥时候走”——三者合一,才是真正的”数字员工”。
最后送大家一份实操 checklist:
-
[ ] Goal 写得明明白白:成功标准 + 范围 + 禁区,缺一不可
-
[ ] 权限给得刚刚好:先窄后宽,跑几次再放开
-
[ ] Routine 配得稳稳的:Cron / Webhook / Git Hook 选合适的触发器
-
[ ] 失败兜底写得硬:AI 挂掉时该开 Issue 还是发通知,写清楚
-
[ ] 测试用例必须跑:没跑测试的 routine 比没有 routine 还危险
-
[ ] 日志定期翻一翻:每周审计一次,看有没有意外动作
做到这 6 点,你就能从”AI 监工”进化成”AI 老板”。剩下的事情,就交给你的数字员工吧。
内容效果不满意?点此反馈