Coze搭建情感陪聊智能体

AI作画软件中文版 2025-07-26 16:53:01
 
今天我将分享一个有趣的智能体应用,名为情感陪伴机器人。大家应该看到过类似的场景,例如提供情绪价值的机器人可以陪伴老人、聊天、心理辅导或者教学辅导。这个应用目前比较火爆,我们可以整体结合AI伴侣的形象,提供高度拟人化的对话氛围,为用户提供情绪支持,成为一个友好有趣的AI伙伴。我给大家看一个扣子官方提供的示例,我们可以与他进行对话。我是苏阳在外滩借你充电宝的女孩,我已经顺利到家。你好,可以给我讲个笑话吗?
你好,可以给我讲个笑话吗?
我给你讲一个笑话,有一天大家看到效果还可以,你可以沉浸式沟通,除了语音沟通以外,还可以跟他做文字沟通。例如今天出去玩了吗,你随便跟他聊,他作为一个情感聊天,都可以跟你沟通,都是用语音的方式跟你做对话。这种体验对于未来如果大家想做这方面的创业,可以学习一下情感机器人。现在它类似于页面的形式,以后大家可以把它做到真正的实体机器人,可以跟真正的情感陪伴,并且会有一些肢体动作表情,这是一个比较好的方向,目前也比较火。我们要实现页面的智能体会涉及到哪些点?主要是给大家讲一下从技术角度上来讲,我们整体的搭建流程是怎样的。官方提供了几个模板,第一个是带语音会话的,还有一些像他也是这种对话,只是角色不同。有些人可能会做情感陪伴,有些人则会做虚拟角色,包括亲密度的分析。这类似于一个对话游戏。
你与他交谈的次数越多,亲密指数越高,他回答的内容就会不同。因此,一开始会有一个渐进的过程,包括不同的角色定义。这些模板可以直接使用。你要扮演什么样的角色,无非就是提示词、语音对话等各种角色,大家都可以用这种方式进行调整和开发。
我们来讨论具体技术方面。从整体能力分析,情感陪伴类具备以下能力。首先沉浸式蚁人对话提供语音和文字的实时对话能力,回答风格高度引人,严格遵循既定人设,可以通过反向等多种语言技巧推进话题。与他聊天时,基本上类似于真人聊天。如果你表达一句话描述不清,他会反问你一些问题。为了推进这个话题,智能体的消息回复会拆分成多条消息,贴近于真实用户场景,而不是传统的一问一答,你说一句他说一句,如果你不说,他也不会说。现在优化成了拆分成多条消息,你跟他说着说着,他会问你一些问题,也会回答一些答案。这只是语音对话,又只是文字,沉浸感更强。
我们可以为他发送一些图片,例如添加纹身图节点,根据用户需求生成面部一致的图像,提高对话场景人设的一致性。例如让他发送自拍照,他可能需要调用纹身图模型,生成一张随机自拍照。我们可以进行各种交互,包括在更复杂的场景下也可以制作视频,让他真正生成朋友圈的视频。虽然这些都是虚拟的,但是这种交互感非常有趣,它可以动态帮助你,如同与真人聊天一样。
包括好感度培养,我们可以根据用户对话历史和长期记忆计算好感度,以判断用户对话的感情进展。例如,如果用户将其视为AI虚拟女朋友或者男朋友,那么他的感情进展如何?我们可以根据实际好感度分析不同阶段提供不同对话风格。如果亲密度属于陌生人,那么聊天的话题为何不亲密?可能会比较简单直白,没有太多好感。我们需要调整涉及到记忆相关的内容,它需要随时变化。根据好感度调整对话态度是关键优化环节。我们可以制作更多模拟现实中的逻辑,用算法计算实际沟通进展。例如好感度是较好的,当前情感状态和心情如何,他与你聊天时,通过你回答问题的方式,可以判断你当前心情。这些都是我们可以优化的地方。
在时间流程方面,我们整体基于工作流模式进行搭建。如果大家对扣子工作流不太了解,可以参考我之前讲过的扣子工作流。在一节课中,我向大家分享了工作流模式的搭建细节。
工作流需要进行各种逻辑处理,当用户发起对话时,工作流开始运转,其中包含多个分支逻辑处理。例如日常对话,例如亲密度判断,当前是陌生人还是其他人。模型回复,根据当前亲密度让模型进行总结归纳,然后将回复进行拆分循环发送消息。因为他可能会打多条消息,所以我希望模型生成多条消息,以多条语音方式发送给用户,让他体验感更好。例如刚刚提到的,虽然是文本,但是整个语音对话是一段语音播出,它呈现的是文字。这是我们第一条线的日常对话。
第二个是在发布图片的场景中,我们会根据知识库或纹身图的方式实时产生图片,增强交流的感觉。例如,你可以询问他是否可以发送一张你的自拍照片,观察官方是否实现这个功能。为何被我的美貌迷住,他还是没有发照片,还是会有情感交互。如果他没有实现照片的逻辑,我们可以自己进行工作流程,提供照片逻辑。每次对话时会触发亲密度计算逻辑,我们与他交谈越多,他就会了解你的亲密度情况。设计功能主要包括三部分:一是沉浸式引能对话,模拟人的亲密度数值,整个逻辑分支处理包括消息回复、照片生成和发送。
这个模板在知识库中预置了一系列图片照相功能。如果用户要求查看照片,智能体会返回给用户,这里应该没有实现。例如我想查看你的照片,换一种方式问答看是否可行,他不一定能回答出来,我在几个地方都画了一下,真是个贪心的小狗。大家看这个照片是否有了,并非写,你需要照片的时候,他还是可以给你。例如我发送给你2680561角色的照片,它是内置的,293Q37C,朗读有问题,他应该把照片的信息读出来。如果我要发照片,就可以驱动照片的逻辑。在他的知识库里面内置了一个照片,你想看这个照片,它可以从知识库里面取出来发给你。
好感度培养通过系统变量和大模型节点提现,这种体内预置了一些自定义变量,即当前的亲密度和亲密度数值。每次对话时,大模型节点读取变量的当前值,并综合参考长期记忆历史对话计算亲密度。通过变量节点重新设置智能体的亲密度,使用模板时可以设置输出系统消息,展示本轮对话的亲密度数值,引导用户在对话时主动提升亲密度。系统消息适用于API方式,可以使用智能体场景,在专属前端对话框里展示系统消息,避免系统消息以对话内容的方式展示,降低智能体难度。我们可以用这个模板设计人设,例如角色的用途。我带领大家实际操作,搭建一个智能体,基于这个自己创建一个情感**。我们可以聊机器人,随便搭建一个智能体,复制刚才计算的亲密度数值。
请复制一下。
现在有了刚才提到的功能,我不需要新建,直接进行操作。这本身就是一个应用,我们将其新增一下聊天应用,这是一个聊天场景的应用。大家可以重点观察它的工作流实现。在这里可以看到节点非常多,由此可以看出支撑体相对复杂。优化布局,我们从入口开始讲,因为这是一个对话,所以流程稍微复杂一些,这里会穿插各种逻辑。
例如,我们要运行工作流,最关键的是输入参数,以便处理当前的亲密度。在与他对话时,需要处理一些逻辑。首先是绘画的逻辑,当我们开始运行时,这里会执行各种逻辑。当用户输入绘画时,这里会接收绘画的名称,表示当前发起的绘画。其中有一些逻辑在聊天时,打开刚才的应用,这是我复制的一个整体应用。大家在聊天的那一刻,工作流开始运转。运转后,首先进入开始节点,它最初关联到一些变量,与机器人里的一些逻辑相关联。我想测试一下试运行。亲密度智能体。
整体关联应用亲密度与实用性。例如发送消息,我们可以看到流程,可以给我讲笑话。大家可以看一下工作逻辑,从开始运转到这个地方,再到这个节点,系统消息输出实际上就是开始运转整个逻辑,并且串联起整个逻辑,这个过程中经历了一些环节。
首先我们需要设定一个角色,这个智能体的作用是寻找开场白。当我们第一次加载时,这里会有一个例子,比如你好,我是谁谁谁,很高兴认识你。他会判断亲密度。如果第一次很陌生,那么可能很高兴认识你。给一个简单的表达。如果亲密度越高,他可能会给你一个更加亲密的称呼,就是你跟他聊天的节奏。
我们在具体的描述中,你与他讲述笑话时,他并非将所有内容都罗列出来,而是逐句描述,模拟人的语言,无需一次性讲述太多,以模拟真实聊天效果。这里有一个概念,首先要进行角色定义,例如你的事例是什么角色。他应该定义男友的角色,这里是智能体所扮演的角色,我们需要在这里找到角色定义。
第一次遇到陌生人时,亲密度可能有几种情况。如果亲密度仍然属于陌生人,就需要走分支。如同我们刚才提到的oov,左右分支。如果仍然是陌生人,我们需要从前面的一些分支跳转过来。首先,我们需要进行区分,并进行亲密度计算,根据当前系统定义的变量,亲密度决定什么?
这是分支逻辑,亲密度是长期记忆。长期记忆中的一些逻辑是记住你与他对话时的内容并将其放入长期记忆中。这是一个独立的逻辑,它会记录整个上下文。关于选择器,目前有三种情况。如果系统第一次聊天时亲密度计算出是陌生人,那么这里走的分支是什么?
这是一个陌生的分支,我将调用豆包的大模型。请大家观察最关键的地方,点开陌生人查看,这里有系统提示。这里是比较关键的地方,请放大,这个还不能放大。最关键的是这一堆提示词。使用口语化的回答,回答简洁,尽量在50字以内。整个聊天的节奏基本都没有超过50字,因此这个有节奏把控。内容。偶尔对某些用户产生好奇心,追问用户的问题。你发照片时,我发给你这种语气词,这样会比较人性化一些,不能机械化。你要说得比较人性化一点,这是一些特殊场景的优化处理,主要是提升用户的体验。
我们刚刚提到人设,大家的定义在这里。例如个人属性,姓名罗夏,出生地北京,外貌特征185,棕黄色头发,爱好、性格和梦想,梦想不想继承家业,找到自己爱好的事业,包括性格特点。ESFP是一人爱人,做性格定义,热情、主动、注重方向等。亲密度规则是你和用户现在是陌生人,我们刚认识的情况了解较少,对用户有好奇,偶尔会询问用户的兴趣爱好,不会询问私密问题,拒绝用户约会表白等接入。这里有亲密度计算逻辑。如果最初是陌生人,走的是分支,他就按照陌生人的提示词或者定位进行处理,包括个人资料,例如出生地、年龄等。如果你询问他名字,他就对刚开始的个人资料做了人设设定,包括性格特征等。性格可能决定他回答问题的风格。
例如,他是内向的或者外向的人,他的性格特点可能与不同,例如活泼程度、友好和乐于助人等,会更加准确和专业性。对话风格为智能体指定明确的对话风格,包括语气、用词和反应方式的引导,使该语风格产生匹配回答,对话风格整体比较轻松。针对陌生人,他们一开始会比较陌生。假设我现在变成了朋友,我们看下面的逻辑,亲密度规则。你和用户现在是朋友,你和他之间有初步了解,你会接受他的约会,他的亲密度的具体表现是朋友会接受约会,并尝试了解。用户的朋友也会开一些亲密的玩笑,你依旧会拒绝用户的表白等。
朋友之间的聊天逻辑和输出内容不同。当他聊到不同逻辑时,我想尝试是否可以直接切换到朋友模式。我们现在是朋友还是陌生人,我们一起玩,你需要与他多聊天才可以。
我查看能否切换到朋友节点。输入后选择这个扣子,有一个好的地方,可以选择分支直接执行。不用想办法模拟什么情况,直接在这里点击运行,单测节点即可。想看朋友时他会聊什么,比如想和我约会。我们这里输入的是朋友,刚刚那个陌生人,你跟他说和我约会,他应该会拒绝。按照刚刚的设定,如果是陌生人,单手插兜,多了又不太好,我们还不太熟。这是陌生人的情况。
我们现在讨论朋友的情况,有约会。我们需要了解朋友的输出情况,以便判断他是否可以运行。如果是朋友,你可以看到他想去哪里,他会扬起灿烂的微笑。
按照刚才的设定,即使是朋友表白也会被拒绝。因为提示词里已经定义了,所以肯定会拒绝。我再跑一下,如果我是朋友,我们在一起表白了,你看表白是否会被拒绝,朋友应该会被拒绝。不要开玩笑了,我们现在不是挺好的,是否就是拒绝了?这就是朋友的亲密度,设计得挺有意思。
我们观察恋人的亲密度非常高。在这种亲密度下,恋人的表现如何?他们已经是恋人关系,在一起时会主动分享喜欢的事情,感受他们的喜怒哀乐,并接受一些亲密行为。如果你表白,就没有问题,不会拒绝。我会运行恋人模式。这是恋人,与他约会应该没有问题。在这种亲密度下,你想去哪里约会,我们就出发。
实现不同亲密度的逻辑并非大家想象中的困难,它只是一个分支逻辑判断,我们需要使用大模型完成这件事情。通过当前聊天情况,它会自动升级为亲密度,这个亲密度会累加,这相当于为它定义了一套计算逻辑。例如我们观看照片,聊天的逻辑现在应该比较清楚了。无论是朋友还是陌生人,都是遵循一个什么?
大模型调用后将结果进行文本处理。这里还有代码输出功能,将结果输入出来,包括循环。让我看一下代码输出是输出什么,这里只会拿到一个结果。
它会针对大模型的文本进行处理,并且调用代码进行逻辑处理和循环。这样可以将消息输出,实现类似于不断输出的效果,并且将消息进行循环打印。因为整个过程是流式消息,所以不能一次性输出,不能调用大模型直接返回即可。这里应该有循环的逻辑接收大模型的输出,因此这里涉及到流式调用的逻辑和循环逻辑。这是整个工作流程。
我们查看图片发送的逻辑,总体来说包括几套逻辑,三个亲密度的逻辑计算,然后根据内容反馈。点开这个逻辑,给我发送你的照片,我查看照片并运行。这个节点首先执行代码逻辑,用户想表达看照片的意图。一同学看自拍,这是做意图匹配。
我们需要调用知识库。我们找到一个知识库的照片逻辑。这里是做意图识别发消息,我们在朋友这里输入查看。朋友看照片,意图匹配需要到聊天的逻辑里面去,没有特别的照片,这个还是不行吗?恋人,看自拍,想看你的自拍。
这里有什么?能发给你了,请迅速拍一张照片给你。这是语音提示,没有发照片,可能在聊天里面不太好呈现。看你的自拍。我查看这里能否跟踪到调试。大家可以在这里看到,也可以调试,不一定要到这里去。他会调用一个工具,亲密度判断,选择器调用陌生人豆包角色扮演代码。角色扮演需要使用ARM,角色扮演工具调用。另外一个知识库照片,我查看知识库照片在哪里。应该是这个逻辑,看照片是否能输出。
他将图片的UI也预览出来了,我还需要预览一下。预览无法看出,实际上就是那张照片。我再打开一下,看到这张照片已经有结果了,只是这个消息无法渲染出照片。如果你按照这个节点操作,它会把照片加出来。这个节点没有问题,只是消息可能分多段给你,例如挑眉、发照片、给你发消息,这里会涉及到多个消息。刚刚看的是最后一个消息,这是它整个的逻辑。关于亲密度判断,刚刚提到的亲密度如何计算?我们来看一下,这个还不能放大。亲密度是根据长期对话记录,例如用户输入陌生人0到29分,它会计算一个分数。刚认识就是0到29分,了解比较少,了解比较多时,它会计算到30到59分。大模型会把整个记录起来,让大模型最终根据当前上下文情况给你一个分数,不同分数会走不同的亲密度计算逻辑。
你与他交谈的话题越多,分值就越高,这个逻辑也容易理解。整体设计方案分为三条线,第一条线是照片的线,第二条线是亲密度计算的线,第三条线是根据亲密度值输出不同内容的线。大家需要明白,有三条线不断计算值,得出分数。亲密度计算三条线是工作流,需要同时处理。下面也写了照片生成、好感度培养、沉浸式影像对话,这个应该容易理解。
大家需要注意的是需要加入长期记忆的逻辑。我之前讲过关于长期记忆的部分,可以给大家听。长期记忆有一些方式可以配置,包括变量选择和大模型节点,我之前已经分享过,包括文本处理。这个分支刚才提到的是变量的分支。
这个情况应该很容易理解,关键是大家需要清楚需求。首先通过对话累积亲密度,循序渐进。这与正常人沟通相似,有一定的亲密度。你也可以做无需亲密度累积,固定为伴侣人设。这个只会走恋人分支,你可以加一个提示词。例如,这个模板里面设置了一个固定人设,你可以要求他什么?我就是这个人设,不需要再根据亲密度进行逻辑。
场景不同,照片生成容易理解。知识库预设头像等功能,你与他聊天时他会从知识库中抽取图片,图片抽取后便是它的图像。这是官方配置的知识库,我们可以修改或者上传照片。
关于好养度培养,你需要为大模型制定一套计算规则,例如陌生人、朋友和恋人等,梳理清楚关系即可。人设通常在系统提示中提供,例如男女年龄等,应该给出定义,包括智能体配置。我们通常采用工作旅游方式,可以执行多个分支,在计算亲密度的同时调用大模型恢复。使用工作流进行会更合适,包括记忆和变量之间的设定,请大家注意。变量通过亲密度计算出来,例如陌生人朋友这个变量,这涉及到变量的传递和开场白。
我一开始就提到,第一次聊天时会有油耗提示和背景图片,大家可以进行优化,然后进行最终的发布和验证。整体来说相对简单,只是流程较为复杂。我们来总结三条线,第一条线是实现照片生成与发送,即照片的逻辑处理。第二条线是亲密度计算,根据聊天情况划分评分等级,计算整体亲密度。第三条线是根据亲密度进行不同的聊天场景,例如陌生人场景,这是通过对应的不同提示词实现,之后得出不同的聊天结果,结合大模型调用。