Magnetic-One多代理框架实战

LIBRARY Nov 26, 2024

Magnetic-One 旨在通过利用多个 AI 代理来简化复杂任务,每个代理都具有专门的功能。我之前的一篇文章也介绍了 Magnetic-One。最近,我开始着手开发一款移动应用程序(名为“MotionLab”),该应用程序能够连接 BLE 传感器(例如运动传感器),或利用设备内置的运动传感器(如加速度计)。

然而,在开发过程中,我遇到了一个挑战:解码从订阅了具有特定 UUID 的特征的 BLE 传感器接收的数据,如以下屏幕截图所示。这时,多代理 AI 系统 Magnetic-One 来救我了。

BEL 数据(来自 MotionLab APP 的屏幕截图)

Magnetic-One 的设置环境。模型是“gpt-4o-2024–08–06”。

export CHAT_COMPLETION_PROVIDER='openai'

export OPENAI_API_KEY="your_api_key_here"

然后只需使用 exampe.py 执行即可。这次,我添加了一个保存屏幕截图的功能,让我们可以观察一些幕后过程:

python3 examples/example.py --logs_dir ./my_logs --save_screenshot

这是一个使用过的提示,也尝试过其他一些提示:

As a software developer for a mobile app connected to a BLE motion wearable sensor, 
you can access the BLE sensor, subscribe to a characteristic with 
UUID 0x0000FFE4-0000-1000-8000-00805F9A34FB, and receive a list of 
twenty integer values when the sensor is in motion, 
here is one exmaple [85, 97, 119, 2, 168, 254, 146, 254, 6, 2, 48, 254, 205, 255, 248, 240, 83, 252, 171, 196]. 
These values may represent acceleration (x, y, z) at some points 
by decoding packet header, flag. To understand and interpret these values 
correctly, you need to decode them based on the Bluetooth 5.0 communication 
protocol of the wearable sensor. 
The protocol documentation can be found at https://wit-motion.gitbook.io/witmotion-sdk/ble-5.0-protocol/bluetooth-5.0-communication-protocol . 
Can you assist in decoding these values and translating them into meaningful data for the app?
翻译:作为连接到 BLE 运动可穿戴传感器的移动应用程序的软件开发人员,
你可以访问 BLE 传感器,订阅 UUID 为 0x0000FFE4-0000-1000-8000-00805F9A34FB 的特性,并在传感器运动时接收20 个整数值的列表,
这里有一个示例 [85, 97, 119, 2, 168, 254, 146, 254, 6, 2, 48, 254, 205, 255, 248, 240, 83, 252, 171, 196]。
通过解码数据包头和标志,这些值可能表示某些点的加速度 (x, y, z)。为了正确理解和解释这些值,你需要根据可穿戴传感器的蓝牙 5.0 通信协议对其进行解码。
协议文档可在 https://wit-motion.gitbook.io/witmotion-sdk/ble-5.0-protocol/bluetooth-5.0-communication-protocol 找到。
你能否协助解码这些值并将它们转换为对应用程序有意义的数据?

然后 userProxy 获取用户提示输入:

Orchestrator 获取信息并制定计划:

Orchestrator 做出计划决策:

Orchestrator 处理最终计划:

WebSurfer 代理的任务是访问提供的网站以检索文档信息。它捕获屏幕截图并利用 OCR 方法,利用大型多模态模型来提取必要的详细信息。

Orchestrator 根据响应进行反思,然后决定下一个计划,重点关注是否检索与 BLE 数据相关的特定数据解释部分。

Orchestrator 制定计划,要求 Coder 编写 Python 脚本,根据从网站检索到的 BLE 通信协议解码 BLE 数据。

Coder 编写一个 Python 函数。

然后,我们在此过程中检查 my_logs 中保存的屏幕截图:

Magentic-One 的屏幕截图示例

Magentic-One 旨在通过利用多个 AI 代理来简化复杂任务,每个代理都具有专门的功能。通过为其提供包含 BLE 传感器文档的网站,Magentic-One 自主导航该网站,捕获屏幕截图,并使用 OCR 技术提取蓝牙 5.0 通信协议详细信息。有了这些信息,系统的编码器代理起草了一个 Python 函数,专门用于解码传感器数据,利用我在提示中包含的示例数据。这种体验强调了 AI 技术在现代应用程序开发中的变革性影响,为更具创新性和智能的应用程序铺平了道路。

提示,提示,提示

在我尝试使用各种提示来复制这些任务的过程中,我发现提示和系统消息是影响代理工作流程和最终结果的最关键因素。虽然我没有深入比较不同的大型多模态模型 (LMM),但我的主要重点是优化工作流程和改进提示工程。通过磨练这些方面,我们可以显著提高基于代理的工作流程的效率和有效性。


原文链接:Reading Document and Coding Functions with Multi-Agent AI Systems using Magentic-One

汇智网翻译整理,转载请标明出处

Tags