当 AI 智能体产生幻觉时该怎么办?答案更多关乎架构,而不是 prompt。

最初发表于 Medium

在过去几周里,我把一个 AI 智能体投入了生产环境,目标很简单:为一家医疗诊所预热潜在客户并提供支持,直接在 WhatsApp 上安排就诊和回答问题。

在测试阶段,一切都很顺利.. 但当真实的潜在客户开始进来时,现实狠狠地打了我一巴掌。

我开始跟踪任务的成功率,并直接在数据库里监控对话,就在那时,不一致的问题浮现了出来。

即使有一个结构良好的知识库,智能体还是开始编造内容。

我的第一反应是改进知识库。这有帮助,但并没有解决 100% 的问题。

接着,我优化了 prompt。它又有了改善,但在某些情况下仍然会跑偏。

转折点在于把解决方案拆开:单个智能体就是搞不定。

解决办法是在前面放一个「分类器」智能体,它识别用户的意图,并把用户路由到其他专门的智能体。

理论与实践

这次实践经历让我非常好奇,于是周末我停下来去理解幻觉背后的理论。

我偶然读到了一篇文章(我不记得是谁推荐的,但它很有启发性)。

我原本就知道,幻觉不是一个「bug」,而是 LLMs 固有且不可避免的特性。

重点不应该是消除它,而是缓解和管理它。不过在实践中,这相当复杂。

基于我的经验以及那篇文章里的启发,下面是我在这个过程中学到的 3 条实用建议:

1. 把你的知识库当成一个产品来对待

幻觉的主要原因来自糟糕、不完整或过时的数据。

改进知识库(一种被称为 RAG 的技术)是让 AI 立足于事实的第一步,可以降低它编造信息的可能性。

2. 对 prompt 保持偏执

含糊的指令会产生含糊的答案。

研究表明,你提问的方式会直接影响答案的质量。定义智能体的角色,给出清晰的示例,并限制任务的范围。一个好的 prompt 是避免偏离的好开始。

3. 复杂的问题,就用多个智能体

一个智能体试图处理很多不同的任务(预约、回答问题、资格筛选)时可能会混乱。对我有效的方案是使用一个路由智能体来识别意图,然后把球传给专家智能体。

这种做法在系统中形成了天然的护栏(guardrails),与文章所说的控制机制相吻合。

这些经验里的很多内容,我几乎每周都会讲给不同的人听,但当你自己就是那个动手实现的人时.. 你最终会先忘掉,再用最艰难的方式学一遍,然后才算真正学会 :)

这份研究很密集,但对任何在用 AI 构建东西、想要深入表面之下的人来说,都值得一读。

这篇文章最初以葡萄牙语发布在我的 LinkedIn 上。你可以阅读原文版本,并在那里关注我,获取更多见解。

返回文章列表