rpi 这些扩展到底怎么选?一张工具地图看懂 16 个 Rust 插件
内容提要
RPI 提供一批原生 Rust 扩展,可按场景选装:任务规划(plan-mode、goal、todo、ask-user)、代码理解(codegraph、lens、subagents)、外部服务(websearch、webfetch、mcp-adapter、server)、观测安全(run-stats、langfuse、permissions)、交互入口(im-message、voice)。各扩展独立加载,安装后需配置外部依赖。
延伸解读
扩展独立加载,选型需按需组合
rpi 的扩展不是预连流水线,每个包独立加载,由宿主决定是否调用或组合。这意味着安装多个扩展不会自动形成工作流,需要根据任务手动配置。例如,rpi-permissions 只提供策略判定,宿主必须在工具执行前接入检查;rpi-subagents 生成委派描述,但当前版本不自动启动子 Agent。选型时应从具体场景出发,避免盲目安装全部扩展。
任务规划扩展:明确边界,避免误用
rpi-plan-mode 将探索与执行分离,适合需要先阅读多模块或比较方案的改动,但它不替代实现。rpi-goal 记录持续目标,状态保存在 .rpi/goals.json,支持开始、暂停等操作;rpi-todo 管理会话内待办,不提供项目级 backlog。两者不应互相替代:goal 是阶段目标,todo 是具体动作。rpi-ask-user 依赖交互式 UI,无界面宿主会报错,不适合自动化输入。
代码理解与检查:减少上下文负担
rpi-codegraph 连接本地 SQLite 索引,提供符号搜索、调用关系查询等,使用前需安装 CodeGraph CLI 并初始化项目。它回答“谁调用这个符号”或“改动影响哪里”,而非替代 read、grep。rpi-lens 只允许四类检查(git diff --check、cargo check、cargo fmt --check、cargo clippy),每条命令超时 120 秒,输出有限。它适合快速体检,但不能代替单元测试和发布检查。
外部服务与观测:独立入口,配置先行
rpi-websearch 和 rpi-webfetch 可组合使用:搜索找线索,抓取读原文,但搜索摘要不等同事实证据。rpi-mcp-adapter 通过 mcp_list 和 mcp_call 接入 MCP 服务,需配置 .rpi/mcp.json。rpi-run-stats 在 TUI 显示运行指标,依赖宿主声明式接口;rpi-langfuse 将任务转为 trace,需配置 Langfuse 地址和凭据。这些扩展安装后均需额外配置,且不自动保证正确性。
Q&A
rpi 的扩展是怎么加载和工作的?
每个扩展都是独立的包,由 rpi 宿主按需加载。是否安装、是否调用、是否组合都由具体任务和宿主逻辑决定,扩展之间没有预先连好的流水线。
rpi-plan-mode 和 rpi-goal 有什么区别?
rpi-plan-mode 把探索和执行分开,提供 /plan 命令,进入计划模式后工具收紧为只读探索,计划确认后恢复;rpi-goal 记录持续目标,状态保存在 .rpi/goals.json,支持开始、更新、暂停、恢复、完成和归档。
rpi-codegraph 能做什么?使用前需要什么准备?
rpi-codegraph 连接本地 CodeGraph SQLite 索引,提供符号搜索、查看符号或源文件、查询调用者和被调用者、影响面分析、按文件组织源码、查看索引文件树和索引状态等查询。使用前需安装外部 CodeGraph CLI 并在项目中执行初始化。
rpi-websearch 和 rpi-webfetch 应该怎么配合使用?
rpi-websearch 负责搜索公开资料,返回标题、URL、摘要等;rpi-webfetch 负责获取公开 HTTP(S) 页面并返回可读文本。两者最好组合使用:搜索找到候选来源,抓取读取原文,搜索摘要不能自动等价于事实证据。
rpi-permissions 能实现完整的权限隔离吗?
不能。rpi-permissions 只提供策略判定,读取项目级或全局权限配置,支持 check、grant、revoke 和 list,拒绝规则优先。宿主仍需要在 before_tool_call 钩子中执行这个判断,安装插件本身不等于系统级权限隔离。
如何安装 rpi 扩展?安装后还需要做什么?
使用 rpi install 按包名安装,例如 rpi install rpi-todo,需要固定版本时加 --version。安装后重启 rpi,再确认对应的工具或命令是否已注册。不同扩展还有额外前置条件,如 CodeGraph 需建立索引、MCP 需配置服务、Langfuse 需端点和凭据等。
rpi-run-stats 和 rpi-langfuse 分别用来观测什么?
rpi-run-stats 在 TUI 右上角显示当前运行指标,如轮次、输出 TPS、TTFT、token 数和成本等;rpi-langfuse 把 Agent 生命周期转换成 Langfuse 中的 trace 和 observation,记录 session、模型请求与响应、工具调用等,用于追踪任务动作。
rpi-voice 扩展有哪些功能?启用本地 STT 有什么要求?
rpi-voice 为 TUI 增加语音能力,支持 /voice 录音转写、/voice ptt 按住说话、/voice auto 连续对话、自动 TTS 朗读、Markdown 感知和 pet 模式。默认 STT 引擎是本地 SenseVoice,启用本地 STT 构建需要额外的 C++、cmake 和 libclang 环境,模型文件约 240 MB。