385美元飞都柏林,AI代理悄然删除城市信息;工具提示在响应中,却仍保持沉默。
摘要
作者描述了一个AI代理,尽管工具备注中提示了信息遗漏,却仍从航班搜索结果中省略里斯本,强调需通过架构变更提升模型对信息缺口的透明度。
今天早上,五个城市被输入一次搜索。四个城市返回了价格,里斯本却毫无结果。问题是从JFK出发到都柏林、里斯本、巴塞罗那、马德里或米兰的最便宜往返机票,出发日期为2027年1月13日至15日,行程七晚,最多一次转机。它通过我运行的MCP服务器处理,因此我手头有原始工具结果与答案的对比。模型只进行了一次工具调用,而非工具描述要求的十五次,这点让我很满意。返回结果显示:都柏林机票为冰岛航空的385美元,巴塞罗那和马德里均为519美元,米兰为559美元。并指出385美元的价格“不错,但不算便宜”,因为谷歌追踪的该航线价格区间为345至440美元。所有信息均正确。答案中唯独缺少里斯本的价格。不是“没有飞往里斯本的航班”,而是完全缺席。实际情况是模型选择了limit: 12,但实际行数超过12,导致里斯本的三行数据被截断。我的服务器预见了这种可能性,因此在响应中附带了一个字段明确说明:“note”: “`limit` was 12, which is fewer than the number of date/destination combinations that returned flights, so 3 of them have no row in `results`: 2027-01-13 to LIS, 2027-01-14 to LIS, 2027-01-15 to LIS. Those searches ran and found flights; the answer simply had no room for them. Raise `limit` to see them.” 这句话就在上下文窗口中。模型读到了它,却未将其传递出去。顺便提一下,里斯本的价格是599美元,这不会影响推荐结果,而且这并非问题的核心。因此,我之前的认知有误:仅在载荷中包含遗漏备注是必要但远远不够的。备注属于散文体文字,容易被忽略。如果信息缺口至关重要,则必须通过架构设计,使得没有它就无法生成完整答案。接下来我正尝试引入一个“missing”数组,要求其为空才能使search_status状态为“ok”。你们有什么真正能让模型主动揭示自身盲点的方法吗?
相似文章
我为我的代理配备了搜索工具,但它拒绝使用,以及其他一些我犯的错误
作者详细介绍了构建一个用于书籍推荐的个人AI代理,分享了关于工具合规性、成本管理和反馈循环的经验,使用基于Go的实现。
AI经常连非常基础的事实都弄错。模型关注的是平均值——而不是精确答案
用户报告称,AI模型Gemini和Claude在旅行中提供了错误的公交时刻表信息,这些模型承认它们给出的是近似答案而非精确事实,这凸显了可靠性问题。
AI agent在一夜之间悄然让你花费最多的一次是什么?我的那次在我注意到之前就产生了大约220英镑的费用。
一位用户分享了一次个人经历,AI agent在不知不觉中一夜之间产生了220美元的费用,凸显了AI agent潜在的隐藏成本。
我们的AI助手对我们并不销售的东西说了“可以”,日志却无法告诉我原因
本文回顾了一起AI助手错误确认服务的事件。故障排查发现知识库检索未被记录,导致无法将回答归因于检索到的上下文。文章强调,为验证回答的依据,需要对检索进行按对话轮次可追溯的日志记录。
我们的AI智能体向客户开具了0.00美元的发票,而我们的日志却未发现异常。以下是我们如何发现的。
一位工程师描述了他们的AI销售智能体如何自信地开具0.00美元的发票,原因是它将空值折扣字段误解为100%折扣,这凸显了调试智能体工作流的难度以及全面执行追踪的必要性。