news 2026/8/13 10:23:25

3. 不要把整个仓库塞进 Prompt:代码索引与信息密度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3. 不要把整个仓库塞进 Prompt:代码索引与信息密度

有一种看似勤奋的做法:每次用户提问都把整个仓库读一遍,然后把所有文件内容塞给模型。

这就像把整座图书馆搬进会议室,只为了回答“《红楼梦》在哪一排”。信息很多,但答案更难找。

3.1 当前系统的选择:索引做地图,工具取证据

LoopAgent 初始化WorkspaceIntelligence,并创建browseSymbolsexploreCode等只读工具。它们的职责不同:

  • browseSymbols先用概念或部分名称发现真实符号;
  • exploreCode在符号已知后,沿当前生产入口、调用关系和相关源码继续探索;
  • readFile获取最终需要核对的原文;
  • applyEditrunCommand只在证据足够且任务允许时执行。

索引因此更像地图,不是目的地。地图告诉模型“可能从哪里走”,工具再把门牌号和房间里的实际内容带回来。

3.2 为什么信息密度比信息总量重要

假设仓库有 800 个文件,用户想把calculateTax(amount)改成calculateTax(amount, rate)。全量注入会带来三个问题:

  1. 大量无关文本消耗上下文预算;
  2. 同名变量、注释和测试夹杂在一起,增加误匹配;
  3. 模型可能看见旧生成文件,却不知道它不是编辑目标。

更高密度的流程是:

calculateTax -> browseSymbols:找到定义与候选符号 -> exploreCode:展开定义、引用和调用链 -> readFile:核对 4 个真实调用点 -> applyEdit:只改经过确认的范围 -> runCommand:用 typecheck/test 验证遗漏

这条路径的关键不是某个检索算法,而是让每次取回的信息都回答一个当前问题。

3.3 代码索引也有预算

语义索引和代码块检索仍然需要限制入口节点、片段字符数、结果数量和未解析引用。codeIntelligenceContext.ts会记录已用字符与是否截断,sqliteIndexStore.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 10:21:38

PyTorch实现DarkNet53:从DBL模块到多尺度特征提取的完整指南

1. 项目缘起:为什么从DarkNet53开始?如果你刚开始接触计算机视觉,或者想找一个既经典又不过时的模型来练手,DarkNet53绝对是个绕不开的名字。它不像VGG那样结构简单但参数臃肿,也不像ResNet那样有各种变体让人眼花缭乱…

作者头像 李华
网站建设 2026/8/13 10:16:55

glgeim文件解析:从来源排查到处理方案的完整指南

在开发过程中,我们经常会遇到各种格式的文件,其中一些文件扩展名可能并不常见,比如 .glgeim 。当你在项目目录或日志中发现此类文件时,可能会感到困惑:它是什么?由谁生成?是否可以安全删除&am…

作者头像 李华
网站建设 2026/8/13 10:15:31

《阿扎达3》经典解谜游戏:现代系统兼容性、核心玩法与通关解析

这次我们来看一个经典解谜游戏《阿扎达3:舍己为人的丛林女王》的实况流程与深度解析。作为《阿扎达》系列的第三部作品,它延续了前作奇幻解谜的核心玩法,并引入了更丰富的场景和更具挑战性的谜题。对于喜欢点击式冒险、逻辑解谜和探索神秘故事…

作者头像 李华
网站建设 2026/8/13 10:15:13

Element Table 展开行深度解析:从 row-key 到实战避坑指南

1. 项目概述:从“点击展开”这个看似简单的需求说起在后台管理系统、数据中台这类B端产品的开发里,表格(Table)组件绝对是使用频率最高的组件之一,没有哪个前端能绕得开。而表格里的“展开行”功能,又是一个…

作者头像 李华
网站建设 2026/8/13 10:14:36

编程电脑配置指南:从CPU、内存到硬盘的均衡选择

1. 从“能跑就行”到“效率为王”:编程电脑配置的本质 每次看到有朋友问“学编程用什么电脑”,或者在网上搜到一堆“XX语言开发电脑配置推荐”,我总想起自己刚入门那会儿,抱着一台二手笔记本吭哧吭哧写代码的日子。那时候觉得&…

作者头像 李华