senpi

基于 pi-mono 的观点化分叉,为编码智能体运行时加入意图门、动态提示、压缩管线与权限系统等内置扩展,并保持轻量。

Star 数
★ 489
最近更新
今天
License
MIT
主语言
TypeScript

30 秒速览

运行形态
命令行工具
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
npmBunNode.jsShell / 命令行网络访问本地文件系统
典型场景
从 OMO 迁移的开发者,想要保留意图门、todo 继续循环、按模型提示预设等核心机制,但只需要一个轻量单二进制 CLI 而非 opencode 插件。
不适合
  • 需要 OMO 的 Discipline Agents、Team Mode、技能系统或 Ralph Loop 的重度用户
  • 想把生产流水线押在它上面的团队——README 自标 Experimental
  • 需要开箱即用容器隔离的团队,默认继承启动用户的文件、网络与凭据权限

这个 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.json 中的通配符 allow 规则全放行。

  1. 从 OMO 迁移的开发者,想要保留意图门、todo 继续循环、按模型提示预设等核心机制,但只需要一个轻量单二进制 CLI 而非 opencode 插件。
  2. 希望在多提供商(OpenAI、Anthropic、Google)之间切换模型的工程师,利用 pi-ai 统一 API 和 prompt-preset 按模型家族调优提示。
  3. 需要对工具调用设置允许/拒绝规则、审计 JSONL 权限记录的团队,使用 permission-system 内置扩展。
  4. 长时间运行编码任务、担心上下文溢出的用户,依赖 compaction 管线与 tool-pair-guard 保证会话稳定。
  5. 需要 LSP 诊断、AST 级搜索替换、注释质量检查等深度代码能力的开发者,通过 senpi install 加装 pi-lsp-client、pi-ast-grep、pi-comment-checker。
  6. 信任工作区、想完全自动化的用户,在 settings.json 写入 {"permission":{"*":"allow"}} 复现 OMO 式全放行。

如何安装或部署这个 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.json 配置权限(如通配符 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)。

这个 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 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
senpi 当前 74 · 存在缺口 命令行工具免费 + 模型费 ★ 489 今天 TypeScript OpenAI API · Claude API
zot 编码代理 59 · 缺口较多 命令行工具免费 + 模型费 ★ 351 今天 Go OpenAI API · Claude API
FuXi 终端 AI 编程代理 37 · 缺口较多 命令行工具免费版 + 付费版 ★ 3.2k 4 天前 Python OpenAI API · Claude API
opencode 47 · 缺口较多 命令行工具免费 + 模型费 ★ 221k 今天 TypeScript —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
74/ 100 五分制 3.7 / 5
本评测基于 2026年9月9日 的源码;此后该项目发布了 30 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 19/29
可靠稳定 12/14
适用触发 14/18
规范维护 16/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全19 / 29 · 3.3/5

权限系统提供规则、JSONL 存储与 TUI 交互确认(含非交互回退),README 还警示了通配放行的风险,属加分项;扣分点:SECURITY.md 明确声明无沙箱、提示注入不可防护,敏感数据处理仅有信任边界说明而无具体密钥管理证据,回滚机制只见于发布流水线(草稿删除、source_ref 恢复),用户侧会话/文件回滚缺乏证据。

可靠稳定12 / 14 · 4.3/5

测试文件详尽覆盖空响应恢复、流启动超时、thinking 计时等边界,错误消息会点名可调设置(如 retry.provider.streamStartTimeoutMs),一致性好;扣分点:依赖可用性仅见锁文件与 pinned-deps 检查脚本,静态审查无法验证实际安装与 CI 通过情况。

适用触发14 / 18 · 3.9/5

README 明确目标用户(Dori 运行时、从 OMO 迁移者)并逐项列出'无对应实现'的功能(Discipline Agents、Team Mode 等),能力边界清晰;扣分点:环境要求(Node>=24、bun)陈述了但跨平台矩阵仅在 CI 侧可见,触发精度(intent gate 实际行为)仅有描述无源码佐证。

规范维护16 / 18 · 4.4/5

文档架构出色:包表、内置扩展注册顺序表、changes.md 跟踪、changelog gate 工作流强制 PR 记录变更、版本脚本齐全、LICENSE 同时保留上游与 fork 版权;扣分点:维护责任集中于单一 experimental fork('don't bet a production pipeline on it'),命名上 pi/senpi 混用(二进制资产仍叫 pi-*)带来一定混乱,示例多为安装命令而非使用示例。

有效结果9 / 13 · 3.5/5

定位清晰('lighter OMO on pi'),webfetch 有界、bash 超时、压缩管线等扩展有实际价值;扣分点:输出可用性与成本收益均依赖上游 pi-mono 未在本次证据中提供的质量,且实验性定位削弱了对生产成本的论证。

证据核验4 / 8 · 2.5/5

README 声称'已对照 git diff 与所有 changes.md 验证'但本次仅提供部分文件,许多主张(各扩展行为、OMO 对照)无法在给定证据中复核;测试与 SECURITY.md 之间无相互矛盾,事实与推断总体分离尚可;扣分点:大量外部仓库(pi-lsp-client 等)被引用但未提供,跨源印证几乎不可能。

风险与缓解建议
  • SECURITY.md 明确声明编码代理运行在用户账户权限内且无沙箱——请自行用容器/虚拟机隔离。
  • README 提供的通配符 allow 设置会关闭所有工具交互确认,仅应在完全可信的工作区使用。
  • 项目自述为实验性 fork,明确不建议用于生产流水线。
  • 提示注入被声明为不可防护且超出安全范围,处理不可信仓库内容时需额外谨慎。
  • npm 包归属 @earendil-works scope 而仓库/品牌为 senpi,安装时请核对包名与来源。
证据充分度:低 评估于 2026年9月9日 审查版本 fc2fcb39072e 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v2026.10.24-3
    发布说明摘录
    @code-yeongyu/senpi Breaking Changes Added - On macOS and Linux, a public RPC host endpoint (bare --mode rpc --listen, the host supervisor, and senpi host ensure) now publishes a fresh per-launch key record (<keyRoot>/rpc/keys/<launch_id>, a 0600 file in a 0700 directory) and proves it with an HMAC challenge-response carried in the caller's own first get_protocol_info frame; first-party clients verify the host's proof before sending any command and then prove the key themselves. This release serves an unauthenticated client with one deprecation line per connection; `SENPI …
    在 GitHub 查看 ↗
  2. v2026.10.24-2
    发布说明摘录
    @code-yeongyu/senpi Breaking Changes Added - Shared RPC hosts support live-only attach_session, one-hold release_attachment, and atomic reclaim_session. Attachments are fenced by durable session identity, and temporary releases let active turns finish ([#3795](https://github.com/code-yeongyu/senpi/issues/3795), [#3814](https://github.com/code-yeongyu/senpi/pull/3814)). …
    在 GitHub 查看 ↗
  3. v2026.10.24-1
    发布说明摘录
    @code-yeongyu/senpi Breaking Changes Added Changed - A person's turn now writes two session lifecycle records, one running record when its epoch opens and one done (or other terminal) record when it seals, instead of three or four. The session_lifecycle event for that turn arrives when its run starts rather than when the input is admitted; input into a still-open epoch is still recorded at once ([#3980](https://github.com/code-yeongyu/senpi/issues/3980)). …
    在 GitHub 查看 ↗
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents