惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
L
LangChain Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
量子位
A
About on SuperTechFans
C
Check Point Blog
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
V
Visual Studio Blog
Vercel News
Vercel News
B
Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
U
Unit 42

博客园 - 沐子馨

一文讲透 Multi-Agent 四大协作模式:Workflow、Supervisor、Hierarchical 与 Swarm 花几天把 DeepSeek Harness 跑了个遍,跟你说说值不值得装 Loop 不够用了?AI 工程下一站叫 Graph 什么是Agent? Agent Loop:从对话式 AI 到自主智能体的范式跃迁 解锁图数据建模的奥秘 基于 Neo4j 与 Milvus 的图RAG系统搭建指南 解决复杂推理难题:KG-RAG 在大模型中的应用 RAG 评估常用工具简介 RAG系统效果不好?一文看懂如何进行系统评估 写出让 AI “秒懂”的技能Skill 深入理解 RAG 中的格式化生成与函数调用 解锁 RAG 系统中的高级检索与重排序策略 掌握查询重构与智能路由的艺术 告别黑盒:手把手实现一个可解释、可调试的 Text2SQL 代理系统 告别简单向量搜索:RAG 中的高级查询构建与优化策略 深入理解 RAG 中的混合搜索策略 告别基础检索:掌握 RAG 中的句子窗口与递归路由策略 构建多模态检索系统:Milvus 部署、Schema 设计与混合检索实践 向量数据库原理与实战:从核心机制到 FAISS 应用 多模态向量嵌入:从文本到图像的语义统一与 RAG 应用 构建高效 RAG 的基石:深度解析 Embedding 模型原理与优化 All-in-RAG:解锁大模型“开卷考试”的终极能力 AI Agent 是如何思考的?一文读懂推理与决策引擎 终端革命:AI Agent 正在重新定义命令行 给企业装上“AI 大脑”:AgentSpace 如何从“手动检索”跨越到“智能决策”? Agentic 框架快速概览 AI 智能体交互如何带领它走出对话框,从屏幕像素迈向真实物理世界 高级提示词技巧如何带领大模型走出“一本正经胡说八道”的误区? 当 AI 学会“开疆拓土”:探索与发现模式如何从源头打破静态知识的桎梏,在陌生领域催生新洞见?
Agent 审代码总塞满上下文,怎么解?
沐子馨 · 2026-07-29 · via 博客园 - 沐子馨

PR 明明只改了几行,代码 Agent 还没开始判断有没有 bug,就先把一大堆文件塞进上下文。等它终于查清楚调用关系,上下文预算已经用掉一截。

我拿 httpx 做了次实测。准备交给 Agent 的上下文从 13666 tokens 降到 632 tokens,少了约 95%。

这种浪费其实很隐蔽。问题是,Agent 一开始根本不知道哪些文件相关,只能先在仓库里来回搜索,顺着调用关系把相关代码和单测一点点找出来。上下文看起来越来越满,真正用来判断 bug 的空间反而越来越少。

更大的上下文窗口解决不了这个问题,得先改变 Agent 读取代码的顺序。

以前 Agent 会先搜仓库、读文件,再逐步确认调用关系。现在我让它从 diff 开始,先确认可能受影响的函数,再读取调用链上的代码和单测。这样一来,它不用为了理清调用关系打开太多文件。

7 月 22 日登上 GitHub Trending 的 tirth8205/code-review-graph,做的就是这件事。它先在本地建立代码关系图。拿到 diff 后,图谱会找到改动函数和它的调用者,让 Agent 先读这些位置。

安装后执行 code-review-graph install 写入 MCP 配置。

配置生效后,我给 httpx 仓库建图,再用一个小 diff 跑了次检测。这次只改了一个处理 URL 结尾斜杠的函数。图谱先确认被改的是哪个函数,再顺着调用关系查到两个直接调用者。Agent 可以先读这三处代码,需要时再往外查,不用一开始就把这个函数所在的整个文件都打开。

如果按 git grep 搜改动函数,会连带命中它所在的整个文件。把这个文件完整交给 Agent,要占 13666 tokens。图谱返回的结果只有 632 tokens,少了约 95%。

仓库和依赖都准备好后,从建图、准备 diff 到看懂输出,大约需要 8 到 10 分钟。工具从建图到返回结果不到 12 秒。

小仓库用 grep 可能已经够了;大仓的首次索引时间要另算,调用图也可能漏掉动态调用。这里的 95% 只是跟前面的 grep 做法比出来的,不能直接套到其他项目上。

这张图值不值得建,我主要看以后还能不能反复用。中大型仓库如果经常有 PR 要审,同一张图可以反复使用;一次性脚本和小仓库,直接 grep 就够了。

我用图谱缩小 Agent 要读的范围,代码有没有问题,还是看源码和单测结果。

下次 Agent 又准备把整个仓库都读一遍时,先别急着加上下文。先问一句:

这次改动,到底影响谁?