【Rust 项目投稿】Pi 的 Rust 实现来了:rpi,不止一个终端 Agent
内容提要
rpi 是 Pi 的 Rust 实现,采用 library-first 设计,提供 CLI 与原生扩展。核心分为 rpi-ai、rpi-agent、rpi-tools、rpi-harness 四层,共九个 crate。已有 15 个扩展,覆盖规划、协作、代码分析、网络与观测。适合用 Rust 开发、需直接接管工具与会话状态的产品;若现有 Pi 工作流已够用,则无需迁移。
延伸解读
rpi 的定位:为 Rust 生态提供 Agent 运行时
rpi 并非要替代 Pi,而是将 Pi 的能力以 Rust 库的形式提供,方便嵌入 Rust 应用。它采用 library-first 设计,核心运行时无需 Node,但部分扩展仍依赖外部工具。如果你正在开发 Rust 服务,希望进程内处理消息、事件和取消,rpi 提供了另一条集成路径。
分层架构带来的灵活性与取舍
rpi 分为 rpi-ai、rpi-agent、rpi-tools、rpi-harness 四层,共九个 crate。这种分层允许按需嵌入:只需模型与工具循环时使用 Agent 层;需要会话持久化、分支与恢复时再加入 harness 层。但恢复不等于所有外部操作都只执行一次,且最小嵌入式应用可以跳过 harness 层。
扩展生态与使用注意事项
截至 2026 年 10 月 6 日,已有 15 个扩展包,覆盖规划、协作、代码分析、网络与观测。这些扩展可组合使用,但并非安装后自动运行的流水线。插件需匹配平台与宿主能力,并以当前用户权限运行,不是安全沙箱。部分扩展功能有限,如 rpi-mcp-adapter 0.1.4 尚不提供完整的 stdio 或持久连接客户端。
迁移建议与入门路径
如果现有 Pi 工作流已满足需求,无需仅为更换实现语言而迁移。若你使用 Rust 开发产品,希望直接接管工具、运行事件和会话状态,或编写原生扩展,rpi 值得考虑。入门可先运行最小示例,使用 faux Provider 返回固定文本,无需模型密钥,便于区分控制流程问题与模型服务问题。
Q&A
rpi 是什么?它和 Pi 有什么关系?
rpi 是 Pi 的 Rust 实现,用 Rust 重新实现了 Pi SDK,并在该运行时之上提供终端 CLI 和原生扩展。它同样能在终端里读文件、改代码、执行命令,也能作为库嵌入自己的程序。
已经有 Pi 了,为什么还要做 Rust 实现?
rpi 的目的不是证明 Agent 必须用 Rust 写,而是让这套能力更方便地进入 Rust 应用和工具链。比如开发 Rust 服务时,可以在进程内处理消息、事件和取消,不必把终端程序当成唯一入口。
rpi 的 library-first 设计有什么实际好处?
有三个收益:按需嵌入,只要模型与工具循环就用 Agent 层,需要会话管理再加入运行管理层;复用核心能力,终端助手和自己的应用共用同一套运行时;离线测试流程,用确定性模型响应和内存执行环境验证消息与工具往返。
rpi 的核心架构分为哪几层?各自负责什么?
分为四层:rpi-ai 接入模型,统一消息与流式响应;rpi-agent 驱动循环,串联模型请求、工具调用与结果反馈;rpi-tools 执行操作,提供文件与命令工具;rpi-harness 管理运行,负责会话持久化、分支、上下文压缩与恢复。外围还有 rpi-tui、rpi-cli、rpi-telemetry、rpi-plugin-sdk 与 rpi-extensions,共九个核心 crate。
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 检查并接入 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,扩展会在本机编译。想先了解 SDK,可以运行仓库的最小示例:git clone 后 cargo run -p minimal,它使用 faux Provider 返回固定文本,不需要模型密钥。
rpi 有哪些限制或需要注意的地方?
rpi 核心运行时无需 Node,但部分扩展仍依赖外部工具;它不是 Pi 的接口兼容层,现有 Pi 扩展不能默认直接运行。插件需匹配平台与宿主能力,并以当前用户权限运行,不是安全沙箱。具体功能要看发布版本:rpi-mcp-adapter 0.1.4 尚不提供完整的 stdio 或持久连接客户端;语音扩展的本地识别也不代表网络朗读能离线工作。选择这条路径还需管理模型凭据、执行权限、插件依赖和错误处理。