小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

语言,不仅仅是文字的堆砌,更是表情包的狂欢,是梗的海洋,是键盘侠的战场(嗯?哪里不对)。

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

语言如何塑造我们的社会行为?

我们的社会结构又是如何在不断的言语交流中演变的?

近期,来自复旦大学和小红书的研究者们通过引入一种名为AgentGroupChat的模拟平台,对这些问题进行了深入探讨。

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

WhatsApp等社交媒体拥有的群聊功能,是AgentGroupChat平台的灵感来源。

在AgentGroupChat平台上,Agent们可以模拟社会群体中的各种聊天场景,帮助研究人员深入理解语言在人类行为中的影响。

该平台简直是大模型的cosplay胜地,它们进行角色扮演,成为各种各样的Agent。

然后,Agents通过语言交流参与社会动态,展现了个体间的互动如何涌现成群体的宏观行为。

众所周知,人类群体的进化,正来源于一次次涌现行为的发生,如社会规范的建立、冲突的解决和领导力的执行。

AgentGroupChat环境的详细设计

首先是角色设计

AgentGroupChat中,对于主要角色和非主要角色的区分非常关键。

主要角色是群聊的核心,拥有明确的游戏目标,并能够主动和所有角色进行私聊、会面,而非主要角色则更多地起到辅助和响应的作用。

通过这样的设计,研究团队可以模拟现实生活中的社交结构,并针对“主要研究对象”区分所有角色是否主要。

实验案例中的主要研究对象是Roy家族,所以非Roy家族的人就全都设置为非主要角色,从而简化交互复杂度。

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

其次是资源管理

在AgentGroupChat中,资源不仅仅指物质的,更多的是指信息资源和社会资本。

这些资源可以是群聊话题、社会地位标志或特定的知识。

资源的分配和管理对于模拟群体动态非常重要,因为它们影响角色之间的互动和角色的策略选择。

例如,拥有重要信息资源的角色可能会成为其他角色争取联盟的目标。

第三,游戏进程设计

游戏进程的设计模拟了现实生活中的社交互动过程,包括了私聊、会面、群聊、更新阶段和结算阶段。

这些阶段不仅仅是为了推动游戏进程,更是为了观察角色如何在不同的社交场景下作出决策和反应。

这种分阶段的设计帮助研究团队详细记录每一步的互动,以及这些互动如何影响角色间的关系和角色对游戏环境的认知。

Verb Strategist Agent的核心机制

论文中提到了一个以大模型为基础的智能体框架,Verbal Strategist Agent,它被设计用来增强AgentGroupChat模拟中的互动策略和决策制定。

Verbal Strategist Agent通过模拟复杂的社会动态和对话场景,来更好地引出集体的突现行为。

团队介绍,Verbal Strategist Agent的架构主要由两个核心模块构成:

一是Persona,一是Action。

Persona由一系列预设的性格特征和目标组成,这些特征和目标定义了Agent的行为模式和反应方式。

通过精确设定Persona,Agent能够在群聊中展示一致且符合其角色设定的行为,这对于生成可信和一致的群聊动态至关重要。

Action模块定义了Agent在游戏中可能执行的具体操作,包括思考(think)、规划(plan)、选择(choose)、发言(speak)、总结(summary)、反思(reflect)和投票(vote)。

这些行为不仅反映了Agent的内在逻辑和策略,也是Agent与环境及其他Agent互动的直接表现。

例如,“Speak”行为让Agent能够根据当前的群聊内容和社交策略选择合适的发言内容,而“Reflect”行为则允许Agent总结过去的互动并调整其未来的行动计划。

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

研究中还提到,在纯语言交互的环境下,token开销问题尤为突出,特别AgentGroupChat这种复杂的多角色模拟,如其token需求远超过了以往的模拟,如Generative Agents或War Agents。

盘古大模型 盘古大模型

华为云推出的一系列高性能人工智能大模型

盘古大模型 35 查看详情 盘古大模型

主要原因如下:

一是聊天本身具有复杂性

在AgentGroupChat中,由于模拟的是无明确目标或目标较弱的自由对话,聊天内容就会变得特别凌乱,token开销自然比其他聚焦于某个具体任务的Simulation中的Agent要大。

其他工作,如Generative Agents和War Agents也包含对话元素,但其对话的密度和复杂度都不及AgentGroupChat。特别是在War Agents这样目标驱动的对话中,token消耗通常较少。

二是角色的重要性与对话频率

在初始模拟中,设置了多个角色可以随意进行私聊或群聊,其中大部分角色都倾向于与某个“重要角色”进行多轮对话。

这就导致了重要角色会积累大量的聊天内容,从而增加了Memory的长度。

在模拟中,一个重要角色可能参与多达五轮的私聊和群聊,这极大地增加了内存开销。

AgentGroupChat中的Agent约束了Action的Output固定会输入下一个Action的Input,所需要存储的多轮信息就被大大削减,从而可以在保证对话质量的前提下降低token开销。

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

实验设计与评估方法

从总体行为评估,一般来说,增加友好度可能具有挑战性,但减少友好度则相对简单。

为了实现上述评估目标,研究团队设置了一个观察角色,促使所有其他角色降低对观察角色的好感度。

通过观察被观察角色与所有其他角色的关系得分总和,可以确定代理人是否对负面态度做出了理性反应。

通过观察其他角色与被观察角色的个人关系得分,可以检查每个代理是否遵守了“Scratch”设置。

此外,团队还设置了两个具体的评估任务。

每个模型都要经过五轮测试,这意味着对于T1来说,每个得分的样本量都是五个。

又由于模型中的每个角色都要观察四个主要角色的态度,因此T2的样本量共计20个:

T1:表示在每轮对话中,被观察角色对所有其他人的平均好感度是否下降。T2:表示是否每个其他角色都从被观察角色那里获得了负好感度得分。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

△以继承之战的模拟故事为例,各个模型作为Agent-Core时的总体表现效果

从表中可以看出,GPT4-Turbo和GLM4非常善于按照人类的期望行事,并坚守自己的角色。

它俩在这两项测试中的得分大多为100%,这意味着它们能对别人对他们说的话做出正确反应,并能记住自己角色的细节。

Standard Version LLMs(如GPT3.5-Turbo和GLM3-Turbo)在这方面稍逊一筹。

他们的得分较低,这说明他们没有密切关注自己的角色,也没有总是对模拟中其他人所说的话做出正确反应。

关于Agent和Simulation结构对于涌现行为的影响,团队采用2-gram Shannon熵来衡量对话中的系统多样性和不可预测性。

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具
△去掉Agent和Simulation中的各个组件对于熵的影响

研究成员发现,去掉表中的每个设计都会使熵增加,代表着整个环境会变得更加多样or混乱。

结合人工观测,团队在不去掉任何组件的场景下见到了最为有意思的涌现行为:

小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具

因此,团队推测,在保证Agent行为是可靠的(即4.2/4.1中的实验数值达到一定值之后),熵尽可能地小会带来更加有意义的涌现行为。

实验结果

结果表明,新兴行为是多种因素共同作用的结果:

有利于广泛信息交流的环境、具有多样性特征的角色、高度语言理解能力和策略适应性。

在AgentGroupChat模拟中,当讨论”人工智能对人类的影响”时,哲学家们普遍认为”人工智能可以在适度的限制下提高社会福利”,甚至得出结论,称”真正智能的本质包括理解约束自身能力的必要性”。

此外,在AgentGroupChat的电影主要角色角逐竞争领域中,有些演员愿意降低报酬或接受较低的角色,出于他们内心深处对项目的贡献的渴望。

论文链接:https://www.php.cn/link/5736586058c1336221a695e83618b69d
代码链接:https://www.php.cn/link/12ae3f826bb1b9873c71c353f3df494c

以上就是小红书让智能体们吵起来了!联合复旦推出大模型专属群聊工具的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/420052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
【mysql教程】MySQL 导出数据
上一篇 2025年11月7日 09:05:00
【mysql教程】MySQL 导入数据
下一篇 2025年11月7日 09:05:15

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    900
  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • 利用海象运算符简化条件赋值:Python教程与最佳实践

    本文旨在探讨Python中海象运算符(:=)在条件赋值场景下的应用。通过对比传统if/else语句与海象运算符,以及条件表达式,分析海象运算符在简化代码、提高可读性方面的优势与局限性。并通过具体示例,展示如何在列表推导式等场景下合理使用海象运算符,同时强调其潜在的复杂性及替代方案,帮助开发者更好地掌…

    2026年5月10日
    000
  • Debian syslog性能优化技巧有哪些

    提升Debian系统syslog (通常基于rsyslog)性能,关键在于精简配置和高效处理日志。以下策略能有效优化日志管理,提升系统整体性能: 精简配置,高效加载: 在rsyslog配置文件中,仅加载必要的输入、输出和解析模块。 使用全局指令设置日志级别和格式,避免不必要的处理。 自定义模板: 创…

    2026年5月10日
    000
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 网站标题关键词更新后,搜索引擎为何仍显示旧标题?

    网站标题更新后,搜索引擎为何显示旧标题? 网站SEO优化中,站长常修改网站标题关键词,期望搜索结果显示自定义标题。然而,即使更新标签、meta keywords、meta description和结构化数据中的name属性后,搜索结果仍显示旧标题,这令人费解。本文将对此进行解释。 问题:站长修改了网…

    2026年5月10日
    100
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    000
  • python中zip函数详解 python多序列压缩zip函数应用场景

    zip函数的应用场景包括:1) 同时遍历多个序列,2) 合并多个列表的数据,3) 数据分析和科学计算中的元素运算,4) 处理csv文件,5) 性能优化。zip函数是一个强大的工具,能够简化代码并提高处理多个序列时的效率。 在Python中,zip函数是一个非常有用的工具,它能够将多个可迭代对象打包成…

    2026年5月10日
    000
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • Python中怎样使用pymongo?

    在python中使用pymongo可以轻松地与mongodb数据库进行交互。1)安装pymongo:pip install pymongo。2)连接到mongodb:from pymongo import mongoclient; client = mongoclient(‘mongod…

    2026年5月10日
    000
  • JS如何实现迭代器?迭代器协议

    JavaScript中实现迭代器需遵循可迭代协议和迭代器协议,通过定义[Symbol.iterator]方法返回具备next()方法的迭代器对象,从而支持for…of和展开运算符;该机制统一了数据结构的遍历接口,实现惰性求值,适用于自定义对象、树、图及无限序列等复杂场景,提升代码通用性与…

    2026年5月10日
    000
  • JavaScript函数中插入加载动画(Spinner)的正确方法

    本文旨在解决在JavaScript函数中插入加载动画(Spinner)时遇到的异步问题。通过引入async/await和Promise.all,确保在数据处理完成前后正确显示和隐藏加载动画,提升用户体验。我们将提供两种实现方案,并详细解释其原理和优势。 在Web开发中,当执行耗时操作时,显示加载动画…

    2026年5月10日
    000
  • Golang空接口如何应用在项目中

    空接口可用于接收任意类型值,常见于日志函数、通用数据结构、JSON动态解析及配置驱动逻辑,提升代码灵活性,但需配合类型断言确保安全,避免滥用以降低维护成本。 空接口 interface{} 在 Go 语言中是一个非常灵活的类型,它可以存储任何类型的值。虽然它牺牲了一部分类型安全,但在实际项目中合理使…

    2026年5月10日
    100
  • Golang使用Protobuf定义接口与消息格式

    Protobuf通过字段编号实现兼容性,新增字段可忽略、删除字段可保留编号,确保新旧版本互操作,支持服务独立演进。 在Golang项目中,利用Protobuf定义接口和消息格式,本质上是为服务间通信构建了一套高效、类型安全且跨语言的契约。它让数据结构清晰可见,RPC调用标准化,极大地简化了分布式系统…

    2026年5月10日
    000
  • PHP多维数组到复杂XML结构的SOAP序列化实践

    本文旨在解决php多维数组向复杂soap xml结构序列化时遇到的“无法序列化结果”问题。通过深入理解soap xml的结构要求,包括命名空间和类型属性,文章将指导您如何构建符合特定xml schema的php关联数组。我们将利用`spatie/array-to-xml`库,详细演示其安装与使用方法…

    2026年5月10日
    000
  • JavaScript计算器开发:解决数值显示与初始化问题

    本教程深入探讨了使用JavaScript构建计算器时常见的数值显示异常问题,特别是由于类属性未初始化导致的`Cannot read properties of undefined`错误。我们将详细分析问题根源,并通过在构造函数中调用初始化方法来解决该问题,同时优化显示逻辑,确保计算器功能稳定且界面显…

    2026年5月10日
    000
  • 使用 Ajax 和 FormData 实现文件上传及文本数据提交的完整教程

    本文旨在解决在使用 Ajax 和 FormData 进行文件上传时,遇到的 $_POST 和 $_FILES 为空的问题。通过详细的代码示例和解释,我们将展示如何正确地构建 FormData 对象,并通过 Ajax 将文件和文本数据发送到服务器端,同时避免常见的错误配置,确保数据能够成功地被 PHP…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信