Pi 仓库里 11 个包,产品自己只用了 7 个:剩下 3 个是给远程执行留的

3次阅读
没有评论

Pi 这个开源项目有意思的地方不只是终端里那个编程 Agent,更在于它把自己拆成了 11 个能单独引用的包。顺着依赖关系扒一遍会发现:Pi Agent 产品自己其实只用了其中 7 个,剩下的各有各的去处。

Pi 仓库里 11 个包,产品自己只用了 7 个:剩下 3 个是给远程执行留的

先看全貌。Pi 仓库的 packages 目录下一共 11 个包,10 个公开发布到了 npm,只有 pi-evals 是内部评测用的,不对外发布。Pi Agent 产品本身对应的是 pi-coding-agent 这个包。

直接引用的有 5 个:pi-ai 统一对接各家大模型,Anthropic、OpenAI、Google 还有不少国模和第三方都走它;pi-agent-core 负责 Agent 循环、工具调用和状态管理;pi-tui 是终端里看到的整个交互界面;pi-mcp 负责连接 MCP 服务器;pi-codemode 让模型写 JavaScript,在沙箱里并行调用工具。

Pi 仓库里 11 个包,产品自己只用了 7 个:剩下 3 个是给远程执行留的

间接引用的是 pi-telemetry:它只定义遥测接口规范和数据格式,本身不上报任何数据。Pi 产品没有直接用它,是 pi-ai 依赖了它,所以相当于间接引了进来。pi-ai 也比较特殊,既被产品直接引用,又被 pi-agent-core 依赖。

整条依赖链是这样的:pi-coding-agent 下面挂着 pi-agent-core、pi-ai、pi-tui、pi-mcp、pi-codemode,其中 pi-agent-core 再指向 pi-ai,pi-ai 再指向 pi-telemetry。官方安装器的锁文件里,pi 相关的包正好是这 6 个,加上 pi-coding-agent 本身一共 7 个,一个不多,一个不少。

没被产品引用的有 3 个:chord 是支持热重载插件、状态同步和 RPC 的宿主运行时;pi-durable 是可持久化的会话、任务、文档运行时;pi-env 是通过 SSH 部署到远程机器上的执行环境,给 pi-durable 用。这三个自成一条线:pi-env 依赖 pi-durable 和 chord,pi-durable 又依赖 chord、pi-ai、pi-codemode。它们和终端里的 Pi Agent 没关系,看功能是给远程执行、长时间运行这类场景准备的。

值得一提的是,chord 原本被 Pi 产品依赖过,在 1.2.0 版本被移除了,同时还删掉了一套没正式发布的实验性 server / client 插件栈。Pi 团队也在不断调整,产品只保留真正需要的部分。

所以 Pi 这套架构好就好在:需要什么就引什么,用着不顺手了,就自己重写那一块。对开发者来说,这种自由度真的很友好。

Pi 仓库里 11 个包,产品自己只用了 7 个:剩下 3 个是给远程执行留的

项目地址:github.com/earendil-works/pi,官网 pi.dev 上有一键安装命令。中文初学者还可以看 Pi Coding Agent 学习蓝皮书,从安装和第一个可验收任务开始,一步步理解 Session、Context、Skill、Extension 与长期工作流。

Pi 仓库里 11 个包,产品自己只用了 7 个:剩下 3 个是给远程执行留的

正文完
 0