🧩 UFO mit Windows Agent Arena (WAA) einrichten

Windows Agent Arena (WAA) ist eine Benchmark-Suite zur Bewertung der Leistung von KI-Agenten bei der Ausführung realer Aufgaben auf Windows-Betriebssystemen. Sie besteht aus 154 Aufgaben in 15 Anwendungen, darunter Microsoft Office, Edge, Datei-Explorer und VS Code. Die Aufgaben sind so konzipiert, dass sie eine breite Palette von Funktionalitäten und Interaktionen abdecken, die Benutzer typischerweise auf ihren Computern ausführen.

Dieses Repository stellt eine modifizierte Version von Windows Agent Arena (WAA) 🪟 bereit, einer skalierbaren Plattform für das Benchmarking und die Bewertung von multimodalen Desktop-KI-Agenten. Dieser angepasste Fork integriert sich mit UFO, einem UI-orientierten Automatisierungsagenten für das Windows-Betriebssystem.


Wir empfehlen dringend, das ursprüngliche WAA-Bereitstellungshandbuch vorab 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 2020-qqtcg/dev

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

{
  "OPENAI_API_KEY": "placeholder"
}

2. Docker-Image erstellen

Navigieren Sie zum Verzeichnis scripts 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 in src/.


3. UFO integrieren

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

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


4. Virtuelle Maschine Windows 11 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) (~6 GB) herunter
  3. Benennen Sie die Datei in setup.iso um und legen Sie sie ab
WindowsAgentArena/src/win-arena-container/vm/image

4.2 Golden Image Snapshot erstellen

Bereiten Sie den Windows VM-Snapshot vor (ein vollständig provisioniertes 30 GB 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 (Ersteinrichtung)

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 gestartet ist

  1. Geben Sie keinen Geräteschlüssel 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

Nach der Einrichtung

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

🧪 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, für die 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 keinen OmniParser verwenden.