2026-05-19 18:57:31 +02:00
|
|
|
# pi_coder — Automatisierter Coder/Judge-Workflow für pi agent
|
|
|
|
|
|
|
|
|
|
Dieses Repository enthält die Konfiguration und Skripte für einen automatisierten
|
|
|
|
|
Coding-Workflow mit zwei lokalen LLaMA-Modellen: ein Coder-Modell und ein Judge-Modell,
|
|
|
|
|
gesteuert über [pi agent](https://github.com/earendil-works/pi).
|
|
|
|
|
|
|
|
|
|
## Überblick
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Nutzer gibt Auftrag
|
|
|
|
|
│
|
|
|
|
|
▼
|
|
|
|
|
/coder → qwen3.5-coder (:8001) → Implementierung + git commit
|
|
|
|
|
│
|
|
|
|
|
▼
|
|
|
|
|
/judge → qwen3.5-judge (:8002) → Review: PASS / FAIL + Blocker
|
|
|
|
|
│
|
|
|
|
|
FAIL? ▼
|
|
|
|
|
/fix → qwen3.5-coder (:8001) → Fixes + git commit
|
|
|
|
|
│
|
|
|
|
|
PASS? ▼
|
|
|
|
|
/shipit → qwen3.5-judge (:8002) → Finale Freigabe: SHIP / NO-SHIP
|
|
|
|
|
|
|
|
|
|
/optimize = Coder→Judge→Fix-Schleife automatisch (bis PASS oder max. N Runden)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Modelle
|
|
|
|
|
|
|
|
|
|
| Rolle | Modell | Port | Container |
|
|
|
|
|
|---------|-------------------------------------------------|------|---------------------|
|
|
|
|
|
| Coder | Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS | 8001 | qwen36-27b-coder |
|
|
|
|
|
| Judge | Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS | 8002 | qwen36-27b-judge |
|
|
|
|
|
|
|
|
|
|
Beide Modelle laufen als separate llama.cpp-Docker-Container auf GPU 1 und 2 (tensor-split 0.5/0.5).
|
|
|
|
|
|
|
|
|
|
## Voraussetzungen
|
|
|
|
|
|
|
|
|
|
- Docker mit NVIDIA-GPU-Support (`nvidia-container-toolkit`)
|
|
|
|
|
- GPU 1 und GPU 2 verfügbar (`nvidia-smi`)
|
|
|
|
|
- GGUF-Modell unter: `$HF_HOME/models/qwen3/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf`
|
|
|
|
|
- Standard: `HF_HOME=/home/dschlueter/nvme2n1p7_home/huggingface`
|
|
|
|
|
- [pi agent](https://github.com/earendil-works/pi) installiert (`~/.pi/`)
|
|
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 1. Extension und Modell-Config nach ~/.pi/agent/ deployen
|
|
|
|
|
./install.sh
|
|
|
|
|
|
|
|
|
|
# 2. /reload in pi agent ausführen
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Nach Änderungen an `pi-coder-judge-extension.ts` oder `models.json`:
|
|
|
|
|
```bash
|
|
|
|
|
./install.sh # kopiert nach ~/.pi/agent/
|
|
|
|
|
# dann /reload in pi agent
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Server starten / stoppen / status
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-05-19 19:11:15 +02:00
|
|
|
# Beide Server parallel starten (empfohlen)
|
|
|
|
|
./start-servers.sh
|
2026-05-19 18:57:31 +02:00
|
|
|
|
2026-05-19 19:11:15 +02:00
|
|
|
# Einzeln starten (z.B. nach Absturz eines Servers)
|
|
|
|
|
./start-coder.sh # Port 8001
|
|
|
|
|
./start-judge.sh # Port 8002
|
2026-05-19 18:57:31 +02:00
|
|
|
|
|
|
|
|
# Beide stoppen
|
|
|
|
|
./stop-servers.sh
|
|
|
|
|
|
|
|
|
|
# Status beider Server prüfen
|
|
|
|
|
./status.sh
|
|
|
|
|
```
|
|
|
|
|
|
2026-05-19 19:11:15 +02:00
|
|
|
`start-servers.sh` startet beide Container gleichzeitig und wartet bis beide
|
|
|
|
|
HTTP-ready sind — schneller als sequenziell. Logs werden getrennt gesammelt
|
|
|
|
|
und nur bei Fehler ausgegeben.
|
|
|
|
|
|
2026-05-19 18:57:31 +02:00
|
|
|
Umgebungsvariable für alternativen Modellpfad:
|
|
|
|
|
```bash
|
2026-05-19 19:11:15 +02:00
|
|
|
HF_HOME=/anderer/pfad ./start-servers.sh
|
2026-05-19 18:57:31 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## pi-Kommandos
|
|
|
|
|
|
|
|
|
|
| Kommando | Beschreibung |
|
|
|
|
|
|---|---|
|
|
|
|
|
| `/coder <auftrag>` | TASK.md anlegen, Implementierung starten (Coder-Modell) |
|
|
|
|
|
| `/judge [fokus]` | Code-Review gegen TASK.md + letzten Commit (Judge-Modell) |
|
|
|
|
|
| `/fix [hinweis]` | Judge-Kritik beheben, committen (Coder-Modell) |
|
|
|
|
|
| `/shipit` | Finale Freigabeprüfung (Judge-Modell) |
|
|
|
|
|
| `/optimize <auftrag> [--rounds N] [--with-doku]` | Vollautomatische Schleife bis PASS |
|
|
|
|
|
| `/patch <änderung>` | Gezielte Minimaländerung ohne vollständigen Review |
|
|
|
|
|
| `/quick_check [was]` | Schnelle Prüfung der letzten Änderung (OK/PROBLEM) |
|
|
|
|
|
| `/update_doku` | Code kommentieren + README.md + BEDIENUNGSANLEITUNG.md |
|
|
|
|
|
| `/new_project <pfad>` | Neues Projektverzeichnis + git init anlegen |
|
|
|
|
|
|
|
|
|
|
## Dateien
|
|
|
|
|
|
|
|
|
|
| Datei | Zweck |
|
|
|
|
|
|---|---|
|
|
|
|
|
| `pi-coder-judge-extension.ts` | pi agent Extension (Kommandos, Tools, Hooks) |
|
|
|
|
|
| `models.json` | Provider- und Modell-Konfiguration für pi agent |
|
2026-05-19 19:11:15 +02:00
|
|
|
| `start-servers.sh` | Beide Server parallel starten (empfohlen) |
|
|
|
|
|
| `start-coder.sh` | Nur Coder-Container starten (Port 8001) |
|
|
|
|
|
| `start-judge.sh` | Nur Judge-Container starten (Port 8002) |
|
2026-05-19 18:57:31 +02:00
|
|
|
| `stop-servers.sh` | Beide Container stoppen |
|
|
|
|
|
| `status.sh` | Laufstatus beider Server anzeigen |
|
|
|
|
|
| `install.sh` | Extension + models.json nach `~/.pi/agent/` kopieren |
|