五类工具按调用方向与作用对象如何区分?
| 工具类型 | 调用方向 | 作用对象 |
|---|
| 感知工具 | Agent 主动调用 | 获取信息 |
| 执行工具 | Agent 主动调用 | 改变世界 |
| 协作工具 | Agent 主动调用 | 驱动其他 Agent 或人类 |
| 用户沟通工具 | Agent 主动调用 | 向用户传递信息 |
| 事件触发工具 | Agent 注册、外部触发 | 驱动 Agent 开始执行 |
- 用法: 这两列不构成交叉分类框架——每类工具在“作用对象”上各有专属取值,它们只用于快速把握每类的定位;
- 概览: 五类工具的基础定义见 五类工具概览;
主动调用的三类工具各自的设计重点是什么?
- 感知工具: 主动获取信息,例如
web_search、knowledge_base_search、fetch_url、find_file、grep_file、read_file;关键是控制输出信息量,防止上下文爆炸;详见 感知工具的设计要点;
- 执行工具: 改变外部世界,例如
shell_exec、code_interpreter、write_file、edit_file、send_email;错误代价可能极高,安全约束是其设计核心;详见 执行工具的安全分层;
- 协作工具: 驱动其他 Agent 或人类,例如
spawn_subagent、send_message_to_subagent、cancel_subagent、list_agents;动因是并行执行不相关任务,以及用不同模型、工具、提示词与上下文处理不同任务;详见 协作工具与子 Agent;
事件触发工具与用户沟通工具为什么与异步运行时绑定?
- 事件触发工具: 例如
set_timer、monitor_shell、connect_channel,涉及两个时刻——注册时由 Agent 主动调用、声明自己关心什么事件,触发时由外部事件异步回调唤醒 Agent;
- 缺失后果: 没有事件触发工具,Agent 只能在用户发起对话时被动响应,无法在指定时间自主行动,也无法对新邮件、系统告警等外部事件做出反应;
- 用户沟通工具: 例如
reply_to_user、send_card_to_user、send_user_notification;当沟通从单一会话的一问一答扩展到多渠道异步消息,“说话”本身也需要成为显式工具调用;
- 共同前提: 两者都依赖事件驱动的异步运行时,因此与实时交互一并放在第六章讨论;
ACI 是什么?
- 术语: ACI(Agent-Computer Interface),对标 HCI 提出——HCI 研究人如何与计算机交互,ACI 研究 Agent 如何与计算机交互,核心是让工具对 Agent 而非对人友好;
- 早期形态: 直接的 API 封装——把每个 API 端点包成一个工具,粒度过细,Agent 往往要协调好几个工具才能完成一个目标;
- 成熟思路: 工具应该对应 Agent 的目标,而不是底层的 API 操作;
ACI 包含哪三条设计原则?