Agent Skills
返回列表
💻

JSON-RPC服务

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rn88lg3j/json-rpc-tool。

技能介绍

它解决什么问题

JSON-RPC 服务遍地都是:内部工具网关、RPC 中台、各类带 rpc.discover 的 OpenRPC 服务端。但对模型来说,这些服务是黑盒——它不知道服务上暴露了哪些方法、参数长什么样。没有发现机制时,只能猜方法名、猜字段,然后拿到 Method not found 或者结构对不上的返回。

这个技能把「发现 + 调用」做成了两个明确工具,让路由决策留在模型侧,真正的网络请求留在代码侧。

核心能力

  • scripts.tools.rpc_discover:对指定服务端发起一次 JSON-RPC 调用,请求 rpc.discover 方法,拿到该服务支持的方法清单。这是 OpenRPC 规范里为 JSON-RPC 服务定义的发现入口。
  • scripts.tools.rpc_call:对任意服务端调用任意 JSON-RPC 方法,只需要给出 server、method 和字符串化的 params。

工作方式

模型是路由层,代码只负责发请求。执行顺序是:

  1. 先检查 API 密钥。scripts.config.settings.api_key 为空时必须通过 AskUserQuestion 向用户索取,拿到后调用 scripts.config.set_api_key(key) 落盘。
  2. 根据用户意图选工具。问「这个服务有哪些方法」走 rpc_discover;要求「用这些参数调某个方法」走 rpc_call。
  3. 提取参数。params 是字符串化的 JSON,需要自行序列化;缺参数时用 AskUserQuestion 追问,不要臆造。
  4. 以关键字参数调用,例如 scripts.tools.rpc_call(server='...', method='...', params='...')。
  5. 整理 result["raw"] 后展示给用户,同时参考 result["success"] 和 result["message"] 判断是否成功。

适用边界与注意点

  • API 密钥是硬前置条件。缺少密钥时禁止自行搜索或编造数据,必须先问用户。密钥申请地址为 https://xiaobenyang.com。
  • 发现能力依赖服务端确实实现了 OpenRPC 的 rpc.discover。没实现的服务端,这个工具也拿不到方法清单。
  • 该技能不做参数类型校验、重试、鉴权头注入或结果 schema 推断。params 的构造完全由调用方负责,传错结构会直接体现为服务端报错。
  • 两个工具都只覆盖单个服务端的单次调用,没有批量、并发或长连接复用能力。

使用场景

  • 接手一个陌生的JSON-RPC服务,需要先弄清楚它暴露了哪些方法再决定调用方式,用rpc_discover拉取方法清单。
  • 已通过rpc_discover拿到方法列表,需要按对方要求的参数结构构造params字符串,调用rpc_call执行具体方法。
  • 调用rpc_call返回success为False或message报错,需要查看result["raw"]里的原始返回来定位是参数结构问题还是服务端异常。
  • 环境中还没有配置API密钥,首次使用时需要通过询问拿到密钥并用set_api_key保存,否则不能发起任何调用。

适合人员

  • 维护内部RPC网关的后端工程师,需要把已有JSON-RPC服务挂进MCP工作流供模型调用。
  • 对接第三方OpenRPC规范服务端的集成开发者,需要先发现方法再按参数规范发起调用。
  • 给模型编写工具路由逻辑的Agent开发者,需要在rpc_call和rpc_discover之间做意图分流与参数提取。
  • 使用MCP客户端调用远程JSON-RPC服务的技术负责人,需要在缺少密钥时按规范引导用户完成配置。