Packet Tracer,但用于智能体

2026年9月9日发布 · 一个文件,把智能体之间的对话像网络动画一样重放。绿色通过。红色拒绝,并写下原因。

人人都在造智能体。没有人看见它们。

我有一支小小的智能体团队为我工作。他们准备、写代码、互相复核、测试。几个月来他们一直在交谈。成千上万条消息。数百对彼此对话的智能体。一切都整齐地排在行与列里。

而这正是问题所在。我能读到某条消息被拒绝了。我却看不见它。

在表格第4 812行读到"已拒绝",什么也学不到。感觉不到工作停在了哪里。看不出同一个智能体每次都拒绝同一样东西。表格藏起了对话的形状。

这个想法来自 Packet Tracer

如果你学过网络,就用过 Packet Tracer。把机器放在页面上,在它们之间拉线,按下播放,小小的信封就沿着线路滑下去。有一个掉落时,你看得见它掉落。

从那以后,再没有人需要向你解释什么是网络。你已经亲眼看过了。

我沿用了同样的对应关系:

一台机器变成一个智能体
一根线变成一对互相对话的智能体
一个信封变成一条消息
一个丢失的信封变成一次拒绝,附带它的原因

整幅图就是这样。里面再没有别的。

它长什么样

只有一个页面。在浏览器里打开,它就自己动起来:准备者、编写者、复核者、测试者之间的一段示例对话,一个信封接一个信封地展开。

智能体的房间:每个智能体是一台机器,每根线连接两个互相对话的智能体
塔的真实记录:414个智能体,450根连线,12 722条消息。

每个智能体是一个方框。每条消息是一个从一个方框滑向另一个方框的信封。绿色信封:门说了"是",工作通过。红色信封:门拒绝了,原因写在屏幕上。

可以暂停,可以一次前进一条消息,也可以点击日志里的一行跳到那个时刻。无需安装。无需下载。没有网络也能运行。

真正重要的:红色

大多数智能体仪表盘展示的是吞吐量。消耗了多少词,完成了多少任务,一条漂亮的、向上爬的绿色曲线。

那是故事里最不有趣的一半。

只会说"是"的智能体不是智能体。它是一根管子。你的系统变得值得信任的那一刻,就是它内部有什么东西有权说"不",然后告诉你为什么的那一刻。

所以,拒绝是屏幕上最醒目的东西。红色信封带着它的原因,而原因是完整写出来的:

已拒绝 —"这个修复吞掉了错误"。原因:被捕获却什么都不做的错误会掩盖故障。要么写进日志,要么让它向上抛出。

这一行比一百行绿色更有价值。这是系统教给你东西的唯一地方。

我的办公桌上方贴着一句话:

从未拒绝过的门,什么也守不住。

如果你把日志放进去,一个红色也看不见,那并不意味着你的系统是安全的。那意味着这些日志里没有任何东西让你的检查真正工作过。没有红色什么也证明不了:这时就得去故意弄坏点什么,看看门会不会说"不"。

七个词

消息使用一套极小的词汇,借自机场的控制塔。在塔台里,管制员给出航向,飞行员在转向之前复述一遍。这种复述不是礼貌:它是在飞机动起来之前抓住误解的办法。

我的智能体也这样说话。给他们的词有七个,只有七个。你的智能体可以保留自己的词:下面这七个会被上色,其他的照样通过。

请求 — 我请你做一件事。
复述 — 明白,我用自己的话重复你的指令。
执行中 — 我正在做。
完成 — 做完了,这是证据。
拒绝 — 我不会做,原因在此。
受阻 — 我无法继续,拦住我的是这个。
不知道 — 我不清楚,能决定的是这个。

前四个很容易。后三个才是全部的价值。

"不知道"是我最喜欢的一个。说不出这句话的模型会编造一个答案来代替,而一个编造的答案,代价远远高于一个问题。所以这个词存在,它有自己的颜色,并且带着一个栏位,用来写下什么能作出决定。

把你自己的日志交给它

把文件拖到页面上。什么都不会被发送到任何地方:背后没有服务器,没有上传,没有隐藏的统计。文件在你的浏览器里被读取,并留在那里。

格式是故意做得乏味的。对每条消息:谁在说,对谁说,七个词中的哪一个,主题,以及有原因时的原因。

三件事让它容易采用。智能体清单是可选的:没有它,棋盘会根据消息里出现的名字自动重建。词是自由的:上面七个会被上色,其他的照样通过。原因是可选的,但它是你拥有的最珍贵的栏位——没有原因的拒绝,教不了任何人任何东西。

如果你的工具已经在写记录,转换只需二十行。

它从哪里来

这是一件更大东西的窗口:一座控制塔,一支智能体团队在有权说"不"的门后做真正的工作——自动检查、智能体之间的复核,以及对所有输出拥有最后决定权的人。

我把这扇窗单独拿出来,因为它被证明自己就有用。所以,把你自己的日志放进去,告诉我你看到了多少红色。如果答案是"一个也没有",那本身就已经是一个结果。

🔭