UFO³ 项目目录结构与多智能体 AgentOS 架构全景解析
UFO³ 是当前仓库实现的一套多层智能体操作系统(AgentOS)架构,覆盖从单设备桌面自动化(UFO²)到跨设备 DAG 编排(Galaxy)的完整技术栈。本文以仓库中的《Project Directory Structure》文档为骨架,结合 galaxy/、ufo/、aip/、config/ 等目录的实际源码,逐层剖析每个模块的职责、关键组件与底层实现,帮助读者快速建立对代码库的全局认知,并掌握从"看目录"到"读源码"再到"跑起来"的完整路径。
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 Overview 与 Galaxy 快速开始。
目录结构
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.py、constellation_formatter.py、change_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_id、name、description、tips、target_device_id、device_type、priority、timeout、retry_count、task_data、expected_output_type、config等字段,并维护status、result、error、执行起止时间等运行时状态。它还提供execute(device_manager)、validate()、should_retry()、retry()等执行语义方法,以及start_execution()/complete_with_success()/complete_with_failure()/cancel()等生命周期转移方法;TaskStarLine(星线):DAG 中的依赖边。通过dependency_type(在 enums.py 中定义为UNCONDITIONAL、SUCCESS_ONLY、CONDITIONAL等)决定前置任务的输出如何触发后置任务;TaskStarLine还内置condition_evaluator条件求值器与is_satisfied()判定逻辑,支持条件依赖与带描述的条件校验,并提供create_unconditional、create_success_only、create_conditional三个工厂方法;TaskConstellation(任务星座):DAG 容器。负责add_task/add_dependency、环检测(has_cycle/_would_create_cycle)、validate_dag()、拓扑排序(get_topological_order)、关键路径与并行度分析(get_critical_path_length_with_time、get_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定义ICommand与IUndoableCommand接口(execute/undo/can_execute/get_cannot_execute_reason/description);commands.py实现增删改任务、增删改依赖、加载/保存/清空星座等具体命令;command_invoker.py与command_history.py维护可撤销/重做的命令历史(默认容量 100 条);command_registry.py提供按名称注册与按类别查询命令的装饰器注册表;constellation_editor.py是面向使用者的门面(Facade),提供undo()/redo()/can_undo()/get_undo_description()等高层 API,并支持观察者订阅编辑事件。
对应测试可参考 tests/editors/test_constellation_editor.py 与 tests/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_observer、agent_output_observer、constellation_sync_observer、dag_visualization_observer、constellation_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.py、mobile_agent_state.py、operator_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(区分设备智能体与星座客户端)、MessageType、TaskStatus、Result等核心概念,并提供validate_registration/validate_task_request/validate_command_results等消息校验入口; - 协议层(
aip/protocol/):base.py的AIPProtocol挂接传输层并支持中间件与消息分发(register_handler/dispatch_message);registration.py处理设备注册与星座注册;task_execution.py定义任务请求、命令下发、命令结果回传、任务结束等完整任务生命周期;heartbeat.py与device_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_url、max_retries、timeout),server_endpoint.py封装服务端 WebSocket 处理(handle_websocket),constellation_endpoint.py提供星座侧的设备连接、任务下发、设备信息请求、断线重连与任务取消; - 韧性层(
aip/resilience/):heartbeat_manager.py按client_id维护心跳循环(默认间隔 30 秒),reconnection.py实现指数退避重连(默认max_retries=5、initial_backoff=1.0、max_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.yaml → THIRD_PARTY_AGENT_CONFIG.LinuxAgent。相关文档:Linux Agent 概述、Linux 快速开始、作为 Galaxy 设备。
Mobile Agent
面向 Android 设备的自动化智能体,通过 ADB 集成实现:
- UI 自动化:通过 ADB 完成点击、滑动、文本输入;
- 视觉上下文:屏幕截图与 UI 层级分析;
- 应用管理:启动应用、跨应用导航;
- Galaxy 集成:作为移动设备参与跨平台工作流;
- 平台支持:Android 真机与模拟器。
配置位置:config/ufo/third_party.yaml → THIRD_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 的模块注释与实现可以梳理出完整的加载语义:
优先级链(高 → 低):
config/{module}/*.yaml—— 新路径(最高优先级);{module}/config/*.yaml—— 旧版路径回退(ufo/config/仍受支持);- 环境变量 —— 覆盖机制(通过
${VAR}/$VAR占位符展开)。
关键行为(对应 _load_with_fallback):
- 新老配置同时存在:新路径优先,老路径补缺,并给出冲突警告;
- 仅新路径存在:理想情况,直接使用;
- 仅旧路径存在:加载并输出迁移提示;
- 两者皆无:抛出
FileNotFoundError,提示期望的路径。
自动发现:_discover_yaml_files 会加载目录下所有 *.yaml(排除 *_dev.yaml、*_test.yaml、*_prod.yaml 环境变体),并按环境(UFO_ENV,默认 production)合并 *_<env>.yaml 覆盖文件;mcp.yaml 与 agent_mcp.yaml 会被自动嵌套到 mcp 键下。
混合访问模型:DynamicConfig 与 UFOConfig / 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_AGENT、APP_AGENT、CONSTELLATION_AGENT 等键根据 API_TYPE(aoai / 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_id、server_url(WebSocket 地址)、os、capabilities(能力标签,用于能力匹配分配)、metadata(OS、性能档位、日志路径、告警模式等自由扩展字段)以及 auto_connect、max_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.py 与 galaxy/galaxy.py 的 parse_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/--mode(normal / 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.py的MessageHandler与传输层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² 快速开始、Linux 快速开始、Mobile 快速开始、UFO² → Galaxy 迁移指南
- Galaxy:Galaxy 概述、ConstellationAgent、星座编排器、任务星座、设备管理器
- UFO²:UFO² 概述、HostAgent、AppAgent、核心特性、作为 Galaxy 设备
- MCP:MCP 概述、本地服务器、创建 MCP 服务器
- AIP:AIP 概述、消息类型、传输层
- 配置:配置概述、智能体配置、系统配置、模型配置、MCP 配置
下一步建议:先通过 Galaxy 快速开始 体验多设备编排,或通过 UFO² 快速开始 体验单设备自动化;遇到常见问题时查阅 FAQ;需要将 UFO² 升级为 Galaxy 设备时,参考 迁移指南。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust4.26 K641- DDeepSeek-V4.1-FlashDeepSeek-V4.1-Flash 是一个多模态混合专家(MoE)模型,拥有 5520 亿骨干参数,并支持最多一百万 token 的上下文长度。该模型原生支持图像和文本输入,并以自回归方式生成文本Python860
SlideSCIPPT插件,支持素材库、AI助手、一键添加图片标题,复制粘贴位置、一键图片对齐、一键插入Markdown(加粗、超链接等行内样式、代码块、LaTeX等块级样式)、便捷导出图片!C#601
Agent-Reach给你的 AI Agent 一键装上互联网能力。13 个平台(网页/GitHub/YouTube/小红书/B站/Twitter/Reddit 等)多后端路由,当下最稳的接入方式替你选好、装好、体检好。GitHub 主仓库同步镜像。Python1284
new-apiAI模型聚合管理中转分发系统,一个应用管理您的所有AI模型,支持将多种大模型转为统一格式调用,支持OpenAI、Claude、Gemini等格式,可供个人或者企业内部管理与分发渠道使用。🍥 A Unified AI Model Management & Distribution System. Aggregate all your LLMs into one app and access them via an OpenAI-compatible API, with native support for Claude (Messages) and Gemini formats.Go23245
JeecgBoot🔥企业级低代码平台集成了AI应用平台,帮助企业快速实现低代码开发和构建AI应用!前后端分离架构 SpringBoot,SpringCloud、Mybatis,Ant Design4、 Vue3.0、TS+vite!强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领AI低代码开发模式: AI生成->OnlineCoding-> 代码生成-> 手工MERGE,显著的提高效率,又不失灵活~Java37451
