暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

自动化新时代:OWL、CRAB 与 MCP 如何打通“最后一公里”

541


自动化智能体(Autonomous Agents)领域正迎来一场复兴。这些被设计用于推理、使用工具并完成复杂任务的 AI 系统正在快速取得实质性进展。从前沿的研究框架到支持智能体管理高度复杂工作流程的平台,这些系统已经不再是空有潜力的演示,它们正开始重新定义我们对数字劳动与自动化的认知。


促成这一进步的关键推动力之一是由 Anthropic 提出的 Model Context Protocol(MCP)。MCP 是一种连接 AI 助手与实际数据系统(包括内容存储库、商业工具、开发环境等)的新标准。它已迅速获得生态系统内的广泛支持,尤其是在 Cursor 和 Windsurf 的集成中。OpenAI 最近也在其 Agent SDK 中宣布支持 MCP,这标志着该生态系统的重要一步。我们也已将其集成进 CAMEL 框架,积极拥抱 MCP 生态。


尽管已有这些进展,当前的智能体仍面临一个根本性的限制:它们在长期决策和适应方面依然薄弱。它们可以很好地执行明确任务,但在面对需要学习、调整计划或应对变化的多步骤目标时却常常失败。现有智能体更多是“执行者”,而非能通过经验真正进化的系统。


这种缺陷根源于语言模型训练数据的静态性。语言模型从静态文本中学习,而非交互中学习。若要实现真正的自主性,智能体必须能在环境中运行并不断进化——无论是数字空间还是物理空间——它们需要在其中感知、行动、并从经验中学习。唯有通过这种反馈回路,智能体才能通过尝试与错误逐步改进。

为了解决智能体自动化的“最后一公里”问题,我们推出了 OWL 和 CRAB 两个项目,以及与 MCP 的集成,它们专为交互式环境设计。


// OWL:优化型任务学习系统(Optimized Workforce Learning)

OWL(Optimized Workforce Learning)是我们基于 CAMEL-AI 框架开发的全新项目,面向现实世界的任务自动化。OWL 在任务自动化方面已显示出良好前景,在 GAIA 基准测试中获得了 58.18 的平均得分,在开源提交中排名第一。


OWL 的工作方式

OWL 是一个多智能体系统,可通过浏览器、终端、代码执行、函数调用以及 MCP 工具完成数字任务自动化。该项目已集成了:

  • 浏览器自动化:使用 Playwright 框架,支持滚动、点击、输入处理、下载、导航等复杂交互。

  • 在线搜索能力:支持多个搜索引擎(包括 Google、DuckDuckGo、百度、Bocha、维基百科),实现实时信息获取与知识积累。

  • 代码执行:具备编写并执行 Python 代码的能力,可为复杂问题提供编程解决方案。

  • 文档解析:可从 Word、Excel、PDF、PowerPoint 等多种格式中提取内容,并转化为文本或 Markdown。

  • 多模态处理:通过专用工具包处理来自互联网或本地的视频、图像、音频数据(ImageAnalysisToolkit、VideoAnalysisToolkit、AudioAnalysisToolkit)。

  • 工具包整合:支持丰富的内置工具,包括 ArxivToolkit、GitHubToolkit、GoogleMapsToolkit 以及 CAMEL 框架构建的其他专用工具。


OWL 的核心功能建立在 CAMEL AI 框架的 RolePlaying 模块之上。该模块通过预定义提示词为不同智能体创建独特的初始设定。OWL 主要依赖两个智能体:

  • UserAgent:负责分解任务并生成指令

  • AssistantAgent:利用预设工具或工具智能体执行指令


该架构使 OWL 能够通过动态智能体交互处理复杂的工作流程,在多个领域展现出出色的任务自动化能力。

此外,OWL 采用多智能体系统与上下文隔离机制来处理长时任务。各子智能体根据任务类别(例如 WebAgent)维护独立的上下文窗口,从而保证任务执行的连续性与准确性。


OWL 与 MCP 的集成

MCP 已迅速成为大语言模型领域的“USB 接口”,在解决 AI 信息孤岛问题方面表现出强大能力,其生态正日益壮大。OWL 已支持 MCP 协议,可调用生态内 MCP 服务器,实现更标准化、高效的工具调用。


实现步骤如下:

  1. 搭建 MCP 服务器

    #Install MCP Playwright Server
    npm install -g @executeautomation/playwright-mcp-server
    npx playwright install-d
    2. 配置 MCP 服务器创建名为 mcp_servers_config.json
     的配置文件,结构如下:
      {
        "mcpServers": {
          "playwright": {
            "command""npx",
            "args": ["-y""@executeautomation/playwright-mcp-server"]
          }
        }
      }


      3. 在 OWL 中实现

        import asyncio
        import sys


        from camel.models import ModelFactory
        from camel.toolkits import MCPToolkit
        from camel.types import ModelPlatformType, ModelType
        from camel.societies import RolePlaying
        from camel.logger import set_log_level


        from owl.utils.enhanced_role_playing import arun_society


        set_log_level(level="DEBUG")


        async def main():
            mcp_toolkit = MCPToolkit(config_path="mcp_servers_config.json")
            try:
                await mcp_toolkit.connect()
                task = sys.argv[1if len(sys.argv) > 1 else (
                    "Using a web browser, search Google Scholar for Andrew Ng's academic profile. Create a comprehensive report that includes: (1) his main research directions in AI and machine learning, (2) at least five of his most influential published papers with citation counts, (3) his affiliated institutions throughout his career, and (4) a summary of his impact on the field."
                )
                model = ModelFactory.create(
                    model_platform=ModelPlatformType.OPENAI,
                    model_type=ModelType.GPT_4O,
                )
                society = RolePlaying(
                    task_prompt=task,
                    user_role_name="user",
                    user_agent_kwargs={"model": model},
                    assistant_role_name="assistant",
                    assistant_agent_kwargs={
                        "model": model,
                        "tools": mcp_toolkit.get_tools(),
                    },
                )
                answer, chat_history, token_count = await arun_society(society)
                print(f"\033[94mAnswer: {answer}\033[0m")
            
            finally:
                try:
                    await mcp_toolkit.disconnect()
                except Exception:
                    print("Disconnect failed")


        if __name__ == "__main__":
            asyncio.run(main())


        示例用例

        任务:“使用网络浏览器在 Google Scholar 上搜索 Andrew Ng 的学术资料,并撰写一份综合报告,包括:(1) 他在 AI 与机器学习方面的主要研究方向,(2) 至少五篇最有影响力的论文及引用次数,(3) 其职业生涯中的所属机构,(4) 他对该领域的总体影响。”

        通过 OWL + MCP,系统可以:

        • 使用自治智能体分解任务并分别处理各部分

        • 利用 Playwright MCP 服务器自动导航学术网站并提取论文信息

        • 通过 OWL 的角色扮演机制协调完成整项任务



        // CRAB:跨环境智能体基准(Cross-environment Agent Benchmark)

        CRAB,全称为 Cross-environment Agent Benchmark,是首个支持跨设备任务执行的智能体框架。该项目旨在建立一个基准体系,使智能体能够在多个环境之间完成任务。例如,在 CRAB 框架中,一个智能体可以在智能手机上读取一条信息,然后根据内容在 PC 上执行相关操作。


        什么是 CRAB 中的“环境”?

        在 CRAB 框架中,“环境”是一个关键术语。在上述例子中,环境包括一台 Ubuntu PC 和一部 Android 智能手机。实际上,环境可以是任何设备、应用程序,甚至是更复杂的多设备系统——只要它有明确的动作空间(action space)和观察空间(observation space),就可被视作一个“环境”。


        为什么跨环境能力至关重要

        跨环境能力是我们框架中的一个核心设计理念,它使得智能体能够同时与多个设备或应用交互。这包括跨环境协调、信息传递与共享。就像人类在处理复杂任务时,会在多个环境中自如切换(每个环境拥有不同的操作逻辑和反馈方式),我们认为具备这种能力的智能体才更具实际价值。

        然而,与多数现有智能体基准只局限在单一设备或应用内不同,CRAB 推出了首个跨环境智能体评估标准 —— CRAB Benchmark v0,涵盖超过 20 个应用中的 120 项任务,运行于 Ubuntu 桌面与 Android 智能手机上。我们相信,拓展智能体所处的环境范围,是构建更强大、更实用智能体的关键一步。


        跨环境能力还带来巨大现实应用潜力。例如,CRAB 可用于 物联网(IoT)场景——你可以想象一个智能体助手统一控制所有设备。在网络或云计算行业,管理大量异构设备本就是日常挑战,而我们的跨环境范式为这些领域带来了一个极具前景的新方向。


        CRAB 的未来发展路线图

        我们正在持续优化 CRAB,并计划在下一个版本中实现以下几项重要升级:

        • 易用性:简化配置流程,提高代码可读性,引入 MCP(Model Connector Protocol)以实现与任何模型/框架的无缝集成。

        • 可扩展性:采用模块化设计,便于新增环境或虚拟设备实现。我们还将引入插件系统,支持现有模块的便捷定制。

        • 稳定性:目前的虚拟机实现依赖 QEMU/KVM 和 Google Android Emulator,存在不稳定且过度依赖 Linux 的问题。我们计划改用更稳定、便捷的替代方案,如 Docker。

        • 自动化:减少实验中所需的人工操作量。

        我们还将向官方 GitHub 仓库集成更多组件,包括:

        • 流行基准任务:如 OSWorld、WebArena 等

        • 新增环境支持:Windows、macOS、iOS、网页浏览器、特定应用程序、OpenAI Gymnasium 等

        • 视觉提示工具:OmniParser、Ferret-UI、Grounding DINO 等

        • 高级 GUI 模型:UI-TARS、OpenAI Operator、Claude Computer Using等

        • 多智能体系统支持:基于 CAMEL、OWL 框架和 MCP protocols


        // OWL + CRAB:一个统一的智能体操作系统

        将 OWL 与 CRAB 结合,构建起了一个强大生态系统,用于开发、测试和扩展智能体系统。OWL 能在特定环境中使用其高级推理能力与工具包,执行复杂多步骤任务;而 CRAB 则负责提供并管理这些多样、互联的环境(如 PC、智能手机、特定应用等),让智能体可以跨系统无缝协作。

        互补能力

        OWL 与 CRAB 在以下几个维度上形成了良好的互补关系:

        • 开发与评估:OWL 提供多智能体系统开发能力,而 CRAB 提供标准化性能评估方法。

        • 任务自动化与环境适配:OWL 擅长处理复杂任务自动化,而 CRAB 确保这些能力在不同环境中稳定运行。

        • 工具集成与基准规范化:OWL 提供广泛工具支持,CRAB 则建立起统一的评估标准。


        // 数据生成的未来潜力

        这两个项目的结合还开启了 高质量训练数据生成 的大门。一旦环境搭建完毕,我们就可以用它们来:

        • 生成多样任务场景:跨环境创建各种任务情境

        • 记录智能体交互过程:包括成功与失败的策略与行为

        • 提炼改进指标:分析交互数据,识别成功策略与行为模式,为智能体改进提供量化依据

        • 训练新模型:基于合成数据与成功特征使用 RLHF、定向微调、监督学习等方式训练更强大的模型


        这种数据生成能力可以形成一个良性循环,通过反复实验与优化,不断提升智能体的实际表现。


        OWL Github:https://github.com/camel-ai/owl

        CRAB Github:https://github.com/camel-ai/crab


        我们也诚挚邀请开发者的贡献,共同完善和扩展这两个项目。可扫码进群共同交流 OWL和CRAB哦!




        在 CAMEL,我们相信环境(environment)是提升领域推理能力的关键机制所以除了OWL和CRAB项目,我们还有其他与环境相关的项目,比如说OASIS、OWL、CRAB。对共建环境(Environments for agents)感兴趣的朋友也可以扫描下方二维码进群交流!



        我们接下来还有2天对Scaling Environments for Agents的项目发布,欢迎关注CAMEL AI的发布网页获取最新信息:

        https://www.camel-ai.org/launchweek-environments


        往期内容推荐:
        双周报

        揭秘OWL背后的工具支持:CAMEL工具包

        双周报

        CAMEL-AI Blog|探索多智能体的无限可能:OWL如何驱动任务自动化?

        双周报

        CAMEL-AI Blog|OWL调用MCP Toolkit实践

        双周报

        CAMEL-AI社区解答关于Multi-Agent系统的18个关键问题

        双周报

        OWL用例挑战赛:释放Agent潜能,共创AI协作新未来







        CAMEL微信群




        加入CAMEL微信群,请添加CAMEL官方微信号CamelAIOrg,会有工作人员通过您的好友申请并邀请您加入我们的微信群~



        Join CAMEL Community


        www.camel-ai.org


        https://github.com/camel-ai/camel


        https://discord.camel-ai.org



        文章转载自Se7en的架构笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论