Agent 回答不准或幻觉——训练和 System Prompt 调优全指南
Agent 表现不佳的常见表现
你可能遇到过这样的场景:
- Agent 给客户的回复里说"团队有 XX 功能",但其实没有
- 问它某个产品参数,它编了一个数字出来
- 同一份知识,有时候能答对有时候答不出
- 对话里突然跳回几个月前已经废弃的旧说法
这些问题的根因可以归到五个维度——逐一排查和调优。
维度一:System Prompt
System Prompt 的作用
System Prompt 是 Agent 的核心身份和行为指令,决定它"是什么、能做什么、怎么回答"。它的优先级高于用户输入和知识库内容。
常见问题
问题 1:Prompt 太模糊
"你是一个帮助销售的 AI Agent"
这条 Prompt 对 Agent 来说等于没说——它不知道具体要帮什么、回答什么格式、有什么禁忌。
改写后:
"你是团队公司的销售线索分析 Agent。
你的职责:
- 读取 CRM Project 里客户的 Lead Score 评分
- 搜索 Knowledge Pack 里的行业报告和竞对信息
- 生成结构化的跟进建议:客户画像、痛点、推荐话术、预计成交概率
回答要求:
- 先给出结论(成交概率 + 一句话策略),再展开
- 每个判断必须引用知识来源,不确定的地方明确说'基于现有资料还无法判断'
- 不要编造任何数据或案例
禁忌:
- 不要说团队没有的产品功能
- 不要承诺折扣或特殊报价"
问题 2:Prompt 太长太杂
System Prompt 不是越长越好。太长会:
- 消耗更多 Credits(每次对话都要把 Prompt 喂给模型)
- 核心规则被淹没,Agent 分不清优先级
建议结构:
- 角色定义(1-2 句话)
- 职责列表(3-5 条)
- 回答格式要求(具体、可执行)
- 知识来源说明(从哪里找答案)
- 禁忌清单(禁止做什么)
问题 3:缺少反幻觉规则
最重要的一条:
"如果你不确定答案,坦诚说明不确定,不要猜测或编造。优先引用知识库的具体内容,找不到就说'我从现有资料里没找到相关信息'。"
这条规则能解决 90% 的幻觉问题。
调优方法
- 跟 Agent 对话 5-10 次,记录它答得好和答不好的场景
- 答好的场景,分析 System Prompt 里哪部分指令起了作用
- 答不好的场景,补充更明确的规则和反例
- 每次只改 1-2 处,改完立即测试验证
- 把好的 System Prompt 版本备份下来
维度二:知识库质量
常见问题
知识过期
知识库很久没刷新,但你在回答里引用过时的信息。
- 解决:在 Knowledge 面板点 Refresh,或升级到每小时/实时同步
知识不够
某些问题涉及的信息根本不在知识库里面。
- 解决:补充相关文档、URL、PDF
知识来源矛盾
Agent 同时看到新旧两个版本的内容,搞不清用哪个。
- 解决:System Prompt 里加"如知识来源冲突,以最新更新日期的为准"
- 清理掉旧版本的知识源
知识粒度太粗
一整个 200 页的 PDF 作为知识源——Agent 找到相关段落就像在书海里找针。
- 解决:手动把长文档切成几个主题明确的小文档再上传
知识库优化检查清单
- [ ] 所有知识源都有更新日期
- [ ] 过期的知识已清理或标记
- [ ] 每个知识源聚焦一个主题(不要大杂烩)
- [ ] 关键信息(价格、参数、政策)有多来源交叉验证
- [ ] 定期(每周/每两周)刷新
维度三:模型选择
简单任务高配模型 = 浪费 Credits + 可能更差的表现
TSK-Reasoning 这种深度模型不一定在所有场景都表现更好——简单问答用太复杂的模型反而可能过度发挥。
| Agent 类型 | 推荐模型 | 原因 |
|---|---|---|
| 标准客服 Agent | Instant 或 Standard | 标准答案多,不需要深度推理 |
| 数据分析师 | Thinking 或 Reasoning | 需要综合多源信息 |
| 技术问题解答 | Standard 或 Thinking | 需要准确但不一定超深度 |
| 创意/文案 | Standard | 发挥创意但不需要推理 |
测试不同模型的效果
给同一个问题在不同模型下各跑 3 次,哪个模型稳定输出你想要的答案就用哪个。稳定性通常比单次惊艳表现更重要。
维度四:工具权限
Agent 需要能"主动获取信息"
有时候回答不准不是因为没知识,而是因为它不知道去调用工具找最新信息。
比如销售 Agent 要回答"当前某竞对的最新动态"——这需要网页搜索工具。如果不给 Agent 开这个工具权限,它就只能用已有的知识库回答过时信息。
检查工具使用习惯
观察 Agent 的对话日志:它有没有主动调用工具?调用的时机对吗?如果应该调用但没调用:
- 在 System Prompt 里明确说"回答前先检查有没有工具可以帮助获取最新信息"
- 在工具配置里给它更明确的说明
维度五:对话历史和上下文
短会话 vs 长会话
Agent 的"记忆"来自 Projects 和知识库,但一次对话内的上下文是有限的(取决于模型的 context window)。长对话到了后面,早期的信息可能被挤出去。
- 解决方案:重要的决策和结论写入 Project 字段——这样下次对话 Agent 从 Project 里读,不依赖对话上下文
- 避免在同一会话里让 Agent 做太多不同的事
干净的会话起始
每次让 Agent 处理一个新主题时,建议开新对话而不是继续老对话。老对话里的上下文会干扰新任务。
系统化调优流程
- 收集 bad cases:把 Agent 答得差的对话整理出来
- 归因:对每个 bad case 判断是 System Prompt 问题、知识库问题、模型问题还是工具问题
- 修正:每次只改一个维度的一处
- 验证:用同样的或类似的问题重新测试
- 记录:把好的调优经验沉淀到一个"Agent 最佳实践" Project 里
经过几轮迭代,Agent 的表现会稳定提升到可用甚至好用的程度。