Press "Enter" to skip to content

确定性的台阶

我们常说 AI 有“幻觉”(Hallucination)。在很多语境下,这是个贬义词,意味着胡编乱造。

但在创造者的眼里,幻觉是极其珍贵的资源。小说家乔治·R·R·马丁曾把作家分为两类:“建筑师”和“园丁”。建筑师先画蓝图,追求严丝合缝;园丁先撒种子,等待意外生长。最迷人的作品,往往是园丁的狂野想象在建筑师的结构中生长出来的。

同样的张力也存在于爵士乐中。小号手可以即兴吹出最疯狂的旋律,飞到九霄云外,但贝斯手和鼓手必须稳如磐石。那个永远不乱的低音节奏,就是风筝的那根线。

现在,我们正站在一个新的路口:当 AI 成为那个“疯狂的小号手”,甚至开始自我循环、自我编程时,谁来做那个“鼓手”?

在最新的 AI 工程实践中,我们似乎找到了答案。

回归“古老”的 CLI

最近在 Coding Agent(编程智能体)领域,出现了一个有趣的“返祖现象”。

无论是像 Manus 这样的新锐,还是 Claude Cowork 这样的巨头探索,它们在让 AI 替人类干活时,都不约而同地选择了一个极其传统的交互界面:CLI(命令行界面)

表面上看,是因为 CLI 简洁、通用。但从工程哲学的角度看,这背后隐藏着对抗 AI 熵增的秘密武器。

AI 的思维(模型内部的概率分布)是发散的、液态的、甚至可以说是“气态”的。它可能在一秒钟内构思出三种重构代码的方案,或者幻想出一个不存在的 API。如果让这种气态思维直接输出,很容易变成一团乱麻。

而 CLI,是一个绝对的收束器

无论 AI 的“内心戏”多么丰富,当它决定要与现实世界交互时,它必须把所有的想法挤压成一行具体的命令: npm install react 或者 python test_generator.py

这一刻,“气态”的思维被迫液化成了“固态”的行动。

确定的“点”与上升的“台阶”

这就是我在工程实践中观察到的“锚点效应”。

AI 可以生成成千上万字的推理链(CoT),这是概率的世界。但当它敲下回车执行 CLI 命令的那一瞬间,它就撞上了确定性的墙壁。

  • 命令执行成功了?—— 这是一个确定的真值(True)
  • 命令报错了?—— 这是一个确定的假值(False)

这种“非黑即白”的反馈,对于 AI 来说至关重要。它不再需要在概率的云雾里猜测自己对不对,编译器和操作系统给了它最冷酷也最诚实的回答。

正如您所见,基于沙箱(Sandbox)的 Agent 之所以能成功,是因为它们建立了一种节奏: 幻想(生成计划) -> 收束(CLI命令) -> 撞击现实(执行结果) -> 修正(下一轮生成)

每一个执行成功的代码片段,不再是虚无缥缈的文字,而变成了一块坚硬的砖头。 AI 踩在第一块砖头上(环境配置成功),才能去够第二块砖头(编写测试通过),最后够到第三块砖头(功能实现)。

这就是把“幻觉”工程化的过程:利用 CLI 创造一个个确定性的“点”,将它们连成线,最终把概率的斜坡,变成了一级级可以攀登的台阶。

我们可以学到什么?

我们以前总担心 AI 会失控,会一本正经地胡说八道。现在看来,解决之道不是禁止它胡说,而是给它一个“验证的沙场”。

这给我们构建 AI 应用带来了一个极佳的启示:

如果你希望你的 AI 助手靠谱,不要只关注它的 Prompt 写得好不好,要去关注你有没有给它提供足够的“确定性锚点”

  • 给它一个计算器,让它验证数学题;
  • 给它一个数据库查询权限,让它验证事实;
  • 给它一个代码解释器,让它验证逻辑。

未来的 AI 工程师,某种程度上就是“数字世界的关卡设计师”。我们需要设计的,不是 AI 该说什么话,而是那些能够让 AI 里的“疯狂园丁”撞击现实、从而修剪枝叶的“硬墙壁”。

在这个循环中,AI 负责提供无限的可能性,而我们设计的工程环境,负责提供那个至关重要的——“抓手”