Blame

546dd5 Wiki 2026-04-08 20:55:40
Add CT 118 PaperclipAI article
1
# CT 118 – PaperclipAI
2
3
> [!NOTE]
4
> 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).
5
6
## Basisdaten
7
8
| Eigenschaft | Wert |
9
|---|---|
10
| **CT-ID** | `118` |
11
| **Name** | `paperclipai` |
12
| **IP** | `192.168.178.88` |
13
| **OS** | Debian 12 (Bookworm) |
14
| **RAM** | 2048 MB |
15
| **Disk** | 20 GB |
16
| **Web-UI (intern)** | `http://192.168.178.88:3101` |
17
| **Web-UI (extern)** | `https://agent.ls-cloud.biz` |
18
| **Service** | `paperclipai.service` (User: `paperclip`) |
19
| **Node.js** | v20.20.2 |
20
| **PaperclipAI** | v2026.403.0 |
21
| **Claude Code** | v2.1.96 |
22
| **Auth** | Caddy basic_auth + PaperclipAI-eigene Accounts |
23
24
---
25
26
## Was ist PaperclipAI?
27
28
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.
29
30
**Kernkonzepte:**
31
32
| Begriff | Bedeutung |
33
|---|---|
34
| **Company** | Virtuelles Unternehmen – Container für Agenten und Projekte |
35
| **Agent** | KI-Worker (hier Claude Code) – führt Tasks autonom aus |
36
| **Job** | Einzelner Auftrag / Prompt, den ein Agent bearbeitet |
37
| **Budget** | Monatliches Kostenlimit pro Agent (verhindert Kontrollverlust) |
38
| **Plugin** | Erweiterung für Agenten (z.B. GitHub, Jira-Integration) |
39
40
---
41
42
## Einrichtung – Schritt für Schritt
43
44
### 1. Dashboard öffnen
45
46
Öffne `https://agent.ls-cloud.biz` im Browser.
47
48
Login mit Caddy-Credentials → danach erscheint das PaperclipAI-Dashboard.
49
50
> [!NOTE]
51
> Beim ersten Aufruf nach Installation erscheint ein **Bootstrap-Wizard** um den ersten Admin-Account anzulegen. E-Mail + Passwort eingeben → Account wird erstellt.
52
53
---
54
55
### 2. Ersten Account anlegen (Bootstrap)
56
57
Falls noch kein Account existiert:
58
59
1. `https://agent.ls-cloud.biz` aufrufen
60
2. **"Create Account"** oder Bootstrap-Formular ausfüllen
61
3. E-Mail + Passwort festlegen
62
4. Du bist jetzt Admin
63
64
> [!TIP]
65
> 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.
66
67
---
68
69
### 3. Company erstellen
70
71
Eine **Company** ist der Arbeitsraum. Jedes Projekt / jeder Themenkomplex kann eine eigene Company sein.
72
73
1. Im Dashboard auf **"New Company"** klicken
74
2. Name vergeben (z.B. `Homelab Automation`)
75
3. Optional: Beschreibung
76
4. **"Create"** → Company ist angelegt
77
78
Du landest automatisch im Company-Dashboard.
79
80
---
81
82
### 4. Agent hinzufügen
83
84
Ein Agent ist die Verbindung zu Claude Code (dem eigentlichen KI-Worker).
85
86
1. In der Company auf **"Agents"****"Add Agent"**
87
2. **Name** vergeben (z.B. `claude-engineer`)
88
3. **Adapter** wählen: `claude_local`
89
4. **Monatliches Budget** setzen (z.B. `$10.00`) – schützt vor unkontrollierten Kosten
90
5. Optional: **Working Directory** – Verzeichnis in dem Claude Code arbeitet
91
6. **"Save"** → Agent ist registriert
92
93
> [!WARNING]
94
> Ohne Budget-Limit läuft der Agent unbegrenzt. Für Homelab-Nutzung reichen $5–$20/Monat je nach Nutzungsintensität.
95
96
---
97
98
### 5. Ersten Job erstellen (Agent beauftragen)
99
100
Jobs sind die eigentlichen Aufgaben, die du dem Agenten gibst.
101
102
1. Im Company-Dashboard auf **"New Job"** klicken
103
2. **Agent auswählen** (den gerade angelegten)
104
3. **Prompt eingeben** – so präzise wie möglich, z.B.:
105
106
```
107
Analysiere das Verzeichnis /opt/myapp und finde alle Stellen wo
108
SQL-Queries direkt aus User-Input gebaut werden. Liste die Dateien
109
und Zeilennummern auf und erkläre das Risiko.
110
```
111
112
4. Optional: **Kontext-Dateien** anhängen
113
5. **"Start Job"** → Agent beginnt die Arbeit
114
115
Der Job erscheint in der Job-Liste mit Status `running`. Du siehst in Echtzeit die Ausgabe des Agenten.
116
117
---
118
119
### 6. Job-Ausgabe lesen
120
121
Während und nach dem Job:
122
123
- **Live-Output**: Claude Codes Nachrichten erscheinen in Echtzeit im Job-Detail
124
- **Tool-Calls**: Jede Datei die gelesen/geschrieben wird, jeder Bash-Befehl – alles sichtbar
125
- **Status**: `running``completed` / `failed`
126
- **Kosten**: Werden nach Abschluss gegen das Budget gebucht
127
128
---
129
130
### 7. Mehrere Agenten & Arbeitsteilung
131
132
Du kannst mehrere Agenten in einer Company anlegen und ihnen verschiedene Rollen geben:
133
134
| Agent-Name | Working Dir | Aufgabe |
135
|---|---|---|
136
| `frontend-dev` | `/opt/webapp/frontend` | React/CSS Änderungen |
137
| `backend-dev` | `/opt/webapp/api` | API-Entwicklung |
138
| `devops` | `/opt/infra` | Server/Config-Verwaltung |
139
140
Jeder Agent hat sein eigenes Budget. So lässt sich Kosten pro Bereich tracken.
141
142
---
143
144
### 8. Plugins & Integrationen
145
146
Unter **Settings → Plugins** kannst du Erweiterungen aktivieren:
147
148
- **GitHub**: Agent öffnet automatisch PRs für seine Änderungen
149
- **Jira / Linear**: Tasks aus Ticketsystem als Job-Quelle
150
- **Webhook**: Externe Trigger für Jobs (z.B. aus CI/CD Pipeline)
151
152
Plugins werden pro Agent oder global aktiviert.
153
154
---
155
156
## Tägliche Nutzung
157
158
### Neuen Job starten
159
**Company****"New Job"** → Agent wählen → Prompt schreiben → **"Start"**
160
161
### Job-Status prüfen
162
**Company****"Jobs"** → Job anklicken → Live-Output + Kostenübersicht
163
164
### Budget-Verbrauch prüfen
165
**Company****"Agents"** → Agent anklicken → Budget-Chart (verbraucht / verbleibend)
166
167
### Agent temporär pausieren
168
**Agents** → Agent → **"Disable"** → Agent nimmt keine neuen Jobs an
169
170
---
171
172
## Überwachung & Wartung
173
174
### Service-Status
175
176
```bash
177
ssh root@192.168.178.88
178
systemctl status paperclipai
179
```
180
181
### Logs
182
183
```bash
184
# Systemd-Journal
185
journalctl -u paperclipai -f
186
187
# PaperclipAI eigene Logs
188
tail -f /home/paperclip/.paperclip/instances/default/logs/*.log
189
```
190
191
### Neustart
192
193
```bash
194
systemctl restart paperclipai
195
```
196
197
### Claude OAuth-Token erneuern (falls abgelaufen)
198
199
```bash
200
ssh root@192.168.178.88
201
su - paperclip
202
claude logout
203
claude login
204
# URL kopieren → im Browser öffnen → Pro-Account einloggen
205
```
206
207
Danach Credentials wieder für den paperclip User verfügbar machen:
208
```bash
209
cp /root/.claude/.credentials.json /home/paperclip/.claude/.credentials.json
210
chown paperclip:paperclip /home/paperclip/.claude/.credentials.json
211
systemctl restart paperclipai
212
```
213
214
### PaperclipAI updaten
215
216
```bash
217
ssh root@192.168.178.88
218
su - paperclip
219
npm install -g paperclipai@latest
220
systemctl restart paperclipai
221
```
222
223
---
224
225
## Architektur im Überblick
226
227
```
228
Browser
229
└── https://agent.ls-cloud.biz
230
└── Caddy (Proxmox Host, basic_auth)
231
└── nginx CT 118 :3101
232
└── PaperclipAI :3100 (127.0.0.1, User: paperclip)
233
└── embedded PostgreSQL :54329
234
└── claude_local Adapter
235
└── Claude Code (/usr/bin/claude)
236
└── OAuth → Claude Pro Plan
237
```
238
239
---
240
241
## Wichtige Pfade
242
243
| Pfad | Inhalt |
244
|---|---|
245
| `/home/paperclip/.paperclip/instances/default/config.json` | Hauptkonfiguration |
246
| `/home/paperclip/.paperclip/instances/default/db/` | PostgreSQL Daten |
247
| `/home/paperclip/.paperclip/instances/default/logs/` | Logs |
248
| `/home/paperclip/.paperclip/instances/default/data/backups/` | Automatische DB-Backups |
249
| `/home/paperclip/.claude/.credentials.json` | Claude OAuth-Token |
250
| `/etc/systemd/system/paperclipai.service` | Systemd Service |
251
| `/etc/nginx/sites-enabled/paperclipai` | nginx Proxy-Config |
252
253
---
254
255
## Schnellcheck
256
257
```bash
258
# Container läuft?
259
ssh root@192.168.178.46 "pct status 118"
260
261
# Service läuft?
262
ssh root@192.168.178.88 "systemctl status paperclipai --no-pager | head -5"
263
264
# API erreichbar?
265
curl -s http://192.168.178.88:3101/api/health | python3 -m json.tool
266
267
# HTTPS mit Auth?
268
curl -sk -u 'xclusive:PASSWORT' https://agent.ls-cloud.biz/api/health
269
```
270
271
---
272
273
> [!TIP]
274
> 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.
275
276
> [!WARNING]
277
> 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.