不要盲目信任 AI:如何减少 AI Agent 的幻觉
AI Agent 经常犯错。它们会幻觉出代码、违反业务规则,或者选择错误的工具。
大多数人试图通过优化提示词(prompts)来解决这个问题。这是一个误区。
如果你想要可靠的 AI Agent,你必须设计具有明确约束条件的系统。你需要从一名“打字员”转变为一名“架构师”。
打字员 vs. 架构师
大多数用户表现得像打字员:
- 你要求:“实现一个身份验证系统。”
- AI 决定了结构、库以及文件夹布局。
- 每一个决策都是一次产生幻觉的机会。
工程师表现得像架构师:
- 你首先定义结构和库。
- 你设定约束条件和规则。
- AI 只在你划定的边界内编写代码。
AI 产生幻觉并不是因为它缺乏编程能力,而是因为它试图去猜测你脑海中存在但从未分享过的上下文。
策略 1:上下文文件 (Context Files)
不要每次聊天都重复相同的指令。使用配置文件为 AI 提供一个持久的框架。不同的工具使用不同的标准:
• CLAUDE.md 用于 Claude Code • AGENTS.md 用于开源生态系统 • .cursorrules 用于 Cursor • .copilotrules 用于 GitHub Copilot
专业提示:创建一个中央 AGENTS.md 文件并使用符号链接(symlinks),这样所有其他文件都会自动更新。
策略 2:ADR (Architecture Decision Records)
在要求 Agent 构建某些内容之前,先创建一个 ADR。这份文档消除了 AI “猜测”的需求。
一个好的 ADR 应包括:
- 确切要构建的内容。
- 需要创建哪些文件,以及哪些文件绝对不能触碰。
- 要使用的特定技术栈和库。
- 明确的约束条件(例如,“内存中不得存储状态”)。
- 一份 Agent 不被允许自行决定的事项清单。
当编排器 (Orchestrator) 接收到 ADR 时,设计决策已经完成了。开发 Agent 只需将规范转化为代码。这减少了错误并保持了代码库的一致性。
我正在开始一个关于构建可靠 AI Agent 工作流的系列文章。在接下来的部分中,我将涵盖系统提示词组合和高级工程技术。
