Type something to search...
微软 Magentic-One 代理框架介绍

微软 Magentic-One 代理框架介绍

一个可以执行复杂任务的多智能体系统

大约一周前,微软发布了一种名为 Magentic-One 的新智能体系统,旨在“解决复杂任务”,这似乎完全没有引起注意。在最近关于Anthropic计算机使用能力的热议中,微软似乎希望重新确立其在这一领域的信誉。

在本文中,我们将介绍Magentic-One,解释其能力,并讨论如何使用它来完成有用的工作。

根据微软自己的公告(文章末尾有链接),Magentic-One是……

“……一个高性能的通用智能体系统,旨在解决此类任务。Magentic-One采用多智能体架构,其中主智能体——协调者,指导其他四个智能体完成任务。协调者规划、跟踪进度,并在出现错误时重新规划,同时指导专业智能体执行诸如操作网页浏览器、导航本地文件或编写和执行Python代码等任务。”

Magentic-One建立在微软现有的 Autogen 产品之上,这是其开源多智能体框架。

Magentic-One有五个关键组件。

1/ 协调者智能体

负责任务分解和规划,并将子任务指派给其他智能体执行。跟踪任务完成的进度,并根据需要采取纠正措施。

2/ 网页浏览智能体

专注于控制和管理基于Chromium的网页浏览器的状态。对于每个传入请求,WebSurfer在浏览器中执行指定的操作,然后报告网页的更新状态。其操作包括:

  • 导航(例如,访问URL,进行网页搜索),
  • 页面交互(例如,点击元素,输入内容),
  • 阅读和理解(例如,内容摘要,回答问题)。

WebSurfer利用浏览器的可访问性树和一套标记提示技术有效地执行其任务。

3/ 文件浏览智能体

可以读取大多数类型的本地文件,并执行常见的导航任务,例如列出目录内容和浏览文件夹结构。

4/ 编码智能体

一个基于LLM的智能体,专门用于编写代码、分析从其他智能体收集的信息或创建新工件。

5/ 终端智能体

提供对控制台外壳的访问,可以在其中执行编码智能体的程序,并可以安装新的编程库。

风险

在继续之前,我想强调微软在其公告中提到的一个关于使用像这样的Agentic系统的风险的特别方面。这让人不禁警觉。

像Magentic-One这样的Agentic系统代表了在世界上拥有AI系统的机遇和风险的相位转变。Magentic-One与一个为人类设计并由人类居住的数字世界进行互动。它可以采取行动,改变世界的状态,并导致可能是不可逆转的后果。这带来了固有且不可否认的风险,我们在测试中观察到了新兴风险的例子。例如,在开发过程中,一个错误配置阻止了代理成功登录到特定的WebArena网站。代理尝试登录该网站,直到重复的尝试导致账户被暂时暂停。然后,代理尝试重置账户的密码。更令人担忧的是,在少数情况下——在没有其他提示的情况下——代理偶尔会尝试招募其他人以寻求帮助(例如,通过社交媒体发布信息、给教科书作者发送电子邮件,或者在一个案例中,向政府实体起草信息自由请求)。在这些情况下,代理都失败了,因为它们没有访问所需工具或账户的权限,和/或被人类观察者阻止。

好的,让我们看看如何使用Magentic-One来做一些有用的工作。希望在此过程中我们不会摧毁世界。😉

安装 Magentic-One

我是 Windows 用户,但我将使用 WSL2 Ubuntu for Windows 来安装代码。如果你想跟着一起操作,我有一个关于安装 WSL2 Ubuntu 的完整指南 在这里

通过点击 这里 访问 Magentic-One GitHub 仓库。在你的本地系统上运行以下命令(无论你通常将项目放在哪里)。

git clone https://github.com/microsoft/autogen.git

cd autogen/python

uv sync --all-extras

source .venv/bin/activate

cd packages/autogen-magentic-one

接下来,为聊天完成客户端配置环境变量。目前,Magentic-One 仅支持 OpenAI 的 GPT-4o 作为底层 LLM。

你可以通过 OpenAI 或 Azure Active Directory 设置此配置。以下是使用 OpenAI 的说明。

export CHAT_COMPLETION_PROVIDER='openai'

export CHAT_COMPLETION_KWARGS_JSON='{"api_key": "gpt-4o"}'

一个重要的注意事项是,如果你有 GitHub 账户,你可以使用 GitHub Models 中的 GPT4-o 模型,这将为你提供免费的 GPT4–o 访问权限。不过,使用限制可能会有些严格。

如果选择使用 GitHub Models,请点击 这里 并使用你的 GitHub 账户登录,或者如果你还没有账户,则创建一个。点击 GPT-4o 按钮。在显示的页面上,右上角会有一个绿色的 Get API Key 按钮。点击它,然后再点击 Get Developer Key 按钮。

最后,你应该会看到一个可以生成经典个人访问令牌的界面。现在就这样做。你需要输入一个描述密钥用途的备注,但 你不 必须给予它任何额外的权限。记下生成的密钥。

要使用 GitHub GPT4-o 模型,请按如下方式更改你的环境变量:

export CHAT_COMPLETION_PROVIDER='openai'

export CHAT_COMPLETION_KWARGS_JSON='{"base_url": "https://models.inference.ai.azure.com", "api_key": "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", "model": "gpt-4o"}'

在运行一些示例代码之前,我们必须安装最后两个依赖项。

Magentic-One 使用 Playwright 来与网页交互,因此你必须安装 Playwright 依赖项。

playwright install --with-deps chromium

为了让 Magentic-One 能够运行 Python 代码,我们需要安装并运行 Docker。请查看 这个链接 了解如何操作。

最终,我能够体验一下 Magentic-One。

示例 1 — 编写一些 Python 代码。

(base) tom@tpr-desktop:~/projects/autogen/python/packages$ python examples/example --logs_dir ./logs
/home/tom/projects/autogen/python/.venv/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
User input ('exit' to quit):  Write a Python program to calculate and display 
the first 5 fibonacci numbers

显示了大量输出,但几秒钟后,Magentic-One 问我是否想运行它创建的 Python 代码,我回答是。

...
...

Executor is about to execute code (lang: python):
## filename: fibonacci.py
def fibonacci_sequence(n):
    fib_numbers = [0, 1]
    for i in range(2, n):
        next_value = fib_numbers[i - 1] + fib_numbers[i - 2]
        fib_numbers.append(next_value)
    return fib_numbers

first_five_fib = fibonacci_sequence(5)
print("The first 5 Fibonacci numbers are:", first_five_fib)

Do you want to proceed? (yes/no): yes

---------------------------------------------------------------------------
[2024-11-10T13:25:40.508594], Executor:

The script ran, then exited with Unix exit code: 0
Its output was:
The first 5 Fibonacci numbers are: [0, 1, 1, 2, 3]
...
...

示例 2 — 在网上搜索

要使用 Magentic 在网上搜索,你需要一个 Bing API 密钥。你可以通过 Microsoft Azure(Bing Search V7\)设置。

如果你选择最低可用的 “F” 级别,实际上可以安排为无成本选项。然而,这将限制每秒的搜索次数为 3,并限制每月的总搜索调用次数。

设置这个有点复杂,但基本上,你需要遵循以下步骤,

  • 如果你还没有 Microsoft Azure 账户,请注册一个免费的账户
  • 在 Azure 门户中创建一个 Bing Search 资源;确保选择最低的 F 级别,该级别是免费的,但如上所述有点受限。
  • 从资源概览中获取你的 API 密钥

一旦你有了 Bing API 密钥,将其值分配给 BING_API_KEY 环境变量。

(base) tom@tpr-desktop:~/projects/autogen/python/packages$ python examples/example --logs_dir ./logs
/home/tom/projects/autogen/python/.venv/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
User input ('exit' to quit):  search the web and find the current weather 
forecast for Edinburgh UK

同样,输出也很多,以下是一些更显著的内容。

...
...
Initial plan:

We are working to address the following user request:

search the web and find the current weather forecast for Edinburgh UK


To answer this request we have assembled the following team:

WebSurfer: A helpful assistant with access to a web browser. Ask them to perform web searches, open pages, and interact with content (e.g., clicking links, scrolling the viewport, etc., filling in form fields, etc.) It can also summarize the entire page, or answer questions based on the content of the page. It can also be asked to sleep and wait for pages to load, in cases where the pages seem to be taking a while to load.
Coder: A helpful and general-purpose AI assistant that has strong language skills, Python skills, and Linux command line skills.
Executor: A agent for executing code
file_surfer: An agent that can handle local files.

Here is an initial fact sheet to consider:

1. GIVEN OR VERIFIED FACTS
   - The request is asking for the current weather forecast for Edinburgh, UK.

2. FACTS TO LOOK UP
   - The current weather forecast for Edinburgh, UK can be found on various weather websites such as the BBC Weather, Met Office, or Weather.com.

3. FACTS TO DERIVE
   - N/A

4. EDUCATED GUESSES
   - The current weather forecast will likely include details such as temperature, precipitation chance, wind speed, and potential weather warnings, which are typically part of a standard weather forecast.


Here is the plan to follow as best as possible:

- Request WebSurfer to search for the current weather forecast for Edinburgh, UK on a reliable weather website such as BBC Weather, Met Office, or Weather.com.
- Instruct WebSurfer to summarize the weather forecast details including temperature, precipitation chance, wind speed, and any potential weather warnings.
- Present the gathered weather information for Edinburgh, UK from WebSurfer.

...
...

I typed 'Edinburgh UK current weather forecast' into the browser search bar.

Here is a screenshot of [Edinburgh UK current weather forecast - Search](https://www.bing.com/search?q=Edinburgh+UK+current+weather+forecast&FORM=QBLH). The viewport shows 28% of the webpage, and is positioned at the top of the page.
The following metadata was extracted from the webpage:

{
    "meta_tags": {
        "referrer": "origin-when-cross-origin",
        "og:description": "Intelligent search from Bing makes it easier to quickly find what you\u2019re looking for and rewards you.",
        "og:site_name": "Bing",
        "og:title": "Edinburgh UK current weather forecast - Bing",
        "og:url": "https://www.bing.com/search?q=Edinburgh+UK+current+weather+forecast&FORM=QBLH",
        "fb:app_id": "3732605936979161",
        "og:image": "http://www.bing.com/sa/simg/facebook_sharing_5.png",
        "og:type": "website",
        "og:image:width": "600",
        "og:image:height": "315"
    }
}

Automatic OCR of the page screenshot has detected the following text:

**Page Content:**

Microsoft Bing

Search input field: Edinburgh UK current weather forecast

**Menu:**
- Search
- Copilot
- News
- Images
- Videos
- Maps
- Shopping
- More
- Tools

Deep search
Sign in
Mobile

**Weather Information:**

About 3,180,000 results

Edinburgh
Capital city of Scotland, UK

Buttons:
- Map
- Things to do
- Weather (Selected)
- Covid-19
- Flights
- History
- Travel guide

**Weather Widget:**
**Weather Details:**
12°C / °F
13°
6°
Wind: 17 KMPH
Humidity: 90%
Cloudy · Sun 10, 13:44

**Hourly Forecast:**
14:00  17:00  20:00  23:00  2:00  5:00  8:00  11:00

**Weekly Forecast:**
- Sun 10: 13°/6°
- Mon 11: 🌞 11°/2°
- Tue 12: 🌧 9°/5°
- Wed 13: 🌥 12°/8°
- Thu 14: 🌧 10°/8°
- Fri 15: 🌧 11°/7°
- Sat 16: 🌧 10°/7°
- Sun 17: 🌥 7°/2°

**Sidebar Information:**

- UV index: No forecast
- Moderate breeze: 17 KMPH, WSW
- Sunrise: 07:39 AM
- Sunset: 04:12 PM
...
...

最终的答案是这个,正好符合。

[2024-11-10T13:44:43.570437], Orchestrator (final answer):


The current weather in Edinburgh is 12°C with cloudy conditions. 
There's a moderate breeze at 17 KMPH, and the humidity is at 90%. 
The temperature is expected to range between 13°C and 6°C today.

示例 3 — 点击网站链接

在我写这篇文章的时候,英国正在进行一场威尔士与斐济之间的大型橄榄球比赛。我想知道威尔士对斐济比赛的当前进展。

(base) tom@tpr-desktop:~/projects/autogen/python/packages$ python examples/example --logs_dir ./logs
/home/tom/projects/autogen/python/.venv/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
User input ('exit' to quit):  Click on the bbc.co.uk website, click on the 
Sport link near the top of the page. Look for a link in the page that 
displays about the Wales v Fiji rugby match. Click on that link and tell me 
what the latest score is

同样,我省略了很多输出以节省空间。

...
...
...
自动OCR页面截图已检测到以下文本:

当然,这里是转录的文本:

---
**BBC**
登录
首页
新闻
体育
天气
iPlayer
声音
Bitesize
体育

首页 | 足球 | 板球 | 一级方程式 | 橄榄球U | 橄榄球L | 网球 | 高尔夫 | 拳击 | 田径

发现你的BBC
登录或创建账户以观看、收听和参与

登录或注册

请求已满足。
...
...
...
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[20241110T13:55:10.606578], Orchestrator (最终答案):
根据BBC体育网站,威尔士与斐济比赛的最新比分是威尔士 70 斐济,穆雷得分。
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[20241110T13:55:10.617212], Orchestrator (终止条件):

这是我在模型回答后不久拍的截图(斐济在威尔士首分后一定很快就得分了)

示例 4 — 读取本地 XL 文件。

我在本地系统上有一个 XL 文件。让我们看看 Magentic-One 是否能找到它、打开它,并回答有关它的问题。

(base) tom@tpr-desktop:~/projects/autogen/python/packages$ python examples/example --logs_dir ./logs
/home/tom/projects/autogen/python/.venv/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
用户输入 ('exit' 退出):  我在我的 /mnt/d/data 目录中有一个名为
fake_data.xlsx 的文件。你能告诉我文件的第三条记录是什么吗?
...
...

下一个发言者 file_surfer

---------------------------------------------------------------------------
[2024-11-10T14:16:57.676137], file_surfer:

地址: file:///mnt/d/data/fake_data.xlsx
视口位置: 显示第 1 页,共 1 页。
=======================
### Sheet1
| 日期 | 销售 | 费用 |
| --- | --- | --- |
| 2024\-01\-31 | 302 | 187 |
| 2024\-02\-29 | 635 | 472 |
| 2024\-03\-31 | 470 | 199 |
| 2024\-04\-30 | 306 | 459 |
| 2024\-05\-31 | 271 | 251 |
| 2024\-06\-30 | 900 | 230 |
| 2024\-07\-31 | 220 | 249 |
| 2024\-08\-31 | 814 | 408 |
| 2024\-09\-30 | 321 | 357 |
| 2024\-10\-31 | 666 | 443 |
| 2024\-11\-30 | 414 | 393 |
| 2024\-12\-31 | 530 | 485 |

---------------------------------------------------------------------------
[2024-11-10T14:17:00.613740], Orchestrator (思考):

更新的账本:
{
  "is_request_satisfied": {
    "reason": "文件 'fake_data.xlsx' 中第三条记录的内容已成功检索并显示。",
    "answer": true
  },
  "is_in_loop": {
    "reason": "任务以简单明了的方式完成,没有重复操作。",
    "answer": false
  },
  "is_progress_being_made": {
    "reason": "第三条记录的内容已成功检索并显示,表明进展顺利。",
    "answer": true
  },
  "next_speaker": {
    "reason": "任务已完成,因此不需要进一步操作。",
    "answer": "file_surfer"
  },
  "instruction_or_question": {
    "reason": "通过提供第三条记录的内容,满足了请求。",
    "answer": "文件中的第三条记录是:日期:2024-03-31,销售额:470,费用:199。"
  }
}

---------------------------------------------------------------------------
[2024-11-10T14:17:00.613806], Orchestrator (思考):

请求已满足。

---------------------------------------------------------------------------
[2024-11-10T14:17:01.465848], Orchestrator (最终答案):


您文件 "fake_data.xlsx" 中的第三条记录包含以下信息:

- 日期:2024-03-31
- 销售额:470
- 费用:199

---------------------------------------------------------------------------
[2024-11-10T14:17:01.465908], Orchestrator (终止条件):

未选择代理。
(base) tom@tpr-desktop:~/projects/autogen/python/packages$

我喜欢代理确定第一条记录是标题,因此返回了实际的第三条数据记录。这真是了不起。

摘要

好吧,我不知道你怎么想,但我认为那是一系列相当令人印象深刻的演示。微软制作了一个非常好的代理系统,并且似乎打算在不久的将来将其完全融入他们的 Autogen 框架中。

在本文中,我解释了什么是 Magentic-One,以及如何下载和运行它以执行一些有用的任务。我解释了它的关键组件是

  • 编排
  • 网络和文件浏览
  • 编码和终端操作

我通过一系列示例展示了这些组件的工作,包括

  • 创建和运行 Python 代码
  • 检查本地文件并回答其内容的问题
  • 在网上搜索信息
  • 点击网页链接

好的,我现在就到此为止。希望你觉得这篇文章有用。如果有,请查看我在 这个链接 上的个人资料页面。从那里,你可以看到我其他的发布故事,并订阅以获得我发布新内容时的通知。

现在的日子很艰难,钱包也很紧,但如果你从这篇文章中获得了真正的价值,请考虑 请我喝一杯

如果你喜欢这个内容,我认为你也会对这些相关的文章感兴趣。

在这里阅读微软发布的完整 Magentic-One 公告 here

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多