AI AgentAI 编程信任与治理

Claude Code 这两个月变了什么,又给 Agent Infra 指了什么方向

2026 年 5 月 21 日到 7 月 19 日,Claude Code 密集发布了 58 个版本。公开的更新日志里包含了 1,084 条以 - 开头的记录,其中 687 条是以 Fixed 开头的修复,占了总数的 63%。

这些数字不仅代表着产品的高频迭代。对于 Claude Code 用户,以及 agent harness 的用户和开发者,这批更新说明系统支持的工作流发生了转移。对于搭建 AI 基础设施的开发者(AI Builders),这批日志则提供了一份样本:当一家前沿 AI 公司把 Agent 投入高强度的实际使用时,真实的业务压力会暴露哪些尚未满足的基础设施需求。基础设施不该在闭门状态下凭空设计,产品端反复修补的痛点,恰好指明了基础设施应该提供的原语。

经过这两个月的演进,Claude Code 正在从前台的编码对话框,变成一个后台工作环境。这种产品体验的变化,要求未来的基础设施补上三项可复用的能力:持久的作业运行时、携带来源的授权追踪,以及模型外部的观察与验收路径。

Claude Code 已经不只是一个前台对话框

现在的 Claude Code 体验已经不再局限于一问一答的交互界面。把任务交给它之后,工作可以在你不看前台终端时继续推进。

会话在闲置期间能持续存活,本地更新后也能原地重启。开发者可以把正在执行的后台 Shell 会话 detach,需要时再 attach 回来。遇到复杂任务,动态工作流能够协调数十到数百个 Agent 共同执行。当前版本中,子 Agent 默认在后台运行;当 Agent 在单独的 worktree 里工作时,它能自行 commit、push 并开出一个草稿 PR。此外,开发者可以用 /fork 命令直接分叉出一个独立的后台会话,耗时很长的 MCP 调用也会自动转入后台。

这说明工作单元的定义变了。它不再只是一场请求与响应的对话,而是越来越像一个拥有身份、生命周期、状态、工作目录,以及能和其他作业产生关联的任务实体。

这种转变带来了沉重的工程代价。在日志中,和 background、daemon、Remote Control、scheduled task、routine、agent view 或 agent-view 相关的更新多达 247 条,分布在 40 个版本里。开发团队密集处理了 daemon 更替、版本不匹配、休眠与唤醒、过期身份、孤儿进程、状态报告、删除与恢复,以及 worktree 清理等生命周期问题。

Claude Code 扩大后台执行能力的同时,持续收紧授权与验收边界

同一句 prompt,谁说的比说了什么更重要

当工作跑到后台并由多个 Agent 协同完成时,一个新的产品挑战出现了:如果收到一句“可以执行”,系统怎么判断它究竟来自用户,还是其他程序传递过来的文本?内容相同的文本,不能自动获得相同的权限。

Claude Code 的一系列更新严格区分了消息的来源。跨会话传递的 SendMessage 不再携带用户权限,接收方会拒绝这种被中转的授权请求。定时任务和 Webhook 传来的指令属于任务通知,它们在 auto mode 下不能批准正在等待的操作,也不能充当用户输入。父 Agent 发给子 Agent 的消息可以用来分派工作,但同样不视作人类批准。后台任务通知会明确标注期间没有人类参与,从而阻断通过伪造执行记录获取批准的特定路径。对于从远端发来的 Remote Control 权限请求,它会停在本地等待确认,而定时触发的提示词则纯粹作为被分配的任务进入会话。

这里的逻辑边界很清晰:分配任务是一回事,用户批准是另一回事。权限是否生效,部分取决于传输路径和运行时元数据,而不仅仅是提示词文本。

在这一组变化中,权限与安全相关的更新大约有 90 条,跨越 35 个版本。团队修复了大量 Shell 方言和间接执行路径的解析偏差。这提供了方向性的证据,说明单纯依赖应用层的语义分析,已经不适合作为不可逆操作的唯一边界。

同一句批准文本来自用户、父 Agent、Webhook 或模型时,Claude Code 需要赋予不同权限

这些产品变化,正在要求 Infra 补上三类能力

前面两节呈现的是用户端的变化。把视角切换到基础设施层面,可以从这些产品压力中提炼出三条可复用的设计方向。产品行为在这里引导了基础设施的演进。

  1. Job runtime(作业运行时):一个长时间运行的 Agent 任务需要有稳定的身份、明确的生命周期、状态的所有权,以及恢复、清理和管理子任务与后台工作的能力。前文提到的大量生命周期修复说明,仅仅“保持对话框不关”已经不够用了。
  2. Provenance and authority trace(来源与授权追踪):基础设施需要保留的比提示词文本多得多。它必须记录消息到底是从哪里来的、有没有真实人类参与、是哪个任务或 Agent 转发的,并且要把这些线索和后续的工具调用串联起来。这正是 message.uuidclient_request_idtool_sourcetrace_idspan_id、workflow run ID 以及明确的无人类参与元数据发挥作用的地方。完整的追踪应该作为基础设施的设计方向,系统中的可观测性与授权判定开始共用这同一套来源数据。
  3. Model-external mediation and acceptance(模型外部的中介与验收):新增的 CLAUDE_CODE_PROCESS_WRAPPER 环境变量让企业启动器可以中介 agent view 和后台服务发起的 Claude Code self-spawn。针对项目级 .agents/skills/ 和内置功能,Skills 也在承载更多职责,单个 Skill 带上了工具限制、模型选择、钩子(hooks)和生命周期行为。此外,Claude 不再自行触发 /verify/code-review,用户必须明确地调用它们。这些调整说明,一部分执行约束和任务完结的决策权,属于调用方和运行时,而不是模型的内部循环。

在这个方向上,和 SDK、headless、stream-json、OpenTelemetry、trace、usage、cost 与 Token 统计相关的更新有大约 104 条,分布在 36 个版本中。这些追踪字段的作用是支持关联和归因,并不是要保证现在就能完美重建每一次调用的所有细节。

对于未来的 Agent 基础设施,这带来了具体的推论: * 消息的 Schema 需要包含来源与授权元数据,不能只留 rolecontent。 * 追踪链路应该把任务委派、消息传递、工具调用和可用的人类确认全部连接起来。 * 作业状态和权限状态是两件不同的事。 * “Agent 完成任务”和“调用方验收通过”是不同的状态。

这些是从当前产品演进中得出的基建经验,并不代表 Claude Code 已经实现了一套完美的追踪机制或通用的 Agent 架构。CLAUDE_CODE_PROCESS_WRAPPER 不能看作通用的拦截器或审批闸门,/verify 也没有变成强制的完成步骤。

Product 应该反过来指导 Infra

回到开篇的两个视角。

对用户而言,这批日志解释了当前产品的面貌:Claude Code 正在支持更长、更并行、更偏后台的工作方式,同时更严格地区分哪些路径可以携带用户授权。

对 AI Builders 而言,更大的收获在于方法论。不要在孤立的状态下构想一个大而全的 Agent 平台,再去寻找用例。观察一个真实产品在什么地方反复添加生命周期补丁、来源元数据、追踪 ID、启动器钩子以及明确的调用方验收动作,正是这些业务压力指明了基础设施缺少了哪些抽象。

这个结论的边界也很明确:Claude Code 是一个强有力的产品信号,但它并非证明所有 Agent 系统都必须采取相同的实现方式。在搭建框架时,可以适度参考此前对于 Agent 运行时环境 以及 Claude Code 信任与控制面 的讨论。

最后来看这批更新的整体分布。这两个月的 1,084 条变更里,80 条以 Added 或 Introducing 开头,90 条以 Improved 或 Reduced 开头,42 条以 Changed、Removed 或 Deprecated 开头。前缀统计和我们在文中提取的主题正则统计采用了不同的方法,主题词之间会有重叠。它们并不是 Anthropic 的官方分类,也不代表缺陷率、漏洞数量或产品质量评分。公开的更新日志无法揭示系统背后的每一次实验、特性开关、未记录的变动或真实的严重程度。

Release notes used

鸭哥每日手记

日更的深度AI新闻和分析