# 创建工具

## 工具基本信息

工具可以理解为一个API，一个插件里可以创建多个工具即关联多个API，如一个电影插件，可能会有查电影和查排片的影院等多个工具。（工具的名称、描述、参数定义会影响function call结果，需要定义清楚）。

在已创建的插件内创建工具。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/58/v3/Jw1dXeN5QfGbkL9gk271sw/zh-cn_image_0000002733447078.png?HW-CC-KV=V1&HW-CC-Date=20261030T103301Z&HW-CC-Expire=31536000000&HW-CC-Sign=4EF8FBF2E6CD1C47FBA59A26DE2A145E1E7D07D20DDBC6D5B3CC7B0810C0CE88 "点击放大")

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c5/v3/6_dDZWHsTqCIlSNwEQvZPA/zh-cn_image_0000002733287202.png?HW-CC-KV=V1&HW-CC-Date=20261030T103301Z&HW-CC-Expire=31536000000&HW-CC-Sign=C580E177B7F89F2896E8B2590EC66B4F5A11A0ECB02F4BA0470281CEE1FE87A0 "点击放大")

### 数据处理方式

批处理：处理有界数据集（完整的数据集）。

流处理：处理无界数据流（可能不完整的、持续到达的数据）（插件需为Websocket或SSE协议）。

### 输入参数配置

> 注意
>
> 云插件创建工具时，同一个插件里的所有工具都需配置**输入参数和输出参数**，Get请求的输入参数指定参数方式为Query。如果插件中有工具的输入/输出参数为空，会影响其他工具使用。

缺省值：当参数必填且值为空时，会自动填入缺省值。

开启开关：关闭后参数对模型不可见，当插件参数为固定值时，可关闭此开关，使用缺省功能，减少Agent中的大模型调用插件时的流程，提高调用效率。

（必填的输入参数，如果想关闭开启开关，则需要填写缺省值）。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/40/v3/nOWbmFHiRhaN2ij38s0S8Q/zh-cn_image_0000002762846715.png?HW-CC-KV=V1&HW-CC-Date=20261030T103301Z&HW-CC-Expire=31536000000&HW-CC-Sign=9151D186EC33EA847EEFF1ED8577B0E94A00E2FCE0E9FFD300D0A07D7E576ABD "点击放大")

### 输出参数配置

批处理插件可自定义输出参数。

流处理插件输出参数配置：

注意：流插件含默认输出参数streamInfo（string类型），插件在工作流中使用时，后续节点引用streamInfo即可获取streamContent的内容。

**配置样例：**

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/70/v3/OJsqQTmtT3O8qsMO6oYo_Q/zh-cn_image_0000002763006603.png?HW-CC-KV=V1&HW-CC-Date=20261030T103301Z&HW-CC-Expire=31536000000&HW-CC-Sign=F4B028C15DFD5461E52C87E468CD82E8B05DED9E1740AD8BB127581859B53178 "点击放大")

流处理插件输出参数说明：

**参数：**

|参数|-|参数类型|O/M|说明|
|:-----------|:---------|:-----------------|:--|:---------------------------------------------------------------------------------------------------------|
|errorCode|-|String|M|响应码，成功返回0，非0视为失败。|
|errorMessage|-|String|O|描述信息。|
|reply|-|Object|M|响应内容。|
|reply|streamInfo|Object[StreamInfo]|M|答复文本结构。|
|reply|items|Array<Object>|O|结构化数据，通常用来绑卡。结构内参数可自定义。注意： * 非文卡混排输出场景，只有final帧的items结构有效。 * 文卡混排输出场景，结构内必须含displayType且值固定为EmbedMarkdown；|

**StreamInfo** **:**

|参数|参数类型|O/M|说明|
|:--------------|:-----|:--|:------------------------------------------------------------------------------------------------------------------------------------------------|
|streamContent|String|M|截止到当前帧的全量输出内容；支持[输出markdown格式](https://developer.huawei.com/consumer/cn/doc/service/markdown-grammar-0000002553963585)。示例：第一帧："今天"，第二帧："今天天气真好呀"。|
|streamingTextId|String|M|流式文本Id；一次请求的答复中所有帧id相同。|
|streamType|String|M|start|partial|final（流式类型，需按顺序发送start开始帧，partial中间帧，final结束帧）。|
|textType|String|M|文本格式，值固定为plainText或[markdown](https://developer.huawei.com/consumer/cn/doc/service/markdown-grammar-0000002553963585)。|

输出示例：

```screen
{
	"errorCode": "0",
	"errorMessage": "",
	"reply": {
		"streamInfo": {
			"streamContent": "你好呀，有什么想要跟我聊的呢？",
			"streamingTextId": "5aae898d-2346-4ad4-bad6-2fcd8d911d3d",
			"streamType": "final",
			"textType": "markdown"
		},
		"items": [{   
			"displayType": "EmbedMarkdown", 
			"movieName": "匿杀",    
			"image": "https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3341425c9a1374c5b28aaa4028dbd34ae4.jpg",    
			"deepLink": {}
		}]
	}
}
```

