前后说的和调用的subagent不一致,也不懂是我没弄懂他的逻辑还是我给他的指令太乱
一样遇到过类似的,执行 spec-kit 的 /speckit.clarify 时给了三个选项,推荐项是 A ,然后选择推荐项就执行了B ![]()
确实是这样,不过好像GLM5整体来说还是比kimi、minimax更听话点。哈哈哈
先纠正一个误解:AI不是在"撒谎"。
幻觉的本质是概率填充。
心理学里有个概念叫confabulation(虚构症):大脑在记忆空白处自动填充看起来合理的内容,患者对此完全没有意识。
LLM的幻觉就是这个机制。
当你问它不知道的问题,它不会停下来说"我不知道"。它会在概率空间里搜索"看起来最像正确答案"的Token序列——即使完全是编造的。
这不是缺陷,是设计。LLM的唯一任务就是预测下一个Token。
所以你在System Prompt里写"请务必准确,不要编造"有用吗?
几乎没用。更惨的是,它可能编得更自信了。
因为你的指令让模型进入了"权威回答"的模式——训练数据里的权威回答通常都很自信,所以模型连编造的内容也会用自信的语气输出。
真正有效的方法是工程手段:
- 约束输出空间:用JSON Schema限制输出格式,让模型只能在预定义选项中选择
- 提供参考锚点:把相关文档喂进上下文,让模型基于已有信息回答而不是凭空生成
- 设计验证回路:让另一个调用去核实输出,或者要求模型附带置信度评分
幻觉不是道德问题,是工程问题。工程问题有工程解。
这个话题我在《AI Hacking Guild》系列里有一整章详细拆解,包括5种消除幻觉的具体方案。