191 lines
5.9 KiB
Markdown
191 lines
5.9 KiB
Markdown
# Agenten anbinden
|
||
|
||
Wie man KI-Werkzeuge so einrichtet und anspricht, dass sie den Munin
|
||
tatsächlich benutzen.
|
||
|
||
---
|
||
|
||
## 1. Verbinden
|
||
|
||
Key erzeugen unter `/p/<projekt>/keys`. Der Klartext wird genau einmal angezeigt.
|
||
|
||
Die fertigen Konfigurationsblöcke für **Claude Code**, **Cline** und **OpenCode**
|
||
stehen im [README](README.md#mcp-einrichten) — dort auch, worin sich die drei
|
||
Dateien unterscheiden. Kurzfassung:
|
||
|
||
| Client | Datei | Schlüssel | `type` |
|
||
|---|---|---|---|
|
||
| Claude Code | `.mcp.json` | `mcpServers` | `http` |
|
||
| Cline | `cline_mcp_settings.json` | `mcpServers` | `streamableHttp` |
|
||
| OpenCode | `opencode.json` | `mcp` | `remote` |
|
||
|
||
Ein Server je Projekt. Der Key bestimmt das Projekt — kein weiterer Parameter nötig.
|
||
|
||
**Ein Key je Person und je Agent.** Der Key-Name landet als Autor an jedem Eintrag
|
||
und im Protokoll.
|
||
|
||
---
|
||
|
||
## 2. Werkzeuge
|
||
|
||
| Werkzeug | Parameter | Rolle |
|
||
|---|---|---|
|
||
| `recall` | `query`, `tags?`, `limit?` | read |
|
||
| `get` | `slug` | read |
|
||
| `list` | `tag?`, `curated?`, `limit?` | read |
|
||
| `remember` | `title`, `content`, `slug?`, `tags?`, `expected_version?` | write |
|
||
| `forget` | `slug` | write |
|
||
|
||
---
|
||
|
||
## 3. Das eigentliche Problem
|
||
|
||
Der Server schickt jedem Client eine Anleitung mit (`instructions`). Viele Clients
|
||
gewichten sie schwach oder ignorieren sie. **Ohne eigene Anweisung im Projekt-
|
||
oder Systemprompt greift ein Agent selten von selbst zum Werkzeug** — er antwortet
|
||
lieber aus seinem eigenen Wissen.
|
||
|
||
Deshalb der folgende Block.
|
||
|
||
---
|
||
|
||
## 4. Projektprompt
|
||
|
||
In `CLAUDE.md`, `.clinerules`, „Custom Instructions" oder den Systemprompt der
|
||
eigenen Anwendung:
|
||
|
||
```markdown
|
||
## Munin
|
||
|
||
Für dieses Projekt gibt es einen Munin über MCP (Werkzeuge: recall,
|
||
get, list, remember, forget). Er ist das gemeinsame Gedächtnis des Teams.
|
||
|
||
LESEN — vor jeder Antwort zu projektspezifischen Fragen:
|
||
- Zuerst `recall` mit der Frage aufrufen, nicht mit Stichworten.
|
||
- Passenden Treffer mit `get` vollständig laden.
|
||
- Erst wenn nichts Passendes da ist, aus eigenem Wissen antworten — und das
|
||
kenntlich machen.
|
||
- Nie raten, wenn es um Prozesse, Zugänge oder Entscheidungen dieses Teams geht.
|
||
|
||
SCHREIBEN — sobald etwas festgehalten werden sollte:
|
||
- IMMER zuerst `recall`, ob es zum Thema schon einen Eintrag gibt.
|
||
- Gibt es einen: mit DESSEN slug `remember` aufrufen. Das aktualisiert ihn.
|
||
- Nur wenn wirklich nichts passt, einen neuen slug wählen.
|
||
- Vor dem Aktualisieren `get` aufrufen und die gelieferte `version` als
|
||
`expected_version` mitgeben.
|
||
|
||
WAS festgehalten wird:
|
||
- Entscheidungen mit Begründung
|
||
- Abläufe, die sich wiederholen
|
||
- Lösungen für Probleme, die länger gedauert haben
|
||
- Nicht: Zwischenstände, Diskussionsverlauf, was im Code steht
|
||
|
||
WIE festgehalten wird:
|
||
- Destilliert, nicht als Protokoll. Ein Eintrag beantwortet eine Frage.
|
||
- Verwandtes mit [[bezeichner]] verknüpfen.
|
||
- Schlagworte sparsam: 1–3 aus dem bestehenden Bestand (`list` zeigt sie).
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Bezeichner (slug)
|
||
|
||
Der slug ist der Schlüssel gegen Dubletten: gleicher slug = Aktualisierung.
|
||
|
||
| gut | schlecht | warum |
|
||
|---|---|---|
|
||
| `deployment-prozess` | `notiz-2026-01-15` | Datum ist kein Thema |
|
||
| `fehler-zugriff-verweigert` | `problem-3` | nicht wiederfindbar |
|
||
| `entscheidung-sqlite` | `sqlite-entscheidung-final-v2` | Fassungen zählt das System |
|
||
|
||
Regeln: `a-z`, `0-9`, `-`, `_`. Kurz, sprechend, dauerhaft. Ohne Angabe wird er
|
||
aus dem Titel abgeleitet.
|
||
|
||
---
|
||
|
||
## 6. Muster für einzelne Aufgaben
|
||
|
||
**Nachschlagen**
|
||
|
||
```
|
||
Wie läuft bei uns das Deployment? Schau zuerst im Munin nach.
|
||
```
|
||
|
||
**Festhalten nach getaner Arbeit**
|
||
|
||
```
|
||
Halte fest, was wir über den abgelaufenen Token herausgefunden haben.
|
||
Prüfe vorher mit recall, ob es dazu schon einen Eintrag gibt — dann
|
||
ergänze diesen, statt einen neuen anzulegen.
|
||
```
|
||
|
||
**Bestand aufräumen**
|
||
|
||
```
|
||
Rufe list auf und nenne mir Einträge, die dasselbe Thema doppelt behandeln.
|
||
Nichts ändern, nur auflisten.
|
||
```
|
||
|
||
**Einarbeiten**
|
||
|
||
```
|
||
Verschaffe dir mit list und recall einen Überblick über den Munin
|
||
und fasse zusammen, was dieses Team über Betrieb und Deployment festgehalten hat.
|
||
```
|
||
|
||
**Vorhandenes fortschreiben**
|
||
|
||
```
|
||
Lies deployment-prozess mit get, ergänze den Schritt mit dem Rollback und
|
||
schreibe zurück — mit expected_version aus dem get.
|
||
```
|
||
|
||
---
|
||
|
||
## 7. Was Dubletten erzeugt
|
||
|
||
| Ursache | Gegenmittel |
|
||
|---|---|
|
||
| Agent schreibt ohne vorher zu suchen | „IMMER zuerst recall" im Projektprompt |
|
||
| Neuer slug für vorhandenes Thema | slug-Regeln oben; `recall` liefert den vorhandenen |
|
||
| Zeitstempel im slug | verbieten — Fassungen zählt das System |
|
||
| Jede Erkenntnis als eigener Eintrag | „Ein Eintrag beantwortet eine Frage" |
|
||
|
||
---
|
||
|
||
## 8. Prüfen, ob es wirkt
|
||
|
||
**Protokoll:** `/p/<projekt>/audit` — jeder Schreibvorgang mit Zugang und Zeit.
|
||
|
||
**Faustregel:** Nach ein paar Wochen sollte das Verhältnis von Aktualisierungen zu
|
||
Neuanlagen steigen. Viele Neuanlagen bei ähnlichen Themen heißt: Der Projektprompt
|
||
greift nicht.
|
||
|
||
**In der Oberfläche:** Einträge mit Herkunft „Agent" und ohne Marke „kuratiert"
|
||
sind ungeprüfte Beobachtungen. Wer sie durchsieht und bestätigt, setzt den Haken
|
||
„Kuratiert" — Agenten sehen das Feld über `recall` und `get`.
|
||
|
||
---
|
||
|
||
## 9. Rollen
|
||
|
||
| Rolle | darf | wofür |
|
||
|---|---|---|
|
||
| `read` | recall, get, list | Agenten, die nur auskunftsfähig sein sollen |
|
||
| `write` | zusätzlich remember, forget | der Normalfall |
|
||
| `admin` | zusätzlich Zugänge verwalten | Menschen |
|
||
|
||
Ein Agent, der ohne Aufsicht läuft, bekommt `read`. Schreibrecht dort, wo jemand
|
||
die Einträge auch durchsieht.
|
||
|
||
---
|
||
|
||
## 10. Grenzen
|
||
|
||
- **Suche ist wortbasiert.** „wie deployen wir" findet „Release-Prozess" nicht.
|
||
Im Zweifel `list` für den Überblick.
|
||
- **Kein Zurück.** `forget` löscht endgültig, alte Fassungen werden nicht
|
||
aufgehoben. Veraltetes lieber mit `remember` richtigstellen.
|
||
- **Was drinsteht, landet im Kontext aller.** Wer schreiben darf, schreibt
|
||
indirekt in die Prompts der anderen — Herkunft und Autor stehen deshalb an
|
||
jedem Eintrag.
|