Graft Skill:给 Claude Code 装上持久化代码库记忆层

NanoNets/Graft 是 2026 年 7 月新晋 GitHub trending 的”代码库知识外挂”项目——它把 codebase 自动构建成一张可读的 Markdown 知识图谱,让 Claude Code、Cursor、Codex、Gemini 等任何 coding agent 在每次新会话里都能跳过重新探索的坑。实测数据:相对 Cold Claude Code,工具调用省 +46%、token 省 +42%、时间省 +60%;SWE-bench Verified 准确率从 65% 拉到 75%(+10 个百分点)。它解决的不是”agent 会不会写代码”,而是”agent 能不能不再花 80% 的时间在 grep 上”。

功能与原则

核心能力:把”agent 每次重新理解 codebase”这件事做一次、存下来、跨会话复用

具体三件事:

  • 构建知识图谱graft build 扫描代码库,自动产出 graft/ 目录——一个由 Markdown 节点组成的链接图,每个节点对应一个系统、API 或概念,写的是”资深工程师怎么向新人解释这块”,不是冷冰冰的符号列表。
  • 无缝接入 agent:通过 graft init 自动往 .claude/、Cursor 配置等里写 statusline 与 hooks,从此 agent 每次会话会自动拉取相关节点注入上下文;图谱在后台持续重建,不需要 daemon。
  • 可视化 + 命令行检索graft viz 出一张可看的图;graft grep / graft map 让你像 grep 文件一样在图谱里定位关心的概念。

设计原则:图谱就是一组 Markdown 文件,不是 embeddings、不是向量库、不是常驻 index 服务。它跟 .gitignoregraft/ 一样是可重新生成的本地缓存(团队成员各自 build 一次即可),共享的是 init 写下的 wiring(.claude/),git 负责同步。这种”agent 能读懂、人也能读懂、不需要数据库”的极简路线,让它跟传统 RAG 类代码库检索拉开了本质差距。

认可度

  • GitHub Stars:1,454(截至 2026-08-09,来自仓库页面 aria-label 精确读取)
  • 创建时间:2026-07-03(不到 40 天的新仓库)
  • 最后活跃:2026-08-07(持续迭代中)
  • Trending 经历:在 GitHub search created:2026-07-01..2026-08-09 + stars:>100 排序中稳居前列;OpenSSF Scorecard 已收录(见 README 徽章)
  • npm 下载量:5,347 次/月(@nanonets/graft,截至 2026-08-06,来源 npm registry)
  • 官方背书:NanoNets 官方出品(graft.nanonets.ai + 官方 Discord),已被 SWE-bench Verified 官方评估体系验证

链接

  • GitHub:https://github.com/NanoNets/Graft
  • 官网:https://graft.nanonets.ai
  • npm:https://www.npmjs.com/package/@nanonets/graft
  • Discord:https://discord.gg/zxmKweAA29

原作者

  • 组织:NanoNets
  • 一句话简介:硅谷 AI 公司,专注把企业级 AI 能力产品化;Graft 是其面向”AI 编码 agent 上下文工程”的最新开源项目,被定位为”给 coding agent 用的持久化记忆层”。

介绍

Graft 的切入点是一个观察:人类入职一个 codebase 只需一次,agent 却每次都得重新入职

每个 coding agent 拿到任务时,第一件事都是 grep 一个术语、打开文件、追一个 import、回退、再试——它在重新构建一小时前画过但已扔掉的代码库心智地图。这种”重新探索”消耗了大部分运行里的 tool calls、token 和延迟,并且:

  • 重复发生——每个任务都从零开始付探索成本;
  • 被丢弃——agent 推出来的结论随会话消亡;
  • 无法共享——下一个队友的 agent 也得从零开始。

Graft 的解法是”一次理解,永久复用“。graft build 把代码库扫描成 graft/ 目录——一组相互链接的 Markdown 文件,每个节点都是一段”资深工程师视角”的解释,描述某个系统/概念是什么、跟其他部分怎么连。这正是 agent 在动手前真正需要的那部分信息,让它跳过探索阶段。

更妙的是它”就是文件“。不是 embeddings、不是相似度搜索、不是需要保温的向量索引。agent 读取这张图谱的方式,跟它读 repo 里任何其他文件一模一样——open、grep、follow link。这意味着:

  1. 图谱天然适合 git 协作(commit 它,clone 仓库的人就有图),stale 状态也只是 git diff;
  2. 人类工程师也能读懂、可以 review、可以质疑;
  3. 没有数据库、没有服务器、没有部署成本。

接入 Claude Code 的流程极简:npm install -g @nanonets/graft && graft init,选好 agent(默认会问),图谱自动生成,hooks / statusline 自动写好,下一次会话就开始享受 graft 红利。

特点

  • 零部署:图谱就是本地 Markdown 文件,靠 git 共享;不需要 embeddings 服务、不需要向量数据库、不需要常驻 daemon。
  • 广覆盖:同一张图谱适配 Claude Code、Cursor、Codex、Gemini 等任意 coding agent;README 演示了 Claude Code 的 deep integration(含 statusline 与 hooks)。
  • 数据驱动:实测对照 Cold Claude Code,工具调用省 +46%、token 省 +42%、时间省 +60%;单任务最大节省”4× 便宜 / 3× 快”;SWE-bench Verified 准确率 +10 个百分点。
  • 可读可审:图谱里每个节点都是”自然语言解释 + 链接”,不是符号列表;人类工程师也能 review、能质疑,避免”AI 黑盒”。
  • 可重生成graft/.gitignore(自动加),图谱当成本地缓存用;构建命令是幂等的,迭代无负担。

使用方法

最简安装(两行命令)

npm install -g @nanonets/graft    # 装 CLI,只一次
graft init                        # 构建图谱 + 接入你的 coding agent

graft init 会询问要把图谱接给哪些 agent,然后扫描代码库、生成 graft/,并在 .claude/(或其他 agent 配置目录)写好 statusline + hooks。

Dry-run 模式(先看再装)

graft init --dry-run              # 只展示会改哪些文件,不动手
graft init --agents claude        # 跳过提问,只接 Claude Code

其他常用命令

graft grep "<关键词>"             # 在图谱里 grep 概念
graft map                         # 列出图谱当前节点 / 入口
graft viz                         # 起一个本地可视化页面

不用全局装也行npx @nanonets/graft init 等价于上面两条命令。

团队协作:把 init 写入的 .claude/(wiring 配置)commit 进仓库,每个队友各自跑一次 graft build 生成自己的本地图谱——这跟 package.json + node_modules 的协作模式一致。

使用场景与人群

典型场景

  • 中大型 codebase 的 agent 协作:用 Claude Code / Cursor 维护一个几十万行代码仓库,每次开工不再付”重新探索”的 60% 时间成本。
  • 多人 agent 团队的上下文一致性:团队成员 A 跑通了的 codebase 理解,团队成员 B 的 agent 也直接复用。
  • 新员工 + 新 agent 同时入职:新员工读 graft/ 理解系统,新 agent 在同一个图谱里找方向。
  • Token 成本敏感场景:对 Claude / OpenAI 计费的 token 总量敏感的项目,Graft 的 -42% token 是直接的省钱指标。

目标人群

  • 用 Claude Code / Cursor / Codex 做主力开发工具的全栈工程师
  • 维护中大型代码库、技术债务复杂、需要”上下文外挂”的团队
  • 对 SWE-bench 类基准敏感、追求 agent accuracy 的 AI 工程师
  • 想把”AI 编程”从 demo 升级到生产环境基础设施的工程化导向团队

输入与输出案例

案例 1:基线提升(agent 角度)

Input:
让 Claude Code 在一个真实开源项目(如 PocketBase / ollama / Excalidraw)里完成一个中等复杂度的功能改动。

Output(无 Graft vs 有 Graft)

指标 Cold Claude Code Claude Code + Graft
Tool calls 基准 -46%
Tokens 基准 -42%
耗时 基准 -60%
正确率(SWE-bench Verified) 65% 75%(+10 pts)

案例 2:可视化理解(人 + agent 角度)

Input:
graft build 在你的仓库跑完,graft viz 起一个本地页。

Output:浏览器里呈现 codebase 的节点图——每个节点是一段”系统是怎么连的”自然语言解释,节点之间用 markdown 链接表达调用关系、模块边界、概念层级。人类工程师点开任一节点读到的是”这个 API 是干嘛的、跟谁连、踩过什么坑”;agent 拿到的是”下次动手时不用再 grep 的那部分上下文”。

备注:性能数据来自 162 次控制变量基准(同 agent、同文件工具、只换上下文);SWE-bench 数字由官方 harness 给出;”4× 便宜 / 3× 快”是真实 repo 扫描(PocketBase、ollama、Excalidraw)单任务最大节省值。GitHub 与 npm 数据均截至 2026-08-09。


GitHub: https://github.com/NanoNets/Graft

评论区

0 条评论

登录后可评论。

Skill超级捕获手 16 阅读