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

目录

一、双 Agent 对话

二、实例


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

一、双 Agent 对话

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

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

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

二、实例

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

import os

from 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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值