【Rust 项目投稿】Pi 的 Rust 实现来了:rpi,不止一个终端 Agent
内容提要
rpi 是 Pi 的 Rust 实现,采用库优先设计,提供 CLI 与原生扩展。架构分为 rpi-ai、rpi-agent、rpi-tools、rpi-harness 四层,共九个核心 crate。已有 15 个扩展,覆盖规划、协作、代码分析、网络与观测。适合用 Rust 开发、需接管工具与会话状态的产品;现有 Pi 工作流无需仅为换语言而迁移。
延伸解读
库优先设计:为 Rust 应用提供嵌入式 Agent 能力
rpi 采用 library-first 设计,核心运行时无需 Node,可直接嵌入 Rust 服务。开发者能按需选择组件:仅需模型与工具循环时使用 Agent 层;需要会话持久化、分支与恢复时再加入 Harness 层。这种分层让终端助手与自有应用共享同一套运行时,避免重复实现工具循环,也便于用确定性模型响应进行离线测试。
扩展生态:原生插件与组合工作流
rpi 原生扩展是 Rust 动态库,通过 C ABI 向宿主注册工具、模型接入、命令等。截至 2026 年 10 月 6 日,已有 15 个扩展包,覆盖任务规划、人机协作、代码分析、网络工具和观测渠道。这些扩展可围绕具体任务组合,例如修复 Rust 项目时,用 plan-mode 规划、CodeGraph 分析调用关系、lens 执行检查。但组合示例并非自动流水线,需用户配置权限与验证命令。
迁移考量:何时适合选用 rpi
如果现有 Pi 工作流已满足需求,不必仅为更换实现语言而迁移。rpi 适合正在用 Rust 开发产品、希望直接接管工具、运行事件和会话状态的场景。它提供的是运行机制,而非更聪明的模型回答。选择这条路径需自行管理模型凭据、执行权限、插件依赖和错误处理。插件以当前用户权限运行,不是安全沙箱,且部分扩展功能受版本限制。
上手路径:从最小示例到真实模型
安装 rpi-cli 后配置模型凭据即可运行。若想先了解 SDK,可运行仓库的 minimal 示例,它使用 faux Provider 返回固定文本,无需模型密钥,能展示消息和运行结束事件。先跑通这条路径,再接入真实模型和文件工具,更容易区分控制流程问题与模型服务问题。开发扩展时,可用 rpi dev 编译、监听和热重载。
Q&A
rpi 是什么?和 Pi 有什么关系?
rpi 是 Pi 的 Rust 实现,用 Rust 重新实现了 Pi SDK,并在这套运行时之上提供终端 CLI 和原生扩展。它同样能在终端里读文件、改代码、执行命令,也能作为库嵌入自己的程序。
rpi 的架构分为哪几层?各层负责什么?
rpi 架构分为四层:rpi-ai 负责接入模型,统一消息与流式响应;rpi-agent 驱动循环,串联模型请求、工具调用和结果反馈;rpi-tools 执行操作,提供文件与命令工具;rpi-harness 管理运行,负责会话持久化、分支、上下文压缩与恢复。外围还有 rpi-tui、rpi-cli、rpi-telemetry、rpi-plugin-sdk 和 rpi-extensions,共九个核心 crate。
rpi 采用 library-first 设计有什么好处?
library-first 设计带来三个实际收益:按需嵌入,只要模型与工具循环就使用 Agent 层,需要会话管理再加入运行管理层;复用核心能力,终端助手和自己的应用使用同一套运行时;离线测试流程,用确定性的模型响应和内存执行环境验证消息与工具往返,不必每次请求真实模型。
rpi 有哪些扩展?可以怎么组合使用?
截至 2026 年 10 月 6 日,已有 15 个已发布扩展包,分为五组:任务规划(rpi-todo、rpi-goal、rpi-plan-mode)、人机协作(rpi-ask-user、rpi-permissions)、代码分析(rpi-codegraph、rpi-lens、rpi-subagents)、网络工具(rpi-websearch、rpi-webfetch、rpi-mcp-adapter)、观测与渠道(rpi-langfuse、rpi-im-message、rpi-voice、rpi-server)。可以围绕一项任务组合,例如为 Rust 项目修复问题:先用 plan-mode 探索仓库、组织计划,用 ask-user 请用户决定;再用 CodeGraph 查询调用关系、todo 跟踪待办;最后用 lens 执行 Rust 检查,接入 Langfuse 观察。
已经在用 Pi,有必要迁移到 rpi 吗?
如果现有 Pi 工作流已经满足需求,没有必要仅为更换实现语言而迁移。如果你正在用 Rust 开发产品,希望直接接管工具、运行事件和会话状态,或者编写原生扩展,rpi 提供了另一条集成路径。它的特点是 Rust 库、CLI 和扩展共享一套核心,而不是承诺模型回答会更聪明。
如何开始使用 rpi?
通过 Cargo 安装:cargo install rpi-cli --version 0.3.16。安装后按使用文档配置模型凭据,再运行 rpi。不想从源码编译,也可以下载预编译 CLI。需要扩展时,再逐个安装,例如:rpi install rpi-todo --version 0.2.1。扩展会在本机编译,需要相应构建环境。开发自己的扩展时,可以通过 rpi dev 编译、监听和热重载。
rpi 的扩展是安全沙箱吗?有哪些限制?
rpi 的扩展不是安全沙箱,插件需匹配平台与宿主能力,并以当前用户权限运行。具体功能要看发布版本:rpi-mcp-adapter 0.1.4 尚不提供完整的 stdio 或持久连接客户端;语音扩展的本地识别也不代表网络朗读能离线工作。