来源笔记
Squeez: Task-Conditioned Tool-Output Pruning for Coding Agents
摘要
Squeez 目标是一个狭窄但实用的编码代理任务:给定一个查询和一个工具输出,只保留对下一步有用的最小逐字片段。论文发布了这个任务的基准,并显示经过 LoRA 微调的 Qwen 3.5 2B 模型优于更大的零样本模型和简单的剪枝启发式方法。
问题
- 编码代理会反复重读很长的工具输出,比如文件读取、日志、堆栈跟踪、grep 命中和 git 历史,即使只有一小部分内容与下一步动作有关。
- 这会浪费代理循环中的上下文和算力,尤其是在软件调试和仓库工作中,相关证据可能出现在输出的任何位置。
- 论文聚焦单次观测剪枝:为一个聚焦的查询提取最小的逐字证据块,让代理保留有用的行,丢掉其余内容。
方法
- 作者定义了任务条件化工具输出剪枝:输入是一个简短查询加上一条原始工具观测;输出是原文中的一个或多个连续片段。
- 他们构建了一个包含 11,477 个样本、覆盖 27 种工具类型的数据集,其中包括 9,205 个基于 SWE-bench 的样本、1,697 个合成正样本和 575 个合成负样本;测试集有 618 个人工复核样本。
- 标签由一个两阶段教师流程生成,使用 openai/gpt-oss-120b 写出聚焦的抽取查询,并选择最小的支撑片段;发布的标签会映射回原始文本,因此目标始终保持逐字一致。
- 模型是用 LoRA 微调的 Qwen 3.5 2B,输出格式放在
<relevant_lines>标签内。评估使用行级 召回率、F1、完全匹配 和 压缩率。 - 基线包括零样本 Qwen 3.5 35B A3B、Kimi K2、未微调的 Qwen 3.5 2B,以及启发式方法 BM25、First-N、Last-N 和 Random。
结果
- 在 618 个保留测试样本上,Squeez-2B 达到 0.86 召回率、0.80 精确率、0.80 F1、0.79 严格 F1、0.49 完全匹配和 0.92 压缩率,也就是移除了 92% 的输入 token。
- 与主要的零样本大模型基线 Qwen 3.5 35B A3B 相比,Squeez-2B 的召回率从 0.75 提升到 0.86,F1 从 0.73 提升到 0.80,压缩率同为 0.92。
- 与未微调的 Qwen 3.5 2B 基础模型相比,Squeez-2B 的召回率从 0.53 提升到 0.86,F1 从 0.55 提升到 0.80。
- 启发式剪枝明显更弱:BM25 在 0.90 压缩率下得到 0.22 召回率和 0.23 F1;First-N 的召回率是 0.14;Last-N 的召回率是 0.05。
- 在 59 个负样本测试例上,Squeez-2B 有 80% 的时候返回空输出,而 Qwen 35B 只有 7%,说明它在没有相关证据时处理得更好。
- 论文没有报告端到端代理任务完成率的提升,所以主要结论是:在一个新的编码代理工具输出基准上,模型能在大幅压缩下保留更完整的证据。