104 lines
3.5 KiB
Markdown
104 lines
3.5 KiB
Markdown
|
|
# 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
|
||
|
|
# Coder-Server starten (Port 8001)
|
||
|
|
./start-coder.sh
|
||
|
|
|
||
|
|
# Judge-Server starten (Port 8002)
|
||
|
|
./start-judge.sh
|
||
|
|
|
||
|
|
# Beide stoppen
|
||
|
|
./stop-servers.sh
|
||
|
|
|
||
|
|
# Status beider Server prüfen
|
||
|
|
./status.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
Umgebungsvariable für alternativen Modellpfad:
|
||
|
|
```bash
|
||
|
|
HF_HOME=/anderer/pfad ./start-coder.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## 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 |
|
||
|
|
| `start-coder.sh` | Docker-Container für Coder-Modell (Port 8001) starten |
|
||
|
|
| `start-judge.sh` | Docker-Container für Judge-Modell (Port 8002) starten |
|
||
|
|
| `stop-servers.sh` | Beide Container stoppen |
|
||
|
|
| `status.sh` | Laufstatus beider Server anzeigen |
|
||
|
|
| `install.sh` | Extension + models.json nach `~/.pi/agent/` kopieren |
|