先这样答
结论是,Agent 在 thinking 阶段要看三个信号:信息充分性、风险与成本、任务类型。先判断回答所需知识是否已经在上下文里。信息够用,就直接回复。缺少实时数据或私有数据,就必须调用工具补齐信息。
再看调用是否值得。工具调用会增加延迟,也可能带来副作用。Agent 要把这些成本纳入决策。任务类型也给出基础方向。查询类和计算类任务走工具。解释类和生成类任务直接答。三个信号要一起看,不能只按任务类型机械分流。即使是解释任务,只要依赖缺失的实时或私有数据,也要调用工具。
实现时,可以让模型在思考里显式输出判断。模型逐项判断信息是否充分、调用工具有什么风险与成本、当前任务属于哪一类。也可以在模型前放一个轻量意图分类器,再加规则兜底。前一种方式直接使用模型完成决策。后一种方式把判断前置,并用规则约束边界,稳定性更高。
面试官会怎么追问
-
「为什么不能让所有请求都调用工具?」 工具调用有延迟,也可能产生副作用。如果上下文已经包含所需知识,直接回复更合适。Agent 要先判断信息缺口,再决定是否承担调用成本。
-
「查询类任务是不是一定要调用工具?」 任务类型只是决策信号之一。Agent 还要看信息是否充分。如果查询依赖实时数据或私有数据,就必须调用工具。如果所需信息已经在上下文中,就可以直接回复。
-
「模型自己判断和前置分类器有什么区别?」 模型自己判断时,会在思考里显式给出三个信号的判断。前置方案先用轻量意图分类器分流,再用规则兜底。后者对决策边界的约束更明确,也更稳定。
回答的坑
-
只说查询走工具、生成直接答,却不判断上下文是否已经包含所需信息。
-
只强调工具能补充信息,却忽略调用带来的延迟和副作用。
同系列的题