Curated Code Context Window

Nikola Balic (@nibzard)· validated-in-production

问题

将所有源文件加载至编码智能体的上下文中,或是导入整个代码仓库,会使模型不堪重负、引入噪声并降低推理速度。编码智能体需仅聚焦于最相关的模块,才能高效地对代码变更进行推理或生成新功能。

  • 纳入全部文件会让智能体被无关代码干扰;在大上下文场景下,它会“失去连贯性”。
  • 大上下文会增加token消耗,拖慢多轮强化学习训练的速度。

方案

为核心编码Agent维护极简、高有效信号的代码上下文(context)(保持context“纯净无杂”),具体实现方式如下:

1. 上下文净化(Context Sterilization)

  • 排除无关模块(例如,开发UI组件时,移除测试工具类模块)。
  • 通过轻量级搜索Agent自动识别相关文件,该Agent可针对函数或类名返回Top-K匹配结果。

2. 代码发现辅助子Agent(Helper Subagent)

  • 生成一个SearchSubagent(基于小型LLM或向量搜索索引),它可接收文件路径或查询指令(如“查找UserModel的定义”),并返回按相关性排序的文件代码片段列表。
  • 仅将排名前3的片段(每个片段≤150个token)注入主Agent的上下文窗口。

3. 上下文更新循环

  • 主Agent:“我需要重构UserService。”
  • SearchSubagent:“已找到user_service.pymodels/user.pyutils/auth.py。”
  • 上下文注入:仅将这三个文件(或其摘要内容)纳入主Agent的上下文窗口。

如何使用

  • 索引阶段(离线):构建一个简单的代码索引(例如借助ripgrep或向量存储),实现函数/类名称到文件路径的映射。
  • 子Agent定义:将SearchSubagent定义为一个函数,它会查询代码索引,并借助小型LLM对匹配结果进行过滤和排序。
  • 上下文管理库:创建一个封装器(例如CuratedContextManager),当主Agent请求相关代码时,它会自动调用SearchSubagent

权衡

  • 优势:
    • 噪声过滤:使上下文聚焦于相关代码,提升推理的清晰度。
    • Token 高效性:大幅降低每一步的Token消耗,提升RL吞吐量。
    • 上下文窗口焦虑缓解:通过将使用量控制在远低于上限的水平,帮助缓解上下文窗口焦虑
  • 劣势/注意事项:
    • 索引时效性:若代码频繁变更,必须更新索引以避免产生过时结果。
    • 复杂度提升:为训练与推理流水线新增了额外组件(SearchSubagent + 索引)。
    • 模型适配要求:不同模型对筛选式上下文与完整上下文方案的容忍度可能存在差异。

参考文献

关键词

围绕大语言模型智能体的核心实践展开,涵盖开源强化学习智能体的“语境神圣”原则、长周期任务的语境长度管控建议,以及经生产验证的专用搜索智能体实现方案。

直译
  • 2025年5月开源强化学习智能体(Open Source Agent RL)分享中的“语境神圣”原则。
  • 威尔·布朗(Will Brown)针对长周期任务提出的“避免突破语境长度限制”相关评论。
  • 托尔斯滕·鲍尔(Thorsten Ball)的《培育智能体——第三集》(https://www.nibzard.com/ampcode)——经生产环境验证的专用搜索智能体模式实现方案。

来源摘要

正在获取来源并生成中文摘要…

来源: https://www.youtube.com/watch?v=Xkwok_XXQgw

← 返回社区