首页
/ UFO³ 项目目录结构与多智能体 AgentOS 架构全景解析

UFO³ 项目目录结构与多智能体 AgentOS 架构全景解析

2026-09-15 11:46:12作者:廉彬冶Miranda

UFO³ 是当前仓库实现的一套多层智能体操作系统(AgentOS)架构,覆盖从单设备桌面自动化(UFO²)到跨设备 DAG 编排(Galaxy)的完整技术栈。本文以仓库中的《Project Directory Structure》文档为骨架,结合 galaxy/ufo/aip/config/ 等目录的实际源码,逐层剖析每个模块的职责、关键组件与底层实现,帮助读者快速建立对代码库的全局认知,并掌握从"看目录"到"读源码"再到"跑起来"的完整路径。

UFO³ 分层架构示意图

UFO³ 整体架构:Galaxy 编排层、UFO² 桌面智能体、AIP 协议与多应用交互流程

核心概念:UFO³ 的四层技术栈

仓库根目录 README.md 将项目定位为 "Weaving the Digital Agent Galaxy"(编织数字智能体星系)。整个代码库围绕四个核心概念组织:

  • 🌌 Galaxy(星系):基于 DAG(有向无环图)的多设备编排框架,负责把自然语言请求拆解为可在异构设备上分布式执行的确定性任务工作流;
  • 🎯 UFO²(桌面智能体):单设备 Windows 桌面智能体系统,既能独立完成任务,也能注册为 Galaxy 的子智能体参与跨设备协作;
  • 🔌 AIP(Agent Integration Protocol):跨设备通信的智能体集成协议,统一了 Galaxy 与 UFO² / Linux / 移动端智能体之间的消息传递;
  • ⚙️ 模块化配置:位于 config/galaxy/config/ufo/ 的类型安全配置体系,配合自动发现(Auto-Discovery)与环境变量覆盖机制。

根目录结构总览

UFO/
├── galaxy/                 # 多设备编排框架(Galaxy)
├── ufo/                    # 桌面 AgentOS(可充当 Galaxy 子智能体)
├── config/                 # 模块化配置系统
├── aip/                    # 智能体集成协议(AIP)
├── documents/              # MkDocs 文档站点源码
├── vectordb/               # RAG 用向量数据库
├── learner/                # 帮助文档索引工具
├── record_processor/       # 人类演示录制解析器
├── dataflow/               # 数据采集流水线
├── model_worker/           # 自定义 LLM 部署工具
├── logs/                   # 自动生成的执行日志
├── scripts/                # 工具脚本
├── tests/                  # 单元测试与集成测试
└── requirements.txt        # Python 依赖清单

下文将按照"编排框架 → 桌面智能体 → 通信协议 → 配置与支撑模块"的顺序,逐一展开每个目录的内部结构与实现细节。

Galaxy Framework:多设备 DAG 编排框架(galaxy/

Galaxy 是整座"智能体星系"的指挥中枢,其核心能力是将自然语言请求转化为可在异构设备上分布式执行的 DAG 工作流。与之相关的文档入口为 Galaxy OverviewGalaxy 快速开始

目录结构

galaxy/
├── agents/                 # 星座编排智能体(ConstellationAgent)
│   ├── constellation_agent.py    # AI 驱动的 DAG 生成与修改
│   ├── constellation_agent_states.py  # 智能体状态机
│   ├── processors/         # 请求/结果处理
│   └── prompters/          # 提示词构造
├── constellation/          # 核心 DAG 管理系统
│   ├── task_constellation.py    # TaskConstellation - DAG 容器
│   ├── task_star.py        # TaskStar - 任务节点
│   ├── task_star_line.py   # TaskStarLine - 依赖边
│   ├── enums.py            # 组件枚举定义
│   ├── editor/             # 交互式 DAG 编辑(支持 undo/redo)
│   └── orchestrator/       # 事件驱动执行协调
├── session/                # 会话生命周期管理
│   ├── galaxy_session.py   # GalaxySession 实现
│   └── observers/          # 事件驱动观察者
├── client/                 # 设备管理
│   ├── constellation_client.py  # 设备注册接口
│   ├── device_manager.py        # 设备管理协调器
│   ├── config_loader.py         # 配置加载
│   ├── components/         # 设备注册表、连接管理、心跳、消息处理、任务队列
│   └── support/            # 客户端支撑工具
├── core/                   # 基础组件
│   ├── types.py            # 类型系统(协议、数据类、枚举)
│   ├── interfaces.py       # 接口定义
│   ├── di_container.py     # 依赖注入容器
│   └── events.py           # 事件系统
├── visualization/          # 富文本控制台可视化
│   ├── dag_visualizer.py   # DAG 拓扑可视化
│   ├── task_display.py     # 任务状态展示
│   └── constellation_display.py
├── prompts/                # 提示词模板
├── trajectory/             # 执行轨迹解析与报告生成
├── __main__.py             # 入口:python -m galaxy
├── galaxy.py               # Galaxy 主编排器(CLI 入口)
├── galaxy_client.py        # Galaxy 客户端接口
├── README.md / README_ZH.md

说明:目录树中 agents/ 下实际以 constellation_agent.py + constellation_agent_states.py 组织(而非额外的 agent/states/ 子包),visualization/ 内还包含 client_display.pyconstellation_formatter.pychange_detector.py 等模块,读者以实际源码为准。

关键组件

组件 职责 文档
ConstellationAgent AI 智能体,负责生成与修改任务 DAG Galaxy Overview
TaskConstellation 带校验与状态管理的 DAG 容器 星座(Constellation)
TaskOrchestrator 事件驱动的执行协调器 星座编排器
DeviceManager 多设备协调与任务分配 设备管理器
Visualization 富文本 DAG 运行监控 Galaxy Overview

DAG 核心:星座(Constellation)的数据模型

galaxy/constellation/task_star.py 的类定义可以看出,一个"星座"由三类对象构成:

  • TaskStar(任务星):DAG 中的节点。每个任务星携带 task_idnamedescriptiontipstarget_device_iddevice_typeprioritytimeoutretry_counttask_dataexpected_output_typeconfig 等字段,并维护 statusresulterror、执行起止时间等运行时状态。它还提供 execute(device_manager)validate()should_retry()retry() 等执行语义方法,以及 start_execution() / complete_with_success() / complete_with_failure() / cancel() 等生命周期转移方法;
  • TaskStarLine(星线):DAG 中的依赖边。通过 dependency_type(在 enums.py 中定义为 UNCONDITIONALSUCCESS_ONLYCONDITIONAL 等)决定前置任务的输出如何触发后置任务;TaskStarLine 还内置 condition_evaluator 条件求值器与 is_satisfied() 判定逻辑,支持条件依赖与带描述的条件校验,并提供 create_unconditionalcreate_success_onlycreate_conditional 三个工厂方法;
  • TaskConstellation(任务星座):DAG 容器。负责 add_task / add_dependency、环检测(has_cycle / _would_create_cycle)、validate_dag()、拓扑排序(get_topological_order)、关键路径与并行度分析(get_critical_path_length_with_timeget_parallelism_metrics)、get_ready_tasks() 调度查询,以及 to_dict / from_dict / to_json / from_json / to_basemodel / from_basemodel 等序列化接口——这意味着星座可以持久化为 JSON,并通过 Pydantic schema 与配置体系互转。

交互式 DAG 编辑:命令模式 + 撤销重做

galaxy/constellation/editor/ 目录实现了命令模式风格的 DAG 编辑器:

  • command_interface.py 定义 ICommandIUndoableCommand 接口(execute / undo / can_execute / get_cannot_execute_reason / description);
  • commands.py 实现增删改任务、增删改依赖、加载/保存/清空星座等具体命令;
  • command_invoker.pycommand_history.py 维护可撤销/重做的命令历史(默认容量 100 条);
  • command_registry.py 提供按名称注册与按类别查询命令的装饰器注册表;
  • constellation_editor.py 是面向使用者的门面(Facade),提供 undo() / redo() / can_undo() / get_undo_description() 等高层 API,并支持观察者订阅编辑事件。

对应测试可参考 tests/editors/test_constellation_editor.pytests/editors/test_constellation_json.py

事件驱动编排:Orchestrator 与 Manager

galaxy/constellation/orchestrator/orchestrator.py 中的 TaskOrchestrator 负责星座的实际执行:它通过 orchestrate_constellation() 进入执行循环,先校验 DAG 与设备分配,再按 _schedule_ready_tasks 将就绪任务派发给目标设备,通过事件总线(ConstellationEvent)广播状态变化,最后在 _finalize_constellation_execution 汇总执行结果;cancel_execution() 提供中途取消能力。constellation_manager.py 中的 ConstellationManager 则负责星座注册表与设备分配策略——内置 _assign_round_robin(轮询)、_assign_capability_match(按能力匹配)、_assign_load_balance(按负载均衡)三种策略。

设备侧在 galaxy/client/ 中实现:constellation_client.py 提供设备注册接口,device_manager.py 负责多设备协调与任务分配,components/ 子包细分为连接管理(connection_manager.py)、设备注册表(device_registry.py)、心跳管理(heartbeat_manager.py)、消息处理(message_processor.py)与任务队列(task_queue_manager.py),详见 设备管理器文档

会话、可视化与核心基础设施

  • 会话galaxy/session/galaxy_session.py 管理从请求受理到结果返回的完整会话生命周期,observers/ 目录提供 base_observeragent_output_observerconstellation_sync_observerdag_visualization_observerconstellation_visualization_handler 等观察者,实现"会话进展 → 可视化刷新"的实时联动;
  • 可视化galaxy/visualization/ 提供 DAG 拓扑(dag_visualizer.py)与任务状态(task_display.py)的富文本控制台渲染,tests/visualization/ 下的大量测试(如 test_dag_simple.py)可用于验证渲染行为;
  • 核心层galaxy/core/ 提供类型系统(types.py)、接口契约(interfaces.py)、依赖注入容器(di_container.py)与事件系统(events.py),是所有上层模块的公共底座。

UFO² Desktop AgentOS:单设备桌面智能体(ufo/

UFO² 是面向单设备的桌面自动化系统,实现了 HostAgent + AppAgent 两级智能体架构与"GUI 控制 + API 调用"的混合自动化模式。作为独立系统运行时,它执行 Windows 桌面任务;作为 Galaxy 子智能体时,它通过 AIP 协议接收远端指令。相关文档见 UFO² 概述UFO² 快速开始

目录结构

ufo/
├── agents/                 # 两级智能体实现
│   ├── agent/              # 基础智能体类(host_agent.py、app_agent.py、basic.py 等)
│   ├── states/             # 状态机实现(host_agent_state.py、app_agent_state.py 等)
│   ├── processors/         # 处理策略流水线(context/、core/、strategies/、schemas/)
│   ├── memory/             # 智能体记忆与黑板(blackboard.py、memory.py)
│   └── presenters/         # 响应展示逻辑(rich_presenter.py 等)
├── server/                 # 服务端组件(app.py、services/、ws/)
├── client/                 # MCP 客户端与设备管理
│   ├── mcp/                # MCP 服务器管理器(local_servers/、http_servers/)
│   ├── ufo_client.py       # UFO² 客户端实现
│   ├── computer.py         # 计算机/设备抽象
│   └── device_info_provider.py
├── automator/              # GUI 与 API 自动化层
│   ├── ui_control/         # GUI 自动化(inspector、controller 等)
│   ├── puppeteer.py        # 执行编排
│   └── app_apis/           # 应用自动化(excel/、word/、powerpoint/、web/、shell/)
├── prompter/               # 提示词构造引擎
├── prompts/                # 提示词模板(demonstration/、evaluation/、examples/、share/、third_party/)
├── llm/                    # LLM 供应商集成(claude.py、openai.py、gemini.py、qwen.py 等)
├── rag/                    # 检索增强生成(retriever.py、web_search.py)
├── trajectory/             # 任务轨迹解析
├── experience/             # 自经验学习(experience_parser.py、summarizer.py)
├── module/                 # 核心模块(sessions/、dispatcher.py、interactor.py、session_pool.py)
├── config/                 # 旧版配置兼容层
├── logging/                # 日志工具(setup.py)
├── utils/                  # 工具函数(url_security.py 等)
├── tools/                  # CLI 工具(convert_config.py、migrate_config.py、validate_config.py)
├── __main__.py             # 入口:python -m ufo
└── ufo.py                  # UFO² 主编排器

关键组件

组件 职责 文档
HostAgent 桌面级编排智能体,7 状态有限状态机(FSM) HostAgent 概述
AppAgent 应用级执行智能体,6 状态 FSM AppAgent 概述
MCP 系统 可扩展的命令执行框架 MCP 概述
Automator GUI + API 混合自动化,带回退机制 核心特性
RAG 多来源知识检索 知识底座(Knowledge Substrate)

状态机与执行模型

ufo/agents/states/ 下的状态机模块是 UFO² 的执行引擎:host_agent_state.py 定义 HostAgent 的桌面编排状态(对应 7 状态 FSM),app_agent_state.py 定义 AppAgent 的应用执行状态(6 状态 FSM),此外还有 linux_agent_state.pymobile_agent_state.pyoperator_state.py 等变体。automator/ui_control/ 负责桌面 UI 元素的定位与控制,automator/app_apis/ 封装了 Excel、Word、PowerPoint、Web 与 Shell 的自动化能力,与 Hybrid Actions 文档(GUI 失败时回退 API 调用)相互印证。

Agent Integration Protocol:跨设备通信协议(aip/

AIP 是 Galaxy 与运行在不同设备、平台上的智能体之间的标准化消息传递协议。其核心消息流在 aip/messages.py 的模块注释中有明确说明:

Client → Server:ClientMessage(REGISTER、TASK、HEARTBEAT、COMMAND_RESULTS 等) Server → Client:ServerMessage(TASK、COMMAND、TASK_END、HEARTBEAT 等)

aip/
├── messages.py             # 消息类型(Command、Result、Event、Error)
├── protocol/               # 协议定义(base、command、device_info、heartbeat、registration、task_execution)
├── transport/              # 传输层(base、websocket、adapters)
├── endpoints/              # API 端点(base、client_endpoint、server_endpoint、constellation_endpoint)
├── extensions/             # 协议扩展(middleware 中间件)
└── resilience/             # 韧性机制(heartbeat_manager、reconnection、timeout)
  • 消息模型messages.py 基于 Pydantic 定义强类型消息,包括 Rect / ControlInfo / WindowInfo 等 UI 结构、MCPToolInfo 工具信息,以及 ClientType(区分设备智能体与星座客户端)、MessageTypeTaskStatusResult 等核心概念,并提供 validate_registration / validate_task_request / validate_command_results 等消息校验入口;
  • 协议层aip/protocol/):base.pyAIPProtocol 挂接传输层并支持中间件与消息分发(register_handler / dispatch_message);registration.py 处理设备注册与星座注册;task_execution.py 定义任务请求、命令下发、命令结果回传、任务结束等完整任务生命周期;heartbeat.pydevice_info.py 分别维护连接保活与设备信息上报;
  • 传输层aip/transport/):base.py 抽象出 Transport 接口(connect/send/receive/close),websocket.py 提供基于 websockets 与 FastAPI WebSocket 的双向适配(默认 100MB 消息上限、ping 保活),adapters.py 提供 create_adapter() 适配器工厂;
  • 端点层aip/endpoints/):client_endpoint.py 封装设备侧连接(ws_urlmax_retriestimeout),server_endpoint.py 封装服务端 WebSocket 处理(handle_websocket),constellation_endpoint.py 提供星座侧的设备连接、任务下发、设备信息请求、断线重连与任务取消;
  • 韧性层aip/resilience/):heartbeat_manager.pyclient_id 维护心跳循环(默认间隔 30 秒),reconnection.py 实现指数退避重连(默认 max_retries=5initial_backoff=1.0max_backoff=60.0、倍率 2.0),timeout.py 提供 with_timeout 协程超时包装(默认 120 秒)。

AIP 使 Galaxy 能够通过 HTTP/WebSocket 上的标准消息协调运行在不同设备与平台上的 UFO² 智能体。协议细节与消息规范分别见 AIP 概述消息类型

第三方设备智能体:Linux Agent 与 Mobile Agent

除 UFO² 桌面智能体外,仓库还内置两类轻量设备智能体,二者均由 config/ufo/third_party.yaml 中的 THIRD_PARTY_AGENT_CONFIG 配置。

Linux Agent

轻量级 CLI 智能体,面向 Linux 设备:

  • CLI 执行:在 Linux 系统上执行 Shell 命令;
  • Galaxy 集成:注册为 Galaxy 多设备编排中的设备节点;
  • 架构简洁:依赖少、易部署;
  • 跨平台任务:使 Galaxy 工作流支持 Windows + Linux 混编。

配置位置:config/ufo/third_party.yamlTHIRD_PARTY_AGENT_CONFIG.LinuxAgent。相关文档:Linux Agent 概述Linux 快速开始作为 Galaxy 设备

Mobile Agent

面向 Android 设备的自动化智能体,通过 ADB 集成实现:

  • UI 自动化:通过 ADB 完成点击、滑动、文本输入;
  • 视觉上下文:屏幕截图与 UI 层级分析;
  • 应用管理:启动应用、跨应用导航;
  • Galaxy 集成:作为移动设备参与跨平台工作流;
  • 平台支持:Android 真机与模拟器。

配置位置:config/ufo/third_party.yamlTHIRD_PARTY_AGENT_CONFIG.MobileAgent。相关文档:Mobile Agent 概述Mobile 快速开始作为 Galaxy 设备

模块化配置系统(config/

配置系统是 UFO³ 的"中枢神经系统",位于 config/ 目录,核心设计目标是类型安全 + 自动发现 + 向后兼容。加载器的完整实现见 config/config_loader.py,Pydantic 校验 schema 见 config/config_schemas.py

配置目录结构

config/
├── galaxy/                 # Galaxy 配置
│   ├── agent.yaml.template     # ConstellationAgent LLM 设置模板
│   ├── constellation.yaml      # 星座运行时设置(心跳、并发、重连等)
│   └── devices.yaml            # 多设备注册表
├── ufo/                    # UFO² 配置
│   ├── agents.yaml.template    # 智能体 LLM 配置模板
│   ├── system.yaml             # 系统设置
│   ├── rag.yaml                # RAG 设置
│   ├── mcp.yaml                # MCP 服务器配置
│   ├── third_party.yaml        # 第三方智能体配置(LinuxAgent、MobileAgent 等)
│   └── prices.yaml             # API 定价数据
├── config_loader.py        # 自动发现配置加载器
└── config_schemas.py       # Pydantic 校验 schema

仓库当前仅提交 .yaml.template 模板文件,激活配置(agent.yaml / agents.yaml 等)由使用者从模板复制生成,其中包含 API Key,不应提交到版本库

加载机制与优先级链

config/config_loader.py 的模块注释与实现可以梳理出完整的加载语义:

优先级链(高 → 低)

  1. config/{module}/*.yaml —— 新路径(最高优先级);
  2. {module}/config/*.yaml —— 旧版路径回退(ufo/config/ 仍受支持);
  3. 环境变量 —— 覆盖机制(通过 ${VAR} / $VAR 占位符展开)。

关键行为(对应 _load_with_fallback):

  • 新老配置同时存在:新路径优先,老路径补缺,并给出冲突警告;
  • 仅新路径存在:理想情况,直接使用;
  • 仅旧路径存在:加载并输出迁移提示;
  • 两者皆无:抛出 FileNotFoundError,提示期望的路径。

自动发现_discover_yaml_files 会加载目录下所有 *.yaml(排除 *_dev.yaml*_test.yaml*_prod.yaml 环境变体),并按环境(UFO_ENV,默认 production)合并 *_<env>.yaml 覆盖文件;mcp.yamlagent_mcp.yaml 会被自动嵌套到 mcp 键下。

混合访问模型DynamicConfigUFOConfig / GalaxyConfig 提供"属性访问 + 字典访问"双通道:

config = get_ufo_config()
# 现代类型化访问(IDE 自动补全)
max_step = config.system.max_step          # 类型安全
api_model = config.app_agent.api_model
# 动态 YAML 字段(新增键无需改代码)
flag = config.NEW_FEATURE_FLAG
# 旧版字典式访问(仍然可用)
legacy = config["MAX_STEP"]

_apply_legacy_transforms 还负责旧版兼容转换:对 HOST_AGENTAPP_AGENTCONSTELLATION_AGENT 等键根据 API_TYPEaoai / openai)自动构造 API Base URL,并把字符串形式的 CONTROL_BACKEND 规范为列表。

实际配置示例

config/galaxy/constellation.yaml 展示星座运行时参数:

CONSTELLATION_ID: "test_constellation"   # 星座标识
HEARTBEAT_INTERVAL: 30.0                 # 心跳间隔(秒)
RECONNECT_DELAY: 5.0                     # 重连前延迟(秒)
MAX_CONCURRENT_TASKS: 6                  # 星座内最大并发任务数
MAX_STEP: 15                             # 单会话最大步数
DEVICE_INFO: "config/galaxy/devices.yaml" # 设备配置文件路径
LOG_TO_MARKDOWN: true                    # 是否将轨迹日志存为 Markdown

config/galaxy/devices.yaml 定义设备注册表(devices 列表),每条设备包含 device_idserver_url(WebSocket 地址)、oscapabilities(能力标签,用于能力匹配分配)、metadata(OS、性能档位、日志路径、告警模式等自由扩展字段)以及 auto_connectmax_retries

devices:
  - device_id: "linux_agent_1"
    server_url: "ws://localhost:5001/ws"
    os: "linux"
    capabilities:
      - "server"
    metadata:
      os: "linux"
      performance: "medium"
      logs_file_path: "/root/log/log1.txt"
      dev_path: "/root/dev1/"
      warning_log_pattern: "WARN"
      error_log_pattern: "ERROR or FATAL"
    auto_connect: true
    max_retries: 5

配置体系的完整说明见 配置概述智能体配置系统配置RAG 配置第三方智能体配置MCP 配置模型配置

文档站点(documents/

documents/ 是 MkDocs 驱动的官方文档站点源码,mkdocs.yml 定义站点导航:

documents/
├── docs/                   # Markdown 文档源
│   ├── getting_started/    # 安装与快速开始(含迁移指南)
│   ├── galaxy/             # Galaxy 框架文档
│   ├── ufo2/               # UFO² 架构文档
│   ├── linux/              # Linux 智能体文档
│   ├── mobile/             # Mobile 智能体文档
│   ├── mcp/                # MCP 服务器文档
│   ├── aip/                # AIP 协议文档
│   ├── configuration/      # 配置指南
│   ├── infrastructure/     # 核心基础设施(agents、modules)
│   ├── server/             # 服务端架构文档
│   ├── client/             # 客户端组件文档
│   ├── tutorials/          # 分步教程
│   └── about/              # 项目信息(许可证、行为准则等)
├── mkdocs.yml              # MkDocs 配置
└── site/                   # 生成的静态站点

文档分区与主题对应关系如下:

分区 内容
Getting Started 安装、快速开始、UFO² → Galaxy 迁移指南
Galaxy 多设备编排、DAG 工作流、设备管理
UFO² 桌面智能体、自动化特性
Linux Linux 智能体集成、Galaxy 的 CLI 执行器
MCP 服务器文档、自定义服务器开发
AIP 智能体集成协议、消息类型、传输层
Configuration 系统设置、模型配置、部署
Infrastructure 核心组件、智能体设计、服务端-客户端架构
Tutorials 创建智能体、自定义自动化器、高级用法

支撑模块:向量库、学习器与数据流水线

VectorDB(vectordb/

RAG 知识源(帮助文档、执行轨迹、用户演示)的向量数据库存储。接入方式见 RAG 配置

Learner(learner/

帮助文档索引工具,将文档写入向量库供 RAG 检索,与 知识底座(Knowledge Substrate) 功能联动。入口为 learner/main.py

Record Processor(record_processor/

解析 Windows 步骤录制器(Step Recorder)产生的操作演示,供"从用户操作中学习"使用。核心实现见 record_processor/record_processor.py,示例数据在 record_processor/example/sample_record.zip

Dataflow(dataflow/

面向大规模动作模型(LAM)训练的数据采集流水线,包含实例化(instantiation)与执行(execution)两阶段工作流。详见 Dataflow 文档

Model Worker(model_worker/

本地模型部署工具,用于运行自定义 LLM。支持的供应商见 模型配置

Logs(logs/

按任务与时间戳组织的自动生成执行日志,包含截图、UI 树与智能体动作记录。

选型指南:Galaxy vs UFO² vs Linux Agent vs Mobile Agent

维度 Galaxy UFO² Linux Agent Mobile Agent
范围 多设备编排 单设备 Windows 自动化 单设备 Linux CLI 单设备 Android 自动化
用例 跨平台工作流、分布式任务 桌面自动化、Office 任务 服务器管理、CLI 操作 移动应用测试、UI 自动化
架构 DAG 任务工作流 两级状态机 简单 CLI 执行器 基于 ADB 的 UI 自动化
平台 编排器(平台无关) Windows Linux Android
复杂度 复杂多步工作流 简单到中等任务 简单命令执行 UI 交互与应用控制
最佳场景 跨设备协作 Windows 桌面任务 Linux 服务器运维 移动应用自动化
集成方式 编排所有智能体 可作 Galaxy 设备 可作 Galaxy 设备 可作 Galaxy 设备

选择建议

  • 选 Galaxy:任务跨多设备/多平台,或存在复杂依赖的工作流;
  • 独立使用 UFO²:单设备 Windows 自动化、快速原型验证;
  • 选 Linux Agent:Galaxy 工作流中需要 Linux 服务器/CLI 操作;
  • 选 Mobile Agent:Android 设备自动化、移动应用测试、UI 交互;
  • 最佳实践:由 Galaxy 统一编排 UFO²(Windows)+ Linux Agent(Linux)+ Mobile Agent(Android),实现覆盖三端的一体化跨平台任务。

快速启动

Galaxy 多设备编排

# 交互模式
python -m galaxy --interactive

# 单次请求
python -m galaxy --request "Your cross-device task"

galaxy/main.pygalaxy/galaxy.pyparse_args 可以看到更丰富的 CLI 选项:支持位置参数直接传入请求(python -m galaxy "Create a data analysis pipeline")、--demo 演示模式、--session-name--output-dir--log-level DEBUG--max-rounds 20--mock 等。完整流程见 Galaxy 快速开始

UFO² 桌面自动化

# 交互模式(-t 指定任务名)
python -m ufo --task <task_name>

# 指定自定义配置目录
python -m ufo --task <task_name> --config_path config/ufo/

ufo/main.py 还支持 -m/--modenormal / follower / batch_normal / operator)、-p/--plan(follower 与 batch_normal 模式的计划文件路径)、-r/--request(直接传入请求描述)与 --log-level 参数。详见 UFO² 快速开始

架构原则

UFO³ 遵循 SOLID 原则与主流软件工程模式,这些原则在代码结构中有清晰的落点:

  • 单一职责(Single Responsibility):每个包职责聚焦,如 aip/transport/ 只管传输、aip/protocol/ 只管协议语义;
  • 开闭原则(Open/Closed):通过 galaxy/core/interfaces.py 接口与 aip/extensions/middleware.py 中间件扩展能力,无需修改既有实现;
  • 接口隔离(Interface Segregation):为不同能力定义聚焦接口,如 aip/protocol/base.pyMessageHandler 与传输层 Transport 抽象;
  • 依赖倒置(Dependency Inversion)galaxy/core/di_container.py 提供依赖注入容器,orchestrator.py 通过注入 ConstellationDeviceManager 解耦设备访问;
  • 事件驱动(Event-Driven)galaxy/core/events.py + session/observers/ 观察者模式支撑实时监控,星座执行状态通过 ConstellationEvent 广播;
  • 状态机(State Machines)ufo/agents/states/galaxy/agents/constellation_agent_states.py 用明确定义的状态与转移约束智能体行为;
  • 命令模式(Command Pattern)galaxy/constellation/editor/ICommand / IUndoableCommand 封装 DAG 编辑操作,天然支持撤销/重做与操作审计。

关键文档索引

下一步建议:先通过 Galaxy 快速开始 体验多设备编排,或通过 UFO² 快速开始 体验单设备自动化;遇到常见问题时查阅 FAQ;需要将 UFO² 升级为 Galaxy 设备时,参考 迁移指南

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
34
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.21 K
2.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
952
1.87 K
docsdocs
暂无描述
Markdown
906
5.84 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
537
614
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
864
1.36 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
4.29 K
1.04 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.4 K
1.48 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
550
402
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.19 K
348