您的位置:首页 > 财经 > 金融 > 多个智能体协作之 AutoGen 实例(二)双代理

多个智能体协作之 AutoGen 实例(二)双代理

2025/2/25 5:57:31 来源:https://blog.csdn.net/u011074149/article/details/140855808  浏览:    关键词:多个智能体协作之 AutoGen 实例(二)双代理

目录

一、双 Agent 对话

二、实例


本文主要介绍两个 Agent 进行聊天,这是 AutoGen 最简单的对话模式。

一、双 Agent 对话

双代理聊天架构如下所示。

通过 ConversableAgent 定义 Agent A 和 B,分别配置调用的大模型,最先发起对话的 Agent 调用 initiate_chat 函数开始对话。

对话结束后,对话历史记录将由对话摘要器处理。摘要器会汇总对话历史记录并计算对话的 Token 使用量。可以使用方法 summary_method 的参数配置摘要类型。默认情况下,它是聊天的最后一条消息(即 summary_method='last_msg')。

二、实例

下面通过学生和老师两个 Agent 对话来演示。

import osfrom autogen import ConversableAgent# 启了两个 chatglm2-6b 作为 LLM 支持对话
llm_config_chatglm2 = {"model": "chatglm2", "api_key": "EMPTY","base_url": "http://0.0.0.0:8000/v1"}llm_config_qwen = {"model": "chatglm2", "api_key": "EMPTY","base_url": "http://0.0.0.0:8001/v1"}# 学生 Agent
student_agent = ConversableAgent(name="Student_Agent",system_message="假设你是一个学生",llm_config=llm_config_chatglm2,
)# 老师 Agent
teacher_agent = ConversableAgent(name="Teacher_Agent",system_message="假设你是一个老师",llm_config=llm_config_chatglm2,
)chat_result = student_agent.initiate_chat(teacher_agent,message="为什么要学习?",summary_method="reflection_with_llm",max_turns=2, # 两轮对话
)

输出结果:

Student_Agent (to Teacher_Agent):为什么要学习?-------------------------------------------------------------------------------->>>>>>>> USING AUTO REPLY...
[autogen.oai.client: 08-02 08:45:17] {329} WARNING - Model chatglm2 is not found. The cost will be 0. In your config_list, add field {"price" : [prompt_price_per_1k, completion_token_price_per_1k]} for customized pricing.
Teacher_Agent (to Student_Agent):作为一个老师,学习的重要性不言而喻。以下是我作为老师为什么要学习的原因:1. 提高自己的技能和知识:继续学习可以帮助我们不断提高自己的技能和知识,更好地为学生服务。我们可以参加各种培训、研讨会和课程,了解最新的教学方法和技术,更好地应对不同的学生和教学需求。2. 了解学生的需求和兴趣爱好:学习可以帮助我们更好地了解学生的需求和兴趣爱好,更好地与他们沟通和合作。我们可以参加学生的课外活动、社交活动等,与他们建立更好的关系,更好地了解他们的需求和兴趣爱好。3. 提高自己的领导力和管理能力:学习可以帮助我们不断提高自己的领导力和管理能力,更好地领导和管理学生。我们可以参加各种管理课程和培训,了解最新的领导和管理趋势,更好地管理学生和班级。4. 跟上时代的发展:学习可以帮助我们跟上时代的发展,更好地应对不同的学生和教学需求。我们可以关注教育行业的最新动态和发展趋势,了解新的教学方法和技术,更好地为学生服务。作为一个老师,学习是非常重要的,可以帮助我们不断提高自己的技能和知识,更好地为学生服务。-------------------------------------------------------------------------------->>>>>>>> USING AUTO REPLY...
[autogen.oai.client: 08-02 08:45:19] {329} WARNING - Model chatglm2 is not found. The cost will be 0. In your config_list, add field {"price" : [prompt_price_per_1k, completion_token_price_per_1k]} for customized pricing.
Student_Agent (to Teacher_Agent):非常棒!作为一个老师,学习是非常重要的。通过学习,我们可以提高自己的教学技能和知识,更好地为学生服务。同时,学习也可以帮助我们更好地了解学生的需求和兴趣爱好,更好地与他们沟通和合作。还可以提高我们的领导力和管理能力,更好地领导和管理学生。最后,学习可以帮助我们跟上时代的发展,更好地应对不同的学生和教学需求。-------------------------------------------------------------------------------->>>>>>>> USING AUTO REPLY...
[autogen.oai.client: 08-02 08:45:22] {329} WARNING - Model chatglm2 is not found. The cost will be 0. In your config_list, add field {"price" : [prompt_price_per_1k, completion_token_price_per_1k]} for customized pricing.
Teacher_Agent (to Student_Agent):非常棒的老师,您的回答非常清晰和全面,说出了学习对作为一名老师的重要性。学习可以帮助我们不断提高自己的教学技能和知识,更好地为学生服务。同时,学习也可以帮助我们更好地了解学生的需求和兴趣爱好,更好地与他们沟通和合作。还可以提高我们的领导力和管理能力,更好地领导和管理学生。最后,学习可以帮助我们跟上时代的发展,更好地应对不同的学生和教学需求。非常感谢您的回答!--------------------------------------------------------------------------------
/opt/conda/lib/python3.8/site-packages/autogen/agentchat/conversable_agent.py:1181: UserWarning: Cannot extract summary using reflection_with_llm: Error code: 400 - {'detail': 'Invalid request'}. Using an empty str as summary.warnings.warn(

整体上还可以,但是 prompt 还需要完善,另外,回答也与模型大小有关,上面用的是 ChatGLM2-6B。

参考链接:

[1] Conversation Patterns | AutoGen

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com