Files
gott/README.md
T
Meleki f4dc5fd812 docs: Dokumentation aktualisiert – Preparer, ask_user_choice, Plan-Modus, TaskInstruction, Message-Tag
ARCHITECTURE.md:
- Multi-Agent System: 'Review + Finalizer' → 'Preparer + Review + Finalizer'
- Neue Sektion: Vorbereiter-Agent (Preparer) mit Flow, SSE-Events, History-Logik
- Neue Sektion: Interaktive Rückfragen (ask_user_choice) mit Tool-Definition, Backend/Frontend-Flow
- Neue Sektion: Plan-Modus mit Tool-Filterung, System-Prompt-Anpassungen
- System-Prompt-Aufbau: 12 → 14+ Blöcke (Anweisungen, Rückfragen, Plan-Modus, Preparer)
- Tool-System: ask_user_choice + Plan-Modus Read-only Filter dokumentiert
- Agent-System: AllowUserChoice + TaskInstruction Felder
- Datenmodell: preparer_agent_id, plan_mode, Tag, neue StopReasons
- DB-Persistierung: Tag-Markierung für Sub-Agent-Messages

ARCHITECTURE_QUICK.md:
- Sessions/Chains/Messages Tabellen aktualisiert
- Chat-Pipeline: Preparer-Phase + ask_user_choice ergänzt
- Tool-System: 12 → 13 Tools
- System-Prompt: 12 → 14+ Blöcke
- Multi-Agent: Preparer + Tag-System

README.md:
- Features: Vorbereiter-Agent, Interaktive Rückfragen, Plan-Modus
- 12 → 13 Tools
2026-03-07 18:46:29 +01:00

159 lines
6.1 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 auf Basis der Anthropic Claude API. 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
- **13 Tools** – `read_file`, `write_file`, `edit_file`, `list_files`, `delete_file`, `execute`, `glob`, `grep`, `todo_write`, `memory_read`, `memory_write`, `memory_list`, `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** – Agents über Telegram ansprechen
- **Cronjobs** – Zeitgesteuerte Prompts mit Cron-Expressions
- **Bildgenerierung** – Krea AI Integration für Bildgenerierung
- **Nachrichten teilen** – Einzelne Nachrichten per öffentlichem Link teilen
- **Archivierung** – Chat-Verläufe archivieren und durchsuchen
- **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 (SSE Streaming) |
| **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/))
- 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 `publish/`-Verzeichnis anlegen (oder über die Admin-UI verwalten):
```json
{
"Port": 19000,
"AnthropicToken": "sk-ant-...",
"MaxIterations": 100,
"PayloadLogging": false,
"PayloadLoggingGzip": false,
"KreaToken": "",
"KreaApiKey": ""
}
```
| Setting | Beschreibung | Default |
|---------|-------------|---------|
| `Port` | Server-Port (erfordert Neustart) | `19000` |
| `AnthropicToken` | Anthropic API Key (**erforderlich**) | – |
| `MaxIterations` | Max Tool-Loop Iterationen pro Chat | `100` |
| `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) | – |
> **Hinweis:** Die `appsettings.Production.json` wird **nicht** beim `dotnet publish` mitkopiert. Sie lebt ausschließlich im `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/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-Helpers, Pages
│ └── css/ # Styles (theme.css = CSS Variables)
├── WindowsApp/ # WPF + WebView2 Desktop Client
└── publish/ # Build-Output + Laufzeit-Daten
└── 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.