当前位置: 首页 > news >正文

Datawhale coze-ai-assistant task2

三、Agent的创建

在第一章中我们已经讲过了什么是智能体,在第二章讲了关于coze的一些内容,那么现在,我们来尝试在coze创建我们自己的智能体。

1. 智能体搭建步骤

  1. 创建一个智能体

    1. 登录coze官网,并选择开发平台

      在这里插入图片描述

    2. 点击左上角创建

在这里插入图片描述

  1. 选择创建智能体

    在这里插入图片描述

  2. 输入智能体名称和功能介绍,并为应用生成头像,最后点击右下角确认

    在这里插入图片描述

  3. 智能体配置

创建完智能体后,我们来看一下智能体相关的配置页面

img

接下来我们逐步解释以下上述三部分的作用

  • 人设与回复逻辑(即大模型中的提示词工程):智能体的人设与回复逻辑定义了智能体的基本人设,此人设会持续影响智能体在所有会话中的回复效果。建议在人设与回复逻辑中指定模型的角色、设计回复的语言风格、限制模型的回答范围,让对话更符合用户预期。

  • 技能、知识、记忆以及对话体验:为智能体配置各种扩展能力,比如说添加知识库、设置模型开场白等

  • 预览与调试:在智能体的各种配置完成之后,我们可以对我们配置的进行调试,方便我们对智能体进行及时的调整

    1. 编写提示词,若有需要,可以使用右上角的优化对输入的提示词进行结构以及内容的优化

      在这里插入图片描述

  1. 调试智能体

    在这里插入图片描述

  2. 发布智能体

    完成调试后,单击发布将智能体发布到各种渠道中,在终端应用中使用智能体。

    目前支持将智能体发布到飞书、微信、抖音、豆包等多个渠道中,你可以根据个人需求和业务场景选择合适的渠道。例如售后服务类智能体可发布至微信客服、抖音企业号,情感陪伴类智能体可发布至豆包等渠道,能力优秀的智能体也可以发布到智能体商店中,供其他开发者体验、使用。

    1. 在智能体的编排页面右上角,单击发布,并点击中间的确认。

      在这里插入图片描述

    2. 在发布页面输入发布记录,并选择发布渠道。

    3. 单击发布。

      在这里插入图片描述

2. 设置智能体模型

1. 选择模型

我们可以在上述编排页面选择合适的大模型。选择模型并完成智能体的技能、知识等设置后,你也可以切换成不同的模型,测评各个模型在同一个智能体中的效果,选择最合适的模型。

在这里插入图片描述

2. 生成多样性

用于从多个维度调整不同模型在生成内容时的随机性。扣子提供以下预置的模式供你选择,每个模式的模型参数取值不同。

你也可以根据需求,展开 高级设置 ,修改每个模式下的具体参数值。建议不要同时调整生成随机性和 Top P,以免在多参数的影响下难以判断每个参数的调整效果。

配置项说明
生成随机性即 temperature,用于控制结果的随机性。**调高此参数值,会使模型的输出更具多样性和创新性。降低此参数值,会使输出内容更加严格遵循指令要求。当该数值接近零时,模型将变得确定和重复。**在基于事实的问答场景,你可以使用较低的回复随机性数值,以获得更真实和简洁的答案,例如售后客服场景;在创造性的任务例如小说创作,你可以适当调高回复随机性数值。
Top P累计概率。模型在生成输出时会从概率最高的词汇开始选择,直到这些词汇的总概率累计达到 Top P 值。这样可以限制模型只选择这些高概率的词汇,从而控制输出内容的多样性。
重复语句惩罚frequency penalty,用于控制模型输出重复语句的频率。当该值为正时,会阻止模型频繁使用相同的词汇和短语,从而增加输出内容的多样性。
重复主题惩罚presence penalty,用于控制模型输出相同主题的频率。当该值为正时,会阻止模型频繁讨论相同的主题,从而增加输出内容的多样性。

3. 输入及输出设置

用于指定模型的输出格式等参数,通常包括以下设置:

配置项说明
携带上下文轮数设置代入模型上下文的对话历史轮数。轮数越多,多轮对话的相关性越高,但消耗的 Token 也越多。
最大回复长度智能体在生成提示和响应时,所输出的最大 token 数量,不同模型的 token 限制也不同。指定最大长度可以防止过长或不相关的响应并控制成本。
输出格式模型输出内容的格式,例如文本、Markdown。

在这里插入图片描述

4. 插件

插件能够让智能体调用外部 API,例如搜索信息、浏览网页、生成图片等,扩展智能体的能力和使用场景。

  1. 添加插件

    在上一步中设置模型为 角色扮演 ,这个模型的工具调用能力较弱,我们可以先看一下 角色扮演 可不可以调用插件

    注意:添加插件时要同步在提示词中进行插件的添加,否则,模型并不一定会进行插件的调用

    在这里插入图片描述

  2. 测试效果

    会发现角色扮演模型并没有调用工具。将模型换成工具调用再试一下。

    在这里插入图片描述

5. 卡片

Coze 平台上,消息卡片是 Bot 信息视觉化效果体现,以模块化构建组件的形式,支持以图文和按钮交互的方式,将信息展示给用户。

卡片的使用可以分为官方卡片、创建自定义卡片

  1. 如何配置卡片

    在这里插入图片描述

在这里插入图片描述

6. 触发器(未找到)

触发器(Triggers)是使智能体在特定时间或接收到特定事件时自动执行任务。

  1. 定时任务

    允许用户在与智能体对话过程中,根据用户所在时区创建定时任务。例如“每天早上八点推送新闻”。每个对话中最多创建 3 条定时任务。

7. 为智能体添加知识

  1. 在知识下选择合适的格式进行添加

    在这里插入图片描述

  2. 创建知识库

  3. 将准备好的文档上传到所创建的知识库中

  4. 等待分段处理完毕添加到智能体即可

    在这里插入图片描述

8. 长期记忆

上面我们通过上传知识库文件,让agent了解到我们自己,其实我们一般人是没有办法整理出这种个人信息的,那我们想让agent记住我们就可以使用扣子的长期记忆

  1. 开启长期记忆

    1. 创建长期记忆库
    2. 将长期记忆库添加到智能体中

与教程不一致,现在长期记忆与长期记忆库相关联

9. 对话体验

  1. 开场白

    开场白是用户进入智能体后自动展示的引导信息。它的主要目的是帮助用户理解智能体的用途,以及如何与其进行交互。

四、资源的玩法

1. 插件

1.1 插件是什么

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

插件与工具的关系:每个插件可添加多个工具,同一个插件内的不同工具必须使用相同的域名。插件中的每个工具都是一个独立的 API。智能体调用插件时,实际上是调用插件中的某个工具,也就是调用某个 API。

例如,一个天气查询的 API Service 可能会包含以下两个 API:

  • 查询当前天气:http://api.weather.com/current
  • 查询未来天气:http://api.weather.com/forecast

那么在创建插件时,每个 API 就是一个插件下的一个工具。

在这里插入图片描述

1.2 该如何创建插件

1.2.1 前期准备

要先确认好自己所需API,再获取对应的api链接及密钥

我们以https://serper.dev/为例(谷歌搜索api的平替)

先去对应官网注册,复制key即可

在这里插入图片描述

1.2.2 新建插件资源与工具

先进入coze开发空间首页,在资源库下添加插件资源

在这里插入图片描述

插件创建配置如下:

  • 插件名称谷歌搜索
  • 插件描述搜索网页
  • 插件工具创建方式云侧插件 - 在 Coze IDE 中创建
  • IDE 运行时Node.js

在这里插入图片描述

在插件下创建工具

点击左上角的添加工具,填入如下配置即可

  • 名称:Google_Search_Express
  • 描述:谷歌搜索快速版

在这里插入图片描述

工具创建页面板块功能介绍

在这里插入图片描述

  • 工具列表:根据上文插件与工具的关系,我们可以知道,一个插件可以包含多个工具,这个位置就是我们这个插件包含的工具组成的列表

  • 依赖包:管理依赖包,所有工具共用该依赖列表

    • 使用方式:单击 + 或者单击 添加依赖 按钮,输入依赖包名称并选择版本(可通过依赖名@版本号的格式进行搜索),然后安装依赖包。
    • 依赖包的解释:依赖包(也称为库、模块或包)是预先编写好的代码集合,用于解决特定的问题或提供特定的功能。是可复用的代码集合,提供特定功能(如数据处理、网络请求、UI组件等)。开发者通过导入这些包来避免重复造轮子,提升开发效率。
  • 代码:我们写代码或者让ai写代码的地方

  • 元数据:让大语言模型理解每个工具输入或输出参数有哪些、各个参数有何含义。因此,在工具的元数据内提供详细的参数说明,可以让大语言模型更准确的使用工具。当用户在使用该工具的智能体时,模型会根据工具的元数据信息,从用户问答中解析、提取出对应的输入参数,并选择调用该工具,流程图如下所示。

    在这里插入图片描述

    • 配置说明

      配置项描述
      名称工具名称。建议输入清晰易理解的名称,便于后续大语言模型搜索与使用工具。
      描述工具的描述信息,一般用于记录当前工具的用途。
      启用是否启用当前工具。使用说明:如果工具未开发测试完成,建议先禁用该工具,只启用并发布已通过测试的工具。如果需要下线某一工具,可将该工具设置为禁用,并再次发布插件。- 如果插件中只有一个工具,则不支持禁用该工具。如需下线该工具,您可以选择直接删除该插件,或者创建另一个工具并完成开发测试后,再禁用该工具,最后发布插件。
      输入参数当前工具对应接口的输入参数信息。准确、清晰易理解的参数名称、描述等信息,可以让大语言模型更准确的使用工具。
      输出参数当前工具对应接口的输出参数信息。准确、清晰易理解的参数名称、描述等信息,可以让大语言模型更准确的使用工具。
  • 测试:只需要写输入就可以,控制台是我们查看日志的地方

1.2.3 完善工具
  • 安装依赖包

    • 搜索axios

      在这里插入图片描述

  • 填写代码

    import { Args } from '@/runtime';
    import axios from 'axios';interface Input {q: string;     // 必填:搜索关键词key: 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.q || !input.key) {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.key, // 使用动态API密钥'Content-Type': 'application/json'},data: JSON.stringify({q: input.q,gl: 'us',       // 默认国家:美国hl: 'en',       // 默认语言:英语num: 10,        // 默认结果数:10page: 1,        // 默认页码:1location: '',   // 默认地点:空tbs: ''         // 默认日期范围:空}),timeout: 10000});logger.info(`Successfully fetched ${data.organic?.length || 0} results for "${input.q}"`);// 结果格式化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.q}": ${errorMsg}`);return {success: false,error: errorMsg,results: []};}
    };
    
  • 编辑输入参数

    • 名称 q
      • 搜索关键词
    • 描述 key
      • API密钥
  • 测试:编辑入参运行即可

    在这里插入图片描述

    • 点击更新输出参数,即可将输出参数更新到元数据中
  • 发布:右上角点击发布即可,发布之后即可在资源库看到

2. 知识库

关于知识库的更详细内容可以参考hello agents中的记忆与检索章节。

对应课程:DataWhale coze-ai-assistant

http://www.dtcms.com/a/606689.html

相关文章:

  • NESTJS - RSA加解密
  • 自己服务器可以做网站如何做家教网站赚钱
  • 开发外贸网站开发企业官网的建设
  • 一、Rabbit MQ 初级
  • 单位网站建设费用神马搜索推广
  • 【MySQL】MySQL内置函数--日期函数字符串函数数学函数其他相关函数
  • 数据结构 力扣 练习
  • 2018年网站建设发言凯里网站开发
  • XML 和 JSON -----几种重要模式
  • 【读论文】基于LLM增强的全双工对话
  • 怎么做网站不被发现崇明网站开发
  • Java后端常用技术选型 |(二)工具类篇
  • FPGA教程系列-Vivado IP核BMG核
  • 【1.11】基于FPGA的costas环开发5——环路滤波器模块开发
  • 济南行知网站建设南京淄博网站建设工作室
  • 网站木马 代码网站建设新手
  • 汕头市国外网站建设公司百度关键词优化查询
  • 业务流低代码平台:从理念到实战
  • DebugView 学习笔记(8.9):什么是调试输出?为什么它是现场排障的“读心术”
  • RSS 语法:全面解析与优化指南
  • php能做手机网站吗口碑营销成功的案例
  • 【每日一面】BOM 是什么
  • 稀土抑烟剂在透明膜上的应用:安全与环保的双重保障
  • 郑州网站建设中心wordpress2016
  • 最新企业网站制作短链接网站
  • 建设部标准规范网站网页设计与制作教程考试试卷
  • 基于Python+OpenCV实现双目立体视觉的图像匹配与测距
  • duckdb使用详解
  • 【愚公系列】《MCP协议与AI Agent开发》010-MCP协议标准与规范体系(协议消息结构设计)
  • 3、日常脚本:文件去重(删除重复文件)