摘要:之前分享的几篇内容对新手不太友好,看到小伙伴们在留言区的反馈,制作过程中会遇到各种问题:
之前分享的几篇内容对新手不太友好,看到小伙伴们在留言区的反馈,制作过程中会遇到各种问题:
工作流:各种报错,不知道什么意思;代码:编程小白,完全不懂代码,看代码像看天书,也不会写代码,很难通过代码来拓展延伸做更多其他尝试;其他:也看到有小伙伴留言问,学 Coze 有啥用啊,这里想说的是 Coze 通过最近几次大的升级改版,可以在 Coze 里通过制作模板来赚点小钱。Tips:智能体是很多工作场景中的提效利器,对企业来说更甚,在我们 Coze 学习群里,已经有人通过给企业定制智能体来赚钱了,我们这里仅是给大家看一下,学智能体在未来更多的可能性,具体的这里不做过多介绍,大家感兴趣可自行了解哈~
好啦,回归正题,考虑到可能喜欢这篇文章的受众,对 AI、Coze 接触的阶段各不相同,后续打算尽力用通俗易懂的方式,和大家一起学习智能体(Agent),尽快成长为一个 Agent 全栈设计师!
通过这篇文章希望达成以下几个目标:
① 理解代码节点
② 使用代码节点
AI 辅编:新手友好,不懂编程也能写代码;AI 提示词:新手友好,不会写提示词,输入一句话,剩下的让 AI 优化完善。③ 代码节点优势
我们一个个来看~
在理解代码节点前,我们先和大家一起理解下「Bot、工作流、代码节点」之间的关系,因为在 Coze 里代码不能独立使用,是要在工作流里使用的的,所以我们使用关联性的方法来理解三者。
我们使用餐厅吃饭的场景来理解三者关系:
我们进到一家餐厅:
Bot(机器人):Bot 就是这家餐厅,根据顾客的需求提供各种服务,比如推荐菜品、点餐、结账等;工作流(Workflow):工作流就是这家餐厅的各种用户服务流程,每个工作流都是一系列步骤,比如服务员推荐菜品、顾客点餐、厨师做菜、结账等;代码节点(Code Node):代码节点就是每种服务流程里的一个环节。在顾客点餐流程里,顾客点了一道土豆丝,这道土豆丝是凉拌还是清炒,小葱香菜是否有忌口等需求,都需要明确清晰告诉服务员,记录清楚,方便厨师按需求做出顾客满意的土豆丝。顾客点餐示图:
如果我们这里的例子不够通俗易懂,大家可以使用国内 AI 大模型 Kimi 让它再多举例,来加深理解~
下图是 Coze 里「Bot、工作流、代码节点」三者的功能布局和层级关系:
三者关系:
① 项目开发:Coze 改版后,将 Bot 单独拆出来,改为「项目开发」独立模块;
② 资源库:有 6 种资源,这些资源大家可以理解为不同的积木,可以通过不同的组合,完成不同的「项目开发」;
资源共用:这 6 种资源是可以共用的,Bot1 可以使用创建的所有资源,Bot2 也可以使用,这是组件化的搭建方式,不同的资源可以理解为是不同的组件;提示词:改版后,新增了提示词模块,作为独立的资源,可以在需要的场景直接选择使用,而不需要每次写一遍,下面实操工作流里会提及怎么;③ 工作流:目前有 15 个节点,不同的节点可以完成特定的需求场景,每个节点可以理解为是一个小积木;
④ 代码节点:搭建工作流的其中一个小积木,可以理解为代码是个智能全能小积木,它可以完成复杂信息的计算和处理,比如信息加工、拼装或者打包,让整个流程更加智能化和高效。
代码智能小积木,示图:
我们初步理解代码在 Coze 里和相关模块的关系后,再来看看代码节点的使用。
在搭建工作流的过程中,像我一样不会写代码的小伙伴们,可能会想,工作流里有那么多节点,我是不是可以不用代码节点,换成别的节点呀来实现某个功能呀,哎,这个还真可行,我们一起来看下~
我们这里参考 Coze 使用指南的代码示例,通过搭建 2 个「生成随机数」的工作流,来理解代码节点:
使用代码节点:生成随机数使用大模型节点:生成随机数题外话(可不看):为什么用「生成随机数」做示例
写到这里,不知道有没有小伙伴和我一样在想,为什么 Coze 要用「生成随机数」这个来做示例?
我也不知道,所以让 AI 给我们解释下,AI 给了挺多理由,我这里精简下,给大家看几个容易理解的:
游戏和应用
游戏机制:游戏核心机制之一,用于生成随机事件、道具掉落等,增加游戏的可玩性和挑战性;应用功能:随机数可以用于生成验证码、随机推荐内容、抽奖等功能,提升用户体验;模拟真实场景
随机事件:在许多应用中,随机数可以模拟真实世界中的不确定性,比如天气变化、游戏中的随机事件等,使得程序更贴近现实。决策支持:在某些情况下,随机数可以用于模拟决策过程,比如在多个选项中随机选择一个,帮助用户做出选择。增加趣味性:
娱乐性:生成随机数可以用于创建有趣的互动体验,比如随机选择运势、幸运数字、游戏结果等,增加用户的参与感和乐趣;总结:
使用生成随机数的例子来讲解代码节点的使用,能够展示代码节点的灵活性和实用性,同时也能引导用户理解随机数在实际应用中的多种用途。
我能想到的一个用途就是生成随机 8 位数,作为密码,当然要备份记录好,别忘了就可以~
为了方便大家更好的理解代码节点,我们化繁为简,简单些,聚焦重点,只用一个代码节点完成工作流,完整工作流如下图:
该图来自 Coze 使用指南:具体查找路径「使用指南→最佳实践→工作流使用最佳实践→生成随机数」
让我们开始来搭建吧~
① 创建工作流
操作路径:Coze 平台 → 工作空间 → 团队空间/个人空间(都可) → 资源 → 工作流,如下图:
添加工作流
工作流名称:random_number工作流描述:生成随机数工作流默认界面:点击「确认」,进入编辑页面
开始节点:选择
点击开始节点,右侧展开编辑界面。
Tips:Coze 改版后节点编辑区,统一都在右侧(图像流除外),以抽屉的方式出现,抽屉里更多内容,会从右到左展开更多面板。
开始节点:编辑
生成随机数不需要额外的输入,所以保留一个默认的变量就足够了,删除其他的变量,如下图:
仅保留默认变量-原因:
我们这里是一个简单的工作流,多个工作流这个就不能用了,可以用单 Agent(LLM 模式)或多 Agent;后面想让 Bot 默认 100% 调用这个工作流,所以使用「单 Agent(工作流模式)Beta」这个模式,在这个模式里,「开始节点」必须只保留 1 个默认才能添加上这个工作流;使用「单 Agent(LLM 模式)」有时候不能保证 100% 调用这个工作流;正好试用下 Coze 上的新模式。下面我们从找规律的方法,先了解下工作流里的所有节点的大概界面结构~
② 工作流所有节点
目前除了「图像流、工作流、消息」外,剩下的节点结构,都会有「输入、输出」。
输入:可以理解为,在餐厅吃饭,你告诉厨师你要吃什么;输出:可以理解为,厨师按你要求(输入)做好后,把饭菜给你。③ 添加代码节点
添加代码节点:
点击左侧「选择节点」区,点击代码,中间编辑区会添加一个代码节点(其他节点添加也是一样的操作方法)。
代码节点-界面结构拆解:
点击代码节点,右侧展开对话框。
收起所有模块,可以明确看到界面有 3 个功能区:
输入代码输出Tips:其他节点界面结构,逻辑与代码相同,只是不同节点功能区数量不同,比如开始节点,只有输入~
我们逐一理解下这 3 个功能区~
1)代码节点:输入
新增:可通过新增添加多行参数,点击每行后面 icon 可删除对应行;
参数名:可自定义参数名,有些「引用」上一个节点的输出(开始节点除外),选择后这里的参数名会自动填入;
参数值:有两种
引用:一般引用前面节点的输入/输出,具体引用内容,取决于我们想要在代码节点里获取什么信息;输入:选择输入,后面就变为输入框,可以输入我们想要的信息。2)代码节点:代码
代码区默认有代码示例
我们逐一理解下代码相关的内容~
代码语言类型
点击「在 IDE 中编辑」,进入代码编程页面,代码里默认是 JavaScript 语言的一段代码示例。
目前有 2 种语言,可以通过切换选择不同的语言。
加深理解:
JavaScript、Python 等都是一种编程语言,可以理解我们现实生活中的「中文、英文」等语言。
中英文:是我们现实世界对话沟通使用的语言;Python 等:是我们和计算机对话沟通使用的语言。两种语言区别:
JavaScript:就像是机器人在互联网世界里的语言。当你在网上冲浪时,JavaScript 帮助你和网站互动,比如当你点击一个按钮,JavaScript 就会告诉机器人(计算机)该做什么。Python:则像是机器人的多功能语言,它不仅能够在网上帮助你,还能做很多其他事情,比如处理数据、做计算、画图、甚至自己玩游戏。Python 让机器人(计算机)在多个领域都能理解和执行任务。这也是我们通常使用 Python 语言的原因吧~
默认代码:我们将这段代码拆成 3 段,使用比喻来理解下
示例代码:
让我们用餐饮外卖机器人接单出单的流程做比喻,来解释这段代码~
第一段
第二段
这段代码里最终会输出 3 个信息,具体内容及释义分别是:
第三段
总结
第一段、第三段:一般是固定的结构;
第二段:重点,是具体要生成的信息内容。
一句话总结,这段代码的作用就是:使用异步处理来接收信息、处理信息、将准备好最终信息展示出来。
关于代码编程的更多详情细节,比如:
{}:一个大括号,对象(Object),表示创建一个字典(一种键值对的数据结构);
:一个中括号,数组(Array),表示创建一个列表;
,:英文逗号,用于分隔列表中的元素或字典中的键值。
还有更多其他信息都是什么意思,如果大家想了解,可以给我留言,后面再写~
③ 代码节点:输出
默认输出字段,如下图:
这里之所以默认输出是这 4 个信息,是基于代码的默认示例,内容是一一对应的,如下图:
代码里的输出和最终输出对应关系:
输出的作用
输出这里如果不设置,最终输出就不显示,如下图:
节点测试小技巧:
我们搭建工作流的时候,可以每个节点先测试下,没有报错和异常后,再往下走,如果我们每一步都测试通过,那么最终输出大概率是成功的。
输出的配置
变量名:输出里的变量名,我们添加不同的变量,看下不同的输出,加深理解:
变量设置小提示:
变量类型:选择 Object 时,后面才会出现+加号;点击加号:可以添加子内容变量类型
Tips:
大家想加深理解各个节点,可以不断地去尝试,去玩,这种方式能更快更直观的,帮我们理解节点运行输入、输出的完整逻辑。
通过上面的内容,我们对 Coze 里的代码有了一些理解。
我们下面要做的是用代码节点,来实现「生成随机数」的工作流啦,因为我目前还不会自己写代码(正在学习中...),所以下面会使用 Coze 自带的 AI 来生成代码~
④ AI 编程代码
在代码编辑面板的代码区,点击右侧「在 IDE 中编辑」
IDE:集成开发环境(Integrated Development Environment)的缩写,它是一种特殊的软件应用程序,用于帮助程序员编写、测试和调试代码。
进入代码编写界面
语言:默认是 JavaScript,切换成「Python」;AI 编写代码:点击左下角「尝试 AI」,左上角会出现一个长条编辑对话框,如下:1)AI 编码输入
我输入的是下面这个内容,清楚的告诉 AI 我们要什么,它要做什么。
这点很重要,因为 AI 生成的内容随机性挺大,我们输入的信息越明确清晰,结果越符合我们的预期 。
Prompt(提示词):请帮我写一个可以生成随机数的代码,要求是 8 位随机数,由字母和数字组成
输入提示词,点击右侧「发送」icon:
生成后的代码,看不懂,没关系,先点「接受」试试~
点「接受」后,AI 编程 代码如下:
2)AI 编码测试
我们来测试下,AI 生成的这段代码能不能「生成随机数」:
点击测试 icon:就是下图右上角那个像播放的 icon
输入:随便输入什么都可以,我这里输入 1
运行结果:点击「运行」,运行结果成功,生成一个 8 位的随机数:mJ8TIcM7
Tips:
代码里的变量一定要和输出里的变量名保持一致,要不然输出里会为空。
代码里是 key0,我们输出变量也是 key0,如果不想使用 key0,可以在代码里更改,保持统一就可以~
让我们一起再加深理解,来改个变量名,一起看看怎么改~
改变量名:我在代码和输出里变量都改为「output」,变量名保持一致,输出成功,如下图:
变量名不一致:代码里不修改,将输出变量改为「key0」,变量名不一致,最终输出 null,如下图:
Tips:代码里的变量和输出的变量名不一样,最终输出就会是 null,就是空的意思。
通俗点理解:运行后,系统按我们的配置输出 key0 去代码里找这个 key0 的变量名,但是代码里没有找到这个变量名,所以它就只能返回空。
这个也是我们测试工作流时常遇到的一个问题。
代码节点阶段性完成,下面是结束节点~
具体配置如下图:
回答内容:这里一般是要输出参数名,如果有多个参数名,「回答内容」里也需要一一对应上,否则最终输出里会不显示。
{{}}:这里的 {{}} 是一个模板标记,用于在最终输出中插入变量 output 的值。
Tips:
这里输入{{}}后 ,鼠标放在里面,会自动出现上面添加的变量名,点击下,就会自动填充进去,如果有多变量名,这里也会显示多个;如果{{}}已数据,鼠标放进去,所有变量名会再次出现,可以更改。完整工作流,如下:
我们使用代码节点搭建的「生成随机数」的工作流就完成啦~~
下面开始使用其他节点,搭建「生成随机数」的工作流~
以下有些省略的步骤和上面代码节点相同~
① 创建工作流
添加工作流
工作流名称:random_number_NoneCode工作流描述:使用其他节点生成随机数② 添加大模型节点
添加大模型节点:
点击左侧「选择节点」区,点击大模型,中间编辑区会添加一个大模型节点。
模型输入系统提示词用户提示词输出这篇文章主角是代码,所以这里大模型界面拆解就不逐一理解了,后面到大模型节点再详写~
1)大模型:模型
选择一个模型:
2)大模型:输入
输入参数名,引用开始默认值
3)大模型:系统提示词
系统提示词这里有 2 种方式可以写:
提示词库:我们上面介绍 Coze 里代码相关的三者关系时有提到,改版后资源里新增提示词独立模块,就是在这里的提示词库可以选择直接使用;AI 自动优化提示词:根据输入的简单提示词,优化为结构化的提示词。提示词库
新建提示词推荐团队逐一看一下~
(1)新建提示词:如果没有可用的提示词,可以使用「新建提示词」,这里也有 AI 优化帮助写提示词。
(2)推荐:是 Coze 平台内置的提示词框架模板,可以按给出的框架写自己场景需要的提示词。
(3)团队:我们自己添加的提示词,下面这个是我已经添加的一个提示词。我们这里直接点击「插入提示词」,会直接填入进系统提示词里。
AI 自动优化提示词
点击系统提示词右上角 icon,出现 AI 自动优化提示词对话框,这里主要介绍 写提示词的 2 个功能:
自动优化:根据输入内容,优化完善结构化提示词;根据调试结果优化:对已生成的提示词进行修改。(1)自动优化:输入提示词
Prompt(提示词):生成随机数,要求是 8 位随机数,由字母和数字组成
点击输入框右侧发送 icon,自动生成结构化提示词,点击「替换」直接填入进系统提示词内,如下:
如果我们觉得它生成的不好,可以重新生成,
如果觉得是一部分不满意,可以使用另一个功能进行修改。
(2)根据调试结果优化
点击进入修改对话框,有 2 个必填项,一个是告诉它那里不满意,另一个输入我们具体要修改的内容。
发送修改后生成如下,只增加了示例,其他没有更改,我们点击「替换」会自动填写进「系统提示词」。
4)大模型:用户提示词
可不填,这里也没有 AI 辅助写提示词。
5)大模型:输出
使用默认即可
6)测试大模型节点
点击测试 icon,随便输入一个信息,我这里输入的是 1,点击运行,运行结果最终输出成功生成一个 8 位随机数。
③ 结束节点
输出:参数-引用-「大模型」,具体配置如下
完整工作流,如下:
我们大模型节点搭建的「生成随机数」的工作流完成啦~
我们通过上面这个「生成随机数」的例子,大家可能觉得,既然不使用代码也能实现我们的需求,那是不是就不用学代码了。
不是的哦,我们上面的例子是很简单的,可以通过其他节点来实现。
但是我们实际业务场景中,都是一些复杂的任务,使用其他节点是很难实现我们的需求的。
代码在很多业务场景里是不可替代的,下面我们一起看看,和其他节点比使用代码节点的优势~
四、代码节点优势1. 优势
和其他节点比使用代码节点的几个优势:
① 处理用户输入
灵活性:代码节点可以根据用户的输入进行复杂的逻辑处理,而其他节点通常只能执行预设的操作;动态响应:可以实时处理用户输入,生成个性化的回复,提升用户体验。② 自定义逻辑
个性化:用户可以编写特定的逻辑来满足独特的需求,比如根据不同的输入生成不同的输出,这在其他节点中往往难以实现;复杂计算:代码节点可以执行复杂的计算和数据处理,其他节点可能无法支持这种灵活性。③ 数据格式化
自定义输出:代码节点允许用户根据需要自定义输出格式,确保信息以最易于理解的方式呈现;多样化数据结构:可以返回多种数据结构(如字典、列表等),而其他节点通常只能返回简单的文本。④ 增强互动性
智能对话:通过代码节点,机器人可以实现更复杂的对话逻辑,提供更自然的互动体验;实时反馈:可以根据用户的输入实时生成反馈,增强用户的参与感。⑤ 灵活性和扩展性
易于修改:用户可以随时调整代码以适应新的需求,而其他节点的功能通常是固定的,难以进行个性化调整;功能扩展:可以轻松添加新功能或改进现有功能,支持不断演进的需求。2. 实例对比
我们以第 1 个「处理用户输入」优势为实例,通过搭建 2 个「今日运势」工作流来对比下~
代码节点:根据用户输入进行复杂的逻辑处理,生成个性化的回复;其他节点:通常只能执行预设的操作。「今日运势」工作流
2 个工作流完整截图如下,为直观对比代码和其他节点的区别,下面两个工作流,除了「代码、文本处理」2 个节点配置信息不同,其他所有节点配置内容一模一样。
使用「代码」节点
使用「文本处理」节点
除了以下 2 个节点配置不同,2 个工作流的其他所有节点配置都一模一样,2 个节点具体配置截图如下:
「代码」节点配置
「文本处理」节点配置
代码节点的内容:以下代码为 AI 编写,大家如果想做这个工作流,可以使用 AI 编写,或者复制以下代码试试~
3. 最终输出对比
① 代码节点
输出结果:生成个性化的回复,每次输入都会生成不同的内容。
试运行提示词:今日运势
试运行提示词:运势
② 文本处理节点
输出结果:通常只能执行预设的操作,输出内容固定化,缺乏个性化。
试运行提示词:今日运势
试运行提示词:运势
4. 总结
使用代码节点的好处在于,它提供了更高的灵活性和自定义能力,使得开发者能够根据具体需求实现复杂的逻辑和功能。而其他节点则往往局限于预设的操作和简单的交互。
这使得代码节点成为构建智能、个性化机器人的关键工具。
以上就是本次 Coze 代码节点入门内容,感觉写的有些长,在开始写这篇文章前,我也没想到会这么多文字。
如果大家也觉得繁琐,可以留言,下次我们可以精简些,或者拆分成几个文章,每个文章写一部分,就是怕拆分后大家看起来会不连贯,看大家想怎么看~
如果大家有其他问题,或者想做的工作流、Bot,都可以留言,我看到后都会一一回复,这篇先到这里吧。
下篇再会~
来源:梦想精通设计