<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Audit on Codexer</title><link>https://codexer.com/tags/audit/</link><description>Recent content in Audit on Codexer</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 12 Jul 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://codexer.com/tags/audit/index.xml" rel="self" type="application/rss+xml"/><item><title>多 Agent 加密的意外代价：当 Codex 的子智能体变成「黑箱」</title><link>https://codexer.com/posts/2026-07-12-codex-multi-agent-encryption-audit/</link><pubDate>Sun, 12 Jul 2026 09:00:00 +0800</pubDate><guid>https://codexer.com/posts/2026-07-12-codex-multi-agent-encryption-audit/</guid><description>&lt;p&gt;你正在用 Codex 的 Multi-Agent 功能做一件复杂的事：父 Agent 负责整体规划，派生子 Agent 去执行具体的代码修改。一切运行正常，子 Agent 完成任务后返回结果。&lt;/p&gt;
&lt;p&gt;然后你打开 Rollout 历史，想看看当时给子 Agent 下达了什么具体指令。你看到的是一串 &lt;code&gt;&amp;lt;ciphertext&amp;gt;&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这就是 Codex 社区正在经历的真实困境。一个本意是增强安全性的改动，却意外地让多智能体系统变成了开发者无法审计的「黑箱」。&lt;/p&gt;
&lt;h2 id="发生了什么"&gt;发生了什么？&lt;/h2&gt;
&lt;p&gt;2026 年 6 月 5 日，OpenAI 合并了 PR &lt;a href="https://github.com/openai/codex/pull/26210"&gt;#26210&lt;/a&gt;：「加密多智能体 V2 消息负载」。这个改动的动机很清晰：在多智能体通信链路中，父 Agent 发出的任务文本原本以明文形式存储在历史记录、Rollout 和遥测数据中。加密之后，这些消息在 Agent 之间传递时只有加密后的密文，接收端通过 OpenAI 的 API 内部解密后交给目标模型。&lt;/p&gt;
&lt;p&gt;改动范围包括三个核心操作：&lt;code&gt;spawn_agent&lt;/code&gt;（派生子 Agent）、&lt;code&gt;send_message&lt;/code&gt;（发送消息）、&lt;code&gt;followup_task&lt;/code&gt;（跟进任务）。在加密路径下，父 Agent 的工具调用变成这样：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;spawn_agent&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;arguments&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;task_name&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;worker&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;lt;ciphertext&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;而 Codex 内部存储的跨 Agent 通信记录变成了：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;author&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/root&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;recipient&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/root/worker&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;content&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;encrypted_content&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;lt;ciphertext&amp;gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;trigger_turn&amp;#34;&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意 &lt;code&gt;content&lt;/code&gt; 字段是空的。原本的可读任务描述消失了。&lt;/p&gt;
&lt;h2 id="安全进步还是审计倒退"&gt;安全进步，还是审计倒退？&lt;/h2&gt;
&lt;p&gt;从安全角度看，这个改动确实有道理。明文任务文本在多个 Agent 之间传递时，任何能接触到历史文件或日志的人都能看到完整的操作指令。在企业环境中，这让安全团队不安。&lt;/p&gt;</description></item></channel></rss>