Opus 4.5+ and Sonnet 4.6+ support a new "effort" knob that controls how
much budget the model spends on thinking and tool calls. Plumb it through
end to end so each agent can pick its own level.
Storage & shape:
- New TEXT column agents.effort (default '') added via TryAddColumn.
- AgentRecord.Effort + INSERT/UPDATE in DatabaseService.Agents.cs.
- ChatContext.Effort + SubAgentContext.Effort so the value travels with the
request alongside model and tool settings.
Agent editor:
- Effort dropdown above git-commit behavior in the agent form (low/medium/
high/xhigh/max plus empty = "use default"). Always visible; on OpenAI
providers the value is sent but silently ignored.
- agent-page.js load/save and AgentEndpoint create/update wired up.
Anthropic API path:
- StreamChat and RunNonStreamingToolLoop add output_config: { effort } when
effort is set and not "high" – empty/null/"high" means "omit and let the
API pick its default".
- Sub-agents (preparer/review/finalizer) get the parameter through
RunAgentChat so each step uses its own agent's effort.
Anthropic CLI path:
- ClaudeCliService.ChatStreamingAsync takes an effort parameter and exports
CLAUDE_CODE_EFFORT_LEVEL on the spawned process. Env-var beats the
--effort flag because it also covers "max" and "ultracode".
- StreamChatViaCli, ChatNonStreamingViaCli, RunSubAgentViaCli, and the
ChatEndpoint anthropic branches all hand the value through.
ARCHITECTURE.md / ARCHITECTURE_QUICK.md updated with the new field.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
// 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 - Auto-Context – Automatischer semantischer Kontext aus früheren Gesprächen + Memory wird vor jedem Request in den System-Prompt injiziert und im Chat als aufklappbare Box sichtbar gemacht
- Remote-Verbindungen – WebSocket-basierte Remote-Clients für Windows (PowerShell,
remote.ps1) und Linux/macOS (Bash + embedded Python,remote.sh); AI-Agent kann Befehle auf entfernten Rechnern ausführen, Tool-Description ist OS-aware - 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); auch als Fallback für Sub-Agents (Preparer/Review/Finalizer) ohne zugewiesenen Key
- 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
- 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-v2fü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 | 220 |
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:
AnthropicTokenwird über die API-Key-Verwaltung im Admin-Bereich verwaltet (DB-Tabelleapi_keys), nicht mehr überappsettings.json. Bestehende Tokens werden beim ersten Start automatisch migriert.
Hinweis: Die
appsettings.Production.jsonwird nicht beimdotnet publishmitkopiert. Sie lebt ausschließlich imBuild/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.
