【下】大模型Autogen多Agent系统详细保姆级实践介绍,亲身实践展示代理效果,主要展示Agent进阶用法

本文深入介绍了大模型Autogen中的Agent进阶用法,包括工具调用、Agent优化器和AgentGroup。通过示例展示了如何使用Agent进行货币兑换计算,训练解决数学问题,以及如何利用AgentGroup实现多Agent协作完成复杂任务。同时,文章对比了LangChain中的Agent和Chain的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇Autogen基本用法见上篇博文:

【上】大模型Autogen多Agent系统详细保姆级实践介绍,亲身实践展示代理效果-CSDN博客

3 Agent进阶用法

3.1 工具调用

工具调用使代理能够更有效地与外部工具和api进行交互。该功能允许模型智能地选择输出包含参数的JSON对象,以便根据用户的输入调用特定的工具。要调用的工具使用描述其参数及其类型的JSON模式指定。编写这样的JSON模式是复杂且容易出错的,这就是为什么AutoGen框架提供了两个高级函数装饰器,用于在标准Python数据类型上使用类型提示自动生成这样的模式:

  1. ConversableAgent.register_for_llm 用于在ConversableAgent的llm_config中将函数注册为Tool。ConversableAgent代理可以建议执行已注册的工具,但实际的执行将由UserProxy代理执行。

  2. ConversableAgent.register_for_execution用于将函数注册到UserProxy代理的function_map中。

3.1.1 Agent实例4——货币兑换计算

注册一个自定义函数用于货币兑换计算的过程,该函数使用类型提示和标准Python数据类型:

  • 创建一个助理代理和用户代理。助手将负责建议调用哪些函数,并由用户代理实际执行所建议的函数:

chatbot = autogen.AssistantAgent( 
    name="chatbot", 
    system_message="For currency exchange tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done.", 
    llm_config=llm_config, 
) 

# create a UserProxyAgent instance named "user_proxy" 

user_proxy = autogen.UserProxyAgent( 
    name="user_proxy", 
    is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"), 
    human_input_mode="NEVER", 
    max_consecutive_auto_reply=10, 
)
  • 定义函数currency_calculator如下所示,并用两个装饰器装饰它:

@user_proxy.register_for_execution添加currency_calculator函数到user_proxy.function_map

@chatbot.register_for_llm将生成的函数JSON模式添加到chatbot的llm_config

CurrencySymbol = Literal["USD", "EUR"] 


def exchange_rate(base_currency: CurrencySymbol, quote_currency: CurrencySymbol) -> float: 
    if base_currency == quote_currency: 
        return 1.0 
    elif base_currency == "USD" an
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

炭市街潜水豆浆

勇敢的人先体验生活

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

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

打赏作者

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

抵扣说明:

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

余额充值