pi.dev 域名获赠,一文了解 Pi Agent Harness 项目开发、贡献等全方面信息
pi.dev 域名由 exe.dev 慷慨捐赠
新贡献者提交的新问题和拉取请求(PR)默认会自动关闭。维护者会每天审核自动关闭的问题,详情请参阅 `CONTRIBUTING.md`。
Pi Agent Harness 单仓库
这里是 pi agent harness 项目的主页,其中包含我们可自我扩展的编码代理。
- `@earendil-works/pi-coding-agent`:交互式编码代理命令行界面(CLI)
- `@earendil-works/pi-agent-core`:具备工具调用和状态管理功能的代理运行时
- `@earendil-works/pi-ai`:统一的多供应商大语言模型(LLM)API(支持 OpenAI、Anthropic、Google 等)
了解更多关于 pi 的信息
- 访问项目网站 pi.dev,上面有演示内容。
- 阅读文档,你也可以让代理自行解释。
- 分享你的开源编码代理会话:如果你在开源工作中使用 pi 或其他编码代理,请分享你的会话。公开的开源会话数据有助于基于实际任务、工具使用、失败情况和修复方法来改进编码代理,而不是依赖简单的基准测试。详细解释请参阅 X 上的这篇文章。若要发布会话,请使用 `badlogic/pi-share-hf`,阅读其 `README.md` 获取设置说明。你只需要一个 Hugging Face 账号、Hugging Face CLI 和 `pi-share-hf`。你还可以观看这个视频,我在其中展示了如何发布我的 `pi-mono` 会话。我会定期在 Hugging Face 的 `badlogicgames/pi-mono` 上发布自己的 `pi-mono` 工作会话。
所有包
| 包名 | 描述 |
|---|---|
| `@earendil-works/pi-ai` | 统一的多供应商 LLM API(支持 OpenAI、Anthropic、Google 等) |
| `@earendil-works/pi-agent-core` | 具备工具调用和状态管理功能的代理运行时 |
| `@earendil-works/pi-coding-agent` | 交互式编码代理 CLI |
| `@earendil-works/pi-tui` | 支持差异渲染的终端用户界面(TUI)库 |
如需进行 Slack/聊天自动化和工作流操作,请查看 `earendil-works/pi-chat`。
贡献
请参阅 `CONTRIBUTING.md` 获取贡献指南,参阅 `AGENTS.md` 获取项目特定规则(适用于人类和代理)。
开发
- `npm install --ignore-scripts`:安装所有依赖项,不运行生命周期脚本。
- `npm run build`:构建所有包。
- `npm run check`:进行代码检查、格式化和类型检查。
- `./test.sh`:运行测试(若无 API 密钥,则跳过依赖 LLM 的测试)。
- `./pi-test.sh`:从源代码运行 pi(可在任何目录运行)。
供应链加固
我们将 npm 依赖项的更改视为经过审核的代码更改。直接外部依赖项会固定到精确版本,内部工作区包则保持版本范围。`.npmrc` 设置 `save-exact=true` 和 `min-release-age=2`,以避免在 npm 解析期间出现当日依赖项发布情况。`package-lock.json` 是依赖项的真实记录。预提交会阻止意外的锁定文件提交,除非设置 `PI_ALLOW_LOCKFILE_CHANGE=1`。`npm run check` 会验证固定的直接依赖项、原生 TypeScript 导入兼容性以及生成的编码代理收缩包装文件。发布的 CLI 包包含从根锁定文件生成的 `packages/coding-agent/npm-shrinkwrap.json`,用于为 npm 用户固定传递依赖项。发布冒烟测试使用 `npm run release:local` 在发布前进行构建、打包,并在仓库外创建隔离的 npm 和 Bun 安装。本地发布安装、文档化的 npm 安装以及 `pi update --self` 在支持的情况下使用 `--ignore-scripts`。持续集成(CI)使用 `npm ci --ignore-scripts` 进行安装,并且有一个预定的 GitHub 工作流会运行 `npm audit --omit=dev` 以及 `npm audit signatures --omit=dev`。收缩包装文件生成有一个明确的依赖项生命周期脚本白名单,新的生命周期脚本依赖项在审核前会导致检查失败。
许可证
本项目采用 MIT 许可证。
