当前位置:   article > 正文

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

conversableagent

上篇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数据类型:

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

  1. chatbot = autogen.AssistantAgent(
  2. name="chatbot",
  3. system_message="For currency exchange tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done.",
  4. llm_config=llm_config,
  5. )
  6. # create a UserProxyAgent instance named "user_proxy"
  7. user_proxy = autogen.UserProxyAgent(
  8. name="user_proxy",
  9. is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"),
  10. human_input_mode="NEVER",
  11. max_consecutive_auto_reply=10,
  12. )
  • 定义函数currency_calculator如下所示,并用两个装饰器装饰它:

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

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

  1. CurrencySymbol = Literal["USD", "EUR"]
  2. def exchange_rate(base_currency: CurrencySymbol, quote_currency: CurrencySymbol) -> float:
  3. if base_currency == quote_currency:
  4. return 1.0
  5. elif base_currency == "USD" an
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/1001938
推荐阅读
相关标签
  

闽ICP备14008679号