创建工具
工具是一组相关的API集合,一个工具通常包含多个执行动作,每个执行动作用于实现特定功能。例如,一个天气查询工具可能包含查询当前天气、未来天气预报等执行动作,每个动作通过调用相应的API来实现。
平台在资产中心预置了部分工具,同时也支持用户根据需求自定义创建工具。在Agent中添加工具,可以对Agent进行能力扩展。
前提条件
- 需要具备AI原生应用引擎管理员或开发者权限,权限申请操作请参考AppStage组织成员申请权限。
- 已获取API服务的连接信息以及调用API所需的访问权限和密钥。
创建工具
将选定的API服务注册为一个工具。
- 进入AI原生应用引擎。
- 在AI原生应用引擎的左侧导航栏选择“Agent编排中心 > 我的工具”,单击“创建工具”。
- 在“创建工具”页面,配置如表1所示参数。
表1 工具参数配置说明 参数名称
参数说明
名称
自定义工具名称。名称长度不能超过32个字符,可包含中文、大小写字母、数字、下划线、中划线、英文小括号,不能以下划线、中划线、英文小括号开头。
描述
填写工具功能或作用等描述。
图标
支持选择系统图标。
协议
API服务接口通信协议。
- https
- http
主机地址
提供API服务的服务器地址。以https://aiae.appstage.myhuaweicloud.com/v1/chat/completions为例,主机地址为aiae.appstage.myhuaweicloud.com。
基准URL
基准URL(Base URL)指的是域名的根路径,默认为/。必须以/开头,且不能有连续多个/,不包含除/._-以外的特殊字符和空格。
以https://aiae.appstage.myhuaweicloud.com/v1/chat/completions为例,基准URL可以填写为/、/v1、/v1/chat或/v1/chat/completions。原则上基准URL+执行动作中填写的接口路径拼接起来为完整的/v1/chat/completions即可。
验证方式
API的验证方式。
- 基本认证:用户在创建连接时提供有效的用户名(Username)和密码(Password)即可,此处无需定义。
- API key:用户在使用连接器前需提供API密钥所需的字段,以及该验证所必须的字段值。
- OAuth 2.0:使用Oauth 2.0身份验证框架对服务进行身份验证。 在使用此身份验证类型之前,需要向服务注册应用程序,以便它可以接收用户的访问Token。
- IAM:该认证用于通过用户名/密码的方式来获取IAM用户的Token。华为IAM认证的使用方式参考获取IAM用户Token。
- AK/SK:使用访问密钥ID(AK,Access Key ID)和密钥(SK,Secret Access Key)对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份验证。用户在创建连接时输入值即可,此处无需定义。
APIG的App认证则需提供AppKey以及AppSecret。
- 自定义:自定义用户在创建连接时的身份验证方式。
- 无验证:用户不需要任何身份验证即可创建与连接器的连接。无验证时,任何用户都可以使用您的连接器。
- 配置完单击“创建”。
工具创建成功后,进入工具详情页面,请参考创建执行动作添加执行动作。
创建执行动作
添加API服务下的具体接口作为工具的执行动作。
- 在工具详情页面,单击“创建执行动作”,配置执行动作基础信息,参数如表2所示。
- 单击“下一步”,配置输入,参数如表2所示。
表3 输入参数说明 参数
说明
接口路径
API的请求路径。必须以/开头,且不能有连续多个/,不包含除/_-:@%+.~#?&={}[]()、$以外的特殊字符和空格。
以https://aiae.appstage.myhuaweicloud.com/v1/chat/completions为例,接口路径可以填写为v1/chat/completions、/chat/completions、/completions或不填。原则上基准URL+执行动作中填写的接口路径拼接起来为完整的/v1/chat/completions即可。
输入参数
API的请求参数,如果被调用API没有请求参数可不填。
- 请求头(Header):HTTP请求消息的组成部分之一,请求头负责通知服务器有关于客户端请求的信息。
单击参数列表“操作”列的
可以新增参数,参数配置说明请参见表4。
- 请求体(Body):HTTP请求消息的组成部分之一,请求体呈现发送给服务器的数据。
- JSON/XML:JSON、XML格式的数据。
如果请求体使用XML格式,XML header参数必须配置。
- 导入:可直接粘贴被调用API的JSON、JSON Schema或XML数据,减少逐个配置参数的工作量。导入文件示例请参见JSON Schema/JSON/XML文件示例。
- 复制:复制请求体参数的JSON或XML数据。
- 预览:可以预览参数的JSON或XML结构。
- 参数列表“操作”列的
:可选择是否开启“是否支持根节点输入”参数,开启并发布对应工具后,在创建流中添加该执行动作时可以自定义请求体参数的值。
- 参数列表“操作”列的
:新增参数,参数配置说明请参见表4。
- form-data:表单数据,用于网页表单提交(含文件上传)、多类型数据混合传输(如文本 + 图片)。
参数列表“操作”列的
:新增参数,参数配置说明请参见表4。
- Binary:直接传输非文本数据(如图片、视频、音频、可执行文件等),不进行结构化解析,以原始字节流形式发送。
输入、输出仅支持配置一处。例如,输出入参数选择了“Binary”,则输出不显示,反之亦成立。
- JSON/XML:JSON、XML格式的数据。
- 查询参数(Query):查询参数会追加到URL。例如,在 /items?id=#### 中,查询参数为ID。
单击参数列表“操作”列的
可以新增参数,参数配置说明请参见表4。
- 路径参数(Path):自动解析接口路径中包含的路径参数。
表4 参数配置说明 参数
说明
XML header
当请求体为XML格式数据时,必须配置此参数。
XML header为XML文档的声明头,用于定义XML文档的基本格式和编码规则,是XML文档的标准起始部分。
参数名称
输入参数的名称。由1~128个字符组成,不能以中划线、英文小括号、空格开头。
显示字段
用户在表单中看到的参数项标签。
必填
勾选该参数是否是用户必填项。
参数类型
选择参数类型,支持string、number、boolean、integer类型。
此外,当请求体(Body)为JSON或XML时,还支持array、object类型参数;当请求体(Body)为form-data时,还支持file类型参数。
说明
关于输入值的介绍说明。
操作
- 单击
:配置参数在界面的显示样式。配置完成并发布对应工具后,在创建流中添加该执行动作时可以查看参数的界面显示效果。
- 参数类型:选择参数类型。
- 格式:设置用户输入该参数时界面显示的样式,可选择文本框、日期时间、富文本、下拉列表。不同的参数类型可选择的格式不同。
当格式选择为下拉列表时,需设置标签和下拉列表的值。单击“新增”可进行添加。
设置完成后,如果勾选了“支持多选”,则可在创建流中添加该执行动作时选择多个值,否则,只能选择一个值。需要配置分隔符,分隔符只能输入单个特殊字符,如“,”“$”、“%”、“^”、“&”等,不设置时,默认为“,”。
- 可见性:设置用户输入该参数时界面显示的可见性。
无:在流中正常显示。
高级:默认隐藏在高级设置菜单里。
隐藏:该参数向用户隐藏。
重要:优先显示在表单的最开始。
- 默认值:当格式选择为文本框、日期时间、富文本时,支持设置该参数的预设值。
- 单击
:新增节点。
- 单击
:删除该节点。
- 请求头(Header):HTTP请求消息的组成部分之一,请求头负责通知服务器有关于客户端请求的信息。
- 单击“下一步”,配置输出参数,参数如表2所示。
表5 输出参数说明 参数
说明
添加响应
单击“添加响应”,根据被调用API的响应码信息添加响应码。
输出参数
配置输出参数,如被调用API没有响应参数可不填。
- 响应体:HTTP响应消息的组成部分之一,响应体呈现发送给服务器的数据。
- JSON/XML:JSON、XML格式的数据。
- 参数列表“操作”列的
:新增参数,参数配置说明请参见表4。
- 当选择XML格式时,单击参数列表“操作”列的
,配置XML标签名。
- 导入:可直接粘贴被调用API的JSON Schema、JSON或XML数据,减少逐个配置参数的工作量。导入文件示例请参见JSON Schema/JSON/XML文件示例。
- 复制:复制请求体参数的JSON或XML数据。
- 预览:可以预览参数的JSON或XML结构。
- 参数列表“操作”列的
- Binary:文件格式数据。输入、输出仅支持配置一处。例如,输出入参数选择了“Binary”,则输出不显示,反之亦成立。
- JSON/XML:JSON、XML格式的数据。
- 响应头:HTTP响应消息的组成部分之一,响应头负责通知服务器有关于客户端请求的信息。
单击参数列表“操作”列的
可以新增参数,参数配置说明请参见表4。
- 响应体:HTTP响应消息的组成部分之一,响应体呈现发送给服务器的数据。
- 单击“下一步”,调试校验工具,验证工具是否可用。
- 工具调试完成后,单击“保存”。
JSON Schema/JSON/XML文件示例
- JSON Schema
{ "properties": { "str": { "description": "", "default": "", "x-hw-default": "", "type": "string", "x-hw-label": "", "x-hw-visibility": "none", "format": "input", "x-hw-format": "input", "x-hw-select-options": [] }, "obj": { "description": "", "default": "", "x-hw-default": "", "type": "object", "x-hw-label": "", "x-hw-visibility": "none", "format": "input", "x-hw-format": "input", "x-hw-select-options": [], "properties": { "obj_str1": { "description": "", "default": "", "x-hw-default": "", "type": "string", "x-hw-label": "", "x-hw-visibility": "none", "format": "input", "x-hw-format": "input", "x-hw-select-options": [] }, "obj_str2": { "description": "", "default": "", "x-hw-default": "", "type": "string", "x-hw-label": "", "x-hw-visibility": "none", "format": "input", "x-hw-format": "input", "x-hw-select-options": [] } }, "required": [ "obj_str1", "obj_str2" ] }, "arr": { "description": "", "default": "", "x-hw-default": "", "type": "array", "x-hw-label": "", "x-hw-visibility": "none", "format": "input", "x-hw-format": "input", "x-hw-select-options": [], "items": { "description": "", "default": "", "x-hw-default": "", "type": "string", "x-hw-label": "", "x-hw-visibility": "none", "format": "input", "x-hw-format": "input", "x-hw-select-options": [] } } }, "required": [ "str", "obj", "arr" ], "type": "object" }
- JSON
{ "str": "string", "obj": { "obj_str1": "string", "obj_str2": "string" }, "arr": [ "string", "string" ] }
- XML
<root> <str>string</str> <arr>string</arr> <arr>string</arr> <arr>string</arr> <obj> <obj_str1>string</obj_str1> <obj_str2>string</obj_str2> </obj> </root>
更多操作
工具创建完成后,您可以执行如表7的操作。
操作 |
说明 |
---|---|
设置工具鉴权 |
在工具列表中单击操作列的“设置鉴权”,设置鉴权信息,单击“保存”。只有经过身份验证和授权的用户才能使用工具。 |
创建执行动作 |
在工具列表中单击工具名称,在工具详情页面创建执行动作,具体操作请参见创建执行动作。 |
下载工具 |
在工具列表中选择操作列的 ,下载工具的.json格式文件。 |
导入更新工具 |
在工具列表中选择操作列的 ,以导入.json格式API文件的方式更新工具。 |
编辑工具 |
|
删除工具 |
工具删除后无法恢复,请谨慎操作。
|
编辑工具的执行动作 |
在工具列表中单击 |
测试执行动作 |
在工具列表中单击 |
删除执行动作 |
在工具列表中单击 |
相关文档
- 工具创建完成后,可在Agent、工作流中调用或通过API调用,请参考在AI原生应用引擎中创建单Agent(自主规划模式)、创建工作流以及调用工具的执行动作。
- 工具相关的OpenAPI请参见应用中心。
- 工具的输入参数支持图片格式吗。
- 用户如何将自己的接口接入AI原生应用引擎并通过Agent调用。