导语:还在一遍遍给AI下指令、等回复、再下指令?大多数开发者把Claude Code当成需要" babysit "的助手在用。今天,我要教你4个命令,让Claude变成真正的自主编程Agent——设定目标,走开,回来收结果。
你输入提示 → Claude回复 → 你检查 → 再输入提示 → Claude回复 → 重复20次... 你是循环本身。你是条件检查器。你是让它持续运转的原因。
你设定条件 → Claude工作 → 快速评估器检查条件 → 未完成则继续 → 完成时给你总结 你只设定一次目标。Claude运行直到达成。
这不是小修小补的工作流调整,这是与工具关系的根本性转变。
大多数开发者从未用过 /goal,但它可能是Claude Code中最强大的功能。
工作原理
你设定一个完成条件。Claude每执行一轮后,一个小型快速模型(默认Haiku)会读取对话记录检查条件是否达成:
❌ 未达成 → Claude自动开始下一轮
✅ 已达成 → 显示"Goal achieved"总结并停止
你再也不需要反复输入提示。Claude会一直工作直到条件满足。

使用方法
/goal all tests in test/auth pass and the lint step is clean 就这么简单。Claude立即开始工作。条件本身就是指令。
实时状态监控
运行中会显示 ◎ /goal active 指示器,显示已运行时长。随时检查状态:
/goal 显示内容:条件描述、运行时长、已评估轮数、已消耗token、评估器最新判断理由。
提前停止
/goal clear (stop、off、cancel、reset、none 都可以作为别名)
万能模板
/goal [任务] until [成功条件], verified by [检查方式], while [约束条件], or stop after [限制] 实战示例

# 示例1:API迁移
/goal migrate auth to the new API until all auth tests pass and unrelated test files are unchanged
# 示例2:带轮数限制的重构
/goal refactor the user service until tests pass, or stop after 10 turns
# 示例3:带时间限制的任务
/goal complete the migration, or stop after 30 minutes 写好条件的关键技能
评估器只能读取对话记录,不能独立运行命令或打开文件。因此你的条件必须是Claude的输出能够证明的内容。

✅ 好条件:
"All tests in test/auth pass and npm test exits 0"
"git status is clean and no other test files are modified"
"Every call site in the module compiles with no errors"
"Issue backlog queue is empty — verified by running the list command"
❌ 坏条件:
"Do your best on the refactor" — 无可衡量的结束状态
"Looks clean" 或 "seems right" — 主观,无法评估
"Improve the code" — 无法验证完成
需要评估器读取不可见文件的条件
💡 黄金法则:如果你无法描述Claude如何在对话记录中证明已完成——重写条件直到可以。
务必添加限制
对于非平凡任务,始终包含轮数或时间限制。否则无法满足的目标将永远运行。
/goal fix checkout tests, or stop after 10 turns
/goal complete the migration, or stop after 30 minutes Claude每轮都会跟踪并报告进度。评估器会判断是否已达到限制。
非交互式运行
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week" 整个循环在一次调用中运行到完成。按Ctrl+C停止。完美适用于CI管道和定时脚本。
与Auto模式结合实现完全无人值守
/goal 移除每轮提示
Auto mode 移除每个工具的提示
两者结合 — Claude完全无人值守地工作,直到条件满足或达到限制。这是Claude Code中最接近完全自主编码Agent的体验。
崩溃后恢复
如果会话以活跃目标结束,使用 --resume 或 --continue 时会自动恢复。条件会延续过来。轮数、计时器和token消耗会重置。从停止处继续。
/loop 按你定义的时间间隔重复运行Claude —— 不是直到条件满足,而是按你设定的节奏。
/goal 说"继续直到这为真",/loop 说"每N分钟继续一次,直到你让它停止。"
最佳适用场景
迭代式重构 —— 你希望Claude执行一轮,暂停,让你检查,然后再执行一轮
需要重复检查的监控任务
逐步清理积压工作 —— Claude每轮处理一个项目,你实时看到进度
轮询随时间变化的外部状态
与/goal的核心区别
特性 /goal /loop 停止条件 条件确认满足时 你停止它,或Claude判断工作完成 节奏控制 连续执行 按设定间隔执行 人工介入 无需 可在间隔期间检查
/schedule 按固定节奏启动Claude —— 独立于任何开放会话。无论你是否打开Claude Code,它都会运行。
/goal 和 /loop 保持当前会话运行,/schedule 创建在后台按计时器独立发生的工作。
可以调度的任务示例
夜间测试运行 —— Claude在凌晨2点运行完整测试套件,将总结发布到Slack
早间分类 —— Claude每天早上审查开放issues,标记它们,标记阻塞项
每周清理 —— Claude每周日扫描死代码、过时注释和TODO项
每日站会准备 —— Claude在早9点前拉取最近提交、开放PR和失败测试到总结中
关键区别
特性 /goal / /loop /schedule 会话依赖 需要开放会话,关闭Claude Code即停止 完全独立运行 持久性 会话级 永久运行直到取消 使用方式 临时工具 基础设施组件
这就是你如何将Claude Code变成基础设施,而不仅是记得打开时才用的工具。
Stop hook让你对Claude何时被允许完成一轮拥有程序化、脚本化的控制。
/goal 在底层使用Stop hook —— 它是一个基于提示的会话级hook,在每轮后触发。但你可以编写自己的Stop hook以实现完全自定义控制。
两种类型
▸ 基于脚本的Stop hooks
运行你的实际测试套件。调用CI端点。检查文件是否存在。查询数据库。任何确定性检查 —— 如果脚本退出码为0,Claude可以停止。否则,Claude继续。
这是最强大的模式:Claude工作,你的测试运行,如果失败Claude再试一次。完全没有人工参与。
▸ 基于提示的Stop hooks
模型针对对话记录评估自然语言条件 —— 完全像/goal。区别在于:Stop hooks存在于你的设置文件中,应用于其范围内的每个会话。/goal 是会话级且一次性的。
何时使用Stop hook vs /goal
场景 推荐方案 一次性条件,仅当前会话 /goal 相同评估逻辑应用于每个会话 Stop hook(基于提示,在设置文件中) 需要脚本运行确定性检查 Stop hook(基于脚本)
改变一切的组合
/goal + Auto mode + 基于脚本的Stop hook(运行你的测试套件) Claude自主工作。每轮后,你的测试运行。如果通过 —— Claude停止。如果失败 —— Claude读取失败输出并重试。你回来时看到绿色构建或清晰解释为何无法达成。
你的需求 推荐命令 "我想让Claude继续工作直到测试通过" /goal all tests pass and npm test exits 0 "我想让Claude在重构时进行迭代轮次,我在每轮之间检查" /loop "我想让测试套件每晚自动运行" /schedule "我想让脚本决定Claude何时可以停止 —— 不是模型" Stop hook(基于脚本) "我想让每个会话自动应用相同条件" Stop hook(基于提示,在设置文件中) "我想让Claude完全无人值守工作 —— 无每轮提示,无每工具提示" /goal + Auto mode
/goal [condition] /goal /goal clear claude -p "/goal [condition]" /goal [condition], or stop after [N turns / N minutes] /goal [任务] until [成功条件], verified by [检查方式], while [约束条件], or stop after [限制] 大多数开发者读完这篇文章,会回到手动输入每一步提示的老路。
那些在下个任务中设置 /goal + Auto mode 的人,将永远不会回头。
设定一个条件。走开。回来收结果。
这就是全部理念。
好的条件应该:
✅ 可客观验证
✅ 基于Claude可输出的内容
✅ 包含明确的完成标准
✅ 有合理的安全限制
❌ 条件过于模糊
❌ 忘记设置时间/轮数限制
❌ 依赖外部状态变化而不检查
❌ 条件与Claude能力不匹配
从小目标开始,逐步增加复杂度
始终包含安全限制
定期检查 /goal 状态了解进度
结合Auto mode实现真正无人值守
使用Stop hooks处理复杂验证逻辑
📌 延伸阅读
Claude Code 官方文档
Claude Code 最佳实践
Tags:#ClaudeCode #AI编程 #开发效率 #自动化 #编程工具 #开发者进阶
本文基于Claude Code官方文档及社区实践经验整理