Skip to main content

OpenCode / OpenHands (ehemals OpenDevin)

FÜR AI-AGENTENChatGPTClaude

Führende Open-Source-Plattform für autonomes Software Engineering, die komplexe Engineering-Aufgaben in einer isolierten Docker-Umgebung mit Zugriff auf Terminal, Browser und Dateisystem ausführt.

1. Überblick über das Konzept und das systemische Problem

Das Aufkommen kommerzieller autonomer „AI Software Engineers“ (wie Devin) hat die Zukunft der Entwicklung aufgezeigt, in der Modelle den Aufgaben-Backlog eigenständig abarbeiten. Proprietäre Dienste bergen jedoch erhebliche Risiken: hohe Kosten (Abonnements ab 500 USD/Monat), Intransparenz der internen Algorithmen, die vollständige Unmöglichkeit, das Verhalten an spezifische interne Technologie-Stacks anzupassen, sowie das Risiko der泄露 von Geschäftsgeheimnissen in geschlossene Cloud-Umgebungen des Anbieters.

OpenHands (ehemals OpenDevin) wurde als freie, modulare und sichere Alternative konzipiert. Es handelt sich um ein vollwertiges Agent-Framework, das in der Lage ist, Repositories autonom zu klonen, Dokumentation zu analysieren, Bugs durch das Schreiben von Tests zu reproduzieren, Codebasen zu ändern und Pull Requests zu pushen. Die Sicherheit wird durch strikte Isolation gewährleistet: Jede Agent-Sitzung läuft in einer eigenen ephemeren Docker-Umgebung (Sandboxing).

2. Architektonische Taxonomie und mentales Modell

Das Architekturmodell von OpenHands basiert auf einem Event Stream und isolierter Ausführung:

┌─────────────────────────────────────────────────────────────┐
│                   OPENHANDS ARCHITECTURE                    │
├─────────────────────────────────────────────────────────────┤
│ 1. EventStream Core (EventController & AgentController)     │
│    Центральна шина комунікації подій Action ➔ Observation   │
├─────────────────────────────────────────────────────────────┤
│ 2. Agent Reasoning Layer (ReAct / CodeAct / Planner)       │
│    Підтримка Claude 3.7 Sonnet, DeepSeek R1, OpenAI o1/o3   │
├─────────────────────────────────────────────────────────────┤
│ 3. Isolated Sandbox Runtime (Docker / MicroVM / gVisor)     │
│    • Execution: Bash shell з відстеженням фонових процесів  │
│    • File System: AST-based editors & workspace mounting    │
│    • Headless Browser: Chromium для UI-тестів та документації│
│    • Jupyter / IPython: інтерактивний REPL для аналізу даних │
├─────────────────────────────────────────────────────────────┤
│ 4. Git & CI/CD Integrations: GitHub App, PR Automation      │
└─────────────────────────────────────────────────────────────┘
  1. Event Stream Architecture:
    • Alle Kommunikationen im System sind als Kette „Action ➔ Observation“ (Action ➔ Observation) typisiert.
    • Jeder Schritt des Agents (Ausführen eines Bash-Befehls, Ändern einer Datei, Öffnen einer URL im Browser) wird als Action protokolliert, während die Systemantwort (Output, Fehler, Screenshot) als Observation erfasst wird.
  2. Agent Framework / Reasoning Strategies:
    • Unterstützt das CodeAct-Paradigma – einen Ansatz, bei dem der Agent direkt ausführbaren Python- oder Bash-Code generiert, anstatt komplexe JSON-Strukturen zu erstellen. Dies erhöht die Präzision bei komplexen, mehrstufigen Operationen erheblich.
  3. Docker Sandboxing:
    • Gewährleistet physische Code-Isolation. Das Benutzer-Repository wird als Volume gemountet, während alle System-Binaries, Abhängigkeiten und Server innerhalb des Containers ausgeführt werden.

3. Technischer Pipeline-Prozess und interne Mechanik

Der Lebenszyklus der Lösung einer Engineering-Aufgabe in OpenHands:

  1. Initialisierung und Umgebungsbereitstellung: Die Plattform empfängt eine Aufgabe (z. B. einen Link zu einem GitHub Issue). OpenHands erstellt einen neuen Docker-Container mit einer vorkonfigurierten Projektumgebung (Node.js, Python, Rust) und klont den Ziel-Branch des Repositories.
  2. Exploration und Reproduktion des Defekts (Repro Test Phase):
    • Der Agent führt eine semantische Dateisuche mittels ripgrep durch.
    • Bevor Änderungen vorgenommen werden, erstellt der Agent eine separate Testdatei (Reproduction Script), die auf dem bestehenden Bug fehlschlägt.
  3. Autonomer Modifikations-Zyklus (CodeAct Loop):
    • Der Agent nimmt Änderungen an der Business-Logik vor.
    • Er führt Tests im Terminal des Containers aus.
    • Er erhält das Ergebnis: Wenn der Test erneut fehlschlägt, analysiert er den Stack Trace und formuliert eine neue Action.
  4. Browser-basierte Überprüfung (Optional UI Inspection): Falls die Aufgabe die Web-Oberfläche betrifft, startet der Agent einen lokalen Dev-Server, öffnet die Seite über Headless Chromium und überprüft die visuelle Darstellung.
  5. PR-Generierung und Ressourcenbereinigung: Nach erfolgreichem Durchlaufen aller Tests führt der Agent einen git commit durch, pusht einen neuen Branch auf GitHub, eröffnet einen Pull Request mit detaillierter Beschreibung der geleisteten Arbeit und stoppt den Container.

4. Praktische Engineering-Szenarien im Produktionsbetrieb

01. Automatisierter nächtlicher Backlog-Worker (Automated Bug Triaging)

Anbindung von OpenHands an das Repository über GitHub Actions / Webhooks:

  • Bei Zuweisung des Labels needs-ai-fix auf ein Ticket stellt die Plattform einen Container bereit und weist dem Agenten die Lösung der Aufgabe zu.
  • Am Morgen erhält das Team fünf fertige Pull Requests mit bestandenen Tests, die für das finale Review durch Menschen bereitstehen.

02. Vollständig sichere Prüfung unzuverlässigen externen Codes

Sicherheitsaudit von Drittanbieter-Open-Source-Bibliotheken oder verdächtigen Skripten:

  • Der Agent untersucht das Repository, führt statische Analysetools und Lasttests durch.
  • Dank der Docker-Sandbox werden Versuche des Fremd-Codes, sich mit dem Host-System zu verbinden oder schädliche Software herunterzuladen, vollständig blockiert.

03. Batch-Update von Unternehmens-Microservices

Notwendigkeit, die Konfiguration von Dockerfiles oder Helm-Charts in 40 Microservices zu aktualisieren:

  • OpenHands stellt nacheinander für jeden Microservice eine isolierte Umgebung bereit, wendet Änderungen an, prüft den Erfolg des lokalen Container-Builds und veröffentlicht einen PR im entsprechenden Repository.

5. Fallstricke, häufige Fehler und Sicherheit

  • Gefahr des Mountens des Host-Docker-Sockets: Beim Deployment von OpenHands ist es extrem riskant, den Socket /var/run/docker.sock ohne zusätzlichen Schutz in den Container zu reichen (Docker-out-of-Docker). Dies gewährt dem Agenten Root-Zugriff auf den Host-Rechner und hebt die Sandbox-Isolation auf.
  • Anforderungen an Rechenressourcen: Der parallele Start mehrerer Agenten in Docker erfordert großen RAM-Speicher (ab 16–32 GB) und leistungsstarke Prozessoren; andernfalls kann das System aufgrund von OOM (Out Of Memory) abrupt abbrechen.
  • Endloser Token-Verbrauch bei Umgebungsfehlern: Fehlt im Container ein System-Compiler oder ist das Netzwerk defekt, kann der Agent Hunderttausende Tokens in vergeblichen Versuchen verbrauchen, fehlende Pakete zu installieren. Konfigurieren Sie stets Session-Timeouts.
  • Hinterlassene „verwaiste“ Container: Im Falle eines Absturzes des Hauptprozesses der Plattform können temporäre Container und erstellte Volumes im System verbleiben und allmählich den Festplattenspeicher des Servers belegen.
/ Häufig gestellte FragenSchema.org FAQPage

FAQ: OpenCode / OpenHands (ehemals OpenDevin)

OpenHands ist zu 100 % Open Source, ermöglicht die lokale Bereitstellung oder den Betrieb des autonomen Agenten in Ihrer eigenen Unternehmenscloud, unterstützt beliebige Modelle (Claude 3.7, DeepSeek R1, lokal über Ollama) und gibt keinen vertraulichen Code an Dritte weiter.
/ Interne Links
Alle Begriffe