mobile-use智能体系统详解:Orchestrator、Planner、Cortex等核心组件工作原理

【免费下载链接】mobile-use AI agents can now use real Android and iOS apps, just like a human. 【免费下载链接】mobile-use 项目地址: https://gitcode.com/gh_mirrors/mobil/mobile-use

mobile-use是一款革命性的AI智能体系统,它能让AI智能体像人类一样操作真实的Android和iOS应用程序。本文将深入解析该系统的核心组件——Orchestrator、Planner和Cortex的工作原理,帮助你全面了解这个强大工具的内部机制。

mobile-use系统概览

核心组件概览:智能体系统的"大脑中枢"

mobile-use系统采用模块化设计,其中Orchestrator、Planner和Cortex构成了智能体的核心决策系统。这三个组件协同工作,使AI能够理解任务目标、规划执行步骤并实时调整策略,从而高效完成复杂的移动应用操作任务。

性能优势:超越行业标准的智能体系统

mobile-use智能体系统在任务完成率方面表现卓越。根据最新的基准测试数据,minitap(mobile-use的核心技术)的任务完成率达到74%,远超行业内其他解决方案,如JT-GUI Agent-v2(67%)、droidrun(63%)等。这一领先优势主要归功于其精心设计的核心组件架构。

mobile-use性能对比

Planner组件:智能体的"战略规划师"

Planner组件是mobile-use系统的"战略规划师",负责将用户的初始目标分解为一系列可执行的子任务。它位于minitap/mobile_use/agents/planner/planner.py,是智能体系统的第一个关键环节。

核心功能:从目标到行动计划

Planner的主要工作是接收用户的初始目标,然后生成详细的子目标计划。它会考虑当前设备状态、可用工具以及应用程序的特性,将复杂的任务分解为一系列简单、可执行的步骤。例如,当用户要求"在LinkedIn上加入AI Mindshare群组"时,Planner会将其分解为"打开LinkedIn应用"、"搜索AI Mindshare群组"、"发送加入请求"等子目标。

实现机制:基于LLM的智能规划

Planner使用大语言模型(LLM)来生成和优化子目标计划。它通过get_llm函数获取配置的语言模型,并使用with_structured_output方法确保输出符合PlannerOutput格式。这种结构化输出包含一系列子目标,每个子目标都有描述和状态信息。

llm = get_llm(ctx=self.ctx, name="planner").with_structured_output(PlannerOutput)
response: PlannerOutput = await with_fallback(
    main_call=lambda: invoke_llm_with_timeout_message(llm.ainvoke(messages)),
    fallback_call=lambda: invoke_llm_with_timeout_message(llm_fallback.ainvoke(messages)),
)

动态调整:应对变化的智能策略

Planner不仅能生成初始计划,还能根据执行过程中的反馈进行动态调整。当某个子目标失败或环境发生变化时,Planner会重新评估情况并生成新的计划。这种灵活性使得mobile-use智能体能够应对复杂多变的移动应用环境。

Orchestrator组件:智能体的"指挥中心"

Orchestrator组件是mobile-use系统的"指挥中心",负责协调和管理整个任务执行过程。它位于minitap/mobile_use/agents/orchestrator/orchestrator.py,是连接规划与执行的关键环节。

核心功能:子目标的调度与监控

Orchestrator的主要职责是管理子目标的执行顺序和状态。它会跟踪每个子目标的完成情况,并根据需要启动新的子目标或重新规划失败的子目标。例如,在LinkedIn任务中,Orchestrator会先确保"打开LinkedIn应用"子目标完成,然后才启动"搜索AI Mindshare群组"子目标。

实现机制:状态管理与决策逻辑

Orchestrator通过维护和更新状态信息来实现其功能。它使用state.subgoal_plan来跟踪所有子目标的状态,并通过一系列工具函数(如start_next_subgoalcomplete_subgoals_by_ids等)来更新这些状态。

if no_subgoal_started or not current_subgoal:
    state.subgoal_plan = start_next_subgoal(state.subgoal_plan)
    new_subgoal = get_current_subgoal(state.subgoal_plan)
    thoughts = [f"Starting the first subgoal: {new_subgoal}" if no_subgoal_started else f"Starting the next subgoal: {new_subgoal}"]
    return await _get_state_update(ctx=self.ctx, state=state, thoughts=thoughts, update_plan=True)

智能决策:何时继续、何时重新规划

Orchestrator的关键能力在于判断何时继续执行当前计划,何时需要重新规划。它通过分析子目标的完成情况和执行反馈,决定是否继续执行下一个子目标,或者是否需要通知Planner重新生成计划。

if response.needs_replaning:
    thoughts = [response.reason]
    state.subgoal_plan = fail_current_subgoal(state.subgoal_plan)
    thoughts.append("==== END OF PLAN, REPLANNING ====")
    return await _get_state_update(ctx=self.ctx, state=state, thoughts=thoughts, update_plan=True)

Cortex组件:智能体的"执行大脑"

Cortex组件是mobile-use系统的"执行大脑",负责将子目标转化为具体的设备操作。它位于minitap/mobile_use/agents/cortex/cortex.py,是连接高层决策与底层执行的关键环节。

核心功能:从子目标到具体操作

Cortex的主要工作是接收当前子目标,分析设备状态和UI信息,然后生成具体的操作指令。这些指令可以是点击、滑动、输入文本等移动设备操作。例如,当子目标是"搜索AI Mindshare群组"时,Cortex会生成"点击搜索框"、"输入'AI Mindshare'"、"点击搜索按钮"等具体操作。

实现机制:融合多源信息的智能决策

Cortex整合了多种信息源来做出决策,包括设备状态、UI层次结构、屏幕截图等。它使用这些信息来理解当前应用状态,并决定下一步行动。

if state.latest_screenshot:
    controller = create_device_controller(self.ctx)
    compressed_image_base64 = controller.get_compressed_b64_screenshot(state.latest_screenshot)
    messages.append(get_screenshot_message_for_llm(compressed_image_base64))

工具调用:与移动设备的桥梁

Cortex通过调用工具函数来执行具体的设备操作。它使用EXECUTOR_WRAPPERS_TOOLS中定义的工具,这些工具封装了与移动设备交互的底层细节。

executor_wrappers = list(EXECUTOR_WRAPPERS_TOOLS)
if self.ctx.video_recording_enabled:
    executor_wrappers.extend(VIDEO_RECORDING_WRAPPERS)

组件协作:智能体系统的工作流程

Orchestrator、Planner和Cortex三个组件并非独立工作,而是形成一个紧密协作的闭环系统。它们通过状态信息的传递和更新,共同完成从目标到执行的整个过程。

典型工作流程

  1. 初始规划:Planner接收用户目标,生成初始子目标计划。
  2. 任务调度:Orchestrator从计划中选择第一个子目标,将其交给Cortex执行。
  3. 具体执行:Cortex分析当前设备状态,生成并执行具体操作。
  4. 状态更新:Cortex将执行结果反馈给Orchestrator,更新子目标状态。
  5. 计划调整:Orchestrator根据子目标状态,决定继续执行下一个子目标或要求Planner重新规划。
  6. 任务完成:当所有子目标完成,Orchestrator通知系统任务成功完成。

mobile-use工作流程演示

实时协作示例

以"在LinkedIn上加入AI Mindshare群组"任务为例,三个组件的协作过程如下:

  1. Planner:将目标分解为["打开LinkedIn应用", "搜索AI Mindshare群组", "发送加入请求"]。
  2. Orchestrator:首先启动"打开LinkedIn应用"子目标。
  3. Cortex:分析当前屏幕,生成"点击LinkedIn图标"的操作指令。
  4. Orchestrator:收到"打开LinkedIn应用"完成的反馈,启动下一个子目标"搜索AI Mindshare群组"。
  5. Cortex:分析LinkedIn界面,生成"点击搜索框"、"输入'AI Mindshare'"、"点击搜索"的操作序列。
  6. Orchestrator:收到"搜索AI Mindshare群组"完成的反馈,启动最后一个子目标"发送加入请求"。
  7. Cortex:分析搜索结果,生成"点击AI Mindshare群组"、"点击加入按钮"的操作序列。
  8. Orchestrator:收到所有子目标完成的反馈,通知系统任务成功完成。

结语:重新定义移动应用交互方式

mobile-use智能体系统通过Orchestrator、Planner和Cortex的协同工作,实现了AI智能体对移动应用的类人操作。这种创新的架构不仅提高了任务完成率,还大大扩展了AI在移动环境中的应用可能性。

无论是自动化测试、智能助手还是无障碍访问,mobile-use都展现出巨大的潜力。随着技术的不断发展,我们有理由相信,mobile-use将在未来重新定义人与移动设备的交互方式。

如果你对mobile-use系统感兴趣,可以通过以下命令获取源代码:

git clone https://gitcode.com/gh_mirrors/mobil/mobile-use

探索更多可能性,体验AI智能体操作移动应用的强大能力!

【免费下载链接】mobile-use AI agents can now use real Android and iOS apps, just like a human. 【免费下载链接】mobile-use 项目地址: https://gitcode.com/gh_mirrors/mobil/mobile-use

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐