1. 工作模式 / 交互模式
10 模块知识库第 1 篇——讲 agent 与用户的「工作模式」关系(先规划还是直接动手 / 写之前要不要审批 / 怎么被打断 / 怎么接管),含 10 个子 mode 深度对比。
本文覆盖 agent 与用户的 10 种工作模式,以及怎么选:
- Plan mode 先输出计划再执行,改代码前强制 review(适合重要的一次性任务)
- Act / Auto mode 跳过 plan 直接动手,或 AI 守门自动放行 routine(适合重复操作)
- Headless / Goal-driven 单轮 prompt 跑完即退,或长跑到 condition 满足(适合 CI / 长跑任务)
- Take over / Step-in 用户随时介入、agent 旁观,或中途追加指令(适合紧急自己上手)
选型快查 (TL;DR)
[!TIP] 用法:看第一列你的场景,直接跳到推荐 mode 和 agent。不需要看完整 10 个子模块。
| 你的场景 | 推荐 mode | 触发方式 / 关键参数 | 代表 agent |
|---|---|---|---|
| 重要的一次性任务(数据迁移 / 部署) | Plan mode | Shift+Tab 或 defaultMode: "plan" | Claude Code / Cursor |
| 重复 routine 操作(每日 ETL / 批量 review) | Auto mode | Shift+Tab 切 Auto,Sonnet 4.6+ | Claude Code Auto |
| 长跑任务(几小时到几天) | Goal-driven + Background | /goal "所有测试通过" | Claude Code / Devin |
| 只想问问题,不要改文件 | Ask mode | Shift+Tab 切 Ask | Claude Code / Cursor Chat |
| 紧急自己上手(agent 卡住) | Take over | "Take over" 按钮 | Claude Code / Devin |
| 周期任务(每周 / 每天 / 每月) | Recurring | RRULE / Cron | ChatGPT Agent / WorkBuddy |
| CI / pre-commit hook | Headless | claude -p "..." --output-format json | Claude Code -p |
导览
10 个子模块,按"用户对 agent 的主动程度"从高到低排列。
| # | 子模块 | 一句话 | 用户主动程度 |
|---|---|---|---|
| 1 | Plan mode(规划模式) | 先输出计划,用户审批后再执行 | 高 |
| 2 | Act mode(执行模式) | 跳过 plan,直接动手 | 中 |
| 3 | Ask mode(只回答) | 只答不写 | 中(只读) |
| 4 | Auto mode(自动分级授权) | AI 守门,自动放行 routine | 中低 |
| 5 | Hybrid(同 session 切换) | 同一 session 内快捷键切 mode | 灵活 |
| 6 | Goal-driven(目标驱动) | 持续跑到 condition 满足 | 低 |
| 7 | Headless / CI(无头模式) | 单轮 prompt,跑完即退 | 极低 |
| 8 | Take over(接管) | 用户随时介入,agent 旁观 | 用户接管 |
| 9 | Step-in(打断) | 中途追加指令,无需 cancel | 用户追加 |
| 10 | Recurring(周期任务) | 定时自动跑 | 系统触发 |
建议阅读路径:
- 新手(15 分钟):子模块 1 → 2 → 3 → 4 → 5,然后看"选型快查"和"选型决策(总)"
- 进阶(30 分钟):6 → 7 → 8 → 9 → 10,关注 Headless / Goal-driven / Recurring 的工程化用法
- 选型(2 分钟):只看"选型快查"表 + 文末"选型决策树"
选型决策树(总)
你的任务是什么?
│
├─ 重要的一次性任务(数据迁移 / 部署 / 删改生产数据)
│ └─ Plan mode
│ ├─ 严格控制每一步 ──────────── Claude Code (defaultMode: "plan")
│ ├─ plan 跨 session / 团队交接 ─ Cursor (.cursor/plans/)
│ ├─ 业务规则 + LLM 混合 ────── Agentforce
│ └─ AI 改代码前强制 review ─── TRAE SOLO
│
├─ 重复 routine 操作(每日 ETL / 批量 review / 自动响应)
│ └─ Auto mode
│ ├─ 编码 + 风险分级 ────────── Claude Code Auto (Sonnet 4.6+)
│ ├─ 多模型自动选 ───────────── WorkBuddy Auto
│ └─ 国内云 + 精细编排 ──────── Qwen-Agent
│
├─ 长跑任务(几小时~几天)
│ └─ Goal-driven + Background
│ ├─ 明确通过标准 ───────────── Claude Code /goal
│ └─ 几天到几周 ─────────────── Devin Multi-week
│
├─ 只想问问题(不动文件)
│ └─ Ask mode
│ ├─ CLI / 终端 ─────────────── Claude Code Ask
│ └─ IDE 内 ─────────────────── Cursor Chat (Cmd+L)
│
├─ 紧急自己上手(agent 卡住)
│ └─ Take over
│ ├─ terminal ───────────────── Claude Code
│ └─ browser ────────────────── Devin / ChatGPT Agent Operator
│
├─ 周期任务(每周 / 每天 / 每月自动跑)
│ └─ Recurring
│ ├─ 通用周期 ───────────────── ChatGPT Agent Recurring
│ ├─ 代码依赖更新 ───────────── Devin Scheduled dependency updates
│ ├─ 国内云 + 精细时间 ──────── WorkBuddy Automation
│ └─ 企业级 + 后台监控 ──────── Agentforce Operations
│
└─ CI / pre-commit hook(无交互,单轮)
└─ Headless
└─ claude -p "..." --output-format json子模块展开
子模块 1:Plan mode(规划模式)
[!TIP] 本节要点:重要任务(数据迁移 / 部署 / 删改生产数据)必须先规划。Plan 阶段 agent 通常被限制为只读,plan 完了给用户 5 个选项选。
定义
agent 在动手前先输出完整计划(目标、步骤、影响范围、验证方法),用户确认后才进入执行。Plan 阶段 agent 通常被限制为只读,不能修改文件或执行写操作。
典型实现
[官方支持] Claude Code — Read-only + 5 选项审批
plan 阶段主对话只读,Plan subagent 在独立 context 做调研。plan 完成后弹出 5 选项:
- Yes, and auto-accept edits
- Yes, and manually approve edits
- No, keep planning
- No, refine plan further
- Refine with Ultraplan(浏览器中多人 review)
触发方式:
# 快捷键(循环切换 mode)
Shift+Tab
# 命令行启动时锁定
claude --permission-mode plan
# 单次触发(只影响当前 turn)
/plan 帮我重构这个模块
# 配置文件锁定(整个 session)
# settings.json
{ "defaultMode": "plan" }Plan 工作流 4 阶段:Explore → Plan → Implement → Commit。Plan 文档可按 Ctrl+G 在 $EDITOR 中编辑后再让 Claude 执行。
资料:
- 官方 docs:https://code.claude.com/docs/en/permission-modes
- 最佳实践:https://www.anthropic.com/engineering/claude-code-best-practices
- 数据来源:、
:256、:321
[官方支持] Cursor — 持久化 plan 文件
plan 直接存进 .cursor/plans/ markdown 文件,可被团队其他人查看,跨 session 续用。
适用场景:团队交接、resume 续干、plan 评审记录。
资料:
- 官方 docs:https://cursor.com/docs
- 来源:
[官方支持] Devin — Session 内 Show plan
session 里点 "Show plan" 按钮查看当前计划,review 后选 approve / reject / modify。Devin 没有显式 plan-only mode,默认就是 plan + execute 流程。
资料:
- 官方 docs:https://docs.devin.ai/
- 来源:
[官方支持] Agentforce — 业务规则脚本(Agent Script)
用类 JavaScript 语法定义 condition / loop / variable / transition,把业务规则的确定性和 LLM 的灵活性结合。例:
// Agentforce Agent Script 示例
if (customer.tier === "enterprise") {
escalate_to_human;
} else {
auto_respond_with_kb;
}适用场景:业务规则必须 100% 执行(如金融、医疗、合规场景)。
资料:
[官方支持] TRAE SOLO — PlanAgent 架构
AI 改代码前必须人工 review。PlanAgent 在 AI 执行步骤前拦截。官方文档将此机制称为防止 AI 越界的标准做法。
适用场景:国内团队、需要严格 code review 流程。
资料:
- 官方 docs:https://docs.trae.ai/
- 来源:、
:401
跨 agent 实现差异
快速对比(3 个最常用):
- Claude Code — Read-only + 5 选项审批。
Shift+Tab切换,defaultMode锁定。Plan 文档可在$EDITOR里改完再让 agent 执行。 - Cursor — 持久化 plan 文件,存进
.cursor/plans/,团队可见,跨 session 续用。 - Devin — Session 内 Show plan 按钮,默认就是 plan + execute 流程,无独立 plan-only mode。
展开:8 个 agent 完整对比
| Agent | Plan 实现 | 触发方式 | Plan 持久化 | 适用场景 | 官方 doc |
|---|---|---|---|---|---|
| Claude Code | Read-only + 5 选项 | Shift+Tab / 命令行 / /plan / defaultMode | 可在 $EDITOR 编辑后执行 | 编码 / 通用 / 严格控制 | permission-modes |
| Cursor | 持久化 plan 文件 | Shift+Tab | .cursor/plans/ | 团队交接 / 跨 session | cursor.com/docs |
| Devin | Session 内 Show plan | "Show plan" 按钮 | session 内 | 长跑编码 / 跨 repo | docs.devin.ai |
| Agentforce | 业务规则脚本 | Atlas 引擎自动调度 | Agent Script 持久化 | 企业级 + 严格业务规则 | agent-builder |
| TRAE SOLO | PlanAgent 架构 | 自动 + 强制 review | PlanAgent 日志 | 国内团队 + code review | trae.ai |
| Qwen-Agent | Plan 模式(百炼可视化) | 可视化编排触发 | 应用模板持久化 | 国内 + 阿里云生态 | 百炼 |
| WorkBuddy | Plan 模式(用户确认) | "Plan" 按钮 | session 内 | 国内 + 微信生态 | codebuddy.cn |
| Antigravity | Plan → Review → Execute → Verify 4 阶段 | 自动 | Plan artifact 持久化 | Google 生态 | antigravity.google/docs |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 严格控制每一步 | Claude Code |
| plan 跨 session 续用 | Cursor |
| 业务规则与 LLM 结合 | Agentforce |
| AI 改代码前强制人工 review | TRAE SOLO |
| 国内云生态 + 可视化编排 | Qwen-Agent / WorkBuddy |
| Google 生态 | Antigravity |
注意事项
[!WARNING] 常见踩坑
- Plan mode 用于简单改动(typo 修正)会增加操作步骤,不适合频繁小改动场景
- plan 内容若仅停留在对话窗口、未持久化,下次 session 续用时无法引用
- plan 应具体到文件 / 行号 / 字段。抽象表述(如"优化代码")会导致 approve 后 agent 自行扩展解释
[!IMPORTANT] 关键行为差异(不踩会出事)
- Claude Code 的
/plan单次触发(只影响当前 turn)与defaultMode: "plan"配置(锁定整个 session)行为不同- Ultraplan 适合多人 review plan 的场景,单人使用会增加流程复杂度
实际场景示例
场景 1:500 个老客户数据从 Excel 迁到 CRM
| # | 行为 | 状态 |
|---|---|---|
| 1 | 用户告诉 agent:"帮我把 500 个老客户的 Excel 迁到 CRM" | 输入 |
| 2 | agent 输出 plan:数据源 / 字段映射 / 验证策略 | Plan mode |
| 3 | 用户 review plan,确认字段映射无误 | 审批 |
| 4 | agent 执行迁移 | Act mode |
| 5 | 用户 spot check 结果 | Take over / 验证 |
场景 2:团队接手别人未完成的代码改动
Plan agent → 读 .cursor/plans/ 找历史 plan → 基于 plan 续干适合 Cursor 持久化 plan 模式。
场景 3:金融场景必须先校验业务规则
用户请求 → Agent Script 检查规则 → 触发条件 → 自动响应或升级适合 Agentforce。
相关链接
- 模块:
- 模块 5 - 执行与沙箱:Plan mode 与 Permission mode 关系
- 模块 8 - 协作与多 Agent:HITL 介入点
- Use case:
- 开 Shopify 店(选品计划)
- PR review(plan 审核)
- 数据迁移(Plan 必要性)
- Features:
- Claude Code features 第 1-10 行(Plan mode 详情)
子模块 2:Act mode(执行模式)
[!TIP] 本节要点:agent 跳过 plan 阶段、直接执行任务。大多数 agent 的默认 mode。核心权衡是"效率"和"风险"。
定义
agent 跳过 plan 阶段,直接执行任务。大多数 agent 的默认 mode。
典型实现
[官方支持] Claude Code — Accept Edits
文件改动自动通过(mkdir、touch、mv、cp、sed 等 fs 命令),bash 命令仍需审批。
触发方式:Shift+Tab 切到 Accept Edits mode。
# settings.json
{ "defaultMode": "acceptEdits" }资料:
- 官方 docs:https://code.claude.com/docs/en/permission-modes
- 来源:
[官方支持] Claude Code — Bypass Permissions
所有权限 prompt 全部跳过。限制:只能在 sandboxed container / VM 中使用;root + 此 flag 在 host 上被拒。
触发方式:Shift+Tab 切到 Bypass Permissions mode。
资料:
- 官方 docs:https://code.claude.com/docs/en/permission-modes
- 来源:
[官方支持] Devin — 默认 autonomous
Devin 默认就是 plan + execute 流程,3h session timeout(long task 自动 kill)。
资料:
- 官方 docs:https://docs.devin.ai/
- 来源:
跨 agent 实现差异
快速对比(3 个最常用):
- Claude Code — Accept Edits 默认(文件改动自动过、bash 仍需审批);Bypass Permissions 可选(只能在 sandbox 内用)。
- Devin — Autonomous 默认。3h session timeout,长任务自动 kill。
- Cursor — 默认 + Composer background 跑。Plan 阶段只读。
展开:6 个 agent 完整对比
| Agent | Act 默认行为 | 限制 | 文档 |
|---|---|---|---|
| Claude Code | Accept Edits 默认 / Bypass 可选 | Bypass 限 sandbox | code.claude.com |
| Devin | Autonomous 默认 | 3h session timeout | docs.devin.ai |
| Cursor | 默认 + Composer background | Plan 期间只读 | cursor.com/docs |
| WorkBuddy | Craft / Plan / Ask 3 模式 | 默认同意 | codebuddy.cn |
| Coze 3 | 工作流编排 + 默认执行 | Bot 配置决定 | coze.com/docs |
| ChatGPT Agent | 默认 + Apps SDK 控制 | Apps SDK 抽成 ⚠️ 未验证 | chatgpt.com/tools/agent |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 通用编码任务 | Claude Code Accept Edits |
| 长跑编码任务(几小时~几天) | Devin |
| 国内云生态 | WorkBuddy / Coze 3 |
注意事项
[!WARNING] 常见踩坑
- Act mode + bash 命令无审批 = 高风险操作(rm -rf 等)无拦截
- Act 模式下 agent 跑飞时无 Take over 之外的兜底机制,需要依赖 模块 5 - 沙箱 提供的隔离
- Devin 3h session timeout 适用于长任务,需要 模块 2 - Scheduled dependency updates 续期
- ChatGPT Agent Apps SDK 抽成比例 ⚠️ 未找到官方明示,使用前建议核查最新 OpenAI 公告
[!IMPORTANT] 关键行为差异
- Bypass Permissions 在 host 上以 root 运行会被拒;只能在 sandbox 内使用
实际场景示例
场景:周末值班,CI 失败需要立即修复
Devin session 自动启动 → plan → approve → 修复 → push → 通知 on-call适合 Devin Event-driven automation(企业版)。详见 Use case - PR review。
相关链接
- 模块:
- 模块 5 - 执行与沙箱:Bypass mode 与 sandbox 关系
- 模块 2 - 触发与自动化:长跑任务的续期机制
- Use case:
- PR review:Devin 长跑场景
子模块 3:Ask mode(只回答不执行)
[!TIP] 本节要点:agent 只回答问题,不调用任何写操作的工具(read-only 工具可调,如 search / read)。适合问答场景。
定义
agent 只回答问题,不调用任何写操作的工具(read-only 工具可调用,如 search / read)。
典型实现
[官方支持] Claude Code Ask mode
不调用 write / edit / bash 写操作工具。Shift+Tab 循环到 Ask。
资料:
[官方支持] WorkBuddy Ask 模式
只查不写,适合问答场景。
资料:
- 来源:
[官方支持] Cursor Chat mode(Cmd+L)
IDE 内问答,不修改文件。
资料:
- 官方 docs:https://cursor.com/docs
跨 agent 实现差异
| Agent | Ask 触发 | 限制 | 文档 |
|---|---|---|---|
| Claude Code | Shift+Tab 切 Ask | 不调 write / edit / bash | code.claude.com |
| WorkBuddy | "Ask" 按钮 | 不调写工具 | codebuddy.cn |
| Cursor | Cmd+L | IDE 内只读 | cursor.com/docs |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 概念问答 / 解释代码 | Claude Code Ask |
| 国内用户 | WorkBuddy Ask |
| IDE 内问答 | Cursor Chat |
注意事项
[!WARNING] 常见踩坑
- Ask mode 下 agent 给出的代码 / 配置只是建议,需手动复制粘贴应用
- 不区分 Ask / Act mode 时,agent 默认就调用写工具,可能误删文件
- 排查问题时建议显式切到 Ask,避免 agent 顺手"修"了一下
实际场景示例
场景:新员工入职,问"项目用什么框架?"
新员工 → Cursor Chat → 答案(不修改任何文件)相关链接
- 模块:
- 模块 3 - 记忆与上下文:Ask 时的 context 范围
子模块 4:Auto mode(自动分级授权)
[!TIP] 本节要点:用一个独立 classifier model 评估每条命令的风险,自动批准 routine 操作,block 危险操作。比 Act mode 多一层 AI 守门。
定义
agent 用一个独立的 classifier model 评估每条命令的风险,自动批准 routine 操作,block 危险操作。比 Act mode 多一层 AI 守门。
典型实现
[官方支持] Claude Code Auto mode(Sonnet 4.6+ / Opus 4.6+)
classifier 评估每条 command 风险,自动通过 routine 操作;block scope escalation / unknown infrastructure / hostile-content-driven actions。
Fallback 机制:连续 3 次 block 或累计 20 次 block → 自动 fallback 到 default mode。
触发方式:Shift+Tab 切到 Auto mode。
资料:
[官方支持] WorkBuddy Auto
自动选择最优模型(基于任务类型),不涉及权限分级。
资料:
- 来源:
跨 agent 实现差异
| Agent | Auto 实现 | Fallback 机制 | 文档 |
|---|---|---|---|
| Claude Code | classifier 评估风险 | 3 次 block fallback | anthropic.com |
| WorkBuddy | Auto 模型选择 | 无 fallback | codebuddy.cn |
| AutoGPT | Auto 自主模式 | 易跑飞,需手动 stop | docs.agpt.co |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 编码任务需要分级授权 | Claude Code Auto(Sonnet 4.6+) |
| 多模型场景 | WorkBuddy Auto |
| 开源自主 | AutoGPT(注意跑飞风险) |
注意事项
[!WARNING] 常见踩坑
- Auto mode 的 classifier 也可能误判。关键操作(删文件 / force push)仍需 模块 2 - Hook 二次拦截
- AutoGPT Auto 模式无 fallback,容易跑飞无目标,建议设 Goal 限制(见 模块 6 - Goal-driven)
[!IMPORTANT] 关键行为差异
- Claude Code Auto 连续 block 3 次会自动 fallback,可能错过真正危险的命令
实际场景示例
场景:每日批量 ETL 任务
Schedule 触发 → Auto mode → classifier 评估 → 通过 routine 操作 → 失败时 block + 通知适合 Claude Code Auto + Schedule 组合。详见 Use case - 数据迁移 和 Use case - 周报自动化。
相关链接
- 模块:
- 模块 2 - 触发与自动化:Auto 与 Schedule 组合
- 模块 6 - 推理与思考:Goal 限制 Auto 跑飞
- Use case:
子模块 5:Hybrid / 多模式(同一 session 内切换)
[!TIP] 本节要点:用户可在同一个 session 内用快捷键(Shift+Tab 等)循环切换 Plan / Act / Ask 等模式,无需重启 session。
定义
用户可在同一个 session 内用快捷键(Shift+Tab 等)循环切换 Plan / Act / Ask 等模式,无需重启 session。
典型实现
[官方支持] Claude Code
# 循环切换 mode
Shift+Tab # Default → Plan → Accept Edits → Auto → Bypass
# 单次触发(只影响当前 turn,不等同于 defaultMode)
/plan 帮我看一下这个函数
# 配置文件锁定(整个 session)
# settings.json
{ "defaultMode": "plan" } # 锁定为 Plan
{ "defaultMode": "acceptEdits" } # 锁定为 Accept Edits/plan 单次触发只影响当前 turn,不锁定 mode。
资料:
[官方支持] Cursor
Shift+Tab 切换 Plan / Build。
资料:
- 官方 docs:https://cursor.com/docs
跨 agent 实现差异
| Agent | 切换方式 | 可切换 mode | 锁定方式 |
|---|---|---|---|
| Claude Code | Shift+Tab | Default / Plan / Accept Edits / Auto / Bypass / DontAsk | defaultMode 配置 |
| Cursor | Shift+Tab | Plan / Build | UI 切换 |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 复杂 session 内频繁切换 | Claude Code(Shift+Tab + 配置) |
| IDE 内 | Cursor |
注意事项
[!WARNING] 常见踩坑
- 切换 mode 后需确认当前模式,避免误操作(从 Plan 切到 Act 后 agent 突然开始改文件)
- 配置文件中的
defaultMode修改后需重启 session 才生效
[!IMPORTANT] 关键行为差异
/plan单次触发(只影响当前 turn)与defaultMode: "plan"配置(锁定整个 session)行为不同
实际场景示例
场景:同一个 session 内先规划后执行
用户输入"修一下 bug"
→ Shift+Tab 切 Plan
→ agent 出 plan
→ approve
→ Shift+Tab 切 Act
→ agent 执行
→ 完成相关链接
- 模块:
- 模块 5 - 执行与沙箱:Permission mode 切换的底层机制
子模块 6:Goal-driven(目标驱动)
[!TIP] 本节要点:用
/goal <condition>触发一个独立的 evaluator model,session 持续工作直到 condition 满足。evaluator 每 turn 完重新 check。
定义
用 /goal <condition> 触发一个独立的 evaluator model,session 持续工作直到 condition 满足。evaluator 每 turn 完重新 check。
典型实现
[官方支持] Claude Code /goal <condition>
触发 evaluator(独立 model),session-wide 每 turn check。Claude 持续工作直到满足。
适合"明确通过标准"的任务。
# 持续跑到测试通过
/goal "所有 pytest 通过且无新增 lint error"资料:
[官方支持] ChatGPT Agent Recurring automation
周期任务,如"每周一自动生成本周周报"。
资料:
- 官方 docs:https://chatgpt.com/tools/agent
跨 agent 实现差异
| Agent | Goal 实现 | 退出条件 | 文档 |
|---|---|---|---|
| Claude Code | /goal <condition> + evaluator | 条件满足 | anthropic.com |
| ChatGPT Agent | Recurring automation | 周期触发 | chatgpt.com |
| Devin | Multi-week mode | 任务完成或 3h timeout | docs.devin.ai |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 明确通过标准的任务 | Claude Code /goal |
| 周期任务 | ChatGPT Agent Recurring |
| 几天到几周的长跑 | Devin Multi-week |
注意事项
[!WARNING] 常见踩坑
- 目标描述应具体且可验证(如"所有测试通过"),避免模糊目标(如"代码质量更好")
- Goal 与其它约束可能冲突(如"测试全过"与"5 个 commit 都 push")导致循环不收敛
- evaluator 本身有 cost,长跑任务需监控 模块 7 - Monitoring
- Recurring automation 失败时需明确处理策略(重试 / 通知 / 跳过)
实际场景示例
场景:CI 失败后自动修复
CI 失败
→ Webhook 触发 Claude Code session
→ /goal "所有测试通过"
→ agent 改代码 → 跑测试 → 不通过继续改 → 通过 → push相关链接
- 模块:
- 模块 2 - 触发与自动化:Webhook 触发机制
- 模块 6 - 推理与思考:Goal-driven 推理模式
- Use case:
子模块 7:Headless / CI(无头模式)
[!TIP] 本节要点:单轮 prompt + 指定输出格式(text / json / stream-json),不进入交互,跑完即退出。适合 CI / pre-commit hook / 批处理。
定义
单轮 prompt + 指定输出格式(text / json / stream-json),不进入交互,跑完即退出。适合 CI / pre-commit hook / 批处理。
典型实现
[官方支持] Claude Code claude -p "..."
单轮 prompt + --output-format stream-json / json / text + --permission-mode + --model 等参数。
适合 CI / pre-commit hook。
# CI 集成示例
claude -p "分析最近 10 个 commit 的代码风格" \
--output-format json \
--permission-mode plan资料:
- 官方 docs:https://code.claude.com/docs/en/headless
- 来源:
[官方支持] Devin Devin API
通过 API 触发 session,接收 JSON 结果。POST /v1/sessions。
资料:
- 官方 docs:https://docs.devin.ai/api-reference/overview
- 来源:
跨 agent 实现差异
| Agent | Headless 触发 | 输出格式 | 文档 |
|---|---|---|---|
| Claude Code | claude -p "..." | text / json / stream-json | code.claude.com/docs/en/headless |
| Devin | Devin API | JSON | docs.devin.ai/api-reference |
| ChatGPT Agent | Apps SDK webhook | JSON | platform.openai.com |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| CI / pre-commit hook | Claude Code claude -p |
| 程序化触发 | Devin API / ChatGPT Agent Apps SDK |
注意事项
[!WARNING] 常见踩坑
- Headless 模式无交互,出错只能靠 stderr / log 排查
- CI 集成应配
--output-format json便于解析结果- 长跑 Headless 任务需监控 模块 7 - Monitoring
- stream-json 适合实时日志场景,json 适合结果解析场景
实际场景示例
场景:PR 提交时自动跑 agent 评估代码质量
# .github/workflows/code-review.yml
- name: Claude Code Review
run: |
claude -p "review 这个 PR 的代码质量" \
--output-format json \
--permission-mode plan相关链接
- 模块:
- 模块 7 - 验证与监控:Headless 模式下的监控
- Use case:
子模块 8:Take over / 接管
[!TIP] 本节要点:用户随时接管 agent 的手柄(terminal / 浏览器 / IDE),agent 退到旁观状态。
定义
用户随时接管 agent 的手柄(terminal / 浏览器 / IDE),agent 退到旁观状态。
典型实现
[官方支持] Claude Code Take over
接管 terminal,agent 旁观。
[官方支持] Devin Interactive Browser Take over
session 内 "Take over" 按钮,用户直接 run command / edit code,Devin 旁观。
[官方支持] ChatGPT Agent Take over
Operator 整合后,用户可在 web 任务运行时接管浏览器手柄。
[官方支持] Antigravity Computer Use Take over
接管 Google 浏览器,Computer Use 退到旁观。
跨 agent 实现差异
| Agent | Take over 实现 | 适用场景 | 文档 |
|---|---|---|---|
| Claude Code | terminal 接管 | 编码时手动改 | code.claude.com |
| Devin | Browser 接管按钮 | web 任务手动操作 | docs.devin.ai |
| ChatGPT Agent | Operator 浏览器接管 | web 任务手动操作 | chatgpt.com/tools/agent |
| Antigravity | Computer Use | Google 浏览器 | antigravity.google/docs |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 编码场景 | Claude Code terminal take over |
| web 任务 | Devin / ChatGPT Agent Browser take over |
| Google 生态 | Antigravity Computer Use take over |
注意事项
[!WARNING] 常见踩坑
- Take over 结束时应明确通知 agent(如"我改完了,继续你的任务"),避免 context 错位
- Browser take over 期间网页状态变化后,agent 可能误判当前页面
[!IMPORTANT] 关键行为差异
- Take over 后 agent 继续推 reasoning。若用户在 take over 期间已修改文件,agent 可能基于旧 context 做出错误判断
- 详见 模块 8 - HITL 中的 Take over 介入点
实际场景示例
场景:agent 卡在某个网页表单,用户手动填一下
agent 跑 web 任务
→ 卡在登录
→ Take over 按钮
→ 用户手动登录
→ 通知 agent
→ agent 继续相关链接
- 模块:
- 模块 8 - 协作与多 Agent:HITL 介入点
- Use case:
子模块 9:Step-in / 打断
[!TIP] 本节要点:用户在 agent 执行中追加指令,agent 接收后调整方向继续,无需 cancel 整个 session。
定义
用户在 agent 执行中追加指令,agent 接收后调整方向继续,无需 cancel 整个 session。
典型实现
[官方支持] Claude Code
直接在对话窗口追加指令。agent 接收后调整 plan / 任务。
跨 agent 实现差异
| Agent | Step-in 方式 | 限制 |
|---|---|---|
| Claude Code | 对话窗口追加 | 频繁打断可能截断 context |
| Devin | Session 追加指令 | 同上 |
| ChatGPT Agent | 对话窗口追加 | 同上 |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 需要调整方向但不想 cancel | 任何 agent 都支持 |
注意事项
[!WARNING] 常见踩坑
- 打断时机有窗口限制。若 agent 已执行 destructive 操作(如删文件),追加指令无法撤销已发生的修改
- 频繁打断可能导致 context 截断,agent 丢失之前的执行细节
- 打断后建议用一句话总结当前状态,避免 agent context 错位
实际场景示例
场景:agent 在做长跑任务,中途发现要换方向
agent 跑数据迁移
→ 用户:"暂停,先把这个表跳过,优先另一个"
→ agent 调整相关链接
- 模块:
- 模块 8 - 协作与多 Agent:Step-in 与 HITL 关系
子模块 10:Recurring / Schedule workflow(周期任务)
[!TIP] 本节要点:用户设定周期任务(每周 / 每天 / 每月自动跑),agent 平台定时启动 session 执行。
定义
用户设定周期任务(每周 / 每天 / 每月自动跑),agent 平台定时启动 session 执行。
典型实现
[官方支持] ChatGPT Agent Recurring automation
通用周期任务,如"每周一自动生成本周周报"。
[官方支持] Devin Scheduled dependency updates
定期更新依赖(Devin 自动)。
[官方支持] WorkBuddy Automation
iCal RRULE + Cron + 条件触发 + 多动作编排。
[官方支持] Agentforce Operations(2026)
企业级周期任务 + 后台自动化(80x 部署效率,Regrello 收购技术)。
跨 agent 实现差异
| Agent | Recurring 实现 | 定时精度 | 失败处理 | 文档 |
|---|---|---|---|---|
| ChatGPT Agent | Recurring automation | 周/天 | 配置决定 | chatgpt.com |
| Devin | Scheduled dependency updates | 配置 | 通知 | docs.devin.ai |
| WorkBuddy | iCal RRULE + Cron | 分钟级 | 重试 + 通知 | codebuddy.cn |
| Agentforce | Operations | 配置 | Atlas 监控 | salesforce.com |
选型建议
| 推荐场景 | 推荐 agent |
|---|---|
| 通用周期任务 | ChatGPT Agent Recurring |
| 代码周期更新 | Devin Scheduled dependency updates |
| 国内云 + 精细时间控制 | WorkBuddy Automation |
| 企业级 + 后台监控 | Agentforce Operations |
注意事项
[!WARNING] 常见踩坑
- 周期任务的失败处理需明确(失败重试 / 通知 / 跳过)
- 多周期任务并发可能造成资源竞争,需配置任务锁或限流
- 周期任务的输出应持久化存储,便于历史查询
- 跨时区团队注意 schedule 触发时间
实际场景示例
场景:每日销售数据汇总 + 周报生成
每周一 09:00
→ ChatGPT Agent Recurring
→ 抓 Shopify / Amazon 数据
→ 生成周报
→ 邮件详见 Use case - 周报自动化。
相关链接
- 模块:
- 模块 2 - 触发与自动化:Schedule 机制
- Use case:
底层机制:为什么 plan mode 这么设计(借 Claude Code 源码 + Stage 5 视角)
本节补充原内容:前面的 7 段只讲了 plan mode "是什么 / 怎么用",这里讲"为什么这么设计 + 怎么实现的"。参考 Anthropic — Permission Modes、Stage 5.1 Claude Code 基础、Stage 3 Tool use。
4 种 Permission Mode(互斥,同一 session 只能一种)
Claude Code 官方定义 4 种 permission mode,plan mode 是其中之一。所有 agent 的"工作模式"本质上就是这 4 种的切换:
| Mode | 行为 | 适用场景 | 风险 |
|---|---|---|---|
default | 所有写操作(Edit/Write/Bash 写)需用户批准 | 默认安全网 | 慢 |
acceptEdits | Edit/Write 自动批准,Bash 仍需批准 | 日常编码 | 中(改文件可逆) |
plan | 所有写工具被 PreToolUse hook 拦截,exit 2 = 挡下 | 重要任务规划 | 极低 |
bypassPermissions | 全部自动 | 自动化 CI / Auto mode | 极高 |
核心 insight:plan mode 的"只读"不是 agent 变聪明了,而是 hook 在所有写工具调用前返回 exit code 2,等价于用户拒绝。这也是为什么 plan 模式可以让"用户经验不足的 agent"也安全使用——hook 是 LLM 之外的强制层,LLM 自己管不住自己。
切换方式:
# 循环切 4 种 mode
Shift+Tab
# CLI 启动时锁定
claude --permission-mode plan
# 单次触发(只影响当前 turn)
/plan 帮我重构这个模块
# 配置文件锁定(整个 session)
# settings.json
{ "defaultMode": "plan" }Plan Subagent:独立 context 跑调研
plan 阶段,Claude Code 不会让主对话去读所有文件——会委派一个 Plan subagent 在独立 context 里跑:
主对话(只读,等用户决策)
↓ "开始 plan"
↓ 派遣 Plan subagent(独立 context window)
│
├─ 读文件 / 查 API / 跑只读命令
├─ 写 plan 到 ~/.claude/plans/<id>.md 或 .claude/plans/
└─ 把 plan 摘要回主对话
↓
主对话显示 5 选项让用户选为什么用 subagent 而不是主对话直接做:
- context 隔离:Plan 阶段可能读几十个文件,如果在主对话里跑会污染主 context;subagent 跑完即扔
- plan 可追溯:plan 写到文件,用户可以
cat .claude/plans/<id>.md看到 Claude 调研了哪些文件、得出什么结论 - plan 可编辑:按
Ctrl+G在$EDITOR中改 plan 文档,改完让 Claude 按修订版执行——人和 AI 共同编辑同一个 plan
5 选项审批(plan 完成后)
plan 文档写完后,Claude 弹出 5 个选项让用户选:
| 选项 | 含义 | 适用 |
|---|---|---|
| Yes, and auto-accept edits | 通过,后续写操作全部自动批准 | 信任 Claude 一次过 |
| Yes, and manually approve edits | 通过,后续每步还是要确认 | 想看每步细节 |
| No, keep planning | 不通过,继续在 plan 模式 | 觉得 plan 还不够 |
| No, refine plan further | 不通过,Claude 改 plan | 知道哪里要改 |
| Refine with Ultraplan | 浏览器中多人 review(Cursor) | 团队 plan 评审 |
4 阶段工作流(Anthropic 官方)
Explore → 调研代码、读文件、查 API(在 Plan subagent 里跑)
Plan → 写 plan 文档(目标、步骤、影响范围、验证方法)
Implement → 退出 plan,执行写操作(用户批准后)
Commit → git commit + 推 PR跨框架对照:plan 是怎么被抽象的
| 框架/产品 | Plan 实现 | 文件化? | Subagent? | 可编辑? |
|---|---|---|---|---|
| Claude Code | Plan subagent + plan 文件 + 5 选项 | ✅ .claude/plans/*.md | ✅ 独立 context | ✅ Ctrl+G 在 $EDITOR 改 |
| Cursor | .cursor/plans/*.md 持久化,跨 session 续用 | ✅ | ❌ 主对话内 | ❌ |
| Devin | Session 内 "Show plan" 按钮 | ❌ 内存 | ❌ | ❌ |
| Agentforce | 业务规则脚本(类 JS) | ✅ Agent Script | ❌ | ✅ 规则可改 |
| LangGraph(Stage 4) | Plan-Execute graph node pattern | ❌ state | ❌ node | ✅ graph 可重写 |
| ReAct(Stage 3) | Thought step 内含规划 | ❌ | ❌ | ❌ |
关键差异:
- Claude Code 把 plan 独立成 subagent + 文件化——可追溯、可协作、用户能编辑
- LangGraph 把 plan 内嵌成 graph node——紧凑,但 plan 跟 state 混在一起
- ReAct 的 plan 是 LLM 在 Thought 里临时写——无文件化、无 review 流程
对 use case 的影响:
- 重要变更(生产数据迁移 / 删表 / 部署):用 Claude Code / Cursor——plan 文件化,可发给团队评审
- 快速 prototype(Linus 自己的 side project):ReAct 足够——plan 不需要持久化
- 业务规则强制(金融 / 医疗):Agentforce——plan 写成可审计的规则脚本
- 生产 multi-agent:LangGraph——plan 是 graph 的一环,可跟其他 node 组合
ReAct vs Plan:不是非此即彼
很多文章把"Plan-then-Execute"和"ReAct(边想边做)"对立。其实 ReAct 的 Thought step 就是一次微 plan:
ReAct 单步:
Thought: "我需要先查 city 人口,这是这一步的计划"
Action: call lookup_population("taipei")
Observation: "2.6M"
Thought: "好,现在算除法" ← 这是下一步的微 plan
Action: call divide(...)
...Plan mode 的价值是 把"几个 ReAct step"提前打包成文档,让用户先 review 再执行——本质是用确定性换安全,适合重要 + 不可逆 + 多步的任务。不重要 / 可逆 / 单步的任务,直接 ReAct 即可。
延伸:用 hook 强制 plan(不依赖 mode 切换)
如果业务上某些路径必须 plan,可以加 PreToolUse hook:
// .claude/settings.local.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write|MultiEdit"
"hooks": [
{
"type": "command"
"command": "if [[ $CLAUDE_TASK_TYPE == \"production-migration\" ]]; then echo 'production task — need plan first' >&2; exit 2; fi"
}
]
}
]
}
}这让"plan"成为任务级规则,不依赖 mode 切换——agent 在 production-migration 任务下任何写都会被挡,强制先出 plan。
选型决策(总)
| 场景 | 推荐 mode | 代表 agent | 关键参数 |
|---|---|---|---|
| 重要的一次性任务(数据迁移 / 部署) | Plan mode | Claude Code / Cursor | defaultMode: "plan" |
| 重复 routine 操作 | Auto mode | Claude Code Auto / WorkBuddy Auto | Sonnet 4.6+ |
| 长跑任务(几小时到几天) | Goal-driven + Background | Claude Code / Devin | /goal "所有测试通过" |
| 只想问问题 | Ask mode | Claude Code / Cursor Chat | Shift+Tab 切 Ask |
| 紧急自己上手 | Take over | Claude Code / Devin / ChatGPT Agent | "Take over" 按钮 |
| 周期任务(每周/每天自动跑) | Recurring | ChatGPT Agent / Devin / WorkBuddy | RRULE / Cron |
| CI / pre-commit hook | Headless | Claude Code -p | --output-format json |
建议
[!TIP] 实战建议(给新手 + 进阶用户)
- 新手:从 Plan mode 起步,熟练后再切 Auto
- 危险操作:rm -rf / force push / 删生产数据,用 模块 2 - Hook PreToolUse 拦截,不依赖 mode 兜底
- 长跑任务:配 Goal-driven + 明确退出条件
- CI 集成:用 Headless +
--output-format json- Take over 结束:明确通知 agent,避免 context 错位
- 细粒度控制:参考 模块 5 - Permission mode
延伸阅读
相关模块
- 模块 2 - 触发与自动化(Hook / Schedule / Loop)
- 模块 5 - 执行与沙箱(Permission mode 详解)
- 模块 6 - 推理与思考(Goal-driven 推理模式)
- 模块 8 - 协作与多 Agent(Take over / HITL)
- 模块 9 - 定价与商业模式(按 mode 收费差异)
相关 use case
- 开 Shopify 店(选品计划 + Take over)
- PR review(Plan 审核 + Recurring)
- 周报自动化(Recurring + Goal-driven)
- 客服 triage(Ask + Auto)
- 数据迁移(Plan + Goal-driven)