OpenAlice 远程接入快速上手:通过 SSH 在私有 Linux/macOS 主机上运行 AI 交易 Runtime,GUI 留在本地
发布时间:2026/10/9 5:31:09 锦皓数字建站

【免费下载链接】OpenAliceYour one-person Wall Street. An AI trading agent covering equities, crypto, commodities, forex, and macro — from research through position entry, ongoing management, to exit.项目地址https://gitcode.com/gh_mirrors/op/OpenAlice点击查看免费下载本指南面向这样的使用场景OpenAlice 跑在一台只能通过 SSH 访问的私有 Linux 或 macOS 主机上这台主机拥有自己的 AliceProjects、Workspaces、Agent 进程、凭据与可选的交易服务而图形界面仍然留在你的本地电脑上。读完本文你将掌握本地 CLI 的安装与校验、通过 CLI 或 GUI 注册远端 Machine、选中远端 AliceProject、以及日常的 status/stop/inspect 控制与安全边界——全程有仓库源码与测试佐证。一、职责划分远端主机与本地电脑各自拥有什么在远程接入模式下OpenAlice 的职责边界非常清晰远端主机拥有AliceProjects、Workspaces、Agent 进程、凭据以及可选的 UTA 交易服务。也就是docs/remote-access.md中定义的 RuntimeGuardian 拥有的进程树与用户状态含 Alice、可选 UTA、可选 Connector Service、workspaces、PTY、用户自有 Agent CLI、调度与文件态状态。本地电脑拥有CLI含 GUI 中继与它唯一选中的目标一个 Machine 一个运行中的 AliceProject。生命周期的细节与安全模型由 docs/remote-access.md 完整承载本文是其用户侧的上手路径。远程接入的整体分层可以从remote-access.md的 Layered Topology 中看到全貌presentation plane browser | Electron | future Studio │ transport plane loopback HTTP/WS | Electron IPC | SSH loopback | future capability channel │ runtime/control plane Guardian lease local control endpoint Alice APIs │ execution plane Workspace files PTYs native Agent CLIs tools optional UTA这个分层在排查延迟时尤其重要SSH 浏览器会话中浏览器是本地的但 shell/TUI 与模型回路是远端的——按键要穿过网络到达远端 PTY远端屏幕变化经 Workspace WebSocket 返回而 HTML 布局、菜单、列表等仍是本地浏览器的活。二、第 1 步安装本地 CLI使用官方安装脚本安装本地 CLIcurl -fsSL https://openalice.ai/install | bash安装完成后运行安装器打印的 shell 激活命令然后校验 CLI 可用openalice --version安装/渠道相关的细节如--channel beta、--channel dev、--version version固定版本等由 docs/cli-installer.md 承载。SSH 目标侧需要满足两点前提OpenSSH 访问目标主机需要能被普通ssh到达平台前提目标主机需要满足 OpenAlice 原生发布的平台前置条件。OpenAlice 直接复用你日常的 SSH 配置——密钥、主机校验host verification、端口与ProxyJump都按普通 OpenSSH 语义工作。它不会在目标上安装 Agent Runtime CLIShell、Claude Code、Codex 等由用户自己维护见remote-access.md的 It does not install Agent Runtime CLIs 与不变式 #9。三、第 2 步注册一台 Machine给目标主机起一个 SSH 别名如果还没配过的话并确认普通 SSH 能连通Host openalice-box HostName server.example.com User alice IdentityFile ~/.ssh/id_ed255193.1 通过 GUI 注册启动openalice打开它的 Web GUI进入Settings → General → Machines选择Add Machine输入openalice-box与标签Cloud然后**探测probe**目标。预览preview会在你批准注册之前列出将要执行的确切远端动作。也就是说注册之前你就能看到 将要安装什么、将要启动什么而不是黑盒操作。3.2 通过 CLI 注册ssh openalice-box openalice --remote openalice-box --plan openalice machine add openalice-box --label Cloud三个命令各司其职ssh openalice-box先独立确认普通 SSH 通路这也是remote-access.md的建议——先能独立验证ssh target再诊断 OpenAlice。openalice --remote openalice-box --plan只读计划不产生任何远端改动。它会报告 SSH 目标与解析出的远端平台/架构、检测到的远端 OpenAlice CLI 路径/版本/逻辑发布身份、控制协议兼容性、Server 状态与内容身份、以及建议的安装/更新/启动动作等见remote-access.mdManaged Remote Bootstrap and Compatibility。openalice machine add openalice-box --label Cloud探测主机 → 展示并确认所需的安装/启动动作 → 检查 Runtime 健康 →然后才保存 SSH 档案。--yes只能在已经审阅过那些动作之后使用用于非交互式自动化确认。一个任意的 SSH 地址在通过这次注册之前永远不是 GUI 目标——这是安全设计不是疏漏。注册时如果目标缺少匹配的原生 OpenAlice 版本会在需要时安装匹配版本但 Agent Runtime 可执行文件与 SSH 凭据始终是用户自有的。已注册的 Machine 可以在同一个 Settings 区域里重新探测re-probe并升级。3.3 源码级的 Machine 档案实现openalice machine子命令的实现位于 packages/cli/src/machine-command.ts支持的动作有list | add | rename | remove | enable | disable | inspect。machine add的完整选项包括选项含义--label label人类可读的 Machine 标签--ssh-port port覆盖 OpenSSH 配置的端口--identity path本地私钥路径绝对路径或~/形式--json输出带版本的机器可读结果--yes非交互式确认注册表变更Machine 档案存放在Supervisor 根目录下的machines.jsonpackages/cli/src/machine-registry.ts位于每一个可选 AliceProject home 之外不随某个 complete home 移动也不属于 Electron 浏览器档案。持久化形态docs/data-locations.md 有明确记录大致如下{ schemaVersion: 1, machines: { cloud: { id: 0123456789abcdef0123456789abcdef, displayName: Cloud, sshTarget: alicecloud, enabled: true } } }关键点档案只包含连接元数据不透明 id、显示名、OpenSSH 目标、可选端口、本地 identity 文件路径、启用状态绝不包含密码、私钥字节、口令passphrase、主机密钥、agent 材料或远端凭据。写入时以0600权限先写临时文件再原子 renamewriteMachineRegistry读侧有严格的 schema 校验。OpenSSH 配置、agent、ProxyJump与主机密钥策略始终保持权威。四、第 3 步选择远端 AliceProject运行openalice它的 TUI 会启动本地 Web 中继relay。然后在 TUI 中打开 Web GUI进入Settings → General → Where Alice is working选择Cloud及其一个运行中的 AliceProject。要点使用同一个中继的浏览器标签页共享同一个选择不带 TUI 纯 GUI 运行时使用openalice relay浏览器始终停留在本地中继的 origin 上永远不会直连远端 Runtime 端口中继负责打开并拥有通往所选中后端的SSH 环回隧道切换到另一台 Machine 或 AliceProject不会停止之前的 Runtime关闭浏览器不会停止远端 Runtime关闭本地中继才会结束它的隧道。这与main.ts的命令路由一致packages/cli/src/main.ts裸openalice进入 TUI--remote/--machine走 CLI 命令路径openalice relay提供无 TUI 的同一 Web 控制器。4.1 中继的实现细节packages/cli/src/web-relay.ts 的类注释第一行就是 One local browser relay owns exactly one active Machine/AliceProject。它维护一个活动目标ActiveTarget与一个递增的generation切换时会先验证候选的 AliceProject 身份成功后关闭旧 WebSocket、递增 generation、reload 所有标签页——切换永远不会停止旧 Runtime。SSH 隧道的实际参数由 packages/cli/src/ssh-connect.mjs 的buildSshArgs构建ssh -N -T -o ExitOnForwardFailureyes -o ServerAliveInterval30 -o ServerAliveCountMax3 [-o BatchModeyes] # 仅 fleet 探测等非交互场景 [-p ssh-port] [-i identity-file] -L 127.0.0.1:local-port:127.0.0.1:remote-port destination隧道两端都绑定127.0.0.1遵循普通 OpenSSH 的配置、agent、密钥、ProxyJump 与主机密钥校验并且从不转发 Guardian 的控制端点。旧的 直接 SSH 浏览器挂接direct browser attach已经退役——connectSsh中对此直接抛错Direct SSH browser attach is retired; use the local Web relay.默认的远端 Web 端口为47331parseRemoteArgs中的remotePort: 47331见 packages/cli/src/remote.mjs与 docs/data-locations.md 记录的 Web 端口探测语义一致从 47331 起向上探测避免并发 home 冲突。五、日常控制命令openalice machine list openalice machine inspect Cloud openalice --machine Cloud status --json openalice --remote openalice-box --status openalice --remote openalice-box --stop语义说明--machine把一条命令路由到已保存、已启用的档案profile--remote保留用于只读规划与显式 status/stop 控制它过去的一次性浏览器挂接能力已退役machine disable阻止新的选择但不会停止已经在运行的远端 Runtime禁用只是本地元数据变更不停止远端 Server、也不关闭既有隧道。openalice machine的完整命令面packages/cli/src/machine-command.tsopenalice machine list [--json] openalice machine add aliceexample.com --label Cloud --yes openalice machine rename id-or-label --label Cloud production --yes openalice machine disable id-or-label --yes openalice machine enable id-or-label --yes openalice machine remove id-or-label --yes openalice --machine id-or-label status --json openalice machine inspect [id-or-label] [--json]machine remove只删除本地元数据且需显式确认从不删除远端数据。5.1 探针与清册inventory行为machine inspect使用同一个类型化清册packages/cli/src/machine-inventory.ts同时覆盖本地与远端 Machine。每次远端探测只发一条聚合 SSH 命令远端执行openalice machine inspect local --json远端命令只读它自己的 Supervisor AliceProject 注册表并探测已注册的 complete home——不会扫描任意远端目录。清册中每个 Machine 的连接状态被规范化为online/offline/unauthorized/incompatible外加本地的local与过渡态checking。可达性不是 Runtime 状态一台online的 Machine 仍可能包含停止、不健康或由他人拥有的 Projects一台不可达的 Machine 只作为一行offline出现在 fleet 结果中不会让整个刷新失败。出于安全fleet 探测强制 OpenSSHBatchMode避免密码/密钥口令/主机密钥提示卡住 Supervisor TUI——这些情况会变成unauthorized行而交互式隧道命令保留正常的 OpenSSH 提示。清册响应是有界的包含项目身份、product、home/port、规范化 Runtime 状态、组件健康与能力声明但省略owner PID、token、日志、命令行、环境变量与凭据。5.2--remote的完整选项--remote的完整帮助见 packages/cli/src/remote.mjs 的formatRemoteHelp选项含义--app-dir path高级显式指定已存在或新建的源码 checkout仅开发形态--home path远端绝对OPENALICE_HOME默认~/.openalice--ssh-port portSSH 服务端口--identity path本地 SSH identity 文件--wait secondsServer/隧道就绪超时范围 1–600默认 120--status检查受管远端 Server 后退出--stop优雅停止受管远端 Server 后退出--plan打印只读计划后退出-y, --yes非交互式批准安装/更新/启动动作--takeover显式替换已记录的远端 Guardian owner-h, --help帮助两条红线源码中都有强制校验--yes绝不隐含--takeover——批准计划不等于替换 owner--remote-session被显式拒绝——OpenAlice 没有 Herdr 风格的命名 server sessionmachine-command.ts直接抛错 OpenAlice has no named server sessions. Use --project or --home on the target command.而不是静默存储。另外--status与--stop不能混用、--plan/--takeover不能与--status/--stop组合parseRemoteArgs中直接抛错。远端 SSH 命令只会对一小撮可重试的传输故障连接 reset/timeout/close、key-verifier 服务中断、kex_exchange_identification/ssh_exchange_identification失败等做重试——remote.mjs顶部的TRANSIENT_SSH_PATTERNS就是这份允许清单任意远端命令失败从不重试。六、把项目搬到远端project transfer如果希望把一个静止的本地 AliceProject复制到已注册的 SSH Machine 上成为一个全新的 complete home可以使用project transferpackages/cli/src/project-command.tsopenalice project transfer \ --from research \ --to-machine cloud-dev \ --to-project research-cloud \ --to-home /home/alice/.openalice-research \ --session-owner-policy keep-blocked \ --plan--plan先盘点报告可移植文件/字节总量、目标所需空闲空间、无密钥凭据类别、被排除的 Session/Runtime 文件以及精确 Session 的定时 Issuesapply 需要源项目已停止或显式传--stop-source且拒绝被占用的项目 key 或 Home可移植便携配置、活跃与已离开的 Workspace 仓库、Workspace id、生命周期记录、以及合法的 AI/行情数据/券商/Connector 凭据经 SSH 私有流传输并在接收端用新建的目标密钥重新封存源封存密钥绝不复制不迁移Guardian 状态、Runtime 负载、端口、Web auth 与 sessions、headless/native 会话状态、resume 身份、原生 Agent 登录与配置、未跟踪的 Session 档案顶层bin/与cli/目录、安装器锁/缓存、越界/绝对符号链接作为机器本地内容排除定时 Issues 的 owner 策略必须显式选择keep-blocked或new-then-resume两者之外的值直接抛错。传输使用带版本、有界的 SSH stdin 流packages/cli/src/project-transfer.ts 与project-transfer-ssh.ts/project-transfer-stream.ts接收端校验规范化路径、条目类型、符号链接包含关系、大小、校验和、可用空间与事务身份先写 owner 私有的兄弟 staging Home再原子发布并注册--without-credentials可剥离密钥字段后保留可移植 AI/行情配置。发布成功后会留下匹配的 receipt.openalice-transfer-receipt.json使注册重试具备幂等性。七、安全边界与持久化语义remote-quickstart.md给出了两条硬性安全底线remote-access.md用一整章 HTTP and Browser Security 支撑绝不直接发布远端 Runtime 端口Alice 与 Guardian 控制端点从不绑定公网 TCP绝不为远程访问禁用认证——OPENALICE_DISABLE_AUTH1永远不是一条远程访问指令。SSH 让远端 HTTP 请求从环回地址到达因此来自环回不足以构成授权。浏览器契约还包括UI、HTTP API 与 PTY WebSocket 共享隧道的本地环回 originAlice 只对三类调用者接受无登录本地行为无Origin的本地 CLI/server 调用、经过校验的环回浏览器 origin、精确的app://openalice打包 origin公开 web origin 不能因为隧道开着就继承 localhost 信任有状态请求与 WebSocket 升级保持 origin 校验。本地中继还会拒绝非精确 Host 与跨域变更请求、剥离浏览器转发头、按 Machine/Project 命名空间隔离后端 cookie其控制路由只接受已注册 key 而非裸 SSH 目的地或命令。持久数据属于远端 AliceProject home。如果那台机器是临时的ephemeral要把这个 home 挂载到持久存储上。remote-access.md的 Persistence Semantics 表格明确回答了断开后什么还活着事件Guardian 树PTY 进程近期终端状态Agent 会话浏览器/隧道断开存活存活仍在 PTY Runtime 中因进程存活而存活控制器转移存活存活仍在 PTY Runtime 中因进程存活而存活Guardian 下 Alice 子进程重启Guardian 存活视 PTY 归属路径而定实现相关依赖原生 Agent 进程/会话Guardian/Server 整体重启停止并重启不自动存活仅已持久化历史若显式支持仅经原生 Agent resume/provenance机器重启停止停止仅已持久化历史仅经原生 Agent resume/provenanceOpenAlice不会把 server detach 宣传成崩溃级终端持久化会话溯源与原生 CLI resume 由 docs/conversation-provenance.md 管理终端 scrollback 持久化是另一项独立隐私决策。八、架构不变式与交付阶段remote-access.md明确列出十条架构不变式核心几条对使用方最有感知拥有文件的那台机器同时拥有 Workspace、原生 Agent 进程、工具执行、provider 请求与交易边界Guardian 是一个OPENALICE_HOME的最终单写者与进程树权威新 CLI 命令不得发明并行锁UTA 保持可选——Server、远端 status、浏览器 Chat 与非交易工作在 lite/只读模式下必须可用Alice 只绑定127.0.0.1内部 MCP/CLI、UTA、Connector、控制与 PTY 端口永不为远程访问而公网化SSH 只负责认证与加密传输不静默授予安装/更新/启动/接管/停止的同意权断开浏览器、Electron 渲染器、CLI 或 SSH 隧道不会停止 detached Server--takeover是唯一替换另一已记录 Guardian owner 的命令行权限。交付被划分为 Stage 0–5Stage 0relay 内实现的 SSH 传输、Stage 1原生server run/start/status/stop生命周期、Stage 2受管 Bun 原生远端machine addplan/apply 编排、无 Node/Bun/源码/构建工具运行安装的 release、远端 Server 启动/复用、选择目标时建立 relay 的 SSH 环回隧道、断开后 Server 存活均已实现Stage 3终端传输优化按需构建Stage 5release 签名/可复现构建加固进行中。九、验证路径与验收当远程相关行为变更时remote-access.md的 Verification Route 要求使用隔离的OPENALICE_HOME根绝不在正常 home 上演练恢复CLI 负载变更后跑pnpm test:system:installerpackage.json生命周期/所有权/信号/锁/控制端点变更时跑 Guardian 恢复用例矩阵真实 localhost 路由验证 Workspace 终端与 loginless 环回 Origin 契约对一次性 SSH/Docker 主机跑pnpm test:system:remotenode scripts/remote-ssh-smoke.mjs覆盖 default-no、安装负载一致性、detach 持久化、重连与结构化停止。仓库里就有这份可重复的 Docker 验收装置scripts/remote-smoke/Dockerfile 的最终运行阶段是debian:bookworm-slim——只装bash ca-certificates curl git openssh-server python3没有 Node、没有 Bun、没有 Agent Runtimescripts/remote-smoke/entrypoint.sh 启动纯 pubkey 的 sshd 与本地安装源 HTTP 服务验证无 Node 主机上完成 native 下载、安装、多进程启动、AliceProject 传输与隧道环回这条受管远端主线。十、参考文档索引docs/remote-quickstart.md — 本文源头用户侧上手路径docs/remote-access.md — 远端 Runtime 架构主人指南生命周期、SSH 传输、控制契约、安全、验收矩阵docs/cli-installer.md — 本地 CLI 安装、渠道、激活与回滚docs/cli-supervisor.md — TUI/Supervisor 与 relay 的命令契约docs/local-runtime.md — 本地 Runtime 生命周期docs/managed-workspace-runtime.md — 受管 Workspace Runtime 与 Electron 分离模式docs/data-locations.md —machines.json等数据落盘位置与形态docs/conversation-provenance.md — 会话溯源与原生 Agent resumedocs/reference/herdr-remote-architecture.md — 设计参考对比研究资料核心实现入口openalice machinepackages/cli/src/machine-command.ts、Machine 档案packages/cli/src/machine-registry.ts、类型化清册packages/cli/src/machine-inventory.ts、受管远端编排packages/cli/src/remote.mjs、SSH 隧道packages/cli/src/ssh-connect.mjs、本地 Web 中继packages/cli/src/web-relay.ts、GUI 侧 plan/applypackages/cli/src/machine-management.ts与项目迁移packages/cli/src/project-transfer.ts。赞分享【免费下载链接】OpenAliceYour one-person Wall Street. An AI trading agent covering equities, crypto, commodities, forex, and macro — from research through position entry, ongoing management, to exit.项目地址https://gitcode.com/gh_mirrors/op/OpenAlice点击查看免费下载相关推荐快速上手firstmate远程副手在SSH可达主机上运行整支AI代理船队的完整指南快速上手firstmate远程副手在SSH可达主机上运行整支AI代理船队的完整指南 如果你正在用 firstmate 管理多个 AI 编程代理那么远Swift 实战在 macOS 上通过 ONNX Runtime 运行 Supertonic 本地多语言 TTS 推理Swift 实战在 macOS 上通过 ONNX Runtime 运行 Supertonic 本地多语言 TTS 推理 本篇技术指南以仓库中 swift/RE示例工程Webots 在 Linux 上通过 ssh -X 运行时的 OpenGL/GLX 渲染问题与远程仿真实践Webots 在 Linux 上通过 ssh X 运行时的 OpenGL/GLX 渲染问题与远程仿真实践 导读 Webots 作为基于 OpenGL 硬件加速的科研自动驾驶物理引擎上一篇Humanizer 流畅日期 API 详解On.May 与 5 月日期访问器下一篇AtlasOS 如何快速优化 Windows 性能与隐私新手上手完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。