Pi
极简、可自扩展的 AI Agent Harness 与终端编码代理。
项目概述
Pi 由多模型 API、Agent Runtime、终端 UI 和编码代理 CLI 组成,强调以小型核心、扩展、技能和包来适配个人与团队工作流。
Pi 是采用 MIT 许可证的开源 Agent Harness,核心理念是让工具适配开发者的工作流,而不是要求开发者接受一套固定流程。它的 TypeScript Monorepo 包含统一多模型 API(pi-ai)、Agent Runtime(pi-agent-core)、差分渲染终端 UI(pi-tui)和可交互的编码代理 CLI(pi-coding-agent)。编码代理默认只提供 read、write、edit 和 bash 四种工具,并把更复杂的能力交给扩展、技能、Prompt 模板、主题和 Pi Packages。Pi 既能作为终端应用使用,也支持 Print、JSON、RPC 和 SDK 等集成方式。
主要特点
Pi 用精简内核覆盖终端编码代理的关键能力,并将工作流差异留给可组合的扩展系统。
极简终端编码代理
交互模式提供流式对话、工具调用、文件编辑和 Bash 执行;默认只有四种核心工具,使基础行为更容易理解和改造。
统一多模型接口
pi-ai 为多个模型提供商提供一致的消息、流式输出和工具调用接口,并可通过 /model 或快捷键在会话中切换模型。
TypeScript 扩展系统
扩展可以订阅生命周期事件、注册工具和命令、改变按键与界面,并通过自定义逻辑控制 Agent 行为。
Skills、模板与主题
可按需加载技能说明,复用 Prompt 模板和终端主题,再通过 npm 或 Git 仓库把配置组合成可分享的 Pi Package。
树状会话历史
一次会话保存在单个 JSONL 文件中,并保留分支关系;可使用 /tree、/fork、标签、导出和分享功能探索不同方案。
可控的上下文工程
支持从目录层级加载 AGENTS.md、替换或追加系统提示、自动压缩上下文,以及通过扩展注入动态上下文。
运行中 Steering 与 Follow-up
Agent 工作时仍可补充方向或排队后续消息,不必等待整个工具调用循环结束后才能继续交互。
四种集成方式
除交互式 TUI 外,还可使用 Print/JSON 输出、基于标准输入输出的 RPC,或直接通过 SDK 嵌入 Node.js 应用。
适用场景
适合希望在终端中使用 AI 编码代理,或需要把 Agent Runtime 嵌入脚本、产品和自定义开发工具的团队。
日常终端编码
在代码仓库中阅读文件、修改实现、运行检查并持续与 Agent 对话,减少在编辑器、终端和聊天窗口间切换。
团队定制工作流
将内部命令、代码规范、审查流程和专用工具封装为扩展、技能或 Pi Package,在团队内复用。
脚本与自动化
通过 Print 或 JSON 模式执行一次性任务,把结构化事件接入 Shell 脚本、CI 或其他自动化系统。
嵌入式 Agent
使用 SDK 或 RPC 把 Pi 的 Agent 会话嵌入桌面工具、IDE 集成、内部平台或自有用户界面。
Agent 基础设施原型
分别复用 pi-ai、pi-agent-core 和 pi-tui,快速验证多模型工具调用、状态管理与终端交互方案。
多模型实验
在相近的工具与上下文条件下切换不同提供商和模型,比较编码能力、延迟、成本和工具调用稳定性。
优点与注意事项
技术选型不仅要看能力,也要理解它带来的团队成本。
主要优点
Pi 擅长的地方
- 核心概念少,默认工具和 Agent 循环相对容易理解
- 扩展、技能、模板、主题和 Package 可逐层定制工作流
- 支持多家模型提供商,并允许在会话中切换模型
- 树状 JSONL 会话便于分支尝试、恢复、导出和审查
- 交互、脚本、RPC 与 SDK 模式覆盖从个人终端到产品集成
- Monorepo 中的 AI、Agent 与 TUI 包可独立用于自定义应用
需要注意
采用前应考虑的问题
Pi 以启动它的用户和进程权限访问文件、进程、网络和凭据;默认工具并不会自动提供操作级沙箱或安全隔离。
在不可信仓库、生产主机或含敏感凭据的环境中使用前,应采用容器、虚拟机或专用沙箱,并限制挂载目录和网络访问。
Pi 刻意不内置权限弹窗、Plan Mode、Subagent、Todo、后台 Bash 和 MCP;需要时应选择、编写并维护相应扩展。
扩展和 Pi Package 本质上会执行本地 TypeScript 或 JavaScript。安装第三方包前应检查来源、依赖、发布记录和代码。
提供商的上下文长度、工具调用、推理参数、认证方式和错误行为不同,切换模型后仍需要针对真实任务回归测试。
长会话、频繁工具循环和多个模型会增加 Token 与请求量,应配置预算、超时和停止条件并关注提供商限额。
JSONL 历史可能保存源代码、提示、工具参数和命令输出;导出或分享前应检查内容,并对本地会话目录设置适当权限。
CLI、扩展 API 和各工作区包会持续发布。团队共享配置时应锁定版本,升级前阅读发布说明并验证关键扩展。
快速开始
安装 Pi Coding Agent,完成模型登录或配置 API Key,然后从交互、单次输出和 JSON 模式开始使用。
bashnpm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi --versionbashpi
# 在交互界面中打开登录菜单
/loginbashexport ANTHROPIC_API_KEY="<your-api-key>"
cd your-project
pibashpi -p "概括这个项目的目录结构,并指出测试入口"
# 输出适合程序处理的 JSON 事件流
pi --mode json -p "检查当前改动可能引入的风险"markdown# AGENTS.md
## 项目约定
- 使用 TypeScript 严格模式
- 修改后运行 npm run lint 和 npm test
- 不要编辑生成文件
- 高风险操作必须先说明影响bash# 以下命令在 Pi 交互界面中输入
/model
/tree
/fork
/compact
/export
/reload下一步:Pi 没有内置权限系统。请先在普通代码仓库或隔离环境中试用,并避免让 Agent 直接接触生产凭据、敏感目录和高权限网络;需要更强边界时应使用容器或沙箱。
类似项目
这些项目同样帮助开发者组织模型、工具与 Agent 工作流,但产品形态和默认抽象不同。
Pi vs LangChain
Pi 和 LangChain 都能连接模型与工具,但 Pi 首先是可直接使用和扩展的终端 Agent Harness,LangChain 则首先是构建 LLM 应用与业务 Agent 的代码框架。
| 比较维度 | Pi | LangChain |
|---|---|---|
| 产品形态 | 终端编码代理 + 可独立复用的 TypeScript 包 | Python / TypeScript 应用框架 |
| 主要目标 | 个人与团队的编码 Agent 和定制终端工作流 | 面向最终用户的 LLM 应用、RAG 与业务 Agent |
| 默认界面 | TUI、Print、JSON、RPC 和 SDK | 没有固定 UI,由应用自行提供界面与服务层 |
| 扩展方式 | 扩展、Skills、Prompt 模板、主题与 Pi Packages | 模型、工具、Middleware、Retriever 与 LangGraph |
| 会话与状态 | 本地树状 JSONL 会话,支持分支与导出 | 应用状态与 LangGraph Checkpointer / Store |
| 模型接入 | pi-ai 统一多个提供商,并可在会话中切换 | 通过 Provider 集成包接入模型与 Embedding |
| 安全边界 | 明确依赖外部容器或沙箱提供强隔离 | 由应用开发者为工具、数据和部署环境设计权限 |
| 更适合 | 直接使用或深度定制一个终端编码 Agent | 把 Agent、检索和工具编排进自己的业务应用 |
如果目标是尽快拥有一个可在终端工作的编码 Agent,并通过少量 TypeScript 扩展适配个人或团队流程,Pi 更直接;如果你正在开发面向客户或内部业务的 AI 应用,需要组织检索、Middleware、持久状态和多种服务集成,LangChain 的应用框架定位更合适。两者也可以组合:用 LangChain 构建业务服务,再通过 Pi 扩展调用受控 API。
资料核验
版本、维护信息与本页采用的官方资料来源。
本页依据 Pi 官方站点、Monorepo README、Coding Agent 文档和容器化说明整理。版本、主要语言、许可证与最新维护状态通过 GitHub 官方 API和 npm Registry 核验;安全提示遵循项目对权限模型的明确说明。
官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 27 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。