Token导航 LogoToken导航

Agent Skill · 待分类

pi-gateway-plugin-dev(pi 网关插件开发)

pi-gateway-plugin-dev 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

pi-gateway-plugin-dev 是待分类类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在待分类类的 11,209 个 Skill 里排第 10,165。

总安装 212周安装 9GitHub Stars 11下载 74核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:pi-gateway-plugin-dev(pi 网关插件开发)
来源仓库:https://github.com/dwsy/agent
仓库路径:skills/pi-gateway-plugin-dev
安装命令:
npx skills add https://github.com/dwsy/agent --skill pi-gateway-plugin-dev
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dwsy/agent --skill pi-gateway-plugin-dev

这个 Skill 是做什么的

这个 Skill 的分类还没最终确定,用法以来源仓库的说明为准。

pi-gateway-plugin-dev 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。适用于围绕仓库状态、代码变更或协作事项进行整理和分析的场景。通过 npx skills add 命令从指定 GitHub 仓库安装,需确认权限范围。

建议结合原始 README 核验具体用法,注意是否会触发命令执行或文件读写。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

来源仓库内路径:skills/pi-gateway-plugin-dev

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/dwsy/agent --skill pi-gateway-plugin-dev;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

pi-gateway-plugin-dev 怎么安装?

在终端执行 npx skills add https://github.com/dwsy/agent --skill pi-gateway-plugin-dev。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

pi-gateway-plugin-dev 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

pi-gateway-plugin-dev 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

pi-gateway-plugin-dev 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

pi-gateway-plugin-dev 用的人多吗?

公开数据是累计安装 212 次,近一周安装 9 次,下载 74 次,GitHub 11 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

pi-gateway-plugin-dev 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理待分类类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

待分类类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
infsh-cli

infsh CLI · Codex、Claude

4,374,576382权限未标注未明确未收录
ai-video-generation

AI 视频生成 · Codex、Claude

4,313,376382调用外部服务未明确有提醒
lark-openapi-explorer

云雀 OpenAPI 浏览器 · Codex、Claude

2,064,1209,011需要联网未明确有提醒
lark-workflow-standup-report

Lark 工作流程站立报告 · Codex、Claude

2,041,6328,978需要联网未明确通过
use-my-browser

使用我的浏览器 · Codex、Claude

1,848,49140操作浏览器未明确未通过
pi-gateway-plugin-dev

pi 网关插件开发 · 本页

21211需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Pi Gateway Plugin Dev 技能

用于在 gateway 模式 开发插件,不是 pi extension。

适用边界

  • 目标是扩展 pi-gateway 的连接层能力(消息通道、HTTP/WS、命令、服务)
  • 插件加载位置是 ~/.pi/gateway/plugins/ 或 plugins.dirs[] 指定目录
  • 插件必须有 plugin.json,并通过 main 指向入口文件

以下场景不要用本技能:

  • 修改 Agent 思维、提示词、工具执行行为(那是 ~/.pi/agent/extensions 的职责)
  • 仅在 CLI/TUI 中运行、不经过 gateway 的功能

强制规范

  1. 每个插件一个独立目录(<plugins-root>/<plugin-id>/)。
  2. 禁止单文件模式:不能只放一个 index.ts 就结束。
  3. 入口文件只做组装,不写核心业务逻辑。
  4. 业务按职责拆分到 src/commands.ts、src/rpc-methods.ts、src/hooks.ts、src/services.ts、src/types.ts。
  5. 插件只在 gateway 插件机制里加载,不放到 ~/.pi/agent/extensions/。

标准目录

<plugins-root>/<plugin-id>/
  plugin.json
  src/
    index.ts
    types.ts
    commands.ts
    rpc-methods.ts
    hooks.ts
    services.ts

工作流

  1. 先判定是 Gateway 插件需求(不是 pi extension)。
  2. 阅读目录规范:references/plugin-directory-architecture.md
  3. 阅读 SDK 接口:references/sdk-capabilities.md
  4. 阅读 RPC 能力映射:references/rpc-capabilities.md
  5. 如涉及模型能力,读取:references/model-control-pattern.md
  6. 用脚手架生成插件目录,再填业务逻辑。
  7. 在 pi-gateway.json 里配置 plugins.dirs[] 并启动验证。

脚手架命令

bash skills/pi-gateway-plugin-dev/scripts/new-plugin.sh ~/.pi/gateway/plugins model-control "Model Control"

生成后会得到完整多文件插件目录,不会退化为单 index.ts。

模型能力实现策略

  • 切模型:用 GatewayPluginApi.setModel(sessionKey, provider, modelId)。
  • 调思考强度:用 GatewayPluginApi.setThinkingLevel(sessionKey, level)。
  • 列模型:当前 GatewayPluginApi 不直接暴露 getAvailableModels,推荐复用网关内置 models.list / /api/models。
  • 若必须插件内部直连 RPC:先扩展 GatewayPluginApi + createPluginApi + RpcClient 映射,见 references/rpc-capabilities.md 的"扩展路径"。

工具流式支持 (Tool Streaming)

pi-gateway 工具支持流式执行,通过 onPartialResult 回调实时更新进度:

工具执行方法签名

async execute(
  toolCallId: string,
  args: unknown,
  signal: AbortSignal,
  onPartialResult?: (partial: ToolResult) => void
): Promise<ToolResult>

实现流式工具

// src/tools/my-streaming-tool.ts
export function createMyStreamingTool() {
  return {
    name: "my_streaming_tool",
    parameters: Type.Object({
      text: Type.String(),
      stream: Type.Optional(Type.Boolean({ default: true })),
    }),
    async execute(
      _toolCallId: string,
      params: unknown,
      signal: AbortSignal,
      onPartialResult?: (partial: ToolResult) => void
    ) {
      const { text, stream } = params as { text: string; stream?: boolean };

      if (!stream) {
        // 非流式:直接返回结果
        return { content: [{ type: "text", text }] };
      }

      // 流式:分块处理,每块调用 onPartialResult
      const chunks = splitIntoChunks(text, 80);
      let accumulated = "";

      for (let i = 0; i < chunks.length; i++) {
        if (signal?.aborted) {
          return { content: [{ type: "text", text: "Aborted" }], details: { error: true } };
        }

        accumulated += chunks[i];

        // 报告进度
        if (onPartialResult) {
          onPartialResult({
            content: [{ type: "text", text: accumulated + (i < chunks.length - 1 ? "…" : "") }],
            details: { progress: i + 1, total: chunks.length },
          });
        }

        // 模拟处理延迟
        await new Promise((resolve) => setTimeout(resolve, 100));
      }

      return {
        content: [{ type: "text", text: accumulated }],
        details: { completed: true, chunks: chunks.length },
      };
    },
  };
}

关键要点

  1. AbortSignal 处理: 检查 signal.aborted 支持取消操作
  2. PartialResult 结构: 包含 content 数组和可选的 details 元数据
  3. 视觉反馈: 使用 … 或其他指示符表示还有更多内容
  4. 渐进式更新: 每完成一个阶段就调用 onPartialResult,不要等全部完成

参考实现

查看 send_message 工具的流式实现:

  • extensions/gateway-tools/send-message.ts

交付要求

  • 输出插件目录树
  • 输出 plugin.json 和关键源文件
  • 说明如何在 gateway 模式加载(plugins.dirs[])
  • 给出最小验证命令(至少覆盖"列模型/切模型"或对应能力)
  • (可选)如果工具支持流式,提供流式调用示例

平台分布

Codex

33.77%
按下载量换算25

Claude

29.44%
按下载量换算22

Cursor

21.9%
按下载量换算16

Gemini CLI

10.91%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills