项目文件夹

文件
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

106 行
5.9 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/earendil-works/pi) · [上游 README](https://github.com/earendil-works/pi/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
<p align="center">
<a href="https://pi.dev">
<img alt="pi logo" src="https://pi.dev/logo-auto.svg" width="128">
</a>
</p>
<p align="center">
<a href="https://discord.com/invite/3cU7Bz4UPx"><img alt="Discord" src="https://img.shields.io/badge/discord-community-5865F2?style=flat-square&logo=discord&logoColor=white" /></a>
<a href="https://www.npmjs.com/package/@earendil-works/pi-coding-agent"><img alt="npm" src="https://img.shields.io/npm/v/@earendil-works/pi-coding-agent?style=flat-square" /></a>
</p>
> 默认情况下,新贡献者提交的新 issue 和 PR 会自动关闭。维护者会每日审查被自动关闭的 issue。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
# Pi Agent Harness
这是 Pi agent harness 项目的主仓库,其中包含我们的可自扩展编码 agent。
* **[@earendil-works/pi-coding-agent](packages/coding-agent)**:交互式编码 agent CLI
* **[@earendil-works/pi-agent-core](packages/agent)**:支持工具调用与状态管理的 Agent 运行时
* **[@earendil-works/pi-ai](packages/ai)**:统一的多提供商 LLM APIOpenAI、Anthropic、Google 等)
了解更多关于 Pi 的信息:
* [访问 pi.dev](https://pi.dev), 项目官网,含演示 demo
* [阅读文档](https://pi.dev/docs/latest), 你也可以让 agent 自行讲解
## 所有软件包
| 软件包 | 说明 |
|---------|-------------|
| **[@earendil-works/pi-ai](packages/ai)** | 统一的多提供商 LLM APIOpenAI、Anthropic、Google 等) |
| **[@earendil-works/pi-agent-core](packages/agent)** | 支持工具调用与状态管理的 Agent 运行时 |
| **[@earendil-works/pi-coding-agent](packages/coding-agent)** | 交互式编码 agent CLI |
| **[@earendil-works/pi-tui](packages/tui)** | 支持差分渲染的终端 UI 库 |
有关 Slack/聊天自动化与工作流,请参阅 [earendil-works/pi-chat](https://github.com/earendil-works/pi-chat).
## 权限与容器化
Pi 不包含用于限制文件系统、进程、网络或凭证访问的内置权限系统。默认情况下,它以启动它的用户和进程的权限运行。
若需要更强的隔离边界,请对 Pi 进行容器化或沙箱化。有关三种模式,请参阅 [packages/coding-agent/docs/containerization.md](packages/coding-agent/docs/containerization.md)
- **Gondolin extension**:将 `pi` 和提供商认证保留在宿主机上,同时将内置工具和 `!` 命令路由到本地 Linux 微型虚拟机中。
- **Plain Docker**:在本地容器中运行整个 `pi` 进程,以实现简单隔离。
- **OpenShell**:在策略控制的沙箱中运行整个 `pi` 进程。
## 贡献
贡献指南请参阅 [CONTRIBUTING.md](CONTRIBUTING.md),项目特定规则(适用于人类与 agent)请参阅 [AGENTS.md](AGENTS.md)。Pi 的更长期计划也可在 [RFCs](https://rfc.earendil.com/keyword/pi/).
## 开发
```bash
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=true``min-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 上的这篇帖子](https://x.com/badlogicgames/status/2037811643774652911).
要发布会话,请使用 [`badlogic/pi-share-hf`](https://github.com/badlogic/pi-share-hf). 阅读其 README.md 了解设置说明。你只需要 Hugging Face 账户、Hugging Face CLI 以及 `pi-share-hf`
你也可以观看 [这段视频](https://x.com/badlogicgames/status/2041151967695634619), 其中展示了我如何发布我的 `pi-mono` 会话。
我会定期在此发布自己的 `pi-mono` 工作会话:
- [Hugging Face 上的 badlogicgames/pi-mono](https://huggingface.co/datasets/badlogicgames/pi-mono)
## 许可证
MIT
<p align="center">
<a href="https://pi.dev">pi.dev</a> 域名由以下方慷慨捐赠
<br /><br />
<a href="https://exe.dev"><img src="packages/coding-agent/docs/images/exy.png" alt="Exy mascot" width="48" /><br />exe.dev</a>
</p>