Pi:面向编码 Agent 的统一 LLM 工具包
AI 代理工具包:统一的 LLM API、代理循环、TUI、编码代理 CLI
新贡献者的新问题和PR默认会自动关闭。维护者每天审核自动关闭的问题。参见CONTRIBUTING.md.
Pi 代理安全带
这里是Pi代理束带项目的所在地,包括我们的自扩展编码代理。
- @earendil-works/pi-coding-agent: 交互式编码代理CLI
- @earendil-works/pi-agent-core: 代理运行时,具工具调用和状态管理功能
- @earendil-works/pi-ai:统一多提供者LLM API(OpenAI、Anthropic、Google等)
想了解更多关于圆周率的信息:
所有套餐
| 包装 | 描述 |
|---|---|
| @earendil作品/和弦 | 服务、复制状态、RPC和插件的独立应用组合运行时 |
| @earendil-works/pi-telemetry | 供应商中立的遥测合同、参考适配器、一致性测试和类型模式 |
| @earendil-works/pi-ai | 统一的多提供者LLM API(OpenAI、Anthropic、Google等) |
| @earendil-works/pi-agent-core | 代理运行时,包含工具调用和状态管理 |
| @earendil-works/pi-coding-agent | 交互式编码代理CLI |
| @earendil-works/pi-tui | 带有差分渲染的终端界面库 |
关于 Slack/聊天自动化和工作流程,请参见earendil-works/pi-chat.
权限与容器化
Pi 不包含内置权限系统,用于限制文件系统、进程、网络或凭证访问。默认情况下,它运行时需获得用户和启动进程的权限。
如果你需要更强的界限,可以用容器化或沙盒Pi。参见packages/coding-agent/docs/containerization.md针对三种图案:
- 刚多林延伸线:保持
pi以及在主机上进行提供者认证,同时路由内置工具和!命令输入本地Linux微虚拟机。 - 纯Docker:全开
pi在本地容器中处理,以便简单隔离。 - OpenShell:全开
pi在策略控制的沙盒中进行流程。
贡献
参见CONTRIBUTING.md用于贡献指南和AGENTS.md针对项目特定规则(包括人类和智能体)。Pi的长期计划也可在以下文件中找到RFC.
发展
npm install --ignore-scripts # Install all dependencies without running lifecycle scripts
npm run build # Refresh model data, then build all packages
npm run build:offline # Rebuild using existing model data without network access
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)
从发布源构建独立二进制文件
GitHub 发布包含一个版本化的源代码归档,涵盖于SHA256SUMS文件。解压后运行与官方独立二进制文件相同的构建脚本:
VERSION=""
tar -xzf "pi-${VERSION}-source.tar.gz"
cd "pi-${VERSION}"
./scripts/build-binaries.sh --offline-model-data --platform linux-x64 --out "$PWD/out"
该归档包含发布模型数据和原生预构建。--offline-model-data使用该模型数据而不刷新提供者目录。脚本安装依赖并用运行时资产构建可执行文件;传递--skip-install如果已经提供了依赖关系。
供应链硬化
我们把NPM依赖的变更当作已审查的代码变更。
- 直接外部依赖被钉到精确版本。内部工作区包保持版本范围。
.npmrc集合save-exact=true以及min-release-age=2以避免在NPM解决期间当天释放依赖。package-lock.json是依赖的真实信息。预提交阻止了意外的锁文件提交,除非PI_ALLOW_LOCKFILE_CHANGE=1已设定。npm run check验证固定的直接 deps、本地 TypeScript 导入兼容性以及生成的编码代理收缩封膜。- 发布的CLI包包括
packages/coding-agent/npm-shrinkwrap.json,从根锁文件生成,用于为NPM用户PIN传递DEP。 - 释放烟雾测试的使用
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. - Shrinkwrap 生成对依赖生命周期脚本有明确的允许列表;新的生命周期脚本 DEP 检查失败,直到审核。
分享你的OSS编码代理会话
如果你使用 Pi 或其他编程代理进行开源工作,请分享你的会话。
公开的开源软件会话数据帮助通过真实任务、工具使用、故障和修复来提升编码代理,而非仅仅是玩具基准。
完整解释请参见这篇帖子在X上.
要发布会话,请使用。阅读README.md用于设置说明。你只需要一个 Hugging Face 账户、Hugging Face 的 CLI,以及pi-share-hf.
你也可以观看本视频,我展示了我如何发布我的pi-mono会谈。
我经常发表自己的作品pi-mono工作会议见此处:
许可
其中