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 写的,包括用它自己开发它自己。这点大概会有争议,欢迎拍。
不列功能了,讲两个我们真正花了时间的地方。
一、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 写的,包括用它自己开发它自己。这点大概会有争议,欢迎拍。