coogoaa

我用 Rust 重写 Pi 编码助手,性能飙升 10 倍

  •  
  •   coogoaa · 1 day ago · 1199 views

    最近做了一个 Rust 项目:pi-rust。把 TypeScript 版的 Pi 编码助手用 Rust 重写,命令叫 rpi ,性能和内容占用相对于原版都提升了很多。

    为什么要用 Rust 重写?

    1. 学习 Rust 首先就是想学 Rust 。我想找一个能持续写下去的项目。Agent 涉及异步请求、流式输出、文件操作和状态管理,后面还有终端界面和插件。这些需求会逼着我把 Rust 用起来:共享状态怎么处理,错误怎么往上传,异步任务怎么取消,接口怎么拆。选 Pi 来重写,也有一个好处:有现成的项目可以参考。遇到一个功能,可以先看原版怎么做,再考虑在 Rust 里怎么实现。写完以后还有东西可以对照,不至于只凭自己的想象判断是否合理。

    2. 想弄明白一个 Agent 是怎么工作的 平时用 AI 编码工具,看到的是输入需求、等它改代码。自己实现一次,就得处理那些界面上看不见的细节。 模型返回一个工具调用以后,谁去执行?工具出错了,要把什么结果交给模型?流式消息还没结束,用户取消了怎么办?程序中断后,下一次启动看到的历史应该是什么? 这些问题在调一次聊天 API 时未必会遇到,做完整 Agent 就绕不过去。 核心循环其实不长:请求模型,发现工具调用,执行工具,回传结果,再请求模型。周围的错误处理、取消、会话保存,才是需要花心思的地方。

    7 replies  •  2026-11-03 23:47:22 +08:00
    EmptyDX
    EmptyDX
    1 day ago
    1
    10 倍不够,等 100 倍了再来看
    Need4more
    Need4more
    1 day ago
    2
    好东西!可以独立使用,也可以做库嵌入,还可以远程跑在服务器。已经 star 了。

    想问这个项目是用 ai 移植的还是 op 手写的?
    coogoaa
    coogoaa
    OP
    16h 40m ago via Android
    3
    @Need4more 一部分 op 大部分 ai
    MarkLeeyun
    MarkLeeyun
    15h 10m ago
    4
    @Need4more 期待后续分享,Rust 版用起来体验如何?
    5ssl
    5ssl
    12h 49m ago
    5
    我用 pi-web 啊
    yusf
    yusf
    7h 25m ago
    6
    这个最大的瓶颈不应该是 llm 的请求吗 ?
    coogoaa
    coogoaa
    OP
    3h 10m ago via Android
    7
    @5ssl 也有 rpi-web 性能很好,占用资源很低
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1406 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:57 · PVG 02:57 · LAX 10:57 · JFK 13:57
    ♥ Do have faith in what you're doing.