🧩 UFO mit OSWorld (Windows) einrichten

OSWorld ist eine Benchmark-Suite, die entwickelt wurde, um die Leistung von KI-Agenten in realen Szenarien zu bewerten. Wir wählen die 49 Fälle aus dem ursprünglichen OSWorld-Benchmark aus, die mit der Windows-Plattform kompatibel sind, und benennen sie in OSWorld-W um. Die Aufgaben decken eine breite Palette von Funktionalitäten und Interaktionen ab, die Benutzer typischerweise auf ihren Computern ausführen, einschließlich Office 365 und Browser.


Wir empfehlen dringend, zuerst den ursprünglichen WAA Deployment Guide zu lesen. Die folgenden Anweisungen gehen davon aus, dass Sie mit der ursprünglichen Einrichtung vertraut sind.


1. Repository klonen

git clone https://github.com/nice-mee/WindowsAgentArena.git

💡 Um OSWorld-Fälle auszuführen, wechseln Sie zum dedizierten Entwicklungszweig:

git checkout osworld

Erstellen Sie eine config.json Datei im Stammverzeichnis des Repos mit einem Platzhalterschlüssel (UFO wird diesen überschreiben)

{
  "OPENAI_API_KEY": "placeholder"
}

2. Docker Image erstellen

Navigieren Sie in das scripts Verzeichnis und erstellen Sie das Docker Image

cd scripts
chmod +x build-container-image.sh prepare-agents.sh  # (if needed)
./build-container-image.sh --build-base-image true

Dies generiert das Image windowsarena/winarena:latest unter Verwendung des neuesten Codes aus src/.


3. UFO integrieren

  1. Konfigurieren Sie UFO über ufo/config/config.json (Details finden Sie im UFO Repo).
  2. Kopieren Sie den gesamten ufo Ordner in das Verzeichnis des WAA-Container-Clients
cp -r src/win-arena-container/vm/setup/mm_agents/UFO/ufo src/win-arena-container/client/

⚠️ Python 3.9 Kompatibilitätsfix
In ufo/llm/openai.py tauschen Sie die Reihenfolge von @staticmethod und @functools.lru_cache(), um Probleme aufgrund eines bekannten Python 3.9-Bugs zu vermeiden.


4. Windows 11 Virtuelle Maschine vorbereiten

4.1 ISO herunterladen

  1. Gehen Sie zum Microsoft Evaluation Center
  2. Akzeptieren Sie die Bedingungen und laden Sie Windows 11 Enterprise Evaluation (Englisch, 90 Tage Testversion) (~6GB) herunter
  3. Benennen Sie die Datei in setup.iso um und legen Sie sie ab in
WindowsAgentArena/src/win-arena-container/vm/image

4.2 Golden Image Snapshot erstellen

Bereiten Sie den Windows VM Snapshot vor (ein voll bereitgestelltes 30GB Image)

cd ./scripts
./run-local.sh --mode dev --prepare-image true

⚠️ Interagieren Sie während der Vorbereitung NICHT mit der VM. Sie wird automatisch heruntergefahren, wenn sie abgeschlossen ist.

Das Golden Image wird gespeichert in

WindowsAgentArena/src/win-arena-container/vm/storage

5. Erster Start (Erstmalige Einrichtung)

Starten Sie die Umgebung

./run-local.sh --mode dev --json-name "evaluation_examples_windows/test_custom.json" --agent UFO --agent-settings '{"llm_type": "azure", "llm_endpoint": "https://cloudgpt-openai.azure-api.net/openai/deployments/gpt-4o-20240513/chat/completions?api-version=2024-04-01-preview", "llm_auth": {"type": "api-key", "token": ""}}'

Sobald die VM startet

  1. Geben Sie NICHT den Gerätecode ein (dies hält den WAA-Server unbegrenzt am Laufen).
  2. Besuchen Sie https://:8006 und führen Sie die folgenden Einrichtungsschritte durch
  3. Deaktivieren Sie die Windows Firewall
  4. Öffnen Sie Google Chrome und schließen Sie die Ersteinrichtung ab
  5. Öffnen Sie VLC und schließen Sie die Ersteinrichtung ab
  6. Aktivieren Sie Office 365 (Word, Excel, PowerPoint, etc.) mit einem Microsoft-Konto (verwenden Sie bei Bedarf ein temporäres).

Nach der Einrichtung

  • Stoppen Sie den Client
  • Sichern Sie das Golden Image aus dem storage Ordner

🧪 Experimente durchführen

Vor jedem Experiment

  1. Ersetzen Sie das VM-Image durch Ihren vorbereiteten Golden Snapshot
  2. Löschen Sie alle vorherigen UFO-Logs

Führen Sie dann aus

./run-local.sh --mode dev --json-name "evaluation_examples_windows/test_full.json" --agent UFO --agent-settings '{"llm_type": "azure", "llm_endpoint": "https://cloudgpt-openai.azure-api.net/openai/deployments/gpt-4o-20240513/chat/completions?api-version=2024-04-01-preview", "llm_auth": {"type": "api-key", "token": ""}}'

Hinweis

  • test_full.json: Enthält alle Testfälle, bei denen UIA verfügbar ist.
  • test_all.json: Enthält alle Testfälle, auch solche, die nicht mit UIA kompatibel sind.
  • Verwenden Sie test_full.json, wenn Sie nicht OmniParser verwenden.