核心包

最后更新:2026-10-10

Pi 以 npm workspaces 单仓组织,包含四个核心包。可按需取用,也可整体安装。它们与总体架构的三层一一对应:pi-ai 落在核心循环/模型接入,pi-agent-core 横跨运行层与核心循环,pi-coding-agent 与 pi-tui 同属交互层。

包总览

包职责所在层
@earendil-works/pi-ai统一多供应商 LLM API核心循环 / 模型接入
@earendil-works/pi-agent-core代理运行时(工具调用、状态管理)运行层 + 核心循环
@earendil-works/pi-coding-agent交互式编码代理 CLI交互层
@earendil-works/pi-tui带差分渲染的终端 UI 库交互层

pi-ai · 统一 LLM 接入

屏蔽 OpenAI、Anthropic、Google、Amazon Bedrock、Google Vertex、GitHub Copilot 等供应商的差异,提供统一的流式接口、工具调用协议与供应商工厂。换模型时只需改配置,不用改业务代码。一个最小用法示意:

import { streamSimple, openAI } from "@earendil-works/pi-ai";

const model = openAI({ model: "gpt-4o" });
for await (const ev of streamSimple(model, context)) {
  // ev 可能是 message_update 或 toolCall
}

业务代码只依赖 streamSimple 这类抽象,因此供应商差异被收敛在包内部。支持的供应商与配置方式见模型供应商。

pi-agent-core · 代理运行时

Pi 的心脏。内置:

这些能力正是核心概念里「工具回写」「会话树」「上下文压缩」的代码落点。围绕它,Pi 才具备「可自我扩展」的运行时基础。

pi-coding-agent · 编码代理 CLI

面向开发者的交互式命令行工具。进入仓库后即可让它阅读代码、修改文件、执行命令并自我纠错,是终端里的结对程序员。它建立在 pi-agent-core 之上,通过 pi-tui 渲染界面。本地运行与沙箱配置见运行与调试。

pi-tui · 终端 UI 库

提供带差分渲染能力的终端界面:长会话、长输出也只重绘变化的部分,体验接近原生应用。编码代理与调试界面都建立在它之上。它只关心「怎么画」,不关心「模型是谁」,因此可以在不触动内核的情况下单独演进。

外部集成

除了核心包,生态中还有 pi-chat(Slack / 聊天自动化)、pi-share-hf(把编码会话发布到 Hugging Face)等扩展。Pi 默认没有内置权限系统,需用容器化 / 沙箱加强边界(见 运行与调试)。想从最小依赖理解这套结构,可参考教学版与快速上手。

相关阅读

常见问题(FAQ)

Pi 由哪些 npm 包组成?

Pi 以 npm workspaces 单仓组织,包含四个核心包:pi-ai(统一多供应商 LLM API)、pi-agent-core(代理运行时)、pi-coding-agent(交互式编码 CLI)、pi-tui(带差分渲染的终端 UI 库)。它们按总体架构的三层分工。

pi-agent-core 为什么是核心?

因为它承载代理运行时:工具注册、参数校验与结果回写,会话状态机(JSONL 树/分支/断点续跑),以及上下文构建与压缩。核心循环与运行层的关键逻辑都落在它身上。

我只想改终端界面,需要动 pi-agent-core 吗?

通常不需要。终端界面建立在 pi-tui 之上,pi-coding-agent 负责交互式 CLI;二者都属于交互层。只要接口不变,改 UI 不会触碰运行层与核心循环。

pi-ai 支持哪些模型供应商?

pi-ai 统一接入 OpenAI、Anthropic、Google、Amazon Bedrock、Google Vertex、GitHub Copilot 等,并提供供应商工厂与流式、工具调用协议。最新列表见模型供应商一篇。

这些包必须一起安装吗?

不必。它们按 npm workspaces 单仓组织,可按需取用:可以只引入 pi-ai 做模型接入,也可以整体安装获得完整编码代理。具体依赖关系见各包文档与上游仓库。

微信群二维码

扫码加入
Pi Agent 微信交流群

💬