当阿里云百炼的官方插件无法满足您的业务需求时,您可以通过创建自定义插件来扩展大模型的能力。本文档将引导您完成从创建、调试到使用的全过程,轻松集成所需 API。
工作流程
- 创建/导入插件:定义插件的基础信息,或直接从云市场导入。
- 添加工具(导入插件无需此步):为插件配置具体的 API 路径、请求参数和返回数据。
- 调试与发布:在线测试 API 的连通性,确保功能正常后发布。
- 在应用中使用:将插件关联到智能体,通过对话测试或 API 集成来调用。
创建自定义插件
- 创建个性化开发的插件
- 从云市场导入插件
步骤一:创建插件
- 访问插件页面,单击创建插件。
-
填写插件信息。
如需要鉴权请打开是否鉴权开关,填写鉴权配置信息。插件名称:输入具有语义的名称,支持中英文。 示例:寝室公约查询工具test
插件描述:对插件功能和使用场景的简要说明。能帮助大模型判断当前任务是否需要调用当前插件,请使用自然语言进行描述。 示例:根据输入的数字索引查询特定条目的寝室公约内容。
插件URL:插件的访问地址。 示例:https://domitorgreement-plugin-example-icohrkdjxy.cn-beijing.fcapp.run
- 同一个域名下,不同的路径被拆分成了不同的API(即下方创建工具中的工具路径)
-
同一插件下的不同工具使用相同的域名,每个工具的工具路径对应一个独立的API
例如:xx插件下包含两个API:
查询:https://xxx.com/query
删除:https://xxx.com/delete
在这个示例中,
https://xxx.com对应插件URL,/query和/delete对应下方创建工具中的工具路径。这表明该插件下包含两个工具。
鉴权参数说明
Header列表(可选)
需要鉴权时,可以通过自定义Header传递鉴权信息。
是否鉴权(可选)
当阿里云百炼应用调用您的自定义插件时是否需要鉴权。此处是否需要鉴权主要取决于API提供方的安全策略。
鉴权类型
鉴权包括服务级鉴权和用户级鉴权两种方式。
位置:支持将鉴权信息放在Header或Query中。
Header:将鉴权信息放在HTTP请求头的Authorization字段中,这些信息在URL中不可见。
Query:将鉴权信息放在URL中,例如https://example.com?api_key=123456。
参数名:如果将鉴权信息放在Query中需填写鉴权时使用的参数,如“api_key”。如果将鉴权信息放在Header中将默认此参数为“Authorization”。
Type:
basic:不会在您提供的Token前加任何内容;
bearer:会在Token前增加“Bearer”;
appcode:会在Token前增加“APPCODE”。
两种type都会放在鉴权参数字段中。例如:选择bearer,则调用插件时会变成(“Authorization”: “Bearer <YOUR_TOKEN>”)。
Token(服务级鉴权):从API提供方获取的鉴权Token,如API Key。
- 填写完成后单击确认创建插件创建工具或单击继续添加工具。
步骤二:创建工具
-
填写工具信息、配置输入/输出参数以及高级配置。
本示例中,工具名称填写"寝室公约查询工具",工具描述填写"根据输入的数字索引查询特定条目的寝室公约内容",工具路径填写
/article,请求方法选择POST,提交方式选择application/json。输入参数:参数名称article_index,参数描述为"索引",类型为Number,传入方法为Body,必填,传参方式为大模型识别。输出参数:参数名称article,参数描述为"寝室公约内容",类型为String。高级配置中,用户输入Query为"请根据输入的索引值,查询对应条目的寝室公约内容",输入参数article_index的Value为5。工具参数说明
工具信息
工具名称
输入具有语义的名称,支持中英文。
工具描述
对工具功能和使用场景的简要说明。
帮助大模型判断当前任务是否需要调用该工具,请使用自然语言进行描述,尽量给出使用示例。
工具路径
指向插件URL的相对路径。
字段名必须以正斜杠(/)开头。
此路径将拼接到插件URL上,以构建完整的URL。
请求方法
根据实际需求选择GET或POST请求方法来调用API接口。
提交方式
请求或响应的编码类型。
application/json:主体内容是JSON格式的数据。
application/x-www-form-urlencoded:将表单数据编码为键值对。
这种编码方式用于 POST 请求,表单数据编码为键值对,并通过 URL 编码传输。多个键值对之间用 & 分隔,每个键和值之间用 = 分隔。URL 编码会将特殊字符转换为 % 后跟两位十六进制数的形式。例如,空格会被编码为 %20,& 会被编码为 %26,= 会被编码为 %3D
示例:
name=John Doe&age=25被编码为name=John%20Doe&age=25
配置输入参数与输出参数
配置输入参数
单击增加入参,配置参数信息。
参数名称:尽可能带有含义,帮助大模型理解当前需要识别的参数信息是什么。例如
city。参数描述:对该入参的功能描述,要简练且准确,帮助大模型进一步理解取参的方式。例如,
date,描述为日期的同时,可以再进一步描述date的形式,比如yyyy-MM-dd。类型:指参数类型。
Object类型下的子属性不能为空。请单击该对象行末的
图标新增子属性。传参方式:要设置准确。
大模型识别:表示该参数的值需要大模型从用户输入中提取。
业务透传:表示该参数的值从外部主动透传,传递过程中不对数据进行处理或修改。
使用DashScope SDK或HTTP接口调用应用时,插件中的业务透传类型的输入参数信息通过
biz_params和user_defined_params传递给应用。具体请参见应用的参数传递。
配置输出参数
单击增加出参,配置参数信息,所有参数均为必填项。
大模型会根据出参的定义,结合用户的问题,对API返回的结果进行筛选、重新组合,作为最终的答案返回给用户。
出参与入参一样,需要尽可能精简和准确描述,嵌套的层级也尽可能少。
无论请求方式是GET还是POST,参数都支持Object类型。但Object类型下的子属性不能为空。请单击该对象行末的
图标新增子属性。高级配置(可选)
高级配置
为大模型增加调用示例,减少漏召回和误召回的情况。
通常用于入参比较复杂,模型构造容易出错的场景,通过提供一些样例,提升大模型调用插件的准确性。
Value:表示用户输入当前的Query时,期望大模型构造出的调用入参。示例:用户输入:“查询杭州明天的天气”,期望构造入参为:
{"city": "杭州", "date": "2025-04-25"}。 - 配置完成后单击保存草稿。
-
在线调试工具API能否调通。
单击测试工具,输入鉴权信息(开启鉴权时填写)及入参的值,单击开始运行。 如果运行失败,请根据运行结果中的报错信息对配置进行调整,并重新进行测试,直至成功运行。
入参的值可以手动输入,也可以通过代码输入。对于入参较为复杂的情况,建议采用代码模式编辑。您可以在代码编辑器中提交完整的JSON格式的入参及其相应的值。 - 测试通过后单击发布。只有已发布的工具才能在应用中被调用。
使用插件
- 控制台
- API
-
方式一:将插件发布为MCP服务,然后在智能体应用中添加该MCP服务。
步骤一:将插件发布为MCP服务
-
在插件列表中,将鼠标悬浮在目标插件卡片上,单击发布为MCP服务。
如果插件已转为MCP服务,按钮显示为查看MCP服务,单击可跳转到MCP管理页面查看服务详情。
- 发布成功后,可在MCP管理页面查看该MCP服务的详细信息,包括服务名称、服务描述、服务ID等。
- 进入智能体应用的编排页面,在MCP区块中,单击+。
-
在选择MCP服务面板中,切换到自定义MCP页签,找到从插件转换的MCP服务,单击添加全部将其添加到应用中。
您也可以单击从插件转MCP,将尚未转换的插件直接发布为MCP服务。
-
测试插件的使用效果是否符合预期。
- 无鉴权:您可以在输入框中与大模型进行对话,测试插件使用效果。
-
用户级鉴权、服务级鉴权:您需要在开启对话前,单击
配置需要传入的鉴权Token。如果不离开当前页面,可以只配置一次。
从云市场导入的插件,不需要在当前页面输入鉴权Token。
-
工具入参的传参方式选择了业务透传:您需要在开启对话前,单击
配置需要传入的变量值。如果不离开当前页面,可以只输入一次。
- 测试完成后,发布应用。
-
在插件列表中,将鼠标悬浮在目标插件卡片上,单击发布为MCP服务。
- 方式二:在应用管理页面中,进入智能体应用的编排页面,在MCP区块中添加MCP服务,测试插件使用效果,并发布应用。
管理自定义插件与工具
删除插件
删除插件
编辑插件
编辑插件
- 在插件列表中,找到目标插件,单击查看详情。
- 单击右上角的编辑插件,修改插件信息并保存。 插件信息保存后立即生效。如果修改了插件的URL、Header、鉴权信息,可能会影响工具调用,请重新测试并发布工具。
编辑工具
编辑工具
- 在插件列表中,找到工具所属插件,单击查看详情。
- 单击工具所在行的编辑,修改工具信息并单击保存草稿。
- 单击测试工具,在线调试工具。
- 运行成功后单击发布。
删除工具
删除工具
- 在插件列表中,找到工具所属插件,单击查看详情。
- 单击工具所在行的删除。
错误码
发布工具时的常见错误信息如下表所示:
错误码 | 错误信息 | 说明 |
|---|---|---|
130040 | xx缺少参数描述信息 | 原因:xx参数的参数描述缺失。 解决方案:请您补充参数描述后重新发布工具。 |
130022 | 保存工具信息异常/请检查示例参数是否正确 | 可能原因一:输入参数或输出参数中的Object类型参数子属性为空。 解决方案:请点击该对象行末的 可能原因二:请求方法选择了GET,但输入参数配置时,存在参数为Object类型。 解决方案:GET请求方法下的输入参数不支持Object类型,请选择其他类型。 |
图标上。
图标,复制工具ID。