Skip to content

当香农遇见 Agent:信息论给 Agent 工程的五个锚点

这篇文章记录的是一次探索,不是一组结论。

我做了一年多 agent 工程,踩了很多坑,提炼了一些经验。但那些经验之间有没有共同的底层逻辑,我一直没有答案。后来我试着用信息论的视角去审视这些经验,发现了一套逻辑上说得通的对应关系——信息论里的几个概念,似乎能解释 agent 工程里很多"知其然不知其所以然"的判断。

我必须先把边界说清楚:这套对应关系只是一个值得探索的方向,有理论作为参照,但没有经过任何验证。 它对不对、在真实项目里管不管用、会不会被证伪,我都不知道。这篇文章不是在宣讲真理,而是在摊开一个我正在尝试的思考框架,供你审视、质疑、或者一起探索。

如果你读完觉得"这个方向有点意思",那就够了。如果你觉得"这是过度解读、牵强附会",也完全可能——我自己也还在判断它是不是经得起推敲。


引言 · 一个不断重复的钟摆

先说一个我反复经历、相信你也似曾相识的循环。

第一阶段:惊艳。 大模型刚出来,好厉害,写代码、做分析、陪聊天,觉得它什么都能做。

第二阶段:碰壁,开始上工程化。 用了一段时间发现它有不少毛病——会乱调工具、会忘事、输出不稳定。于是开始上 prompt 工程、context 管理、各种 eval 手段,想用工程化把它驯服。

第三阶段:模型升级了,工程化显得多余。 新一代模型出来,能力大涨。原来要写一大段 CoT 提示词才能让它推理对,现在不用了;原来要塞一堆 few-shot 才能控制格式,现在它自己就稳了。于是上一轮的很多工程化手段,显得多余了。

第四阶段:新的问题涌现,需要新的工程化。 但好景不长,新的瓶颈又出现了——agent 协作怎么做、长周期任务怎么管、有效性怎么衡量……又得开始新一轮的工程化,可能是新的范式,也可能是旧范式的增强迭代。

然后回到第二阶段,循环往复。

我陷入这个循环很久,一度觉得这就是 agent 工程的宿命——永远在追模型的尾巴。这个感觉本身没有给我任何可操作的东西。它只是一个困扰:这个循环是随机的,还是有结构?如果是随机的,我只能被动应对;如果是有结构的,也许我能更主动地判断该投什么。

这篇文章,就是我对"这个循环有没有结构"的一次探索。我借用的视角是信息论。我没办法证明这个视角是对的,但它确实帮我重新理解了一些原本说不清的工程判断——所以我觉得它至少值得摊开来看看。

一个具体的困惑

在展开之前,先说一个具体的困惑,它是这次探索的起点。

我做一个 A 股投资助手——它会拉行情、跑策略回测、扫描买卖信号、管理持仓,然后每天产出晨报和收盘报告,报告里有买卖建议、止损止盈提醒、持仓分析。它跑在生产环境里,连着我的真实持仓和真金白银。

它有一个"质量自检"环节,每份报告生成后会自动打分。绝大多数时候,报告的质检分数是 10.0/10——格式完整、纪律提醒到位、信息覆盖全面。

但我心里一直有个疑问解不开:这个 10/10,到底在担保什么?

具体说——我的助手每天建议我"这只票设个止盈线""那只票到了止损位""现在不要操作,观望"。这些建议看起来都对。但它们到底帮我多赚了还是少亏了?我不知道。我手上的尺子(报告 10/10)测的是"报告符不符合规范",而我想知道的"它作为投资助手有没有用",像是两件事。

有一个案例把这个脱节摆得很明显:连续四份报告都在提醒同一件事——某只卫星仓位的股票浮盈已经 15%,必须设止盈线,并给了具体方案。每份报告末尾都是 10/10。结果用户一次都没执行那条建议。浮盈从高点 +24% 缩到 +15%,还在继续缩。

一个没被采纳的建议,无论它多正确,对收益的贡献都是零。 报告质量 10/10,担保的是"报告对不对";而"有没有用"是另一回事——这两件事可以彻底脱节。

这个困惑,用我以前的工程经验解释不了。我能讲清楚 prompt 怎么写、工具怎么设计、循环怎么搭、eval 怎么跑——但我讲不清楚"我的 agent 到底有没有效"。

后来在尝试用信息论的视角审视 agent 工程时,我发现这个困惑有了一个可能的解释框架。而且不止这一个——我踩过的很多坑、提炼的很多经验,似乎都能放进同一个框架里。但"似乎能放进"和"真的成立"是两回事。 这篇文章就是我目前梳理出来的这套叙事,供你判断它是不是站得住。

文章会讲五个"锚点"。每个锚点都是信息论里的一个概念,我尝试把它对应到 agent 工程里,看它能不能帮忙回答一类问题。五个锚点串起来,覆盖了从"怎么分工"到"怎么衡量"的完整链条。

再强调一次:这些对应关系是我个人的尝试性解读,不是信息论在 agent 工程里的正式应用,更没有被验证过的结论。 信息论本身的定理是成立的(那是数学),但这些定理能不能这样"翻译"到 agent 工程上、翻译得对不对,是另一回事——而这"另一回事"目前没有任何保证。


锚点一 · 信源编码 vs 信道编码:哪些工程会被吃掉,哪些不会

钟摆循环的一个可能解释

回到开头的钟摆循环。我想问的问题是:那个循环里,被模型升级"吃掉"的工程化,和活下来的工程化,是同一种东西吗?如果它们不是同一种东西,那这个循环就不是随机的,而是有结构的。

回想每一轮被吃掉的工程:

  • GPT-3.5 时代,大家在 prompt 里写"请一步一步地想"(CoT)、塞一堆 few-shot 示例、加各种角色扮演。现在模型自己就会推理,这些咒语大面积失效。
  • 3.5 到 4 的时代,大家写复杂的输出格式约束、长篇的指令模板。模型理解力上来后,模板多余了。
  • Claude 3.5/4 时代,大家用一堆 ReAct 框架、复杂的 agent 编排代码。模型自己会规划工具调用了,框架变薄了。

一个观察:被吃掉的,似乎集中在同一类——补偿模型"智商不够"的工程。 "think step by step" 像是在给一个不太强的脑子垫脚;脑子够强了,垫脚的砖自然扔掉。但这个"观察"只是对现象的描述,不是解释。为什么是这一类被吃掉、另一类留下来?

下面是信息论提供的一个可能的解释框架——注意,是"可能的",不是"被证明的"。

香农的分离定理

1948 年,香农在《通信的数学理论》里证明了一个分离结果:最优的通信系统,可以拆成两个独立设计的部分——

  1. 信源编码(source coding):决定"该传哪些信息"。核心是压缩——把信源里冗余的、噪声的部分扔掉,只留有用的。
  2. 信道编码(channel coding):决定"怎么把选好的信息可靠地传过去"。核心是纠错——加上冗余、校验,对抗传输过程中的干扰。

这是信息论里成立的东西。我做的尝试是——把它当作一个类比框架,套到 agent 工程上看会怎样:

香农的词我尝试对应的 agent 场景
信源编码决定信息存不存在——工具的定义、上下文装配、记忆里存什么
信道编码让信息传得可靠——prompt 技巧帮模型理解、格式约束帮模型输出对、CoT 帮模型推理对

如果这个类比成立,那么前面说的那些"被吃掉的工程"——CoT、格式咒语、few-shot、复杂 prompt 模板——就都对应到信道编码。它们在帮一个不太强的模型把信息"可靠地处理对"。模型升级,相当于信道变好,这些纠错手段的边际价值下降。

而那些"活下来的工程"——工具描述、上下文管理、记忆、eval——对应到信源编码。它们管的是"这条信息到底在不在模型的视野里"。如果类比成立,这件事和模型智商正交:模型再聪明,也不知道它没被告知的事。

我必须说明:这是一个类比,不是定理的推论。 香农的分离定理是在严格的通信模型下证明的,LLM 不是严格意义上的"信道","工具描述"也不是严格意义上的"信源编码"。这个对应是我个人觉得"说得通",但它有多严谨、能走多远,我不确定。把它当成一个启发式的思考框架来用,我觉得是有帮助的;把它当成定理来引用,是过度的。

数据处理不等式:一个可以借用的直觉

如果上面这个二分还想再找点理论依托,信息论里有一个最朴素的不等式可以作为参照:

这叫数据处理不等式(data processing inequality)。在信息论的严格定义下,它的意思是:对数据做任何(确定性的)处理,只会丢失信息,不会增加信息。

我尝试把这个不等式读进 agent 工程,它似乎在提示一个方向:

agent 的能力,受限于它能看到的信息量。对已有信息做加工(优化提示词、调循环、调参),按照这个不等式的直觉,只能丢失或保持,不能增加。真正能提升能力上限的,是让更多信息进入它的视野。

再强调:这是"似乎提示",不是"严格推出"。 LLM 不是确定性函数,它有注意力机制、有泛化能力,严格套用数据处理不等式是不成立的。但作为一个直觉——"加工信息不如扩充信息源"——它和我自己的工程经验对得上,所以我保留它作为一个有用的启发,同时承认它的严谨性是存疑的。

如果沿着这个(存疑的)直觉往下走,它会提示:工具描述、上下文装配、记忆系统之所以看起来是"永久资产",可能是因为它们在扩充或管理信息边界。一个工具的描述漏了一句关键信息,模型再强也填不上这个空——这至少在我的实践经验里是反复出现的。

一把可以试用的尺子(但请带着怀疑)

这个二分,给出了一把可以试用的尺子:

下次看到一个工程手段,问自己——它是在补模型的短板(让信息处理得更准),还是在管信息边界(让信息存在或被管理)?前者可能有保质期,后者可能是资产。

我用"可能",是因为这两个判断(保质期 / 资产)本身也还没被验证。它们是从信息论类比里推出来的假说,我觉得符合经验,但你完全可以在自己的项目里检验它们成不成立——如果发现某个"管信息边界"的工程也被模型升级吃掉了,那这个类比框架就有了一个反例,需要修正。

举两个我自己觉得"对得上"的例子,供你判断:

我那个投资助手有 30 多个工具,其中一个"下载数据"的工具,我在描述里加了一句警告:"网络错误不要反复重试,改用搜索新闻"。沿着这个框架看,它属于信源编码——它在告诉模型"遇到这个错误时,正确的信息源在别处"。模型再强,如果你不在工具描述里写这句话,它还是会傻乎乎地重试一个注定失败的网络请求。这和模型智商无关,和信息边界有关。

助手的系统提示里还有一段"15 条风险纪律"——不追涨、8% 止损、分批建仓。沿着这个框架看,它们也是信源编码——是模型在训练时没见过的、属于特定投资框架的信息。

但这两个例子只是"符合",不是"证明"。 符合我的框架的案例我当然能找出一堆(确认偏误),真正能检验这个框架的,是去找反例——有没有哪个"管信息边界"的工程,被模型升级吃掉了?如果有,框架就需要修正。我现在还没有找到决定性的反例,但也没有系统性地去找过。

所以第一个锚点的诚实定位是:它提供了一个我觉得有启发性的二分框架,这个框架和我的经验对得上,但它没有被验证过,可能存在我没想到的反例。 你可以拿去试用,在试用中检验它。


锚点二 · 率失真与信息瓶颈:理想参照系在哪里

第一个锚点尝试区分"哪些工程值得深耕"。第二个锚点尝试回答"深耕的方向是什么"——如果我们要一个参照系来判断"做到了什么程度",它长什么样。

我借用的概念是信息论里的率失真理论(rate-distortion theory)和 Tishby 的信息瓶颈原理。同样地,这些理论本身是成立的,但我把它们"翻译"到 agent 工程的方式,是我个人的尝试,没有被验证。

率失真:质量 vs 成本的极限

率失真问的是:如果允许"损失一点点质量",信息能压缩到多小?

具体到我的投资助手场景:它每天面对的信息是海量的——全市场几千只股票的行情、无数的新闻、用户的完整持仓和操作历史。它的上下文窗口是有限的,不可能全塞进去。它必须选择:哪些信息放进这一轮的上下文,哪些丢弃。

这就是一个压缩问题。"压缩得好不好",取决于两件事的权衡:

  • 压缩得狠(少放信息):上下文省了,但可能漏掉关键信息,导致判断失真
  • 压缩得松(多放信息):信息全了,但上下文爆炸,模型注意力被稀释

率失真理论给出了这个权衡的理论极限——在允许的最大失真 下,最少需要多少比特率 。它给出一条曲线 ,叫率失真曲线,是"质量 vs 成本"的帕累托前沿。

在严格的通信理论里,这条曲线是可计算的(至少对某些信源分布)。在 agent 场景里,我画不出这条曲线——因为 agent 任务的"失真度量"不干净(什么叫"判断失真"?没有连续的、可计算的函数)。所以我用率失真的方式,不是"代入公式算最优解",而是"借用它作为一个参照系的概念"——知道有这么一个理论极限在前方,我虽然达不到、也算不准,但有个方向感。

反向水填充:一个反直觉但似乎说得通的启发

率失真理论有一个反直觉的结论。对于高斯信源,最优压缩策略叫"反向水填充"(reverse water-filling):

把信号的不同分量想象成一片起伏的地形。你往里注水到水位线 水位线以下的分量,直接丢弃,一个比特都不分配;水位线以上的,才分配比特。

这个结论在信息论的严格设定下是成立的。我做的尝试是——借用它的直觉,来看 agent 的记忆系统设计:

我那个助手有一个记忆功能,能记住群里聊过的事。记忆库不能无限大,必须选择存什么、扔什么。我早期是凭直觉分区的:存"确定的计划、费用记录、关于成员的事实";不存"闲聊、问候、天气、待定信息"。

沿着"反向水填充"的直觉看,我当时的做法像是在做一件类似的事——"闲聊、天气"是低信噪比分量(对后续决策几乎没有预测力),整类丢弃;"确定的计划、费用"是高信噪比分量(对后续决策有直接预测力),重点保留。

我必须诚实:我不知道这两件事是不是真的可以类比。 "反向水填充"是针对高斯信源 + 平方误差失真的严格结论,agent 的记忆数据既不是高斯的,也没有干净的失真度量。我把它当作一个"哦,原来我凭直觉做的事,在信息论里有一个类似的、更系统的表述"——这给了我一个重新审视自己直觉的角度,但它不证明我的做法是对的,更不保证把反向水填充的系统化方法搬到记忆系统上一定会更好。

它能给我的,是一个值得尝试的方向:不凭反例列表决定不存什么,而是尝试给每类信息估一个"信噪比"(对后续决策的预测力),低于阈值的整类丢弃。这个方向对不对,要试了才知道。

信息瓶颈:压缩即理解

率失真有个孪生概念,叫信息瓶颈原理(Information Bottleneck),是 Naftali Tishby 在 1999 年提出的。它问的是一个更深刻的问题:

一个深度神经网络,在训练过程中,它学到的"中间表征"到底在干什么?

中间表征就是隐藏层的输出。输入 (比如一张图)进来,经过若干层变成 (中间表征),最后输出预测 ,接近真实标签 。链条是

Tishby 说,一个好的表征 ,应该同时满足两件矛盾的事:

  • 对输入要压缩 不该保留 的所有细节,因为 里大部分是噪声,对预测 没用
  • 对目标要保真 必须保留足够的信息,才能预测

形式化成一个优化目标:

是个旋钮。 就像一个瓶颈口—— 的海量信息挤过这个窄口,出去的时候只剩"对 有用的那部分"。

2017 年的两阶段发现,以及它的争议

Tishby 和学生 Schwartz-Ziv 在 2017 年发了一篇论文,报告了一个观察:训练过程似乎分成两个阶段——先是"拟合"(网络拼命吸收信息、记忆训练集),后是"压缩"(网络开始忘掉输入细节,只保留对预测有用的部分)。

如果把这个发现放到我们前面聊的框架里,它似乎在提示:模型升级之所以能"吃掉"一部分工程化,可能是因为更强模型在训练阶段做了更彻底的压缩——把更多规律压进了权重,把更多噪声剥离了。模型越能压缩,泛化越强,越不需要外部脚手架。

但这个联系是高度推测性的,而且两阶段发现本身就有争议。 2018 年,Saxe 等人指出:两阶段压缩现象依赖于用 tanh 这类"双端饱和"激活函数时的特殊度量效应,换成 ReLU 就观察不到了。也就是说,"训练必然经历两阶段、压缩必然带来泛化"这个强主张,至少不是所有架构都适用。

所以诚实的说法是:信息瓶颈作为 normative 原则(好表征应该权衡压缩与保真),在理论上是有道理的;但"训练的两阶段机制""压缩带来泛化",是有争议的、未被完全确认的。我把它放在这里,是作为一个"可能有启发的参照",不是作为"已被证明的机制"。

第二个锚点给你的东西(和它的不确定性)

第二个锚点尝试给你的,是一颗北极星的概念——

如果这个框架成立,一个"完美的 agent"应该像一个"完美的信源编码器":从海量输入里,只保留对目标有用的信息,丢弃一切噪声。

你达不到这个理想(即使它存在)。但"知道有这么一个方向"和"完全没有方向感",在体感上是不一样的。

具体到工程上,它给出三个可以尝试检验的判断方向:

  1. agent 有没有在做"勇敢的丢弃"?如果它什么都记、什么都塞进上下文,它可能没在做反向水填充,可能在均匀浪费容量。
  2. eval 通过率阈值,在概念上对应 R(D) 曲线上的某个点——你设的阈值(比如"跑 5 次通过 80%"),对应的失真预算合不合理,可以结合业务能容忍多大的失真来想。
  3. agent 压不进去的那部分复杂度,是不是被合理地外包到了脚手架上?prompt → context → harness → 多 agent 协作,可能是外包栈在往上爬。

这三个判断方向都是假说,不是结论。 它们能不能指导实践、指导出来对不对,需要你在自己的项目里检验。我觉得它们对我自己的思考有帮助,但"对我有帮助"和"客观上是对的"是两件事。


锚点三 · 测不准:为什么 agent 的"有效性"这么难衡量

前两个锚点尝试给尺子和参照系。第三个锚点是最硬核的,它要处理的问题是——有些东西,可能根本测不准。

这一节是我这次探索的直接起点。我那个投资助手,跑得好好的,功能齐全,但我就是回答不了"它作为投资助手到底有没有用"。前面引言里说了那个困惑。现在我尝试用信息论的视角,把它拆开。

但要注意:这一节的结论是"可能测不准",这本身也是一个需要被审视的判断。 也许 agent 的有效性是可以被精确测量的,只是我还没找到方法。信息论的"测不准"类比,帮我把困惑理顺了,但它也可能让我过早地放弃了寻找更好测量方法的努力。请带着这个警惕往下读。

你测的,和你想知道的,可能不是同一个东西

第一个要捅破的,是一个比较确定(不依赖信息论)的观察。

我有完整的 eval 体系——画像注入 eval(确保 agent 正确读取了用户画像)、自主回测 eval(确保 agent 能正确调用回测工具)、报告质量自检(10/10)。它们都在测一件事:产出符不符合规范。

但我想知道的是:建议对用户收益的边际贡献。

这两件事的区别比较清楚:前者是"信息传得对不对"(格式、纪律、覆盖度),后者是"信息对目标有没有用"(建议有没有帮到用户)。前面那个"连续四份报告提醒止盈、用户一次没执行"的案例,把脱节摆得很明显——报告质量 10/10,但建议对收益的贡献是零,因为信息没抵达用户的操作。

这一步的判断我不需要信息论来支撑——用一把测"对不对"的尺子,去量"有没有用",量出来的数字必然是误导。 这是一个工程常识,信息论只是给了它一个更精确的词汇(信源价值 vs 信道质量)。

所以,衡量有效性的第一步,不是去找更好的指标,而是先确认:我手里这把尺子,和我想知道的那个量,是同一个东西吗? 如果不是,换尺子,不要在错的尺子上磨精度。

互信息:衡量"有用"的正确词汇?

假设你确认了——你确实想测"建议对收益的贡献"。信息论里有一个量,看起来正好对得上:互信息

读法:X 原本的不确定性,减去"已知 Y 之后 X 剩下的不确定性",差值就是 Y 提供给 X 的信息量。

= 用户收益, = agent 建议,你想知道的似乎就是 ——agent 的建议,消除了多少"用户收益的不确定性"。

概念上对得上。问题是——你算不出来。 而且算不出来的原因,可能不是"暂时算不出来",而是"本质上很难算准"。这就是我想用"测不准"来描述的部分。

测不准的第一层:互信息估计偏差

互信息对连续高维变量极难精确计算。原因是多重的:

维度灾难。 变量维数越高,精确估计互信息需要的样本量指数级增长。

估计器偏差。 主流互信息估计器(KSG、MINE、变分界)都有系统性偏差,尤其在小样本和边界 case 上。

Tishby 两阶段发现的争议,一部分根源就在这里。 他用的互信息估计方法在 tanh 激活函数下表现稳定,在 ReLU 下就失真。Saxe 据此质疑:观察到的"压缩"可能是估计方法的假象。

所以,用来衡量"信息含量"的尺子,本身就不准——这种不准是系统性的,在高维、小样本、边界 case 上特别严重,正好是 agent 工程最常遇到的场景。

测不准的第二层:一个海森堡式的类比

还有一层,我想用一个类比来描述,但必须强调这是类比,不是推导

互信息有一个性质:它对双射变换不变。如果你对隐藏层 做一个可逆变换 ,互信息不变。

这意味着互信息只捕捉"信息含量",不捕捉"几何结构"——两个表征可以包含完全相同的信息(互信息相同),但结构天差地别。

让我联想到海森堡测不准原理——"位置和动量不能同时精确测量"。我这里的情况是:"信息含量"和"结构信息"似乎也不能从互信息里同时读出。但这个联想有多严谨,我不确定。 量子力学的测不准有精确的数学形式(),我这里没有对应的不等式。它只是一个"感觉像"的类比,帮你建立直觉,但不要把它当成定理。

测不准的第三层:反事实不存在

前面两层是"工具不准"和"结构限制"。第三层最根本——你想要的那条数据,可能压根不存在。

我想知道"agent 的建议对收益贡献了多少"。这要求我能观测到:如果没有这个建议,结果会怎样。这就是反事实(counterfactual)。

在几乎所有真实场景里,反事实不可观测。以我的投资助手为例,有四个具体的障碍:

第一,反事实本身不存在。 助手建议设止盈线,我没设。我无法观测"如果设了会怎样"——那条平行世界线没有发生。

第二,市场噪声远大于信号。 助手建议买入,我买了,涨了 10%。这 10% 里多少是助手功劳、多少是大盘?A 股单日波动 2-3% 是常态,一个建议的真实贡献可能只有 0.5%,被噪声淹没。

第三,用户是自由意志。 助手的建议只是我决策的输入之一。我还会看研报、听朋友、被情绪驱动。助手建议持有,我自己也想持有——这算谁的功劳?没法剥离。

第四,结果严重滞后。 一个"建仓"建议,可能三个月后才知道对不对;一个"持有"建议,可能永远不知道对不对。

这四个障碍里,前两个(反事实不存在、噪声淹信号)在目前的认知里看起来是硬约束。后两个(用户自由意志、结果滞后)也许可以通过更精巧的实验设计部分缓解,但很难完全消除。

这一层给出的,是一个诚实的边界

如果上面的分析成立,那它给出的结论是:agent 的有效性,可能无法被精确衡量。 这不是工程能力不足,而是信息层面的结构性困难。

但我要对自己的判断保持怀疑: 也许这个"无法精确衡量"的结论本身太悲观了。也许存在某种我没想到的实验设计或统计方法,能绕过这些障碍。信息论的视角帮我把困难看得更清楚了,但它也可能让我把"目前没想到办法"误判成"原则上不可能"。这两种情况是不同的,我现在分不清。

我能比较确定说的是:任何"我的 agent 本月帮你赚了 X 万"的归因,都是不严谨的——因为你观测不到"没有这个 agent 你会赚多少"。大盘涨了你也会赚。把绝对收益直接归功于 agent,至少在统计上是不成立的。这一点不依赖信息论,是基本的归因问题。

那怎么办?——一个可能的出路

精确测量可能不行。信息论的视角提示了一个可能的出路:用统计累积逼近。

单条建议的因果不可观测,但 100 条建议的"采纳率 vs 未采纳率的后续表现差",也许能让真实的低信噪比信号从噪声里浮现。这是大数定律的直觉——不解决单次不可测,用积累把趋势测出来。

这个出路有一个前提:你得先把建议记录下来,追踪它的采纳状态和后续表现。 这个前提,恰恰是我那个助手最大的洞——建议产出之后,就消失了,埋在报告的 markdown 里,没有人去结构化地抽取它、追踪它。

这个洞怎么补,是第五节要讲的事。但在那之前,我们需要把"怎么和测不准共处"沉淀成一些操作层面的纪律。


锚点四 · 五条操作纪律:和测不准共处的方式

既然测不准可能是硬约束,工程上需要一套操作来和它共处。下面五条纪律,是我尝试总结的。它们不是从信息论里严格推出的,而是我把前面三个锚点的直觉,翻译成操作层面的动作。 每条都挂在前面的某个锚点上,但"挂"是启发性的关联,不是逻辑推导。

这五条目前是"我觉得应该这么做",还没在足够长的实践中验证它们是否真的有效。

纪律一:避免单一指标自动决策

依据:互信息在高维、小样本、边界 case 上系统性失真(锚点三)。

操作:审查每一个"自动触发动作"的规则,检查它依赖几个信号。少于 2 个正交信号,考虑标红"证据不足"。

一个例子:一个"当报告评分低于 7 就自动重写"的系统,如果评分只来自一个 LLM 裁判,它在用裁判的噪声做决策。裁判自己也是概率模型,同一份输入它这次判 8 分、下次判 6 分。

我自己有过直接的经验:一个 eval 用例测记忆合并,同一用例、同一份代码,五分钟内连跑两次:一次 FAIL、一次 PASS。裁判第一次纠结了半天判通过,第二次直接判失败,理由完全不同。如果我的系统根据这个摇摆自动触发动作,那就是在用噪声做关键决策。

纪律二:小样本必须标置信区间

依据:估计偏差随样本量收敛慢(锚点三)。

操作:所有量化的结论,标注置信度或样本量。不出现裸的百分比。

格式:"基于过去 30 个信号,准确率 62%,95% 置信区间约 [45%, 78%]"。

禁止:写"准确率 100%"。3 个样本的 100% pass,在统计学上和"抛 3 次硬币全是正面"的可靠性差不多。

这一条看起来简单,但大多数 agent 项目都违反它。大家太习惯给一个干净的数字,不愿意在后面挂一个"±"和样本量。但那个"±"才是诚实的部分。

纪律三:用超额或差分消噪声,避免绝对值

依据:信号远小于噪声时,直接测量无意义(锚点二的反向水填充直觉)。

操作:任何"agent 贡献了 X"的说法,必须能回答"相对于什么基准"。没有基准,先定基准。

例子:助手某月持仓涨了 6%,不能直接归功于 agent。如果大盘同期涨了 5%,agent 的真实贡献最多是 1% 左右——而这 1% 里还有多少是 agent、多少是用户自己的判断、多少是运气,依然分不清。不报超额,只报绝对值,就是在用大盘涨幅冒充 agent 能力。

三类值得考虑的基准:

  • 等权基准——agent 建议的组合,和等权指数比
  • 对照基准——agent 建议止损的标的,和"假设不止损"比(用回测)
  • 盲区基准——agent 全仓"观望"的日子里,市场出现了多少机会(量化"它没看到的世界")

第三个基准对应一个真实案例:我的助手扫了十几只算力基础设施的标的,全部给出"观望"信号。当天下午因为一个政策催化,这个板块暴涨。助手事后复盘说:"信号系统还站在昨天看今天,而市场已经跳到明天了。" 这个案例暴露的是信息源的结构性缺失(回到锚点一:模型不知道它没被告知的事)。如果持续统计"全观望日出现了多少市场机会",也许能让你知道这个盲区有多大。

纪律四:趋势大于单次

依据:大数定律驯服非平稳(锚点三)。

操作:强调"看 N 周/N 月趋势"。任何单次结果(一笔交易、一次对话、一天表现),标注"不可作为判据"。

数据要求:至少积累 30+ 个可评估样本,才开始看趋势。少于这个量,所有结论都是探索性的。

agent 的产出是概率性的——同一个输入,这次对、下次错。如果用单次结果下判断,会一直在过度反应。投资领域有个老话:"不要用一笔交易的结果评价一个策略。" agent 也一样——一笔交易的结果,在统计上是噪声,不是信号。

纪律五:显式承认不可测

依据:反事实不存在、信息源缺失(锚点三)。

操作:定期列一份"不可测清单"。列不出来,可能说明你在自欺。

合法的不可测声明:

  • "单笔交易的因果归因,反事实不可观测"
  • "政策催化对技术信号系统是结构性盲区"
  • "用户自身判断的贡献,无法从 agent 贡献里剥离"
  • "单月盈亏归因于 agent,噪声远大于信号"

不合法的:明明不可测,却硬编一个数字("我的 agent 本月帮你赚了 2.3 万")。

这一条是五条里我最不确定的。"承认做不到"在工程文化里感觉像失败,而信息论的视角告诉我"这是边界不是失败"——但这个判断本身也可能是错的。也许某些看似"不可测"的东西,只是我还没找到测量的方法。把"目前没找到方法"误判成"原则上不可测",是有代价的——它会让我停止寻找。所以这条纪律我想保留,但要带着"也许我错了"的警惕来执行。

五条纪律的共性

这五条纪律没有一条是"怎么做"——它们全是"怎么不骗自己"。

  • 避免单一指标:不骗自己说"这个数字很可靠"
  • 标置信区间:不骗自己说"这个百分比是精确的"
  • 用超额消噪声:不骗自己说"这个绝对值是 agent 的功劳"
  • 看趋势不看单次:不骗自己说"这一次就代表全部"
  • 承认不可测:不骗自己说"我什么都测得到"

如果这些纪律有用,它们的用处就在这里——把虚假的确定感一个个戳破。但我现在只能说"如果",因为我也还没在足够长的实践里验证,遵守这五条纪律是不是真的比不遵守,能做出更好的 agent 工程决策。这是一个待检验的假说。


锚点五 · 落地:双层结构与建议追踪闭环

前面四个锚点都是"怎么想"。最后一个锚点是"怎么做"——尝试把前面的框架,落成一个具体的工程结构。

为什么不尝试做自动评分器

最直觉的落地方式是什么?做一个自动评分器——输入 agent 的产出,输出一个"有效性分数"。

如果锚点三的分析成立(互信息估不准、反事实不存在、噪声淹信号),那么自动评分器的可靠性是存疑的——它用一个可计算的量去近似一个不可计算的量,给出的数字越干净,可能骗你越狠。

但这个判断本身也带着不确定性。 也许未来的评估方法(更好的互信息估计器、更巧妙的实验设计)能让自动评分变得可靠。我现在选择"不做自动评分器",是基于当前认知的判断;如果将来方法进步了,这个选择可能需要重新评估。

双层结构:该自动的自动,该手动的手动

我目前采用的落地姿态,是一个双层结构

┌─────────────────────────────────────────────┐
│  层 1:决策框架(给人用)                       │
│  - 带理论锚点的 checklist,辅助人在关键节点判断  │
│  - 理论提供方向,人做最终决策                    │
│  - 形式:自检清单、决策树、审计报告              │
└─────────────────────────────────────────────┘
                    ↑ 读
┌─────────────────────────────────────────────┐
│  层 2:度量层(给系统用)                       │
│  - 持续采集信号,展示趋势和异常                  │
│  - 不做决策,只展示"我们在哪、趋势如何"          │
│  - 形式:metrics、trace、统计看板               │
└─────────────────────────────────────────────┘

层 2 采集信号,层 1 解读信号。系统展示"裁判模型最近的置信度在下降",人用 checklist 判断"这是裁判飘了需要校准,还是 agent 真的退化了"。

为什么决策留给人? 我的想法是:人能用经验、上下文、多个信号综合判断,这可能是对冲"测不准"的关键。工具只能用单一或少量的噪声指标,而人能在脑子里同时 hold 住多个信号并交叉验证。但"人比工具更擅长综合判断"这个前提,也不是绝对的——人在认知偏差、疲劳、情绪下,判断质量也会下降。双层结构是当前我觉得合理的方案,不是最终答案。

建议追踪闭环:一个值得尝试的逼近手段

在双层结构里,层 2(度量层)我优先建的东西,是一个建议追踪闭环

为什么是它? 因为如果锚点三的"统计累积逼近"思路成立,那么它是实现这个思路的前提——单条建议的因果不可观测,但 100 条建议的统计也许能让真实贡献浮现。前提是你得先有那 100 条结构化的建议记录。

这个闭环有四个环节:

① 抽取      ② 追踪        ③ 归因         ④ 评估
建议 ────→ 采纳状态 ────→ 后续表现 ────→ 群体统计
  ↑                                        │
  └──────────── 反馈到下一轮 ←──────────────┘

环节①:抽取。 从 agent 的产出里,把每条"可执行建议"抽出来,打上 ID、类型、标的、具体参数。

环节②:追踪。 关联后续的用户操作记录,判断建议是被采纳了、被忽略了、还是超时失效了。

环节③:归因。 建议发出后 T+1/T+5/T+20 天,记录标的市场表现和同期基准表现。

环节④:评估。 群体统计——采纳率、采纳 vs 未采纳的表现差、信号方向准确率。

这个闭环不能"证明"agent 有效。 它能做的,充其量是让你从"我不知道有没有用",变成"基于过去 N 条建议,采纳率 X%、采纳的表现比未采纳的好 Y 个百分点、置信区间是 [A, B]"。这依然是一个带不确定性的估计,不是真相。而且即使这个估计,也只有在样本量足够、基准选得合理的前提下才有意义——这两个前提本身就很难满足。

我把它做成了一个 skill

这个"双层结构 + 追踪闭环 + 五条纪律"的方法论,我尝试把它沉淀成了一个可复用的 skill——叫 value-audit(有效性审计)。它的核心是一个三层审计流程:

  • 层 0:先问对不对——你在测"产出符不符合规范",还是"产出对目标有没有贡献"?
  • 层 1:找参照系——理想状态长什么样?你现在离它多远?
  • 层 2:避开测不准——你声称的每个结论,依赖什么信号?信噪比多高?

跑完三层,产出一份带置信区间的"有效性审计报告"。

我在我那个投资助手上跑了一遍。最刺眼的发现是:五条纪律,我全违反了。不是因为这个助手做得差——恰恰相反,它的工程正确性 eval 做得很好。问题在于,它几乎没有"投资有效性 eval"这一层。它有的是一把测"对不对"的尺子(10/10),缺的是一把测"有没有用"的尺子。

这个 skill 同样是未经验证的。 它只是一个把前面的思考框架固化下来的工具。它能不能真的帮人做出更好的 agent 工程决策,我不知道。我目前的使用体验是"它帮我把模糊的困惑变成了明确的问题",但这个主观感受不能替代客观验证。


第六节 · 这套框架的边界(必须诚实)

讲到这里,我必须把这套东西的边界,尽可能诚实地交代清楚。

这套框架是什么,不是什么

它是什么:一个我用信息论的几个概念,尝试解释 agent 工程经验的思考框架。逻辑上自洽,和我的个人经验对得上,帮我把一些说不清的直觉理顺了。

它不是什么

  • 不是信息论在 agent 工程里的正式应用——信息论学家没有认可这种用法
  • 不是被验证过的理论——没有跑过对照实验,没有数据支撑
  • 不是结论——它是一套叙事,一套"这么说也说得通"的叙事

具体的不确定性在哪

第一,类比本身是不是站得住,我不知道。 "LLM 是信道""工具描述是信源编码"——这些对应是我个人的解读,不是定理的推论。它们可能在某些地方说得通,在另一些地方牵强。我没有系统地检验过这个类比的边界。

第二,"测不准"的结论可能过于绝对。 信息论的视角让我倾向于认为"agent 有效性不可精确测量",但也许这只是"我还没找到方法"。把"暂时没办法"误判成"原则上不可能",会让我停止寻找——这个代价是真实的。

第三,五条纪律有没有用,没验证过。 它们是从框架里推出来的操作建议,听起来合理,但"合理"和"有效"是两回事。也许遵守它们确实能改善决策,也许它们只是看起来严谨、实际没用,甚至有害(比如过度强调不确定性,导致不敢做决策)。

第四,信息瓶颈 / 压缩即理解,本身有学术争议。 Tishby 的两阶段发现被 Saxe 质疑过。我借用这个概念来讲"模型内化",但这个讲法在学术上不是共识。

第五,整套框架可能只是确认偏误。 我先有了工程经验,再找了一个理论框架,然后把经验往框架里套——能套上的我就讲,套不上的我可能下意识忽略了。这是所有"事后解释"都容易掉进去的坑,我不敢说自己例外。

那这套东西到底有什么用

如果上面五个不确定性都在,这套框架还有什么价值?

我的诚实回答是:它对我个人目前的思考有帮助。 帮助体现在——

  • 它给了我一组更精确的词汇,让我能把一些模糊的直觉讲清楚
  • 它给了一个参照系,让我在"不知道做到什么程度算好"的时候,有个方向感
  • 它让我对"有效性衡量"这件事的困难,有了更结构化的理解,而不是停留在"感觉很难"

但"对我有帮助"和"客观上是对的"是两件事。 一个错误的框架也可以"感觉有用"——尤其是当它只是在事后解释你已经相信的东西时(确认偏误)。

所以我对这套框架的真实定位是:它是一个值得继续探索的方向,目前看起来逻辑自洽、和经验对得上,但它可能对、可能错、可能部分对部分错,我还没有能力判断。 我把它写出来,不是为了让你相信它,而是把它摊开,让你可以审视、质疑、或者在你的项目里检验它。

如果你拿去用了,发现它在某些场景下管用——那是一个数据点,支持"这个方向有点东西"。如果你发现它在某些场景下失效或误导——那也是一个数据点,帮助修正它的边界。两种结果都有价值,都比"只在我脑子里打转"强。


结语 · 一个开放的探索

写到最后,我想把整篇文章的姿态再确认一遍。

这不是一篇"我发现了真理"的文章。这是一篇"我发现了一个值得探索的方向,把它摊开给你看"的文章。

那个方向是:用信息论的几个概念——信源/信道编码、率失真、互信息、测不准——作为审视 agent 工程的参照框架。 这个方向有理论作为参照(信息论本身是成立的),有一套逻辑自洽的叙事(我尝试把工程经验往里套,套得上了),但没有任何实践验证。它对不对、有没有用、会不会被证伪,我目前不知道。

如果你问我"你觉得它是对的么",我的回答是:我觉得它值得认真对待,但我不会押全部身家赌它对。 它更可能的情况是——部分对、部分不对,在某些场景下有启发,在另一些场景下牵强或误导。哪部分对、哪部分不对,需要在真实项目里一个一个检验。

我能给你的,与其说是一套答案,不如说是一组值得带着去审视自己项目的问题

  • 你手上的 agent 工程,哪些是在补模型短板(可能有保质期),哪些是在管信息边界(可能是资产)?
  • 你衡量 agent 时,测的是"对不对"还是"有没有用"?这两件事有没有在你那儿脱节?
  • 你声称的每个关于 agent 效果的结论,依赖什么信号?信噪比多高?反事实能观测吗?

这些问题本身不依赖信息论成立——即使我这套框架全错了,这些问题依然是好问题。信息论只是给了它们一个更精确的表述方式。

如果你带着这些问题去重新审视你的 agent 项目,无论我这套框架对不对,这篇文章都有一点价值。 价值不在答案里,在问题里。

至于这套框架本身——它会演进,会被修正,也许某天会被我自己的实践证伪。但至少现在,它是我手上最好的思考工具。我把它交给你,不是作为真理,而是作为同行者之间的分享。

路还长,我们边走边看。


本文涉及的方法论,已沉淀为一个可复用的 skill(value-audit)。它同样是一个未经验证的工具——一个把这套思考框架固化下来的尝试。它能用、但好不好用,我还在摸索。如果你拿去试了,欢迎告诉我它在你的场景下管不管用、哪里不对劲。那些反馈,比任何理论推演都更能帮助修正这套框架的边界。

回到正文

结语 —— 13 章正文讲"怎么不翻车",这篇番外讲"怎么重新理解翻车这件事"。