用 Rust 写了个开源桌面 Agent,聊两个实际卡住过我们的性能问题

7 小时 32 分钟前
 bowen628
BitFun ,开源( MIT )桌面端 AI Agent ,Windows / macOS / Linux 都有安装包。Agent 运行时是 Rust ,外壳 Tauri v2 。需要自备模型 API 。

不列功能了,讲两个我们真正花了时间的地方。

一、Agent 反复搜同一个仓库

Agent 干一个任务,会把同一个仓库搜几十上百次。ripgrep 本身够快,但它每次都是冷启动 —— 重新遍历目录树、重新过 gitignore 。在 Chromium 这种千万行级的树上,这部分开销会直接盖过模型推理的耗时。

我们做了个跨轮次常驻的索引( flashgrep ),进程活着索引就在,不用每次重建。实测在 Chromium 上搜索耗时最高降低 94.6%,平均快约 36 倍。绝大部分收益来自不再为每一次工具调用付冷遍历的成本。

二、KV Cache 命中率

Agent 的 token 成本大头不是新生成的内容,是每一轮重新发过去的上下文。要让 KV Cache 真正命中,prompt 前缀必须逐字节稳定 —— 一个时间戳、一次工具列表重排序,都会让缓存从那个位置断掉。

把 prompt 拼装重构成前缀稳定的结构之后,一轮 SWE-Bench-Pro 跑下来平均命中率 98.67%。

已知问题先说在前面

macOS 第一次打开会提示「已损坏」。还没做 Apple 公证,Gatekeeper 拦的,需要跑一次 xattr -d com.apple.quarantine /Applications/BitFun.app 。这个在修。

另外仓库里那组 SWE-Bench 对比数据是我们自己跑的,每个 case 只跑了一次,没排除波动,别当排名看。

链接

仓库 https://github.com/GCWing/BitFun
官网 https://openbitfun.com/

顺便,项目 97% 以上的代码是 AI 写的,包括用它自己开发它自己。这点大概会有争议,欢迎拍。
366 次点击
所在节点    分享创造
2 条回复
yafoo
6 小时 22 分钟前
官网挺漂亮的,就是上下滑动太卡了。
前些天构思了个 logo 。跟你的 logo 几乎一样的。
yidinghe
6 小时 12 分钟前
我最感兴趣的还是 flashgrep ,因为 intellij 的 mcp 搜索不可靠,这个 IDE 自己还存在内存缓存问题。楼主我就先把这个工具拿去用了,感谢感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1232115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX