coze学习03-资源库

一、插件

coze中的插件是一个工具集,一个插件内可以包含一个或多个工具(API)。

image-20250622222635024

image-20250622221641036

然后进入此插件内,再点击“在IDE中创建工具”,再“创建工具”:

image-20250622222810864

代码输入框内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import { Args } from '@/runtime';
import axios from 'axios';

interface Input {
qq: string; // 必填:搜索关键词
keykey: string; // 必填:API密钥
}

interface SearchResult {
title: string;
link: string;
snippet: string;
}

interface Output {
success: boolean;
error?: string;
results: SearchResult[];
related?: string[];
}

export async function handler({ input, logger }: Args<Input>): Promise<Output> {
// 基本参数验证
if (!input.qq || !input.keykey) {
const errorMsg = 'Missing required parameters: both "q" and "key" are required';
logger.error(errorMsg);
return {
success: false,
error: errorMsg,
results: []
};
}

try {
const { data } = await axios({
method: 'post',
url: 'https://google.serper.dev/search',
headers: {
'X-API-KEY': input.keykey, // 使用动态API密钥
'Content-Type': 'application/json'
},
data: JSON.stringify({
q: input.qq,
gl: 'us', // 默认国家:美国
hl: 'en', // 默认语言:英语
num: 10, // 默认结果数:10
page: 1, // 默认页码:1
location: '', // 默认地点:空
tbs: '' // 默认日期范围:空
}),
timeout: 10000
});

logger.info(`Successfully fetched ${data.organic?.length || 0} results for "${input.qq}"`);

// 结果格式化
const results: SearchResult[] = data.organic?.map((item: any) => ({
title: item.title,
link: item.link,
snippet: item.snippet
})) || [];

return {
success: true,
results,
related: data.related?.map((r: any) => r.query) || []
};

} catch (error: any) {
// 精简错误信息提取
const errorMsg = error.response?.data?.message || error.message || 'Unknown search error';
logger.error(`Search failed for "${input.qq}": ${errorMsg}`);

return {
success: false,
error: errorMsg,
results: []
};
}
};

可以看到,代码中使用到了依赖包axios,所以需要另外安装。在左下角的安装依赖包中,搜索“axios”进行安装。

在"元数据"tab页中,此时只需要填写“输入参数”即可,输出参数暂时无须理会,后续会自动填充好:

image-20250622223106946

然后在右上角的“测试代码”—>“输入”中输入如下内容:

1
2
3
4
{
"qq": "北京市",
"keykey": "489883104d20921412XXXX"
}

其中keykey字段填写的是从serpr中申请分配到的api key。(serper官网:https://serper.dev/ ,大陆可用,新用户免费调用2500次。使用此第三方api来调用谷歌搜索)

填写好后,点击“输入”框下面的”运行“按钮,正常的话,可以在控制台中看到如下内容:

1
2
3
4
Test run "google" started
Executing...
Successfully fetched 8 results for "北京市"
Execute success, cost: 3350ms, function_cost: 3047ms

此时点击右上角的“发布”按钮,可以将此插件工具发布了,后续可以在智能体使用了。

image-20250622223736413

二、知识库

知识库中内容是相对静态的知识,可以在不同智能体中间进行共享的。由知识库开发者创建与维护,终端用户在智能体中使用知识库中不能对知识库进行修改。

image-20250622223915438

以下创建扣子知识库,其类型是图片知识库中,就是说其中只保存图片类型知识。

向其中上传图片(以下测试图片的下载链接: https://zxdwhda-share.feishu.cn/wiki/M7towKWKhiLMxWkTCincqhDAnjc#share-UuaEdXFVQoDkXJxUl5wct12mnog)时,选择自动标注,让大模型对图片中的内容进行描述与标注:

image-20250622224501641

等到知识库中所有图片都被标注成功后,就可以使用此知识库了。

三、使用自定义插件与知识库

以下在智能体“夸夸机器人”中使用自定义插件与知识库,首先修改配置。

image-20250622225453898

修改下提示词(主要是添加第5点技能):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 角色:夸夸机器人
{#InputSlot placeholder="角色概述和主要职责的一句话描述" mode="input"#}你是一个能够不断鼓励用户的积极向上的机器人{#/InputSlot#}

## 目标:
{#InputSlot placeholder="角色的工作目标,如果有多目标可以分点列出,但建议更聚焦1-2个目标" mode="input"#}你总是能够发现用户提问中的积极身上的点,给予积极反馈{#/InputSlot#}

## 技能:
1. {#InputSlot placeholder="为了实现目标,角色需要具备的技能1" mode="input"#}如果用户提到了自己的某些特征,你可以从中发掘出用户的特长或优点,或这些特征有什么益处{#/InputSlot#}
2. {#InputSlot placeholder="为了实现目标,角色需要具备的技能2" mode="input"#}如果用户提到了自己的特长或优势,你会鼓励用户可以继续进步的方向或方法,同时提醒用户要注意的点比如不要骄傲粗心等{#/InputSlot#}
3. {#InputSlot placeholder="为了实现目标,角色需要具备的技能3" mode="input"#}如果用户表现出颓废或低落的心态,你会安慰用户或从中发现用户的闪光点,给出一些激励的话{#/InputSlot#}
4. {#InputSlot placeholder="为了实现目标,角色需要具备的技能4" mode="input"#}如果你没有明显察觉到用户的心理特征是积极还是消极的,你可以使用问一些相关的问题循循善诱,以增加对用户的了解、更加地做出判断,然后给出回复{#/InputSlot#}
5. {#InputSlot placeholder="为了实现目标,角色需要具备的技能4" mode="input"#}你可以从知=知识库中查找相关内容,分享给用户,以让用户获得好的阅读或视觉体验{#/InputSlot#}

## 限制:
- {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件1" mode="input"#}你绝对不能输出负面消极的措辞{#/InputSlot#}
- {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件2" mode="input"#}一般情况下,回复的内容要精简(50字以内)。如果某些情况下,回复内容较多,也不能超过300字{#/InputSlot#}
- {#InputSlot placeholder="描述角色在互动过程中需要遵循的限制条件3" mode="input"#}不能辱骂用户{#/InputSlot#}

3.1 文字相关内容问答:

image-20250622225642539

此时长期记忆中,只有如下内容:

image-20250622225700612

3.2 图文相关内容问答:

image-20250622225741213

召回的内容很准确(以下是知识库中上传的图片及其标注内容):

image-20250622225824554

coze学习03-资源库
https://jiangsanyin.github.io/2025/06/22/coze学习03-资源库/
作者
sanyinjiang
发布于
2025年6月22日
许可协议