
152、复杂推理:数学题与逻辑题实战那时候我还在调一个所谓的“智能体”,任务不难:给一个初中生出的应用题,让它解出来。模型用的是当时市面上最强的闭源大模型,心想这还不简单。结果它给我一本正经地算出了“鸡兔同笼”里兔子有负数。不是格式错,是逻辑上彻底崩了。我盯着那行输出看了半天,突然意识到一个问题——我们都在教模型“说话”,但从来没教过它“想完再说话”。后来我把同一个问题拆成三个子问题,让模型先列方程、再解方程、最后代入验证,每一步单独调用,居然全对了。那篇笔记的标题我写了四个字:别省步骤。这次聊聊复杂推理,数学题和逻辑题是最好用的试金石,因为它们对错分明,不像写文案还能糊弄过去。先说一个核心认知:大模型不是一个优秀的推理引擎,它更像一个极其擅长模式补全的语言游戏高手。你给它看“2+2=”,它能补出“4”,因为它见过海量这样的文本。但“鸡兔同笼”这种需要多步演算、中间状态不能被吞掉的问题,它如果直接一口吐答案,等于跳过了所有中间计算,纯靠记忆和词序在赌。赌赢了是运气,赌输了就是你看到的负数兔子。所以Agent工程师要做的,不是换一个更贵的模型,而是把推理过程“物化”成可见的步骤,让每一步都能被检查、被验证、被纠正。这就像你写C语言时不会让一个函数干所有事,而是拆成小函数,每个函数做一件事,然后单个测试。推理链(Chain of Thought)的本质就是这个,但人的肉眼往往等不了那么长的输出,所以需要让Agent自己去“操作”这些步骤。我当时做了一个特别土的实验,没上任何框架,就写了几行带状态机逻辑的代码,让模型按“读题-设未知数-列方程-求解-回代-给出答案”六个阶段走,每个阶段只输出一个JSON块,我这边校验完再喂下一步