尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

深度解析 TeamAI graph-boost 重排序:代码图谱如何增强知识召回结果

深度解析 TeamAI graph-boost 重排序:代码图谱如何增强知识召回结果 深度解析 TeamAI graph-boost 重排序代码图谱如何增强知识召回结果【免费下载链接】teamai-cliMake Every Team AI Native项目地址: https://gitcode.com/GitHub_Trending/te/teamai-cliTeamAI 是一个让团队 AI 原生的命令行工具它的核心能力之一是用BM25 关键词检索 graph-boost 图谱重排序的混合策略搜索团队知识库。本文将带你搞懂 graph-boost 是如何利用代码图谱把结构上相关的文档顶到召回结果前列的。为什么光靠关键词搜索不够传统的文本检索比如 BM25只关心词是否出现查询词在某个文档里出现越多、越稀有分数就越高。但在真实的代码知识库里这有个明显短板一篇真正相关的模块文档正文里可能压根没提你的查询词只通过依赖关系和你相关一篇标题命中的文档可能只是恰好撞词与你的任务没有结构上的联系。TeamAI 的解法是在 BM25 分数之上叠加一层由代码图谱graph计算的加分项也就是 graph-boost。核心实现位于 src/code-knowledge-recall.ts文件开头的注释直接点明了算法设计Graph-aware codebase knowledge recall (BM25 graph-boost)graph-boost 的三层加分机制整个重排序逻辑集中在computeGraphBoost函数中src/code-knowledge-recall.ts它按离入口节点越近、加分越大的原则分三档1. 入口节点直接命中加 8 分先用查询词去匹配图谱中的节点slug title命中的节点称为入口节点。如果某个 wiki 页面本身就对应一个入口节点直接获得ENTRY_NODE_BOOST 8的固定加分——这是全算法中最高的单项加分。2. 一跳邻居按关系类型加权如果页面没直接命中就检查它是否是入口节点的直接邻居1-hop。邻居加分不是固定值而是按边的关系类型加权关系类型权重一跳实际加分权重 × 0.8DEPENDS_ON依赖32.4REFERENCES引用21.6MAPS_TO映射21.6CONTAINS包含10.8其他关系1兜底0.8也就是说你的入口依赖的模块比仅被提及的模块排名更靠前——这符合工程直觉改 A 之前A 依赖的 B 比 A 的邻居 C 更值得关注。3. 二跳邻居权重减半再衰减对 1-hop 的邻居再向外扩一层2-hop加分公式为权重 × 0.4恰好是一跳的一半。既保留了外围弱相关页面的曝光机会又避免远距离的噪声页面抢占前排。入口节点命中 8.0 └─ 1-hop 邻居 权重×0.8 DEPENDS_ON 最高 2.4 └─ 2-hop 邻居 权重×0.4 再减半图谱数据从哪里来graph-boost 的原料是位于teamwiki/.indices/graph-index.json的图谱索引其结构由 src/wiki-engine/core/graph-index.schema.ts 定义schema 版本team-wiki.graph-index.v1。节点nodes模块、组件、接口、文档页带有类型和置信度EXTRACTED / INFERRED 等边edgesfrom → to relation支持DEPENDS_ON、REFERENCES、IMPLEMENTS、MAPS_TO等关系类型。这份图谱由teamai codebase --extract从源码仓库提取生成边来自双轨流水线AST 解析TS/JS/Python/Go基于 tree-sitter产出高精度边正则启发式兜底覆盖其他语言详见 README.md 的 Codebase Knowledge Graph 章节。一个细节图谱加载失败时比如本地还没跑过 extract算法优雅降级为纯 BM25 排序不会报错——重排序是增强项不是前置依赖。召回深度graph-boost 在不同模式下如何工作teamai recall支持三种深度实现在 src/code-knowledge-recall.ts 的queryCodeKnowledge中route只返回路由表用于发现项目不参与图谱排序context默认搜索 overview / modules / docsgraph-boost 全程生效lookup全量搜索额外利用图谱的前向依赖边为每条结果附加relatedFiles最多 15 个直接依赖文件方便 AI Agent 直接定位改这里还该看哪些文件。最终得分就是BM25 分数 graph-boost 加分排序后按 token 预算context 5000、lookup 20000截断输出。配套的行为测试在 src/__tests__/recall-progressive.test.ts 中其中graph-boost 在 context 模式生效这一用例专门构造了含recall → src-module边的最小图谱来验证加分逻辑。实际用起来是什么体验对普通用户来说graph-boost 是零配置的只要跑过teamai import或teamai codebase --extract生成了图谱之后的每次检索都会自动受益。# 本地仓库提取知识图谱生成 teamwiki/ 下的 graph-index.json teamai codebase --extract /path/to/repo # 检索时自动启用 BM25 graph-boost teamai recall 重试 超时 配置在 Agent 工作流中召回结果的Sources:行会列出相关源文件路径——这背后正是图谱的 source 锚点 前向依赖扩展在起作用让 AI 拿到结果后能直接开始改代码而不是重新翻仓库。完整的 Agent 侧召回流程见 agents/teamai-recall.md。关键文件速查模块路径召回主逻辑BM25 graph-boostsrc/code-knowledge-recall.ts图谱索引 schema 与读写src/wiki-engine/core/graph-index.schema.ts召回行为测试src/__tests__/recall-progressive.test.ts召回 Agent 提示词agents/teamai-recall.md中文使用指南docs/usage-guide.zh-CN.md小结graph-boost 的精髓可以用一句话概括用结构距离弥补词面距离的盲区。入口节点 8 分、一跳按关系类型加权、二跳权重减半——这套简单而克制的衰减设计让teamai recall不再只是搜得到关键词而是搜得到相关的模块和文件。想本地体验完整流程可以克隆仓库后按 README.md 快速开始git clone https://gitcode.com/GitHub_Trending/te/teamai-cli【免费下载链接】teamai-cliMake Every Team AI Native项目地址: https://gitcode.com/GitHub_Trending/te/teamai-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表