跳到主要内容

工具分类与 ACI 视角

五类工具按调用方向与作用对象如何区分?​

工具类型调用方向作用对象
感知工具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 包含哪三条设计原则?​