Files
gott/README.md
T
Meleki 8e94975e61 docs: Dokumentation aktualisieren (ReviewContext→SubAgentContext, Provider-Weiche, agent_api_keys, Scanner, Dashboard-Sortierung, Plan-Modus-Hint)
ARCHITECTURE.md:
- ReviewContext → SubAgentContext (Code-Block + alle Referenzen)
- ChatContext.cs Kommentar aktualisiert
- Provider-Weiche für Telegram, Cronjobs, Sub-Agents dokumentiert
- OpenAiService: ChatNonStreaming() ergänzt
- Chat-Pipeline: API-Key-Auflösung als Schritt 3c
- Multi-Provider-Tabelle: AnthropicToken → agent_api_keys
- api_keys Tabelle: Zuweisung pro Agent statt global
- Neue Tabellen: agent_api_keys, scanner_logs, server_settings
- Dashboard-Sortierung nach letzter Chat-Nachricht
- Plan-Modus: Hint-Mechanismus dokumentiert
- Key-Scanner: 4 Quellen (GitHub Code, Issues/PRs, HuggingFace, Serper)
- API-Key pro Agent: Endpoints + Kein-Key-Option
- ServerSettingsService in Service-Tabelle
- session.js: currentAgentId dokumentiert
- Streaming vs Non-Streaming: Sub-Agents ergänzt

ARCHITECTURE_QUICK.md:
- Multi-Agent Backend: SubAgentContext + Provider-Weiche
- OpenAiService: Non-Streaming erwähnt
- Chat-Pipeline: Key-Auflösung ergänzt
- api_keys: Zuweisung pro Agent
- Dashboard-Route: Sortierungs-Hinweis

README.md:
- Key-Scanner: 4 Quellen statt nur GitHub
2026-03-15 09:20:46 +01:00

174 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
![](Screenshot.png)
# // gott
Self-hosted AI-Coding-Agent mit **Anthropic Claude API** als Haupt-Provider sowie **OpenAI-kompatiblen Providern** (Nvidia, Pollinations, Google Gemini). 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, Suchen, 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), Nvidia (g4f.space), Pollinations (kostenlos), Google Gemini (kostenloser Free Tier)
- **17 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`
- **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) inkl. Key-Check, API-Key-Scanner (GitHub Code Search, GitHub Issues/PRs, HuggingFace Hub, Google/Serper), passive Usage-Aktualisierung bei jeder Chat-Nachricht, Usage-Badge im Chat mit Key-Switch-Modal (pro Agent)
- **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 + OpenAI-kompatible APIs (Nvidia, Pollinations, Gemini) |
| **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.