HarnessEcosystem / tutorials /tutorial-hermes.md
smlflg's picture
Initial public upload from Projekte/HarnessEcosystem
5134cea verified
|
Raw History Blame Contribute Delete
5.85 kB
# Hermes β€” Harness Tutorial
> Pipeline-Rolle: **Output bauen** (Wave 2, Implementierung)
> Hermes ist das guenstigste und anpassungsfahigste Arbeits-Harness. Hier entsteht der meiste Code.
---
## 1. Quick Start
```bash
cd ~/Projekte/MeinProjekt # KRITISCH: IMMER im Projektordner starten
# NICHT in ~/.hermes/ oder irgendwo anders
hermes chat # interaktive Session
# oder mit spezifischem Modell:
hermes chat --model minimax/minimax-text-01
```
Erste 2 Minuten:
```
> [Tasksheet aus harness-tasksheets/ einfuegen]
> Bestatige: In welchem Verzeichnis arbeitest du gerade?
> Welche Dateien wirst du anlegen/aendern?
```
Den zweiten und dritten Schritt IMMER machen β€” Hermes driftet sonst
in `~/.hermes/` oder baut an der falschen Stelle.
---
## 2. Typischer Workflow
**Hermes ist fuer iteratives Arbeiten gemacht β€” nicht fuer Einmal-Outputs.**
1. **Tasksheet einfuegen** β€” Scope, Output-Pfad, Constraints klar definieren.
2. **Verzeichnis-Check** β€” Bestaetigen lassen wo Hermes gerade ist.
3. **Ersten Output** β€” Hermes baut. Warten, bis Output erscheint (kann kurz still sein).
4. **Feedback geben** β€” Konkret und priazise. Hermes nimmt Korrekturen gut an.
5. **Iterieren** β€” 2-4 Iterationen bis Ergebnis passt.
6. **Summary** β€” "Fasse zusammen was du geaendert hast" β€” fuer Handoff an Codex.
Beispiel-Flow:
```
> [Tasksheet einfuegen]
> Implementiere src/api.py mit dem /health Endpunkt.
[Output abwarten]
> Gut. Jetzt fuege /api/status hinzu, der {"agents": [], "status": "ok"} zurueckgibt.
[Output abwarten]
> Die agents-Liste soll aus config.yaml geladen werden. Hier ist der Pfad: config/agents.yaml
[Output abwarten]
> Fasse zusammen: Welche Dateien hast du veraendert und was hast du gemacht?
```
---
## 3. Starken nutzen
**Beste Feedback-Annahme:** Hermes akzeptiert Korrekturen ohne zu diskutieren.
Fehler direkt benennen β€” Hermes baut sofort weiter:
```
> Das ist falsch. src/api.py Zeile 23: status_code muss 200 sein, nicht 404.
Korrigiere nur diese Zeile.
```
**Iteratives Arbeiten:** Ideal fuer Aufgaben die mehrere Runden brauchen.
Feature by Feature vorgehen statt alles auf einmal beauftragen.
```
# Statt:
> Implementiere das komplette Dashboard mit allen Endpunkten
# Besser:
> Implementiere nur /health
[fertig]
> Implementiere /api/agents
[fertig]
> Implementiere /api/status
```
**Guenstig fuer taeagliche Arbeit:** Mit MiniMax ~150x guenstiger als Opus.
Hermes fuer alle Routineaufgaben nutzen, Claude Code nur fuer Planung.
**Parallele unabhaengige Tasks mit --worktree:**
```bash
# Zwei unabhaengige Features parallel:
hermes chat --worktree feature-health-endpoint
hermes chat --worktree feature-agent-list
```
---
## 4. Schwachen kompensieren
**Scope-Drift: Hermes groesstes Problem.**
Ohne expliziten Output-Pfad baut Hermes in `~/.hermes/` statt im Projektordner.
IMMER im Tasksheet angeben:
```
Output-Pfad: /home/smlflg/Projekte/MeinProjekt/src/
Verzeichnis: /home/smlflg/Projekte/MeinProjekt/
NICHT: ~/.hermes/ oder relative Pfade
```
**Langsamer Start:** Hermes ist kurz still bevor Output kommt.
Das ist normal β€” nicht abbrechen und neu starten.
Nach ~10-15 Sekunden Stille: einmal Enter druecken.
**Output-Qualitaet mittel:** Hermes schreibt funktionalen aber
nicht eleganten Code. Fuer finales Polishing β†’ Codex.
```
# Hermes-Output ist funktional:
def get_agents():
with open("config.yaml") as f:
return yaml.safe_load(f)["agents"]
# Codex macht daraus sauberen Code mit Error-Handling, Types, Docstrings
```
**Was passiert dann plotzlich Output:** Hermes denkt intern β€” der Output
kommt manchmal in einem Block. Das ist kein Fehler.
---
## 5. Handoff-Muster
**Von OpenCode zu Hermes:**
```
> Lies src/ β€” OpenCode hat das Geruest angelegt.
Deine Aufgabe: Implementiere die Logik in src/api.py.
Scope: Nur src/api.py und src/services/agent_service.py.
Keine neuen Dateien anlegen.
```
**Von Hermes zu Codex (Polishing):**
```bash
# Hermes gibt Summary:
> Fasse zusammen: Welche Dateien hast du geaendert? Was hast du implementiert?
Was fehlt noch? Was ist TODO?
# Summary in Tasksheet schreiben:
cat > ~/Projekte/harness-tasksheets/task-codex-polish.md << 'EOF'
Hermes hat implementiert:
- src/api.py: /health, /api/agents, /api/status
- src/services/agent_service.py: AgentService mit load_agents()
Aufgabe fuer Codex:
- Code-Review und Polishing
- Type Hints hinzufuegen
- Error Handling verbessern
- README.md aktualisieren
EOF
```
**--worktree fuer parallele Tasks:**
```bash
# Unabhaengige Features parallel:
hermes chat --worktree frontend # baut src/templates/
hermes chat --worktree backend # baut src/api.py
# Am Ende: git merge
```
---
## 6. Kosten-Tipps
**Guenstigstes Harness fuer iterative Arbeit.** MiniMax nutzen:
```bash
hermes chat --model minimax/minimax-text-01
```
**Tasksheet verhindert Scope-Drift = verhindert Token-Verschwendung:**
Drift bedeutet Hermes baut das Falsche β†’ Session wegwerfen β†’ neu starten.
Ein gutes Tasksheet kostet 2 Minuten aber spart eine komplette Re-Session.
**Feature by Feature ist guenstiger als Big-Bang:**
```
# Teuer (wenn ein Feature falsch β†’ alles nochmal):
> Implementiere alle 8 Endpunkte
# Guenstiger (jeder Schritt kann frueh korrigiert werden):
> Implementiere /health
> [Feedback] Gut. Jetzt /api/agents.
```
**Iteration ist guenstig:** Eine Korrektur-Runde kostet <10% einer
neuen Session. Hermes iterieren lassen statt neu starten.
**Verzeichnis-Check ist kostenlos:** 2 Sekunden fragen wo Hermes arbeitet
verhindert eine weggeworfene Session wegen falschem Pfad.
**Faustregeln:**
- Einfache Funktion implementieren: ~$0.01-0.03
- Vollstaendiger Endpunkt mit Tests: ~$0.05-0.10
- Feature-Iteration (3-4 Runden): ~$0.10-0.20
- Re-Session wegen Scope-Drift: gleiche Kosten nochmal