Agent 工具类型怎么选?
AI Agent 常用工具分类、作用及使用场景详解
原题:请详细描述在构建AI Agent时,通常会调用哪些类型的工具,并解释每种工具的作用和使用场景。
Agent · 百度真题
30 秒回答
- 工具分类的完整性(搜索、计算、数据库、API等)
- 每种工具的典型使用场景
- 工具选择的决策逻辑
- 工具调用与Agent规划的配合关系
回答与解析
答案要点
- 工具分类的完整性(搜索、计算、数据库、API等)
- 每种工具的典型使用场景
- 工具选择的决策逻辑
- 工具调用与Agent规划的配合关系
- 实际落地中的工具注册与管理机制
Agent工具主要分为以下几类,每类解决不同能力边界问题:
1. 信息检索类
- 搜索引擎/知识库:弥补模型知识时效性和幻觉问题,如实时新闻查询、企业内部文档检索
- 数据库查询:SQL执行、向量检索,用于结构化数据获取
2. 计算与推理类
- 代码执行器:Python/Shell执行复杂计算、数据分析,解决数学推理短板
- 专用计算API:金融定价、科学计算等,避免模型自行计算出错
3. 外部服务类
- 业务API:订单查询、天气、地图、支付等,打通真实业务系统
- 第三方SaaS:日历、邮件、CRM等办公工具集成
4. 感知与交互类
- 多模态工具:图像生成、OCR、语音识别,扩展输入输出模态
- 浏览器控制:网页浏览、表单填写,处理动态内容
使用场景示例
| 场景 | 工具组合 |
|---|---|
| 智能客服 | 知识库检索 + 订单API + 工单创建 |
| 数据分析助手 | SQL查询 + Python执行 + 图表生成 |
| 旅行规划 | 航班API + 酒店API + 地图API + 日历工具 |
关键设计原则
- 原子化:工具粒度要细,便于灵活组合
- 描述清晰:工具名称、参数、返回值描述直接影响LLM调用准确率
- 容错机制:超时、失败重试、结果校验必不可少
实际落地中,工具通常通过Function Calling或ReAct范式接入,需要配套的工具注册中心、权限管控和调用链路监控。
口语版讲法(约4分钟)
- 一句话点题:Agent工具本质是给LLM装“手脚”
- 按场景分三类讲清楚边界
- 举例旅行规划串起工具组合
- 落地风险:描述、容错、注册管理
- 收尾:我倾向轻量可组合,留可延伸点问Function Calling细节
这道题其实问的是,当我们说一个Agent能'做事情',它到底靠什么跟真实世界打交道。说白了就是给大模型装上手和脚,让它不光能说,还能查资料、算数据、调接口。工具的类型很多,但核心就解决一个问题:把LLM的能力边界从'知道'扩展到'能做到'。
我一般会把工具按场景分成三大块。先说信息检索类,像搜索引擎、知识库、数据库查询这些。它们主要解决模型的Hallucination和知识滞后问题,比如实时新闻、企业内部文档。但这里有个边界:搜索引擎适合开放域,知识库适合固定范围,数据库适合精确查。真正落地时往往是混着来的,比如客服场景,先向量检索找相似FAQ,再SQL查订单状态,两个结果拼一起给模型。
第二类是计算与推理类,最典型的就是代码执行器,Python跑个复杂公式或者数据分析。模型直接算数学题容易翻车,但让它写代码算就稳得多。还有专用计算API,比如金融里的定价模型,那是专业工具,模型自己算风险太大。
第三类是外部服务类,比如天气、地图、支付这些业务API,还有日历、邮件这些办公工具。它们让Agent能调用真实系统,比如旅行规划里,得同时调航班、酒店、地图三个API才能给出完整行程。
举个例子,做个旅行规划Agent。用户说'帮我规划下周末去上海的行程'。Agent得先调日历工具确认周末是哪天,再调航班API查余票,酒店API查房间,地图API查景点路线,最后可能还要天气API看要不要带伞。这几个工具不是顺序调用,而是规划好依赖关系,比如先确定时间再查航班,航班定了再查酒店。
这里有个坑,就是工具描述的质量。Function Calling的准确率很大程度上取决于工具的名字、参数、返回值写得清不清楚。如果描述模糊,模型可能选错工具或者填错参数。所以上线前我会特别关注工具注册的元数据,每个工具都得有明确的用途和参数约束。
另一个风险是容错。工具调用可能超时、失败、返回异常。如果机票API挂了,Agent不能卡死,得能优雅降级,比如提示用户稍后再试,或者换备选方案。我还会做调用链路的监控,记录每次工具调用耗时和错误率,方便排查问题。
总结一下,工具的选择取决于场景。信息检索解决知识问题,计算推理解决数学问题,外部服务连接真实世界。我个人的倾向是,工具尽量原子化,每个只做一件事,这样组合起来更灵活。
不过话说回来,工具调用还有一个容易被忽略的点,就是模型怎么决定调用顺序和参数。这其实涉及到ReAct或Function Calling的底层设计,比如模型是在生成过程中动态决定调用工具,还是预先规划好一个DAG。不同方案对延迟和准确率影响挺大的,这块如果面试官感兴趣我们可以再深入聊聊。
关键一句:工具调用顺序决策的不同方案(动态调用 vs 预规划DAG)及其对延迟和准确率的影响
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做智能客服,用户问“帮我查一下上个月的订单”,Agent需要先查知识库、再调订单API、最后可能还要写个Python算个总额。你一般会给Agent配哪些工具?每种工具什么场景下用?
- 问法 2 · 层层追问
Agent规划任务时,你觉得工具应该怎么分类?……那如果模型算数老出错,你会加什么工具?……除了计算,还有哪几类常见工具?比如要查外部数据、要操作业务系统,分别对应什么?
- 问法 3 · 直球架构
请系统性地讲一下构建AI Agent时通常会调用哪些类型的工具,每类工具的作用和典型使用场景,以及你在实际项目中怎么管理和注册这些工具的。