AnyBot/bench/computer-use
王性驊 3d10499d55 GTK 2 apps in the box get numbers, a quick model's answer always goes past the bot's own model, and a bot finishes what it was asked
- Box v9: GTK_MODULES=gail:atk-bridge. lxappearance and PCManFM (GTK 2) offered AT-SPI no
  controls at all (0 numbers); with gail they offer 37 and 17.
- The quick model ending a turn without acting goes to the bot's own model every time, not only
  after changes: one stopped after a single look to ask 「要我繼續嗎?」.
- Instructions: finish what was asked; put an unexpected screen right (close what's in the way,
  open the app) instead of stopping to ask, except for what the person must do or confirm.
- Benchmark: three more held-out tasks (lxappearance theme, PCManFM folder, Mousepad
  find-and-replace), checked by their results; every task starts with those apps closed too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uirha5F5gJt93t3yEx3XcS
2026-11-09 12:53:06 +08:00
..
README.md Benchmark notes: the v10 rerun of the field and dialog tasks 2026-11-09 11:53:46 +08:00
run.py GTK 2 apps in the box get numbers, a quick model's answer always goes past the bot's own model, and a bot finishes what it was asked 2026-11-09 12:53:06 +08:00

README.md

電腦操作量測

固定 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) 時點到角落、快速模型在陌生對話框一直猜名字。