本文将介绍如何使用AgentScope框架构建一个简单的多智能体群聊系统,并解释其背后的实现逻辑。
首先写好设置文件。
agent_config.json
model_config.json
实现代码
主逻辑 main.py
辅助函数 groupchat_utils.py
代码解析
这段代码实现了多智能体之间的群聊功能。用户可以与多个智能体(NPC)进行互动,而这些智能体之间也能相互交流。关键在于:
- 初始化智能体:通过
agentscope.init()
函数加载配置文件,并创建智能体实例。 - 消息传递:使用
msghub
来管理智能体间的通讯。 - 指定回复者:通过在消息中包含
@
符号加上特定智能体的名字来指定回复的对象。 - 轮询机制:如果没有明确指定回复者,则按照轮询的方式选择下一个发言的智能体。
最终效果
运行上述代码后,用户可以参与到与多个智能体的对话中。用户输入的内容将被解析,如果含有@
符号,则直接指定了下一个应该回应的智能体。如果没有指定,则按顺序选择智能体回应。
代码中的print部分为我加入的输出,可以看到目前在运行中还存在一些问题。 1.如果名字不打的完全准确是无法识别的
2.如果一次@了两个人,中间会需要用户进行输入
3.让NPC互相聊天会出现一个NPC把所有的NPC对话全部生成的情况。
有一些推想的解决方案,还没有实行,但是暂且列出来:
1.引入模糊匹配机制解决名字识别问题。通过使用正则表达式或其他字符串匹配算法,系统可以识别近似的名称输入,并将其映射到正确的NPC上。
2.可以通过调整代码逻辑解决。
3.目前还没有解决方案。