UFO² 还是 UFO³ Galaxy?基于 UFO 仓库的多设备 Agent 编排技术选型实战指南
2026/9/16 8:27:32 网站建设 项目流程

UFO² 还是 UFO³ Galaxy?基于 UFO 仓库的多设备 Agent 编排技术选型实战指南

【免费下载链接】UFOUFO³: Weaving the Digital Agent Galaxy项目地址: https://gitcode.com/GitHub_Trending/uf/UFO

本文是一份面向 UFO(UFO³: Weaving the Digital Agent Galaxy)开源仓库的技术选型指南,核心解决一个问题:你的自动化任务应该使用单设备桌面 Agent 框架 UFO²,还是使用面向多设备 DAG 编排的 UFO³ Galaxy?读完本文,你将掌握完整的决策树、对比矩阵、8 类典型场景推荐、3 种混合部署模式(含可运行的命令与配置)、常见认知误区澄清,以及一份可直接套用的决策清单,并能够结合仓库源码理解两种框架的底层工作方式。


🗺️ 快速决策树(Quick Decision Tree)

如果对选择毫无头绪,先走一遍下面的决策流程图。它以"是否涉及多设备/多平台"为第一判断维度,逐步收敛到最终方案:

决策树的核心逻辑可以归纳为三条主线:

  • 涉及多设备/多平台,且需要并行执行,或子任务之间存在依赖关系→ 选 UFO³ Galaxy;
  • 只涉及单个 Windows 桌面,任务是简单的多应用串行流程→ 选 UFO²;
  • 当前只需要 UFO²,但未来可能扩展到多设备→ 现在就用 UFO²,同时按"Galaxy-ready"方式准备配置(见下文"混合方案")。

📊 快速对比矩阵(Quick Comparison Matrix)

维度UFO² Desktop AgentOSUFO³ Galaxy
目标范围单一 Windows 桌面多设备(Windows/Linux/macOS)
最适合场景简单本地自动化复杂跨设备工作流
部署复杂度⭐ 简单⭐⭐⭐ 中等(需要设备池)
学习曲线⭐⭐ 容易⭐⭐⭐⭐ 进阶
执行模型顺序式多应用编排并行 DAG 编排
是否需要网络❌ 否✅ 是(设备间 WebSocket)
并行能力单设备内部跨设备并行
容错能力同设备重试重试 + 任务迁移
典型延迟10-30s(本地)20-60s(含编排开销)
理想任务规模1-5 步5-20+ 步且带依赖关系

快速经验法则(Quick Rule of Thumb):

  • 1 台设备 + 简单工作流→ UFO²
  • 2 台及以上设备,或存在复杂依赖→ Galaxy
  • 不确定?→ 先用 UFO²,后续按 迁移指南 平滑升级

从源码看两种框架的本质差异

对比矩阵中的差异并非营销话术,而是由两种框架的底层架构决定的:

  • UFO² 是"单机双层级"(Two-Tier Hierarchy):由HostAgent统筹本机上的多个AppAgent(Excel/Word/PowerPoint/Web 等),全部在同一个 Windows 桌面上执行。其 CLI 入口即python -m ufo --task "..."(见 ufo/ufo.py),不依赖任何网络组件。
  • UFO³ Galaxy 是"星座模型"(Constellation Model)ConstellationAgent负责把用户请求分解为任务星座(Task Constellation)——一张由TaskStar(可执行单元)和TaskStarLine(依赖边)构成的 DAG,再把每个任务下发给对应设备执行。核心 DAG 管理实现位于 galaxy/constellation/task_constellation.py,其类TaskConstellation明确提供"DAG 校验与环检测、动态任务与依赖管理、LLM 驱动的创建与修改、执行状态跟踪、导入导出"等能力。
  • 两者可以嵌套:UFO² 实例可以作为 Galaxy 的一个"设备 Agent"接入。从源码结构看,这正是文档所谓"Best of both worlds"的技术基础——Galaxy 只负责跨设备的编排与任务分配,设备本地的执行仍交给 UFO² 的 HostAgent/AppAgent 完成。

🎯 基于场景的推荐(Scenario-Based Recommendations)

场景 1:桌面生产力自动化(Desktop Productivity Automation)

任务示例:"创建每周报告:从 Excel 提取数据,在 PowerPoint 中生成图表,通过 Outlook 发送"

推荐方案:✅ UFO²

原因:

  • 所有应用都位于同一台 Windows 桌面上;
  • 流程是顺序式的(Excel → PowerPoint → Outlook);
  • 不存在跨设备依赖。

延伸阅读:UFO² 总览与架构

实操命令:

python -m ufo --task "从 data.xlsx 生成报告 PPT 并通过 Outlook 发送"

场景 2:开发工作流自动化(Development Workflow Automation)

任务示例:"在笔记本上克隆仓库,在 GPU 服务器上构建 Docker 镜像,在 CI 集群上跑测试,在桌面上打开结果"

推荐方案:✅ UFO³ Galaxy

原因:

  • 跨越 3 台以上设备(笔记本、GPU 服务器、CI 集群、桌面);
  • 存在顺序依赖(克隆 → 构建 → 测试 → 展示);
  • 需要设备协同与数据传输。

延伸阅读:Galaxy 总览

实操命令:

python -m galaxy --request \ "Clone repo on my laptop, build Docker image on GPU server, run tests on CI cluster, open results on my desktop"

场景 3:批量数据处理(Batch Data Processing)

任务示例:"处理 100 个文件:从云端拉取、清洗数据、运行 ML 模型、保存结果"

推荐方案:取决于你的基础设施

部署形态推荐方案原因
单台高性能工作站✅ UFO²所有处理都在一台机器上,更简单
分布式集群✅ Galaxy跨节点并行处理,更快
混合形态(本地 + 云端 GPU)✅ Galaxy异构资源统一编排

延伸阅读:

  • 单设备场景的 UFO² 快速上手
  • 分布式场景的 Galaxy 快速上手

场景 4:跨平台测试(Cross-Platform Testing)

任务示例:"在 Windows Chrome、Linux Firefox、macOS Safari 上测试 Web 应用"

推荐方案:✅ UFO³ Galaxy

原因:

  • 需要 3 种不同的操作系统平台;
  • 并行执行能显著节省时间;
  • 支持集中式结果聚合。

延伸阅读:Galaxy 跨平台协作

实现基础:Galaxy 的设备池(device pool)本身支持异构 OS。以仓库自带的 config/galaxy/devices.yaml 为例,其中同时配置了os: "linux"的多个设备条目,而 Galaxy 的设备注册/状态管理则由 galaxy/client/components/device_registry.py 等组件维护,可支撑"每台设备用各自原生 Agent 实现"的多平台形态。


场景 5:文件管理与整理(File Management & Organization)

任务示例:"按文件类型整理 Downloads 文件夹、压缩旧文件、上传到云端"

推荐方案:✅ UFO²

原因:

  • 单设备的本地文件操作;
  • 无网络依赖;
  • 简单的顺序工作流。

延伸阅读:UFO² 快速上手


场景 6:多阶段数据管道(Multi-Stage Data Pipeline)

任务示例:"从 5 台 Linux 服务器收集日志,在中央服务器聚合,进行分析,在 Windows 上生成仪表盘"

推荐方案:✅ UFO³ Galaxy

原因:

  • 多数据源设备(5 台 Linux 服务器);
  • 并行日志采集(比顺序快约 5 倍);
  • 跨平台(Linux → Windows);
  • 复杂依赖图。

延伸阅读:Galaxy 任务星座

仓库佐证:config/galaxy/devices.yaml 中给出了linux_agent_1/2/3三个 Linux 设备条目,每个都带logs_file_pathwarning_log_pattern(如WARN)、error_log_pattern(如ERROR or FATAL)等元数据字段——这正是"从多台 Linux 服务器采集日志"这类管道场景的现成配置骨架。


场景 7:学习 Agent 开发(Learning Agent Development)

任务示例:"我是 Agent 开发新手,想通过构建简单自动化来学习"

推荐方案:✅ UFO²

原因:

  • 架构更简单(更容易理解);
  • 反馈闭环更快(本地执行);
  • 文档与示例更完备;
  • 后续可以升级到 Galaxy。

延伸阅读:UFO² 快速上手


场景 8:企业级工作流集成(Enterprise Workflow Integration)

任务示例:"与现有 CI/CD 管道集成,横跨开发笔记本、构建服务器和测试农场"

推荐方案:✅ UFO³ Galaxy

原因:

  • 企业级设备协同;
  • 带自动恢复的容错机制;
  • 形式化安全保证(I1-I3 不变量);
  • 支持异构基础设施。

延伸阅读:Galaxy 架构


🔀 混合方案(Hybrid Approaches)

不必二选一!以下三种常见混合模式可以让你同时享受两种框架的红利。

模式 1:把 UFO² 作为 Galaxy 设备(UFO² as Galaxy Device)

部署形态:在 Windows 桌面上运行 UFO² 的服务端与客户端(需要同时启动 server 和 client)。

# 终端 1:在 Windows 桌面上启动 UFO² Server python -m ufo.server.app --port 5000 # 终端 2:启动 UFO² Client(连接上面的 server) python -m ufo.client.client --ws --ws-server ws://localhost:5000/ws --client-id my_windows_device --platform windows

收益:

  • 保留 UFO² 在本地 Windows 场景的专业能力;
  • 获得 Galaxy 的跨设备编排能力;
  • 两者兼得(Best of both worlds)。

源码验证:上述命令与仓库入口完全一致:

  • ufo/server/app.py 提供--port(默认 5000)、--host(默认 127.0.0.1)、--api-key--platform(windows/linux/mobile)、--log-level等参数,并对外暴露ws://<host>:<port>/ws的 WebSocket 端点;
  • ufo/client/client.py 提供--client-id--ws-server--ws--max-retries(默认 5)、--platform等参数,客户端会自动检测平台(Windows/Linux/mobile),并可通过--request直接下发任务文本。

延伸阅读:UFO² 作为 Galaxy 设备

模式 2:渐进式迁移(Gradual Migration)

策略:先用 UFO² 解决眼前需求,同时为 Galaxy 扩展做准备。

阶段 1:独立使用 UFO²

python -m ufo --task "Your current task"

阶段 2:让 UFO² 具备 Galaxy 兼容性(提前准备设备池配置)

# config/galaxy/devices.yaml (提前准备) devices: - device_id: "my_windows" server_url: "ws://localhost:5000/ws" # UFO client 连接 UFO server 的地址 os: "windows" capabilities: ["office", "web"]

阶段 3:启动 UFO 设备 Agent 并接入 Galaxy

# 终端 1:在 Windows 机器上启动 UFO Server python -m ufo.server.app --port 5000 # 终端 2:启动 UFO Client(连接上面的 UFO server) python -m ufo.client.client --ws --ws-server ws://localhost:5000/ws --client-id my_windows --platform windows # 终端 3:启动 Galaxy(在控制机上,可与上面同一台或不同机器) python -m galaxy --request "Cross-device workflow"

配置说明:设备池配置(devices.yaml)中的关键字段含义:

  • device_id:设备在星座中的唯一标识,Galaxy 用它寻址与路由任务;
  • server_url:该设备上 UFO Server 暴露的 WebSocket 地址,Galaxy 通过它建立持久连接;
  • os/capabilities:设备平台与能力标签,是ConstellationAgent做"能力匹配式任务分配"的依据。

延伸阅读:迁移指南

模式 3:按领域拆分(Domain-Specific Split)

策略:不同类型的 workflow 使用不同的框架。

工作流类型框架示例
日常桌面任务UFO²邮件处理、文档创建
开发工作流Galaxy代码构建 → 测试 → 部署
数据处理Galaxy(若为分布式)多节点 ML 训练
快速一次性自动化UFO²一次性任务

延伸阅读:何时使用哪种框架


🚫 常见误解澄清(Common Misconceptions)

误解 1:"Galaxy 更新,所以总是更好"

事实:对简单的单设备任务而言 UFO² 反而更优,原因在于:

  • 延迟更低(无网络开销);
  • 部署与调试更简单;
  • 经过实战检验、稳定性高。

结论:只有在确实需要多设备编排时才使用 Galaxy。

误解 2:"迁移到 Galaxy 需要重写一切"

事实:UFO² 只需极少改动即可作为 Galaxy 设备运行:

# 终端 1:启动 UFO Server python -m ufo.server.app --port 5000 # 终端 2:以 WebSocket 模式启动 UFO Client python -m ufo.client.client --ws --ws-server ws://localhost:5000/ws --client-id my_device --platform windows

现有 UFO² 的 HostAgent/AppAgent、混合 GUI-API 执行、MCP 集成、持续学习等能力全部保留(详见 迁移指南 中的"Galaxy 中保留的 UFO² 特性"清单)。

延伸阅读:迁移指南 · 选项 2:将 UFO² 实例转换为 Galaxy 设备

误解 3:"Galaxy 无法在单台设备上运行"

事实:如果你需要以下能力,Galaxy 在单设备上同样工作得很好:

  • 基于 DAG 的工作流规划;
  • 高级监控与轨迹报告(trajectory reports);
  • 为未来的多设备扩展做准备。
# 单设备 Galaxy 配置 devices: - device_id: "localhost" server_url: "ws://localhost:5005/ws"

误解 4:"UFO² 已被 Galaxy 取代(deprecated)"

事实:UFO² 仍在积极维护,并且是单设备场景的推荐选择:

  • 对本地任务更高效;
  • 对初学者更简单;
  • 作为 Galaxy 设备时是核心组件。

两种框架是互补关系,而非竞争关系(Both frameworks are complementary, not competing)。


🎓 学习路径(Learning Paths)

面向初学者(For Beginners)

第 1-2 周:从 UFO² 开始

  1. UFO² 快速上手
  2. 构建简单自动化(文件管理、邮件等)
  3. 理解 HostAgent/AppAgent 架构

第 3-4 周:探索 UFO² 进阶能力4. 混合 GUI-API 操作 5. MCP 服务器集成 6. 自定义与学习

第 5 周起:按需升级到 Galaxy7. 迁移指南 8. Galaxy 快速上手 9. 构建跨设备工作流

面向有经验开发者(For Experienced Developers)

若已明确需要多设备能力,可直接进入 Galaxy:

  1. Galaxy 快速上手
  2. 任务星座概念
  3. ConstellationAgent 深入解析
  4. 性能监控

📋 决策清单(Decision Checklist)

仍然不确定?逐条回答以下问题:

Q1:你的工作流是否涉及 2 台及以上物理设备?

  • ✅ 是 →Galaxy
  • ❌ 否 → 继续回答 Q2

Q2:你是否需要跨机器并行执行?

  • ✅ 是 →Galaxy
  • ❌ 否 → 继续回答 Q3

Q3:你的工作流是否存在复杂依赖(DAG 结构)?

  • ✅ 是,复杂 DAG →Galaxy
  • ❌ 否,简单顺序 → 继续回答 Q4

Q4:你是否熟悉分布式系统概念?

  • ✅ 是 →Galaxy(只要 Q1-Q3 中任一项为是)
  • ❌ 否 →UFO²(先打基础)

Q5:你是否需要跨平台支持(Windows + Linux)?

  • ✅ 是 →Galaxy
  • ❌ 否,仅 Windows →UFO²

结果判定:

  • 3 个及以上"Galaxy"回答→ 使用 Galaxy(见 Galaxy 快速上手)
  • 大部分是"UFO²"回答→ 使用 UFO²(见 UFO² 快速上手)
  • 答案混合→ 先用 UFO²,保留 Galaxy 的扩展选项(见 迁移指南)

🔗 后续步骤(Next Steps)

如果选择了 UFO²:

  1. 📖 UFO² 快速上手指南
  2. 🎯 UFO² 总览与架构
  3. 🛠️ 配置指南

如果选择了 Galaxy:

  1. 📖 Galaxy 快速上手指南
  2. 🎯 Galaxy 总览与架构
  3. 🌟 任务星座概念

如果仍在探索:

  1. 📊 详细对比:何时使用哪种框架

说明:原文档此处的演示视频与论文链接为外部站点地址,本文档不提供外部链接;如需更完整的背景资料,可直接阅读仓库内的 UFO² 总览、Galaxy 总览 与 迁移指南。


💡 专业提示(Pro Tips)

!!! tip "从简单开始" 拿不准时,先用UFO²。先跑起来再升级到 Galaxy,比一上来就调试一个你根本不需要的复杂 Galaxy 部署要容易得多。

!!! tip "混合方案完全可行" 不要把自己锁死在单一选择上。你可以同时UFO² 处理本地任务、用Galaxy 处理跨设备工作流

!!! tip "提交前先测试" 用一个简单工作流分别跑一遍两种框架,感受哪个更贴合你的使用习惯: ```bash # UFO² 测试 python -m ufo --task "Create test report"

# Galaxy 测试 python -m galaxy --request "Create test report" ```

!!! warning "网络要求" Galaxy 要求设备之间有稳定的网络连接(设备间通过 WebSocket 通信)。如果你的环境存在网络限制,UFO² 可能是更可靠的选择。


🧩 延伸:从源码理解 Galaxy 的编排入口与设备模型

为了让选型决策建立在更扎实的基础上,这里补充几个与选择直接相关的源码事实:

Galaxy CLI 与交互模式

Galaxy 的入口在 galaxy/galaxy.py(包级入口见 galaxy/main.py),支持多种运行模式:

# 简单模式:直接传入请求文本 python -m galaxy "Create a data analysis pipeline" # 显式请求 + 会话命名 python -m galaxy --request "Build ML pipeline" --session-name "ml_session" # 交互式命令行模式 python -m galaxy --interactive # 演示模式(内置示例请求) python -m galaxy --demo # WebUI 模式 python -m galaxy --webui

常用参数还包括--max-rounds(默认 10,单会话最大编排轮数)、--log-level(DEBUG/INFO/WARNING/ERROR/CRITICAL,默认 WARNING)、--output-dir(结果输出目录)、--mock(使用 mock agent 测试,不产生真实 LLM 调用)。

GalaxyClient 编程式接口

如果需要把 Galaxy 嵌入自己的脚本或 CI/CD 管道,可使用 galaxy/galaxy_client.py 中的GalaxyClient

import asyncio from galaxy import GalaxyClient async def main(): client = GalaxyClient(session_name="my_workflow") await client.initialize() result = await client.process_request( "Clone repo on laptop, build on server, test on Windows" ) print(f"Workflow completed: {result}") await client.shutdown() asyncio.run(main())

从源码可见,GalaxyClient.process_request在提交请求前会自动检查设备注册表(device_registry)中处于CONNECTED/IDLE/BUSY状态的设备数量,若存在断连设备会先触发ensure_devices_connected()重连逻辑——这就是对比矩阵中"重试 + 任务迁移"容错能力的底层体现。

设备池配置与星座运行时

  • 设备池:config/galaxy/devices.yaml 是 Galaxy 认识所有可用设备的唯一来源。每个条目含device_idserver_urloscapabilitiesmetadataauto_connectmax_retries等字段;仓库模板中还演示了为设备配置operation_engineer_emailapp_log_filetips等运营类元数据。
  • 星座运行时:config/galaxy/constellation.yaml 定义CONSTELLATION_IDHEARTBEAT_INTERVAL(默认 30.0 秒)、RECONNECT_DELAY(默认 5.0 秒)、MAX_CONCURRENT_TASKS(默认 6)、MAX_STEP(默认 15)、DEVICE_INFO(指向设备池文件路径)以及LOG_TO_MARKDOWN(是否生成轨迹报告)。
  • 编排 LLM:config/galaxy/agent.yaml.template 提供CONSTELLATION_AGENT的 LLM 配置模板(API_TYPEAPI_BASEAPI_KEYAPI_MODEL及四类提示词文件路径)。注意:galaxy/config/config_loader.py会通过get_galaxy_config()加载这些配置,GalaxyClient初始化时即解析DEVICE_INFO指向的设备池。

任务星座:DAG 编排的数据结构

Galaxy 的核心数据结构是 galaxy/constellation/task_constellation.py 中的TaskConstellation类,它实现了IConstellation接口,提供:

  • DAG 校验与环检测;
  • 动态任务与依赖管理(TaskStar/TaskStarLine);
  • LLM 驱动的创建与修改;
  • 执行状态跟踪;
  • 导入/导出能力。

这正是决策树中"复杂依赖(DAG)→ Galaxy"与"5-20+ 步带依赖任务"两项判断标准的源码级支撑。


🤝 常见问题与获取帮助

Q:迁移到 Galaxy 后还能继续用 UFO² 吗?A:可以,两者共存。简单本地任务用 UFO²,多设备工作流用 Galaxy。

Q:需要重写自定义 Agent 吗?A:不需要。现有 UFO² Agent 在作为 Galaxy 设备运行时可以原样工作。

Q:Galaxy 是否已可用于生产?A:Galaxy 处于活跃开发中;对关键的单设备工作流,UFO² 更成熟。

Q:能否混用 Windows 和 Linux 设备?A:可以,这正是 Galaxy 的核心特性之一。每台设备使用其原生的 UFO² 实现(Windows 设备用 WindowsAgent,Linux 设备用 LinuxAgent)。

Q:如何调试失败的跨设备工作流?A:查看logs/galaxy/<session>/output.md,其中包含逐步执行详情与 DAG 可视化。仓库源码层面,GalaxyClient.process_request会把执行结果(会话名、请求、状态、轮数、耗时、轨迹路径、星座信息等)写入result.json(默认保存到会话日志目录,可用--output-dir指定)。


至此,你已经完成了 UFO² 与 UFO³ Galaxy 的完整选型分析。核心结论再强调一次:单设备、简单、本地优先 → 选 UFO²;多设备、并行、复杂依赖、跨平台 → 选 Galaxy;两者并不互斥,混合部署与渐进迁移是官方推荐的稳妥路径。选择之后,按照 Galaxy 快速上手 或 UFO² 快速上手 直接开始搭建你的 Agent 体系即可。

【免费下载链接】UFOUFO³: Weaving the Digital Agent Galaxy项目地址: https://gitcode.com/GitHub_Trending/uf/UFO

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询