Pi 运行时扩展包
为 Pi AI Agent 运行时提供可插拔的 TypeScript 扩展包,把 IM、浏览器、记忆、安全和生成能力注册为 MCP 工具。
- Star 数
- ★ 71
- 最近更新
- 1 天前
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 44/100 · 缺口较多
30 秒速览
- 可在哪里用
- 兼容但需适配
- 开始前需要
- 典型场景
- 宿主应用开发者希望一次性获得会话、事件、artifact 和定时任务的持久化能力,同时保留自有 HTTP 路由与前端,直接安装 pi-shared 与 pi-storage。
- 主要局限
- 强绑定 Pi/DSH 运行时:README 明确只有宿主提供 HTTP 路由、鉴权、模型运行时与部署配置时才能运行,不是可独立启动的服务。
这个 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 运行时扩展包 当前 | 44 · 缺口较多 | ★ 71 | 1 天前 | TypeScript | — |
| Interceptor | 57 · 缺口较多 | ★ 419 | 4 天前 | TypeScript | Codex · Claude Code · Claude.ai |
| CamoFox Browser Server | 72 · 存在缺口 | ★ 396 | 1 个月前 | JavaScript | Claude Code |
| Endoplexity 浏览器智能控制 | 67 · 存在缺口 | ★ 179 | 1 个月前 | TypeScript | Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
least_privilege:仅评测脚本通过 --tools 白名单限制浏览器/桌面工具,产品本身未展示运行时最小权限策略,故仅 1 分。user_confirmation:仓库未提供任何危险操作前的用户确认机制,0 分。data_flow_transparency:README 说明各扩展会调用 Lark/WeCom/DingTalk、Langfuse/OTel、多家图像/视频供应商,方向可见但无逐项数据流说明,1 分。sensitive_data_handling:CI 将 API Key 写入 RUNNER_TEMP 且不上传,属良好实践,但产品侧对会话/记忆/附件等敏感数据的处理无文档,1 分。dependency_security:仅列出 onlyBuiltDependencies 与 devDependencies,无审计、锁定或漏洞处置说明,1 分。external_effects:存在浏览器自动化、桌面自动化、消息发送、定时任务等外部副作用,但无副作用清单或幂等/回滚说明,1 分。rollback:无任何回滚或撤销机制描述,0 分。source_attribution:Apache-2.0 与包作用域 @amaster.ai 可见,但未声明上游来源与第三方组件归属,1 分。
self_consistency:README 的包清单与预览表、CI 工作流、评测脚本引用的包名基本一致,仅预览表多出 pi-memory-mem0 未在包表中列出,2 分。dependency_availability:要求 Node>=24 与 pnpm 10.18.3,并依赖外部 CLI(lark-cli、wecom-cli、dws、chrome-devtools-mcp、cua-driver)与 FFmpeg 运行时,可用性未验证,1 分。failure_messages:评测脚本对缺失 Chrome、非 macOS 平台、缺少密钥均给出明确错误或优雅跳过,2 分。
audience_and_scenarios:README 明确面向宿主应用开发者,并列出各扩展场景,2 分。capability_boundaries:说明宿主负责路由/鉴权/模型运行时,但各扩展的能力边界与限制未系统化,1 分。trigger_precision:工具触发依赖 MCP 工具描述,仓库未展示触发条件或歧义处理,1 分。environment_fit:给出 Node/pnpm 版本、Corepack、Prisma 生成、跨平台 Chrome 解析与 macOS 跳过逻辑,2 分。
information_architecture:README 以包表、预览、要求、开发、消费、宿主兼容、许可组织清晰,2 分。install_notes:安装与常用命令完整,2 分。naming_stability:包名与子路径入口(/extension、/json、/settings 等)一致,2 分。examples_and_faq:仅有少量导入示例,无 FAQ,1 分。known_limitations:仅提及 ESM-only 与宿主版本兼容,缺少已知限制清单,1 分。license:LICENSE 为完整 Apache-2.0 且 package.json 一致,3 分。versioning_changelog:版本号为 0.1.2-beta.15,但无 CHANGELOG 或版本策略,1 分。maintenance_responsibility:无维护者、联系方式或治理说明,发布者身份未验证,1 分。
output_usability:包提供类型化契约与扩展入口,便于宿主集成,2 分。marginal_value:覆盖 IM 集成、浏览器/桌面自动化、记忆、调度、图像/视频生成等,相对通用方案有增量价值,2 分。cost_benefit:视频生成涉及付费片段、桌面自动化需 TCC 授权、依赖较重,成本与收益权衡未说明,1 分。
claim_traceability:README 的能力声明未逐条对应到具体文件或测试,1 分。cross_source_corroboration:README、CI 工作流与评测脚本在包名与流程上部分互证,但无独立来源,1 分。fact_inference_separation:文档未区分已验证事实与推断,评测结果需实际运行才能确认,1 分。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者身份未经验证,仓库未声明维护者与治理方式,采用前应确认来源与更新路径。
- 扩展涉及浏览器/桌面自动化、消息发送与定时任务等外部副作用,仓库未提供副作用清单、用户确认或回滚机制。
- 依赖外部 CLI(lark-cli、wecom-cli、dws、chrome-devtools-mcp、cua-driver)与 FFmpeg 运行时,可用性与版本兼容性未验证。
- 视频生成涉及付费片段,桌面自动化需 macOS 辅助功能与屏幕录制授权,成本与权限影响需自行评估。
- 无 CHANGELOG 与版本策略,当前为 0.1.2-beta.15 预发布版本,接口可能变动。
常见问题
它能直接跑成一个独立服务吗?
我只需要其中一部分能力,需要装全部包吗?
pnpm add @amaster.ai/pi-shared @amaster.ai/pi-storage;扩展包各自独立,通过 ./extension 子路径注册,由宿主按需加载。