Pi 的 Rust 实现来了:rpi,不止一个终端 Agent

发布时间:2026/10/8 13:00:47

Pi 的 Rust 实现来了:rpi,不止一个终端 Agent 如果你熟悉 Pirpi 可以理解为它的 Rust 实现同样能在终端里读文件、改代码、执行命令也能作为库嵌入自己的程序。rpi 用 Rust 重新实现 Pi SDK并在这套运行时之上提供终端 CLI 和原生扩展。想直接使用编码助手可以安装后运行想构建自己的 Agent则可以选择需要的模型接入、工具循环和会话管理组件。已经有 Pi为什么还要做 Rust 实现Pi 本身就有 SDK。rpi 的目的不是证明 Agent 必须用 Rust 写而是让这套能力更方便地进入 Rust 应用和工具链。比如你正在开发一个 Rust 服务希望它接收任务、调用模型、执行自定义工具再把进度送到自己的界面。使用 rpi可以在进程内处理消息、事件和取消不必把终端程序当成唯一入口。为此rpi 采用library-first设计先提供可独立使用的库再用同一套库组成 CLI。这带来三个实际收益按需嵌入只要模型与工具循环就使用 Agent 层需要保存会话、分支与恢复再加入运行管理层。复用核心能力终端助手和自己的应用使用同一套运行时不必各写一个工具循环。离线测试流程用确定性的模型响应和内存执行环境验证消息与工具往返不必每次都请求真实模型。rpi 核心运行时无需 Node但部分扩展仍依赖外部工具。它也不是 Pi 的接口兼容层不能默认现有 Pi 扩展安装后就能直接运行。上游归属与 MIT 许可信息保留在项目 NOTICE 中上游归属与 MIT 许可原文展开查看https://github.com/bigfish1913/pi-rust/blob/d73d4c79b6a399c375827b5df812e235c3a3c9ae/NOTICE架构模型、工具与会话各管一层rpi 把运行流程分成几层。图中箭头表示职责调用关系不表示模型和工具同时执行。图带会话管理的运行路径。只需要核心循环的应用可以直接使用 Agent 层。rpi-ai接入模型。统一消息与流式响应支持 Anthropic、OpenAI-compatible 和自定义网关。rpi-agent驱动循环。把模型请求、工具调用和结果反馈串起来处理事件、队列与取消。模型提出操作程序实际执行工具。rpi-tools执行操作。提供文件与命令工具并允许替换执行环境。配合 faux 测试 Provider可以确定性地验证循环。rpi-harness管理运行。负责会话持久化、分支、上下文压缩与恢复。最小嵌入式应用可以跳过这一层恢复不等于所有外部操作都只执行一次。以“读取一个文件并解释内容”为例用户任务进入循环模型提出读文件请求宿主执行工具把结果加入消息再请求模型生成回答。你的应用可以订阅这段过程的事件把“正在读取”“正在生成”等状态显示在自己的界面里。外围由rpi-tui和rpi-cli提供终端体验rpi-telemetry定义遥测合约rpi-plugin-sdk与rpi-extensions负责插件接口和加载共组成九个核心 crate。扩展把自己的工作流接进来rpi 原生扩展是 Rust 动态库通过 C ABI——明确的二进制调用合约——向宿主注册工具、模型接入、命令、事件处理和资源。Skills 与提示词描述工作方法原生插件则加入实际执行能力。截至 2026 年 10 月 6 日配套仓库已有15 个已发布扩展包。下面按使用场景逐个介绍功能以所列发布版本为准。任务规划目标、计划和待办分开管理rpi-todo0.2.1——维护具体待办。支持新增、查看、完成、删除和清空任务也可以给任务加标签。默认清单属于当前会话项目级清单则用于长期积压事项两者独立保存避免新会话接手上一段对话的未完成计划。rpi-goal0.1.6——保存项目目标。用来记录当前要完成什么、推进到哪里并支持暂停、恢复和归档。目标可以配置轮次或时间预算耗尽后自动暂停。它关注的是持续目标todo 关注的是目标下面的一项项工作。rpi-plan-mode0.1.4——先探索再执行。进入计划模式后工具范围收紧到只读探索及计划完成操作适合先阅读仓库、比较方案。完成的计划写入.rpi/PLAN.md再恢复此前的工具集避免还没理清方案就开始修改文件。人机协作把需要确认的决定交还给人rpi-ask-user0.1.5——结构化提问。支持选项、自由输入、多选和补充说明适合确认目标平台、实现方案或操作范围。问题会进入 TUI等待回答后再返回工具结果超时或取消会关闭请求。没有交互式 UI 的宿主会明确报错。rpi-permissions0.1.4——管理工具权限策略。提供规则检查、授权、撤销和列举拒绝规则优先于允许规则。插件负责给出策略判定宿主需要在工具执行前接入检查才能强制执行它不是系统级沙箱不能把“安装插件”当成权限隔离已经完成。代码分析定位关系检查改动描述委派rpi-codegraph0.1.5——查询代码关系。提供符号搜索、调用者与被调用者、影响范围、相关源码和索引状态查询。它对本地 SQLite 索引做限定范围的查询不是每次把整个仓库塞进上下文。使用前需要安装外部 CodeGraph CLI并为项目建立索引。rpi-lens0.1.4——执行有限的代码检查。可以运行git diff --check、cargo check、cargo fmt --check和 Clippy把诊断结果交给 Agent。工具设有超时和输出上限不开放任意命令适合改动后的检查但不能代替项目自己的测试套件。rpi-subagents0.1.4——描述子任务委派。delegate_task将任务整理成带角色、轮次和超时限制的委派描述并限制递归委派。这个发布版不负责启动完整的子 Agent实际调度由宿主完成它是多 Agent 工作流的一块接口不是装上就自动并行工作的调度平台。网络工具搜索线索、阅读原文、接入外部服务rpi-websearch0.1.4——查找公开资料。使用无需 API key 的搜索来源返回标题、URL、摘要和来源信息并在可用时补充 Wikipedia 结果。适合发现文档和参考线索正文依据仍应通过抓取原文核实搜索失败也需要处理。rpi-webfetch0.1.4——读取网页正文。获取公开 HTTP(S) 页面提取限量可读文本。它限制私有地址、带凭据的 URL 和过大的响应失败会作为工具结果返回方便 Agent 换来源而不是因为一个网址失败就中断整轮工作。rpi-mcp-adapter0.1.4——发送 HTTP JSON-RPC 请求。注册mcp_request可以向指定端点发送方法、参数和请求 ID并设置超时。这个发布版是 HTTP 传输适配不是完整的 stdio 或持久连接客户端要接哪种 MCP 服务需要先确认其传输方式。观测与交互渠道看清运行过程增加使用入口rpi-langfuse0.4.1——追踪模型与工具执行。将会话、模型请求、工具调用、Agent 轮次和压缩过程送到 Langfuse帮助查看耗时、token 用量和失败位置。也提供手工评分、prompt 版本管理与 trace 查询工具。使用前需要配置 Langfuse 地址和项目凭据。rpi-im-message0.1.9——接入飞书/Lark。通过长连接接收消息支持文本、Markdown 和卡片发送配置后也可把消息交给当前 Agent 自动回复。适合把终端中的工作接入协作渠道但需要配置应用权限、允许的会话范围及自动回复模型。rpi-voice0.3.6——给 TUI 加语音输入和朗读。支持按键说话、连续对话和回复朗读识别结果可先进入编辑框也可配置为发送。识别可以使用本地 SenseVoice 或兼容接口朗读使用网络 TTS自动播报默认关闭不会安装后立即读出所有内容。rpi-server0.3.4——给自己的客户端提供会话服务。提供 TCP JSONL / JSON-RPC 接口、会话管理和运行事件订阅让其他程序可以发送任务并观察进度。它是服务集成层不是现成 GUI也不能仅凭相似命令名称默认与 CLI 内置远程模式完全互换。这些扩展可以围绕一项任务组合。例如为 Rust 项目修复一个问题先确认方案用 plan-mode 探索仓库、组织计划存在多个可选方案时通过 ask-user 请用户决定。定位并推进改动用 CodeGraph 查询调用关系、判断影响范围用 todo 跟踪具体待办。CodeGraph 需要提前建立项目索引。检查并观察结果用 lens 执行 Rust 检查再按项目要求补充测试需要追查模型请求或工具失败时接入 Langfuse。这是组合示例不是安装后自动运行的流水线。任务目标、执行权限和验证命令可以写入项目规则技能文件组织工作方法插件提供所需工具。插件需匹配平台与宿主能力并以当前用户权限运行。插件接口是扩展边界不是安全沙箱。性能优势更快启动更轻的内存占用现有基准中rpi 在启动速度、就绪内存和长会话重载上显示出明确优势。下面将启动、重载与工具循环放在一张表中数值越低越好。Pi 均为0.87.1rpi 版本按行标注不能把历史结果换标为当前安装示例中的 0.3.16。测试项目rpi 版本rpiPi--version启动至退出0.3.617.5 ms169.5 ms启动至响应get_state0.3.617.7 ms189.5 ms空会话就绪 RSS0.3.612.0 MiB91.5 MiB重载 100 条历史消息至就绪0.3.1516.9 ms194.9 ms重载 1,000 条历史消息至就绪0.3.1528.8 ms197.0 ms重载 5,000 条历史消息至就绪0.3.1581.6 ms212.5 ms5,000 条消息重载后 RSS0.3.1550.8 MiB116.8 MiB连续 20 次工具调用0.3.1563.1 ms104.9 ms连续 100 次工具调用0.3.15378.6 ms402.7 ms测试环境与方法启动基准来自 2026 年 9 月 30 日的公开记录Windows 11 build 26200、x86_64、release 构建、Node v25.9.0。双方使用独立空配置、空工作目录与离线模式计时丢弃 3 次预热取 11 次测量中位数。RSS 是进程驻留内存单独采样 3 次。会话重载与工具循环实测于 2026 年 10 月 6 日Windows 11 build 26300、Ryzen 9 7950X、Node v25.9.0。双方使用独立测试配置、无扩展和本地确定性模型端点不调用云模型。表中这一组计时均丢弃 2 次预热、测 5 次报告中位数重载后 RSS 来自单独一次采样不是峰值内存。会话样本采用双方各自的原生 JSONL 格式逻辑文本相同用户与助手交替发言每条约 1,000 个字符。每次启动前恢复原始样本操作系统文件缓存未清空就绪以响应get_state为准随后发出请求核对模型收到的消息数量和尾部标记。这里测的是已完成会话的重新加载不含 TUI 渲染、压缩组合与执行中断后的恢复。工具循环在表中列出 20 和 100 次调用两种规模每次读取同一份 208 字节文件核对结果成功及模型请求次数分别对应 21 和 101 次模型请求。计时从提交任务到各自的运行结束通知不含 CLI 启动。这张表可以得出几项具体结论启动与内存优势明确。公开基准中Pi 的版本命令启动、RPC 就绪耗时分别约为 rpi 的 9.7 倍、10.7 倍rpi 就绪 RSS 低约 87%。长会话重载更快、占用更低。三个文本会话规模下rpi 重载耗时均更短5,000 条消息时Pi 重载耗时约为 rpi 的 2.6 倍rpi 就绪 RSS 不到 Pi 的一半。20/100 次工具循环。20 次调用时 rpi 耗时少约 40%100 次调用结果接近暂不判定稳定领先。工具循环每一轮请求都会携带累积的对话和工具结果后面的请求处理的历史更多。总耗时还包含模拟模型服务、RPC 事件消费和会话运行开销并不是一次小文件读取耗时乘以调用次数。目前未拆分各环节耗时差距原因尚未定位测试也未包含真实模型生成、项目编译和测试因此不预测真实编码任务的完成速度。基准原文、原始数据与复现脚本展开查看公开启动基准https://github.com/bigfish1913/pi-rust/blob/d73d4c79b6a399c375827b5df812e235c3a3c9ae/docs/performance/benchmark-vs-pi.md会话重载及 20/100 次循环https://blog.laofu.online/benchmarks/rpi-pi-runtime-20261006.json复现脚本https://blog.laofu.online/benchmarks/bench-rpi-pi-runtime.py已经在用 Pi值得换吗如果现有 Pi 工作流已经满足需求没有必要仅为更换实现语言而迁移。如果你正在用 Rust 开发产品希望直接接管工具、运行事件和会话状态或者编写原生扩展rpi 提供了另一条集成路径。它的特点是Rust 库、CLI 和扩展共享一套核心而不是承诺模型回答会更聪明。选择这条路径也需要管理模型凭据、执行权限、插件依赖和错误处理。rpi 提供运行机制具体工作流仍由你决定。开始使用与参与通过 Cargo 安装cargo install rpi-cli --version 0.3.16安装后按使用文档配置模型凭据再运行rpi。不想从源码编译也可以下载预编译 CLI。使用文档https://rpi.laofu.online/docs.html预编译发行https://github.com/bigfish1913/pi-rust/releases需要扩展时再逐个安装例如rpi install rpi-todo --version 0.2.1扩展会在本机编译需要相应构建环境。开发自己的扩展时可以通过rpi dev编译、监听和热重载再逐步加入工具或命令。如果你想先了解 SDK不必立即配置真实模型。运行仓库的最小示例git clone https://github.com/bigfish1913/pi-rust.git cd pi-rust cargo run -p minimal它使用 faux Provider 返回固定文本展示消息和运行结束事件不需要模型密钥。先跑通这条路径再接入真实模型和文件工具更容易区分控制流程问题与模型服务问题。欢迎试用也欢迎从一个具体工具、模型接入或扩展开始贡献。遇到问题时请附上版本和复现步骤帮助我们定位。官网与文档https://rpi.laofu.online/核心仓库https://github.com/bigfish1913/pi-rust扩展仓库https://github.com/pi-rust/rpi-package软件包目录https://rpi.laofu.online/packages.html个人博客https://blog.laofu.online/
延伸阅读

更多相关文章

2026/10/8 12:55:47

拯救者花屏报43错误别急着换主板:先软后硬排查指南

1. 拯救者花屏报43错误,为什么我第一反应不是换主板拯救者系列游戏本用久了,花屏和显卡报43错误算是比较典型的一类故障。很多人一看到屏幕出现彩色条纹、画面撕裂,或者设备管理器里显卡旁边挂个黄色感叹号、属性里写着“该设备有问题&#x…

2026/10/8 12:55:47

从自然语言到三维模型:text-to-cad 技术路线与工程实践实战

text-to-cad 这个词,翻译过来就是“文本转 CAD”。我第一次听到时,第一反应是“这又要画大饼了吧”。后来真的在电脑前跑了几轮,看着一句普通得不能再普通的需求变成一个带孔、带圆角、能导出的 STEP 文件,我还真在原地愣了几秒。…

2026/10/8 12:55:47

工业互联网与DCS:分层协作而非替代,边缘计算成关键交接区

工业互联网和传统工控的关系,这几年在圈子里被讨论得非常多,尤其是每次行业展会或者技术交流会,总有人抛出那个经典问题:工业互联网会不会把DCS干掉?问这话的人,有做IT出身转行到工业领域的,也有…

2026/10/8 14:00:56

网络协议栈底层原理:从CPU流水线到物理链路全解析

简介:本资源是一份面向计算机等级考试三级网络技术考生及网络基础学习者的系统性知识点精要总结,聚焦核心概念梳理与应试关键点提炼。内容覆盖计算机发展史、四大特性、性能指标(MIPS/MFLOPS、MTBF/MTTR、寻道/等待时间等)、软硬件…

2026/10/8 14:00:56

TortoiseGit连接被拒?从TCP握手到SSH配置的排查指南

用 TortoiseGit 拉代码或推代码的时候,弹出一个红色报错框:“Network error: Connection refused”。这个场景我见过太多次了,说真的,第一次遇到时我也懵过——感觉网络明明是通的,浏览器也能打开网页,怎么…

2026/10/8 14:00:56

FlashInfer 提交 PR 前的自审指南:从 diff 到可辩护的代码评审

大模型深度学习算子库后端高性能计算 【免费下载链接】flashinfer FlashInfer: Kernel Library for LLM Serving 项目地址: https://gitcode.com/gh_mirrors/fl/flashinfer 点击查看 免费下载 本篇指南面向 FlashInfer 内核库的贡献者与 AI 辅助开发流程&#xff0…

2026/10/8 14:00:56

AppCode停更背后:JetBrains生态、Rider与Xcode迁移指南

2024年下半年,JetBrains官方博客放出一则消息:停止开发并停止销售AppCode。对只写后端、Web的开发者来说,这个名字可能有点陌生,长期用IntelliJ IDEA的人也只是偶尔在官网产品列表里瞥到过它。但对Objective-C、Swift开发者来说&a…

2026/10/8 14:00:56

用COM ATL开发Windows任务栏右键菜单扩展

简介:这是一套面向Windows开发者的COM外壳扩展项目源码,基于ATL实现任务栏右键菜单自定义菜单项并显示图标。资源共30个文件,主要包含C/C源代码(.cpp/.h)、COM接口定义与注册脚本(.idl/.rgs/.def&#xff0…

2026/10/8 13:55:55

医药管理系统源码拆包:从class反编译到MySQL落库的完整链路

简介:这是一套基于Java Web技术栈的医药管理系统源码,面向计算机专业学生、课程设计开发者及需要练手SSM/JSP项目的初学者,可帮助快速搭建药品进销存管理场景。系统覆盖药品添加与查看、高级查询、库存管理、类别维护与统计、购买药品、销售管…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑