AnyBot/bench/computer-use/README.md

4.1 KiB
Raw Blame History

電腦操作量測

固定 8 題,在一台測試用的 box 上跑,記下每題成功沒有、步數、總時間(模型思考和工具各多少)、換了幾次路,以及每一步的過程(transcript)。改了 Bot 做事的方式之後,用它比較前後。

# 題目 應該走的路 檢查
T1 時區改成東京 指令(box 沒有 systemd,改 /etc/localtime) /etc/localtime 指到 Tokyo
T2 用計算機 App 算 1234 × 5678 畫面 答案是 7006652,而且 galculator 真的在跑
T3 Chromium 預設搜尋引擎改成 Bing 畫面或瀏覽器 Chromium 的設定檔寫著 bing(最多等 15 秒)
T4 照片依修改月份分資料夾 指令 三個資料夾各 4 張、最上層沒剩
T5 建資料夾再改名 指令 新名字在、舊名字不在
T6 裝 tree、回報版本 指令 tree --version 跑得動
T7 維基百科查台北 101 高度 瀏覽器 答案有 508
T8 填表送出、回報確認碼 瀏覽器 確認碼正確(由六個欄位算出來)

每題開始前:關掉上一題留下的桌面 App、做那一題的準備(以 box 的 root 執行),聊天從乾淨的狀態開始。

怎麼跑

絕對不要對真正的 box 跑。測試 box 要有自己的名字、自己的硬碟(ANYBOT_BOX_VOLUME,否則 AnyBot 會接手同一台 Docker 上原本的 box)和自己的映像檔名稱(ANYBOT_BOX_IMAGE,否則量新版本時會重建真正的 box 用的映像檔),資料夾要是複本:

B=<暫存資料夾>   # 裡面放 state.template.json(一個 Bot、金鑰、local_never: true)和 data/box/config.json
env ANYBOT_BOX_NAME=anybot-box-bench ANYBOT_BOX_VOLUME=anybot-box-bench-home ANYBOT_BOX_IMAGE=anybot-box-bench:1 \
  python3 -I run.py --bin <anybot 執行檔> --template $B/state.template.json --data $B/data \
  --docker-host <Docker 主機> --out $B/results.json --runs 2 [--tasks T1,T3] [--keep-skills]
  • --keep-skills:把上一題學到的技能帶到下一題(量「重播學會的做法」)。
  • Bot 的 step_model 設 "off" 是每一步都用同一個模型;留空是「想的跟做的分開」。

2026-11-09 的結果(box 在 Mac 上的 Lima VM、gVisor;grok-4.7;每題 2 次)

成功 總步數 總時間 模型思考
改之前 14/16 120 1114 秒 1015 秒
改之後,每一步同一個模型 16/16 88 824 秒 746 秒
改之後,想的跟做的分開(快速模型 grok-4.20-0309-non-reasoning) 16/16 102 574 秒 471 秒

重播:時區那題第一次 9 步、49 秒並學到 2 個可重播的步驟,第二次直接重播 4 步、15 秒。內容每次不同的題目(填表、計算)只存做法、不存步驟。

量測途中找到、修好的:box 上的 sudo 被安全規則擋掉(時區題一直失敗的原因)、gVisor 裡 setuid 不起作用、元素編號每看一次就重編(同一步的第二個點擊會點錯)、背景視窗的元素排在前面、網頁編號不進 shadow DOM、box 的 TZ=UTC 讓改時區看起來沒效、開新 box 撞埠號(重試後沒網路)。

之後拿掉了 box 映像檔的 ENV TZ=UTC(box 版本 8)。已知還沒解決:快速模型在純畫面操作(計算機)比較笨手笨腳。

之後再量(v10:用名字點、批次 16 個、單行輸入框全選後整段貼上、出兩次問題就改用 Bot 的模型)

改 Chromium 搜尋引擎、Chromium 加書籤、Mousepad 存檔、填表、計算機,「分開」各 3 次、「不分開」各 2 次:25/25 成功、網址打壞 0 次;平均一題「分開」46 秒、「不分開」67 秒。先前最難的改搜尋引擎從 2–6 分鐘(還常失敗)降到 46–147 秒。

找到的:快速模型對編號會對錯(改用名字)、一串按鍵塞不進 8 個的批次、box 上一個鍵一個鍵打進 Chromium 網址列會被剛開啟的頁面和自動完成攪亂(冒號掉、舊字混進來)、box 判斷單行輸入框時多了「#14(」前綴所以全選和貼上沒執行、同時給名字和 (0,0) 時點到角落、快速模型在陌生對話框一直猜名字。