Pi 运行时扩展包
为 Pi AI Agent 运行时提供可插拔的 TypeScript 扩展包,把 IM、浏览器、记忆、安全和生成能力注册为 MCP 工具。
- Star 数
- ★ 92
- 最近更新
- 1 天前
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 67/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 宿主应用开发者希望一次性获得会话、事件、artifact 和定时任务的持久化能力,同时保留自有 HTTP 路由与前端,直接安装 pi-shared 与 pi-storage。
- 不适合
- 需要开箱即用独立服务的团队:本仓库只提供被宿主应用加载的包
- 无法满足 Node.js >=24 与 pnpm 10.18.3 固定版本的环境
- 希望避免 LGPL/GPL FFmpeg 再分发合规审查的团队
- 源码审查
- 67/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Pi 是一组面向 Pi 运行时应用的共享 TypeScript 包,采用 monorepo 组织,全部为 ESM-only 并以 @amaster.ai 作用域发布。仓库分为两层:@amaster.ai/pi-shared 与 @amaster.ai/pi-storage 提供运行时类型契约和持久化适配器;其余为扩展包,每个包通过 ./extension 子路径入口注册 Pi 运行时扩展,由宿主应用按需加载。扩展覆盖 IM 工作区(Lark/Feishu、WeCom、DingTalk)、浏览器与桌面自动化、持久记忆、Langfuse/OpenTelemetry 遥测、Cron 定时任务、图像与视频生成、Web 检索、安全策略等。宿主应用需要自行提供 HTTP 路由、鉴权、模型运行时、部署配置和产品 UI;README 明确说明与 pi2dsh 和 dsh-pi-host 两种宿主加载模型配合使用。运行要求为 Node.js >=24 与 pnpm 10.18.3,代码以 Apache-2.0 授权。
每个扩展包在 ./extension 子路径导出扩展入口,宿主应用 setup 阶段将其传入 Pi 运行时即可注册 LLM 可调用工具。核心侧,loadPiSettings 读取设置,createRuntimeStorage 创建存储,JsonRuntimeStorage 与 MySQL/Prisma 适配器持久化 session、transcript、event、memory、artifact、subagent 和定时任务。pi-browser-use 封装 chrome-devtools-mcp 并暴露 browser_ 前缀工具;pi-computer-use 提供跨平台桌面自动化;pi-web-access 负责搜索、URL 正文抽取和图片检索;pi-memory 把策展记忆(MEMORY.md、USER.md)以刷新后的提示快照注入系统提示;pi-security 基于资源做策略判定与工具授权;pi-task-scheduler 用 Cron 管理定时任务;pi-telemetry 通过 createLangfuseExporter 和 createOtelExporter 输出运行时遥测;pi-goal 从对话推导目标并迭代执行直到条件满足。工作区侧,pi-lark 经 lark-cli、pi-wecom 经 wecom-cli、pi-dingtalk 经 dws CLI 调用日历、文档、表格、邮件、审批等能力;pi-image-gen 接入 OpenAI gpt-image、Google Nano Banana、阿里 Qwen-Image、OpenRouter 与自定义 provider;pi-video-gen 支持无损拼接与混合时间线,并内置 LGPL/GPL FFmpeg 运行时。
- 宿主应用开发者希望一次性获得会话、事件、artifact 和定时任务的持久化能力,同时保留自有 HTTP 路由与前端,直接安装 pi-shared 与 pi-storage。
- 团队把 Pi Agent 接入飞书/Lark 办公场景,需要日历、云文档、多维表格、任务和 IM 技能,用 pi-lark 通过 lark-cli 调用。
- 运维或研发想在 Agent 中执行网页检索、URL 正文抽取和浏览器操作,组合 pi-web-access 与 pi-browser-use 完成自动化流程。
- 需要长期个人化行为的助理场景,用 pi-memory 把 MEMORY.md/USER.md 注入系统提示,避免每轮重述背景。
- 合规或安全敏感团队要求工具调用前做资源级授权判定,接入 pi-security 的策略引擎与工具授权。
- 内容生产团队借助 pi-image-gen 与 pi-video-gen,在多个图像 provider 间切换,并把片段、字幕、TTS 和 BGM 合成为成片。
如何安装或部署这个 Agent?
环境要求 Node.js >=24 与 pnpm 10.18.3;README 建议用 Corepack:
corepack enable
corepack install -g [email protected]
pnpm install本地完整校验:pnpm run pr-check;常用命令:pnpm build、pnpm typecheck、pnpm test。pi-storage 使用 Prisma schema(packages/storage/prisma/schema.prisma),可用 pnpm --filter @amaster.ai/pi-storage prisma:generate 生成客户端,根目录的 build 与 typecheck 会在编译前自动生成。作为依赖使用时按需安装:
pnpm add @amaster.ai/pi-shared @amaster.ai/pi-storageREADME 未给出各 IM/图像/视频 provider 的凭据申请步骤,需参考各包自身 README。
如何使用这个 Agent?
在宿主应用中从根入口或子路径导入,例如:
import { createRuntimeStorage } from "@amaster.ai/pi-storage";
import { JsonRuntimeStorage } from "@amaster.ai/pi-storage/json";
import { loadPiSettings } from "@amaster.ai/pi-shared/settings";
import { createLangfuseExporter } from "@amaster.ai/pi-telemetry/langfuse";
import { createOtelExporter } from "@amaster.ai/pi-telemetry/otel";
import memoryExtension from "@amaster.ai/pi-memory/extension";扩展包通过 ./extension 子路径注册自身,宿主应用在 setup 阶段把扩展传给 Pi 运行时。宿主加载模型有两种:pi2dsh 会发现在 DSH profile 中显式安装的 Pi 包;dsh-pi-host 按自身 extensions 列表中的包名加载。宿主需自行提供 HTTP 路由、鉴权、模型运行时与部署配置,README 未给出可直接运行的最小示例。
这个 Agent 有哪些优点和局限?
- 分层清晰且按需安装:pi-shared/pi-storage 提供契约与持久化,19 个扩展包各自通过 ./extension 入口注册,宿主可只装需要的包。
- 存储层同时提供 JSON 文件与 MySQL/Prisma 两种适配器,便于从本地开发平滑过渡到数据库部署。
- 扩展覆盖面广且面向真实办公场景,Lark/Feishu、WeCom、DingTalk 均通过各自的 lark-cli、wecom-cli、dws CLI 打通日历、文档、表格、审批等能力。
- 遥测同时支持 Langfuse 与 OpenTelemetry 导出,便于接入已有可观测体系;图像生成可切换 OpenAI、Google、阿里、OpenRouter 及自定义 provider。
- pi-video-gen 内置 LGPL/GPL FFmpeg 运行时,并支持无损拼接、字幕、TTS、BGM 的本地合成,减少外部转码依赖。
- 强绑定 Pi/DSH 运行时:README 明确只有宿主提供 HTTP 路由、鉴权、模型运行时与部署配置时才能运行,不是可独立启动的服务。
- README 未给出可直接运行的最小示例和首调用流程,也缺少各 IM、图像、视频 provider 的凭据与配额说明,接入成本被低估。
- 运行时门槛较高:需要 Node.js >=24 与锁定版本 pnpm 10.18.3,并依赖 Corepack;pi-storage 还需 Prisma/MySQL 才能启用数据库存储。
- 兼容性随宿主、DSH、Pi 与扩展版本变化,README 只指向 pi2dsh 与 dsh-pi-host 两个宿主的文档,缺少版本矩阵。
- pi-video-gen 捆绑 LGPL/GPL FFmpeg 运行时,可能对再分发与许可合规带来额外审查成本。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Pi 运行时扩展包 当前 | 67 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 92 | 1 天前 | TypeScript | — |
| Interceptor | 69 · 存在缺口 | 命令行工具免费 | ★ 612 | 3 天前 | TypeScript | Codex · Claude Code · Claude.ai |
| CamoFox Browser Server | 63 · 存在缺口 | 自托管服务免费 | ★ 437 | 2 天前 | JavaScript | Claude Code |
| Pi Agent Desktop | 78 · 表现良好 | — | ★ 333 | 今天 | TypeScript | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
代码和技能说明显示部分能力有明确边界:电脑操作按目标观察并验证,高风险操作有确认逻辑,浏览器子进程环境可配置白名单;渠道与外部服务会产生消息、数据上传等副作用。扣分原因:样本未覆盖所有扩展的权限和确认机制,数据流与敏感信息处理说明不完整;依赖安全和操作回滚的证据有限,发布者身份及来源归属也未得到独立确认。
README、包清单和样例代码整体支持这是 Pi 扩展与共享运行时包的单一项目。README 说明 Node 与 pnpm 要求及常见构建命令;代码包含重连、错误分类、可操作的故障提示和未知结果时先检查状态再重试的指导。扣分原因:这些保障仅在部分样例中可见,未证明所有包行为一致;依赖可用性说明未覆盖每个外部服务。
文档列出多类用户场景和包用途;电脑操作技能明确了适用范围、工具发现方式、不同平台权限提示及浏览器任务的替代路径。扣分原因:样本未显示所有扩展的触发条件和环境要求,产品面向 Pi 主机这一边界较清楚,但各集成的兼容范围信息不齐。
仓库 README 按类别列包,并提供安装、开发和消费示例;许可证文件与元数据均为 Apache-2.0,包命名总体有规律。AGENTS.md 与 CLAUDE.md 内容是仓库开发指南,不是产品运行说明。扣分原因:样本没有变更日志或明确维护责任人,示例与限制只覆盖部分包,包清单规模较大且样本不能证明全仓文档的一致性。
产品把浏览器、桌面操作、协作、记忆、遥测和媒体生成等能力接入 Pi,并描述结构化结果可供脚本消费,具有明确的集成价值。扣分原因:多种外部提供商、凭证、平台权限和运行依赖增加部署成本;样本未充分说明各能力的费用与收益或所有输出契约。
README 的包用途、要求和入口说明可与清单、示例代码及工作流样例相互参照;浏览器评估代码描述了任务检查与结果记录机制。扣分原因:这是静态样本,未执行评估,工作流中的评估声明不能作为已通过证据;多项广泛能力声明没有对应的源代码佐证,且明确事实与推断的界线只在部分文档中清楚。
- 该样本只覆盖部分技能和源码;未展示的包、配置与权限行为应视为未知。
- 浏览器、桌面操作、消息渠道及生成服务可能触发外部副作用或费用;使用前需核对具体包的凭证、权限、数据发送目标和恢复方式。
- 仓库包含评估工作流与测试样例,但本次静态审查未执行它们,不能据此推断评估已经通过。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Summary Compared with the previous beta, this release makes @amaster.ai/pi-telemetry traces more complete and readable in Langfuse and Phoenix, with clearer launch context, bounded generation ordinals, and compatible display tool definitions. Telemetry also exposes redacted provider HTTP headers and protects context metadata while labeling auxiliary calls and preserving failure status. CI model workflows move to OpenAI Responses with integration coverage retained. Highlights …在 GitHub 查看 ↗ -
发布说明摘录
Summary This beta hardens failure handling across the tool packages and expands @amaster.ai/pi-telemetry with a Phoenix backend layered over shared OpenTelemetry spans. Compared with the previous beta, errors that were previously swallowed now surface with their original causes, and telemetry exports behave more predictably under load and at shutdown. Highlights …在 GitHub 查看 ↗ -
发布说明摘录
Summary Compared with the previous release, this update is a narrow reliability fix focused on @amaster.ai/pi-browser-use. Browser-use session connection and server handling now retry unreachable loopback ports, giving local browser automation a better chance to recover when a port is temporarily unavailable. The remaining published extension packages are part of the release set, but the supplied changes are limited to browser-use and its tests. Highlights …在 GitHub 查看 ↗
常见问题
它能直接跑成一个独立服务吗?
我只需要其中一部分能力,需要装全部包吗?
pnpm add @amaster.ai/pi-shared @amaster.ai/pi-storage;扩展包各自独立,通过 ./extension 子路径注册,由宿主按需加载。必须使用 MySQL 吗?
接入 Lark、WeCom、DingTalk 或图像/视频生成需要哪些凭据?
对运行环境有哪些硬性要求?
谢谢反馈,我们会据此改进页面。