Neue Features dokumentiert: Claude CLI Integration, DB Explorer, MCP-Server (Internal API), Key-Scanner-System (KeyPatterns, KeyCheckDispatcher, GitHubEventScannerService), Multi-Provider Key-Checker (OpenAI, Google, Stripe), AnthropicService partial-class Aufteilung, 2 neue Tools (github_code_search, serper_web_search → 19 Tools), OpenAI als Provider, typing-phrases.js, AppPaths, payload-preview Endpoint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
177 lines
8.5 KiB
Markdown
177 lines
8.5 KiB
Markdown

|
||
|
||
# // gott
|
||
|
||
Self-hosted AI-Coding-Agent mit **Anthropic Claude API** als Haupt-Provider (inkl. Claude CLI-Integration) sowie **OpenAI-kompatiblen Providern** (Nvidia, Pollinations, Google Gemini, OpenAI). Stellt eine Web-UI bereit, über die man in Sessions mit konfigurierbaren Agenten chatten kann. Die Agenten haben Tool-Zugriff (Dateien lesen/schreiben/bearbeiten, Shell-Befehle ausführen, Web-/Code-Suche, Todos, Memory) auf ein definiertes Workspace-Verzeichnis.
|
||
|
||
---
|
||
|
||
## Features
|
||
|
||
- **Multi-Agent-System** – Bis zu 4 Agenten pro Session: Worker, Vorbereiter (Preparer), Reviewer, Finalizer
|
||
- **Vorbereiter-Agent** – Optionaler Preparer, der User-Anfragen analysiert, Vorarbeit leistet und aufbereitete Prompts an den Worker weitergibt
|
||
- **Multi-Agent Review** – Optionaler Review-Agent, der die Arbeit des Worker-Agents prüft und Feedback gibt
|
||
- **Finalizer-Agent** – Optionaler Agent, der nach dem Review abschließende Arbeiten durchführt (z.B. Git-Commit, Deployment)
|
||
- **Interaktive Rückfragen** – `ask_user_choice`-Tool: Agent stellt dem User klickbare Auswahlmöglichkeiten
|
||
- **Plan-Modus** – Read-only-Modus zum Analysieren und Planen ohne Änderungen (Toggle im Chat)
|
||
- **Web-Search** – Integrierte Web-Suche mit Quellenangaben (URLs + Titel) in Chat und geteilten Nachrichten
|
||
- **Multi-Provider** – Anthropic Claude (Haupt-Provider, inkl. Claude CLI), Nvidia (g4f.space), Pollinations (kostenlos), Google Gemini (kostenloser Free Tier), OpenAI
|
||
- **19 Tools** – `read_file`, `write_file`, `edit_file`, `list_files`, `delete_file`, `execute`, `background_execute`, `glob`, `grep`, `todo_write`, `memory_read`, `memory_write`, `memory_list`, `memory_search`, `remote_execute`, `send_to_session`, `ask_user_choice`, `github_code_search`, `serper_web_search`
|
||
- **Streaming** – Echtzeit-Antworten via Server-Sent Events (SSE)
|
||
- **Stop-Button** – Laufende Requests zuverlässig abbrechen (inkl. laufender Shell-Befehle)
|
||
- **Skill-System** – Wiederverwendbare Prompt-Bausteine, zuordenbar pro Agent
|
||
- **Memory** – Persistentes Gedächtnis pro Agent (Dateisystem-basiert)
|
||
- **Workspace-Browser** – Integrierter Datei-Explorer mit Editor
|
||
- **Telegram-Integration** – Bots als eigenständige Entität, mehrere Sessions pro Bot, Public-Bots
|
||
- **Cronjobs** – Zeitgesteuerte Prompts mit Cron-Expressions
|
||
- **Bildgenerierung** – Krea AI Integration für Bildgenerierung
|
||
- **Semantische Suche** – Lokale Sentence-Embeddings (all-MiniLM-L6-v2 ONNX) für `memory_search` über vergangene Nachrichten und Memory-Dateien
|
||
- **Remote-Verbindungen** – WebSocket-basierte Remote-Clients (PowerShell), AI-Agent kann Befehle auf entfernten Rechnern ausführen
|
||
- **API-Key-Verwaltung** – Admin-UI zum Verwalten von API-Keys (Anthropic, OpenAI, Google, Stripe) inkl. Multi-Provider Key-Check, API-Key-Scanner (GitHub Code Search, GitHub Issues/PRs, HuggingFace Hub, Google/Serper), GitHub Events Echtzeit-Scanner, passive Usage-Aktualisierung bei jeder Chat-Nachricht, Usage-Badge im Chat mit Key-Switch-Modal (pro Agent)
|
||
- **Claude CLI** – Alternativer Streaming-Weg über die Claude Code CLI (OAuth-basiert, kein API-Key nötig)
|
||
- **Datenbank-Explorer** – Admin-UI zum direkten Inspizieren der SQLite-Datenbank
|
||
- **MCP-Server-Integration** – Interne API für externe MCP-Server (Remote-Execute, Ask-User-Choice, Memory-CRUD)
|
||
- **Nachrichten teilen** – Einzelne Nachrichten per öffentlichem Link teilen
|
||
- **Archivierung** – Chat-Verläufe archivieren und durchsuchen
|
||
- **OpenClaw Import** – Chatverlauf aus OpenClaw-Instanzen importieren
|
||
- **Benutzerverwaltung** – Multi-User mit Admin-Rollen, Impersonate, Login-Links
|
||
- **Servereinstellungen** – Admin-UI für `appsettings.Production.json`
|
||
- **Desktop-Client** – WPF + WebView2 Windows-App
|
||
- **Dark Theme** – CSS-Variables basiertes Theming
|
||
|
||
## Tech-Stack
|
||
|
||
| Bereich | Technologie |
|
||
|---------|-------------|
|
||
| **Backend** | .NET 10 Minimal API, C# |
|
||
| **Datenbank** | SQLite + Dapper |
|
||
| **AI** | Anthropic Claude API (+ Claude CLI) + OpenAI-kompatible APIs (Nvidia, Pollinations, Gemini, OpenAI) |
|
||
| **Embeddings** | Microsoft.ML.OnnxRuntime + all-MiniLM-L6-v2 (Sentence-Embeddings) |
|
||
| **Frontend** | Vanilla JS SPA (kein Framework), CSS Variables |
|
||
| **Mathe** | KaTeX (LaTeX-Rendering) |
|
||
| **Bilder** | SixLabors.ImageSharp |
|
||
| **Cron** | Cronos |
|
||
| **Desktop** | WPF + WebView2 (optional) |
|
||
|
||
---
|
||
|
||
## Voraussetzungen
|
||
|
||
- [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
|
||
- Anthropic API Key ([console.anthropic.com](https://console.anthropic.com/)) – wird über Admin-UI verwaltet
|
||
- Optional: Gemini API Key ([aistudio.google.com](https://aistudio.google.com/apikey)) – kostenlos, kein Billing nötig
|
||
- Optional: ONNX-Modell `all-MiniLM-L6-v2` für semantische Suche (`data/models/all-MiniLM-L6-v2/`)
|
||
- Linux/macOS/Windows (Produktiv: Linux empfohlen)
|
||
|
||
## Konfiguration
|
||
|
||
Beim ersten Start wird `appsettings.json` mit Standardwerten verwendet. Für eigene Einstellungen eine `appsettings.Production.json` im `Build/Linux/publish/`-Verzeichnis anlegen (oder über die Admin-UI verwalten):
|
||
|
||
```json
|
||
{
|
||
"Port": 19000
|
||
}
|
||
```
|
||
|
||
| Setting | Beschreibung | Default |
|
||
|---------|-------------|---------|
|
||
| `Port` | Server-Port (erfordert Neustart) | `19000` |
|
||
| `MaxIterations` | Max Tool-Loop Iterationen pro Chat | `100` |
|
||
| `MaxHistory` | Max Messages in Chat-History | `120` |
|
||
| `ReminderInterval` | System-Prompt-Reminder alle N Messages | `30` |
|
||
| `ExecuteTimeout` | Timeout für Shell-Befehle in Sekunden | `180` |
|
||
| `PayloadLogging` | API-Payloads in Konsole loggen | `false` |
|
||
| `PayloadLoggingGzip` | Payload-Logs als .gz komprimieren | `false` |
|
||
| `KreaToken` | Krea AI API Token (optional) | – |
|
||
| `KreaApiKey` | API-Key für Krea-Endpoints ohne User-Auth (optional) | – |
|
||
| `GeminiApiKey` | Google Gemini API Key (kostenlos via [aistudio.google.com](https://aistudio.google.com/apikey)) | – |
|
||
|
||
> **Hinweis:** `AnthropicToken` wird über die **API-Key-Verwaltung** im Admin-Bereich verwaltet (DB-Tabelle `api_keys`), nicht mehr über `appsettings.json`. Bestehende Tokens werden beim ersten Start automatisch migriert.
|
||
|
||
> **Hinweis:** Die `appsettings.Production.json` wird **nicht** beim `dotnet publish` mitkopiert. Sie lebt ausschließlich im `Build/Linux/publish/`-Verzeichnis und kann über die Admin-UI (`#/server-settings`) verwaltet werden.
|
||
|
||
## Starten
|
||
|
||
```bash
|
||
dotnet run
|
||
```
|
||
|
||
Die Web-UI ist dann unter `http://localhost:19000` erreichbar.
|
||
|
||
Beim ersten Start wird automatisch ein Admin-Account erstellt:
|
||
- Benutzername: `admin`
|
||
- Passwort: `admin`
|
||
|
||
## Deployment (Linux)
|
||
|
||
Empfohlen als systemd-Service hinter einem Reverse Proxy (Nginx, Caddy):
|
||
|
||
```bash
|
||
# deploy.sh (Beispiel)
|
||
#!/bin/bash
|
||
set -e
|
||
cd /app/gott
|
||
systemctl stop gott
|
||
dotnet publish -c Release -o publish
|
||
systemctl start gott
|
||
```
|
||
|
||
Beispiel systemd-Unit (`/etc/systemd/system/gott.service`):
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Gott
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=exec
|
||
WorkingDirectory=/app/gott
|
||
ExecStart=/app/gott/Build/Linux/publish/gott
|
||
Restart=on-failure
|
||
RestartSec=5
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
---
|
||
|
||
## Projektstruktur
|
||
|
||
```
|
||
gott/
|
||
├── Program.cs # Startup, DI, Middleware, Routing
|
||
├── appsettings.json # Standard-Konfiguration
|
||
├── Models/ # Records (reine Daten)
|
||
├── Services/ # Business-Logic (Singletons)
|
||
├── Endpoints/ # HTTP API (Minimal API)
|
||
├── Middleware/ # Auth-Middleware
|
||
├── Templates/ # Vorlagen (IDENTITY.md, SOUL.md, USER.md)
|
||
├── wwwroot/ # Frontend (Vanilla JS SPA)
|
||
│ ├── js/ # App, Router, API, Chat, UI-Module (modular aufgeteilt), Pages
|
||
│ └── css/ # Styles (theme.css = CSS Variables)
|
||
├── WindowsApp/ # WPF + WebView2 Desktop Client
|
||
└── Build/ # Build-Output + Laufzeit-Daten
|
||
├── Linux/
|
||
│ ├── bin/
|
||
│ ├── obj/
|
||
│ └── publish/
|
||
└── Windows/
|
||
├── bin/
|
||
├── obj/
|
||
└── publish/
|
||
└── data/
|
||
├── gott.db # SQLite Datenbank
|
||
├── agents/{id}/ # Memory-Dateien pro Agent
|
||
├── skills/{slug}/ # Skill-Dateien
|
||
└── images/ # Krea-generierte Bilder
|
||
```
|
||
|
||
Ausführliche Dokumentation: [ARCHITECTURE.md](ARCHITECTURE.md) · Kurzreferenz: [ARCHITECTURE_QUICK.md](ARCHITECTURE_QUICK.md)
|
||
|
||
---
|
||
|
||
## Lizenz
|
||
|
||
Proprietär – Alle Rechte vorbehalten.
|