第 9 章 · 04 权限模式、后台任务与会话管理 本节摘要:最后一节把"掌控力"讲全。六种权限模式构成从"纯只读"到"全放行"的谱系, 循环切换;后台任务(/task 命令族)让长任务不阻塞对话;Monitor 把后台命令的 stdout 变成事件流; 与 提供定时与周期自动化;会话管理用 、 、 、 玩转多会话与分支。末尾速览安全模式、沙箱与 Agent Teams。 学习目标 阅读完本节,你应当能够: 背出六种权限模式的行为与使用场景,说出切换方式。 用 /task 命令族管理后台任务,并说出 Monitor 的适用场景与 --line-buffered 坑。 说出 /loop、/schedule 与 Cron 三工具,以及定时任务的会话作用域限制。
本节摘要:最后一节把"掌控力"讲全。六种权限模式构成从"纯只读"到"全放行"的谱系,
Shift+Tab循环切换;后台任务(/task 命令族)让长任务不阻塞对话;Monitor 把后台命令的 stdout 变成事件流;/loop与/schedule提供定时与周期自动化;会话管理用/resume、/fork、/subtask、/branch玩转多会话与分支。末尾速览安全模式、沙箱与 Agent Teams。
阅读完本节,你应当能够:
| 模式 | 行为 | 场景 |
|---|---|---|
manual |
只读文件,其余全部询问(原 default,v2.1.200 更名,别名仍可用) |
交互开发、结对编程 |
acceptEdits |
读写文件,命令需询问 | 自动化改代码 |
plan |
纯只读(研究模式) | 代码审查、方案研究 |
auto |
全动作+后台分类器审查 | 自主工作但要安全护栏 |
dontAsk |
只执行预批准工具,其余全拒绝 | 严格受限环境 |
bypassPermissions |
全动作无检查(危险) | 一次性沙箱/废弃环境 |
切换:Shift+Tab 循环(Windows/Linux 也可 Alt+M);默认模式用 claude --permission-mode <mode> 或 permissions.defaultMode 设置。两个细节:即使 acceptEdits 也会在写 shell 启动文件与可执行构建配置(.npmrc/.bazelrc/.pre-commit-config.yaml 等,v2.1.160)前询问;--dangerously-skip-permissions 扩展了放行路径范围(v2.1.121),但 rm -rf / 之类灾难性命令仍会询问——只在一次性沙箱里用它。
长测试、构建、数据库迁移、部署脚本都可以放后台,对话继续干别的:
/task list # 列出所有任务 /task status bg-1234 # 查进度 /task show bg-1234 # 看输出 /task cancel bg-1234 # 取消任务
完成时自动通知(📢 Background task bg-1234 completed)。配置:backgroundTasks 块(enable/maxConcurrentTasks/notifyOnCompletion/autoCleanup/logOutput)。
Monitor(v2.1.98+)让 Claude 监听后台命令的 stdout,匹配事件立即响应——替代轮询(/loop 或 sleep 每轮都烧一次 API 往返,Monitor 安静时零 token 消耗)。两种模式:流过滤(tail -f app.log | grep --line-buffered "ERROR",长跑源持续输出)与轮询发射(定时查 API,有变化才发射)。典型场景:启动开发服务器并监控错误,出错行一出现 Claude 就醒来处理。
⚠️ 头号坑:管道进 grep 必须
--line-buffered,否则 grep 按 4KB 块缓冲 stdout,低流量流上的事件可能延迟几分钟——过滤器"该响不响"时先查这个标志。
/loop:/loop 5m check if the deployment finished,支持自然语言与标准 5 字段 cron。remind me at 3pm to push the release branch、in 45 minutes, run the integration tests。CronCreate/CronList/CronDelete;v2.1.136 起 CronList 输出含限定词与计划提示词正文,便于审计。限制(本地):每会话最多 50 个;会话作用域——会话结束即清;周期任务 3 天自动过期;只有 Claude Code 运行时才触发,错过的触发不补;不跨重启持久。还有抖动机制(周期任务最多 10% 间隔抖动,一次性任务在 :00/:30 边界最多 90 秒)。/schedule 另可创建云端定时任务(跑在 Anthropic 基础设施上,跨重启持久,无需本地运行);注意(v2.1.139)设置 ANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKEN/apiKeyHelper 时,云 /schedule、Remote Control、claude.ai MCP 连接器会静默不可用——要用就登 OAuth 或去掉 API key。需要跨重启的持久自动化,优先 CI/CD 或桌面应用定时任务。
| 命令 | 作用 |
|---|---|
/resume |
按 ID 或名称恢复会话;无参数打开历史会话选择器(v2.1.212+) |
/rename |
给当前会话命名 |
/fork [prompt] |
把对话复制进新后台会话,独立运行,结果不回传(v2.1.212+ 语义) |
/subtask <task> |
派生一个分支子代理,继承完整对话,结果回报到当前会话(v2.1.212+ 语义) |
/branch [name] |
原地切进对话副本,原会话保留,可 /resume 返回 |
claude -c / claude -r "name" |
继续最近会话 / 按名恢复 |
⚠️ 语义变更(v2.1.212):
/fork与/subtask在 v2.1.212 互换了角色——之前/fork是/branch别名(v2.1.161 前)、后来启动分支子代理(v2.1.161-211,即现在/subtask的行为);v2.1.212 起/fork改开后台会话。关掉 Agent 视图时/subtask不可用,/fork保留旧行为。三个复制命令的分工记忆:subtask 回报结果、fork 独立跑、branch 自己切进去。
会话快照自动保存,支持 claude --resume auth-refactor --fork-session "alternative approach" 从 CLI 分支。其他速览:会话回顾(离开后回来自动播报摘要,/recap 手动触发,CLAUDE_CODE_ENABLE_AWAY_SUMMARY 控制);输出风格(/config 选 Default/Proactive/Explanatory/Learning,自定义风格放 .claude/output-styles/);/tui 全屏模式;/voice 语音输入(20 语言);Channels 把外部消息推进会话(研究预览,claude --channels discord,telegram);Remote Control 从手机/浏览器接管本地会话(无入站端口,仅出站 TLS)。
安全模式:claude --safe-mode(或 CLAUDE_CODE_SAFE_MODE=1)禁用全部自定义(CLAUDE.md、插件、技能、钩子、MCP)——配置出问题时隔离故障源的标准手段。
沙箱:/sandbox 或 --sandbox 提供 OS 级文件系统与网络隔离,与权限规则形成纵深防御;sandbox.filesystem.allowWrite/allowRead/denyRead 与 sandbox.network.allowedDomains/deniedDomains(支持 *. 通配,v2.1.113+ 黑名单可覆盖通配)配置;Linux/WSL 需 bwrap/socat;sandbox.filesystem.disabled(v2.1.216+)可只关文件隔离保网络隔离。适合跑不受信/生成代码。
Agent Teams(实验性):CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 开启多实例协作——team lead 分配子任务,teammates 各自独立上下文工作,共享任务列表自协调;--teammate-mode in-process|tmux|auto 选择显示模式。
掌控力全景:六种权限模式构成谱系(manual→acceptEdits→plan→auto→dontAsk→bypassPermissions),Shift+Tab 循环;后台任务四个 /task 命令 + Monitor 事件流(记住 --line-buffered);定时任务 /loop、/schedule 与 Cron 三工具,会话作用域、3 天过期、不补触发;会话三分支命令语义(v2.1.212 起 subtask 回报、fork 独立、branch 自己切)。安全模式、沙箱、Agent Teams 是兜底与进阶。第 9 章结束,下一章把这一切工程化——CLI 与无头模式。
下一节预告:第 10 章 CLI 与工程化——claude -p 无头模式、JSON 输出与 CI/CD 集成。