输出质量在与AI编码代理商合作时很重要,但真正的效率来自于快速,高效地完成工作,并且符合适当的环境.
That’ 为什么单凭单个互动的符号计数是 ’t 有意义的效率衡量标准.
目标应该 & rsquo; t 是使用更少的符号, 但利用正确的上下文来推进任务 。
简洁的工具反应如果不提供代理人需要的信息,有时可能需要额外的呼叫或工作,最终使任务更慢更昂贵. that ’ 是为什么我们要优化结果而不是工具调用 。
这个帖子考察了GitHub Copilot中将这一原则付诸实践的四个变化: 保留有用的上下文,同时减少重复输出.
删除未添加任务值的格式 。
缩短指令而不改变有用的行为.
在不采取额外检索步骤的情况下完成背景工作。
利用代理编码基准评估了可能的变化。
最有希望的变化随后通过航运前的有控制的在线实验得到验证。
本文中的例子来自GitHub Copilot CLI.
其他多种副驾驶产品,如"GitHub"副驾驶app和"副驾驶"代码审查,都使用同一种基础用具,也通过这些改进提高了效率.
图1:使用相同AI-信用度量的4个独立A/B实验.
各分块一起显示,以供比较;其效果不一定是严格意义上的添加剂.
本地度量陷阱 It’ 用于缩短每个工具调用的输出, 以此来降低代理成本 。
RTK(Rust Token Killer)是一种在代理读取前缩短 shell 输出的功能.
我们用我们的代理编码基准评估了它对GitHub副驾驶的影响。
在我们的驾驭和基准配置中,RTK缩短了一些响应,但当被省略的文本重要时,模型有时会重新打开原始输出或重新调出命令来取回它所需要的.
这些恢复步骤增加了转折,并推进了更多的背景。
单个工具的响应时间更短,但平均来说,任务使用了更多的符号并花费了更长的时间.
我们在当地保存了纪念物,并在全球花费了更多的钱。
图2:当缺失细节迫使代理机重新读取输出,再运行命令,并携带更多上下文时,更短的工具响应可以使所完成的任务更加昂贵.
这一结果适用于我们测试的集成和工作量,而不是每个RTK配置或一般输出压缩.
这意味着每个工具调用符号都是错误的目标.
从用户和rsquo;s的请求到最终结果,整个任务都必须评价效率的变化。
更有用的是,在不使模型重复工作的情况下,看看我们能删除什么。
压缩噪音, 保存有用的信息 目标是缩短重复输出,同时保留一个代理在不重复步骤的情况下完成任务所需的上下文.
对基准运行的分析表明,安装,构建,测试和林特输出往往包含重复的噪声,而类似源输出和任意命令结果更可能包含代理需要的信息.
这一分析为选择性产出压缩器提供了参考,部分参考了RTK和类似方法。
对原型进行了关于代理编码基准和一系列开源寄存器的评估,以行使它们的构建、测试和林特系统。
早期版本过于激进.
他们使模型重复工作或读取所保存的全部产出,增加端到端的成本并降低任务成功率.
例如,我们最初是压缩的,但在基准任务显示重新打开原始输出以恢复缺失信息后移除了过滤器.
这些早期的失败导致了三部分政策:保留类似源和任意输出。
命令如.、.和任意的脚本不变地返回。
重组搜索结果而不降低 c
