Pi:面向编码 Agent 的统一 LLM 工具包

18

AI 代理工具包:统一的 LLM API、代理循环、TUI、编码代理 CLI


pi logo
新贡献者的新问题和PR默认会自动关闭。维护者每天审核自动关闭的问题。参见CONTRIBUTING.md.

Pi 代理安全带

这里是Pi代理束带项目的所在地,包括我们的自扩展编码代理。

想了解更多关于圆周率的信息:

所有套餐

包装 描述
@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工作会议见此处:

许可

其中

pi.dev该域名由


exe.dev

参与讨论