Parallels Discord 往返技能

388652 78166 更新时间: 2026-07-15 13:43:01

Parallels Discord Roundtrip 是一个为 OpenClaw 个人AI助手设计的技能,允许用户在 Discord 和 Parallels 桌面环境之间实现无缝的消息往返和任务协调。该技能利用 Discord 的实时通信能力与 Parallels 的虚拟化环境交互,支持跨平台命令执行、文件同步和状态监控。适用于需要同时管理多个虚拟机和 Discord 协作场景的开发者和运维人员,通过 AI 代理自动处理消息路由和任务调度,显著提升工作效率。

安装
bunx skills add https://github.com/openclaw/openclaw --skill parallels-discord-roundtrip
技能详情 readonly

一、技能概述

该技能用于 macOS Parallels 烟雾测试场景,核心目标是验证 OpenClaw 在真实 macOS 虚拟机中能否通过 Discord 通道完成双向消息收发。它模拟了从零开始的完整部署流程:在干净的 macOS 快照上安装 OpenClaw,配置 Discord Bot 凭证,然后执行一个闭环的“发送-接收-回复-读取”测试。

核心原则:测试过程中不将 Discord token 或配置文件检入仓库,所有凭证在运行时动态注入,测试完成后自动清理临时消息并关闭虚拟机。


二、核心功能

1. 端到端闭环测试流程

技能执行一个完整的四步闭环验证:

步骤 动作 验证点
① 访客发送 macOS 虚拟机内的 OpenClaw 向 Discord 频道发送一条消息 消息成功发出
② 主机接收 宿主机(测试运行者)在 Discord 上看到该消息 消息出现在频道历史中
③ 主机回复 宿主机在同一个 Discord 频道发布一条新消息 回复成功发送
④ 访客读取 虚拟机内的 OpenClaw 通过 message read 读取到该回复 回复出现在读取输出中

通过标准:summary 报告中 discord=pass,且访客发出的 nonce 出现在频道历史中,主机发出的回复出现在 openclaw message read 输出中。

2. 运行命令

首选运行方式:

export OPENCLAW_PARALLELS_DISCORD_TOKEN="$( ssh peters-mac-studio-1 'jq -r ".channels.discord.token" ~/.openclaw/openclaw.json' | tr -d '\n' )"
pnpm test:parallels:macos \
  --discord-token-env OPENCLAW_PARALLELS_DISCORD_TOKEN \
  --discord-guild-id 1456350064065904867 \
  --discord-channel-id 1456744319972282449 \
  --json

3. 快照管理

  • 目标快照:最接近 macOS 26.3.1 fresh 的快照

  • 快照解析器:优先匹配 *-poweroff* 克隆,以便复用仅磁盘恢复快照

  • CPU 不兼容处理:如果恢复日志显示 PET_QUESTION_SNAPSHOT_STATE_INCOMPATIBLE_CPU,丢弃挂起状态,创建 *-poweroff* 替换快照并重新运行

  • 自动启动:脚本自动启动恢复的关机快照

4. 配置与命令规范

  • Discord 配置:在访客内部配置,无检入 token/config

  • 消息子命令:使用 openclaw wrapper 执行 message send/readnode openclaw.mjs message ... 无法以相同方式暴露懒加载消息子命令

  • JSON 配置:将 channels.discord.guilds 写为单个 JSON 对象(--strict-json),而非点分隔的 config set 路径——数字 snowflake 会被视为数组索引

  • 命令执行:避免使用 prlctl enter/expect 执行长 Discord 设置脚本(会换行/损坏长命令),改用 prlctl exec --current-user /bin/sh -lc ...

5. 测试后清理

  • 消息清理:测试结束时删除临时 Discord 烟雾消息

  • 虚拟机停机:成功的 Discord 往返测试后,关闭 macOS 访客(prlctl stop "macOS Tahoe");手动 ad-hoc Discord 检查后也需手动停止 VM

  • ⚠️ 重要:不要将配置了 Discord 的 VM 保持运行——它会持续在 #maintainer 中读取/发帖,在测试完成后仍会向 Discord 发送垃圾消息

6. 故障排查

  • 日志位置/tmp/openclaw-parallels-smoke.*

  • 往返抖动排查:先检查运行目录中的 fresh.discord-roundtrip.log 和 discord-last-readback.json

  • JSON 输出:传递 --json 获取机器摘要

7. 并行与负载注意

  • 3-OS 全面扫描:共享构建锁在并行中是安全的,但快照恢复仍是 Parallels 瓶颈

  • 主机高负载时:如果主机已处于高负载,优先序列化 Windows/Linux 恢复密集型 rerun


三、主要用途

  1. macOS Parallels 烟雾测试
    验证 OpenClaw 在真实 macOS 虚拟机中能否通过 Discord 通道完成端到端双向消息收发。

  2. 发布前 macOS 兼容性验证
    在 Beta/Stable 发布前,确保 Discord 通道在 macOS 环境下正常工作。

  3. Discord 通道回归测试
    当 Discord 相关代码发生变更时,通过此闭环测试验证双向通信未被破坏。

  4. 快照恢复与自动化验证
    验证 Parallels 快照恢复流程和自动化配置脚本在 macOS 环境中的可靠性。

  5. CI/CD 集成
    作为发布流水线的一部分,自动执行 macOS Discord 通道的端到端验证。


四、重要原则

  1. 凭证不检入:Discord token 在运行时通过环境变量注入,不写入配置文件或仓库

  2. 测试后必须关机:成功证明后自动关闭 VM,防止已配置 Discord 的 VM 持续在频道中发帖

  3. 避免 prlctl enter:长命令会因换行损坏,使用 prlctl exec 替代

  4. JSON 配置注意:snowflake ID 在点分隔路径中会被视为数组索引,需使用 --strict-json 单对象写入

  5. 快照 CPU 不兼容时重建:遇到 PET_QUESTION_SNAPSHOT_STATE_INCOMPATIBLE_CPU 时丢弃挂起状态并创建 poweroff 快照

  6. 主机高负载时序列化:快照恢复是 Parallels 瓶颈,避免并行恢复密集型任务


总结:Parallels Discord Roundtrip 是 OpenClaw 项目中用于验证 macOS Parallels 虚拟机 Discord 通道端到端双向通信的专用烟雾测试技能。它通过“访客发送 → 主机接收 → 主机回复 → 访客读取”的闭环流程,以自动化方式证明 Discord 通道在真实 macOS 环境中的可用性。该技能适用于 OpenClaw 维护者在发布前 macOS 兼容性验证、Discord 通道回归测试和 Parallels 自动化测试流程的场景。