🧩 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.
💻 Deployment Guide (WSL empfohlen)
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
- Konfigurieren Sie UFO über
ufo/config/config.json(Details finden Sie im UFO Repo). - Kopieren Sie den gesamten
ufoOrdner 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
Inufo/llm/openai.pytauschen Sie die Reihenfolge von@staticmethodund@functools.lru_cache(), um Probleme aufgrund eines bekannten Python 3.9-Bugs zu vermeiden.
4. Windows 11 Virtuelle Maschine vorbereiten
4.1 ISO herunterladen
- Gehen Sie zum Microsoft Evaluation Center
- Akzeptieren Sie die Bedingungen und laden Sie Windows 11 Enterprise Evaluation (Englisch, 90 Tage Testversion) (~6GB) herunter
- Benennen Sie die Datei in
setup.isoum 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
- Geben Sie NICHT den Gerätecode ein (dies hält den WAA-Server unbegrenzt am Laufen).
- Besuchen Sie
https://:8006und führen Sie die folgenden Einrichtungsschritte durch - Deaktivieren Sie die Windows Firewall
- Öffnen Sie Google Chrome und schließen Sie die Ersteinrichtung ab
- Öffnen Sie VLC und schließen Sie die Ersteinrichtung ab
- 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
storageOrdner
🧪 Experimente durchführen
Vor jedem Experiment
- Ersetzen Sie das VM-Image durch Ihren vorbereiteten Golden Snapshot
- 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.