SuperAPI AI 工具集

pi-gateway-plugin-dev

编程与开发

查看项目

更新于 10-15 21:36

技能介绍

用途:在 gateway 模式下开发 pi-gateway 插件,扩展连接层能力(消息通道、HTTP/WS、命令、服务),而非 pi extension。插件加载位置为 ~/.pi/gateway/plugins/ 或 plugins.dirs[] 指定目录,必须有 plugin.json 并通过 main 指向入口文件。修改 Agent 思维、提示词、工具执行行为应使用 ~/.pi/agent/extensions,不在本技能范围。

规范:每个插件一个独立目录,禁止单文件模式;入口文件只做组装,业务按职责拆分到 src/commands.ts、src/rpc-methods.ts、src/hooks.ts、src/services.ts、src/types.ts。标准目录含 plugin.json 与 src/index.ts 等文件。

工作流:先判定是 Gateway 插件需求,阅读目录规范、SDK 接口、RPC 能力映射及模型控制模式等参考文档,用脚手架生成目录后填业务逻辑,再在 pi-gateway.json 配置 plugins.dirs[] 并启动验证。脚手架命令:bash skills/pi-gateway-plugin-dev/scripts/new-plugin.sh ~/.pi/gateway/plugins model-control "Model Control"。

模型能力:切模型用 GatewayPluginApi.setModel(sessionKey, provider, modelId),调思考强度用 setThinkingLevel(sessionKey, level);列模型当前未直接暴露 getAvailableModels,推荐复用网关内置 models.list / /api/models,若需直连 RPC 需先扩展 GatewayPluginApi、createPluginApi 与 RpcClient 映射。

工具流式:工具 execute 支持 onPartialResult 回调,签名含 toolCallId、args、signal、onPartialResult,需检查 signal.aborted 支持取消,分块调用 onPartialResult 报告进度,参考 send_message 实现。交付需输出目录树、plugin.json 与关键源文件、加载说明及最小验证命令。