SuperAPI AI 工具集

Diffcontext

DiffContext 是一个面向 LLM 编程智能体的上下文编译器。给定一个 Python 仓库和一次变更(git diff、分支或单个函数名),它返回模型安全完成该变更真正需要的一小组函数:会因变更而破坏的调用方、重写该函数的子类、覆盖它的测试,并将这些内容适配到你拥有的 token 预算内,同时告知模型被省略了什么。它面向将 LLM 接入真实代码库的场景,如智能体循环、PR 审查机器人、CI 检查。此外,它还能自我评估:指向你的仓库后,会挖掘 git 历史,对真实共同变更对运行检索,并在不适用时打印 NULL RESULT。无运行时依赖,支持 Python 3.9+。提供 MCP 集成(Claude Code / Cursor / Windsurf)、库用法和 FastAPI 服务。

访问官网

工具介绍

用途

DiffContext 是一个面向 LLM 编程智能体的上下文编译器。当你要求助手修改一个 5 万行项目中的某个函数时,通常面临三种糟糕选择:粘贴整个仓库(放不下,且模型在超大上下文中表现变差)、只粘贴那一个函数(模型会破坏它从未见过的三个调用方)、或者用名字 grep(grep 找不到重写它的子类,也找不到通过 functools.partial 接收它的处理器)。DiffContext 是第四种选择:将仓库一次性解析为真实的依赖图,然后针对任意变更选出少数真正重要的函数,并将它们打包成最小可用提示。

它面向将 LLM 接入真实代码库的人群——智能体循环、PR 审查机器人、CI 检查——即在必须决定提示中放什么、而仓库太大无法整体发送的场景。

主要能力

  • 给定 Python 仓库和一次变更(git diff、分支或单个函数名),返回完成变更所需的函数集合,包括会破坏的调用方、重写该函数的子类、覆盖它的测试。
  • 将选出的代码适配到指定 token 预算内,并告知模型省略了什么。
  • 自我评估:通过 diffcontext verify --from-history 20 --calibrate 从仓库 git 历史挖掘测试用例,对检索进行评分,当工具不适合你的仓库时打印 NULL RESULT 而非装饰性数字。
  • 检索质量基于 git 历史挖掘的真实共同变更对衡量,并在每次推送时作为 CI 门禁重跑,防止质量静默退化。
  • 可作为库使用,提供增量 API(idx.update([...]))、结构化输出和可插拔分词器,详见 docs/ARCHITECTURE.md。
  • 提供 MCP 集成(Claude Code / Cursor / Windsurf),配置见 docs/MCP.md;提供 FastAPI 服务与 Web UI(diffcontext-service/);提供检索管道追踪(observability/)。

使用方式

无运行时依赖,支持 Python 3.9+。

MCP 集成(Claude Code / Cursor / Windsurf):参见 docs/MCP.md 获取服务器配置。

从源码安装用于开发:(此处安装命令资料未完整提供,暂未提供具体命令)。

更多命令见 USAGE.md。生产配方见 docs/USE_CASES.md。

自我评估:不要相信其基准测试,运行你自己的(2 分钟):

diffcontext verify --from-history 20 --calibrate

该命令从你的仓库 git 历史挖掘测试用例,对检索进行评分,当工具不适合你的仓库时打印 NULL RESULT 而非装饰性数字。

作为库使用:增量 API(idx.update([...]))、结构化输出、可插拔分词器见 docs/ARCHITECTURE.md。

适用场景

  • 将 LLM 接入真实代码库:智能体循环、PR 审查机器人、CI 检查。
  • 需要在提示中只放入与变更相关的代码,同时受 token 预算约束。
  • Python 项目的代码上下文选择与打包。

限制

  • 不是代码生成器。它选择并打包上下文;模型编写代码。
  • 不是精度优先。默认 top-k 下平均精度低于 0.1。若按 token 付费,可使用 --cutoff gap。
  • 尚未支持多语言。完全支持 Python。TypeScript/JS(ESM)为工作原型;CommonJS 是已测量的失败模式。
  • 不能替代阅读代码。静态分析有盲点,详见下文与 docs/BENCHMARKS.md。
  • 静态分析存在上限:没有调用关系的主题兄弟函数、跨子系统的概念链接(所有方法得分 0/20)、动态分派是已测量的盲点。
  • 当心存疑虑时,在完全信任“未找到调用方”之前,先运行 grep -rn "function_name(" --include="*.py" .。

效果说明(资料中的测量结果)

在 128 个 ContextBench Python 任务上,由各仓库自己的测试套件判定(无 LLM-as-judge),上下文大致使 pass@1 翻四倍:5.5% → 25.8%,精确 McNemar p < 0.0001。两个限定条件均见于 benchmarks/contextbench/RESULTS.md §6:(a) 提供给各组的种子函数是 oracle——从黄金补丁中提取——因此这衡量的是“给定正确本地化,上下文质量是否重要”,而非端到端问题解决(本地化对所有组免费提供);(b) 128 个有效任务中有 121 个是 django,因此这很大程度上是 django 结果。诚实的伴生结论:三种上下文变体(default / gap / depboost)在统计上彼此无法区分,p = 0.36–0.81。胜利在于有上下文对无上下文,而非这个选择器对那个选择器。

检索质量基于 701 个真实提交、跨 9 个 Python 仓库测量,并在每次推送时作为 CI 门禁重跑。在相同 token 预算下与 grep 对比,grep 在超过 4k token 后召回率停在 0.215,而 DiffContext 在 8k 时达到 0.576(2.7 倍)。诚实的另一面:默认 top-k 下平均精度低于 0.1——大多数检索到的符号是支持性上下文,而非确切的共同变更集合。--cutoff gap 在最大得分下降处截断,以约 30% 召回代价换取约 4 倍精度(共同变更基准;在 ContextBench 上为 2.2 倍 / 约 14%)。

作者审计了自己的基准,三项声明未通过:校准——唯一可引用的数字(r=0.274, n≈25)是在受污染索引上测量的,在 n=1,080 干净重测后旧分数得到 r=0.016(p=0.60):完全没有关系;通过向“不知道”收缩修复 → r=0.287(p=0.0001),是排序信号而非概率。混合权重——发布的 [0.5, 0.35, 0.15] 未通过留一仓库测试;现在为 [0.3, 0.5, 0.2]。密集基线——TF-IDF 替代品夸大了密集检索(0.664,5/5 击败 BM25);真正的 MiniLM 编码器得分 0.597,仅 2/5 击败 BM25。完整记录见 docs/auditing-my-own-benchmark.md,原始报告见 benchmarks/RIGOR_REPORT_2026-07.md。

文档

  • docs/ARCHITECTURE.md — 管道、模块图、智能体 API
  • docs/BENCHMARKS.md — 所有数字、下游 pass@1、限制
  • docs/MCP.md — 用于 Claude Code / Cursor / Windsurf 的 MCP 服务器
  • docs/ROADMAP.md — 带测量动机的优先计划
  • diffcontext-service/ — FastAPI 服务 + Web UI
  • observability/ — 检索管道追踪
  • CONTRIBUTING.md — 设置、CI 门禁、适配器开发