AI Automation

>> 打破沙盒:OpenClaw 串接 AppleScript,AI 智能體直控 Mac 桌面

OpenClaw AppleScript Mac 自動化爲純文本代理網關提供 macOS 桌面上的物理實體 — shell 工具、橋接腳本和一個登錄會話中的本機應用程序控制。

OpenClaw 聯動 AppleScript Mac 自動化橋接 Apple Silicon Mac mini
披露:SlimVps運營雲Mac租賃;此guide 對於OpenClaw、AppleScript 和Automator 與供應商無關。第三方代理軟件和macOS 權限是您的責任。

介紹

大多數球隊都在跑OpenClaw作爲純文本operator:網關通道、HTTP 工具和從不接觸圖形會話的 shell 片段。這就留下了一個缺口——本機 Mac 應用程序(Keynote、郵件、音樂、System Settings)位於 Apple 的 GUI 自動化層後面,而不是在無頭 SSH 管道內。

OpenClaw AppleScript Mac 自動化故意縮小這一差距橋樑圖案: OpenClaw 的本地人外殼工具調用一個小型 bash 入口點,該入口點會調度AppleScript (osascript) 或者Automator工作流程另存爲.workflow/ 應用程序包。智能體仍然用自然語言進行計劃; macOS 仍然在登錄的用戶會話中執行 UI 操作。

從安全意義上來說,這並不是“破壞”蘋果的沙箱——你承認自動化無障礙明確的權限。您正在給OpenClaw肉體在 Mac 桌面上:打開 Keynote、導出 PDF、微調音量、調暗顯示屏 — 同時在 Telegram 或 Slack 上繼續聊天回覆。

將這個guide 與OpenClaw + Ollama 在雲端 Mac mini當您需要本地模型進行規劃和 macOS 自動化執行時。完全的OpenClaw 輕部署首先,在啓用 GUI 工具之前,網關運行狀況、launchd 和磁盤水印保持穩定。

根據Apple 的 macOS 自動化文檔、AppleScript 和Automator 是腳本和可編寫腳本的應用程序之間受支持的橋樑。

架構:貝殼橋 → AppleScript / Automator

數據流

Channel message → OpenClaw planner → shell tool "mac_desktop" → ~/bin/openclaw-mac-bridge.sh (JSON args) → osascript (inline .scpt) OR open MyWorkflow.app → Target app (Keynote, System Events, …) → stdout JSON { "ok": true, "artifact": "/path/file.pdf" }

成分表

路徑/工件責任
規劃師政策~/.openclaw/skills/mac-desktop/SKILL.md何時調用桌面操作;禁止的行爲
工具註冊~/.openclaw/config/tools/mac_desktop.jsonshell命令+超時+env
橋接腳本~/bin/openclaw-mac-bridge.sh驗證JSON、調度操作、日誌
AppleScript圖書館~/Library/Application Support/OpenClaw/scripts/*.applescript可重複使用Keynote/音量/亮度
Automator 導出~/Library/Application Support/OpenClaw/workflows/ExportKeynotePDF.workflow複雜的多應用序列
審覈日誌~/.openclaw/logs/mac-desktop.log操作,duration_ms,退出代碼

會話規則:GUI 自動化需要已登錄macOS用戶使用圖形會話(本地控制台或雲 Mac 上的屏幕共享)。僅SSH 沒有GUI 的會話無法驅動Keynote。

爲什麼不是純shell呢?

任務curl/ 命令行界面AppleScript / Automator
將Keynote導出至PDF沒有穩定的公共 CLIexportKeynote 字典中的命令
設置顯示亮度沒有便攜式單襯管tell application "System Events"
批准 Finder 對話框不可能無頭具有輔助功能的 UI 腳本

八步操作手冊

步驟 1 — 基線網關和 GUI 會話

ssh user@your-mac openclaw --version curl -s http://127.0.0.1:11430/health whoami ls /dev/console # should exist when GUI session active

通過條件:網關HTTP 200, 開機音量≥25GB免費(與72小時護欄).

第 2 步 — 創建橋接目錄

mkdir -p ~/bin mkdir -p "$HOME/Library/Application Support/OpenClaw/scripts" mkdir -p "$HOME/Library/Application Support/OpenClaw/workflows" mkdir -p ~/.openclaw/logs chmod 700 ~/bin/openclaw-mac-bridge.sh 2>/dev/null || true

第 3 步 — 安裝橋接腳本

節省~/bin/openclaw-mac-bridge.sh:

#!/usr/bin/env bash set -euo pipefail LOG="$HOME/.openclaw/logs/mac-desktop.log" ACTION="${1:-}" ARG_JSON="${2:-{}}" ts() { date -u +"%Y-%m-%dT%H:%M:%SZ"; } case "$ACTION" in keynote_export_pdf) DECK="${ARG_JSON:-}" OUT="${3:-$HOME/Desktop/openclaw-export.pdf}" osascript "$HOME/Library/Application Support/OpenClaw/scripts/keynote_export_pdf.applescript" "$DECK" "$OUT" echo "{\"ok\":true,\"artifact\":\"$OUT\"}" ;; set_volume) LEVEL="${ARG_JSON:-50}" osascript -e "set volume output volume $LEVEL" echo "{\"ok\":true,\"volume\":$LEVEL}" ;; set_brightness) LEVEL="${ARG_JSON:-0.5}" osascript "$HOME/Library/Application Support/OpenClaw/scripts/set_brightness.applescript" "$LEVEL" echo "{\"ok\":true,\"brightness\":$LEVEL}" ;; run_automator) WF="${ARG_JSON:-}" open -a "$WF" echo "{\"ok\":true,\"workflow\":\"$WF\"}" ;; *) echo "{\"ok\":false,\"error\":\"unknown_action\"}" >&2 exit 2 ;; esac >>"$LOG" 2>&1

chmod 750 ~/bin/openclaw-mac-bridge.sh

第 4 步 — 添加 AppleScript 助手

keynote_export_pdf.applescript:

on run argv set deckPath to item 1 of argv set outPath to item 2 of argv tell application "Keynote" activate set docRef to open POSIX file deckPath export docRef to POSIX file outPath as PDF close docRef saving no end tell end run

set_brightness.applescript(使用System Events;需要輔助功能):

on run argv set level to item 1 of argv as number tell application "System Events" tell appearance preferences set brightness to level end tell end tell end run

手動煙霧測試:

osascript "$HOME/Library/Application Support/OpenClaw/scripts/set_volume.applescript" 40 # or inline: osascript -e 'set volume output volume 40'

第 5 步 — 構建 Automator 工作流程(可選)

  1. 打開Automator→ 新快速行動或者應用.
  2. 添加運行AppleScript→ 粘貼Keynote 導出步驟。
  3. 另存爲ExportKeynotePDF.workflow在下面~/Library/Application Support/OpenClaw/workflows/.
  4. 測試:open -a "$HOME/Library/Application Support/OpenClaw/workflows/ExportKeynotePDF.workflow"

在網橋中註冊爲run_automator當序列超過 AppleScript 約 30 行時。

第 6 步 — 註冊 OpenClaw shell 工具

添加下~/.openclaw/config/tools/(確切的架構因構建而異):

{ "name": "mac_desktop", "description": "Control native Mac apps via AppleScript/Automator. Actions: keynote_export_pdf, set_volume, set_brightness, run_automator. Args: action string, JSON payload, optional third path.", "type": "shell", "command": "/Users/OPERATOR/bin/openclaw-mac-bridge.sh", "timeout_seconds": 120, "allowed_actions": ["keynote_export_pdf", "set_volume", "set_brightness", "run_automator"] }

代替OPERATOR使用macOS 帳戶運行網關。保留工具在實驗室禁用直到步驟 7 通過。

第 7 步 — 創建 SKILL.md 政策

創造~/.openclaw/skills/mac-desktop/SKILL.md:

# Mac Desktop Automation (AppleScript) ## When to use - User asks to export slides, adjust volume/brightness, or open a native app. - Channel message includes `/deck` or `export pdf` with a file path on the Mac. ## Never - Delete files outside ~/OpenClawExports without human confirmation. - Change System Settings security/privacy panes. - Run Automator workflows not listed in allowed_actions. ## Steps 1. Confirm deck path exists: `test -f path`. 2. Call mac_desktop with keynote_export_pdf. 3. Reply with artifact path and file size from `stat -f%z`.

工具+技能更改後重新啓動網關。

步驟 8 — 用護欄引導煙霧

  1. 發送測試消息:“將音量設置爲 35%。”
  2. 發送:“導出/Users/you/Decks/Q2.key到PDF。”
  3. 覈實~/.openclaw/logs/mac-desktop.log節目出口0和 JSON 標準輸出。

使能夠僅消息傳遞通道 - 請參閱網關通道。併發桌面操作上限1在 16GB 主機上以避免 Keynote + 嚴重的模型爭用。

故障排除

錯誤:Not authorized to send Apple events to Keynote

圖案: osascript出口1,日誌包含Not authorized.

使固定:在 Mac 上 →System Settings → 隱私和隱私安全 → 自動化→ 允許osascript(或終端/iTerm)進行控制Keynote。重新運行步驟 4 冒煙測試。對於雲 Mac,每個快照映像執行一次。

錯誤:GUI scripting is not allowed

圖案:亮度腳本失敗; System Events錯誤-25211.

使固定:授予無障礙到終端/ssh 會話父級Apple 的輔助功能 guide。更喜歡通過降低亮度brightness僅在互動時間內 - 在 SKILL.md 中記錄政策。

運營影響

監視器臨界點行動
mac-desktop.log尺寸>200MB 256GB每週輪換
橋接延遲>90s分割Automator工作流程;預熱Keynote
自動化失敗率>3/小時禁用工具;警報人類operator
GUI 會話斷開連接暫停頻道;重新連接控制台

使用 Ollama 序列化桌面作業:不運行14B本地模型+Keynote導出同時在16GB統一記憶。

常問問題

OpenClaw 可以在沒有 AppleScript 的情況下控制 Mac 應用程序嗎?
只是部分。 Shell 工具處理 CLI 二進制文件;原生GUI應用程序需要 AppleScript、Automator 或快捷方式。橋接模式保持 OpenClaw 的規劃器不變,而 macOS 執行 UI 工作。

AppleScript 是否單獨對 SSH 起作用?
不。osascript目標是登錄的圖形會話。使用控制台訪問或遠程 Mac 上的屏幕共享,並在同一用戶下運行網關。

如何從OpenClaw觸發Automator?
登記run_automator在橋接腳本中並調用open -a /path/to/Workflow.app。通過工作流在第一個操作中讀取的 plist 或 sidecar JSON 文件傳遞​​參數。

這對於生產代理來說安全嗎?
將桌面工具視爲高特權。限制allowed_actions,記錄每次調用,並要求人類批准破壞性路徑。跟隨OpenClaw安全用於本地主機網關綁定。

這對Apple Silicon Mac mini M4 有效嗎?
是的。 AppleScript 和Automator 在macOS 14+ 上是架構中立的。來自 Keynote + OpenClaw + Ollama 的 RAM 壓力是實際的限制器 — 在 16GB 上一次保留一項繁重的工作。

SKILL.md 與 AppleScript 有何關係?
SKILL.md 教什麼時候規劃者調用mac_desktop; AppleScript/Automator 定義如何macOS 執行該操作。每當添加新的工作流程文件時更新SKILL.md。

結論

OpenClaw AppleScript Mac 自動化將文本網關變成桌面operator:shell工具→橋接腳本→osascript/ Automator → 本機應用程序。這種模式的競爭程度較低,因爲大多數教程都停留在聊天回覆上。

開始於音量 + Keynote PDF冒煙測試,每臺機器強化一次權限,然後在 SKILL.md 中連接通道意圖。讓促銷遠離熱門路徑——這是一座工程橋樑,而不是租賃推銷。

// SYS.CTA

需要 GUI 工作階段做桌面自動化?

具圖形工作階段的雲 Mac 主機可同時執行 OpenClaw 閘道與 AppleScript 橋接。