Files
earendil-works--pi/README.md
T
wehub-resource-sync 0cbaf25991
CI / build-check-test (push) Has been cancelled
docs: make Chinese README the default
2026-07-13 10:02:25 +00:00

5.9 KiB
Raw Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

pi logo

Discord npm

默认情况下,新贡献者提交的新 issue 和 PR 会自动关闭。维护者会每日审查被自动关闭的 issue。请参阅 CONTRIBUTING.md

Pi Agent Harness

这是 Pi agent harness 项目的主仓库,其中包含我们的可自扩展编码 agent。

了解更多关于 Pi 的信息:

所有软件包

软件包 说明
@earendil-works/pi-ai 统一的多提供商 LLM APIOpenAI、Anthropic、Google 等)
@earendil-works/pi-agent-core 支持工具调用与状态管理的 Agent 运行时
@earendil-works/pi-coding-agent 交互式编码 agent CLI
@earendil-works/pi-tui 支持差分渲染的终端 UI 库

有关 Slack/聊天自动化与工作流,请参阅 earendil-works/pi-chat.

权限与容器化

Pi 不包含用于限制文件系统、进程、网络或凭证访问的内置权限系统。默认情况下,它以启动它的用户和进程的权限运行。

若需要更强的隔离边界,请对 Pi 进行容器化或沙箱化。有关三种模式,请参阅 packages/coding-agent/docs/containerization.md

  • Gondolin extension:将 pi 和提供商认证保留在宿主机上,同时将内置工具和 ! 命令路由到本地 Linux 微型虚拟机中。
  • Plain Docker:在本地容器中运行整个 pi 进程,以实现简单隔离。
  • OpenShell:在策略控制的沙箱中运行整个 pi 进程。

贡献

贡献指南请参阅 CONTRIBUTING.md,项目特定规则(适用于人类与 agent)请参阅 AGENTS.md。Pi 的更长期计划也可在 RFCs.

开发

npm install --ignore-scripts  # Install all dependencies without running lifecycle scripts
npm run build        # Build all packages
npm run check        # Lint, format, and type check
./test.sh            # Run tests (skips LLM-dependent tests without API keys)
./pi-test.sh         # Run pi from sources (can be run from any directory)

供应链加固

我们将 npm 依赖变更视为经审查的代码变更。

  • 直接外部依赖锁定为精确版本。内部 workspace 软件包仍使用版本范围。
  • .npmrc 会设置 save-exact=truemin-release-age=2,以避免在 npm 解析期间遇到当日发布的依赖。
  • package-lock.json 是依赖的唯一真实来源。pre-commit 会阻止意外提交 lockfile,除非设置了 PI_ALLOW_LOCKFILE_CHANGE=1
  • npm run check 会校验锁定的直接依赖、原生 TypeScript 导入兼容性以及生成的 coding-agent shrinkwrap。
  • 发布的 CLI 软件包包含 packages/coding-agent/npm-shrinkwrap.json(由根 lockfile 生成),用于为 npm 用户锁定传递依赖。
  • 发布冒烟测试使用 npm run release:local,在标记发布前于仓库外构建、打包并创建隔离的 npm 与 Bun 安装。
  • 本地发布安装、文档中的 npm 安装以及 pi update --self 在支持的情况下使用 --ignore-scripts
  • CI 使用 npm ci --ignore-scripts 安装,定时 GitHub workflow 会运行 npm audit --omit=dev 以及 npm audit signatures --omit=dev
  • Shrinkwrap 生成对依赖 lifecycle 脚本设有显式允许列表;新的 lifecycle 脚本依赖在通过审查前会导致检查失败。

分享你的开源编码 agent 会话

如果你在开源工作中使用 Pi 或其他编码 agent,请分享你的会话。

公开的开源会话数据有助于用真实世界的任务、工具使用、失败与修复来改进编码 agent,而非仅依赖玩具基准测试。

完整说明请参阅 X 上的这篇帖子.

要发布会话,请使用 badlogic/pi-share-hf. 阅读其 README.md 了解设置说明。你只需要 Hugging Face 账户、Hugging Face CLI 以及 pi-share-hf

你也可以观看 这段视频, 其中展示了我如何发布我的 pi-mono 会话。

我会定期在此发布自己的 pi-mono 工作会话:

许可证

MIT

pi.dev 域名由以下方慷慨捐赠

Exy mascot
exe.dev