senpi
基于 pi-mono 的观点化分叉,为编码智能体运行时加入意图门、动态提示、压缩管线与权限系统等内置扩展,并保持轻量。
权限系统提供规则、JSONL 存储与 TUI 交互确认(含非交互回退),README 还警示了通配放行的风险,属加分项;扣分点:SECURITY.md 明确声明无沙箱、提示注入不可防护,敏感数据处理仅有信任边界说明而无具体密钥管理证据,回滚机制只见于发布流水线(草稿删除、source_ref 恢复),用户侧会话/文件回滚缺乏证据。
测试文件详尽覆盖空响应恢复、流启动超时、thinking 计时等边界,错误消息会点名可调设置(如 retry.provider.streamStartTimeoutMs),一致性好;扣分点:依赖可用性仅见锁文件与 pinned-deps 检查脚本,静态审查无法验证实际安装与 CI 通过情况。
README 明确目标用户(Dori 运行时、从 OMO 迁移者)并逐项列出'无对应实现'的功能(Discipline Agents、Team Mode 等),能力边界清晰;扣分点:环境要求(Node>=24、bun)陈述了但跨平台矩阵仅在 CI 侧可见,触发精度(intent gate 实际行为)仅有描述无源码佐证。
文档架构出色:包表、内置扩展注册顺序表、changes.md 跟踪、changelog gate 工作流强制 PR 记录变更、版本脚本齐全、LICENSE 同时保留上游与 fork 版权;扣分点:维护责任集中于单一 experimental fork('don't bet a production pipeline on it'),命名上 pi/senpi 混用(二进制资产仍叫 pi-*)带来一定混乱,示例多为安装命令而非使用示例。
定位清晰('lighter OMO on pi'),webfetch 有界、bash 超时、压缩管线等扩展有实际价值;扣分点:输出可用性与成本收益均依赖上游 pi-mono 未在本次证据中提供的质量,且实验性定位削弱了对生产成本的论证。
README 声称'已对照 git diff 与所有 changes.md 验证'但本次仅提供部分文件,许多主张(各扩展行为、OMO 对照)无法在给定证据中复核;测试与 SECURITY.md 之间无相互矛盾,事实与推断总体分离尚可;扣分点:大量外部仓库(pi-lsp-client 等)被引用但未提供,跨源印证几乎不可能。
- SECURITY.md 明确声明编码代理运行在用户账户权限内且无沙箱——请自行用容器/虚拟机隔离。
- README 提供的通配符 allow 设置会关闭所有工具交互确认,仅应在完全可信的工作区使用。
- 项目自述为实验性 fork,明确不建议用于生产流水线。
- 提示注入被声明为不可防护且超出安全范围,处理不可信仓库内容时需额外谨慎。
- npm 包归属 @earendil-works scope 而仓库/品牌为 senpi,安装时请核对包名与来源。
这个 Agent 能做什么,适合哪些场景?
senpi 是 badlogic/pi-mono 的 TypeScript 单仓分叉,由 code-yeongyu 维护,定位为“更理智的 pi”,同时是 Sisyphus Labs 的 AI 助手 Dori 底层的编码智能体运行时。它继承 pi 的扩展优先设计:核心保持最小,所有功能以 18 个内置扩展形式落地,如 permission-system、compaction、dynamic-prompt、prompt-preset、todowrite、gpt-apply-patch、bash-timeout、websearch/webfetch、goal、rules 等。仓库包含 @earendil-works/pi-ai(多提供商 LLM API)、pi-agent-core(智能体运行时)、pi-tui(差分渲染终端 UI)以及 senpi CLI 本体。它还吸收了 OMO 的核心思想(意图门、todo 强制继续、按模型预设),但以单个 CLI 二进制交付,明显轻于 OMO。项目处于实验阶段,README 明确警告不要用于生产管线,上游修改通过 changes.md 文件追踪以便定期 rebase。
senpi 以交互式 CLI/TUI 方式运行编码智能体:读取项目规则文件(AGENTS.md、CLAUDE.md、嵌套 AGENTS.md),构建动态系统提示(身份 → 强制意图门 → 任务纪律 → 验证层级 → 按模型预设),调用统一的多提供商 LLM API(OpenAI、Anthropic、Google 等)执行工具调用。工具侧提供 bash(带超时策略)、文件编辑(GPT 模型下切换为 Codex 风格 apply_patch)、todowrite/todoread、websearch、webfetch、goal 追踪等;会话侧执行自适应 compaction(推测性 + 紧急压缩、恢复追踪器、工具结果截断)和 tool-pair-guard 孤儿 tool_result 清理。扩展可用 senpi install git:github.com/code-yeongyu/pi-ast-grep 等命令安装 LSP、AST-Grep、comment-checker 等独立包。权限系统以 JSONL 存储规则并在 TUI 中弹出交互提示,可通过 ~/.senpi/agent/settings. 中的通配符 allow 规则全放行。
- 从 OMO 迁移的开发者,想要保留意图门、todo 继续循环、按模型提示预设等核心机制,但只需要一个轻量单二进制 CLI 而非 opencode 插件。
- 希望在多提供商(OpenAI、Anthropic、Google)之间切换模型的工程师,利用 pi-ai 统一 API 和 prompt-preset 按模型家族调优提示。
- 需要对工具调用设置允许/拒绝规则、审计 JSONL 权限记录的团队,使用 permission-system 内置扩展。
- 长时间运行编码任务、担心上下文溢出的用户,依赖 compaction 管线与 tool-pair-guard 保证会话稳定。
- 需要 LSP 诊断、AST 级搜索替换、注释质量检查等深度代码能力的开发者,通过
senpi install加装 pi-lsp-client、pi-ast-grep、pi-comment-checker。 - 信任工作区、想完全自动化的用户,在 settings. 写入
{"permission":{"*":"allow"}}复现 OMO 式全放行。
这个 Agent 有哪些优点和局限?
- 扩展优先架构:18 个内置扩展开箱即用,不想要的可通过
disabledBuiltinExtensions一个开关关闭,核心保持最小、易随上游 rebase。 - 多提供商支持:pi-ai 统一 OpenAI、Anthropic、Google API,prompt-preset 为 GPT-5.x、Claude Opus 4.x、Kimi K2.6 提供按模型预设,gpt-apply-patch 为 GPT 家族换上 Codex 风格补丁工具。
- 上下文可靠性工程:compaction 管线(自适应阈值、恢复追踪器、紧急压缩)、tool-pair-guard、bash-timeout 等直接解决长会话智能体的真实失败模式。
- 供应链加固明确:直接依赖锁定精确版本、.npmrc 设置 save-exact 与 min-release-age、CI 运行 npm audit 与签名校验。
- README 明确标注“实验性”,警告不要将生产管线押在其上;它只反映 Dori 这一个 AI 助手的需求。
- OMO 的多个能力无对应实现:Discipline Agents、Team Mode、Skill 系统、Hashline、Ralph Loop、/init-deep 等均缺失,重度 OMO 用户迁移需权衡。
- 无内置容器隔离边界:默认以启动用户权限运行文件系统、进程、网络与凭据,需要自行按文档使用 OpenShell、Gondolin 微 VM 或 Docker 容器化。
- 作为分叉需定期 rebase 上游 pi-mono,且官方文档要求配合 changes.md 维护;安装与使用文档以开发者视角为主,最终用户的单条安装命令未明示。
如何安装或部署这个 Agent?
npm 发布名为 @code-yeongyu/senpi,可执行文件为 senpi。开发方式:npm install --ignore-scripts 或 bun install --ignore-scripts,随后 bun run build 构建、bun run test 测试、bun run publish 发布。运行时需要 shell、网络访问 LLM 提供商 API(需 API 密钥)。配置存放于 ~/.senpi/agent/(全局)和项目根的 .senpi/。README 未给出面向最终用户的单条 npm 安装命令,安装 npm 包 @code-yeongyu/senpi 的确切命令需用户自行确认。
如何使用这个 Agent?
安装后运行 senpi 进入交互式 CLI/TUI 会话。按需在 ~/.senpi/agent/settings. 配置权限(如通配符 allow)、disabledBuiltinExtensions、favoriteModels、openai.serviceTier 等。安装扩展:senpi install git:github.com/code-yeongyu/pi-lsp-client、senpi install git:github.com/code-yeongyu/pi-ast-grep、senpi install git:github.com/code-yeongyu/pi-comment-checker。更新:senpi update senpi(查询 code-yeongyu/senpi 的 release)。常用命令:/rules、/reload-rules、/history、/diff、/files、/tui、/lsp(需 pi-lsp-client)。