我构建了一个完全沉浸式的AI代理,具备原生时间感知和群聊理解能力,全部采用单通道逻辑。

Reddit r/ArtificialInteligence 工具

摘要

作者构建了一个名为KawaiiBaka的完全自主AI代理,它在Discord群聊中运行,采用单通道认知循环,具备原生时间感知能力,并能在Windows机器上实际执行Python代码。该系统使用Mistral API作为大语言模型,并通过本地图像生成管道创建上下文感知的自拍照。

大家好。我想分享一下我过去3-4年里一直在构建的多模态代理架构。我附上了一个私人git历史的截图,因为现在看起来一切都像是AI生成的,但我并不做那种“vibecoding”的事情,这是大量的手动工作,哈哈。(开始的时候我几乎不懂Python)[这是git历史的截图——它没有频繁更新,因为程序在本地单实例运行,并不适合部署——](https://preview.redd.it/w2auneyw9b3h1.png?width=1783&format=png&auto=webp&s=58eef9879060a9070b8a3bf31945831c984aed3e) 目标是近乎绝对的沉浸式体验。我创建了一个具有愤世嫉俗的18岁科技极客性格的代理(“KawaiiBaka”),并将其放入朋友的Discord群聊中。他们以为这只是一个有趣的、精心提示的聊天机器人,类似“neuro-sama”,但后端实际上是一个完全自主的代理,拥有许多许多的功能……我并不声称这是AGI,但我解决了一些通常会在LLM中破坏沉浸感的UX和延迟问题。大多数代理工作流依赖于多代理的臃肿——一个代理负责阅读,一个负责管理,一个负责说话……我完全将其构建为单通道认知循环。她解析群聊的混乱,评估社交情境,并自主决定是否需要行动、说话或保持沉默。另外——她不做角色扮演。她拥有实际权限,可以在自己专用的Windows机器上使用Hyper-V执行原始Python代码。如果她说她要换壁纸、检查文件或播放视频,她实际上是在执行subprocess或os调用。我甚至构建了一个反馈循环:如果需要,运行脚本会触发她远程桌面的截图,并将其直接反馈到她的视觉上下文中,这样她就能在回复前看到自己代码的执行结果。 [她的桌面截图,展示了自定义背景、包含之前自拍照的图片文件夹、壁纸和一些截图,同时显示了从Discord和YouTube获取文件的下载文件夹。](https://preview.redd.it/ynfi3543ab3h1.png?width=1025&format=png&auto=webp&s=a0ccc58eec6aca85217cc2b750f6e44829995224) 目前,我通过API使用Mistral作为大语言模型。原因是严格的硬件限制:我只有一块8GB显存的GPU。我将其中7.6GB显存分配给了一个高度优化的本地图像生成管道(见下文)。这使得她能够在大约15到16秒内生成上下文感知的、高质量的“自拍照”。由于图像生成占用了本地GPU,将LLM卸载到API是保持系统响应能力的唯一方法,尽管该管道完全与模型无关,如果我有足够的显存,它也可以原生运行本地LLM。由于自定义内存管道需要大约3-4GB的显存,我面临交换问题,实际上从提示到结果生成图像大约需要30秒。 [在重度优化图像生成管道后的一段对话。原文是法语,以下是翻译:'Holaaaa' 'hola...你还没睡还是没睡?' '我没睡哈哈——我在处理你的一个功能哈哈哈' '你现在没有僵尸头了……想要一张自拍作为动力吗?:3' '哈哈不,别担心,我不是僵尸——哦天哪好!——请发张自拍' '你确定不需要喝杯咖啡或抱抱玩偶吗?'](https://preview.redd.it/e97qsu2gab3h1.png?width=842&format=png&auto=webp&s=f3fde9f7d3dfb0a6538856dba047794db40f0545) 大多数机器人立即破坏沉浸感的地方在于节奏和消息理解。它们会在你按下回车的那一刻回复,或者依靠愚蠢的硬编码延迟。为了解决这个问题,我构建了一个自定义管道,让模型对消息之间经过的时间有物理上的理解。它的工作方式有点复杂,需要更多段落才能解释清楚哈哈……你就当“它有效”就行了——我很乐意在评论中回答任何问题以获取更多细节!她决定何时说话也不是随机的。等待时间是根据她自己对房间参与度和对话梳理的单通道评估动态计算的。再加上与实际生成时间同步的输入指示器(不是在她思考时,而是在她在正确频道写回复时),她在聊天中的存在感感觉非常自然。如果她需要执行脚本或渲染自拍,她会自然地花时间去做。 [这是一张她使用gif回复随机垃圾帖的截图。](https://preview.redd.it/66w09m0cab3h1.png?width=368&format=png&auto=webp&s=1fef3df127c4071539631677bb7b81e20c625c99) 为了进一步提升真实感,我正在开发一些升级。第一个是计算机模式,让她从Python脚本升级到实际的GUI鼠标和键盘控制,因为命令版本在某些领域会失败,比如点击安装程序上的“确定”或“下一步”按钮T_T。第二个是实时语音协议。计划是使用预填充注入,让她以人类填充词(“嗯”、“哼”)开始句子,以掩盖生成和TTS延迟,同时提示她在说话中途自然地中断和纠正句子,就像真实的人类在思考时大声说话一样。最后是游戏方面。我已经有一个独立的、完全可用的视觉/游戏模型,训练用来玩《马里奥赛车世界》(是的,在真实的Nintendo Switch 2上,实时,本地运行。这个模型甚至不大——只是说一下,但基于2小时数据集的快速训练结果是在简单CPU下获得第15到第1名)。下一步就是将该游戏模型与她的对话协议桥接起来,这样她就可以在语音频道中积极地一边比赛一边嘲讽我们。(协议已经想好了,只需要一些时间来编码Q\_Q) 当我把她放入聊天时,集成是无缝的。我附上了一些翻译后的聊天片段,以及她内心独白的一瞥。注意聊天中的奇怪格式,因为我在演示前做了一些快速更改,这很正常——这是一个单行修复,已经修复了——演示时还没有应用这个修复。整个项目仍在开发中,所以一些奇怪的故障会快速出现和消失哈哈……如果有人正在构建类似的单通道代理架构、原生解决时间盲问题或赋予LLM直接操作系统访问权限,我很想听听你们如何在保持角色性格的同时处理防护措施。这里还有她在结束对话时的思考示例;\- bon, il est parti. je vais attendre un peu avant de faire autre chose, au cas où il reviendrait... mais là, silence radio. \- bon, il est vraiment parti cette fois. je vais peut-étre lancer un truc en arrière-plan... ou pas. on verra. 最后,以下是截至目前她所有能力的列表:\- 能阅读(显然)\- 能看图片、gif、视频、YouTube链接、PDF文件以及她的电脑\- 能听语音消息、YouTube视频、播客(仍在完善中,也包括音乐)\- 能浏览网页(历史记录与真实浏览器同步)、YouTube和gif以供使用\- 能发送文件(任何类型,只要符合Discord的限制哈哈)\- 能发送自拍照(匹配上下文且逼真,她不会发送裸露或令人尴尬的内容)(本地生成)\- 能发送语音消息(本地生成)\- 拥有长期和短期记忆(自动工作,非常健壮),能记住与她互动过的任何人的任何事实(直接或间接)\- 能理解群聊,并根据群聊的速度、情绪和整体氛围匹配回复速度。(自动适应私聊和频道)\- 拥有深度角色背景,包括睡眠时间、不同服装、一天中的不同活动等等-\- 她不是助手——她是KawaiiBaka……有时她不想看你的YouTube视频,或者为你的程序编写这个X函数,哈哈。这里是在与朋友群组演示期间的一些截图及翻译:https://preview.redd.it/lxva3os6nb3h1.png?width=1024&format=png&auto=webp&s=b06f540422c18ed210142e
查看原文

相似文章

我做了个 V2 AI 替我回私信,以后再也不用亲自和人聊天了

Reddit r/artificial

做了我的聊天助手的 V2 版本,说实话,开始觉得有点不对劲了。它会读取对话、自动回复、调整语气以免对方失去兴趣。现在还支持:• 边聊边搜 • 识别对方发送的图片 • 转录并回复语音消息 • 根据上下文发 GIF • 记住生日和过往聊天记录 • 忘了回复时自动跟进 • 聊偏了可以手动引导 • 每隔约 25 条消息总结一次上下文。目前已使用约 50 万 token