第 9 章 · 04 权限模式、后台任务与会话管理


文档摘要

第 9 章 · 04 权限模式、后台任务与会话管理 本节摘要:最后一节把"掌控力"讲全。六种权限模式构成从"纯只读"到"全放行"的谱系, 循环切换;后台任务(/task 命令族)让长任务不阻塞对话;Monitor 把后台命令的 stdout 变成事件流; 与 提供定时与周期自动化;会话管理用 、 、 、 玩转多会话与分支。末尾速览安全模式、沙箱与 Agent Teams。 学习目标 阅读完本节,你应当能够: 背出六种权限模式的行为与使用场景,说出切换方式。 用 /task 命令族管理后台任务,并说出 Monitor 的适用场景与 --line-buffered 坑。 说出 /loop、/schedule 与 Cron 三工具,以及定时任务的会话作用域限制。

第 9 章 · 04 权限模式、后台任务与会话管理

本节摘要:最后一节把"掌控力"讲全。六种权限模式构成从"纯只读"到"全放行"的谱系,Shift+Tab 循环切换;后台任务(/task 命令族)让长任务不阻塞对话;Monitor 把后台命令的 stdout 变成事件流;/loop/schedule 提供定时与周期自动化;会话管理用 /resume/fork/subtask/branch 玩转多会话与分支。末尾速览安全模式、沙箱与 Agent Teams。

学习目标

阅读完本节,你应当能够:

  1. 背出六种权限模式的行为与使用场景,说出切换方式。
  2. 用 /task 命令族管理后台任务,并说出 Monitor 的适用场景与 --line-buffered 坑。
  3. 说出 /loop、/schedule 与 Cron 三工具,以及定时任务的会话作用域限制。
  4. 说出 /fork、/subtask、/branch 三命令的分工差异(v2.1.212 语义)。

一、六种权限模式:从只读到全放行

模式 行为 场景
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:事件驱动的流式监听

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 branchin 45 minutes, run the integration tests
  • Cron 三工具: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)。

五、安全模式、沙箱与 Agent Teams

安全模式:claude --safe-mode(或 CLAUDE_CODE_SAFE_MODE=1)禁用全部自定义(CLAUDE.md、插件、技能、钩子、MCP)——配置出问题时隔离故障源的标准手段。

沙箱:/sandbox--sandbox 提供 OS 级文件系统与网络隔离,与权限规则形成纵深防御;sandbox.filesystem.allowWrite/allowRead/denyReadsandbox.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 集成。


发布者: 作者: 灏天文库 转发
评论区 (0)
U