你让一个 AI 智能体修代码。它先用模型分析问题,再调用搜索、编译器或命令行工具,拿到结果后继续推理。麻烦在于,工具通常跑在 CPU 上,模型推理则占用 GPU。工具尚未返回时,给这个任务预留 GPU,像让还没到机场的乘客提前占住登机口;完全不留位置,又可能让已经拿到结果的任务继续排队。
TAO 想解决的正是这个衔接问题:调度 GPU 时,不只看谁已经在等,还要估计 CPU 工具什么时候回来。论文把这种系统称为 CGDC,即成组的 GPU 负责模型推理,分散的 CPU 负责外部工具。作者报告,TAO 在多组实验中改善了延迟、首个 token 等待时间和生成吞吐。不过这些结果均来自论文自身,具体收益随模型、任务和并发量变化。
普通模型排一次队,智能体要反复回来
普通模型服务大致是一次输入、一次输出。智能体服务则会在模型与工具之间来回切换。一次持续的交互叫作 session:模型生成一步,工具执行一步,然后模型根据工具结果继续。
工具运行期间,session 暂时不需要 GPU,可以释放资源。等工具结束,它又要重新进入推理服务。调度器因此要处理两个相连的问题:准入决定某个 session 现在能不能进入系统;放置决定把它安排到哪台机器。
机器也不能随便换。模型处理长上下文时,会留下 KV Cache——可以理解为此前推理的中间结果。后续步骤若回到保有相同缓存的节点,就能少做一遍前缀计算。但缓存可能随时间被淘汰,旧记录也未必仍然可靠。
论文作者认为,已有系统常把这些信号拆开处理:先给单个 session 打分,再逐个安排位置。这可能错过组合上的更优选择。但这属于作者对相关系统的归纳,并非材料中已有独立验证的行业结论。
TAO先问:谁快回来了
TAO 为每个“session—节点”组合记录三类价值。
第一类是缓存收益。目标节点若可能仍保留可复用的 KV Cache,session 回到这里就更划算。不过 TAO 会让这份信用随观察时间衰减:记录越旧,越不能确信缓存还在。没有匹配证据的节点,缓存信用为零。
第二类是工具返回就绪度。TAO 综合工具暴露的进度或截止时间、可解析的等待命令和历史执行时长,判断工具是否可能在短时间内结束。直接的时间信息优先;缺少信息时,再依次退回到该工具的历史、全局历史,最后使用五秒默认值。论文实现使用二元信号,并以一秒为近期判断窗口。预测已经过期的任务只获得临时探查机会,不会永远被标成“马上回来”。
第三类是 token footprint,也就是 session 已积累的文本规模。上下文越长,重新处理的代价和占用通常越值得纳入决策;与此同时,调度器也会计算它消耗多少容量。
关键在于,TAO 没把三项粗暴地加成一个人工权重分数。它采用固定优先次序的字典序价值:先比较随时间衰减的缓存信用;这一项拉平后,再看工具是否即将返回;仍相同时才看 token 数量。信号会随缓存老化和工具进度不断变化,但比较规则不变。
不逐个塞座位,而是一起排
有了价值还不够。假设一台 GPU 只剩十个单位的容量,一个大 session 可能挤掉两个合起来更有价值的小 session。逐个挑选,很容易在第一步就锁死后面的安排。
TAO 因而使用动态规划——把复杂选择拆成较小选择,并复用中间结果——同时决定等待池里哪些 session 获准运行,以及分别进入哪个节点。它处理的是一个带容量限制的多背包与广义分配问题。对被冻结的系统快照和离散后的容量,论文称算法可以求得精确解;但容量取整也可能排除原本可行的方案。
规划在独立的异步 worker 中执行,应用前还会重新验证,避免计算期间系统状态已经改变。论文报告,在四副本扫描实验中,准备和已完成求解的记录开销低于总运行时间的 0.12%。
数字说明了什么
论文比较了 TAO、Dynamo、vLLM 的轮询与缓存感知调度器,以及 ThunderAgent。任务包括软件修复和命令行操作,模型包括 DeepSeek-V4 Flash、Qwen3-32B 与 GLM-4.7,部署覆盖单节点和多节点 H100,以及不同并发量。
最醒目的峰值来自 DeepSeek-V4 Flash 的 SWE-Lite:在 64 workers 下,相对每项指标各自最好的对照方法,TAO 将平均任务延迟降低 26.8%,平均首个 token 等待时间(TTFT)降低 36.3%,解码吞吐提高 29.5%。这三个“最多”并不代表所有设置的平均收益,也不一定是在同时击败同一个对照系统。
结果也不是每一列都领先。例如 Qwen3-32B 的 SWE-verified 在 128 workers 下,TAO 的任务延迟比 ThunderAgent 高 2.5%,但 TTFT 降低 12.9%,解码吞吐提高 4.0%。Terminal-Bench 的部分设置里,TAO 虽然延迟和 TTFT 更低,吞吐却落后最佳对照。它优化的是响应、缓存复用与吞吐之间的组合,不是保证单项指标处处第一。
组件实验进一步指向两个来源。在配对的 SWE-Lite 运行中,加入工具就绪度后,解码吞吐提高 4.03%,工具结束到首个 token 的延迟降低 10.88%;对 10,967 次工具执行的最终时长预测,平均绝对误差为 0.410 秒,82.9% 的误差不超过 0.5 秒。动态规划在 23 个包含多个候选项的回放快照中,有 6 个优于短任务优先启发式,其余 17 个持平。
为什么值得关注
TAO 最有意思的地方,不只是换了一种排队算法,而是重新定义了智能体服务里的“当前需求”。一个 session 即使眼下没有占用 GPU,也可能因为工具即将返回,马上成为最紧迫的请求。反过来,一个缓存很多、但工具还要运行很久的 session,也未必应该立刻占住容量。
这让 GPU 调度第一次在同一个决策里同时看见三件事:过去留下多少可复用状态、外部工具何时回来,以及未来请求会占多少空间。随着智能体从一次问答转向多步工作流,CPU 工具和 GPU 推理之间的接缝,可能与模型本身的生成速度同样重要。
局限与未知
- 效果数字来自作者论文,材料未提供统计显著性,也不足以独立核验不同任务和并发设置的代表性。
- TAO 依赖工具时长与返回时间的预测。论文给出了总体误差与组件收益,但未充分说明预测失准在更复杂工具环境中的影响。
- 动态规划对冻结且离散化的快照求解;真实系统持续变化,容量取整也可能漏掉可行安排。异步重验能缓解状态过期,却不能消除这两类限制。