为什么这么多智能体工具只是1:1的API封装?
摘要
这篇文章认为,许多AI智能体工具只是1:1的API封装,将分支逻辑推给大语言模型,导致失败。作者推荐任务形态的工具,比如upsert_contact,将搜索/创建/更新逻辑封装在代码中,传递已知上下文,校验输入,并返回结构化错误。
我花了很多时间研究调用CRM、日历、工单系统以及类似API的智能体。我不断看到,模型因为工具设计方式导致的问题而受到指责。假设智能体需要在CRM中保存联系人。如果你给它search_contact、create_contact和update_contact这些工具,它必须先搜索、解释结果、选择下一个工具,再构建另一个请求。这看起来很灵活,但你却把一个普通的if/else分支推给了系统中确定性最差的部分。一个upsert_contact工具要更可靠,因为搜索/创建/更新逻辑留在了代码里。我开始在其他地方也使用同样的规则:传递你已经掌握的信息,比如当前用户、工作区ID,不要让智能体每次都自己去获取。工具只返回智能体需要的字段,而不是提供商的整个响应对象。在工具代码中,在输入到达外部API之前进行校验。返回结构化错误,而不是通用的500错误。只有在工具与当前工作流相关时才提供它们。面向编码的智能体或内部工具仍然适合端点形态的工具,因为在那里广度很重要,而且有人员在监督。对于面向客户、执行真实操作的智能体,我更倾向于暴露更少的任务形态工具。你们在生产环境中使用的是宽泛的、提供商形态的工具,还是最终把它们压缩成了更小的、任务专用的工具?
相似文章
大多数AI智能体只是套了循环的API调用
作者认为,AI智能体本质上就是带循环的API调用,并强调生产环境中的成功取决于重试、超时和人工审批等防御性工程,而不是模型选择。
大多数AI智能体失败的原因在于人们像构建聊天机器人那样构建它们
许多AI智能体实现失败是因为它们把智能体当作聊天机器人来对待,依赖聊天历史记录来管理状态,而非使用确定性的数据结构。文章提倡将推理(LLM)、动作(工具)、工作流进度(状态机)和外部触发(网络钩子)分开,以构建可靠的业务智能体。
在AI代理能读取一个收件箱之前,别急着把它接入12种工具
文章主张反对过早地将AI代理与多种工具过度集成,倡导窄范围但深度集成的连接(如收件箱和日历),这种连接利用实时上下文且可审计,因为广泛的集成往往在生产中失败。
停止构建AI智能体。
作者认为,大多数要求构建AI智能体的创始人实际上只需要简单的自动化流程,并辅以最少的LLM集成,理由包括生产环境故障、合规障碍,以及更简单工作流带来的更高投资回报率。文章提供了一个实用的决策框架,帮助开发者和创始人优先考虑可靠的自动化,而非复杂且不可预测的智能体。
AI智能体正成为新的CRUD应用。
文章认为,AI智能体正成为新的CRUD应用,每个人都在从头重建相同的概念,并提议为可复用的自动化模式创建一个社区标准,类似于代码领域的npm。