开源项目

pi

pi

AI agent工具包,集成了可交互的 coding agent CLI、统一多提供商LLM API、终端UI库、Web UI库及Slack机器人。亮点在于模块化架构,各组件可独立使用,且支持vLLM pods部署,适合快速构建定制化AI编码助手。项目采用MIT许可,今日新增444星,社区活跃。

README

pi 标志

Discord

pi.dev 域名由以下捐赠:

Exy 吉祥物
exe.dev

新贡献者的 issue 和 PR 默认会自动关闭。维护者会每天检查自动关闭的 issue。请参阅 CONTRIBUTING.md。


Pi Agent Harness 单体仓库

这是 pi agent harness 项目的所在地,包含我们的自可扩展编码 agent(智能体)。

想了解更多关于 pi 的信息:

分享你的 OSS 编码 agent 会话

如果你将 pi 或其他编码 agent 用于开源工作,请分享你的会话。

公开的 OSS 会话数据有助于用真实世界的任务、工具使用、失败和修复来改进编码 agent,而不是用玩具基准。

完整说明请参见 X 上的这篇文章。

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

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

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

所有包

包 描述
@earendil-works/pi-ai 统一的多提供商 LLM API(OpenAI、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。

贡献

请参阅 CONTRIBUTING.md 了解贡献指南,以及 AGENTS.md 了解项目特定规则(适用于人类和 agent)。

开发

npm install --ignore-scripts  # 安装所有依赖,不运行生命周期脚本
npm run build        # 构建所有包
npm run check        # 代码检查、格式检查、类型检查
./test.sh            # 运行测试(若无 API key 则跳过 LLM 相关测试)
./pi-test.sh         # 从源码运行 pi(可在任意目录执行)

供应链加固

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

  • 直接外部依赖固定到精确版本。内部工作区包保持版本范围。
  • .npmrc 设置了 save-exact=true 和 min-release-age=2,避免 npm 解析时使用同一天发布的依赖。
  • package-lock.json 是依赖的事实来源。预提交钩子会阻止意外的 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 生成有一个显式的依赖生命周期脚本白名单;新的生命周期脚本依赖在审查通过之前会失败。

许可证

MIT

开源项目earendil-works2026-05-24原文

相关内容