首页
/ UFO Agent Server 分布式编排服务器架构与实战指南

UFO Agent Server 分布式编排服务器架构与实战指南

2026-09-15 13:00:36作者:谭伦延

Agent Server 是 UFO 分布式多智能体系统的核心编排引擎,它通过持久化 WebSocket 连接将星座编排器(Constellation Client)与异构设备智能体(Device Client)编织成一张数字智能体星系。本文基于仓库文档与源码,系统讲解 Agent Server 的四层架构、双客户端模型、会话生命周期、AIP 协议消息流、双 API 接口、平台支持、部署运维与故障排查,读完即可独立完成服务器的启动、客户端接入、任务分发与生产化部署。

什么是 Agent Server

Agent Server 是一个基于 FastAPI 的异步 WebSocket 服务器(入口见 ufo/server/app.py),承担 UFO 分布式架构中的通信枢纽角色:它桥接星座编排器、设备智能体与外部系统,通过统一的 AIP(Agent Interaction Protocol)协议接口完成消息的解析、路由与状态维护。

核心职责

能力 描述 关键收益
连接管理 跟踪设备与星座客户端生命周期 实时感知设备可用性
任务编排 协调跨设备的分布式任务执行 集中式工作流控制
状态管理 维护会话生命周期与执行上下文 支持有状态的多轮任务执行
双 API 接口 WebSocket(AIP)+ HTTP(REST) 灵活的集成方式
韧性 优雅处理断连、超时与失败 生产级可靠性

为什么需要 Agent Server

  • 集中式控制:多设备工作流的单一编排点;
  • 协议抽象:客户端通过 AIP 协议通信,屏蔽网络复杂性(协议定义见 aip/messages.py);
  • 异步设计:非阻塞执行带来高并发能力;
  • 平台无关:支持 Windows、Linux,macOS 开发中。

Agent Server 属于 UFO 分布式 服务器-客户端架构 的一部分:服务器负责编排与状态管理,Agent Clients 负责命令执行。完整设计依据见 服务器-客户端架构

架构解析

服务器遵循清晰的分层关注点分离原则,将 Web 服务、连接管理与协议处理解耦。

分层架构与组件交互

graph TB
    subgraph "Web Layer"
        FastAPI[FastAPI App]
        HTTP[HTTP API]
        WS[WebSocket /ws]
    end

    subgraph "Service Layer"
        WSM[Client Connection Manager]
        SM[Session Manager]
        WSH[WebSocket Handler]
    end

    subgraph "Clients"
        DC[Device Clients]
        CC[Constellation Clients]
    end

    FastAPI --> HTTP
    FastAPI --> WS

    HTTP --> SM
    HTTP --> WSM
    WS --> WSH

    WSH --> WSM
    WSH --> SM

    DC -->|WebSocket| WS
    CC -->|WebSocket| WS

从源码看(ufo/server/app.py),FastAPI 应用初始化了两个核心管理器与一个共享的 WebSocket 处理器:SessionManagerClientConnectionManagerUFOWebSocketHandler,三者通过构造注入互相协作,保证每个组件职责单一。

核心组件职责对照

组件 职责 关键操作
FastAPI 应用 Web 服务层 HTTP 端点路由、WebSocket 连接接收(/ws)、请求/响应处理、CORS 与中间件
Client Connection Manager 连接注册表 客户端身份跟踪、会话↔客户端映射、设备信息缓存、连接生命周期钩子
Session Manager 执行生命周期 平台相关会话创建、后台异步任务执行、结果回调投递、会话取消
WebSocket Handler 协议实现 AIP 消息解析与路由、客户端注册、心跳监控、任务/命令分发

组件文档:

关键能力一:多客户端协调

服务器支持两种职责不同的客户端类型,这是分布式架构的角色基础(枚举定义见 aip/messages.py#L282-L291)。

客户端类型对比

维度 Device Client(设备客户端) Constellation Client(星座客户端)
角色 任务执行者 任务编排者
连接 长连接 WebSocket 长连接 WebSocket
注册 ClientType.DEVICE ClientType.CONSTELLATION
能力 本地执行、遥测上报 多设备协调
Target 字段 不需要 路由必需
示例 Windows 智能体、Linux 智能体 ConstellationClient 编排器

Device Client(设备客户端)

  • 在 Windows/Linux 机器上本地执行任务;
  • 上报硬件规格与实时状态(如 CPU 核数、内存总量,见 ws/handler.py#L277-L284 的连接日志);
  • 通过 MCP 工具服务器响应命令;
  • 将执行日志流式回传服务器。

Constellation Client(星座客户端)

  • 从中心点编排多设备工作流;
  • 通过 target_id 将任务派发到指定目标设备;
  • 协调跨设备的复杂 DAG 执行;
  • 聚合多设备结果。

两类客户端均连接 /ws 端点并使用 REGISTER 消息注册,服务器根据 client_type 字段区分行为。值得注意的是,handle_task_request 会强制校验:设备客户端只能以自身为 target_id 运行任务,禁止向对等设备派发任务;星座客户端则必须提供 target_id 且目标必须是已连接的设备客户端。

关键能力二:会话生命周期管理

与无状态的 HTTP 服务器不同,Agent Server 在整个任务执行期间维护会话状态,支持多轮交互与结果回调。会话由 SessionManager 统一管理,内部通过 sessionssession_id_dict 等字典维护会话注册表。

会话生命周期状态机

stateDiagram-v2
    [*] --> Created: create_session()
    Created --> Running: Start execution
    Running --> Completed: Success
    Running --> Failed: Error
    Running --> Cancelled: Disconnect
    Completed --> [*]
    Failed --> [*]
    Cancelled --> [*]

    note right of Running
        Async background execution
        Non-blocking server
    end note

生命周期阶段详解

阶段 触发条件 Session Manager 动作 服务器状态
Created HTTP 派发或 AIP TASK 平台相关会话实例化(SessionFactory 生成会话 ID
Running 后台任务启动 异步执行,不阻塞事件循环 等待结果
Completed TASK_END(成功) 回调投递到客户端 结果缓存
Failed TASK_END(错误) 错误回调投递 错误记入日志
Cancelled 客户端断连 取消异步任务并清理 会话移除

平台相关会话

SessionManager 根据目标平台创建不同会话类型:

  • WindowsWindowsSession,支持 UI 自动化(UIA)、COM API 集成、原生应用控制、截图;
  • LinuxLinuxSession,支持 bash 自动化、GUI 工具(xdotool)、包管理、进程控制;
  • 自动探测或通过 --platform 参数覆盖。

从源码看,SessionManager.__init__ 通过 SessionFactory 组合 create_session/create_service_sessionsession_manager.py#L170-L191),并根据 platform.system().lower() 自动探测平台;后台执行由 execute_task_async 启动 asyncio.create_task 完成(session_manager.py#L378-L385),保证 WebSocket 心跳与消息处理不被阻塞。

Session Manager 职责清单

  • 平台抽象:屏蔽 Windows/Linux 差异;
  • 后台执行:非阻塞异步任务;
  • 回调路由:通过 WebSocket 投递结果(TASK_END 消息构造见 session_manager.py#L525-L533);
  • 资源清理:断连时取消任务;
  • 结果缓存:为 HTTP 检索保存结果(set_results/get_result)。

关键能力三:弹性通信(AIP 协议)

服务器实现了 Agent Interaction Protocol(AIP),提供结构化、类型安全的通信并自动处理失败。所有消息基于 Pydantic 模型定义与校验(见 aip/messages.py)。

协议特性

特性 实现 收益
结构化消息 Pydantic 模型 + 校验 类型安全、自动序列化
连接健康 每 20-30s 心跳 早期失败检测
错误恢复 指数退避重连 瞬时故障容忍
状态跟踪 会话-客户端映射 断连时正确清理
消息关联 request_idprev_response_id 请求-响应追踪

心跳由 HeartbeatProtocol 实现,默认间隔 30 秒(_heartbeat_interval: float = 30.0);服务器端在 handle_heartbeat 中通过 HeartbeatProtocol.send_heartbeat_ack() 应答,维持连接健康。

断连处理流程

sequenceDiagram
    participant Client
    participant Server
    participant SM as Session Manager

    Client-xServer: Connection lost
    Server->>SM: Cancel sessions
    SM->>SM: Cleanup resources
    Server->>Server: Remove from registry

    Note over Server: Client can reconnect<br/>with same client_id

重要安全约束:当客户端(设备或星座)断连时,所有关联会话会被立即取消,防止孤儿任务与资源泄漏。从 ws/handler.py#L288-L341disconnect 逻辑可以看到,设备断连时取消其设备会话(reason=device_disconnected),星座断连时取消其星座会话(reason=constellation_disconnected)。

源码中的安全设计亮点

服务器还内置了多层安全防御(可在 session_manager.pyws/handler.py 中看到完整实现):

  • 会话所有权绑定SessionOwnershipError 拒绝其他客户端复用同一 session_id,防止跨客户端结果回放;
  • 结果发送者校验is_authorized_result_sender 确保只有执行任务的目标设备才能返回 COMMAND_RESULTS,防止伪造结果注入;
  • 身份/角色防伪:注册时绑定 client_id/client_type,后续消息若声明不同身份将被拒绝;
  • task_name 清洗:通过 sanitize_task_name 阻止路径穿越(如 ../escape)注入日志目录。

关键能力四:双 API 接口

服务器提供两种 API 风格:面向智能体客户端的实时 WebSocket,以及面向外部系统的简单 HTTP。

WebSocket API(基于 AIP)

用途:与智能体客户端的实时双向通信。

消息类型 方向 用途
REGISTER 客户端→服务器 初始能力通告
TASK 服务器→客户端 任务分配(带命令)
COMMAND 服务器→客户端 单条命令执行
COMMAND_RESULTS 客户端→服务器 执行结果
TASK_END 双向 任务完成通知
HEARTBEAT 双向 连接保活
DEVICE_INFO_REQUEST/RESPONSE 双向 遥测交换
ERROR 双向 错误状态上报
import json
import websockets

async with websockets.connect("ws://localhost:5000/ws") as ws:
    # 以设备客户端身份注册
    await ws.send(json.dumps({
        "message_type": "REGISTER",
        "client_id": "windows_agent_001",
        "client_type": "device",
        "metadata": {"platform": "windows", "gpu": "NVIDIA RTX 3080"}
    }))

注意:当前仓库的 WebSocket 端点要求以 token 查询参数传入 API Key(见 app.py#L95-L106),服务启动时会打印自动生成的 API Key,使用时应带上该参数。

HTTP REST API

用途:外部系统(HTTP 客户端、CI/CD 等)的任务派发与监控。

端点 方法 用途 认证
/api/dispatch POST 向设备派发任务 API Key(必需)
/api/task_result/{task_name} GET 获取任务结果 API Key(必需)
/api/clients GET 列出已连接客户端 API Key(必需)
/api/health GET 服务器健康检查 API Key(必需)

api.py 的实现看,所有 /api/* 端点均通过 _make_auth_dependency 校验 X-API-Key 请求头(secrets.compare_digest 防时序攻击),不携带有效 Key 将返回 401;/api/dispatch 还会校验 task_name 必须匹配 [A-Za-z0-9._-] 且不能以 . 开头,防止路径穿越。

# 向设备派发任务
curl -X POST http://localhost:5000/api/dispatch \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <your_api_key>" \
  -d '{
    "client_id": "my_windows_device",
    "request": "Open Notepad and type Hello World",
    "task_name": "test_task_001"
  }'

# 响应: {"status": "dispatched", "session_id": "session_abc123", "task_name": "test_task_001"}

# 获取结果
curl http://localhost:5000/api/task_result/test_task_001 \
  -H "X-API-Key: <your_api_key>"

完整端点规范见 HTTP API 参考

工作流实战示例

完整的任务派发流程(HTTP + WebSocket 设备执行)

sequenceDiagram
    participant EXT as External System
    participant HTTP as HTTP API
    participant SM as Session Manager
    participant WSH as WebSocket Handler
    participant DC as Device Client

    EXT->>HTTP: POST /api/dispatch<br/>{client_id, request, task_name}
    HTTP->>SM: create_session()
    SM->>SM: Create platform session
    SM-->>HTTP: session_id
    HTTP-->>EXT: 200 {session_id, task_name}

    SM->>WSH: send_task(session_id, task)
    WSH->>DC: TASK message (AIP)
    DC-->>WSH: ACK

    rect rgb(240, 255, 240)
        Note over DC: Background Execution
        DC->>DC: Execute via MCP tools
        DC->>DC: Generate results
    end

    DC->>WSH: COMMAND_RESULTS
    WSH->>SM: on_result_callback()
    SM->>SM: Cache results

    DC->>WSH: TASK_END (COMPLETED)
    WSH->>SM: on_task_end()

    EXT->>HTTP: GET /task_result/{session_id}
    HTTP->>SM: get_results()
    SM-->>HTTP: results
    HTTP-->>EXT: 200 {results}

绿色高亮部分突出设备端的异步执行——它不会阻塞服务器。实际上 /api/dispatch 通过 TaskExecutionProtocol.send_task_assignment 将任务直接下发到目标设备的 WebSocket(api.py#L90-L106),随后 SessionManager.execute_task_async 在后台运行会话并回调 send_resultTASK_END 结果发回请求方。

多设备星座编排工作流

sequenceDiagram
    participant CC as Constellation Client
    participant Server as Agent Server
    participant D1 as Device 1 (GPU)
    participant D2 as Device 2 (CPU)

    CC->>Server: REGISTER (constellation)
    Server-->>CC: HEARTBEAT (OK)

    Note over CC: Plan multi-device DAG

    CC->>Server: TASK (target: device_1)<br/>Subtask 1: Image processing
    Server->>D1: TASK (forward)

    CC->>Server: TASK (target: device_2)<br/>Subtask 2: Data extraction
    Server->>D2: TASK (forward)

    par Parallel Execution
        D1->>D1: Process image on GPU
        D2->>D2: Extract data from DB
    end

    D1->>Server: COMMAND_RESULTS
    Server->>CC: COMMAND_RESULTS (from device_1)

    D2->>Server: COMMAND_RESULTS
    Server->>CC: COMMAND_RESULTS (from device_2)

    Note over CC: Combine results,<br/>Update DAG

    D1->>Server: TASK_END
    D2->>Server: TASK_END
    Server->>CC: TASK_END (both tasks)

服务器在此扮演消息路由器:将任务转发到目标设备,并将结果路由回星座编排器。任务完成时回调会同时向星座客户端与目标设备发送 TASK_ENDws/handler.py#L828-L855)。更多多设备编排细节见 Constellation 文档

平台支持

服务器自动探测客户端平台并创建相应会话实现。

平台 会话类型 能力 状态
Windows WindowsSession UI 自动化(UIA)、COM API 集成、原生应用控制、截图 完整支持
Linux LinuxSession Bash 自动化、GUI 工具(xdotool)、包管理、进程控制 完整支持
macOS (规划中) AppleScript、UI 自动化、原生应用控制 开发中

平台自动探测与覆盖

服务器在客户端注册时自动探测平台。可通过 --platform 参数全局覆盖,用于测试或特定部署场景:

python -m ufo.server.app --platform windows  # 强制 Windows 会话
python -m ufo.server.app --platform linux    # 强制 Linux 会话
python -m ufo.server.app                     # 自动探测(默认)

何时使用 --platform 覆盖:

  • 在无真实设备时测试跨平台会话;
  • 服务器容器平台与目标平台不同;
  • 调试特定平台的会话行为。

配置详解

服务器开箱即用,带有合理的默认配置。高级配置继承自 UFO 的中央配置系统。

命令行参数

python -m ufo.server.app [OPTIONS]

app.py 的 parse_args 源码确认,可用选项如下:

选项 类型 默认值 说明
--port int 5000 服务监听端口
--host str 127.0.0.1 绑定地址(0.0.0.0 仅用于需远程访问时)
--api-key str 自动生成 HTTP/WebSocket 认证 API Key(不提供则自动生成并打印)
--platform str 自动探测 强制平台(windowslinuxmobile
--log-level str WARNING 日志级别(DEBUGINFOWARNINGERRORCRITICALOFF
--local flag False 仅限本地连接

配置示例:

# 开发环境:仅本地 + 调试日志
python -m ufo.server.app --local --log-level DEBUG --port 8000

# 生产环境:外部访问 + info 日志
python -m ufo.server.app --host 0.0.0.0 --port 5000 --log-level INFO

# 测试:强制 Linux 会话
python -m ufo.server.app --platform linux --port 9000

补充说明(与文档默认值略有差异,以源码为准):当前仓库源码中 --host 默认绑定 127.0.0.1 以保证本地安全,--log-level 默认 WARNING;文档表格中给出的 0.0.0.0INFO 更适合作为显式指定的生产参数。此外服务器以 uvicorn 启动并设置 ws_max_size=100MBapp.py#L145),支持大消息传输。

UFO 配置继承

服务器使用 UFO 的中央配置(config_dev.yamlconfig/config_loader.py 加载的配置):

配置节 继承设置
Agent Strategies HostAgent、AppAgent、EvaluationAgent 配置
LLM Models 模型端点、API Keys、temperature 设置
Automators UI 自动化、COM API、Web 自动化配置
Logging 日志文件路径、轮转、格式
Prompts 智能体系统提示词、示例模板

例如 session_manager.py#L17 通过 get_ufo_config() 读取配置,并用 ufo_config.system.eva_session 控制会话是否启用评估(session_manager.py#L174-L190)。完整配置文档见 Configuration Guide

监控与运维

健康监控

# 服务器健康与在线状态
curl http://localhost:5000/api/health -H "X-API-Key: <your_api_key>"

# 响应:
# {
#   "status": "healthy",
#   "online_clients": [...]
# }

# 已连接客户端列表
curl http://localhost:5000/api/clients -H "X-API-Key: <your_api_key>"

# 响应:
# {
#   "online_clients": ["windows_001", "linux_002", ...]
# }

完整的监控策略(性能指标采集、日志聚合模式、告警配置、仪表盘搭建)见 Monitoring Guide

错误处理矩阵

服务器优雅处理常见失败场景以维持系统稳定性。

场景 服务器检测 自动动作 客户端影响
设备断连 心跳超时 / WebSocket 关闭 取消设备会话、通知星座 任务失败,星座重试
星座断连 心跳超时 / WebSocket 关闭 继续设备执行、跳过回调 设备完成但结果未投递
任务执行失败 TASK_END 带错误状态 记录错误、存入结果 客户端经回调/HTTP 收到错误
网络分区 心跳超时 标记断连、启用重连 客户端以相同 ID 重连
服务器崩溃 不适用 客户端经心跳探测 客户端重连到新实例

重连支持:客户端可用相同 client_id 重连,服务器会重新注册客户端并恢复心跳监控,但不会恢复之前的会话(会话是临时的)。

最佳实践

开发环境

# 隔离到 localhost,开启详细日志
python -m ufo.server.app \
  --host 127.0.0.1 \
  --port 5000 \
  --local \
  --log-level DEBUG

开发清单:

  • 使用 --local 标志防止外部访问;
  • 开启 DEBUG 日志获得详细追踪;
  • 单独终端监控日志:tail -f logs/ufo_server.log
  • 先单设备测试再添加多客户端;
  • 使用 HTTP API 快速测试任务派发;
  • 用客户端断连验证心跳监控。

开发测试模式(三终端):

# 终端 1:调试日志启动服务器
python -m ufo.server.app --local --log-level DEBUG

# 终端 2:连接设备客户端
python -m ufo.client.client --ws --ws-server ws://127.0.0.1:5000/ws

# 终端 3:派发测试任务
curl -X POST http://127.0.0.1:5000/api/dispatch \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <your_api_key>" \
  -d '{"client_id": "windowsagent", "request": "Open Notepad", "task_name": "test_001"}'

生产部署

默认配置并非生产就绪,需要落实以下安全与可靠性措施。

生产架构:

graph LR
    Internet[Internet]
    LB[Load Balancer<br/>nginx/HAProxy]
    SSL[SSL/TLS<br/>Termination]

    subgraph "UFO Server Cluster"
        S1[Server Instance 1<br/>:5000]
        S2[Server Instance 2<br/>:5001]
        S3[Server Instance 3<br/>:5002]
    end

    Monitor[Monitoring<br/>Prometheus/Grafana]
    PM[Process Manager<br/>systemd/PM2]

    Internet --> LB
    LB --> SSL
    SSL --> S1
    SSL --> S2
    SSL --> S3

    PM -.Manages.-> S1
    PM -.Manages.-> S2
    PM -.Manages.-> S3

    S1 -.Metrics.-> Monitor
    S2 -.Metrics.-> Monitor
    S3 -.Metrics.-> Monitor

生产清单:

类别 建议 理由
反向代理 nginx、Apache 或云负载均衡 SSL 终止、限流、DDoS 防护
SSL/TLS 启用 WSS(WebSocket Secure) 加密客户端-服务器通信
认证 为 FastAPI 添加认证中间件 防止未授权访问
进程管理 systemd(Linux)、PM2(Node.js)、Docker 崩溃自动重启、资源限制
监控 /api/health 轮询、指标导出 主动发现问题
日志 结构化日志、日志聚合(ELK) 集中化调试与审计追踪
资源限制 设置最大连接数、内存上限 防止资源耗尽

Nginx 配置示例:

upstream ufo_server {
    server localhost:5000;
}

server {
    listen 443 ssl;
    server_name ufo-server.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    # WebSocket 端点
    location /ws {
        proxy_pass http://ufo_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 3600s;
    }

    # HTTP API
    location /api/ {
        proxy_pass http://ufo_server;
        proxy_set_header Host $host;
    }
}

扩展策略

服务器可水平扩展以应对高负载部署,但需要谨慎的会话管理。

模式 描述 适用场景 注意事项
垂直扩展 单实例增加 CPU/内存 < 100 并发客户端 最简单,无会话分发
水平扩展(粘性会话) 多实例 + 会话亲和 100-1000 客户端 负载均衡将同一客户端路由到同一实例
水平扩展(共享状态) 多实例 + Redis > 1000 客户端 需要会话状态外部化

当前限制:当前实现将会话状态保存在内存中(见 session_manager.py#L65-L89 的内存字典结构)。水平扩展时应使用粘性会话(客户端亲和)让负载均衡将客户端路由到一致实例。未来规划:基于 Redis 的共享状态后端,实现真正的无状态水平扩展。

故障排查

常见问题

问题:客户端无法连接

# 症状:连接被拒绝
Error: WebSocket connection to 'ws://localhost:5000/ws' failed

# 诊断:
1. 检查服务器是否运行: curl http://localhost:5000/api/health -H "X-API-Key: <key>"
2. 验证端口: netstat -an | grep 5000
3. 检查防火墙: sudo ufw status

# 解决:以正确的 host 绑定启动服务器
python -m ufo.server.app --host 0.0.0.0 --port 5000

问题:会话不执行

# 症状:任务已派发但无结果

# 诊断:
1. 检查服务器日志错误
2. 确认客户端已连接: curl http://localhost:5000/api/clients -H "X-API-Key: <key>"
3. 检查 target_id 是否匹配 client_id

# 解决:确保请求中的 client_id 与已注册客户端一致
curl -X POST http://localhost:5000/api/dispatch \
  -H "X-API-Key: <your_api_key>" \
  -d '{"client_id": "correct_client_id", "request": "test", "task_name": "test_001"}'

问题:内存泄漏 / 内存占用过高

# 症状:服务器内存随时间增长

# 诊断:
1. 检查日志中的会话清理
2. 监控 /api/health 的会话数
3. 使用 memory_profiler 分析

# 解决:
# 确保客户端发送 TASK_END 完成会话
# 定期重启服务器(systemd 可处理)
# 实现会话超时(未来特性)

调试模式

# 最大冗余度调试
python -m ufo.server.app \
  --log-level DEBUG \
  --local \
  --port 5000 2>&1 | tee debug.log

# 实时观察日志
tail -f debug.log | grep -E "(ERROR|WARNING|Session|WebSocket)"

相关文档导航

快速上手

文档 用途
Quick Start 5 分钟内跑通服务器
客户端注册 客户端如何连接服务器

架构与组件

文档 用途
Session Manager 任务执行生命周期深度剖析
Client Connection Manager 连接注册表内部机制
WebSocket Handler AIP 协议消息处理
HTTP API REST 端点规范

运维

文档 用途
Monitoring 健康检查、指标、告警

关联文档

文档 用途
AIP 协议 通信协议规范
Agent 架构 智能体设计与 FSM 框架
服务器-客户端架构 分布式架构设计依据
客户端概览 设备客户端架构
MCP 集成 Model Context Protocol 工具服务器

下一步学习路径

1. 运行服务器(5 分钟)

2. 连接客户端(10 分钟)

  • 使用 Device Client
  • 在服务器日志中确认注册成功;
  • 检查 /api/clients 端点。

3. 派发任务(15 分钟)

  • 使用 HTTP API 发送任务;
  • 通过 /api/task_result 获取结果;
  • 在日志中观察 WebSocket 消息流。

4. 理解架构(30 分钟)

5. 部署到生产(时间不定)

  • 配置反向代理(nginx);
  • 配置 SSL/TLS;
  • 实现监控;
  • 测试故障转移场景。
登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
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