Magentic-One:微软开源多智能体系统,让 AI 自己动手解决问题

文摘   2024-11-09 09:25   美国  

Magentic-One 是微软开源的通用多智能体系统,能够像人类专家一样解决复杂的网络和文件任务,性能比肩 SOTA。 它采用创新的多智能体架构,由 Orchestrator 代理协调其他专门代理完成任务,具有高度的模块化、灵活性和可扩展性。 Magentic-One 为开发者和研究人员提供了一个强大的平台,推动 AI 代理技术走向新的高度。

从“聊天”到“行动”的 AI 革命

想象一下,你只需要告诉 AI 你的需求,它就能自动帮你完成,比如预订机票和酒店、撰写市场调研报告、甚至帮你分析复杂的代码库。这不再是科幻电影的场景,而是 AI Agent技术带来的未来。与以往只能进行简单对话的 AI 系统不同,AI Agent更注重“行动”,它们能够像人类一样感知、推理和行动,真正将 AI 的力量转化为实际的生产力。

Magentic-One 正是这场 AI 革命的先锋。

开源多智能体系统,开启 AI 新纪元

Magentic-One 是微软研究院推出的一款开源通用多智能体系统,旨在解决跨多个领域的开放式网络和基于文件的复杂任务。 它能够像人类专家一样浏览网页、操作文件、编写和执行代码,甚至与其他人类进行交互。这标志着 AI 代理技术发展迈向新的里程碑,使其更接近于解决人们日常生活中遇到的各种问题。

Magentic-One 基于微软的开源多智能体应用开发框架 AutoGen 构建。AutoGen 提供了模块化和灵活的多智能体范例,使得 Magentic-One 具有高度的灵活性和可扩展性,为开发者和研究人员提供了一个强大的平台。

图1:Magentic-One 示例,展示了其在各种领域解决开放式网络和文件任务的能力。

架构解析:多Agent协同,高效解决问题

Magentic-One 采用独特的“多智能体”架构,其核心是一个名为 Orchestrator 的主Agent。 Orchestrator 就像一位总指挥,负责任务分解和规划、指导其他Agent执行子任务、跟踪总体进度以及根据需要采取纠正措施。它通过内外双循环机制进行工作:

  • • 外循环: 管理任务分类账(包含事实、猜测和计划),制定整体策略。

  • • 内循环: 管理进度分类账(包含当前进度、代理的任务分配),监控执行情况并动态调整。

图2:Magentic-One 的 Orchestrator Agent的双循环机制,展示了其如何管理任务和进度。

Magentic-One 包含四个专门Agent,各司其职:

  • • WebSurfer: 负责操作浏览器,进行网页导航、点击、输入、提取信息等操作。

  • • FileSurfer: 负责处理本地文件,例如读取、导航、搜索等。

  • • Coder: 负责编写和分析代码。

  • • ComputerTerminal: 提供控制台 shell,用于执行 Coder 编写的代码。

这些Agent协同工作,就像一个高效的团队,共同完成复杂的任务。Magentic-One 支持多模态 LLM,并与模型无关,可以灵活地使用不同的 LLM 和 SLM,例如 GPT-4o 和 OpenAI o1-preview。

Magentic-One示例:WebSurfer 和 Coder

Magentic-One 提供了丰富的示例来帮助开发者快速上手。以下分别展示了 WebSurfer 和 Coder 的简单示例:

WebSurfer 示例 (example_websurfer.py)

# ... (省略部分代码)

async def main() -> None:
    # ... (省略部分代码)

    actual_surfer = await runtime.try_get_underlying_agent_instance(web_surfer.idtype=MultimodalWebSurfer)
    await actual_surfer.init(
        model_client=client,
        downloads_folder=os.getcwd(),
        start_page="https://www.bing.com",  # 设置起始页面
        browser_channel="chromium",  # 使用Chromium浏览器
        headless = False # 显示浏览器窗口
    )

    # ... (省略部分代码)

这段代码演示了如何初始化和使用 WebSurfer 代理,通过设置 headless = False 可以直接观察浏览器操作。用户可以与 WebSurfer 交互,指示其执行各种网页操作。

Coder 和 Executor 示例 (example_coder.py)

# ... (省略部分代码)

async def main() -> None:
    async with DockerCommandLineCodeExecutor() as code_executor:  # 使用 Docker 执行代码
        # ... (省略部分代码)

        await Executor.register(
            runtime,
            "Executor",
            lambda: Executor("A agent for executing code", executor=code_executor, confirm_execution=confirm_code),
        )

        # ... (省略部分代码)

这段代码演示了如何使用 Coder 代理编写代码,并通过 Executor Agent 在 Docker 容器中执行代码,保证了代码执行的安全性。

性能评估:比肩 SOTA,实力强劲

为了评估 Magentic-One 的性能,微软推出了 AutoGenBench,这是一个开源的Agent基准测试工具。在 GAIA、AssistantBench 和 WebArena 等基准测试中,Magentic-One 取得了与最先进技术(SOTA)相当或更优的性能,证明了其作为通用Agent系统的强大实力。

Image 3: Evaluation results of Magentic-One on the GAIA, AssistantBench and WebArena. Error bars indicate 95% confidence intervals. Note that WebArena results are self-reported.

图3:Magentic-One 在 GAIA、AssistantBench 和 WebArena 上的评估结果,误差线表示 95% 置信区间。WebArena 结果为自报告。

Magentic-One 的未来,无限可能

Magentic-One 的开源,为 AI Agent技术的发展带来了新的可能性。 未来,我们可以期待 Magentic-One 在更多领域展现其强大的能力,例如:

  • • 更复杂、更智能的任务自动化

  • • 更自然、更流畅的人机交互

  • • 更安全、更可靠的 AI 应用

Magentic-One 代表了 AI Agent 技术发展的重要一步,它展现了多智能体系统在解决复杂任务方面的巨大潜力。 随着技术的不断发展和完善,Magentic-One 将在未来发挥更大的作用,引领 AI Agent 新时代。

相关链接

  • • Magentic-One 项目:https://aka.ms/magentic-one

  • • AutoGen 框架:https://github.com/microsoft/autogen

子非AI
子非AI,焉知AI之乐:分享AI的有趣应用和创新案例,让你了解AI的乐趣。
 最新文章