139 KiB
AnyBot 功能說明書(完整版)
AnyBot 是一個桌面聊天 App,介面和運作方式照 Grok Bot 重做。最大的不同是:每個 Bot 都可以換 AI 供應商,可以是 xAI Grok、OpenAI、Claude、Google Gemini、OpenRouter、Ollama(本機),或任何 OpenAI 相容的服務。
這份文件列出 App 目前所有的功能和細節:
- 「」裡的字是畫面上或 Bot 收到的原文。
- 數字是程式實際使用的值。
- 標「估計值」的數字是我自己定的,因為原版裡找不到那個數字。
目錄
- 視窗與版面
- 左側 Bot 清單(側邊欄)
- Bot 選單(右鍵/「⋯」)
- 聊天頂部
- 聊天內容
- 輸入框
- 允許請求(卡片與彈出視窗)
- 直接操作模式
- Bot 設定/建立 Bot
- 設定視窗(一般/AI 供應商/電腦/自動審核)
- AI 供應商
- 回覆的串流、思考與錯誤
- 一個回合怎麼運作(步驟、插話、喚醒、結束)
- 長對話整理成摘要
- 自動審核
- 許可關卡的完整順序
- 三種電腦
- 檔案與指令工具
- 安全規則:哪些直接做、先問、拒絕
- 背景指令
- 網頁工具
- AnyBot 自己的瀏覽器與設定檔
- 讀取你自己的瀏覽器
- 操作螢幕(滑鼠、鍵盤、截圖、接管、示範教學)
- 例行任務
- Bot 可以直接操作 App 的功能
- 通知
- 版本、更新與重新啟動
- 管理員鎖定
- 存下來的資料
- 第一次啟動的 Bot
- 外觀:頭像、顏色、主題、字型
- Bot 收到的系統指示
- 鍵盤快速鍵
- 示範/截圖模式
- 手機、帳號、雲端主機
- 字型、語言、設定分類、右側面板
- 還沒做的功能
1. 視窗與版面
- 視窗
- 標題:「AnyBot」
- 開啟時大小:1180 × 780
- 最小寬度:664(側邊欄 240 加聊天區 424)
- 最小高度:480
- 版面:左邊是 Bot 清單(側邊欄),右邊是目前選中 Bot 的聊天。
- 側邊欄寬度
- 預設 280 px,拖動時可在 240 到 400 px 之間調整。
- 拖到不足 210 px,會收成 88 px 寬的「頭像直欄」。
- 收起後要拖到超過 220 px 才會再展開。中間留這段緩衝,是為了避免在邊界上一直切換。
- 怎麼拖:滑鼠移到側邊欄右緣左右 3 px 內,游標會變成左右箭頭;滑過或拖動時,右緣會出現 2 px 的分隔線。
- 聊天內容
- 最寬 720 px,置中,兩側合計至少留 48 px。
- 聊天區最小寬度 424 px。
- 「設定」和「Bot 設定」視窗
- 視窗上下合計保留 80 px,不會超出畫面(估計值)。
- 內容太長時可以在視窗裡捲動。
- 自動儲存
- 有變更就存檔。
- Bot 回覆進行中時,最多每 2 秒存一次。
- 關閉 App 時,會先停掉所有進行中的回覆和背景指令,再存檔。
- 畫面更新頻率
- 閒置時每 15 秒更新一次,讓例行任務的時鐘繼續走。
- 回覆進行中或正在抓模型清單時,每 100 毫秒更新一次。
2. 左側 Bot 清單(側邊欄)
展開時
- 頂列
- 「◧」:提示「收合側邊欄」。
- 粗體「AnyBot」,15 px。
- 「+」:提示「新 Bot」。
- 搜尋
- 灰底圓角框,左邊有「🔍」,提示文字「搜尋 Bot」。
- 比對 Bot 的名稱和描述,不分大小寫。
- 沒有符合的 Bot 時顯示「沒有相符的 Bot」。
- 分組(小標題 12 px 灰字,空的組不顯示)
- 「主要 Bot」:只有一個。
- 「已釘選的 Bot」
- 「Bot」:其餘全部。
- 每一列 Bot(高 46 px,圓角 10 px)
- 選中時有底色,滑過時有淡底色。
- 左邊是 28 px 頭像。
- 第一行:名稱,14 px。
- 第二行(12 px)依狀態顯示:
- Bot 工作中且在等你允許:「需要你允許」,強調色。
- Bot 工作中:「正在輸入…」
- 閒置時:最後一則訊息的第一行。沒有訊息時顯示「供應商簡稱·模型」,例如「Grok·grok-4」。
- 名稱或第二行太長時,在右側狀態點前截斷,結尾加「…」。
- 右側狀態點:
- 等你允許:強調色實心點(半徑 5.5 px)外加一圈淡色光環(半徑 8 px)。
- 有未讀訊息:強調色小點(半徑 4 px)。
- 工作中:灰色小點(半徑 4 px)。
- 點一下會切到這個 Bot,清除未讀,並把聊天捲到最底。
- 按右鍵會打開 Bot 選單(第 3 節)。
- 底部
- 「⚙ 設定」按鈕,高 30 px。
- 最下面是「版本 YYYY-MM-DD HH:MM」,10.5 px 灰字。版本就是這份程式建好的時間;不知道時顯示「?」。
- 有新版本時多一顆強調色按鈕「⬆ 重新啟動以更新(新版本時間)」,按下立刻換成新版。
收合成直欄時
- 寬 88 px。
- 最上面依序是「◨」(提示「展開側邊欄」)和「+」(提示「新 Bot」)。
- 頭像依「主要 Bot、已釘選、其他」的順序排列:
- 每格 56×48 px,頭像 32 px。
- 選中或滑過時有底色,圓角 10 px。
- 右上角小點:有未讀是強調色,工作中是灰色。
- 滑過會顯示名稱;按右鍵會打開同一份 Bot 選單。
- 最下面是「⚙」(提示「設定」)。
- 收合或展開的狀態會被記住。
3. Bot 選單(右鍵選單和聊天頂部的「⋯」共用)
- 「編輯 Bot…」
- 「重新啟動這個 Bot」
- 提示文字:「卡住時用:停止它目前的工作和背景指令,聊天記錄和檔案都會保留」。
- 會停掉這個 Bot 目前的工作、待允許的請求和背景指令,並把做到一半的回覆標成「中斷」,之後可以按「重新產生」重試。
- 完成後顯示「已重新啟動「名稱」。」。有停掉背景指令時改為「已重新啟動「名稱」,也停止了 N 個背景指令。」
- 「釘選到側邊欄」或「取消釘選」
- 「設為主要 Bot」:只有不是主要 Bot 的才會出現。
- 「清除聊天記錄」:先停止工作再清空,不會跳確認。
- 分隔線
- 「刪除 Bot」:紅字,會先跳確認視窗。
- 標題「刪除 Bot?」,內文「這會刪除「名稱」和它的聊天記錄。此操作無法復原。」
- 按鈕「取消」和紅底「刪除」。
- 刪除時會先停掉它的工作。
- 刪到一個都不剩時,會自動建一個全新的初始 Bot。
- 刪掉的是主要 Bot 或目前選中的 Bot 時,改成清單第一個 Bot。
4. 聊天頂部
- 左邊
- 30 px 頭像,提示「編輯 Bot 頭像」,點了打開 Bot 設定。
- 名稱,粗體 15 px。
- 描述,12 px 灰字。沒有描述時顯示「新增描述…」。
- 右邊(從右到左)
- 「⋯」:打開 Bot 選單。
- 「Bot 設定」
- 「例行任務」:有例行任務時加上數量,例如「例行任務 2」。
- 依 Bot 狀態多一個標示:
- 在等你允許:強調色膠囊按鈕「● 需要你允許」,提示「打開請求視窗」,按下會重新叫出彈出視窗。
- 只是在工作:灰字「工作中…」。
- 標題列底部有 1 px 分隔線。
- 沒有選任何 Bot 時,畫面中間顯示「未選取 Bot」。
5. 聊天內容
還沒有任何訊息時
- 置中顯示:
- 72 px 大頭像。
- 名稱,22 px 粗體。
- 描述。
- 「使用 供應商·模型」,12 px 灰字。
- 有打開電腦工具時,多一行:「可以在「工作資料夾」裡查看、修改檔案和執行指令,動手前會先問你」。
- 這家供應商需要金鑰卻還沒設定時,顯示按鈕「設定 (供應商) 的 API 金鑰」,按下直接打開「設定 → AI 供應商」,並選好這家。
你的訊息
- 靠右的氣泡,圓角 18 px,左右內距 14 px,最寬佔可用寬度的 75%。只有一行時約高 36 px。
- 文字 15 px,行高 22 px。
- 氣泡顏色:
- 「強調色」選「Bot 顏色」時,用那個 Bot 的顏色配白字。
- 選「黑色」,或 Bot 本身就是黑色時,用黑色氣泡。
- 最後一則是你的訊息、而且 Bot 沒有在回覆時(例如 App 在回覆前被關掉),下方會出現小字「還沒有回覆」和小按鈕「重新傳送」。
Bot 的回覆
- 左邊 24 px 小頭像,內容在淺灰氣泡裡,圓角 18 px。
- 支援簡單排版:
- 標題(# / ## / ###):17 px 粗體,行高 24 px。
- 項目符號(- 或 *):依縮排往內縮。
- 整行粗體(…)。
- 程式碼區塊(```):灰底,圓角 8 px,等寬字 13 px,行高 18 px。
- 其他行內的 ** 和 ` 符號會被拿掉。
- 出錯時用紅字,加很淡的紅底。
思考過程
- 還沒出現第一個字時,顯示斜體灰字「思考中…」。
- 有思考內容時,變成可以展開的「思考過程」,預設收起,13 px。
- 正在重試時,改顯示重試的狀態文字(第 12 節)。
工具步驟(每一步一行)
- 開頭的狀態圖示:
- 「●」等你允許,強調色。
- 「…」執行中。
- 「✓」完成。
- 「–」被拒絕或已停止。
- 「×」失敗,紅色。
- 接著是工具名稱(13 px),然後是等寬灰字的動作說明(12 px,最多 90 字)。
- 有指定電腦時,說明後面加「 ·電腦名稱」。
工具結果
- 緊接在那一步下面,縮排 32 px。
- 標題是「結果:第一行(最多 60 字)」,預設收起。
- 展開後是灰底等寬字,最多顯示 6,000 字。
摘要
- 舊對話被整理過時,會出現有框、可以展開的「📝 較早的對話已整理成摘要」。
回覆下方的小按鈕
- 只出現在 Bot 的最終回覆下面,不會夾在步驟中間。
- 「複製」:複製回覆文字。
- 「重新產生」:只有最後一則有。會刪掉最後一則你的訊息之後的內容,再重新回答。
- 小字「供應商·模型」,11 px,表示這則是哪個模型寫的。
特殊文字
- 「(已停止)」:按停止時,回覆還完全沒有內容。
- 「(沒有回應內容)」:回覆結束了,但沒有文字也沒有任何步驟。
- 「(這次的回應被中斷了,可能是 App 關閉或重新啟動。按「重新產生」再試一次。)」:App 關閉時還在回覆,下次打開時會修成這句。
卡住偵測
- 「模型未能及時開始回應。請重試。」:每一步開始後 120 秒內沒有任何回應(估計值)。
- 「回應中斷:模型超過 35 秒沒有送出任何內容。」:已經開始輸出後,又安靜超過 35 秒。
- 等你允許或工具在執行時,不算卡住。
自動捲動
- 送出訊息、切換 Bot、按「前往聊天」時,會捲到最底並停在底部。
6. 輸入框
外觀
- 外框圓角 20 px;正在輸入時框線變深。
- 提示文字「傳訊息給 (Bot 名稱)」。
- 從一行開始,跟著內容長高,最高 160 px,再多就在框內捲動。
- 每個 Bot 各自保留打到一半的草稿。
左下:模型選擇器
- 顯示「供應商簡稱·模型 ▾」。供應商簡稱有:Grok、OpenAI、Claude、Gemini、OpenRouter、Ollama、自訂。
- 打開後:
- 最上面是說明「選擇這個 Bot 用來思考的模型」。
- 每家供應商一個子選單。目前用的那家前面有「✓ 」;沒有金鑰的標「(未設定金鑰)」。
- 子選單列出模型:已經抓過清單就用抓到的,沒有就用內建的起始清單。預設模型排第一。
- 最後是「其他模型…」:換成這家的預設模型,並打開 Bot 設定讓你自己輸入。
右下:送出/停止按鈕(32 px 圓形)
- 有字時:「↑」,提示「傳送(Enter)」。
- Bot 工作中、輸入框是空的:「■」,提示「停止」。
- Bot 工作中、輸入框有字:「↑」,提示「補充給正在進行的工作(Enter)」。
- 沒字又沒在工作:變灰,按不下去。
按鍵
- Enter 送出,Shift+Enter 換行。
- 用注音、拼音等輸入法選字時按 Enter,不會誤送出。
- 送出後游標留在輸入框。
Bot 工作中繼續打字(插話)
- 新訊息不會另開一輪,而是插進正在進行的工作,Bot 下一步就會看到。
- 這一輪剛好結束、來不及插入時,會自動變成下一輪。
- 按停止時,還沒被讀到的補充會被丟掉。
輸入框下方的小字(11 px 置中,擇一顯示)
- 有系統提示時:強調色提示,加「知道了」可以關掉。
- 閒置時:「Enter 傳送 · Shift+Enter 換行」。
- 工作中:「工作中也可以繼續打字,Bot 會在下一步看到 · Shift+Enter 換行」。
- 有排入的補充時:「已排入「最新一則前 30 字」,Bot 會在下一步看到」。多於一則時:「已排入「…」 等 N 則,Bot 會在下一步看到」。
7. 允許請求(聊天裡的卡片和彈出視窗內容相同)
標題(依情況)
- 「允許 (Bot) 使用電腦工具嗎?」:這個 Bot 的電腦工具還沒打開。
- 「允許 (Bot) 在你的電腦上執行任務嗎?」:「在這台電腦上執行」還沒打開。
- 「允許 (Bot) (動作)嗎?」或「允許 (Bot) 在 (電腦) 上(動作)嗎?」:一般動作。
說明文字
- 電腦工具還沒打開:「這個 Bot 的電腦工具還沒打開。它想做的事:」
- 「在這台電腦上執行」還沒打開:「「在這台電腦上執行」還沒打開,Bot 平常只在它自己的電腦上做事。它想在你的電腦上:」
- 接著是灰底等寬字框,顯示細節,例如要執行的指令。
- 有指定電腦時加一行「在:(電腦名稱)」。
按鈕
- 主要按鈕:「允許這一次」;一般動作則是「允許」。
- 一律允許的按鈕:
- 電腦工具還沒打開時:「一律允許這個 Bot 使用電腦」,會打開這個 Bot 的電腦工具。
- 你的電腦還沒允許時:「一律允許(打開「在這台電腦上執行」)」。
- 一般動作:「一律允許(類別)」,會記到這個 Bot 的「一律允許」清單。類別有:
- 「修改檔案」
- 「讀取瀏覽器分頁」
- 「讀取工作資料夾以外」
- 指令類直接顯示指令,例如「npm install」
- 沒有可以記住的類別時,不顯示這顆按鈕。
- 「拒絕」。
- 「⚡ 全部允許,之後直接操作(像 Grok Bot 一樣)」
- 只在「直接操作」還沒開、而且管理員沒鎖住時出現。
- 提示文字:「打開「直接操作」:Bot 可以直接使用這台電腦和瀏覽器,不再一個個問你。危險指令、密碼檔和你的「一律詢問」規則仍會擋下來。可在設定 → 電腦關掉。」
- 按下會允許這一筆,並打開直接操作(第 8 節)。
聊天裡的卡片
- 縮排 32 px,2 px 強調色外框,圓角 14 px。
彈出視窗
- 會自己跳出來,背後整個畫面變暗。淺色主題暗 70,深色主題暗 120(透明度 0–255)。
- 視窗寬 440 px,置中稍微偏上 20 px,有 2 px 強調色外框、圓角 16 px 和陰影。
- 頂部:28 px 頭像加「(Bot) 正在等你決定」。同時有多筆時再加「(還有 N 個請求)」;目前畫面上的 Bot 優先顯示。
- 底部:
- 「前往聊天」:只有請求來自別的 Bot 時才有,按下會切過去。
- 「稍後再決定」:提示「先關掉這個視窗;聊天裡的卡片還在,Bot 會一直等你」。
- 有新請求時,Dock 圖示會跳動。你不在 App 前面而且通知有開時,還會跳 macOS 通知,標題「(Bot) 需要你允許」。
8. 直接操作模式
一個開關,讓 Bot 像 Grok Bot 那樣直接做事,不再一個個問。
打開時會一次做完
- 打開「在這台電腦上執行」。
- 打開自動審核。
- 打開所有 Bot 的電腦工具。
- 「一律詢問」規則是空的時候,填入三條預設規則:
- 「刪除檔案或資料夾」
- 「付款、購買或轉帳」
- 「用我的帳號發文、留言,或傳訊息給別人」
- 正在進行的工作從下一步開始就不再問。
- 其他 Bot 正在等的「可以用電腦嗎」類請求會自動允許。一般動作的請求仍然要你按。
打開後仍然會擋下或詢問
- 內建安全檢查擋下的事一律不做,例如危險指令和密碼檔。
- 符合你的「一律詢問」規則時會停下來問,理由後面加「(符合你的「一律詢問」規則:…)」。
- 其他自動允許的動作,結果前面會標「(直接操作模式:已自動允許)」。
提示文字
- 打開時:「已打開「直接操作」:Bot 會直接做事,只有危險操作和你的「一律詢問」規則會停下來問你。」
- 被管理員鎖住時:「「直接操作」已由管理員關閉,沒辦法打開。」
9. Bot 設定/建立 Bot
標題與開法
- 新 Bot 的標題是「建立 Bot」,既有 Bot 是「Bot 設定」。寬 460 px,置中。
- 開法:
- 側邊欄「+」
- ⌘N
- 選單「編輯 Bot…」
- 頂部「Bot 設定」按鈕
- 點頂部頭像
新 Bot 的預設值
- 名稱「新 Bot」。
- 形狀和顏色依編號輪流分配。
- 供應商和模型跟目前選中的 Bot 一樣;沒有時用 xAI Grok 的建議模型。
- 電腦工具關閉,模型可讀長度 128K。
欄位
- 左上角 56 px 頭像預覽。
- 「Bot 名稱」。
- 「Bot 描述」:提示「它負責做什麼?」。
- 「頭像」:12 種形狀排成一列,每個 28 px,沒選的顯示灰色,滑過顯示名稱(第 32 節)。
- 顏色:10 個 24 px 圓點,選中的有藍色外圈。
- 「AI 供應商與模型」
- 供應商下拉選單,換供應商時模型會自動換成那家的預設模型。
- 模型名稱輸入框,提示「模型名稱」。
- 旁邊的「選擇」下拉選單,可以從清單挑模型。
- 沒有金鑰時顯示紅字:「⚠ 還沒有設定 (供應商) 的 API 金鑰(在「設定 → AI 供應商」)」。
- 「電腦操作」
- 勾選框「讓這個 Bot 查看、修改檔案和執行指令」。勾選後才會出現下面這些欄位。
- 「預設電腦」下拉選單:Bot 的電腦、你的電腦、各台 SSH 電腦。
- 你的電腦還沒在設定裡允許時,顯示「你的電腦(要先在設定裡允許)」。
- 旁邊小字:「聊天時說「在我的 Mac 上」就會換」。
- 「在你的電腦上從 [資料夾] 開始」:提示「例如 ~/Documents/專案」。空白就是家目錄。
- 說明文字:「在 Bot 的電腦上可以自由做事(看不到你的檔案);在你的電腦上,改檔案和會改變東西的指令會先問你。密碼和金鑰檔一律不碰。」
- 「已設定「一律允許」:」:每條規則是一顆「名稱 ×」按鈕,提示「移除這個允許」,按了就移除。
- 「模型可讀長度」:32K、128K、200K、400K、1000K tokens。旁邊小字:「用到 70% 時會把舊對話整理成摘要」。最小 4,000。
- 「指示(Bot 應該記得的事、說話風格…)」:3 行的輸入框,提示「例如:用繁體中文回答,簡短一點。」。
最下面一列
- 勾選框「釘選到側邊欄」。
- 「取消」和主要按鈕(新 Bot 是「建立 Bot」,既有 Bot 是「儲存」)。
- 名稱或模型是空的時候,主要按鈕按不下去。
- 儲存時會去掉前後空白。建好後會自動選中新 Bot。編輯期間 Bot 新收到的訊息不會因為儲存而遺失。
10. 設定視窗
- 標題「設定」,寬 560 px。用 ⌘, 或側邊欄「⚙ 設定」打開。
- 四個分頁:「一般」「AI 供應商」「電腦」「自動審核」。
- 每次打開都會重新讀取管理員的鎖定。
一般
- 「主題」:「為 AnyBot 選擇淺色或深色外觀」。
- 選項:「淺色」「深色」「跟隨系統」。選跟隨系統時,會即時跟著系統切換。
- 「強調色」:「用 Bot 的顏色為你的訊息上色,或保持黑色」。
- 選項:「Bot 顏色」「黑色」。
- 「通知」:「Bot 完成任務或等你處理時通知你」。
- 勾選框「你不在 AnyBot 前面時,跳出 macOS 通知」,預設開。
- 說明:「視窗不在最前面,或 90 秒沒有動鍵盤滑鼠,就會通知。第一次可能要在「系統設定 → 通知」允許「工序指令編寫程式」。」
- 「時區」:「設定 Bot 在排程和提醒中使用的時區」。
- 一個輸入框,加按鈕「用這台電腦的時區」。
- 看不懂時顯示紅字:「看不懂這個時區,請用像 Asia/Taipei 這樣的名稱」。
- 「資料」:「聊天記錄和金鑰只存在這台電腦上」,下面用小字顯示存放位置。
- 「版本」:「這個視窗正在用的版本(程式建置的時間)」。
- 有新版時:「有更新的版本:(時間)。按下面的「重新啟動 AnyBot」換成新版。」
- 沒有新版時:「已是最新版本」。
- 勾選框「在你離開時自動更新用戶端」,預設開。
- 說明:「螢幕鎖定或螢幕保護程式開著、10 分鐘沒動作、而且沒有 Bot 在工作時,才會自己換成新版本。」
- 「重新啟動」:「App 不太對勁時用:先儲存,再關掉並重新打開 AnyBot。進行中的工作會停下,聊天記錄都會保留」。
- 按鈕「重新啟動 AnyBot」,進行中變成灰色「正在重新啟動…」。
- 失敗時顯示「沒辦法重新啟動:(錯誤)。請手動關掉再打開 AnyBot。」
AI 供應商
- 左邊是供應商清單,寬 200 px(估計值)。「● 」表示已經可以用,「○ 」表示還沒設定。
- 右邊是選中的那家:
- 名稱。
- 取得金鑰的說明(第 11 節)。
- 「API 金鑰」:隱藏顯示。提示「貼上金鑰,或設定環境變數 (變數名)」。Ollama 沒有這一欄。
- 「服務網址」:提示文字是預設網址。
- 「新 Bot 預設模型」:提示文字是建議模型。
- 按鈕「測試連線並取得模型清單」:
- 進行中顯示轉圈和「正在取得模型清單…」。
- 成功:「連線成功,找到 N 個模型」,並記住這份清單。
- 失敗:顯示錯誤。
- 以前抓過清單時顯示「已記住 N 個模型」。
電腦
- 「⚡ 直接操作(像 Grok Bot 一樣)」:強調色淡底框。
- 說明:「一個開關:讓 Bot 直接使用這台電腦和你的瀏覽器,不再一個個問你」。
- 勾選框「打開直接操作」。被管理員鎖住時顯示紅字「🔒 由你的管理員設定,無法變更」。
- 說明:「仍會擋下:危險指令(sudo、格式化…)、密碼和金鑰檔、AnyBot 自己的資料,以及你在「自動審核」寫的「一律詢問」規則(預設:刪除檔案、付款、用你的帳號發文或傳訊息)。macOS 第一次讓 AnyBot 控制瀏覽器時還是會自己問一次,按「好」就行。」
- 「Bot 的電腦」:狀態、開啟畫面、啟動/休眠、在瀏覽器開啟;「快照與更新」「磁碟」「終端機與環境密鑰」「在哪裡執行」和「顯示紀錄」。細節見第 17 節。
- 「你的電腦」:「這台 Mac。Bot 要用你的檔案、你的 App 或你的瀏覽器時才會用到。」
- 「在這台電腦上執行」:「允許 Bot 在這台電腦上執行任務,而不只是在它自己的電腦上」。
- 勾選框「允許在「你的電腦」上執行」,可能被管理員鎖住。
- 說明:「打開後,改檔案和會改變東西的指令仍會先問你(或依自動審核規則)。密碼和金鑰資料夾一律碰不到。」
- 「macOS 權限」:「螢幕與系統錄音」「輔助使用」各一列,已允許是綠色勾勾,還沒允許有「打開設定」按鈕(直接打開對應的系統設定面板)。下面列出「Bot 可以操作的 App」:「{Bot} 可以看到「{App}」,並在其中點擊和輸入」,每列可以「移除」。
- 「示範教學」:見第 24 節。
- 「其他電腦」:「透過 SSH 讓 Bot 在你的其他電腦上做事(需要先設好免密碼登入)」。
- 每台電腦一列:名稱、SSH 位址、「移除」。
- 新增時填「名稱,例如 工作站」和「me@studio.local」,按「新增」。兩欄都要填,名稱不能跟現有的重複。
- 「AnyBot 瀏覽器設定檔」:見第 22 節。
自動審核
- 「自動審核」:「依照自訂規則審核 Bot 的操作」。勾選框「開啟自動審核」。
- 說明:「為每種操作寫一條簡短的自然語言規則。規則衝突時,「先詢問」優先。這些規則只對你生效。內建的安全檢查一律有效。」
- 關閉時加一行:「自動審核關閉時不會使用規則」。
- 「「無需詢問直接允許」規則」:「操作符合這些規則時,自動繼續」。
- 每條規則顯示為「• 規則」,旁邊有「刪除」。
- 輸入框提示「例如:在工作資料夾裡建立文字檔」,按鈕「新增規則」。
- 「「一律詢問」規則」:「操作符合這些規則時,停下來詢問」。輸入框提示「例如:刪除任何檔案」。
11. AI 供應商
| 顯示名稱 | 預設網址 | 建議模型 | 起始模型清單 | 金鑰 | 金鑰環境變數 | 取得金鑰說明 |
|---|---|---|---|---|---|---|
| 「xAI Grok」 | https://api.x.ai/v1 | grok-4 | grok-4、grok-4-fast、grok-3-mini | 要 | XAI_API_KEY | 「在 console.x.ai 取得 API 金鑰」 |
| 「OpenAI」 | https://api.openai.com/v1 | gpt-5 | gpt-5、gpt-5-mini、gpt-4.1 | 要 | OPENAI_API_KEY | 「在 platform.openai.com 取得 API 金鑰」 |
| 「Claude」 | https://api.anthropic.com/v1 | claude-opus-5-5 | claude-opus-5-5、claude-sonnet-5-5、claude-haiku-5-5、claude-fable-5-1 | 要 | ANTHROPIC_API_KEY | 「在 console.anthropic.com 取得 API 金鑰」 |
| 「Google Gemini」 | https://generativelanguage.googleapis.com/v1beta/openai | gemini-2.5-flash | gemini-2.5-flash、gemini-2.5-pro | 要 | GEMINI_API_KEY | 「在 aistudio.google.com 取得 API 金鑰」 |
| 「OpenRouter」 | https://openrouter.ai/api/v1 | openrouter/auto | openrouter/auto | 要 | OPENROUTER_API_KEY | 「在 openrouter.ai 取得 API 金鑰」 |
| 「Ollama(本機)」 | http://localhost:11434/v1 | llama3.2 | llama3.2、qwen2.5、gemma3 | 不用 | – | 「先安裝並開啟 Ollama,不需要金鑰」 |
| 「自訂(OpenAI 相容)」 | http://localhost:8080/v1 | local-model | (無) | 選填 | – | 「任何 OpenAI 相容的服務(LM Studio、vLLM…)」 |
- 金鑰:先用設定裡貼上的金鑰(會去掉前後空白);沒貼的話讀環境變數。
- 需要金鑰卻沒有時,送訊息會看到:「還沒有設定 {供應商} 的 API 金鑰。請到「設定 → AI 供應商」貼上金鑰。」
- 網址:沒填就用預設網址,結尾的「/」會自動拿掉。
- 每個 Bot 可以選不同的供應商和模型,每則回覆下面都會標出是誰寫的。
- 連線格式:Claude 用自己的格式;其他六家都用 OpenAI 相容格式。OpenRouter 會帶上「AnyBot」當作 App 名稱。
- Claude 的設定
- API 版本 2026-10-21。
- 每次回覆最多 64,000 tokens。
- 「自適應思考」(顯示思考摘要)只開給較新的模型:claude-opus-5、claude-sonnet-5、claude-haiku-5、claude-fable-5、claude-mythos-5、claude-opus-4-6/4-7/4-8、claude-sonnet-4-6 開頭的模型。
- 「伺服器端備援」只給 claude-opus-5-5、claude-opus-5、claude-fable-5-1、claude-sonnet-5-5:請求被拒時,伺服器可以換別的模型重試。
- 抓模型清單:會排序、去掉重複,並去掉名稱前面的「models/」,然後存起來。
- 「請先貼上 API 金鑰」
- 「供應商沒有回傳任何模型」
12. 回覆的串流、思考與錯誤
串流與思考
- 所有供應商都是一段一段傳回,畫面邊收邊顯示。
- 思考內容會即時顯示:
- OpenAI 相容的供應商:讀取 reasoning_content 或 reasoning 欄位。
- Claude:讀取思考區塊。思考的簽章原封不動保存,下次照原樣送回去。
- 模型要用工具時,畫面上立刻出現那一步,等這一步的文字結束才真的執行。沒有編號的工具會自動編成 call_0、call_1。
Claude 的特殊結尾
- 模型拒答時加上:「(模型拒絕回答這個要求。)」
- 回答超過長度上限時加上:「(回答太長,已達長度上限。)」
重試與逾時
| 項目 | 數值 |
|---|---|
| 連線逾時 | 15 秒 |
| 等第一段回應 | 120 秒(估計值) |
| 中途安靜多久算卡住 | 35 秒 |
| 最多嘗試 | 3 次(第 1 次加 2 次重試) |
| 重試前等多久 | 1 秒、2 秒(每次加倍,最多 4 秒) |
| 伺服器要求等待時 | 照伺服器說的等,最多 30 秒(估計值) |
| 等待中多久檢查一次「停止」 | 每 0.1 秒 |
- 會重試:錯誤 429、408、529、所有 500 以上的錯誤、連不上、串流中途斷線(「連線中斷:…」)。
- 不重試:401、403、404 等其他 400 類錯誤、對話太長、模型不支援工具、串流中途傳回錯誤。
- 畫面上已經出現文字、思考或工具時,就不再重試,避免內容重複。
- 重試前顯示:「{錯誤}\n{N} 秒後重試(第 2 或 3 次,共 3 次)…」。
- 等待重試時按停止,會安靜結束,不顯示錯誤。
錯誤訊息
- 一般格式:「錯誤 {碼}:{供應商的說明}\n{提示}」。說明讀不出來時,顯示回應的前 300 字。
- 依錯誤碼附上的提示:
- 401/403:「金鑰無效或沒有權限,請到「設定 → AI 供應商」檢查。」
- 404:「找不到這個模型或網址,請檢查模型名稱。」
- 429:「模型供應商已超載或用量已達上限。通常是暫時的,請稍後再試。」
- 500–599:「模型供應商目前負載過高。通常是暫時的。」
- 對話太長:「對話太長了,超過這個模型能讀的長度。請清除聊天記錄或換一個模型。」
- 模型不支援工具:「這個模型不支援工具。請換一個支援工具的模型,或在 Bot 設定裡關掉「電腦操作」。」
- 連不上 Ollama:「連不上 Ollama:{原因}\n請先開啟 Ollama,並用
ollama pull下載模型。」 - 連不上其他供應商:「連不上 {供應商}:{原因}」
- 串流中出錯但沒有說明:「未知錯誤」
13. 一個回合怎麼運作
- 一個回合:從你送出一則訊息(或 Bot 被喚醒)開始,到模型用純文字回答、不再要求工具為止。
- 中間可以來回很多步:模型要用工具,App 執行並交回結果,模型再決定下一步。
- 步驟上限:一個回合最多 100 步,只是防止失控的保險(Grok Bot 本身不設上限:
cloud_agent_stream_conversation_turn_window的maxTurns:null;browser-use 預設 100)。原本的 25 步會把正常的長工作切斷(修一台伺服器的 Docker 用了 50 多條指令)。用完時會顯示:「(這次已經用了 100 個步驟,先停在這裡。要繼續的話,回覆「繼續」。)」- 每 25 步,模型會在最新的工具結果後面看到一句提醒:方向對就繼續;最近幾步都沒進展就停下來,用一兩句話告訴你卡在哪、要你做什麼(聊天記錄裡看不到這句)。
- 鬼打牆另外有攔截:同一個畫面或網頁動作第 3 次會被警告,第 4 次起不執行。
- 系統提示要模型每一步做多一點:互不相依的工具同一步一起呼叫、查東西的指令合成一條、等待寫在同一條指令裡。
- 每一步開始前會依序做:
- 從第 2 步起,檢查要不要整理摘要(門檻 75%)。
- 把你中途打的話加進去。
- 開一個新的回覆氣泡。
- 插話:Bot 工作時你送出的訊息,會在下一步交給模型。模型本來要結束、但還有沒讀的插話時,回合會繼續,讓它看到你的新訊息。
- 喚醒:例行任務時間到,或別的 Bot 傳訊息過來,都會像你傳訊息一樣開始新回合。
- 回合結束有三種:
- 成功:模型用文字回完;或用完步驟上限。
- 取消:你按停止。每一步和每個工具前後都會檢查;正在等你回答的請求一律當作拒絕;不顯示錯誤。
- 錯誤:模型呼叫失敗,而且重試完了或不能重試。
- 每次結束都會記下回合編號、結果和結束時間。
14. 長對話整理成摘要
- 可讀長度:每個 Bot 可以設,預設 128,000 tokens(估計值)。
- 怎麼估長度:英數約 4 個字元算 1 token,中文每個字算 1 token。每則訊息另外加 4,工具參數也算進去。
- 門檻
- 回合開始時:用到 70% 就整理。
- 回合進行中:每一步到 75% 才整理(多 5% 的寬限)。
- 一定保留的內容
- 最新 6 則訊息保留原文(估計值)。
- 只在某一則你的訊息之前切開,不會把工具要求和它的結果拆開。
- 7 則以下不整理;切點之前全是摘要時也不整理。
- 怎麼整理
- 每則舊訊息最多取 2,000 字(估計值),用「使用者:」「助手:」「[使用工具 …]」「工具結果(…):」「【先前的摘要】」標出來。
- 要求寫下:使用者的目標與偏好、已經做出的決定、重要的事實與數字、提到的檔案路徑與指令結果、還沒完成的事,不能加入對話裡沒有的內容。
- 整理時畫面顯示:「對話很長了,正在把較早的內容整理成摘要…」
- 結果:舊訊息換成一則摘要,之後會放進給模型的開頭說明,接在「先前對話的摘要:」後面。
- 摘要是空的或被取消時不替換。
- 用的是同一個 Bot 的模型,而且不帶任何工具。
15. 自動審核
- 你可以寫兩組規則:「無需詢問直接允許」和「一律詢問」,用一般的話寫就好。
- 兩組都符合時,「一律詢問」優先。
- 由同一個 Bot 的模型來判斷(不帶工具),在內建安全檢查之後才進行。
- 判斷時只看你寫的規則,不能自己加規則,回答「允許」「詢問」或「都不符合」三種之一。
- 允許:直接做,結果前面加「(自動審核:符合「{規則}」,直接允許)」。
- 詢問:照常跳出請求,理由後面加「(符合你的「一律詢問」規則:{規則})」,而且不提供「一律允許」。
- 都不符合,或看不懂回覆:照一般流程詢問。
- 兩組規則都是空的時,不會去問模型。
16. 許可關卡的完整順序
- 不需要許可的
- App 操作工具(第 26 節),只有「刪除例行任務」會先問。
- 讀公開網頁。
- AnyBot 自己的瀏覽器。
- 決定在哪台電腦做
- 操作螢幕和讀你自己的瀏覽器:一律在「你的電腦」。
- 其他工具:用 Bot 指定的電腦,沒指定就用預設電腦。
- 指定的電腦不存在:「沒有「{名稱}」這台電腦。可以用:…」
- 直接操作有開時:第 3 步和第 5 步自動算已開。
- 關卡一:電腦工具還沒開
- 詢問:「讓 {Bot} 使用電腦工具:{動作}\n(在 {電腦} 上)」
- 允許一次;或一律允許(打開這個 Bot 的電腦工具);或拒絕。
- 拒絕時 Bot 收到:「使用者沒有允許使用電腦工具。請改用文字回答,或問使用者想怎麼做。」
- 管理員鎖住「你的電腦」:直接拒絕,「你的管理員關閉了在「你的電腦」上執行。請改用「Bot 的電腦」。」
- 關卡二:「在這台電腦上執行」還沒開
- 詢問:「在你的電腦上執行任務,而不只是在它自己的電腦上:{動作}\n(在 你的電腦 上)」
- 拒絕時 Bot 收到:「使用者沒有允許在「你的電腦」上執行。可以改用「Bot 的電腦」,或問使用者。」
- 個別動作
- 截圖:「看你的螢幕畫面:…」,可以一律允許。
- 滑鼠和鍵盤:「操作你的滑鼠和鍵盤:…」,可以一律允許。
- 讀你瀏覽器的分頁:「讀取你瀏覽器目前分頁的內容(包含已登入的頁面):目前的分頁」,可以一律允許。單純打開連結不用問。
- 檔案和指令:照第 19 節的安全規則決定。被擋下時顯示「被安全規則擋下:{原因}」。
- 自動審核或直接操作:見第 15 節和第 8 節。
- 一般請求
- 允許一次。
- 一律允許:記到 Bot 的「一律允許」清單,例如「修改檔案」或「git commit」。
- 拒絕:Bot 收到「使用者拒絕了這個操作。請不要再試同樣的操作,改問使用者想怎麼做。」
- 等你回答時,每 0.2 秒檢查一次有沒有按停止;按停止就等於拒絕。
- 工具狀態:等待中、執行中、完成、被拒、失敗。結果開頭會標電腦名稱,例如「[你的電腦] …」。
17. 三種電腦
| 名稱 | 是什麼 |
|---|---|
| 「Bot 的電腦」 | 一台真的 Linux 電腦(Debian 桌面、Chromium、終端機),所有 Bot 共用,每個 Bot 有自己的資料夾 /home/bot/bot-編號。跑在 Docker 裡,可以是這台 Mac 或你的伺服器。預設電腦。沒有 Docker 時,退回成一個封閉的資料夾(沒有桌面)。 |
| 「你的電腦」 | 這台 Mac,從工作資料夾開始(預設是家目錄)。要先打開「在這台電腦上執行」,或每次允許。讀你的瀏覽器一定用這台。 |
| SSH 電腦 | 你自己加的其他電腦,每台有名稱、位址(例如 me@studio.local)和起始資料夾(沒填就用對方的家目錄)。 |
- 聊天時說「在我的 Mac 上」,Bot 就會換到「你的電腦」。
- 清單順序:Bot 的電腦、你的電腦、各台 SSH 電腦。
Bot 的電腦(照原版的雲端電腦做)
原版每個帳戶有一台雲端電腦(box):Linux 容器裡的 X11 桌面,用 xdotool 操作,透過 noVNC(埠 6080)觀看。AnyBot 用同樣的做法:
- 狀態(設定頁和畫面視窗都有狀態圓點):
- 「尚未建立」→ 第一次用到時「建立中」(第一次會先做映像檔,要幾分鐘)
- 「休眠中」→ 用到時「喚醒中」
- 「連線中」→「執行中」
- 「正在備份/正在建立/正在搬移資料/正在拆除舊電腦/正在清除資料/正在從快照還原」(更新進行中)
- 「發生問題」:下一次用到時會自動重新啟動
- 自動喚醒和休眠:Bot 用到時自動喚醒;閒置 15 分鐘(估計值)而且沒有 Bot 在用、沒有人在看畫面,就先存快照再休眠。
- 健康檢查:每 20 秒看一次,單次最多等 3 秒(原版 /health 的逾時)。
- Bot 在上面的權限:這是它自己的電腦,所以指令、改檔案、操作螢幕都不用問你;只有「一律不允許」的指令(例如格式化)還是會擋。可以
sudo安裝套件。 - 開機時間:最多等 60 秒(估計值)。
快照與三種更新(原版的規則)
- 儲存快照:把整個
/home/bot(略過 .cache)壓縮存到這台 Mac。休眠前和「重建電腦」前會自動存。設定頁顯示「上次快照:月/日 時:分」。 - 「重建電腦」:「你的檔案和登入資訊會保留,但已安裝的應用程式和套件會被移除。所有 Bot 會一起更新。」
- 有 Bot 正在用這台電腦時會拒絕:「有 Bot 正在用這台電腦,等它做完再重建」。按下確認時會先停掉正在工作的 Bot,聊天會保留。
- 步驟:正在備份(存快照)→ 正在建立(更新映像檔、換上新電腦)→ 正在搬移資料(確認原本的檔案還在、新電腦能連線)。
- 「從快照復原」:「從你上次儲存的快照重新啟動它。最近的變更可能會遺失,已安裝的 App 會被移除。你的 Bot、檔案和登入資訊都是安全的。」
- 步驟:正在拆除舊電腦 → 正在建立 → 正在從快照還原;放回檔案後最多等 90 秒、每 2 秒確認一次結果(取自原版)。
- 還沒有快照時按鈕是灰的。
- 「重設電腦」(紅色按鈕):全部清空,換一台全新的電腦。步驟:正在拆除舊電腦 → 正在清除資料 → 正在建立。
- 同時只能有一個更新:再按會顯示「已經有一個更新在進行中」。開始後就不能取消。
- 中斷了會接續:更新做到一半 App 被關掉,下次打開時,如果紀錄在 10 分鐘內、而且電腦不正常,就自動接續;超過 10 分鐘就清掉紀錄,電腦正常時也不重做(都取自原版)。
- 進度在設定頁用步驟列和進度條顯示。
- 新版本與排程更新(原版:「有新映像檔就在指定的當地時間自動更新,錯過有一小時的補執行時間」):
- AnyBot 裡帶著的電腦版本比正在跑的新時,「快照與更新」最上面出現強調色框「有新版的 Bot 的電腦」和「現在更新」(打開「重建電腦」的確認)。每 30 秒檢查一次(估計值)。
- 勾選「有新版本時,自動在每天 [03:00] 更新」:到了那個時間、有新版、沒有 Bot 在用,就自動做「重建電腦」;每天最多一次。錯過時間的話一小時內還會補做,超過就等隔天。時間格式錯誤時顯示「請用 時:分,例如 03:00」。
磁碟
- 「檢查用量」:顯示磁碟剩餘空間和最大的幾個資料夾。
- 「請 Bot 提出清理方案」:把「檢查 Bot 的電腦的磁碟使用情況,並提出安全的清理方案供我核准」放進主要 Bot 的輸入框,由你按送出。
終端機與環境密鑰
- 給指令用的帳密,例如 CRM_API_TOKEN。Bot 執行指令時會變成環境變數。
- 名稱要大寫字母開頭,只能用 A–Z、0–9 和 _(原版規則);輸入時自動轉成大寫。
- 值只能寫入、不能讀出:清單只顯示名稱和「••••••••」,可以「取代」或「刪除」。
- 每個值最多 32 KB、最多 100 個(估計值)。存在這台 Mac 上,只有你的帳號能讀。
- Bot 的系統指示只會告訴它有哪些名稱,並提醒它不要把值印出來。
在哪裡執行
- 預設是這台 Mac 的 Docker(OrbStack 或 Docker Desktop)。
- 可以填 Docker 主機,例如
ssh://me@server(Tailscale 的機器名稱也行),Bot 的電腦就會在那台主機上;看畫面時 AnyBot 會自己開 SSH 通道。 - 換位置後會在新的地方重新建立;舊檔案可以先「儲存快照」,換過去再「從快照復原」。
- 「網路流量改走這台 Mac」(原版:網路流量可以改走你的本機電腦,「僅對新連線生效」,管理員可以關掉):打開後,Bot 的電腦之後執行的指令會經過這台 Mac 上的代理伺服器出去(例如要連公司內網或 VPN 才看得到的服務)。代理只聽這台 Mac 自己(127.0.0.1),用原版的埠 8791,被占用就往後找。設定頁顯示經過的連線數。Bot 的電腦在別的主機上時不能用。管理員可以用
defaults write com.anybot.AnyBot AllowBoxTrafficViaThisMac false鎖住,這時顯示「🔒 由你的管理員設定,無法變更」。
看畫面、取得控制權(像同事一樣看,需要時接手)
- 核心只有三件事:Bot 操作它的電腦;你像同事一樣即時看它在做什麼;它需要你(登入、驗證碼)時你接手幫忙。看和接手用 VNC(noVNC):只傳畫面上變了的地方,每個滑鼠移動和按鍵即時送過去,手機可以用觸控。原版也是用 noVNC 看 box。
- 在哪裡看:手機網頁的「看 Bot 的電腦」、需要處理卡片的「接管」,Mac 和其他電腦的「看畫面」「開啟電腦」都打開同一個網頁
/screen(電腦上在瀏覽器開)。- 大腦在別台(伺服器):網頁在帳號伺服器上,VNC 經過帳號伺服器和大腦的長連線到大腦的 Bot 的電腦。電腦上的 App 會先向帳號伺服器要一個 10 分鐘有效的連結(不用在瀏覽器登入);手機網頁用自己的登入。只有擁有者和管理員能看。
- 同一個網路的手機(不經帳號伺服器):同一個網頁,連 AnyBot 自己的
/api/vnc。 - 這台電腦自己的 Bot 的電腦:直接開它的 noVNC。
- 網頁:最上面是返回、電腦名稱、狀態(即時觀看/你在操作)和「接管/交還給 Bot」。預設只看,按「接管」才會把你的滑鼠鍵盤送過去;需要處理卡片的「接管」直接打開接管。接管時有「打字」:打中文或任何語言(貼進目前的視窗),還有 Enter、Esc、Tab、⌫。斷線會自己重連。
- 你在操作時 Bot 會等:你點擊或按鍵後 8 秒內,Bot 的滑鼠鍵盤操作會收到「使用者正在自己操作這台電腦」。不用另外按什麼;停下 8 秒它就繼續。需要處理卡片的「接管」會讓 Bot 一直等,直到你按「我完成了」或「跳過」。
- VNC 密碼不出大腦:大腦用 Bot 的電腦自己的 VNC 密碼登入,給看的人的是「不用密碼」;能連到這裡的人已經過帳號伺服器(或手機密碼)。
- 以前的做法(每 0.45~1 秒拍一張 1 MB 的圖、解開再壓、經過帳號伺服器傳;點擊另走一條路)已經拆掉。
18. 檔案與指令工具
除了「查看背景指令」,每個工具都可以指定在哪台電腦做。
在 Bot 的電腦和 SSH 電腦上,這些工具在那台電腦裡執行;寫檔案時內容從標準輸入送過去,所以任何文字都能寫;「修改檔案」也能只換掉一段(先讀出來、確認那段只出現一次,再整個寫回)。
「查看資料夾」(list_dir)
- 資料夾排在前面,名稱後面加「/」;檔案排在後面,附上大小(B、KB、MB)。依名稱排序,不分大小寫。
- 最多列 2,000 項,超過時顯示「…還有 N 項」。
- 空資料夾顯示「(空資料夾)」。
- 私密檔案自動隱藏。
「搜尋檔案」(search)
- 參數:要找的文字(必填)、資料夾、是否只列檔名。
- 結果格式:「路徑:行號:內容」。
- 電腦有裝 ripgrep 時:
- 可以用正規表示式。
- 每行最多 300 欄。
- 略過 .git、.env、.pem、.key。
- 沒裝 ripgrep 時:
- 改用一般比對,不分大小寫。
- 略過 node_modules、target 和私密檔案。
- 最多找 25 秒、10,000 行,只回傳前 2,000 行。
- 可能看到的訊息:
- 「…結果太多,只列出前 2000 行(共 N 行以上)」
- 「…搜尋超過 25 秒,結果可能不完整」
- 「沒有找到」
- 「請給要搜尋的文字」
「讀取檔案」(read_file)
- 從第幾行開始(預設 1),讀幾行(預設 2,000,估計值)。每行前面加行號。
- 檔案最大 8 MB(8,388,608 位元組)。前 8,000 位元組裡出現空字元,就當作不是文字檔。
- 可能看到的訊息:
- 「…還有 N 行(用 offset=M 繼續讀)」
- 「(空檔案)」
- 「X 太大了(大小),最多讀 8 MB」
- 「X 不是文字檔」
- 「X 是資料夾,請用 list_dir」
- 「找不到 X」
「修改檔案」(edit_file)
- 把舊文字換成新文字,舊文字必須在檔案裡剛好出現 1 次。
- 舊文字留空時,建立新檔或整個覆寫,需要時會自動建立上層資料夾。
- 成功時:「已建立 X(N 行)」「已覆寫 X(N 行)」「已修改 X」。
- 失敗時:
- 「在 X 裡找不到要替換的文字」
- 「要替換的文字在 X 出現了 N 次,請多給一些前後文讓它只出現一次」
「執行指令」(shell)
- 在工作資料夾裡執行,不接受鍵盤輸入。
- 輸出:保留開頭和結尾各 6,000 字,中間顯示「…(中間省略 N 個字)…」(估計值)。總共不到 12,000 字時全部保留。
- 結果:
- 沒有輸出:「(完成,沒有輸出)」
- 失敗:「結束代碼 N」加上輸出
- 無法執行:「無法執行:…」
- 按停止:「已停止(連同它啟動的程式)」
- 預設等 30 秒(估計值,最多可設 10 分鐘)。還沒跑完時不會中斷,而是移到背景繼續跑:「指令跑了超過 N 秒,已移到背景繼續執行(背景指令 #編號)。用 read_terminal 查看進度。目前的輸出:…」
- 執行前會從環境裡拿掉 6 種 AI 金鑰,指令拿不到你的金鑰。
「查看背景指令」(read_terminal)
- 一律不用問。
- 顯示:
- 「背景指令 #N:指令」
- 「狀態:已結束(代碼 C)」或「還在執行:N 個程式,CPU 時間 X.X 秒,記憶體 M MB」
- 最新的輸出
- 編號不存在時:「沒有背景指令 #N」。
19. 安全規則:哪些直接做、先問、拒絕
判斷順序是:拒絕 → 私密檔案 → 允許 → 詢問。用 ; | || & && 或換行串在一起的指令,會先拆開、一段一段判斷。
私密檔案(Bot 不能讀也不能改)
- AnyBot 自己的資料資料夾(金鑰存在這裡)
- .git 資料夾
- .ssh、.gnupg、Library/Keychains
- .env、.env.*、.netrc、credentials
- .pem、.key 檔
- id_rsa、id_ed25519 開頭的檔案
在「你的電腦」上
- 讀取類工具(查看資料夾、搜尋、讀取檔案)
- 工作資料夾裡:直接做。
- 工作資料夾外:先問「讀取工作資料夾以外的地方:路徑」,可以一律允許。
- 私密檔案:拒絕,「「路徑」是私密或系統檔案,Bot 不能讀取。」
- 修改檔案
- 工作資料夾裡:問「修改檔案:路徑」,可以一律允許。
- 工作資料夾外:問「修改工作資料夾以外的檔案:路徑」,不能一律允許。
- 私密檔案:拒絕。
- 指令
- 一律拒絕:sudo、su、rm -rf /、rm -rf ~、mkfs、dd、shutdown、reboot、diskutil erase、chmod -R 777 /。訊息是「「X」這類指令一律不允許。」
- 碰到私密檔案:拒絕,「指令碰到私密或系統檔案:X」。
- 含有看不出內容的子指令($( )、反引號、eval、exec、source、「.」,或引號沒關好):一律問「執行指令(含有隱藏的子指令,無法自動判斷):…」,不能一律允許。
- 不用問的 24 種唯讀指令:ls、pwd、cat、head、tail、wc、echo、rg、grep、find、file、stat、du、df、date、which、tree、sort、uniq、diff、git status、git diff、git log、git show。每一段都是唯讀或已允許、而且沒有用「>」寫入檔案,才直接執行。
- 其他指令:問「執行指令:…」。
- 一律允許會記住指令的第一個字。
- git、npm、pnpm、yarn、cargo、brew、pip、pip3、python3、docker、go 這 11 種會記住前兩個字,例如「npm install」。
沙盒(macOS 有提供時)
- 所有指令都在沙盒裡跑。
- 指令碰不到這些地方:AnyBot 的資料、.ssh、.gnupg、Library/Keychains、.aws、.config/gcloud。
在「Bot 的電腦」上
- 指令只檢查上面那 10 種一律拒絕的,其他都直接做。沙盒會把它關在自己的資料夾裡,看不到也寫不到家目錄的其他地方。
- 自己資料夾裡的檔案可以自由讀和改。
- 資料夾外:拒絕,「{Bot} 看不到這台電腦上的其他檔案(路徑)。要處理你的檔案,請用「你的電腦」。」
在 SSH 電腦上
- 連線不會問密碼,最多等 15 秒。有起始資料夾時會先切過去。
- 查看資料夾、讀檔、搜尋、查看背景指令:直接做。
- 修改檔案:問「修改 {電腦} 上的檔案:路徑」,而且只能整個寫入。否則會看到「在 {電腦} 上只能整個寫入檔案(old_text 留空),或用 shell 修改。」
- 指令:套用跟本機一樣的規則,問「在 {電腦} 上執行指令:…」。
20. 背景指令
-
「輸入到背景指令」(write_terminal):原版可以把輸入傳給執行中的指令。指令在等你回答(例如「name?」「y/n」)時,Bot 用它把文字送進去,
\n代表按 Enter;close會結束輸入(像 Ctrl-D)。送出後等 0.4 秒,回傳最新輸出。指令已經結束時會說「背景指令 #N 已經結束了」。 -
一個指令連同它啟動的所有程式,最多追蹤 4,096 個。統計程式數量、CPU 時間和記憶體。
-
停止時從最新的程式開始,依序把整棵程式樹停掉。
-
關閉 App 時,會停掉所有背景指令。「重新啟動這個 Bot」只停那個 Bot 的背景指令,並回報停了幾個。
21. 網頁工具
「讀取網頁」(web_fetch)
- 讀公開頁面,不帶登入,不用許可。
- 網址:
- 沒寫 https:// 會自動補上。
- 有空白或沒有「.」時不接受:「「X」看起來不是網址」。
- 空白:「請給網址」。
- 限制:
- 最多等 20 秒。
- 最多下載 3,000,000 位元組(估計值)。
- 最多回傳 20,000 字(估計值),超過時結尾加「…(後面還有,已截斷)」。
- 會拿掉程式碼、樣式和頁首,把段落、標題、清單、表格列分行,特殊符號轉回一般文字。
- 輸出:「網址:…」「標題:…」加內文。
- 可能看到的訊息:
- 網站回應 400 以上:「網站回應 N。如果這個頁面要登入,請改用 browser_open + browser_read。」
- 文字少於 200 字:「(頁面幾乎沒有文字,可能要登入或靠程式載入。可以改用 browser_open 打開,再用 browser_read 讀。)」
瀏覽器工具
- 「在瀏覽器打開」(browser_open):參數是網址和設定檔。
- 「讀取瀏覽器分頁」(browser_read):最多讀多少字(預設 20,000,最多 40,000),加上設定檔。
- 「瀏覽器設定檔」(browser_profiles):列出、新增、切換。
用哪個瀏覽器
- 有裝 Chrome 類瀏覽器時,用 AnyBot 自己的瀏覽器。只有設定檔選「你的瀏覽器」時,才用你平常的瀏覽器。
- 都沒裝時,一律用你自己的瀏覽器。
原版「從 Chrome 複製登入」
- 原版已經拿掉這個功能,所以 AnyBot 也沒有做,Bot 也被交代不要提。
22. AnyBot 自己的瀏覽器與設定檔
用哪個瀏覽器
- 依序找第一個有裝的:Google Chrome、Brave Browser、Microsoft Edge、Chromium。
- 用 AnyBot 自己的資料夾打開,不會影響你平常的瀏覽器,也不用改任何瀏覽器設定。
- 略過首次使用畫面和「設為預設瀏覽器」的詢問。
數字
- 「預設」設定檔用本機連接埠 9333(估計值)。其他設定檔由瀏覽器自己挑空的連接埠,再由 AnyBot 讀回來。
- 等待時間:
- 等瀏覽器開好:最多 20 秒。
- 讀一頁:最多 20 秒。
- 打開網址後:等 3 秒再讀。
- 已經開著時,用新分頁打開。
設定檔
- 「預設」是第一個,登入狀態一直保留。
- 其他設定檔各自有資料夾和登入,例如「工作」「私人」。
- 「你的瀏覽器」代表你平常的 Chrome(第 23 節)。也聽得懂「你的 chrome」「我的 chrome」「我的瀏覽器」「my chrome」這些說法。
- 順序:「預設」排第一,其他依名稱,「你的瀏覽器」排最後。
- 「使用中」的設定檔會被記住;找不到時回到「預設」。找設定檔不分大小寫。
- 在某個設定檔打開網址,那個設定檔就會變成使用中。
名稱規則
- 不能空白:「請給設定檔名稱」
- 最多 30 字(估計值):「設定檔名稱最多 30 個字」
- 不能用保留名稱:「「X」是留給你自己瀏覽器的名字,請換一個」
- 不能有 / 或 :,也不能用 . 開頭:「設定檔名稱不能有 / 或 : 也不能用 . 開頭」
新增、切換、列出、移除
- 新增:名稱已經存在時沿用,不重複建立。新增後自動切過去。
- 「已新增並切換到設定檔「X」(全新的,還沒登入任何網站)…」
- 切換:「已切換到「X」,之後的 browser_open / browser_read 都用它。」
- 切到「你的瀏覽器」時補一句:「(使用者平常的瀏覽器:請使用者在那裡切到想要的 Chrome 設定檔)」
- 列出:「AnyBot 瀏覽器的設定檔:A、B(使用中)…。每個設定檔有自己的登入。」
- 移除:只有你能在設定裡移除,Bot 不行。
- 「預設」和「你的瀏覽器」不能移除:「「X」不能移除」。
- 視窗還開著:「「X」的視窗還開著,請先關掉它再移除。」
- 移除的是使用中的設定檔時,會回到「預設」。
- 設定檔不存在:「AnyBot 瀏覽器沒有叫「X」的設定檔。現有:…。要新的可以用 browser_profiles 新增(action: add)。」
設定 → 電腦 → 「AnyBot 瀏覽器設定檔」
- 說明:「每個設定檔是一個獨立的瀏覽器視窗,有自己的登入(例如工作和私人帳號)。Bot 會用「使用中」的那個,你也可以在聊天裡叫它換。」
- 每個設定檔一列:
- 單選按鈕,使用中的那個旁邊標「使用中」。
- 「開啟視窗」:提示「打開這個設定檔的瀏覽器視窗,在裡面登入網站」。
- 開啟中:「正在打開「X」…」
- 成功:「已打開「X」的視窗。在裡面登入一次,之後會記住。」
- 已經開著時,把它的分頁帶到前面。
- 「移除」:「預設」沒有這顆。按下後變成紅字「確定移除(登入也會刪掉)」和「取消」,移除後顯示「已移除「X」。」
- 「你的瀏覽器」那列:
- 說明「你平常的 Chrome,切到哪個設定檔就讀哪個」。
- 已有權限時顯示「✓ 輔助使用已打開」;沒有時是按鈕「打開輔助使用」。
- 新增:輸入框提示「新設定檔名稱,例如 工作」,按「新增設定檔」。
- 成功:「已新增「X」並設為使用中。按「開啟視窗」登入你要的網站。」
- 沒有任何 Chrome 類瀏覽器時,只顯示:「需要 Chrome、Brave、Edge 或 Chromium 才能用 AnyBot 自己的瀏覽器。」
- 底部說明:「選「你的瀏覽器」:Bot 像 Grok Bot 一樣從畫面讀你平常的 Chrome(macOS 會請你打開一次「輔助使用」),你在 Chrome 切到哪個設定檔,它就看哪個;讀之前會先問你。其他的是 AnyBot 自己的視窗,各自登入一次就好。」
打開和讀取
- 打開成功:「已在 AnyBot 瀏覽器({瀏覽器},設定檔「X」)打開 {網址}。接著用 browser_read 讀內容。如果頁面要登入,請使用者在那個視窗登入一次,之後會記住。」
- 讀取的是最近用的那個一般分頁。輸出:「瀏覽器:AnyBot 瀏覽器(…,設定檔「X」)」「標題:」「網址:」加內文。
- 頁面少於 1,500 字,又有 log in、sign in 或「登入」字樣時,加上「(這頁看起來要登入。請使用者在 AnyBot 瀏覽器視窗登入一次,之後就會記住。)」
- 可能看到的錯誤:
- 「這台電腦沒有 Chrome、Brave、Edge 或 Chromium,沒辦法開 AnyBot 自己的瀏覽器。」
- 「{瀏覽器} 沒有及時打開…請再試一次。」
- 「AnyBot 瀏覽器沒有開著的分頁,請先用 browser_open 打開網址。」
- 「讀取頁面太久了」
- 「頁面拒絕讀取:…」
23. 讀取你自己的瀏覽器(「你的瀏覽器」)
選哪個瀏覽器
- 候選:Google Chrome、Arc、Microsoft Edge、Brave Browser、Chromium、Safari。
- 優先選畫面上看得到、而且最前面的瀏覽器視窗。
- 透明、沒有大小的視窗,以及選單列小工具都不算。
- 列出視窗最多等 10 秒。
- 沒有看得到的視窗時,用第一個正在執行的瀏覽器;都沒在執行時,有裝 Chrome 就用 Chrome,否則用 Safari。
打開網址
- Chrome 類瀏覽器:網址交給你平常的視窗,不會跑到 AnyBot 的視窗。
- 打開後等 4 秒(估計值)。
- 成功:「已在 {瀏覽器} 打開 {網址}。接著可以用 browser_read 讀這個分頁。」
讀取:先用「輔助使用」(跟原版小幫手一樣的方法)
- 不用改任何瀏覽器設定。你在 Chrome 開著哪個設定檔的視窗,就讀哪個。
- 需要 macOS 的「輔助使用」權限,macOS 會自己問。
- 沒開時,AnyBot 會打開那個設定頁並說:「macOS 還沒讓 AnyBot 使用「輔助使用」,所以看不到你的瀏覽器。我已經打開「系統設定 → 隱私權與安全性 → 輔助使用」:把 AnyBot(或「終端機」)打開,然後再叫我試一次。只要開一次。」
- 只會讀你自己的瀏覽器,不會讀到 AnyBot 自己的視窗。
- Chrome 和 Electron 類 App 的特別處理(規則取自原版):
- 怎麼判斷:App 識別碼是 com.google.Chrome、com.github.Electron,或以 com.google.Chrome. 開頭;或是 Electron 程式;或 App 裡含有 Electron Framework、Chromium Embedded Framework、Google Chrome Framework 其中之一。
- 這類 App 會先打開兩個輔助使用開關(AXManualAccessibility、AXEnhancedUserInterface),網頁文字才看得到。
- 讀的是最前面視窗裡的網頁:標題、網址,連續的文字合成一行。
- 限制(估計值):
- 最多 20,000 個元素、80 層。
- 試 5 次,每次隔 0.7 秒。
- 每次最多等 2 秒。
- 成功:「瀏覽器:{瀏覽器}(你的瀏覽器)」「標題:」「網址:」加內文。
- 可能看到的錯誤:
- 「你的瀏覽器現在沒有打開的視窗」
- 「讀不到「標題」的頁面內容」
- 「你的瀏覽器沒有開著。請先打開它(或叫我用 browser_open 打開網址)。」
讀不到時改用 AppleScript
- 讀最前面分頁的標題、網址和文字。最多等 90 秒,讓你有時間回答 macOS 的詢問。
- 等太久:「等瀏覽器回應太久了(macOS 可能在問你要不要允許,請看看螢幕)」
- 讀不到文字時,仍會給標題和網址,加上「(讀不到頁面文字)」和說明:
- 被擋下控制權:自動打開「自動化」設定頁,並說「macOS 擋下了 AnyBot 控制 {瀏覽器}。我已經幫你打開「系統設定 → 隱私權與安全性 → 自動化」:在 AnyBot(或「終端機」)底下打開「{瀏覽器}」,然後再叫我試一次。」
- Safari:「Safari 還沒允許讀取網頁內容:請在 Safari 選單「開發 → 允許來自 Apple 事件的 JavaScript」打開…」
- Chrome 類:「{瀏覽器} 還沒允許讀取網頁內容:請在 {瀏覽器} 選單「檢視 → 開發人員 → 允許來自 Apple 事件的 JavaScript」打開,然後再叫我試一次。」
- Bot 被交代絕對不要主動叫你去改這些選單。只有在最後的備用方法也失敗時,才會照實轉告。
24. 操作螢幕(滑鼠、鍵盤、截圖)
- 有螢幕的電腦:Bot 自己的電腦(Linux 桌面,Docker)、這台電腦、帳號裡其他開了「裝置連結」的電腦。每個螢幕工具都有
computer參數;沒指定時用 Bot 的預設電腦。 - 看:截圖上每個能點的東西都框起來、標了編號。 Bot 拿到的截圖上,每個按鈕、連結、輸入框、選單項目都有編號,另外附同樣編號的清單(例如「[21] 連結「Profile」」)。編號來自系統的無障礙資訊(Mac 的 AX、Linux 的 AT-SPI;Bot 的電腦裡網頁內容也有,Chromium 開了無障礙),所以網頁上的小圖示也有編號。只有被別的視窗擋住的按鈕不給編號(Mac 上逐一檢查最上層的視窗是不是同一個 App),免得點到別的 App。
- 動手:照編號點,只有一種方式(真的滑鼠和鍵盤)。 點編號就是點那個東西的正中央;圖上沒編號的東西才用 x、y。Mac 用 CoreGraphics,Linux 用 X11/Wayland(desk.rs),Bot 的電腦用 xdotool。(以前 Bot 看圖猜座標,曾把一塊空白當成選單項目連點十次。)
- 每個動作做完自動附上新的編號截圖(點、打字、按鍵、捲動、拖曳、移動滑鼠、打開 App;先等 0.5 秒讓畫面穩定),Bot 不用再花一步截圖確認。拍不到畫面時(Mac 還沒開「螢幕與系統錄音」),改附最前面 App 的清單(含文字)。
- 不鬼打牆:動作後畫面和上一步完全一樣,結果會寫「畫面和上一步完全一樣:這一步沒有點到東西」,並叫 Bot 換編號、換方法或請人幫忙。同一步(點擊座標相差不到 16 像素也算)在一個回合裡做第 3 次會加警告,第 4 次起不執行,直接叫它換方法。
- 在 Bot 的電腦上:一個動作只開一次
docker exec(動作、按鈕清單和之後的畫面在同一個指令裡,約 0.4 秒)。桌面是一個 TigerVNC(畫面和 VNC 合一,取代 Xvfb+x11vnc),開機就啟動無障礙服務(AT-SPI),瀏覽器一律由anybot-browser開(同一個設定檔和 CDP、網頁開放無障礙、同時開兩個不會搶設定檔;做法取自 XBot 的 box)。這台電腦比 AnyBot 舊時(第 4 版起),大腦會在沒人用一分鐘後自己更新它(檔案和登入保留),不用問你;英文一個鍵一個鍵打,中文和表情符號用剪貼簿貼上(終端機用 Shift+Insert,其他程式用 Ctrl+V),所以任何程式都打得進去;⌘ 當成 Ctrl。不用xdotool mousemove --sync:滑鼠已經在那個位置時它會一直等(同一點點兩次會卡兩分鐘)。 - 需要看得懂圖片的模型;看不懂圖片時用按鈕清單。
原版的九個工具
computer_use_screenshot、click、mouse_move、mouse_button(按住/放開)、drag、scroll、typing、press_key、check_permissions。另外兩個:
-
(已併入截圖)「讀 App 畫面」:按鈕清單現在就在每張截圖裡,不再是另一個工具。很長的內容(終端機的整段捲動紀錄)留開頭 160 字和結尾 400 字。
-
「打開 App」(computer_use_open_app):打開或叫到最前面,顯示的名字也可以(「計算機」→ Calculator)。Bot 的電腦上:chromium(瀏覽器,就是 browser_* 在用的那個,不會開第二個)、xterm(終端機)或其他程式名稱。
-
(已拿掉)「按住或放開滑鼠」:拖曳已經涵蓋。
-
「檢查螢幕權限」(computer_use_check_permissions):回報「螢幕錄製:已允許/還沒允許」「輔助使用(滑鼠和鍵盤):…」,不會跳出系統視窗。Bot 的電腦上一律可以。
逐個 App 授權(原版:「Grok Bot 可以看到 {app},並在其中點擊和輸入」)
- 看螢幕(截圖)問一次「看你的螢幕畫面」。
- 點擊、打字、捲動、拖曳時,AnyBot 先找出會落在哪個 App:點的位置底下的視窗,打字和按鍵則是最前面的 App。第一次碰到某個 App 會問:「讓 {Bot} 看到「{App}」,並在其中點擊和輸入:{動作}」。選「一律允許」就記成這個 Bot 對這個 App 的授權;設定頁可以移除。
- 直接操作模式下不問。
接管與停止(你的 Mac)
- Bot 在你的 Mac 上動滑鼠或鍵盤時,螢幕最上方中間會浮出一條橫幅(永遠在最上層,不會被其他視窗蓋住):紅點「{Bot} 正在操作你的電腦」,右邊「取得控制權」和「停止」。最後一個動作後 8 秒(估計值)自動收起。
- 取得控制權:橫幅變成「你正在操作,Bot 已暫停」,按鈕變「交還給 Bot」。這段時間 Bot 的滑鼠鍵盤動作會被擋下,它會收到「使用者正在自己操作這台電腦(已取得控制權)。請等他交還控制權後再操作」。截圖仍可以。
- 停止:直接停掉那個 Bot 這一回合的工作。
示範教學(原版:「錄下你執行任務的過程。{Bot} 會學習這些步驟,之後可以自行再次執行。」)
- 在設定 → 電腦 →「示範教學」,替目前選的 Bot 輸入任務名稱(例如「匯出本月報表」),按「開始錄製」。
- 設定視窗會關掉,螢幕上方出現「{Bot} 正在觀看並學習 分:秒」(紅點閃爍),右邊「完成」「取消」。
- 照平常的方式操作。AnyBot 只「聽」點擊、打字和捲動,不會擋住或改變你的操作;點在 AnyBot 自己視窗上的不算。
- 錄製時每 0.5 秒拍一張螢幕畫面(寬 1280,需要「螢幕與系統錄音」權限),完成後用 ffmpeg 合成影片(原版也是用 ffmpeg 錄影);沒有 ffmpeg 時保留每一步的畫面。每一步都留一張「做這一步之前」的畫面。
- 示範卡片上有「播放錄影」,展開步驟後每一步有「畫面」可以打開。
- Bot 有新工具「view_demo_step」(示範名稱+第幾步),可以看那一步當時的畫面,照著找按鈕;不用問你。
- 按「完成」後整理成步驟,例如:
- 切到「Safari」,在「Safari」點 (50, 25)
- 在「Safari」輸入「hi」(打錯刪掉的字會一起刪掉)
- 按 return
- 按 cmd+c
- 切到「備忘錄」,在「備忘錄」連點 2 下 (150, 100)(0.4 秒內同一個位置算連點,估計值)
- 在「備忘錄」往下捲動(1.5 秒內連續的捲動算一次,估計值)
- 座標換算成截圖上的位置,Bot 可以直接用。
- 聊天上方顯示「已記下「名稱」(N 個步驟)。之後跟 Bot 說「照示範做 名稱」就可以。」
- 每個 Bot 的示範列在卡片下面,可以展開看步驟或刪除;同名的會被新的取代。
- Bot 的系統指示會附上它學過的示範,並提醒它每一步先截圖確認、畫面不同就找對應的按鈕。
- 第一次需要 macOS「輸入監控」權限:沒開時 AnyBot 會打開那個設定頁,並說「macOS 還沒讓 AnyBot 觀看你的操作。我已經打開「系統設定 → 隱私權與安全性 → 輸入監控」:把 AnyBot(或「終端機」)打開,再按一次「開始錄製」。」
權限
- 截圖要「螢幕與系統錄音」權限。沒開時,AnyBot 會打開那個設定頁並說:「macOS 還沒讓 AnyBot 錄製螢幕,所以看不到畫面。我已經打開「系統設定 → 隱私權與安全性 → 螢幕與系統錄音」:把 AnyBot(或「終端機」)打開,再叫我試一次。只要開一次。」
- 滑鼠和鍵盤要「輔助使用」權限,沒開時的說法類似。
- 在 AnyBot 裡:
- 第一次看螢幕會問一次(「看你的螢幕畫面」)。
- 第一次動滑鼠或鍵盤也會問一次(「操作你的滑鼠和鍵盤」)。
- 兩者都可以一律允許;直接操作模式下不問。
座標
- 用截圖上的像素位置。截圖的大小只看螢幕大小(長邊 1,024),所以換算不用記「上一張截圖」:還沒截圖也能點,每個 Bot、手機看到的都是同一個尺寸。
- 例如寬 1,470 點的螢幕送出寬 1,024 的圖,圖上 (512, 333) 就是螢幕上的 (735, 478)。
- 或用截圖上的編號(ref):點那個控制項的中心。那個 App 不在最前面時先把它叫到前面,免得點到蓋在上面的視窗。
- 手機網頁看螢幕時:Bot 的電腦送原尺寸畫面,這台電腦送和 Bot 一樣大小的截圖;手機點的位置照它拿到的那張畫面換算,是「你」在操作(不經過 Bot 的工具,你取得控制權時也照樣能點)。以前手機的點擊借用 Bot 上一張截圖的比例,點 Bot 的電腦會偏到右下(多 1.25 倍)或要求先截圖。
- 你自己的滑鼠和鍵盤不會被凍住。
「看你的螢幕」(computer_use_screenshot)
- 只拍主螢幕,沒有快門聲。
- 長邊縮到 1,024,例如 2940×1912 會變成 1024×666;短邊不小於 8。
- JPEG 品質依序試 85、70、55,取第一個小於 1 MB(1,048,576 位元組)的。這些都取自原版。
- 只把最近 3 張截圖給模型看(估計值),較早的改成「(較早的截圖已省略)」。截圖不會存到硬碟。
- 成功:「你的螢幕截圖(寬×高)。之後的座標請用這張圖上的像素位置。」
「點一下」(computer_use_click)
- 參數:x、y、左/右/中鍵、點幾下(1–3)、修飾鍵。
- 先移過去,按下後停 0.03 秒再放開;連點時每下隔 0.08 秒(取自原版)。
- 結果:「已點 (x, y)。」或「已點 e7(按鈕「7」)。」,加上新畫面。
「打字」(computer_use_typing)
- 任何語言都可以,包括中文。可以給 ref(先點那個欄位);submit=true 打完再按 return。
- 每段最多 20 個字元單位,不會把一個字切斷。每段按下後停 0.035 秒再放開,段與段之間隔 0.02 秒(取自原版)。
- 結果:「已打字(N 個字)。」
「按鍵」(computer_use_press_key)
- 例如 return、tab、escape、delete、up、cmd+c、cmd+shift+t、cmd+space。
- 多個鍵用空白分開,依序按,例如「cmd+a delete」。
- 每個鍵按住 0.035 秒,鍵與鍵之間隔 0.02 秒(取自原版)。可以指定按多久,最多 5 秒。
- 可用的鍵:
- return/enter、tab、space、delete/backspace、escape、forwarddelete、home、end、pageup、pagedown、方向鍵、F1–F12。
- a–z、0–9 和常見符號,也可以寫名字:slash、comma、period、semicolon、quote、minus、equal、grave、bracketleft/bracketright、backslash。
- 不是按鍵的單一字元(「@」「?」)直接打出來。
- 修飾鍵:cmd、shift、option、control(也聽得懂 command、alt、ctrl 等寫法)。
- 錯誤:「不認得「X」這個鍵」「不認得「X」這個修飾鍵」。
其他操作
- 「捲動」(computer_use_scroll)
- 往上、下、左、右,預設 3 格,最多 50 格。
- 結果:「已捲動 {方向} N 格。」
- 「移動滑鼠」(computer_use_mouse_move)
- 例如讓滑過才出現的選單顯示出來。
- 結果:「已移動滑鼠。」
- 「拖曳」(computer_use_drag)
- 沿著一串點拖過去,第一點按下、最後一點放開,每步隔 8 毫秒(估計值)。
- 至少要兩個點。
- 結果:「已拖曳(N 個點)。」
Mac 內建 App(原版的裝置工具,名稱一樣)
| 工具 | 做什麼 | 權限 |
|---|---|---|
| ios_read_reminders | 看提醒事項(可指定清單、關鍵字、是否含已完成) | 每個 App 問一次「讀取你的「提醒事項」」 |
| ios_write_reminders | 新增、修改、完成、刪除提醒事項 | 問「修改你的「提醒事項」」,可一律允許 |
| mobile_read_calendar | 看某段時間的行程 | 讀取:問一次 |
| mobile_write_calendar | 新增、修改、刪除行程(沒給結束時間就排 1 小時) | 修改:可一律允許 |
| mobile_read_contacts | 用名字、電子郵件或電話找人,最多 50 筆(原版一次 50 筆) | 讀取:問一次 |
| mac_read_notes | 搜尋備忘錄,或讀一則(最多 20,000 字,原版的上限) | 讀取:問一次 |
| mac_write_notes | 新增(要有標題)或接在某則後面(要給 id 和目前的標題;標題變了會請 Bot 重讀) | 修改:可一律允許 |
| mac_read_mail | 搜尋郵件(關鍵字、信箱、只看未讀、最近幾天),或讀一封(最多 20,000 字) | 讀取:問一次 |
| mac_draft_mail | 在「郵件」打開草稿(新信要有收件人;也可以回覆某封),由你自己按寄出 | 修改:可一律允許 |
| mac_send_mail | 直接寄出 | 每一封都問,沒有「一律允許」,直接操作模式也一樣 |
| mac_mail_accounts | 列出郵件帳號和地址 | 讀取:問一次 |
| mac_send_message | 用「訊息」傳 iMessage/簡訊 | 每一則都問 |
- 透過 macOS 的自動化執行,第一次用到每個 App 時 macOS 會自己問一次。被拒絕時 AnyBot 會打開「系統設定 → 隱私權與安全性 → 自動化」並說明要打開哪個 App。
- 每次最多等 30 秒(原版 30 秒)。
- 搜尋郵件時最多看最近 300 封(估計值,郵件 App 的腳本很慢)。
附加檔案和圖片
- 輸入框左下角「+」:打開 Finder 選檔案(可以一次選很多個)。也可以把檔案拖到視窗上(整個視窗會變淡,顯示「放開以附加檔案」),或在輸入框按 ⌘V 貼上剪貼簿裡的圖片(例如 ⌃⇧⌘4 截的圖)。
- 等著送出的附件排在輸入框上方:圖片顯示縮圖,其他檔案顯示檔名和大小,每個都有 × 可以拿掉。只有附件、沒有文字也可以送出。
- 每個附件會複製一份到 AnyBot 的資料夾,原檔搬走也不影響聊天。最大 50 MB(估計值)。資料夾不能直接附加。
- 送給模型時:
- 圖片:縮成跟截圖一樣(長邊 1024、最大 1 MB),跟你的文字一起送(OpenAI 相容和 Claude 兩種格式都支援)。HEIC、TIFF 等先用 macOS 轉檔。
- 文字檔、程式碼:直接讀內容;Word、RTF、Pages、HTML 用 macOS 的 textutil 轉成文字;PDF 在有 pdftotext 時讀內容。每個最多 20,000 字。
- 其他檔案:告訴 Bot 檔案在哪裡,讓它用工具處理。
- 「Bot 的電腦」正在執行時,附件也會放進那個 Bot 的資料夾
附件/,並告訴 Bot 位置。
- 聊天裡你的訊息上方顯示附件;點一下用預設的 App 打開。
- Bot 工作中送出附件時,文字內容會補充給正在進行的工作(圖片要等下一回合)。
語音輸入
- 輸入框的麥克風圖示:按一下開始錄音,變成紅色閃爍的「● 分:秒 完成」;再按一下停止,顯示「轉成文字…」,完成後文字放進輸入框(接在原本的文字後面),由你檢查後送出。
- 錄音用 macOS 內建的錄音功能,不用另外安裝。第一次 macOS 會問麥克風權限;被拒絕時 AnyBot 會打開「系統設定 → 隱私權與安全性 → 麥克風」。
- 轉文字用「設定 → AI 供應商 → OpenAI」的金鑰(依序試 gpt-4o-mini-transcribe、whisper-1)。沒有金鑰時會說明要去哪裡填。
- 最長 10 分鐘(估計值),到了自動停止。
語音聊天(朗讀回答)
- 輸入框的喇叭圖示:打開後,這個 Bot 每次回答完都會用 macOS 內建語音唸出來(中文用台灣的「美佳」)。標題、粗體、連結會整理成好唸的文字,程式碼只說「程式碼略過」。
- 正在唸的時候按喇叭會停止這一段;開始語音輸入時也會先停。再按一次(沒在唸時)就關閉朗讀。
- 搭配語音輸入,就能用說的跟 Bot 來回對話。每個 Bot 各自記住開或關。
通話模式(即時語音對話)
- 聊天頂部的「通話」:開始後不用按任何鍵。AnyBot 一直聽,你講完(安靜 1.2 秒,估計值)就停止錄音、轉成文字、送給 Bot;Bot 回答後用語音唸出來,唸完再繼續聽。30 秒沒人說話就繼續等下一句。
- 頂部紅色按鈕顯示目前在做什麼:「● 正在聽… / 聽懂中… / 想一下… / 正在說… 結束通話」,按一下結束。
- Bot 要你允許某個操作時,會等你按完再繼續。轉文字用 OpenAI 的金鑰;聲音偵測用 macOS 錄音器的音量(大於 −38 dB 算有說話,估計值)。
- 原版用 xAI 的即時語音服務;AnyBot 是「聽 → 回答 → 唸」的輪流方式,不能在 Bot 說話時插話(按結束或喇叭可以打斷)。
分享 Bot(匯出、匯入)
- Bot 選單(右鍵或「⋯」)→「匯出 Bot(分享給別人)…」:選位置存成
.anybot檔。帶走外觀、供應商和模型、指示、例行任務、示範的步驟;不會帶走聊天記錄、API 金鑰、Token(例行任務的 token、apiKey、secret 會清空)、你的「一律允許」授權、示範的錄影和畫面。 - 「匯入 Bot…」:選
.anybot檔,變成一個新的 Bot。事件觸發的例行任務會先暫停,因為需要新主人自己的 Token;匯入後會提醒。檔案來自較新版本時會請你先更新。
訊息管道(Slack、Discord、Telegram)
- 設定 → 「訊息管道」。原版有 Slack、Teams、Discord 和訊息管道;它靠自己的伺服器接收訊息。AnyBot 沒有對外的網址,所以用你自己的 Bot Token 定期去看新訊息:
- Slack:每 3 秒看一次指定頻道(估計值),回覆在原訊息的討論串。提到 Bot 的「@Bot」會被拿掉。
- Discord:每 3 秒看一次指定頻道,回覆時引用原訊息;超過 2,000 字自動分段。
- Telegram:長輪詢(等 25 秒),可以只回某個聊天 ID,留空就回所有私訊;超過 4,096 字自動分段。
- 其他 Bot 的訊息和自己的訊息都不回;第一次連上時從「現在」開始,不會回覆舊訊息。
- 收到訊息時,指定的 Bot 會收到「💬 Slack「客服群」的 小明:…」並開始工作,就像你傳訊息給它;它在工作中時會插進同一回合。回合成功結束後,它最後的回答會自動傳回去;出錯時傳「抱歉,這次沒有完成,請再試一次。」;你按停止就不回。
- Bot 的系統指示會告訴它:對方不是使用者本人,要簡潔、不要透露你的私人資料,要動到你的電腦或帳號前先確認。
- 每個管道一張卡片:種類、名稱、狀態點(綠色「已連上,等待新訊息(收到 N 則)」,紅色顯示錯誤)、「開啟」勾選、「移除」,以及由哪個 Bot 回覆。
- 新增:選 Telegram/Slack/Discord,填名稱、回覆的 Bot、Token(每種都有怎麼拿 Token 的說明)、頻道或聊天 ID;「測試 Token」會顯示連上的帳號名稱。
- AnyBot 開著時才會收訊息。
- Mac「訊息」(iMessage/簡訊):讀這台 Mac 的訊息資料庫看新訊息(要給 AnyBot「完全取用磁碟」權限),用「訊息」回覆;可以只回某個電話或 Apple ID。
- 郵件:每 30 秒看「郵件」的未讀信(可以指定信箱),讀完整封後交給 Bot,回信主旨自動加「Re:」,寄回寄件人。
- Microsoft Teams:用你自己的 Microsoft 帳號登入,不需要公開網址。填 Entra 應用程式(用戶端)ID 和租用戶(留空 = 公司或學校帳號),按「登入 Microsoft」:AnyBot 打開微軟的登入頁並顯示代碼,你輸入代碼、登入後就完成(裝置碼登入)。之後每 5 秒看一次聊天(
chat:<聊天 ID>)或頻道(<團隊 ID>/<頻道 ID>),在聊天裡回覆、在頻道裡回在討論串。Bot 以你的身分回覆;微軟換發的新登入權杖會自動保存。
連接器(MCP)
- 設定 →「連接器」。接上 Model Context Protocol 伺服器,Bot 就能用它的工具(原版的 MCP 用戶端)。
- 本機伺服器填指令(例如
npx -y @modelcontextprotocol/server-filesystem ~/Documents)加環境變數;遠端伺服器填網址(Streamable HTTP,JSON 或 SSE 回應都可以)加標頭。 - 每個連接器一張卡:狀態點(「已連上,N 個工具」/錯誤原因)、開啟、移除、「給 Bot 的使用說明」(原版的 MCP 自訂說明,會放進 Bot 的系統指示)。下面列出所有可以用的工具。
- 工具名稱給模型看時是
mcp__<連接器>__<工具>(最多 64 字;中文名稱的連接器用一段固定代碼)。 - 權限:每個連接器第一次被用時問「使用連接器「X」的工具:…」,可以一律允許;直接操作模式下不問。
- 工具回傳的文字、圖片都會交給 Bot;一次最多等 120 秒(估計值)。
記憶、技能、範本
- 記憶:跟 Bot 說「記住我喜歡靠窗的座位」,它會用 remember 記下來;「忘記…」用 forget。每個 Bot 最多 200 條、每條 500 字(估計值),每次聊天都帶著。Bot 設定裡的「記得的事」可以一條條刪。
- 技能:教 Bot 一套做法後請它「存成技能」(save_skill),所有 Bot 共用;系統指示只列名稱和一句說明,Bot 要用時先用 use_skill 讀完整做法。設定 →「連接器」頁的「技能」卡可以刪除。
- 範本:側邊欄「+」按右鍵 →「從範本建立」:研究助理、寫作夥伴、電腦助手、客服助理、開發助手,各有角色說明、指示、頭像和顏色。Bot 也能用 create_bot 的 template 參數建立。
保險庫(照原版重做,2026-11-04)
- 設定 → 保險庫:「新項目」選單(登入資訊/卡/聯絡資訊/匯入)、分頁(全部/登入資訊/卡片/聯絡資訊,含數量)、搜尋保險庫、每種的空白提示和底部說明。
- 登入資訊:網站(最多 10 個,子網域也會填)、使用者名稱、密碼、提示。檢視時密碼一律顯示成 ••••,沒有顯示或複製鈕;編輯時密碼留空就不變。
- 卡片:卡號(檢查碼與卡別)、有效期限、安全碼、持卡人、暱稱、帳單地址(可用聯絡資訊的地址)、提示。存好後卡號鎖定,安全碼不能再看。
- 聯絡資訊:姓名、地址、多個電話和電子郵件(可設為主要)、標籤、提示。
- CSV 匯入:自動辨識 1Password、Chrome/Edge、Safari、Firefox、Bitwarden、LastPass(含卡片),預覽、略過重複、只收 https、進度條可停止、匯入摘要。
- 存放:這台電腦上的加密檔 vault.bin(AES-256-GCM),金鑰放在系統鑰匙圈(「AnyBot vault key」)。畫面和 Bot 只拿得到不含密碼、卡號、安全碼的資料。以前存在鑰匙圈的 AnyBot 登入會自動搬進來。
- Bot 的工具:
vault_list(只有可看的欄位)、browser_fill_login、browser_fill_card、browser_fill_contact。每次填入都先問;登入用在沒存過的網站會警告「只有在它與已儲存的網站屬於同一服務時才允許。仿冒網站可能會竊取你的密碼。」且不能一律允許;卡片每次都問。付款服務框架(iframe)裡的卡號欄填不進去,會請使用者自己填。 - 還沒做:1Password 服務帳戶連線(原版的「Shared with Grok Bot」保管庫)、安全表單、刷卡相機。
檔案預覽、Bot 做的頁面
- Bot 用
open_for_person把它做好的網頁、圖表、報告、圖片、文件在你的螢幕上打開(網址也可以)。在 Bot 的電腦上做的檔案會先複製到這台 Mac。
頁面(Bot 做、Bot 持續更新的報告)
- 你請 Bot 追蹤、整理、比較一件之後還會回來看的事(例如「幫我追蹤一下台灣 FSD 狀況」),它用
write_page做成一頁:先寫現況,再寫細節和來源(附日期)。回答裡用「標題」連到它,回答下面出現頁面卡片(標題、開頭幾行、頁面圖示、「頁面 · 更新時間」、最近一次更新了什麼),點一下打開。 - 頁面可以放表格、Mermaid 圖表(圓餅、長條、折線、時間軸…),以及頁面專用的區塊:
stats 數字卡片、steps 進度(✓ 完成、◉ 進行中、○ 還沒到)、> [!NOTE]/[!TIP]/[!WARNING]/[!IMPORTANT]提示框。這些區塊在聊天裡也能用。 - 要定期追蹤時,Bot 會同時設例行任務:每次先
read_page、查新消息,有實質進展才更新頁面並告訴你;沒有就說「沒有新消息」,頁面不動。 - 每次更新保留上一版(最多 10 版),打開頁面後下方「版本紀錄」可以看舊版。也可以複製成 Markdown、存成檔案(到「下載」)、刪除。
- 右側面板「資料庫」最上面列出這個 Bot 的頁面。手機也能看:聊天裡的卡片、頁面連結、完整頁面(圖表由 AnyBot 畫好傳過去)。
- 頁面存在大腦上,螢幕電腦和手機看到的是同一份。
生活卡片
- Bot 用
show_card把機票、餐廳或地點、天氣、商品、活動整理成卡片顯示在聊天裡:圖示、標題、副標、最多 12 列「項目/內容」,以及「查看來源 ↗」。
聊天:群組、表情回應、引用、討論串、匯出、會議
- 群組聊天:「+」按右鍵 →「群組聊天(好幾個 Bot 一起回答)」。在 Bot 設定的「群組成員」勾選成員(至少一個)。你傳一則訊息後,成員依序回答,每個用自己的模型、指示、記憶和電腦;每則回答顯示那個 Bot 的頭像。後面的成員看得到前面的回答(標成【名字】,但看不到別人的工具步驟和結果),被要求補充不同觀點、不要重複。某個成員出錯或被停止,這一輪就停下來。輸入框左下角顯示「成員:…」取代模型選單。
- 表情回應:滑鼠移到 Bot 的回答上,可以按 👍 ❤️ 😂 🎉 🙏;回應顯示在回答下面,按一下可以拿掉;Bot 下一回合會知道你的回應。
- 引用:回答下的「引用」:輸入框上方出現「引用:…」(左邊一條強調色),送出時引用的內容會變成 Markdown 引言放在你的訊息前面。
- 討論串:Bot 選單 →「開始新對話」:目前的對話收起來(用第一則訊息當標題,最多保留 50 個),聊天重新開始;「過去的對話」可以切回任何一個(目前的會先收起來)。
- 匯出文字記錄:Bot 選單 →「匯出文字記錄…」存成 Markdown(你的訊息、附件名稱、Bot 的回答、工具步驟、摘要)。
- 錄會議:Bot 選單 →「錄會議…」:用麥克風錄音(最長 2 小時,估計值),頂部顯示紅色「● 正在錄會議 · 結束」。結束後轉成文字記錄,當作附件放進輸入框,並幫你打好「這是剛才會議的文字記錄,請整理:重點、做了哪些決定、待辦事項(誰、做什麼、什麼時候)。」,由你按送出。
25. 例行任務
每個例行任務記錄的內容
- 編號、標題
- 每次要做什麼
- 排程
- 是否暫停
- 建立時間、上次執行、下次執行
- 用哪台電腦
排程可以怎麼設
- 每天/每週/每月/每年,每 N 個單位(預設 1)。
- 每週要選星期幾。
- 每月可以選幾號,或「第 N 個星期幾」(1–4,或最後一個)。
- 每年選月份和日期。
- 時間用 24 小時制(例如 09:00,也接受 7:30)。
- 可以設時區;沒設就用你在設定裡選的時區。
自動修正與檢查
- 每 0 個單位會改成 1。
- 每月沒有指定日期:設成 1 日。
- 每年沒有指定月份:設成 1 月。
- 每週沒有指定星期幾:「每週的例行任務要指定星期幾…」
- 時間看不懂:「時間「X」看不懂,請用 24 小時制的 HH:MM,例如 09:00」
- 日期超出範圍:「每月的日期要在 1 到 31 之間」
畫面上的描述(照原版文字)
| 情況 | 文字 |
|---|---|
| 每天 | 「每天」 |
| 每 N 天 | 「每N 天」 |
| 每週一到週五 | 「每個工作日」 |
| 每週指定幾天 | 「每週的週一、週三」,每 N 週則為「每N 週的…」 |
| 每月幾號 | 「每月D日」,每 N 個月則為「每N 個月的D日」 |
| 每月第幾個星期幾 | 「每月的第N個星期X」或「每月的最後一個星期X」 |
| 每年 | 「每年M月D日」 |
- 描述後面接時間,例如「每個工作日 09:00」。
- 時區跟這台電腦不同時,結尾加「(時區)」。
下次什麼時候跑
- 一定是現在之後的時間。
- 「每 N」從建立那天開始算。
- 遇到月底:
- 31 日在只有 30 天的月份,改在最後一天跑。
- 2 月 29 日只在閏年跑。
- 依例行任務自己的時區計算,最多往後找 5 年。
- 夏令時間:
- 時間重複時,用比較早的那一次。
- 時間不存在時,那天跳過。
- 下次時間顯示成「今天 09:00」「明天 09:00」或「11月5日 09:00」。
怎麼觸發
- 每 1 秒檢查一次。
- Bot 忙的時候,等它閒下來再跑;每個 Bot 一次只觸發一個。
- Bot 收到的訊息是「⏰ 例行任務「標題」時間到了:要做的事」,然後像平常一樣工作。
- 如果那個 Bot 不在目前畫面上,會標成未讀。
例行任務視窗(頂部「例行任務」按鈕)
- 標題「(Bot) 的例行任務」,寬 480 px。
- 沒有任務時顯示:
- 「例行任務是這個 Bot 依排程重複執行的任務。請在聊天中請它設定一個。」
- 「例如:「每個工作日早上 9 點整理新聞給我」」
- 每張卡片:
- 標題(暫停中的加「已暫停」)。
- 排程,接著是「·下次 (時間)」。
- 要做的事。
- 按鈕:
- 「暫停」/「繼續」:繼續時會重新算下次時間。
- 「立即執行」:會切到這個 Bot 並開始做。
- 「刪除」:紅字。
- 刪除確認視窗:
- 標題「刪除例行任務?」
- 內文「這會刪除例行任務並停止其後續執行。此操作無法復原。」
- 視窗最下面:「要新增或修改,直接在聊天裡告訴 Bot。」
更多排程寫法(原版有的)
- 「每 N 分鐘」(最少 5 分鐘,估計值,從建立時間開始算)、「每小時」「每 N 小時的 MM 分」。
- 「僅一次」:下一次符合的時間執行一次就停。
- 「左右」(彈性時間):在指定時間前後 15 分鐘內(估計值)的某個固定時刻執行,畫面上寫「09:00左右」。
- 都是在聊天裡請 Bot 設定(create_routine 的 frequency 可以是 minutely、hourly,加上 once、flexible)。
事件觸發的例行任務(原版的觸發種類)
在聊天裡跟 Bot 說,例如「PR 合併時幫我寫更新紀錄」「CI 失敗就通知我並查原因」「Slack #部署 有人提到『回滾』時處理」「週會開始前 10 分鐘把議程整理好」。Bot 會用 create_routine 的 trigger 設定:
| 種類 | 怎麼知道發生了 | 可以設定 |
|---|---|---|
| GitHub | 用你的 Token 每 60 秒查存放庫事件和 CI 結果(GitHub 要求的最短間隔) | 存放庫;事件:PR 建立/更新/合併/關閉/留言、CI 通過/失敗、審查核准/要求修改/留言、討論串解決/重新開啟、議題被指派/建立、推送;限定使用者、分支、PR |
| Slack | 每 10 秒看頻道(估計值) | 任何訊息、被 @、提到某個字、有人加上某個表情回應;Token 留空時用「訊息管道」的 Slack Token |
| Linear | 每 60 秒查議題(估計值) | 議題建立、狀態變更;限定團隊 |
| Sentry | 每 60 秒查議題 | 建立、指派、解決、封存、變回未解決、有變更;限定專案 |
| PagerDuty | 每 60 秒查事故 | 觸發、確認、解決、有變更;限定服務 |
| 郵件 | 每 60 秒看「郵件」收件匣 | 寄件人包含、主旨包含 |
| Webhook | AnyBot 在這台 Mac 開一個網址 POST http://127.0.0.1:8792/hooks/<編號>,要帶 Authorization: Bearer <密鑰>(原版的驗證方式) |
每次呼叫跑一次,呼叫的內容會交給 Bot;密鑰錯誤回 401 |
| 行事曆(跟著行事曆) | 每 30 秒看「行事曆」 | 活動開始時或開始前 N 分鐘;限定行事曆、標題;活動被移到別的時間,會在新時間觸發(原版:「無論行事曆將其移到何時」) |
| 群組 | 裡面任何一個觸發就跑 | 至少兩個觸發條件(原版規則) |
- 觸發時 Bot 會收到「⚡ 例行任務「名稱」被觸發:(發生了什麼)要做的事:…」,像你傳訊息給它一樣開始工作。
- 第一次連上時只記住目前狀態,不會把以前的事件當成新的。AnyBot 開著時才會檢查。
- 「例行任務」視窗顯示「⚡ 觸發條件」和連線狀態(例如「已連上 GitHub,等待事件」或錯誤原因)。暫停的不會檢查。
26. Bot 可以直接操作 App 的功能
你可以跟 Bot 說「每天早上 9 點幫我…」「把你換成 Claude」「切成深色模式」,它會自己操作 App。
| 功能 | 做什麼 | 先問嗎 | 完成時說 |
|---|---|---|---|
| 「查看例行任務」 | 列出這個 Bot 的例行任務 | 不用 | 每行「#編號 「標題」:排程 · 下次…/已暫停/沒有下次」;沒有時「還沒有例行任務。」 |
| 「建立例行任務」 | 照標題、內容、排程、電腦建立 | 不用 | 「已建立例行任務 #…」 |
| 「修改例行任務」 | 改標題、內容、排程,或暫停、恢復 | 不用 | 「已更新 #…」 |
| 「刪除例行任務」 | 刪除 | 要先問 | 問:「刪除例行任務:「標題」。這會停止它之後的執行,無法復原。」 |
| 「立即執行例行任務」 | 馬上跑一次 | 不用 | 「已開始執行「標題」」 |
| 「查看 Bot」 | 列出所有 Bot | 不用 | 「「名稱」(主要 Bot)· 供應商 · 模型:描述」 |
| 「建立 Bot」 | 建新的 Bot | 不用 | 「已建立 Bot「名稱」(供應商 · 模型)」 |
| 「修改 Bot」 | 改名稱、描述、指示、供應商、模型、釘選、預設電腦 | 不用 | 「已更新「名稱」的…(現在:供應商 · 模型)」 |
| 「傳訊息給其他 Bot」 | 把工作交給另一個 Bot 並叫醒它 | 不用 | 「已交給「名稱」,它的回覆會出現在它自己的聊天裡。」對方收到「📨 來自「發送者」:內容」 |
| 「查看電腦」 | 列出能用的電腦和狀態 | 不用 | 例如「你的電腦:這台 Mac,已允許」 |
| 「修改設定」 | 改主題、強調色、時區 | 不用 | 「已更新:主題 → …」 |
- 「在這台電腦上執行」只有你能打開,Bot 不能自己打開。
- 修改 Bot 怎麼找對象:先找名稱完全一樣的(不分大小寫),找不到再找名稱裡有那幾個字的。只換供應商時,模型會自動改成那家的建議模型。
- 可能看到的錯誤:
- 「找不到叫「X」的 Bot」
- 「沒有「X」這個供應商」
- 「不能傳訊息給自己」
- 「「X」不是有效的時區名稱(例如 Asia/Taipei)」
- 「沒有要改的項目」
27. 通知
- 什麼時候通知:AnyBot 視窗不在最前面,或你 90 秒沒碰鍵盤滑鼠。每 10 秒檢查一次你在不在。
- Bot 做完時:標題「(Bot) 完成了」,內文是回覆的第一行(最多 80 字),有 Glass 提示音。
- Bot 等你允許時:標題「(Bot) 需要你允許」,Dock 圖示也會跳動。
- 通知內文最多 180 字。
- 可以在「設定 → 一般 → 通知」關掉。
- 通知只在 macOS 上有。
28. 版本、更新與重新啟動
- 版本就是程式建好的時間,顯示在側邊欄最下面和「設定 → 一般 → 版本」。
- 偵測新版:每 10 秒檢查一次程式有沒有換新。有新版時,側邊欄出現「⬆ 重新啟動以更新」。
- 你離開時自動更新,要同時符合:
- 「在你離開時自動更新用戶端」有開(預設開)。
- 有新版。
- 螢幕鎖定或螢幕保護程式開著。
- 10 分鐘(600 秒)沒動作。
- 沒有 Bot 在工作,也沒有在等你允許的請求。
- 檢查時間:啟動後 30 秒檢查第一次,之後每 1 小時再加 0–300 秒的隨機延遲。這些數字取自原版。
- 重新啟動:
- 先停掉所有工作和背景指令,再存檔。
- 小幫手每 0.2 秒看一次舊的 App 關了沒,關了才打開新的,不會同時開兩個。
- 新開的 App 一律用一般模式啟動。
- 中斷修復:App 關閉時還在回覆的 Bot,下次打開時會改成「(這次的回應被中斷了…)」,還在執行或等待的步驟改成「–」,讓你可以重試,不會看起來一直卡住。
29. 管理員鎖定
- 公司管理員可以鎖兩個開關:
- 「直接操作」(AllowDirectMode)
- 「在這台電腦上執行」(AllowLocalExecution)
- 設定位置:
- macOS:系統偏好設定網域 com.anybot.AnyBot,也可以用 MDM 強制。例如
defaults write com.anybot.AnyBot AllowDirectMode false。 - 其他系統:家目錄的 .anybot/policy.json。
- macOS:系統偏好設定網域 com.anybot.AnyBot,也可以用 MDM 強制。例如
- 值怎麼解讀:
- 沒設:你可以自由開關。
- true、1、yes:允許。
- false、0、no:鎖成關閉。
- 其他看不懂的值:也鎖成關閉。
- 被鎖住時:
- 設定裡顯示「🔒 由你的管理員設定,無法變更」。
- Bot 要用你的電腦時直接被拒,不會問你。
- 每次打開設定都會重新讀取。
30. 存下來的資料
- 存放位置:這台電腦的應用程式資料資料夾裡的「AnyBot」資料夾,聊天和金鑰都不會上傳。
- 怎麼寫入:先寫暫存檔再換名,避免寫到一半壞掉。
- 打不開時:檔案壞掉或一個 Bot 都沒有時,改用第一次啟動的預設資料。
- 整體設定(括號內是預設值):
- 主要 Bot(1 號)、選中的 Bot
- 主題(淺色)、強調色(黑色)
- 每家供應商的金鑰、網址、預設模型和抓過的模型清單
- 側邊欄收合與寬度
- 在這台電腦上執行(關)
- SSH 電腦
- 自動審核(關)和兩組規則
- 時區(這台電腦的時區,讀不到就用 Asia/Taipei)
- 通知(開)
- 直接操作(關)
- 自動更新(開)
- 每個 Bot 記錄:
- 名稱、描述、指示
- 形狀、顏色
- 供應商、模型、釘選
- 訊息、未讀
- 電腦工具開關(預設關)、工作資料夾、一律允許清單
- 可讀長度(預設 128,000)
- 例行任務
- 上一回合的結果
- 預設電腦(預設「Bot 的電腦」)
- 每則訊息記錄:
- 誰說的、文字、思考內容
- 哪個模型寫的、是不是錯誤
- 工具步驟
- 是不是摘要、喚醒或插話
- 截圖不存。
- AnyBot 自己的瀏覽器:登入資料存在同一個資料夾的 browser 和 browser-profiles 裡,使用中的設定檔記在 browser-profile.txt。
31. 第一次啟動
第一次打開時沒有任何 Bot,主畫面是「歡迎使用 AnyBot」引導:
- 連上 AI 模型:還沒有任何金鑰時,按「設定模型」打開模型設定;有了就打勾,寫出可以用哪一家。
- 建立你的第一個 Bot:打開建立 Bot 視窗,預設用剛設好金鑰的那一家。第一個建立的 Bot 就是主要 Bot。
- 在別台電腦用過 AnyBot?:「登入帳號」打開帳號設定。
刪掉最後一個 Bot 也會回到這個引導。伺服器(anybot --serve)裝好也是零個 Bot。舊版開過、但五個範例 Bot 從沒用過(沒聊天、沒改名、沒有例行任務和記憶)的資料,更新後會清掉範例,跟新裝一樣。手機頁沒有 Bot 時,請你到電腦上建立。
登入後自動同步(設定 → 帳號,按「登入」之後,不用再按別的):
- 帳號裡有另一台開著、自己思考的 AnyBot(不是手腳、不是在看別台的):改用它當大腦,那邊的 Bot 和聊天出現在這台;連上後自動把這台原本的 Bot(連同聊天)、模型金鑰、技能和連接器搬過去,大腦已經有的會略過。
- 沒有:拿帳號裡最新的備份,把這台還沒有的 Bot 加進來(同名而且聊天相同的算已經有),再把合起來的整份備份回帳號。
截圖和測試用的五個範例 Bot(State::samples):Bot、研究助理、寫作夥伴、電腦助手、本機模型。
32. 外觀:頭像、顏色、主題、字型
頭像
- 12 種形狀:圓角方、圓球、膠囊、蛋、六角、寶石、雲、拱門、星星、愛心、盾牌、石頭。
- 每個頭像都有兩隻斜斜的橢圓眼睛:深色身體配白眼,很淺的身體配黑眼。
Bot 顏色(10 種)
| 名稱 | 色碼 |
|---|---|
| 黑色 | #1C1C1C |
| 紅 | #C82532 |
| 橘 | #D2550A |
| 黃 | #C2730B |
| 綠 | #0D9655 |
| 青 | #0D9381 |
| 藍 | #126FD4 |
| 紫 | #7442D1 |
| 洋紅 | #C82779 |
| 棕 | #86592E |
主題配色
淺色和深色都取自原版:淺色來自原版的樣式表,深色來自原版畫面程式裡的深色色票(每種半透明顏色是「文字色 × 原版指定的透明度」)。
| 用途 | 淺色 | 深色 |
|---|---|---|
| 主畫面 | #FFFFFF | #1F1F1F |
| 頂列 | #FCFCFC | #121212 |
| 側邊欄 | #F5F5F5 | #0E0E0E |
| 浮起面板 | #FFFFFF | #161616 |
| 文字 | #1C1C1C | #F5F5F5 |
| 次要文字 | #1C1C1C 約 68% | #F5F5F5 約 66% |
| 第三層文字 | #1C1C1C 約 56% | #F5F5F5 約 54% |
| 你的對話泡泡 | #1C1C1C(白字) | #F5F5F5 約 18%(淺色字,半透明) |
| Bot 對話泡泡 | #1C1C1C 約 6% | #F5F5F5 約 4% |
| 滑過/選中 | 6%/8% | 6%/8% |
| 邊框 | #1C1C1C 約 12% | #F5F5F5 約 10% |
| 焦點框 | #1E86FC | #1884FC |
| 強調色 | #1680F3 | #1884FC |
| 危險/錯誤 | #CD2834 | #FC2C3E |
| 陰影 | 有 | 深色主題沒有陰影(原版設定為 0) |
字型與字級(取自原版樣式)
- 原版的字級:11、12、13、14、15、17、22、26 px,對應行高 16、16、18、20、22、24、28、32 px。
- AnyBot 的用法:
- 一般文字和按鈕:14
- 小字:12
- 標題和視窗標題:17
- 程式碼:13,行高 18
- 聊天內文:15,行高 22
- 中文和英文都用蘋方-繁,同一套字型,所以基準線和大小對得齊。找不到時依序改用冬青黑體、華文黑體等。
- 程式碼用 SF Mono,沒有就用 Menlo,跟原版一樣。
- 「·」分隔號前後不加空格,因為這套字型的「·」本身已經有間距。
其他
- 圓角:一般視窗 14 px、選單 10 px、按鈕 8 px。
- 選取文字的底色是焦點色。連結用強調色。
33. Bot 收到的系統指示(摘要)
每次回覆前,Bot 都會先收到這些說明:
- 身分:「你是「名稱」。」,加上它的角色描述。主要 Bot 另外知道自己是你的主要窗口,可以把工作交給其他 Bot。
- 現在的日期、時間、星期和時區。
- 可以直接操作 App:
- 建立、修改、暫停、刪除例行任務(時間照你的時區)。
- 換模型或供應商、建立 Bot。
- 改主題、強調色、時區。
- 把工作交給其他 Bot。
- 做完要用一句話說結果。
- 上網和瀏覽器:
- 公開網頁直接讀。
- 要登入的網站(Threads、Instagram、Facebook、Gmail、銀行…)用 AnyBot 瀏覽器打開再讀;遇到登入頁就請你登入一次。
- 絕對不要叫你去改瀏覽器的設定或選單,也不要說可以從 Chrome 複製登入。
- 你要換 profile/設定檔/另一個帳號時,用設定檔工具;想用你平常的 Chrome,就用「你的瀏覽器」。
- 操作你的 Mac 畫面:截圖看畫面,再點、打字、按鍵、捲動、拖曳,每一步都再截圖確認。用在檔案和網頁工具做不到的事,例如操作其他 App、在 Chrome 切換設定檔。
- 不要說「我沒有瀏覽器或工具」,要先試。需要權限時 App 會自己跳出來問你。
- 目前的例行任務清單。
- 能用的電腦:Bot 的電腦、你的電腦、SSH 電腦,以及預設是哪一台。
- 工作規則:
- 你說在哪台電腦做就換過去。
- 先看清楚再動手。
- 需要權限時直接用工具,不要叫你自己去改設定。
- 被拒絕就換個方式或問你。
- 跑很久的指令要在背景追蹤,不要重跑。
- 有工具結果證明做完了才能說做完;失敗要照實說。
- 最後是這個 Bot 自己的「指示」。
34. 鍵盤快速鍵
| 按鍵 | 作用 |
|---|---|
| ⌘N | 建立 Bot |
| ⌘, | 打開設定 |
| Enter | 送出(Bot 工作中時是補充給它) |
| Shift+Enter | 換行 |
用輸入法選字時按 Enter,不會誤送出。
35. 示範/截圖模式
給檢查用的模式,平常不會用到。
- 啟動時加上截圖選項:畫面跑 120 格後存成圖片,然後自動關閉。
- 這個模式下:
- 用示範資料,不會存檔。
- 不發通知、不跑例行任務、不檢查更新,也不讀管理員鎖定。
- 示範內容:
- 台南兩天一夜行程的對話(先用 Grok,再換 Claude)。
- 研究助理的「AI 新聞早報」例行任務(每個工作日 09:00)。
- 電腦助手正在等你允許整理照片的指令「mkdir -p 2026-04 2026-05 2026-06 && mv IMG_04*.jpg 2026-04/」,並排入一則補充「2026-06 的照片先不要動」。
- 可以指定要拍的畫面:聊天、設定(AI 供應商)、Bot 設定、選單、收合的側邊欄、例行任務、設定(電腦)、設定(自動審核)。也可以把彈出視窗藏起來,單獨檢查每個畫面。
36. 手機、帳號、雲端主機
原版是「大腦在雲端,手機和電腦是裝置」。AnyBot 的做法如下:
- Bot 的大腦留在 AnyBot 裡,可以放在 Mac 上、一直開著的 Mac mini,或雲端主機。
- 另外有一個很小的「帳號伺服器」(薄後端),負責帳號、轉送、裝置清單、加密備份和推播。
- 架設方式見
relay/README.md。
手機網頁版
- 打開方式:
- 用帳號伺服器時,打開帳號伺服器的網址,用帳號登入;
- 在同一個網路或 Tailscale 時,打開
http://這台電腦:8793,用手機密碼登入。
- 可以「加入主畫面」,像 App 一樣全螢幕打開。顏色跟系統的淺色、深色走。
- Bot 清單:
- 每個 Bot 的頭像顏色、最後一句話;
- 工作中顯示狀態;
- 等你允許時顯示橘色的「等你決定」;
- 有新訊息時顯示藍點。
- 聊天:
- Bot 的回覆用 Markdown 顯示,包含程式碼、清單、連結;
- 工具步驟每步一行,有狀態符號;
- 生活卡片;
- 群組裡每則回覆標出是誰說的。
- 允許請求:卡片固定在輸入框上方,有「允許一次」「一律允許」「拒絕」三個按鈕,跟電腦版同一套規則。
- 輸入:
- Bot 工作中再傳訊息算插話;
- 輸入框空白時,送出鍵會變成停止鍵;
- 可以附加照片或檔案,最大 30 MB;
- 右上角「+」開始新對話。
- 看電腦畫面:
- 「Bot 的電腦」每秒更新一次畫面;在休眠時按「叫醒」。
- 「這台 Mac」要先在設定裡打開才會出現。
- 操作方式:點一下是左鍵;長按是右鍵;點兩下是雙擊;「右鍵:開」之後每次點都是右鍵。
- 「⌨︎ 打字」可以打中文,會打進目前的視窗;還有 Enter、Esc、Tab、⌫ 和捲動按鈕。
- 選單(右上角「⋯」):
- 開啟通知(只有用帳號登入時才有;iPhone 要先加入主畫面);
- 切換到別台 AnyBot;
- 登出這支手機。
- 畫面更新:手機問「有沒有新東西」會等最多 20 秒,有變化就立刻回來,所以不用一直刷新。
設定 › 手機與帳號
- AnyBot 帳號:
- 填帳號伺服器網址、帳號、密碼,可以順便建立新帳號(有邀請碼時要填)。
- 登入後,這台電腦會拿到自己的金鑰,之後保持連線。顯示「已連線」或錯誤原因。
- 電腦不會保存你的密碼,只保存由密碼算出的備份金鑰。
- 可以設定這台電腦在手機上顯示的名字。
- 備份:
- 「每天自動備份到帳號」(預設開),也可以按「立刻備份」。
- 備份在這台電腦加密後才上傳,伺服器打不開。
- 「從帳號備份還原」:把這台電腦的 Bot 換成帳號裡最新的備份,這台電腦自己的手機和帳號設定不會被蓋掉。
- 同一個網路直接連:
- 先設定手機密碼(至少 8 個字),再打開「讓手機直接連這台電腦」。
- 會列出所有可以用的網址,包含 Tailscale 的。
- 換密碼會登出所有手機。密碼錯 5 次要等 1 分鐘。
- 手機可以做什麼(下面兩項預設關閉):
- 從手機看這台電腦的螢幕並操作;
- 裝置連結:讓帳號裡其他的 AnyBot 操作這台電腦。
- 直接連線的裝置:列出手機和最近使用時間,可以個別登出。
- 帳號裡的電腦:列出每台 AnyBot 在線或離線。
不開視窗執行(anybot --serve)
- Bot、例行任務、事件觸發、訊息管道和手機網頁照常運作,你用手機操作。
- 可以跑在 Mac 或 Linux。Linux 版已在 Docker 裡編譯並測試過。
- 環境變數:
ANYBOT_PHONE_PASSWORD:設定手機密碼並打開直接連線;ANYBOT_ACCOUNT=網址|帳號加上ANYBOT_ACCOUNT_PASSWORD:加入帳號,失敗時每 30 秒重試;ANYBOT_HOST_NAME:在手機上顯示的名字;ANYBOT_RESTORE_FROM_ACCOUNT=1:第一次啟動時從帳號備份接手;ANYBOT_DATA_DIR:資料放哪裡;XAI_API_KEY、ANTHROPIC_API_KEY等:AI 金鑰。
- 在伺服器上,Bot 的系統指示會說明「你的電腦」指的是伺服器本身。要用你的 Mac,就選帳號裡那台電腦的名字。
- 沒有視窗,所以需要你允許的事會推播到手機。
- 部署檔:
- 雲端:
deploy/server/(帳號伺服器、Caddy、AnyBot 三合一); - Mac mini:
deploy/mac/com.anybot.serve.plist。
- 雲端:
裝置連結(一台 AnyBot 操作另一台)
- 同一個帳號的另一台 AnyBot 打開「裝置連結」後,會出現在這台 Bot 的電腦清單裡,名字就是那台電腦的名字。
- 可以用的工具:檔案、指令、背景指令、九個螢幕工具,以及 Mac App 工具。
- 權限:
- 看螢幕和操作螢幕,第一次用時各問一次(可以一律允許);
- 指令和改檔案的規則跟 SSH 電腦一樣。
- 詢問會出現在發出動作的那台 AnyBot,也就是手機或那台電腦的視窗。原版是在被操作的那台裝置上詢問。
- 經過帳號伺服器,最多等 35 秒(原版的裝置工具等 30 秒)。
團隊(分享給其他帳號)
- 在「設定 › 手機與帳號 › 分享給團隊」輸入對方在帳號伺服器上的帳號,選擇成員或管理員,按「分享」。
- 對方用自己的帳號登入手機網頁版後,會看到「{電腦名稱}({你的帳號} 的)」。
- 成員可以做的事:
- 看 Bot 清單和聊天;
- 傳訊息、附加檔案。
- 成員的限制:
- 看不到電腦畫面的按鈕;
- 不能開始新對話;
- 不能停止;
- 允許請求只會顯示「等擁有者或管理員決定」。
- 管理員可以做的事:除了裝置連結以外,和擁有者一樣。
- 成員傳的訊息前面會加上「【帳號】」,Bot 知道是誰在說話。
- 需要允許時,只通知擁有者和管理員。
- 權限同時由帳號伺服器和 AnyBot 兩邊檢查:AnyBot 依帳號伺服器告訴它的角色,自己再拒絕一次。
發布網站
- 有登入帳號時,Bot 多一個
publish_site工具,可以把一個 .html 檔,或一個有 index.html 的資料夾,發布成公開網站。- 網址是
帳號伺服器/s/{帳號}-{名稱}/。 - 用同一個名稱再發布會取代舊的。
- 網址是
- 檔案可以在 Bot 的電腦、你的電腦,或 Bot 自己的資料夾。
- 限制:最多 500 個檔案、25 MB;會略過
.開頭的檔案和 node_modules。 - 每個網站名稱第一次發布時會問你:「把 {路徑} 發布成公開網站「{名稱}」(任何知道網址的人都看得到)」,可以選一律允許。
- 安全:發布的網頁在沙盒裡執行(
Content-Security-Policy: sandbox),讀不到同一個網址下手機版的登入資料。 - 帳號伺服器設了
ANYBOT_RELAY_PUBLIC_URL時,回給 Bot 的是公開網址。
通知
以下情況會推播到所有打開通知的手機:
- Bot 需要你允許時;
- 你不在時 Bot 做完事。
「不在」的意思是:沒開視窗、視窗不在最前面,或 90 秒沒動作。用 anybot --serve 時一律推播。
推播內容只有手機解得開(Web Push 加密),點通知會直接打開那個 Bot 的聊天。
驗證過的
- 單元測試:手機 API 的登入和權限、帳號伺服器的註冊/登入/轉送/備份、推播加密(用手機那一端的方法解開)和簽章、密碼和加密。
- 真實測試,手機用 curl 和 Chrome(手機尺寸)模擬:
- 透過帳號伺服器傳訊息,Bot 要在電腦上執行指令時,手機核准兩次後完成,結果回到手機;
- 自動備份上傳;
- 兩台不開視窗的 AnyBot 用裝置連結,一台叫另一台執行指令並拿回結果;
- 直接連線:密碼錯被拒、看 Bot 的電腦畫面(1280×800 JPEG)、上傳附件、有變化 2 秒內通知;
- Linux 版在 Docker 裡跟帳號伺服器放在同一個 Docker 網路:帳號建立後自動加入,手機看得到 Bot 和 Bot 的電腦畫面。
- 截圖:
shots/phone.png、shots/phone-account.png、shots/remote.png。 - 還沒在真的 iPhone 上試過推播通知(需要你的網域和 HTTPS)。
連接器市集(設定 › 連接器)
- 8 個常用連接器,按「加入」就能用:
- files:讀寫「文件」資料夾;
- memory:知識圖記憶;
- thinking:循序思考;
- fetch:抓網頁;
- git;
- time;
- playwright:瀏覽器自動化;
- github:官方遠端伺服器。
- 需要金鑰的(github)會把下面的「新增連接器」表單填好,補上 Token 再按「新增」。
- 本機的連接器要先安裝 Node.js(npx)或 uv(uvx)。
- 驗證過的:不用金鑰的 7 個都實際下載、透過 AnyBot 的連接器程式連上。
- 工具數:files 14、memory 9、thinking 1、fetch 1、git 12、time 2、playwright 25。
- 用 time 實際查了台北時間。
- 測試是
cargo test --release -- --ignored marketplace。 - github 要你的 Token,沒有測。
專屬號碼、打電話、X(設定 › 訊息管道)
- 簡訊(Twilio):
- 填「Account SID:Auth Token」和你的 Twilio 號碼。
- 傳到這個號碼的簡訊會交給 Bot,Bot 從同一個號碼回覆。
- 每 3 秒查一次,不需要公開網址;開始之前收到的簡訊不會回。
- 打電話、傳簡訊:設好 Twilio 後,Bot 多出兩個工具:
place_call:用你的號碼撥出,以中文語音唸兩次訊息;send_sms。
- X:
- 填使用者存取權杖。
- Bot 會每分鐘查一次提及你的貼文,並用回覆的方式回答,長的會接成串。
- Bot 也可以用
post_to_x發文。
- 打電話、傳簡訊、發文每次都會問你,不能設成一律允許,直接操作模式也一樣:
- 「打電話給 {號碼},唸:「{內容}」」
- 「傳簡訊給…」
- 「用你的帳號在 X 發文…」
- 驗證過的:
- 用假的 Twilio 和 X 伺服器檢查要求的格式:Basic 驗證、表單編碼、TwiML 跳脫、回覆的貼文編號。
- 實際跑過一次完整流程:有人傳簡訊進來,Bot 用簡訊回覆;手機核准後 Bot 打出電話。
- 沒有用真的 Twilio 或 X 帳號試過:需要你申請,而且是付費的。
37. 字型、語言、設定分類、右側面板
字型
- 預設用 粉圓體(jf open 粉圓 2.1,SIL OFL 1.1 授權,檔案和授權在
fonts/),直接包進 App。 - 粉圓體沒有的字,改用系統字型(蘋方)補上。
- 設定 › 一般 › 字型可以換回「系統字型」,馬上生效。
語言(跟原版一樣:「選擇 Grok Bot 選單和訊息使用的語言」)
- 可選「自動偵測」(跟 Mac 的語言),或原版同一份 37 種語言清單(原版程式裡的語言表)。
- 選單:
- 繁體中文:原文。
- 简体中文:全部由 macOS 內建轉換產生。
- English、日本語:翻譯了約 370 個常見字串(側邊欄、聊天頂部、輸入框、右側面板、整個設定頁);較少見的訊息仍是中文。
- 其他語言:選單用英文。
- Bot 回答:在指示最後加上「一律用 {語言} 回答」,37 種都適用。
設定的分類(照原版)
- 原版共 7 個分頁:一般、整合、電腦、權限、保險庫、用量與帳單、更新。
- AnyBot 用「模型」(你自己的 AI 金鑰)取代「用量與帳單」,每個分頁都有圖示:
- 一般:
- 帳戶(手機、帳號、團隊、備份,按「管理」進去)
- 外觀(主題、強調色、字型、語言)
- 通知
- Bot(時區)
- 系統(資料位置)
- 模型:AI 供應商和金鑰。
- 整合:訊息管道、連接器、連接器市集、技能。
- 電腦:
- Bot 的電腦
- 在這台電腦上執行
- macOS 權限
- 示範教學
- 其他電腦(SSH)
- 瀏覽器設定檔
- 權限:直接操作、自動審核、「無需詢問直接允許」和「一律詢問」規則。
- 保險庫:登入資料。
- 更新:版本、自動更新、重新啟動。
- 一般:
- 每一項設定都是同一種排法:左邊是名稱加一行說明,右邊是開關或按鈕。
聊天頂部和右側面板(照原版實際畫面)
這部分是打開原版 Grok Bot,用 Chrome 偵錯介面截圖並量了尺寸,照著做的(比對圖:shots/panel-vs-original.png)。
- 頂部:沒有標題列。
- 中間:一顆圓角膠囊,裡面是 Bot 頭像和名字,寬度跟名字一樣,高 40。點它打開或關閉「對話詳細資訊」。
- 右邊:
- 「分享」膠囊按鈕,36 高、1 px 淡邊框(匯出 Bot 檔案);
- 「⋯」圓鈕(Bot 選單);
- 有請求時多一顆「● 需要你允許」。
- 輸入框:右邊有「發起語音聊天」圓鈕,用 Bot 的顏色加聲波圖示,通話中變成紅色停止鈕。
- 對話詳細資訊(右側面板,寬 280):
- 從上到下:
- 右上角 36 px 圓形 ✕;
- 96 px Bot 頭像(點了編輯 Bot)和名字;
- 兩個小分頁「動態|資料庫」。
- 卡片樣式:圓角 12、1 px 淡邊框、內距 4。每列 36 高:圖示 + 文字 + 「›」。分區標題 13 px,淡色。
- 動態:
- 進行中:只有工作中或等你允許時才出現,可以停止或打開請求。
- 建議:
- 新增至 Slack:打開 設定 › 整合;
- 建立例行工作:在輸入框預填「幫我建立一個例行任務:」;
- 加入會議:開始或結束錄會議。
- 例行任務:有的時候才出現,點了打開管理視窗。
- 電腦:
- 「Bot 的電腦」和狀態(執行中/休眠中),右邊是它螢幕的即時縮圖(
shots/computer-card.png)。 - 執行中每 3 秒更新縮圖,綠點表示開著。拍縮圖不會把電腦叫醒。
- 休眠時顯示最後一張畫面(變暗),每 30 秒檢查一次。
- 點了打開「Bot 的電腦」視窗,看完整畫面,也可以取得控制權。休眠中會先叫醒。
- 「Bot 的電腦」和狀態(執行中/休眠中),右邊是它螢幕的即時縮圖(
- 成員:只有群組才有。
- 語音聊天:
- 語音:自動,或這台 Mac 上任何一個聲音,選了會試唸一句;
- 速度:0.75x–2x;
- 語言:自動偵測、中文、English 等,用來轉文字;
- 朗讀每個回答。
- 語音、速度、語言每個 Bot 各自記住,通話和朗讀都會用。
- 資料庫:
- 列出這個對話的檔案,包括附件和 Bot 打開給你看的檔案,依時間分成「本週」「更早」。
- 每組先列 5 個,可以「展開」。
- 圖示依種類:試算表、影片、圖片、文件。
- 名字太長時保留副檔名,例如「orders_….xlsx」。
- 點了打開檔案。
- 從上到下:
對話內容(照原版實際畫面)
比對圖:shots/chat-vs-original.png。
- Bot 的回答:
- 灰色泡泡(深色 #212121、淺色 #F1F1F1),靠左,文字由左往右排。
- 沒有頭像、沒有模型名稱,也不列出工具步驟。每次回答是一個泡泡。
- 你的訊息:Bot 顏色的泡泡,靠右,寬度跟著字數;換行時文字一樣由左往右。
- 日期:兩則訊息隔 30 分鐘以上或跨天時,中間顯示「11月2日週一 上午9:50」,今天只顯示時間。
- 滑過訊息:泡泡旁出現三個小鈕。
- Bot 的訊息:表情回應(6 個常用加 24 個更多)、回覆(引用到下一則)、⋯。
- ⋯ 裡有:複製、重新產生、顯示步驟(N)、模型名稱。
- 「顯示步驟」會展開這次回答的思考過程和每個工具步驟,滑過步驟會顯示結果。
- 你的訊息:回覆和 ⋯(複製)。
- AI 也會按表情:Bot 有
react工具,可以在你最新的訊息按 ❤️、👍、😂、🎉、👀 等,顯示在你的泡泡下面。 - 工作中:
- 對話最後是一個不停轉的圓環,加上一句有光掃過的狀態,文字取自原版的清單:
- 讀檔:「正在讀取檔案」
- 跑指令:「正在執行幾個指令」
- 操作 Bot 的電腦:「正在四處點擊」
- 操作你的 Mac:「正在你的電腦上工作」
- 瀏覽網頁:「正在逐頁瀏覽」
- 等你:「需要你的輸入」
- 思考時:「正在仔細思考/正在琢磨/正在整理思緒」
- 其他:「正在推進」等
- 原版的動畫時間:
- 圓環每 1.2 秒轉一圈;
- 文字上的光每 1.4 秒掃過一次;
- 新訊息 240 ms 淡入並往上浮;
- 表情回應 500 ms 彈出,帶一點回彈。
- 對話最後是一個不停轉的圓環,加上一句有光掃過的狀態,文字取自原版的清單:
- 檔案:
- Bot 用
send_file把做好的檔案傳進聊天,你附加的檔案也一樣,顯示成檔案卡片:圖示依種類(試算表綠色、Markdown 紫色、網頁橘色、PDF 紅色、圖片、影片)、檔名(太長時保留副檔名)、大小。 - 點卡片打開預覽(
shots/file-preview.png):- 上面是檔名和「22 列」,右上角有「用其他 App 打開」、下載、關閉。
- Excel(xlsx/xls/ods)和 CSV:表格,有列號和標題列,欄寬跟內容走,太長的格子滑過看全文,多個工作表可以切換。
- Markdown:排好版顯示。
- 網頁:「在瀏覽器開啟」,加上網頁的文字。
- 圖片:直接顯示。
- PDF、Word:顯示文字。
- 程式碼、文字:等寬字。
- Bot 用
- 卡片(天氣、機票等)照舊顯示在回答下面。
- 深色主題改成原版量到的顏色:聊天背景 #131313、側欄 #101010、卡片 #1F1F1F。
左側欄、輸入框、頭像動畫、啟動動畫(照原版)
比對圖:shots/app-vs-original.png。
- 左側欄:
- 右上兩顆 36 px 圓鈕:搜尋(點了才出現搜尋框)和新 Bot(右鍵可以從範本或建群組)。
- 主要 Bot 單獨在最上面:大頭像、右下角橘色★、名字。
- 其他 Bot 照群組分:
- + › 新增群組,建立後馬上可以打名字。
- 把 Bot 拖到別的群組(拖動時目標群組亮框,
shots/sidebar-drag.png),或用 Bot 選單 › 移到群組。 - 群組標題按右鍵可以重新命名、刪除群組(裡面的 Bot 移到未分區);雙擊標題也能改名。
- 空的群組會留著,顯示「把 Bot 拖進來」;沒分群組的 Bot 在「未分區」。
- 每列 54 px、圓角 12、40 px 頭像、名字 15 px、最後一句 13 px;未讀是藍點,等你允許是強調色的點。
- 最下面是你(縮寫頭像和名字,點了打開設定),右邊是連接器市集(打開 設定 › 整合,直接捲到市集)。這一列固定在側欄底部,不會被切到。
- + 選單:新增 Bot、新增群組、群組聊天、從範本建立。
- 驗證過的:用模擬點擊確認帳號列、市集鈕、+ 選單、群組右鍵都有反應(
shots/sidebar-clicks.png),也模擬了拖拉。
- 輸入框:
- 一條 44 px 的膠囊:+、文字、麥克風,最右邊是 Bot 顏色的圓鈕。空白時是語音聊天,有字時變成 ↑ 送出,工作中而且沒字時是停止。
- + 選單:附加檔案、教它一項任務(直接開始錄示範),以及 AnyBot 的模型選擇。
- 下面不再有提示文字。
- 選單(照原版,
shots/menu-vs-original.png):- 寬 200、圓角 16、每列 32 高、左邊 16 px 圖示、14 px 字。
- 分組之間有細線,「刪除」是紅字加垃圾桶,有下一層的列右邊有「›」。
- Bot 選單:釘選、移至 ›、標示為未讀、設為主要|編輯、開始新對話、過去的對話 ›、錄會議|分享與匯出 ›(匯出 Bot、匯出文字記錄、匯入、複製 ID)|重新啟動、清除、刪除。
- 群組選單:重新命名、上移、下移|刪除。
- 訊息 ⋯:複製、回覆、重新產生、顯示步驟。
- + 選單和模型選擇也是同一種樣式。
- 在對話裡叫 Bot 分群組:Bot 有 create_group、move_to_group、rename_group、delete_group 工具。例如「建立文宣組,把文案企劃、網研探子、美術設計放進去」。
- 頭像動畫(照原版頭像引擎的參數):
- 側欄、頂部名字膠囊、右側面板的頭像,都會轉向滑鼠,平滑度和原版一樣(每 1/60 秒追 14%)。
- 每 2.5–6.5 秒眨一次眼(0.18 秒)。
- 點一下 Bot 會彈一下(0.62 秒,先壓扁再拉長)。
- 每個狀態用眼睛表達:平常跟著滑鼠;工作中眼睛慢慢左右掃,像在看東西;等你允許時抬頭看你;做完點個頭(0.5 秒)。不再轉圈、不再有繞圈的小點,所以不會閃。
- 頭像只佔格子的 84%,四周留一點空間。
- 啟動動畫(
shots/launch-animation.png):打開 AnyBot 時,主要 Bot 的頭像在畫面中間長大、往左右看一眼、彈一下,名字淡入;1.6 秒後整個淡出到主畫面。動畫進行中點擊不會誤觸。 - 滑過訊息的選單:表情、⋯ 打開後,即使滑鼠移到選單上,按鈕也不會消失,選單點得到了。
視窗大小
- 拉動視窗時,內容會跟著調整:
- 聊天欄寬度跟著視窗變化。
- 頂部的 Bot 名稱和描述太長時用「…」截掉,按鈕不會被擠掉。
- 右側面板在空間夠時並排顯示(寬 280–340 px)。不夠時改成浮在聊天上面,聊天欄不會被擠到看不見。
- 設定和其他對話框不會比視窗寬,左邊的分頁清單也會跟著變窄。
- 一排放不下的選項(例如新增管道的種類)會自動換行。
- 驗證過的:在 680×520(最小)、1000×680、1600×1000 截圖檢查。截圖在
shots/resize.png、shots/narrow.png、shots/languages.png、shots/panel.png、shots/settings.png。
37a. 圖示、群組、檔案預覽、跨平台
圖示:全部改用 Lucide 圖示(ISC 授權,icons/lucide/*.svg,用 resvg 畫成貼圖)。介面和手機網頁版都不再用 emoji 當圖示;只有使用者自己按的表情反應保留 emoji。
群組:左側欄群組可以收合(點標題),可以從「⋯」或右鍵選「重新命名 / 上移 / 下移 / 刪除」。Bot 在聊天裡也能用工具 create_group、move_to_group、rename_group、delete_group 管理群組。
檔案預覽:和原版一樣分成 11 類(依原版 main-core.cjs 的副檔名表 zc())。
| 類型 | 副檔名 | AnyBot 怎麼顯示 |
|---|---|---|
| 圖片 | png jpg gif webp bmp tiff ico svg(avif heic:macOS 用 sips) | 直接顯示 |
| hayro 把每一頁畫出來(最多 300 頁);Bot 讀文字用 pdftotext,沒有就用 pdf-extract | ||
| 表格 | csv tsv xlsx xls xlsm xlsb ods | 有列號的表格、多個工作表 |
| Word | docx | 直接讀 XML 轉成標題、清單、表格、粗體 |
| Markdown | md markdown mdx | 標題、清單、表格、引言、程式碼 |
| 網頁 | html htm | 轉成有結構的內容,加「在瀏覽器開啟」 |
| JSON | json | 排整齊的文字 |
| 文字和程式碼 | 原版那份 80 多種副檔名的清單,再加上 Dockerfile 等 | 等寬字 |
| 音訊 | mp3 m4a aac wav flac ogg aiff caf(opus:先用 ffmpeg 轉檔) | 在 AnyBot 裡播放、暫停、拖進度 |
| 影片 | mp4 mov m4v webm ogv mkv avi | 第一格畫面(用 ffmpeg 擷取)+播放鍵,用電腦的播放器播 |
| 其他 | 「用其他 App 打開」 |
用 ANYBOT_FIXTURES=<資料夾> cargo test --release fixtures -- --ignored --nocapture 可以一次打開資料夾裡每個檔案,檢查有沒有哪個打不開。截圖模式可以用 ANYBOT_SHOT_VIEW=fileview ANYBOT_SHOT_FILE=<檔案> 預覽任何檔案。
跨平台:AnyBot 現在在 macOS 和 Linux 上都能完整使用,之後還要支援 Windows。
- 檔案預覽全部用純 Rust 寫,三個平台都能用:hayro、rodio、image、resvg、zip、pdf-extract。
- 打開檔案或網址統一用
preview::system_open;「在 Finder 中顯示」統一用preview::reveal。 - 介面和 Bot 說明裡的「這台 Mac」「this Mac」,在 Linux 上會統一換成「這台電腦」(
platform::localize)。
| 功能 | macOS | Linux |
|---|---|---|
| 看螢幕、點擊、打字、捲動、拖曳(computer_use) | CoreGraphics | 三種桌面自動判斷(desk.rs):• X11(x11rb:GetImage 截圖、XTEST 模擬輸入;中文是暫時把字放到一個空按鍵上打出來) • Wayland wlroots 系(sway、Hyprland…, wl.rs):wlr-screencopy 截圖、虛擬滑鼠、虛擬鍵盤(自帶鍵盤配置,中文直接打);不用另外允許• Wayland GNOME / KDE( portal.rs):遠端桌面 portal 操作、截圖 portal 看畫面。第一次會跳出「遠端桌面」視窗,要打開「允許遠端操作」再按「分享」;GNOME 另會問一次「允許截圖」。portal 第 2 版以上會記住答案。中文經剪貼簿(wl-copy)+ Ctrl+V 貼上 |
| 錄製示範 | CGEventTap | X11 RECORD(Wayland 不讓 App 看別的 App 的輸入,所以只有 Xorg 工作階段能錄) |
| 語音輸入、通話 | AVAudioRecorder | cpal 錄成 WAV(自己判斷有沒有在說話) |
| 唸出回答 | say | espeak-ng |
| 登入資料保險庫 | 鑰匙圈(security) | 系統鑰匙圈(secret-tool:GNOME Keyring / KWallet) |
| 通知 | display notification | notify-send |
| 閒置、鎖定、螢幕保護 | ioreg、pgrep | X11 螢幕保護擴充;Wayland 用 Mutter IdleMonitor(GNOME)或 ext-idle-notify;loginctl |
| 選檔案、存檔視窗 | Finder 對話框 | zenity / kdialog |
| 貼上剪貼簿圖片 | NSPasteboard | xclip / wl-paste |
| 簡體中文介面 | CFStringTransform | zhconv |
| 系統語言、電腦名稱、網路位址 | defaults、scutil、ifconfig | LANG、hostnamectl、ip |
| AnyBot 自己的瀏覽器 | /Applications 裡的 Chrome 等 | /usr/bin、/opt、Snap、Flatpak 裡的 Chrome、Chromium、Brave、Edge |
| Bot 的電腦(Docker) | OrbStack / Docker Desktop | Docker Engine;代理伺服器只接受本機和 Docker 網路的連線 |
Linux 還不能做的:
- Wayland 上錄製示範:系統不允許,要錄請改選 Xorg 工作階段。
- Wayland 上「哪個視窗在滑鼠下」:Wayland 不告訴 App 其他視窗的位置,所以權限提示會寫「目前的 App」。
- 讀你自己瀏覽器的分頁:Mac 上是透過輔助使用讀的,Linux 改用 AnyBot 自己的瀏覽器設定檔。
- Mac App 工具:郵件、行事曆、備忘錄、訊息,只有 Mac 有。
- 在背景點擊、不把視窗拉到前面:Linux 上會改成一般點擊。
安裝和測試:
deploy/linux/install.sh:安裝到 ~/.local,包括選單項目和圖示。加上--deps會順便安裝系統套件,支援 apt、dnf、pacman。deploy/linux/dev/test.sh:在 Mac 上用 Docker 裡的 Linux 和虛擬螢幕測試。會跑:- 全部單元測試;
- 實際操作畫面和錄製示範;
- 鑰匙圈存、讀、刪;
- Wayland(無頭 sway):截圖、點擊、中文打字、快捷鍵、捲動(
wayland_live.sh); - 視窗截圖。
deploy/linux/dev/gnome/test.sh:無頭 GNOME 43(Wayland)測 portal 路線:沒開「允許遠端操作」時的提示、英文+中文打進文字框、精準點到小按鈕。測試腳本op.py扮演使用者回答系統視窗。- 測試用的指令:
anybot --tool <工具> <JSON> …:直接跑操作電腦的工具;anybot --write-icon out.png 256:輸出 App 圖示。
38. 還沒做的功能
| 功能 | 為什麼 |
|---|---|
| 原版伺服器端的提示詞和模型路由 | 不在 App 裡,拆不到;AnyBot 用自己的系統指示(第 33 節) |
| 邊說邊插話的即時語音 | 原版用 xAI 即時語音服務;AnyBot 的通話模式是輪流說話 |
| 帳單、方案 | 不需要:AnyBot 用你自己的 AI 金鑰 |
| 代你購物與付款 | 刻意不做:會動到你的錢和卡片 |
| 原生 iPhone/Android App | 用手機網頁版,可加到主畫面、收推播通知 |
多台電腦:大腦、手腳、螢幕(2026-11-04)
- 帳號裡一台 AnyBot 當大腦(Bot、聊天、記憶、排程都在它上面),其他有視窗的電腦當螢幕(看到、改的都是大腦的 Bot),沒有螢幕的電腦當手腳;同一個帳號的電腦之間即時同步。
- 每台 AnyBot 和帳號伺服器之間保持一條長連線(WebSocket),斷了自動接回;連不到時畫面說明是哪一段。
- 「加一台電腦」給一行
anybot setup 網址 配對碼,新電腦不用密碼就接成那個大腦的手腳。 - 看不到圖片的模型:你帳號裡看得到圖的模型會先描述圖片(看圖小幫手)。
- 詳細說明:docs/multi-device.md;技術細節:docs/architecture.md、docs/protocol.md。
側邊欄:釘選與分區(照原版重做,2026-11-04)
- 釘選的 Bot 放在最上面的大頭像格子裡(主要 Bot 第一個,有星星)。右鍵「釘選/取消釘選」,或把 Bot 拖進格子(第一次拖時出現「拖曳到此處以釘選」);格子內可拖曳排序;拖到分區會取消釘選並移過去。
- 分區:Bot 右鍵「移至 ▸」列出所有分區(含未分區,✓ 目前的)和「建立分區」;還沒有分區時是「移至新分區」。新分區放最上面,名字「新增分區」並直接進入改名(Enter/點別處儲存,Esc 取消)。
- 分區標題右鍵(或 ⋯):重新命名、上移、下移、刪除;未分區只有上移/下移。刪除會先確認「其中的 Bot 會移至 未分區,不會刪除任何 Bot。」只有一個清單時,「Bot」標題右鍵可「建立分區」。
對話的 Markdown 與流程圖(2026-11-04)
- 以 pulldown-cmark 解析(表格、刪除線、待辦清單、數學區塊):標題 22/17 px、單一換行照樣換行、粗體(粉圓體只有一種粗細,用疊印做出粗體)、斜體、刪除線、行內程式碼、可點的連結、多層清單、待辦勾選框、引用線、表格(可橫向捲動)、分隔線。
- 程式碼區塊:圓角邊框、上色(註解、字串、數字、關鍵字)、可橫向捲動、滑過時右上角「複製程式碼」,複製後兩秒顯示勾。
-
其他(2026-11-04)
- OpenCode Go 供應商:設定 → 模型 選「OpenCode Go」,貼上 opencode.ai Console 的 Go 金鑰。依官方模型清單自動決定每個模型用 OpenAI 格式(/openai/v1)或 Anthropic 格式(/anthropic/v1);每個 Bot 的對話帶固定的 x-opencode-session。
- 看不到圖片的模型:模型回「不能收圖片」(例如「At most 0 image(s)」)時,AnyBot 記住這個模型,立刻改成不附圖片重試,截圖的位置換成文字說明,Bot 不會再卡住。