开发与工程 coding-agentllm-apiterminal-uitool-callingmulti-providertypescript

Pi Agent Harness

统一的LLM API、代理运行时和交互式编码代理CLI,支持多种模型提供商,助力开发者在终端中完成编码任务。

FollowAgents 评估 · FARS-2.1
不推荐
42/ 100 五分制 2.1 / 5
1 2 3 4 5 6
1信任安全4 / 29 · 0.7/5

证据显示:README明确说明Pi没有内置权限系统,默认以启动用户权限运行,并建议容器化或沙箱化。这体现了对权限边界的诚实披露,但未提供任何最小权限机制或用户确认流程。数据流透明度方面,README提到遥测包,但未详细说明数据流向。敏感数据处理未提及。依赖安全方面,README详细描述了供应链加固措施,如精确版本锁定、npm audit、shrinkwrap等,证据充分。外部影响方面,未提及任何外部副作用或网络行为。回滚方面,未提及任何回滚机制。来源归属方面,README和LICENSE提供了作者信息,但发布者未经验证。因此,除依赖安全外,多数标准得分较低。

2可靠稳定8 / 14 · 2.9/5

证据显示:测试文件(agent-loop.test.ts, agent.test.ts, e2e.test.ts)展示了丰富的单元测试和集成测试,覆盖了代理循环、工具调用、错误处理等,表明内部一致性较好。依赖可用性方面,README提到使用npm和Bun,但未提供离线安装的详细说明,仅提到build:offline。失败消息方面,测试中验证了错误消息的生成,如'provider exploded',表明有明确的错误处理。但未提供运行时故障的详细文档。

3适用触发10 / 18 · 2.8/5

证据显示:README描述了多个使用场景,如编码代理CLI、统一LLM API、TUI等,并提供了容器化模式(Gondolin、Docker、OpenShell),表明对多种环境有考虑。能力边界方面,README明确说明没有内置权限系统,并建议沙箱化,这定义了边界。触发精度方面,未详细说明工具调用的触发条件,但测试中展示了工具调用的精确处理。环境适配方面,支持多种平台(darwin, linux, windows)和多种LLM提供商,表明适配性较好。

4规范维护10 / 18 · 2.8/5

证据显示:README提供了清晰的信息架构,列出了所有包及其描述。安装说明详细,包括npm install、构建、测试等。命名稳定性方面,包名以@earendil-works/为前缀,但未提供命名约定文档。示例和FAQ方面,README提供了使用示例和链接到文档,但未提供FAQ。已知限制方面,README和SECURITY.md明确说明了安全边界和限制。许可证为MIT,清晰。版本控制方面,package.json有版本号,但未提供CHANGELOG。维护责任方面,README提供了贡献指南和联系方式,表明有维护者。

5有效结果7 / 13 · 2.7/5

证据显示:输出可用性方面,代理产生结构化消息和事件,测试验证了输出格式。边际价值方面,提供了统一LLM API和代理框架,可能减少集成成本。成本效益方面,未提供性能或成本数据,但开源MIT许可证降低了成本。

6证据核验3 / 8 · 1.9/5

证据显示:README中的声明(如供应链加固)有具体实现(如check脚本)支持,但未提供独立验证。跨来源佐证方面,测试文件提供了内部验证,但未与外部来源交叉验证。事实与推断分离方面,README区分了事实(如功能描述)和推断(如建议),但未明确标注。

证据充分度: 评估于 2026年8月9日 审查版本 936aff00918d
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:最小权限约束、执行前用户确认、数据流向说明、敏感信息处理、外部影响披露、回滚或恢复路径
使用前请注意
  • Pi没有内置权限系统,默认以用户权限运行,存在安全风险,必须沙箱化。
  • 发布者身份未经验证,需谨慎评估供应链风险。
  • 未提供回滚机制,操作可能不可逆。
  • 数据流透明度不足,遥测数据的具体流向未说明。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Pi 是一个AI代理工具集,由多个npm包组成:@earendil-works/pi-coding-agent 提供交互式编码代理CLI,@earendil-works/pi-agent-core 提供代理运行时,支持工具调用和状态管理,@earendil-works/pi-ai 提供统一的多种LLM API(OpenAI、Anthropic、Google等)。此外还有@earendil-works/pi-tui(终端UI库)和@earendil-works/pi-telemetry(遥测契约)。Pi 默认不包含权限系统,以启动用户的权限运行,可通过容器化或沙箱增强隔离。项目采用MIT许可证,强调供应链安全,包括锁定直接依赖、shrinkwrap和审计检查。

Pi 执行端到端的编码代理工作流:通过pi-ai包统一接入OpenAI、Anthropic、Google等LLM API,pi-agent-core提供带有工具调用和状态管理的代理循环,pi-coding-agent在终端中提供交互式CLI(如pi命令),并支持!命令。Pi TUI库提供差分渲染的终端界面。用户可运行./test.sh等脚本进行开发和测试,也可使用./scripts/build-binaries.sh构建独立二进制。它还支持通过容器化(Gondolin扩展、Docker、OpenShell)来隔离权限。

  1. 开发者需要在终端中与多种LLM交互,使用pi-coding-agent进行交互式编码辅助,避免切换多个API客户端。
  2. 大型代码库维护者希望让代理自动进行工具调用和状态管理,pi-agent-core提供了可嵌入的代理运行时。
  3. 需要统一访问多个LLM提供商(OpenAI、Anthropic、Google)的开发者,pi-ai提供了统一的TypeScript API。
  4. 终端应用开发者希望快速构建具有差分渲染的TUI,pi-tui作为库可直接使用。
  5. 对安全性要求高的团队,需在受限环境中运行代理,参考容器化文档以采用微VM、Docker或OpenShell沙箱模式。
  6. 开源贡献者希望分享编码代理会话数据,通过pi-share-hf工具将会话发布到Hugging Face数据集,以改进代理。

这个 Agent 有哪些优点和局限?

优点
  • 支持多种LLM提供商(OpenAI、Anthropic、Google等),通过统一的API降低切换成本。
  • 提供完整的代理运行时(pi-agent-core),支持工具调用和状态管理,便于构建复杂代理。
  • 交互式编码代理CLI(pi-coding-agent)开箱即用,适合日常编码任务。
  • 供应链安全措施完善,包括锁定精确版本、shrinkwrap和npm审计。
  • 提供容器化模式(Gondolin、Docker、OpenShell)以增强安全性。
局限
  • 默认无权限系统,需用户自行容器化或沙箱,增加了部署复杂性。
  • 对LLM API的依赖(如OpenAI、Anthropic)可能产生费用和网络要求。
  • 工具集由多个npm包组成,初学者可能需要学习多包架构。
  • 构建独立二进制需要运行构建脚本,可能耗时且需网络。
  • 新贡献者的issue和PR默认自动关闭,可能影响社区参与。

如何安装或部署这个 Agent?

安装Pi的编码代理CLI:

npm install -g @earendil-works/pi-coding-agent

或者使用Bun:

bun install --global @earendil-works/pi-coding-agent

需要Node.js和Bun运行时。配置LLM提供商API密钥(如OpenAI、Anthropic或Google)。

如何使用这个 Agent?

运行交互式编码代理CLI:

pi

或者从源码运行:

./pi-test.sh

开发流程:

npm install --ignore-scripts
npm run build
npm run check
./test.sh

构建独立二进制(以linux-x64为例):

VERSION="<release-version>"
tar -xzf "pi-${VERSION}-source.tar.gz"
cd "pi-${VERSION}"
./scripts/build-binaries.sh --offline-model-data --platform linux-x64 --out "$PWD/out"

这个 Agent 与同类方案有什么区别?

README中未明确提及其他代理工具,但作为一个多提供商LLM API和代理工具集,可类比于LangChain、Claude Code或OpenAI Codex等。然而,Pi强调自扩展性和TUI,且许可证宽松(MIT)。

常见问题

Pi的权限模型是什么?
Pi不包含内置权限系统,默认以启动用户的权限运行。如果需要在受限环境中运行,应使用容器化或沙箱模式,如Gondolin扩展、Docker或OpenShell。
Pi支持哪些LLM提供商?
通过@earendil-works/pi-ai包,Pi支持OpenAI、Anthropic、Google等提供商,提供统一的API接口。需要相应的API密钥。
Pi如何确保供应链安全?
Pi锁定了直接依赖的精确版本,使用package-lock.json作为依赖基准,npm run check验证依赖,发布时包含shrinkwrap,CI中运行npm audit。
Pi的会话数据如何分享?
使用badlogic/pi-share-hf工具,将编码代理会话发布到Hugging Face数据集,有助于改进代理。需要Hugging Face账户和CLI。
Pi可以在没有网络的环境下构建吗?
可以。使用npm run build:offline可以从现有模型数据重建,无需网络。构建二进制时,使用--offline-model-data标签。

对比同类 Agent

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

相关 Agents