乐于分享
好东西不私藏

AI Agent 代码搜索工具真实战场

AI Agent 代码搜索工具真实战场

1战场背景

测试环境

这是一个典型的大型前端 monorepo:

项目规模:2998 个 TS/TSX 文件 代码结构:packages/modules/plan-list(计划列表) packages/components(公共组件) packages/extensions(扩展插件) 测试模块:计划管理、工作流编辑器、消息推送

三位选手

🔧 grep

传统派文本级别搜索最可靠

📊 CodeGraph

结构派AST 解析符号级查询

🤖 Semble

智能派语义搜索自然语言

2速度对决

测试场景

场景
问题描述
开发者需求
场景1
找到"计划分组"相关代码
理解 createPlanGroup 和 updatePlanGroup 实现
场景2
查找"消息推送"功能
定位推送接口和测试逻辑
场景3
理解"编辑器"初始化
知道 PlanEditor 组件注册逻辑

grep 真实表现

场景1:计划分组搜索

📊 结果:19 行匹配

⏱️ 耗时:0.572秒

场景2:消息推送搜索

📊 结果:9 行匹配

⏱️ 耗时:0.421秒

场景3:编辑器初始化

📊 结果:5 行匹配

⏱️ 耗时:0.335秒

grep 评分:7/10 — 可靠但不够智能

⚡ 速度:0.3-0.6秒📊 精度:找到匹配行但需人工筛选🔍 深度:返回文本而非代码结构

3Token 对决

传统方式的 Token 陷阱

让我们看看传统 grep + read_file 方式的真实成本:

场景1(计划分组)

grep 输出:19 行匹配涉及文件:~8 个文件grep tokens:~476 tokens

如果读取前5个文件总计:~86KB = ~21,500 tokens

总计消耗:~22,000 tokens

CodeGraph 的 Token 效率

CodeGraph 的优势在于它只返回符号元数据:

查询 createPlanGroup 符号

返回:符号位置、类型、签名

Token 消耗:~150 tokens

节省率:99.3%

Token 消耗对比表

场景
grep+read
CodeGraph
最佳节省
计划分组
22,000
150
99.3%
消息推送
7,725
150
98.1%
编辑器初始化
~12,000
120
99.0%
平均~13,908~14099.0%

💡 关键发现:CodeGraph 在 Token 节省上完胜,因为它只返回元数据而不是代码片段。

4能力对决

自然语言理解测试

问题
CodeGraph
Semble
grep
"如何创建工作流?"
❌ 需要符号名
✅ 理解意图
❌ 需要关键词
"谁调用了 createPlanGroup?"
✅ 直接返回调用者
⚠️ 需要相关代码
❌ 需要手动分析
"修改这个会影响哪些代码?"
✅ 影响分析
❌ 无结构信息
❌ 无法回答
"找到类似的实现"
❌ 无语义匹配
✅ find_related
❌ 无

自然语言理解评分

🤖 Semble:9/10 — 深度理解自然语言

📊 CodeGraph:5/10 — 只懂符号,不懂自然语言

🔧 grep:2/10 — 只懂精确文本

结构化分析测试

结构化分析评分

📊 CodeGraph:10/10 — 完美的结构分析工具

🤖 Semble:4/10 — 不擅长结构分析

🔧 grep:1/10 — 基本无此能力

5综合评分

总体评分表

维度
权重
grep
CodeGraph
Semble
速度
20%
7
9
8
Token 效率
25%
3
10
8
自然语言
20%
2
5
9
结构分析
25%
1
10
4
易用性
10%
9
7
6
综合得分100%4.2/108.7/107.0/10

🏆 总冠军:CodeGraph (8.7/10)

核心优势:在最重要的结构分析和 Token 效率上完胜

适用场景:重构、影响分析、调用链追踪

🥈 亚军:Semble (7.0/10)

核心优势:强大的自然语言理解能力

适用场景:快速理解代码、学习新项目

🥉 季军:grep (4.2/10)

核心优势:最可靠,随处可用

适用场景:快速字符串匹配、紧急场景

6实战工作流

推荐组合策略

💡 推荐工作流

日常开发:主要使用 Semble(语义搜索)+ 辅助使用 CodeGraph(结构分析)

复杂重构:主要使用 CodeGraph(影响分析)+ 辅助使用 Semble(快速定位)

知识建设:主要使用 Semble(收集代码片段)+ 辅助使用 CodeGraph(理解关系)

实战案例

# Step 1: 语义搜索,快速定位 semble search "创建计划工作流 create plan workflow" . --top-k 10 → 找到 10 个相关代码片段 # Step 2: 结构分析,理解关系 codegraph_callers(symbol="createPlanGroup") → 找到所有调用 createPlanGroup 的地方 # Step 3: 影响分析,评估修改 codegraph_impact(symbol="createPlanGroup") → 如果修改 createPlanGroup,会影响哪些代码 # Step 4: 深入阅读(如果需要) read_file(path="packages/.../services.ts") → 阅读完整实现

Token 消耗对比

  • 传统方式(grep + read):~22,000 tokens
  • 优化工作流(Semble + CodeGraph + read):~650 tokens
  • 节省率:97% 🎉

7核心发现

✨ 核心发现

1. Token 节省是真实的

相比传统的 grep + read_file 方式,CodeGraph 和 Semble 都能节省 95% 以上的 Token。

2. 工具互补,而非替代

CodeGraph 和 Semble 解决的是不同类型的问题。结构分析 vs 语义理解。

3. 速度不是瓶颈

在现代硬件上,所有工具的速度都足够快。关键在于工具的能力和返回结果的质量。

4. 自然语言是未来

虽然 CodeGraph 在本次测试中胜出,但 Semble 的自然语言理解能力代表了未来方向。

8最终建议

🎯 最终建议

1. 同时使用两者 — 不要做选择题,要做组合题

2. MCP 配置优先 — 让 AI 自动选择最合适的工具

3. 建立工作流 — 不要依赖单一工具,建立完整的搜索流程

4. 定期评估 — 随着项目变化,定期评估工具的有效性

测试结论:CodeGraph (8.7/10) > Semble (7.0/10) > grep (4.2/10)

测试规模:2998 个 TS/TSX 文件

报告完成日期:2026-05-20

感谢阅读!这是一份基于真实测试数据的客观对比报告。如果你有任何问题或想深入了解某个方面,欢迎继续交流。