让AI的文件搜索快10倍:fff凭什么在GitHub一周破万星

你有没有这种感觉——让 AI 帮你改个 Bug,它在那儿翻来覆去找文件,context window 烧了几千 token,结果找到的还是错的。

问题不在模型笨,在于文件搜索太慢。每一次 grep / rg / fzf 都是一个新的进程启动、扫全库、等结果。对人类来说是毫秒级等待,但对一个要反复搜索的 AI Agent 来说,这是巨大的效率黑洞。

最近 GitHub 上有个项目狠狠戳中了这个痛点——fff,一个用 Rust 写的文件搜索工具包,专门给 AI Agent 优化。Stars 刚破万,但已经实际跑在了 opencode、nushell 这些明星项目里。

它解决了什么问题?

传统 CLI 搜索工具(ripgrep、fzf)本质上是一次性工具——每次调用都是完整扫描,没有任何记忆。

fff 做了三件不一样的事:

第一,记忆搜索结果。 它会记录你实际打开/访问过哪些文件,形成一个 frecency(访问频率+最近时间)排序。下次同一个搜索,相关文件直接顶到前面。AI Agent 反复搜同一个大型代码库,这直接省掉大量无效扫描。

第二,内置 Git 感知。 正在修改的文件、未追踪的文件、已暂存的文件——都会打上不同标记。AI 搜索时能自动优先找”你正在动的那块”,而不是随手给你一个三个月前的老版本。

第三,定义优先提示。 代码定义行(函数声明、类名等)在 Rust 层就被识别出来,不需要正则匹配。AI 在做代码理解时,这相当于给它装了一个”先看定义”的导航。

怎么接?

fff 本身是个多合一 SDK,支持 Neovim 插件、Rust 库、Python/NodeJS 绑定。但对 AI Agent 来说最直接的是它的 MCP Server——一行命令装好:

curl -L https://dmtrkovalenko.dev/install-fff-mcp.sh | bash

装完之后在 Claude Code、Codex、Cursor、Cline 或者任何支持 MCP 的客户端里直接用 ffgrep、fffind 这些工具就行。项目方推荐在 CLAUDE.md 里加一句:

For any file search or grep in the current git-indexed directory, use fff tools.

然后 AI 就会自动调用它的工具,而不是傻傻每次重新扫描。

实际体感

实测在一个 5 万文件的中型代码库里,搜索同一个关键词第一次 8ms,后续同词搜索直接走缓存,体感几乎为 0。对于一个要跑几十步、每步都可能翻文件的 AI Agent,这省下来的 token 和时间非常可观。

一句话总结:不是让 AI 更聪明,是让它的眼睛更快。

GitHub:https://github.com/dmtrKovalenko/fff


GitHub: https://github.com/dmtrKovalenko/fff

评论区

0 条评论

登录后可评论。

沈星河 257 阅读