SwayOS / 文档
v0.1.0SwayOS 使用与开发指南
从安装客户端、连接第一台设备,到通过 CLI 或 SDK 接入 SwayOS。本文档优先提供能直接照做的步骤、命令和排查路径。
文档版本
v0.1.0
客户端
Windows · macOS · Linux · Android
开发工具
CLI · JavaScript SDK
核心服务
GMeta · XAgent
快速开始
安装 SwayOS
先在门户注册并验证账户,再从下载中心选择与你的系统和 CPU 架构匹配的安装包。受保护的安装包需要登录后下载。
- 1 / ACCOUNT
创建账户
使用常用邮箱注册,并按邮件提示完成验证。
注册账户 → - 2 / PACKAGE
选择安装包
确认系统、架构与版本,桌面端优先使用最新稳定版。
查看下载 → - 3 / VERIFY
启动并登录
打开客户端,用同一账户登录;首次启动会加载可用服务。
安装前检查
macOS 请区分 Apple Silicon 与 Intel;Linux 请按发行版选择对应包;Android 安装外部 APK 时需允许当前浏览器或文件管理器安装未知应用。
首次运行
完成首次配置
推荐按下列顺序确认账户、设备和数据路径。这样后续安装应用或创建智能体时,系统已经有明确的执行位置。
确认登录环境
公网账户选择“公网登录”;连接自托管节点时填写节点地址并使用节点账户。
检查系统状态
进入系统状态,先确认 GMeta 可访问;需要设备侧能力时还应确认 XAgent 在线。
添加执行设备
在“设备管理”中选择“添加设备”,完成后确认设备状态为在线。
准备数据源
在“数据源”中添加本地或对象存储;测试连接成功后,再上传或导入文件。
基础概念
账户与认证
门户账户负责下载与公共服务访问;节点账户负责具体 SwayOS 环境中的资源权限。两者可能由不同服务签发凭证,不要把 Token 写进代码仓库。
浏览器 / 客户端
- ✓仅在官方门户或可信节点输入密码。
- ✓会话过期后重新登录,不要反复刷新失败请求。
CLI / 自动化
- ✓本地登录令牌由 CLI 保存到用户配置目录。
- ✓CI 中通过秘密变量注入 SWAY_AUTH_TOKEN。
核心能力
连接与管理设备
GMeta 保存设备、账户与调度等控制面信息;XAgent 运行在设备侧,承接文件、运行时和系统操作。设备出现在列表中并不等于设备侧能力已经在线。
01 / REGISTER
添加设备并记录生成的设备 ID。
02 / ONLINE
确认心跳、XAgent 地址与最近在线时间。
03 / OPERATE
再执行文件、终端、容器或应用操作。
智能体
从市场到运行
先在智能体市场确认用途、作者与版本,再安装到自己的环境。需要执行任务的智能体还必须选择在线设备和可用运行时。
- 1
审阅
检查说明、版本、权限与依赖。
- 2
安装
安装后回到应用中心确认入口。
- 3
调度
绑定设备和运行时,再观察状态与日志。
开发工具
使用 Sway CLI
CLI 适合日常诊断、批量查询和自动化。当前仓库中的二进制名称为 sway-cli,可直接从源码安装。
cd app/sway-cli
cargo install --path . --locked
sway-cli --helpsway-cli config init
sway-cli config set gmeta_url https://<your-gmeta-host>
sway-cli auth login --username <name> --password '<password>'
sway-cli health --detailed# List online devices as JSON
sway-cli device list --status online --format json
# Inspect the current local configuration
sway-cli config show --format human提示:命令行密码参数可能进入 Shell 历史。共享机器上建议使用临时会话,并在完成后执行 sway-cli auth logout。
应用集成
JavaScript / TypeScript SDK
@sway/sdk 将设备、用户、应用、数据源、任务和集群等客户端集中在同一个入口。服务地址和 Token 应从部署环境注入。
import { JsSwayClient } from '@sway/sdk';
const client = JsSwayClient.new({
gmeta_url: 'https://<your-gmeta-host>',
auth_token: process.env.SWAY_AUTH_TOKEN,
timeout_ms: 30_000,
});
const health = await client.healthCheck();
const devices = await client.device().listDevices();
console.log(health.status, devices.items);生产集成清单
- ✓ 为请求设置超时和有限重试
- ✓ 401 后停止请求并刷新认证
- ✓ 不要在日志中输出 Token
- ✓ 在启动时执行健康检查
配置参考
常用环境变量
自动化任务可用环境变量覆盖本地配置。机密值应来自 CI/CD 的 Secret 管理,而不是 .env 示例或仓库文件。
| 变量 | 用途 | 示例 |
|---|---|---|
| SWAY_SERVER_URL | GMeta 服务入口 | https://gmeta.example.com |
| SWAY_AUTH_TOKEN | 非交互认证 Token | ${{ secrets.SWAY_TOKEN }} |
| SWAY_OUTPUT_FORMAT | CLI 默认输出格式 | json / yaml / human |
排查
常见问题
登录后立即返回登录页+
确认系统时间正确;清理过期会话后重新登录;若是节点登录,确认节点地址没有填成门户地址。
健康检查显示连接失败+
运行 config show 检查 GMeta URL;从同一网络访问健康端点;再检查代理、证书和防火墙。
设备存在但操作失败+
确认设备在线、XAgent 正常、设备 ID 匹配;查看最近心跳后再重试具体操作。
返回 401 或权限不足+
401 先重新认证;403 或权限不足需要核对账户角色、资源所有者和节点策略。