docs: vollständige README mit Features, Installation, Konfiguration, Deployment + Screenshot
This commit is contained in:
1 parent
23c2bde8d4
commit
28fd685136
2 files changed
+160
-3
No files matched your search
@@ -1,6 +1,163 @@
|
|||||||
|

|
||||||
|
|
||||||
# // gott
|
# // gott
|
||||||
|
|
||||||
Self-hosted AI-Coding-Agent auf Basis der Anthropic 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) auf ein definiertes Workspace-Verzeichnis.
|
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.
|
||||||
|
|
||||||
- **Stack:** .NET 10, SQLite, Vanilla-Frontend
|
---
|
||||||
- **Port:** 19000 (konfigurierbar via `appsettings.json`)
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Multi-Agent-System** – Mehrere Agenten mit eigenen Identitäten, Persönlichkeiten und Tool-Konfigurationen
|
||||||
|
- **Multi-Agent Review** – Optionaler Review-Agent pro Session, der die Arbeit des Worker-Agents prüft und Feedback gibt
|
||||||
|
- **12 Tools** – `read_file`, `write_file`, `edit_file`, `list_files`, `delete_file`, `execute`, `glob`, `grep`, `todo_write`, `memory_read`, `memory_write`, `memory_list`
|
||||||
|
- **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)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repo-url> /app/gott
|
||||||
|
cd /app/gott
|
||||||
|
dotnet publish -c Release -o publish
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
|
cd publish
|
||||||
|
dotnet gott.dll
|
||||||
|
```
|
||||||
|
|
||||||
|
Die Web-UI ist dann unter `http://localhost:19000` erreichbar.
|
||||||
|
|
||||||
|
Beim ersten Start wird automatisch ein Admin-Account erstellt – die Zugangsdaten werden in der Konsole ausgegeben.
|
||||||
|
|
||||||
|
## 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 AI Agent
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
WorkingDirectory=/app/gott/publish
|
||||||
|
ExecStart=/usr/bin/dotnet /app/gott/publish/gott.dll
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
Environment=ASPNETCORE_ENVIRONMENT=Production
|
||||||
|
Environment=DOTNET_ENVIRONMENT=Production
|
||||||
|
|
||||||
|
[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
|
||||||
|
```
|
||||||
|
|
||||||
|
> ⚠️ Quelldateien in `wwwroot/` editieren – **niemals** in `publish/wwwroot/`!
|
||||||
|
|
||||||
|
Ausführliche Dokumentation: [ARCHITECTURE.md](ARCHITECTURE.md) · Kurzreferenz: [ARCHITECTURE_QUICK.md](ARCHITECTURE_QUICK.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
Proprietär – Alle Rechte vorbehalten.
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 458 KiB |
Reference in new issue
Block a user