论文
代码代理需要多少静态结构?确定性锚定的研究
How Much Static Structure Do Code Agents Need? A Study of Deterministic Anchoring
摘要
基于 LLM 的代码代理通过关键字搜索来导航存储库,但错过了定义软件实际工作方式的结构关系,例如调用图、继承层次结构和配置依赖关系。这使得代理导航变得随机并且难以跨运行重现。我们研究轻量级静态分析是否可以为这些代理提供确定性锚点:作为纯文本注释注入的稳定结构事实,限制概率探索并使导航更具可预测性。从 OpenAI 的 Codex 强大的基线开始,我们系统地注入不同粒度的结构注释,并测量它们对定位、轨迹行为和运行稳定性的影响。我们的研究确定了所谓的确定性锚定效应:静态结构通过使代理“更聪明”而发挥的作用较小,而通过使代理的导航规则化和可重复性而发挥更大的作用。三个观察结果支持这一发现:(1)锚定工作:轻量级调用/继承拓扑改进了函数级定位(+2.2pp Func@5)并缩短了轨迹(-1.6 交互轮次); (2) 锚定是规模敏感的:最佳粒度和方向性取决于存储库特征,其中更密集的语义显示收益递减,而中心重的项目受益于仅反向链接,这些链接暴露“谁打电话给我”而没有前向边缘; (3) 锚定稳定:标签将链接跟踪率从 0.15-0.18 提高到 0.21-0.24,将运行间方差大致减半,并提高中等规模存储库的单次运行可靠性 (Pass@1 +3.4 pp),代价是输入词元增加大约 10%。这些观察结果提出了实用指南:在中型项目中默认使用轻量级拓扑,在大型存储库中修剪前向边缘,并为隐式依赖项情况保留密集标签。