插件创建方法
在AgentArts中创建一个完整的自定义插件,需要依次完成插件和工具的创建。其中插件负责定义连接目标与鉴权方式,工具负责定义具体的接口与参数,二者共同构成一个可被智能体调用的完整插件能力。
插件与工具是什么
在 AgentArts 中,插件和工具是“集合”与“个体”的关系:
- 插件:是一个功能集合,定义了一组工具共用的基础属性,包括服务域名、基准路径和鉴权方式。可以把它理解为“连接到某个外部服务的通道”。
- 工具:是插件内具体的执行单元,每个工具对应一个独立的API接口,负责完成一项具体的单一任务。智能体在实际运行时,调用的是工具,而不是插件本身。
平台要求同一插件下的工具需具备同类功能,判断标准是:这些工具是否服务于同一业务域。
表1中,https://{endpoint}/v2/{project_id}/ocr是所有接口的根基,它定义了插件的连接目标(由服务域名+基准URL构成);/general-text这类后缀是各工具独有的“路径”,它区分了插件内的不同能力。
| 插件名称 | 工具名称 | API接口地址 |
|---|---|---|
| 文字识别插件 | 通用文字识别 | https://{endpoint}/v2/{project_id}/ocr/general-text |
| 通用表格识别 | https://{endpoint}/v2/{project_id}/ocr/general-table | |
| 手写文字识别 | https://{endpoint}/v2/{project_id}/ocr/handwriting |
正确示例:
文字识别插件(公共部分:https://{endpoint}/v2/{project_id}/ocr)
├── 工具1:通用文字识别 → /general-text
├── 工具2:通用表格识别 → /general-table
└── 工具3:手写文字识别 → /handwriting 错误示例:
将不同功能的工具混在一起,三个工具功能完全不同,不应放在同一插件下,会造成大模型在匹配插件能力时产生混淆。
插件中工具混乱 ├── 工具1:天气查询 → weather.api.com ├── 工具2:文字识别 → ocr.myhuaweicloud.com └── 工具3:发送邮件 → mail.api.com
插件URL与工具path的拆分
确定了插件包含哪些工具之后,下一步要规划插件URL与工具path的拆分方式。这本质上是“公共路径放哪里”的问题。
拆分原则:将所有工具共享的公共路径放入插件URL,将各工具独有的路径放入工具path。
以文字识别为例:
完整 API 地址:
https://ocr.cn-southwest-2.myhuaweicloud.com/v2/{project_id}/ocr/general-text
正确拆分方式:
插件 URL = https://ocr.cn-southwest-2.myhuaweicloud.com/v2/{project_id}/ocr
工具 path = /general-text
错误拆分方式:
插件 URL = https://ocr.cn-southwest-2.myhuaweicloud.com
工具 path = /v2/{project_id}/ocr/general-text 两种方式都能调通,但正确拆分的优势在于:公共路径只需在插件层维护一次,每个工具的path保持简洁。当插件下有多个工具时,若服务域名或公共路径发生变化,只需修改插件层一处,无需逐个修改所有工具。
关于路径变量(如 {project_id}):
API路径中的变量如果是一个固定值,在配置插件时可以设置为固定值;如果是动态变化的变量,需要通过平台的“添加变量”功能在插件URL中声明,不能将变量写死为固定值。