Commit 546dd5

2026-04-08 20:55:40 Wiki: Add CT 118 PaperclipAI article
/dev/null .. ct-118-paperclipai.md
@@ 0,0 1,277 @@
+ # CT 118 – PaperclipAI
+
+ > [!NOTE]
+ > CT 118 hostet **PaperclipAI** – eine Open-Source Multi-Agent-Orchestrierungsplattform, die KI-Agenten (Claude Code) als autonome "Mitarbeiter" in virtuellen Unternehmen koordiniert. Zugriff über `https://agent.ls-cloud.biz` (Login erforderlich).
+
+ ## Basisdaten
+
+ | Eigenschaft | Wert |
+ |---|---|
+ | **CT-ID** | `118` |
+ | **Name** | `paperclipai` |
+ | **IP** | `192.168.178.88` |
+ | **OS** | Debian 12 (Bookworm) |
+ | **RAM** | 2048 MB |
+ | **Disk** | 20 GB |
+ | **Web-UI (intern)** | `http://192.168.178.88:3101` |
+ | **Web-UI (extern)** | `https://agent.ls-cloud.biz` |
+ | **Service** | `paperclipai.service` (User: `paperclip`) |
+ | **Node.js** | v20.20.2 |
+ | **PaperclipAI** | v2026.403.0 |
+ | **Claude Code** | v2.1.96 |
+ | **Auth** | Caddy basic_auth + PaperclipAI-eigene Accounts |
+
+ ---
+
+ ## Was ist PaperclipAI?
+
+ PaperclipAI ist eine **Agentenorchestrierung** – du erstellst virtuelle Unternehmen mit KI-Agenten (hier: Claude Code), die eigenständig Code schreiben, Bugs fixen, Tasks ausführen und dabei ein Monatsbudget einhalten.
+
+ **Kernkonzepte:**
+
+ | Begriff | Bedeutung |
+ |---|---|
+ | **Company** | Virtuelles Unternehmen – Container für Agenten und Projekte |
+ | **Agent** | KI-Worker (hier Claude Code) – führt Tasks autonom aus |
+ | **Job** | Einzelner Auftrag / Prompt, den ein Agent bearbeitet |
+ | **Budget** | Monatliches Kostenlimit pro Agent (verhindert Kontrollverlust) |
+ | **Plugin** | Erweiterung für Agenten (z.B. GitHub, Jira-Integration) |
+
+ ---
+
+ ## Einrichtung – Schritt für Schritt
+
+ ### 1. Dashboard öffnen
+
+ Öffne `https://agent.ls-cloud.biz` im Browser.
+
+ Login mit Caddy-Credentials → danach erscheint das PaperclipAI-Dashboard.
+
+ > [!NOTE]
+ > Beim ersten Aufruf nach Installation erscheint ein **Bootstrap-Wizard** um den ersten Admin-Account anzulegen. E-Mail + Passwort eingeben → Account wird erstellt.
+
+ ---
+
+ ### 2. Ersten Account anlegen (Bootstrap)
+
+ Falls noch kein Account existiert:
+
+ 1. `https://agent.ls-cloud.biz` aufrufen
+ 2. **"Create Account"** oder Bootstrap-Formular ausfüllen
+ 3. E-Mail + Passwort festlegen
+ 4. Du bist jetzt Admin
+
+ > [!TIP]
+ > Nach dem ersten Account empfiehlt es sich, in den Einstellungen die freie Registrierung zu deaktivieren – sonst kann sich jeder mit dem Caddy-Passwort auch einen PaperclipAI-Account anlegen.
+
+ ---
+
+ ### 3. Company erstellen
+
+ Eine **Company** ist der Arbeitsraum. Jedes Projekt / jeder Themenkomplex kann eine eigene Company sein.
+
+ 1. Im Dashboard auf **"New Company"** klicken
+ 2. Name vergeben (z.B. `Homelab Automation`)
+ 3. Optional: Beschreibung
+ 4. **"Create"** → Company ist angelegt
+
+ Du landest automatisch im Company-Dashboard.
+
+ ---
+
+ ### 4. Agent hinzufügen
+
+ Ein Agent ist die Verbindung zu Claude Code (dem eigentlichen KI-Worker).
+
+ 1. In der Company auf **"Agents"** → **"Add Agent"**
+ 2. **Name** vergeben (z.B. `claude-engineer`)
+ 3. **Adapter** wählen: `claude_local`
+ 4. **Monatliches Budget** setzen (z.B. `$10.00`) – schützt vor unkontrollierten Kosten
+ 5. Optional: **Working Directory** – Verzeichnis in dem Claude Code arbeitet
+ 6. **"Save"** → Agent ist registriert
+
+ > [!WARNING]
+ > Ohne Budget-Limit läuft der Agent unbegrenzt. Für Homelab-Nutzung reichen $5–$20/Monat je nach Nutzungsintensität.
+
+ ---
+
+ ### 5. Ersten Job erstellen (Agent beauftragen)
+
+ Jobs sind die eigentlichen Aufgaben, die du dem Agenten gibst.
+
+ 1. Im Company-Dashboard auf **"New Job"** klicken
+ 2. **Agent auswählen** (den gerade angelegten)
+ 3. **Prompt eingeben** – so präzise wie möglich, z.B.:
+
+ ```
+ Analysiere das Verzeichnis /opt/myapp und finde alle Stellen wo
+ SQL-Queries direkt aus User-Input gebaut werden. Liste die Dateien
+ und Zeilennummern auf und erkläre das Risiko.
+ ```
+
+ 4. Optional: **Kontext-Dateien** anhängen
+ 5. **"Start Job"** → Agent beginnt die Arbeit
+
+ Der Job erscheint in der Job-Liste mit Status `running`. Du siehst in Echtzeit die Ausgabe des Agenten.
+
+ ---
+
+ ### 6. Job-Ausgabe lesen
+
+ Während und nach dem Job:
+
+ - **Live-Output**: Claude Codes Nachrichten erscheinen in Echtzeit im Job-Detail
+ - **Tool-Calls**: Jede Datei die gelesen/geschrieben wird, jeder Bash-Befehl – alles sichtbar
+ - **Status**: `running` → `completed` / `failed`
+ - **Kosten**: Werden nach Abschluss gegen das Budget gebucht
+
+ ---
+
+ ### 7. Mehrere Agenten & Arbeitsteilung
+
+ Du kannst mehrere Agenten in einer Company anlegen und ihnen verschiedene Rollen geben:
+
+ | Agent-Name | Working Dir | Aufgabe |
+ |---|---|---|
+ | `frontend-dev` | `/opt/webapp/frontend` | React/CSS Änderungen |
+ | `backend-dev` | `/opt/webapp/api` | API-Entwicklung |
+ | `devops` | `/opt/infra` | Server/Config-Verwaltung |
+
+ Jeder Agent hat sein eigenes Budget. So lässt sich Kosten pro Bereich tracken.
+
+ ---
+
+ ### 8. Plugins & Integrationen
+
+ Unter **Settings → Plugins** kannst du Erweiterungen aktivieren:
+
+ - **GitHub**: Agent öffnet automatisch PRs für seine Änderungen
+ - **Jira / Linear**: Tasks aus Ticketsystem als Job-Quelle
+ - **Webhook**: Externe Trigger für Jobs (z.B. aus CI/CD Pipeline)
+
+ Plugins werden pro Agent oder global aktiviert.
+
+ ---
+
+ ## Tägliche Nutzung
+
+ ### Neuen Job starten
+ **Company** → **"New Job"** → Agent wählen → Prompt schreiben → **"Start"**
+
+ ### Job-Status prüfen
+ **Company** → **"Jobs"** → Job anklicken → Live-Output + Kostenübersicht
+
+ ### Budget-Verbrauch prüfen
+ **Company** → **"Agents"** → Agent anklicken → Budget-Chart (verbraucht / verbleibend)
+
+ ### Agent temporär pausieren
+ **Agents** → Agent → **"Disable"** → Agent nimmt keine neuen Jobs an
+
+ ---
+
+ ## Überwachung & Wartung
+
+ ### Service-Status
+
+ ```bash
+ ssh root@192.168.178.88
+ systemctl status paperclipai
+ ```
+
+ ### Logs
+
+ ```bash
+ # Systemd-Journal
+ journalctl -u paperclipai -f
+
+ # PaperclipAI eigene Logs
+ tail -f /home/paperclip/.paperclip/instances/default/logs/*.log
+ ```
+
+ ### Neustart
+
+ ```bash
+ systemctl restart paperclipai
+ ```
+
+ ### Claude OAuth-Token erneuern (falls abgelaufen)
+
+ ```bash
+ ssh root@192.168.178.88
+ su - paperclip
+ claude logout
+ claude login
+ # URL kopieren → im Browser öffnen → Pro-Account einloggen
+ ```
+
+ Danach Credentials wieder für den paperclip User verfügbar machen:
+ ```bash
+ cp /root/.claude/.credentials.json /home/paperclip/.claude/.credentials.json
+ chown paperclip:paperclip /home/paperclip/.claude/.credentials.json
+ systemctl restart paperclipai
+ ```
+
+ ### PaperclipAI updaten
+
+ ```bash
+ ssh root@192.168.178.88
+ su - paperclip
+ npm install -g paperclipai@latest
+ systemctl restart paperclipai
+ ```
+
+ ---
+
+ ## Architektur im Überblick
+
+ ```
+ Browser
+ └── https://agent.ls-cloud.biz
+ └── Caddy (Proxmox Host, basic_auth)
+ └── nginx CT 118 :3101
+ └── PaperclipAI :3100 (127.0.0.1, User: paperclip)
+ └── embedded PostgreSQL :54329
+ └── claude_local Adapter
+ └── Claude Code (/usr/bin/claude)
+ └── OAuth → Claude Pro Plan
+ ```
+
+ ---
+
+ ## Wichtige Pfade
+
+ | Pfad | Inhalt |
+ |---|---|
+ | `/home/paperclip/.paperclip/instances/default/config.json` | Hauptkonfiguration |
+ | `/home/paperclip/.paperclip/instances/default/db/` | PostgreSQL Daten |
+ | `/home/paperclip/.paperclip/instances/default/logs/` | Logs |
+ | `/home/paperclip/.paperclip/instances/default/data/backups/` | Automatische DB-Backups |
+ | `/home/paperclip/.claude/.credentials.json` | Claude OAuth-Token |
+ | `/etc/systemd/system/paperclipai.service` | Systemd Service |
+ | `/etc/nginx/sites-enabled/paperclipai` | nginx Proxy-Config |
+
+ ---
+
+ ## Schnellcheck
+
+ ```bash
+ # Container läuft?
+ ssh root@192.168.178.46 "pct status 118"
+
+ # Service läuft?
+ ssh root@192.168.178.88 "systemctl status paperclipai --no-pager | head -5"
+
+ # API erreichbar?
+ curl -s http://192.168.178.88:3101/api/health | python3 -m json.tool
+
+ # HTTPS mit Auth?
+ curl -sk -u 'xclusive:PASSWORT' https://agent.ls-cloud.biz/api/health
+ ```
+
+ ---
+
+ > [!TIP]
+ > Claude Code arbeitet im **Home-Verzeichnis des paperclip-Users** (`/home/paperclip`), sofern kein Working Directory im Agent gesetzt ist. Für produktive Nutzung immer ein konkretes Projektverzeichnis als Working Directory angeben.
+
+ > [!WARNING]
+ > PaperclipAI läuft im Modus `local_trusted` – das bedeutet die App vertraut allen Requests die über localhost kommen **ohne zusätzliche Token-Prüfung**. Deshalb ist der Caddy `basic_auth` davor zwingend notwendig und darf nicht entfernt werden.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9