LS-Labs
GLM 角色立绘,手拿书本

研究主题页 · TSO

TSO 工具选择优化工具准备好了,
AI 为何没选你?

TSO(Tool Selection Optimization,工具选择优化)是 LS-Labs 用来检查 AI 智能体如何找到、选用并调用工具的操作框架,涵盖工具接入、候选曝光、模型选择与执行。

本页整理工具检索流程、MCP 接入与工具定义的写法,将候选曝光、模型选择和执行结果分开观察。

01

TSO 阅读指南

从工具选择流程开始,延伸到接入协议、搜索界面与应用案例。

延伸术语:工具元数据、工具描述、候选召回、TCC。

延伸阅读:用 TCC 检查工具定义;AI 智能体的工具选择机制。

02

TSO 的四个环节

TSO 把智能体选工具的过程拆成四段:工具接入、候选曝光、模型选择、调用与执行。工具没被用上时,可能根本没进候选清单,也可能进了清单却输给别人;四段拆开,才分得清问题在曝光、选择还是执行。

  1. 01

    工具接入 Integration

    它有没有接进智能体能用的系统?

    以 MCP 为例,工具定义包含名称、描述与输入参数。模型看的是这些元数据,不是你的程序写得多好。

  2. 02

    候选曝光 Exposure

    它有没有被载入,让模型看到?

    采用工具搜索的系统,会先检索候选,再载入部分工具定义。以 Anthropic 的工具搜索为例,标记为延后载入的工具要等 Claude 搜索到才会出现。没被载入的工具,后面的选择根本轮不到它。

  3. 03

    模型选择 Selection

    候选工具里,模型为什么选它?

    模型在已载入的工具中挑一个。用户需求与工具描述的语义有多接近,会直接影响选择。BiasBusters 研究就发现,小幅改动工具描述也可能明显改变结果。

  4. 04

    调用与执行 Execution

    被选中之后,真的做完了吗?

    模型决定工具与参数后,由客户端以 MCP 的 tools/call 等方式送出调用。接着要检查参数、返回结果与执行错误,不能把“有调用”当成“已完成”。

套回预订的例子

假设餐厅的预订 API 已接进某个智能体,用户说要预订,它却没被调用。若它不在搜索返回的候选工具里,问题出在候选曝光;若在清单上却输给另一个预订工具,要看模型选择;若被选中但日期参数填错,就是调用与执行出了状况。

“被找到”和“被选中”要分开处理。Microsoft Foundry 可以替每个工具设定只给搜索用的文字;这段文字会被索引,模型读不到。模型挑工具时看的,仍是名称、描述与参数。

03

预订需求下的三种工具状态

同一个预订需求下,预订工具可能没被载入、能力与任务对不上,也可能符合任务。切换下面三个状态,看每个状态该怎么检查。

用户问“今晚 19:00,帮两位找一家餐厅并预订。”

选一个状态

已接入的预订工具没有进入候选清单

本次载入餐厅搜索可见
本次载入地图查询可见
已接入但未载入预订工具缺席

怎么检查先看这次载入了哪些工具。预订工具没进候选,后面的选择与调用都不用谈。

搜索餐厅的工具没有预订能力

任务需要查空位,并建立预订
工具能做搜索名称、地址与介绍

能力缺口:查空位、建立预订

怎么检查预订要查空位、建立记录。工具描述只写搜索名称与地址,模型就不知道它能预订。

工具能力与预订参数相符

候选能力查询空位、建立预订
  • 日期 今晚
  • 时间 19:00
  • 人数 两位

怎么检查查空位、建立预订,加上日期、时间与人数,模型才能把用户需求转成一次工具调用。

工具定义该怎么写?看三张图 ↓
GLM Q 版角色,捧着书

04

智能体怎么筛选工具

采用工具搜索的系统,会先检索候选工具,再交给模型选择与调用。下图用 12 → 3 → 1 的教学设定说明筛选过程;实际候选数与流程依系统而异。

选一张图解

已接入的工具只有一部分进入模型视野

“帮我订周六晚上七点,四个人的堂食座位。”

第一道门

检索出哪些候选工具

工具名称、描述与参数信息,让检索器找到与需求相关的候选。

第二道门

挑出能完成任务的工具

模型读取候选的完整定义,比较查空位、建立预订与必要参数。

延伸:Anthropic 的工具搜索流程、ToolLLM 的 API 检索器。

没订到位的三个可能断点

“帮四个人订周六晚上七点的堂食座位。”

  1. 01

    检索断点

    工具有进入候选吗?

    service_v2“提供餐饮数字转型服务”

    只看这段名称与描述,找不到“餐厅堂食预订”的具体能力。

    检查工具索引补上餐厅、空位与建立预订等任务用语。

  2. 02

    选择断点

    候选之间分得清楚吗?

    外送点餐/堂食预订

    两个工具都写“火锅预订”,使用方式却完全不同。

    检查能力描述写明现场座位、外送或自取,让选择有依据。

  3. 03

    调用断点

    参数符合工具要求吗?

    "晚上七点"→"19:00"

    工具选对了,时间字段仍需要符合服务器接受的格式。

    检查参数与返回标明时间格式、必填字段,并核对调用结果。

对照 MCP 的工具定义、调用与返回结构,逐段找到失败的位置。

工具名称、描述与参数的写法对照

名称说动作,描述说能力,参数说格式。

信息太模糊

name
restaurant_helper_api
description
全方位餐饮体验,轻松搞定用餐大小事。
参数
date、num

日期是哪一天?人数包含谁?会查空位,还是会直接建立预订?

动作与输入都明确

name
search_restaurant_tables
description
查询指定日期、时段与人数的空位,返回可订时段、座位区与预订条件。建立预订使用 create_table_reservation。
参数
restaurant、date、time、party_size、area

查空位与建立预订各有明确入口,模型可以按任务选择。

展开完整的输入参数结构
{
  "type": "object",
  "properties": {
    "restaurant": { "type": "string", "description": "餐厅名称或分店" },
    "date": {
      "type": "string", "format": "date",
      "description": "用餐日期,YYYY-MM-DD"
    },
    "time": {
      "type": "string",
      "description": "用餐时段,24 小时制 HH:MM"
    },
    "party_size": {
      "type": "integer", "minimum": 1,
      "description": "用餐人数,含儿童"
    },
    "area": {
      "type": "string",
      "description": "偏好座位区,例如堂食或户外"
    }
  },
  "required": ["restaurant", "date", "time", "party_size"],
  "additionalProperties": false
}

参考:MCP Tools 规格。

05

常见问题

TSO 是谁提出的?

TSO 是 LS-Labs 提出的操作框架,用来拆解 AI 智能体为什么选用或没选用某个工具。它把问题分成四段,避免把所有失败都归因给模型。

TSO 和 GEO 差在哪?

GEO 看 AI 回答里提到谁、引用谁;TSO 看智能体动手执行任务时,调用了谁的工具、API 或 MCP 服务器。

产品还没有 API 或 MCP 服务器,需要关心 TSO 吗?

要。还没有 API 时,第一段“工具接入”就是起点。网站本身能不能让智能体读懂、操作,则属于 AX 的范围。先从一个最常发生的任务开始,不必一次把整套系统做完。

做了 MCP 服务器,智能体就会用我的工具吗?

不一定。接上 MCP 只完成第一段“工具接入”;工具还要被载入候选清单,模型看得到它,并觉得它适合眼前的任务,才会选用。以 Anthropic 的工具搜索为例,标记为延后载入的工具要等 Claude 搜索到才会出现。

工具的名称、描述与参数该怎么写?

名称说动作,描述说能力,参数说格式。例如把“查空位”与“建立预订”拆成两个工具,各自写清楚能做什么,并标明时间格式与必填字段。可对照 MCP 的 Tools 规格。

候选曝光是什么?

在采用工具搜索的系统里,工具被检索并载入模型视野的过程,就是候选曝光。没被载入的工具,后面的选择轮不到它。

工具被选中了,就代表任务完成了吗?

不是。被选中之后,还要检查调用的参数、返回结果与执行错误,不能把“有调用”当成“已完成”。

品牌常出现在 AI 回答里,智能体就会选用它的工具吗?

智能体还会依任务挑选当下可用的工具。GEO 看 AI 回答中的提及与引用,TSO 接着看工具是否被载入、是否适合任务,以及模型最后选了谁。

06

四个研究主题的关系

GEO 看自然回答里的提及与引用,TSO 看智能体选用哪个工具,AX 看任务能不能完成,AI 广告看回答下方的付费版位如何匹配与转化。四者处理相邻的问题,可依内容交叉阅读。

  1. GEO被提及与引用看 AI 回答有没有提到、引用你
  2. TSO被选为工具看智能体会不会选用你的工具
  3. AX把任务完成看智能体能不能把任务办完
  4. AI Ads被匹配与点击看广告如何匹配对话、带来成效