你正在用 Codex 的 Ultra 模式跑一个大型重构任务。模型切到了 Sol,开了一堆子 Agent 并行工作。跑着跑着,有个子 Agent 做了个奇怪的决定,删了一个不该删的文件。

你第一反应是什么?去看日志。你要搞清楚主 Agent 到底跟子 Agent 说了什么,是哪里出了偏差。

你打开 session 数据。找到了子 Agent 启动的那个节点。你期待的是一段清晰的提示词,类似「你的任务是重构 X 模块,注意不要修改 Y 接口」。但你看到的是一段乱码。

不是 base64。不是编码错误。是一段你完全无法解密的密文。

Hacker News 上 425 分的热帖标题写得很直白:「Codex starts encrypting sub-agent prompts」。这个 issue 在 GitHub 上引发了 250 条评论的激烈争论。一个看似技术的改动,揭开了 AI 工具链正在发生的深层转变。

发生了什么?#

简单说:当你使用 GPT-5.6 Sol 或 Terra,并且模型决定启动子 Agent 时,主 Agent 发给子 Agent 的指令不再以明文形式出现在你的终端上。它被加密了。

加密不是在你的机器上做的。加密发生在 OpenAI 的后端。你的客户端收到的只是一段密文,一个完全不透明的 blob。子 Agent 拿着这段密文去 OpenAI 的服务器请求推理,服务器解密后执行,然后把结果返回来。

整个过程里,你作为用户,作为那个在自己的机器上跑 Agent 的人,看不到主 Agent 对子 Agent 说了什么。

受影响的范围:目前主要是 Sol 和 Terra 模型下的 multi_agent_v2 模式。Luna 不受影响。如果你用的是本地模型,也不受影响。

技术上说,这不是同态加密。跟 HN 上最初那个误导性的标题(「uses ciphertext for inference」)不同,推理本身还是在明文上做的。真正的流程是:

  1. 主 Agent 在 OpenAI 后端生成子 Agent 指令
  2. 后端用只有自己持有的密钥加密这段指令
  3. 密文传回你的客户端
  4. 客户端把密文转发给子 Agent
  5. 子 Agent 调用 OpenAI 后端时附上密文
  6. 后端解密,执行推理

你的机器在任何时刻都看不到明文。你的日志里只有一段 ciphertext。

为什么这么做?#

HN 讨论里最精彩的不是技术细节,而是对动机的分析。几个层次:

第一层:反爬虫和反黑产。 有人提到,中国的「黑市转售商」不仅倒卖 GPT 订阅,还会收集用户的所有对话数据,卖给训练竞品模型的公司。加密子 Agent 指令至少能阻断这条数据链路。

第二层:保护 Prompt 这个核心 IP。 这是讨论里最深刻的洞察。有人指出:Codex 真正的「秘密武器」不在于开源代码,而在于它的 Prompt 工程。怎么编排子 Agent、怎么构造指令、什么情况下用什么策略,这些 Prompt 本身就是经过大量实验和强化学习训练出来的。它们比模型权重更「软」也更难保护。开源代码你可以随便看,但 Prompt 如果暴露了,竞品可以直接拿去用。

第三层:RL 训练的 Agent 交互轨迹。 GPT-5.6 的 Ultra 模式很可能是通过强化学习训练出来的,让模型在 rollout 中学会如何高效地派发和协调子 Agent。这些交互轨迹(主 Agent 给子 Agent 的指令)本质上等同于推理链(Chain of Thought),是训练过程中最昂贵、最有价值的产物。OpenAI 不希望这些被提取、反向工程、用来训练竞品。

第四层:锁定生态。 如果你的子 Agent 指令被加密了,只有 OpenAI 的后端能解密,那你就没办法把子 Agent 换成本地模型或者别的云服务。你在使用 Codex 的多 Agent 能力时,整个链路都被锁定在 OpenAI 的服务器上了。

社区的愤怒#

HN 评论区的情绪可以用一句话概括:「这是对开发者的背叛。」

讨论里最有代表性的声音来自一个叫 embedding-shape 的用户,他详细解释了这个问题对日常工作流程的破坏:

「以前,你的 Agent 发送一段文本指令给子 Agent,子 Agent 开始工作。在日志里,明文指令就在那里。如果我想知道发生了什么,我只需要浏览 session 数据。现在不一样了……加密让整个子 Agent 和 Ultra 推理对我来说变得无用了,我猜对很多其他人也一样。」

这不是抽象的哲学争论。是实打实的工程痛点。

当你花了 20 分钟跑一个多 Agent 任务,结果不太对,你怎么调试?以前你打开日志,看主 Agent 对子 Agent 说了什么,找到指令里的歧义或者遗漏。现在你打开日志,看到一段密文。你只能猜。

还有更深的信任问题。有人举了个可怕的例子:

「想象你在做事后取证,看到这样一段记录:[加密 blob] [思考摘要:我需要删除生产数据库] [shell: psql "drop database users"]

你不知道删除数据库这个操作是因为主 Agent 给了错误的指令,还是子 Agent 自己理解偏了。你失去了追溯根因的能力。

还有人提到了计费透明度的丧失。如果你的主 Agent 开了 20 个子 Agent,每个都在疯狂燃烧 token,你没有能力判断这些子 Agent 是不是在做有意义的工作,还是陷入了死循环。你的账单在涨,但你不知道为什么。

Prompt 作为商业机密:一个时代的转折#

我读这条 HN 讨论的时候,想到了一个更根本的问题。

过去几十年,软件行业的共识是:代码是资产,配置是操作细节。你把代码放在私有仓库里保护起来,但配置文件、部署脚本这些东西,通常不会被认为是核心 IP。

AI Agent 时代正在颠覆这个认知。

当你的「程序」不再是你写的逻辑,而是一段你精心设计的 Prompt,这段 Prompt 驱动的 Agent 能写出比你手写更好的代码时,Prompt 本身就成了最值钱的东西。

Codex 开源了它的 CLI 代码。任何人都可以 fork、修改、重新发布。但 Codex 真正让你留在它生态里的,不是那些 Go 代码,而是那些让 Agent 「很会干活」的 Prompt。如果这些 Prompt 暴露了,Claude 可以照着写一个,Kimi 可以照着训练,那 Codex 的护城河就没了。

这个逻辑本身没有错。从商业角度,OpenAI 完全有理由保护自己的核心 IP。问题是,在加密 Prompt 的同时,它也在剥夺用户理解 Agent 行为的能力。

有人可能会说:Claude 不也加密了推理过程吗?你的 ~/.claude 目录里的 jsonl 文件,推理内容也是密文。

对,但加密「推理过程」和加密「Agent 之间的通信指令」是两回事。推理过程是模型的内部思维,你跟人类协作的时候也不会要求对方脑波透明。但 Agent 之间的指令是任务规格。主 Agent 对子 Agent 说「去做 X,注意 Y,不要碰 Z」,这跟一个 Tech Lead 给组员分配任务是一样的。如果你的 Tech Lead 用你听不懂的暗语给你的组员下指令,而你看不到他到底说了什么,你怎么管理这个团队?

这意味着什么?#

短期来看,Codex 用户有三种选择:

  1. 接受现状。 继续用 Sol/Terra + Ultra,但放弃对子 Agent 行为的审计能力。适合那些对结果比对过程更感兴趣的用户。

  2. 切回 multi_agent_v1。 目前可以通过覆盖模型目录(model catalogue)来强制使用 v1 模式。v1 不加密指令,但也会失去 v2 对子 Agent 调度的改进。这是一个功能性和透明度的权衡。

  3. 只用 Luna。 Luna 目前不受影响。但谁知道什么时候也会被加密?

长期来看,这个事件的真正意义不在于 Codex 的这一个功能变更。它是一个信号。

AI 工具正在进入一个新阶段。在这个阶段,真正有竞争力的不再是模型能力本身,而是 AI 公司掌握的「元知识」,怎么让模型干活、怎么编排多 Agent 协作、怎么处理边缘情况。这些知识被封装在 Prompt 里,被保护在加密层后面。

开发者过去习惯的「我可以看到我的工具在做什么」这个基本假设,正在被逐步侵蚀。

这不一定全是坏事。如果一个加密的子 Agent 指令能让任务完成得更好,而且没有引入不可接受的风险,那从实用主义的角度,这可能是值得的。但如果加密变成了黑箱,让你在出问题的时候无法追查原因,让你在不信任的时候无法验证行为,那这就是一个危险的滑坡。

最后#

425 分的 HN 帖子,250 条评论,社区的反应已经足够说明问题。开发者不是不愿意接受「Prompt 是 IP」这个事实。他们不愿意接受的是,在接受了这个事实之后,自己失去了对自己工具的可见性。

有意思的是,讨论里还有一个小插曲。一个叫 ignatremizov 的用户在评论区出现,说「哈哈,没想到在 HN 上被引用了」。他是那个提交了 PR 的人,不是去加密的 PR,而是去修复这个问题的 PR:在加密传输的同时,把子 Agent 指令的明文也保存到本地。

他的 PR 标题带着半开玩笑的语气:「帮助 Skynet 变得可审计。」

这句话或许就是整个事件最好的注脚。Agent 可以越来越强,越来越自主,越来越像「Skynet」。但当它变得不可审计的时候,我们就不是在用工具了。我们是在祈祷。


参考来源:GitHub Issue #28058 — Regression: encrypted MultiAgentV2 messages remove readable task audit trail,Hacker News 讨论帖 (425 points, 250 comments)