乐于分享
好东西不私藏

你的AI Agent还在瞎grep?这个工具今天刚开源,让代码一键导航

你的AI Agent还在瞎grep?这个工具今天刚开源,让代码一键导航

今天凌晨,一个叫CodeFuse的项目悄悄开源了。

才15个Stars,但解决的问题很实在:让AI Agent不再"瞎grep"

传统AI coding agent探索代码的方式:grep → read_file → grep → read_file...

这种方式有个致命问题:每次都要重新扫描整个项目

CodeFuse的做法不一样:把代码变成一个文件系统,Agent用ls/cat就能找到函数


为什么grep效率低?

传统AI agent探索代码的流程:

1. grep "HelloWorld" → 找到一堆匹配(包括注释、字符串)
2. read_file → 读取文件内容
3. grep "HelloWorld" -A 10 → 找到定义
4. read_file → 读取另一个文件
5. grep "getUser" → 又是重复扫描
...

问题:

问题
说明
grep每次都重新扫描整个项目
不精确
正则匹配注释、字符串中的名字
调用多
5-10次工具调用才能找到一个函数

举个例子:

bash
grep HelloWorld

Agent要花5-10次调用才能分辨哪个是真正的定义


CodeFuse的核心创新

CodeFuse把代码变成了一个虚拟文件系统(VFS)

传统方式 vs CodeFuse方式

方式
操作
调用次数
传统grep
grep → read_file → grep...
5-10次
CodeFuse
ls → cat
1-2次

Agent不再"瞎grep",而是直接"导航":

bash
ls .codefuse/vfs/symbols/

cat .codefuse/vfs/symbols/HelloWorld

使用方法论

第一步:安装

bash
go install github.com/zzszmyf/codefuse/cmd/codefuse@latest

第二步:索引项目

bash
codefuse index ./my-project

第三步:查询符号

bash
codefuse query HelloWorld

codefuse query "use*"
codefuse query "*Handler"
codefuse query "get?User"

codefuse query "Api*" -k class

输出:

Found 42 result(s) for 'use*':
  function useAuth
    File: src/hooks/useAuth.ts:4
  function useDebounce
    File: src/hooks/useDebounce.ts:7

第四步:生成VFS视图

bash
codefuse vfs generate

项目会生成 .codefuse/vfs/ 目录:

my-project/
├── src/
│ └── main.go
└── .codefuse/
    ├── index.json
    ├── manifest.json
    └── vfs/
        ├── symbols/    # 每个符号一个文件
        │   ├── HelloWorld
        │   └── ApiClient
        ├── outline/    # 每个源文件一个大纲
        │   └── src_main.go
        └── references/ # 调用关系(开发中)

Agent可以直接:

bash
ls .codefuse/vfs/symbols/      # 列出所有符号
cat .codefuse/vfs/symbols/HelloWorld  # 读取符号定义

支持哪些语言?

语言
解析方式
支持符号
Go
go/ast(100%准确)
package/func/method/struct/interface/const/var
TypeScript/TSX
tree-sitter/regex
function/class/interface/type/enum/method
JavaScript/JSX
tree-sitter/regex
function/class/method/variable
Python
tree-sitter/regex
function/class/method
Rust
tree-sitter/regex
fn/struct/trait/impl/method

Go用的是官方go/ast解析器,零依赖,100%准确

其他语言用tree-sitter(需要安装CLI)或regex回退。


tree-sitter vs regex

解析方式
速度
准确度
适用场景
go/ast
100%
Go项目
tree-sitter
中(首次慢)
需要精确解析
regex
快速扫描

tree-sitter首次运行较慢,但后续只重新解析改过的文件。


FUSE挂载:把代码变成真正的文件系统

更酷的是:CodeFuse可以把索引挂载为真正的文件系统

bash

mkdir -p /tmp/mymount
codefuse mount /tmp/mymount

ls /tmp/mymount/symbols/      # 所有符号
cat /tmp/mymount/symbols/main # 符号详情
ls /tmp/mymount/outline/      # 所有源文件
cat /tmp/mymount/outline/src_main.go  # 文件大纲

umount /tmp/mymount

这意味着Agent可以用标准的文件操作(ls/cat/find)探索代码,不再需要特殊工具。


CodeFuse vs CodeGraph

对比项
CodeGraph
CodeFuse
核心输出
代码依赖图
虚拟文件系统
解决问题
"谁调用了这个类?"
"Agent怎么快速找到useAuth?"
主要用户
人类开发者
AI Agent
更新模式
单次分析
增量索引

互补关系

CodeFuse:快速符号查找

CodeGraph:架构理解


适用谁?

适合

使用AI coding agent的人

大型项目,grep扫描慢的人

需要让Agent"理解"代码结构的人

Go/TypeScript/Python项目

不适合

小项目(grep够用)

不使用AI agent的人

只用传统开发方式的人


项目地址

GitHub:https://github.com/zzszmyf/codefuse

README很详细,进去看看命令列表就能上手。


如果你的AI Agent每次都要"瞎grep"才能找到代码,这个工具值得今天就试试。

核心价值:把代码变成文件系统 → Agent用ls/cat就能导航 → 效率提升10倍。