完整题目
多个工具都声称能完成同一子任务时,Agent 如何过滤、排序、调用和回退,并避免竞速、副作用与评分失真?
本文目录
1. 先做硬约束过滤
工具不是先打分再选最高。先过滤能力不匹配、用户无权调用、地区/数据范围不符、输入 schema 不兼容、配额不足、健康状态异常,以及当前任务不允许的副作用。安全、合规、目录有效和用户确认是门槛,不能被低延迟或低成本抵消。
工具注册信息至少包含版本、能力、输入输出 schema、资源范围、副作用级别、幂等语义、超时/取消、费用口径、数据新鲜度和已知限制。
2. 条件化估计而非简单倒数
对剩余候选,按任务类型和上下文估计成功质量、延迟分布、成本、数据时效与故障概率。1/Cost、1/Latency 在接近零时会失真,各指标单位也不同;应归一化或用约束优化,并保留样本量与不确定性。全局成功率会掩盖某种语言、地区或参数上的失败。
安全关键任务可用确定性规则指定权威工具;一般任务再用规则、分类器、bandit 或排序模型。模型更新必须经过离线回放、影子和灰度,RLHF 不是自动必要的升级路径。
3. 调用计划
- 无副作用且独立、预算允许时,可以并行或 hedging,但要限制 fan-out;
- 写操作、计费调用或会改变同一资源的工具不做竞速,使用幂等键和明确顺序;
- 每个调用携带 request ID、deadline 和取消信号;
- 超时后到达的结果必须根据请求状态丢弃或进入补偿,不能“谁先回来用谁”同时让另一分支继续产生副作用。
Top-K 并行不是默认动作。多个结果还需要验证 schema、来源、时间和相互冲突,再决定融合、澄清或转人工。