MelekiandClaude Opus 4.6 1c622abb37 refactor: AnthropicService partial-class Aufteilung + ToolPayloadOptions + Non-Streaming Deduplizierung
- AnthropicService.cs (337 Zeilen): Felder, Konstruktor, Setters, Utilities
- AnthropicService.Streaming.cs (750 Zeilen): StreamChat, ProcessStream, SSE-Parsing
- AnthropicService.Agents.cs (680 Zeilen): RunAgentChat, ChatNonStreaming, Review/Preparer/Finalizer
- AnthropicService.Cli.cs (530 Zeilen): StreamChatViaCli, MCP-Config, CLI-Helpers
- AddToolsToPayload: 12 Bool-Parameter → ToolPayloadOptions Record
- RunAgentChat + ChatNonStreaming → gemeinsame RunNonStreamingToolLoop-Methode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 14:54:39 +01:00
2026-03-01 14:25:43 +01:00

// 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
  • Anthropic API Key (console.anthropic.com) – wird über Admin-UI verwaltet
  • Optional: Gemini API Key (aistudio.google.com) – 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):

{
  "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) –

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

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):

# 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):

[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 · Kurzreferenz: ARCHITECTURE_QUICK.md


Lizenz

Proprietär – Alle Rechte vorbehalten.

S
Description
No description provided
Readme
3.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
C# 65.9%
JavaScript 24.6%
CSS 5.1%
HTML 2.5%
Python 0.7%
Other 1.2%