733 字
约 2 分钟
0
插件发现与执行:从 toolId 到真实 HTTP 请求

插件发现与执行:从 toolId 到真实 HTTP 请求

插件注册完成后,工作流真正运行时还要解决两个问题:

这个工具是谁? 这个工具怎么调用?

这就是插件发现和执行。


1. 插件发现:ID 找元数据

Workflow 不需要记住工具的 URL、Method、鉴权方式。

它只需要保存:

toolId
version
operationId

运行时:

toolId + version
↓
找到工具 Schema

所以插件发现的本质是:

通过唯一 ID 找到能力描述。

这种设计很常见,插件、模型、MCP Server、配置中心都可以这样做。


2. Schema 驱动执行

找到 Schema 后,Link 就知道:

请求地址
GET / POST
参数放哪里
怎么鉴权

然后根据 Schema 动态构造请求:

Schema
+
Workflow 参数
↓
HTTP Request

这样新增工具时,不需要一直修改核心执行代码。

核心思想是:

用元数据驱动执行,而不是把调用逻辑写死。


3. 参数路由

Workflow 只负责提供业务参数。

Link 再根据 Schema 把参数放到不同位置:

Path
Query
Header
Body

例如:

userId → Path
city   → Query
token  → Header
JSON   → Body

本质上是在做:

统一参数 → 目标协议参数。

以后做 HTTP、RPC、MCP 适配,都能复用这套思路。


4. 对上统一,对下适配

不同第三方 API 的请求和返回格式可能完全不同。

Link 的作用就是把这些差异挡在下面:

Workflow
↓
统一工具协议
↓
Link
↓
不同第三方 API

调用完成后,再把结果统一包装返回 Workflow。

这样上层不用关心每个第三方接口的细节。


5. 为什么适合加缓存

Tool Schema 一般是:

修改少
读取多

所以非常适合缓存:

Redis
↓ miss
MySQL

这种模式也适用于:

模型配置
路由规则
权限配置
字典数据

什么时候可以复用

当系统出现下面这些情况时,可以考虑这套设计:

能力很多
调用协议不统一
工具需要动态新增
不想频繁修改核心代码
上层希望屏蔽底层差异

典型场景有:

插件平台
Agent Tools
MCP
低代码平台
API Gateway
模型平台

总结

整个过程可以压成:

toolId
↓
找到 Schema
↓
解析调用规则
↓
路由参数
↓
执行底层协议
↓
统一返回

最值得记住的一句话是:

上层通过 ID 找能力,中间层通过元数据理解能力,再把统一参数翻译成底层真正能执行的请求。

插件发现与执行:从 toolId 到真实 HTTP 请求
http://www.clxhxhhr.top/posts/649/
作者
clxstart
发布于
2026-09-16
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。