AI Agent学习:打通真实世界:Agent 工具分类与设计原则(李博杰《深入理解 AI Agent》4.1 4.2观后总结)

第4章 Agent工具 技术笔记

核心问题:工具是大模型大脑连接真实数字世界的手脚感官;本章解决工具选择异步与事件两大核心挑战

4.1 工具的分类

两个观察维度:调用方向作用对象

工具类型 调用方向 作用对象 典型工具示例
感知工具 Agent主动调用 获取信息 网页搜索、知识库检索、读文件、grep、读取网页
执行工具 Agent主动调用 改变外部世界 shell执行、代码解释器、写/编辑文件、发邮件
协作工具 Agent主动调用 驱动其他Agent/人类 创建子Agent、给子Agent发消息、取消子Agent
事件触发工具 Agent注册,外部触发 驱动Agent执行 定时器、监控后台任务、连接外部事件源
用户沟通工具 Agent主动调用 向用户传递信息 回复用户、卡片消息、用户通知提醒

各类工具要点

  1. 感知工具:拿信息;重点:粒度、输出信息量控制
  2. 执行工具 :修改外部环境;重点:错误代价高,安全约束为核心
  3. 协作工具:多Agent/人协作;用途:任务并行、不同任务使用不同模型/提示词/工具
  4. 事件触发工具
    • 两步:Agent注册关心的事件 → 外部事件到来异步回调唤醒Agent
    • 没有它,Agent只能被动响应对话,无法定时执行、响应邮件/告警等外部事件
  5. 用户沟通工具:把"和用户说话"变成显式工具调用,适配多渠道异步消息

前三类:Agent主动调用;后两类依赖事件驱动异步Agent架构

4.2 工具设计通用原则

4.2.1 能力表达:专用工具 vs Skill + 通用执行器

  • 专用代码工具:结构化函数调用,确定性强、可测试;缺点:占用大量token,工具膨胀破坏KV Cache
  • Skill + 通用执行器:自然语言写Skill流程文档,依靠bash/代码解释器执行;少量通用工具覆盖大量场景

选型三维度:

  1. 参数复杂度:嵌套、复杂校验 → 选专用工具;简单参数可用通用执行器
  2. 变更频率:频繁改动 → Skill;稳定底层操作 → 专用工具
  3. 模型能力:强模型适合Skill;弱模型依赖结构化Schema引导调用

4.2.2 工具粒度权衡:整合与分离

  • 粒度过细:工具爆炸,LLM选择负担重;粒度过粗:工具逻辑过于复杂
  • ✅ 整合判断标准:功能相似、使用场景高度重叠
  • ❗不要强行合并:参数差异大、延迟特性差距大的功能,强行合并会语义模糊

例:各类文档提取合并为read_document(file_type);但OCR与视频关键帧提取保持独立

4.2.3 通用性优先

优先通用工具,仅安全、权限、性能场景使用专用工具

例子:用沙盒code_interpreter替代一堆专用计算工具,利用模型代码生成元能力,覆盖未预见场景。

  • 通用性边界:高权限、风险操作,需要封装专用工具做权限控制与审计。

4.2.4 工具描述的艺术

工具调用出错,优先排查描述,而非换更强模型。

  1. 重点写什么时候用,不止写"能干什么"
  2. 明确边界:写清楚不能做什么,大量失败来自模型分不清边界
  3. 参数:给具体示例,不要只写抽象规范
  4. 写明返回值结构;耗时工具标注执行代价
  5. 附加1‑5个真实调用示例,显著提升调用准确率

4.2.5 参数传递保真性

禁止静默修改输入输出,两类反模式:

  1. 静默输入转换:底层悄悄改写参数(引号自动转换),模型看到的世界和工具操作的世界不一致,模型无法排错
  2. 静默参数注入:工具后台追加参数,引发莫名其妙报错

如需规范化输入,必须在工具文档说明,返回结果同步告知Agent,不能偷偷修改。

4.2.6 工具设计三代演进

  1. 第一代 API封装:API直接映射工具,粒度细,多工具组合完成简单任务
  2. 第二代 ACI(Agent‑Computer Interface) ACI对标HCI;工具面向Agent目标,而非面向底层API;本章粒度、通用性、描述规范都属于这一代
  3. 第三代 编排与发现
    • 准确调用:示例驱动调用
    • 工具发现:动态工具发现,不一次性灌入全部工具到上下文
    • 工具串联:代码编排工具调用,LLM生成脚本,中间变量留在执行环境,仅返回最终结果,大幅降低Token消耗(第五章详解)
相关推荐
TJHHH.1 小时前
SQL注入学习总结
数据库·笔记·sql·学习·注入
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(43):Mem²Evolve——让经验与能力在双记忆中共同进化
论文阅读·人工智能·学习·开源·github
个 人 练 习 生2 小时前
数据结构入门:算法复杂度
开发语言·数据结构·经验分享·学习·程序人生·算法
ι:2 小时前
DeepSeek Harness 桌面一键启动与网页背景修改指南
windows·学习·deepseekharness
其实防守也摸鱼2 小时前
红队技能总结导图:从入门到精通的完整知识体系
开发语言·人工智能·学习·安全·web安全
zjnlswd2 小时前
C# 学习笔记
笔记·学习
远离UE42 小时前
UE5 显存 虚拟内存 深入学习笔记
笔记·学习·ue5
我是慎独2 小时前
VulkanSceneGraph学习教程(十一)
c++·学习
HY小宝F3 小时前
从 APP 层打穿到传感器:树莓派 FFmpeg 底层学习笔记(一)V4L2/ALSA 踩坑与认知重构
笔记·学习·ffmpeg