1. The Bitter Lesson of Tool Calling

推荐理由: 现在大多数 agent framework 仍把 tool use 设计成“模型每轮生成一个 JSON function call”,但对已经具备稳定代码生成能力的模型来说,这可能只是历史包袱。本文把工具暴露成 typed Python stubs,让模型直接写程序进行组合、循环和并行调用,并在 BFCL v4 上系统比较两种范式。对于设计 MCP、agent runtime 或 software factory 的工具层,这比单纯继续优化 tool schema 更值得关注。

核心要点:

  • Programmatic Tool Calling(PTC)把工具当成可调用的 Python API:模型在一个 agent turn 内生成程序,由运行时执行;在 14 个模型中有 11 个达到或超过原生 JSON tool calling,GPT-5.6 系列最高提升 10.6%。
  • 优势会随着工作流复杂度增加而放大。顺序链长度达到 12+ 时,PTC 相对 JSON tool calling 的准确率优势达到 18.8 个百分点;高 fan-out 场景中,JSON 会出现漏调用,而 PTC 在 N=100 时仍保持 100% enumeration accuracy。
  • PTC 对 context rot 也更稳:JSON baseline 在 context flooding 下平均下降 2.3%,PTC 基本保持稳定。更重要的设计启示是:对 coding-capable agent,与其让模型逐个“申请工具调用”,不如给它一个受控、typed、可审计的程序执行面,让代码本身承担 orchestration。

2. Recursive Synthesis for Long-Horizon Terminal Tasks

推荐理由: 长周期 coding/terminal agent 的一个真正瓶颈不是模型,而是“可执行、可验证、足够难”的训练环境太贵。RST 给出了一种很 software-factory 的数据生产方式:从已经验证的任务出发,先扩展 reference solution,再同步修改 verifier、instruction 和 environment,沙箱验证通过后继续作为下一轮种子,从而让任务本身递归进化。

核心要点:

  • RST 从 639 个 verified seed tasks 出发,经过 15 轮递归合成得到 37,484 个可执行 terminal-agent tasks,单个通过验证的任务成本约 0.05 美元;每个任务同时维护 instruction、environment、reference solution 和 private verifier 的一致性。
  • 递归并非只是把 prompt 写长:median reference solution 从 67 行增长到 374 行,执行命令从 40 增长到 244;DeepSeek-V4-Pro 的 pass@4 从第一轮 90% 降到第十五轮 2.5%,说明任务复杂度确实持续上升。
  • 这些 synthetic tasks 可以直接进入训练闭环。基于任务收集的 Qwen3.5 trajectories 做 SFT,在 Terminal-Bench 2、Terminal-Bench Hard 和 Long-Horizon Terminal Bench 上最高提升约 10 分;进一步进行 agentic PPO 后继续获得显著提升。核心模式是“生成任务 → executable verifier 验证 → 成功任务重新成为 seed → rollout → SFT/RL”,这很接近一个自动生长的 agent training factory。