feat: support prompt file references#67
Conversation
dae8961 to
47c9364
Compare
47c9364 to
36f206b
Compare
|
哈喽~ 要合并嘛~ |
|
这个PR暂时不能合并,因为涉及后端需要谨慎,我需要调研一下目前主流的agent(codex, cc等) 最新的策略是什么,以及背后的动机是什么?欢迎在PR里继续提供这一块的背景信息。 |
补充一下我调研后的背景和这个 PR 的取舍。 我看了一下目前主流coding agent的相关策略,大体趋势不是自动把大量文件塞进上下文,而是更偏向 用户显式指定 + 控制上下文体积 + 保持可追踪:
基于这些策略,我这个 PR 的实现刻意保持得比较保守:
背后的动机是:
如果有需要我可以根据您的指示作出修改,或者先合并,后续我将持续对此优化~ |
|
@yuefengw Make sense! 但在PR的代码实现上,有两个阻塞级别的问题:
|
|
这版把 已验证 typecheck、lint、file reference tests、Read/Edit tool tests。 |
|
@yuefengw 再次思考后我认为file metion功能的意义在于:
在目前的LLM能力基线下重新审视,可以发现第2点的意义已经很小了。就如上面的回复中提到的,现在大体趋势不是自动把大量文件塞进上下文,而是依靠LLM自己判断读取全文还是读取片段。实际上,最稳妥的办法就是框架什么都不做,只要prompt中包含了被引用的文件路径,LLM自然就会调用Read工具去加载它。 对于Deep Code项目来说,这个PR的实现还有另一个问题,就是后端的改动太大了。虽然可能会引入一点好处,比如agent为了调用Read工具会消耗一些思考/推理的时间和token,但代价是:1)让框架调用Read工具不“智能”,可能会浪费上下文;2)Read工具从单纯的LLM agent tool变成一种被框架依赖的功能,这会导致后期维护难度显著变大。 PR的方案还有一个功能定义上模糊之处:当 所以,file metion功能的最大意义反而在于前端的便利性。但这个PR反而没有实现前端的自动扫描目录或索引代码库。 因此。这个PR将会被关闭。并且,基于上面的分析,我已经在main分支实现了
|

Description
Add support for explicit
@filereferences in user prompts so referenced local files are included as model context.Related Issues
Fixes #31
Changes Made
Checklist
Additional Notes
This intentionally keeps the first version simple and explicit: it does not add indexing, directory expansion, or chunk/rerank behavior.
This PR focuses on explicit @file prompt references first. Autocomplete and directory expansion can be added later without changing the message pipeline.