AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


智能体革新:AutoGen如何引领下一代LLM应用开发?
发布日期:2024-07-27 08:33:12 浏览次数: 1920 来源:探索AGI



今天我们来聊聊一个特别火的话题——多智能体框架和AutoGen项目。你可能听说过智能体(Agent),它们通常是由大型语言模型(LLM)驱动的程序,能够执行各种任务。但你知道吗,让这些智能体在面对模糊任务时保持稳定的表现,其实是个技术活儿。

想象一下,如果我们能让多个LLM互相反馈,岂不是能让整个系统的表现更上一层楼?这就是“AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation” 论文的出发点。作者不仅写了论文,还启动了一个开源项目来探索这个想法。

AutoGen的核心是对话模型,智能体之间通过对话来解决问题。就像人类互相改进工作一样,LLM会听取其他智能体的意见,然后提供改进或新信息。而且,智能体系统不仅仅需要LLM,还需要技能和工具,比如保存和执行LLM之前编码的函数。

在AutoGen中,我们有三个主要的智能体来源:LLM、人类和工具。我们通过“对话编程”来指导智能体完成目标。每个智能体都有发送、接收和生成回复的功能。通过控制智能体何时接收消息,我们可以决定何时进行计算。

接下来,让我们通过一些代码示例来看看AutoGen是如何工作的。比如,让LLM生成可以在本地运行的代码,并在抛出异常时进行编辑。这里我们修改了AutoGen项目中的一个示例,创建了两个智能体:AssistantAgent(与OpenAI的LLMs交互)和UserProxyAgent(接收指令并运行返回的代码)。

# https://microsoft.github.io/autogen/docs/notebooks/agentchat_auto_feedback_from_code_execution/


from IPython.display import Image, display
import autogen
from autogen.coding import LocalCommandLineCodeExecutor
import os
config_list = [{
   "model""llama3-70b-8192",
   "api_key": os.environ.get('GROQ_API_KEY'),
   "base_url":"https://api.groq.com/openai/v1"
}]

# create an AssistantAgent named "assistant"
assistant = autogen.AssistantAgent(
    name="assistant",
    llm_config={
        "cache_seed"41,  # seed for caching and reproducibility
        "config_list": config_list,  # a list of OpenAI API configurations
        "temperature"0,  # temperature for sampling
    },  # configuration for autogen's enhanced inference API which is compatible with OpenAI API
)

# create a UserProxyAgent instance named "user_proxy"
user_proxy = autogen.UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10,
    is_termination_msg=lambda x: x.get("content""").rstrip().endswith("TERMINATE"),
    code_execution_config={
        # the executor to run the generated code
        "executor": LocalCommandLineCodeExecutor(work_dir="coding"),
    },
)
# the assistant receives a message from the user_proxy, which contains the task description
chat_res = user_proxy.initiate_chat(
    assistant,
    message="""What date is today? Compare the year-to-date gain for META and TESLA.""",
    summary_method="reflection_with_llm",
)

上面的例子涉及到代码执行。在 AutoGen 中,当 UserProxyAgent 检测到接收到的消息中存在可执行代码块并且未提供人工用户输入时,代码执行将由 UserProxyAgent 自动触发。在构造 LocalCommandLineCodeExecutor 的新实例时,用户可以选择通过设置 work_dir 参数来指定不同的工作目录。

总之,随着LLM研究和开发的不断进步,智能体系统能够提供模型所需的工具、反馈和数据,以实现持续的高性能,这将是非常宝贵的。AutoGen作为一个既实用又开源的项目,让我们看到了人们是如何思考解决智能体周围的一些技术挑战的。这是一个激动人心的建设时代!

好了,这就是我今天想分享的内容。如果你对构建AI智能体感兴趣,别忘了点赞、关注噢~



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询