这套文档流水线让模型看不见行号,错误引用就不可能了
Comprehensive-Bad-43 · reddit · 2026-07-26
让模型不再写行号:把引用问题变成“替换”而不是“校验”
作者维护一个把代码库生成成文档的工具,要求每个结论都精确对应到源码行。他发现,让模型直接输出类似 src/client.ts:12-40 这种范围,哪怕后面做验证,也仍然会出问题:范围看起来合理、文件也对,但实际可能偏了几十行。
于是他把流程拆成两步:
- Mining pass
- 用 Tree-sitter 提取每个符号的精确代码片段和真实范围
- 针对每个符号单独让模型输出 2–5 条可验证事实
- 行号完全由解析器数据附上,不让模型碰
- 每条事实都用路径、符号、类型和规范化文本生成一个 opaque ID
- Writing pass
- 模型只看到像 [[f:a3f9c1]] 这样的标记
- 它负责把标记织进正文
- 最后由 harness 把标记替换成真实的路径和行号
作者的结论很直接:如果模型生成标识符,你做的是校验;如果标识符由系统控制,错误引用在结构上就不可能发生。这个思路也适用于 RAG、数据库摘要、转录时间戳等任何必须精确的输出。
「编程与Agent」频道最新
- Marimo 主打反应式 Python 笔记本和 AI 支持 — OnlineInference · 2026-07-26
- 开发者把编码工作拆给 Composer、Grok 和 Kimi K3 — DanielLockyer · 2026-07-26
- Claude Opus 5 用 Three.js 生成樱花盆景 demo — majidmanzarpour · 2026-07-26
- Vexyo 给 MCP 服务器加上规范与回归测试 — Longjumping_Gas_5756 · 2026-07-26
- AI 编程工具为何还要月费:用户已有 API key — maa____z · 2026-07-26
- Google 展示多智能体 Gemini 系统实时迭代游戏设计 — jggomezt · 2026-07-26