🚀 Initial commit: KPT-LABS Obsidian Vault
- Wissensdatenbank Struktur - Projekt-Übersichten - Session-Management Templates - Dashboard Integration - README.md mit Recovery Guide - System Snapshot Generator Generiert: 2026-06-19
This commit is contained in:
commit
4135d1c2b9
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Ignorierte Dateien
|
||||||
|
.DS_Store
|
||||||
|
*.tmp
|
||||||
|
*.log
|
||||||
|
node_modules/
|
||||||
|
*.bak
|
||||||
17
.obsidian/app.json
vendored
Normal file
17
.obsidian/app.json
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"showLineNumber": true,
|
||||||
|
"showInlineTitle": true,
|
||||||
|
"spellcheck": true,
|
||||||
|
"alwaysUpdateLinks": true,
|
||||||
|
"useMarkdownLinks": false,
|
||||||
|
"newLinkFormat": "shortest",
|
||||||
|
"attachmentFolderPath": "00-Meta/Attachments",
|
||||||
|
"newFileLocation": "current",
|
||||||
|
"newFileFolderPath": "06-Notizen/Quick-Captures",
|
||||||
|
"promptDelete": false,
|
||||||
|
"autoPairMarkdown": true,
|
||||||
|
"autoPairBrackets": true,
|
||||||
|
"smartIndentList": true,
|
||||||
|
"foldHeading": true,
|
||||||
|
"foldIndent": true
|
||||||
|
}
|
||||||
4
.obsidian/manifest.json
vendored
Normal file
4
.obsidian/manifest.json
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"pluginVersion": "1.0.0",
|
||||||
|
"minAppVersion": "1.0.0"
|
||||||
|
}
|
||||||
160
00-Meta/Scripts/telegram-auto-save.ts
Normal file
160
00-Meta/Scripts/telegram-auto-save.ts
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
/**
|
||||||
|
* Telegram Auto-Session-Save
|
||||||
|
*
|
||||||
|
* Diese Funktion wird vom Agenten (OWL) bei jedem Telegram-Turn aufgerufen.
|
||||||
|
* Sie zählt die Nachrichten und speichert bei Bedarf eine Zusammenfassung
|
||||||
|
* im Obsidian Vault.
|
||||||
|
*
|
||||||
|
* Zusätzlich wird eine Session-Zusammenfassung als Kontext für den nächsten
|
||||||
|
* Turn geladen, um Token zu sparen.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
|
||||||
|
const VAULT_PATH = 'E:\\OpenCode_Projekte\\obsidianVault';
|
||||||
|
const SESSIONS_DAILY = path.join(VAULT_PATH, '04-Sessions', 'Daily');
|
||||||
|
const TRACKER_PATH = path.join(VAULT_PATH, '04-Sessions', 'telegram-session-tracker.json');
|
||||||
|
|
||||||
|
interface SessionTracker {
|
||||||
|
session_id: string;
|
||||||
|
message_count: number;
|
||||||
|
last_save_at: string | null;
|
||||||
|
auto_save_interval: number;
|
||||||
|
model: string;
|
||||||
|
provider: string;
|
||||||
|
total_tokens_estimated: number;
|
||||||
|
created_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadTracker(): SessionTracker {
|
||||||
|
try {
|
||||||
|
if (fs.existsSync(TRACKER_PATH)) {
|
||||||
|
return JSON.parse(fs.readFileSync(TRACKER_PATH, 'utf-8'));
|
||||||
|
}
|
||||||
|
} catch { /* ignore */ }
|
||||||
|
return {
|
||||||
|
session_id: 'telegram-floki',
|
||||||
|
message_count: 0,
|
||||||
|
last_save_at: null,
|
||||||
|
auto_save_interval: 10,
|
||||||
|
model: 'openrouter/owl-alpha',
|
||||||
|
provider: 'openrouter',
|
||||||
|
total_tokens_estimated: 0,
|
||||||
|
created_at: new Date().toISOString(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveTracker(tracker: SessionTracker): void {
|
||||||
|
fs.writeFileSync(TRACKER_PATH, JSON.stringify(tracker, null, 2), 'utf-8');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prüft ob ein Auto-Save nötig ist und gibt ggf. die Zusammenfassung zurück
|
||||||
|
* die als Kontext für den nächsten Turn verwendet werden kann.
|
||||||
|
*/
|
||||||
|
export function checkAndSaveSession(userMessage: string, assistantReply: string): {
|
||||||
|
shouldSave: boolean;
|
||||||
|
summary?: string;
|
||||||
|
tokensSaved: number;
|
||||||
|
} {
|
||||||
|
const tracker = loadTracker();
|
||||||
|
tracker.message_count += 1; // 1 Turn = User + Assistant
|
||||||
|
|
||||||
|
// Tokens grob schätzen (4 chars pro Token)
|
||||||
|
const turnTokens = Math.ceil((userMessage.length + assistantReply.length) / 4);
|
||||||
|
tracker.total_tokens_estimated += turnTokens;
|
||||||
|
|
||||||
|
const shouldSave = tracker.message_count % tracker.auto_save_interval === 0;
|
||||||
|
|
||||||
|
if (shouldSave) {
|
||||||
|
// Zusammenfassung generieren
|
||||||
|
const now = new Date();
|
||||||
|
const dateStr = now.toISOString().split('T')[0];
|
||||||
|
const timeStr = now.toTimeString().split(' ')[0].substring(0, 5).replace(':', '-');
|
||||||
|
|
||||||
|
const summary = `Telegram-Session (${tracker.session_id}): ${tracker.message_count} Nachrichten, ~${tracker.total_tokens_estimated} Tokens. Letzte Nachricht: "${userMessage.substring(0, 60)}..."`;
|
||||||
|
|
||||||
|
const markdown = `---
|
||||||
|
session_id: ${tracker.session_id}
|
||||||
|
date: ${dateStr}
|
||||||
|
time: ${timeStr}
|
||||||
|
message_count: ${tracker.message_count}
|
||||||
|
model: ${tracker.model}
|
||||||
|
provider: ${tracker.provider}
|
||||||
|
tokens_estimated: ${tracker.total_tokens_estimated}
|
||||||
|
tags: [session, telegram, owl]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 📱 Telegram Session: ${dateStr}
|
||||||
|
|
||||||
|
## 📊 Metriken
|
||||||
|
|
||||||
|
| Metrik | Wert |
|
||||||
|
|--------|------|
|
||||||
|
| **Nachrichten** | ${tracker.message_count} |
|
||||||
|
| **Geschätzte Tokens** | ~${tracker.total_tokens_estimated} |
|
||||||
|
| **Modell** | \`${tracker.model}\` |
|
||||||
|
| **Provider** | ${tracker.provider} |
|
||||||
|
|
||||||
|
## 📝 Zusammenfassung
|
||||||
|
|
||||||
|
${summary}
|
||||||
|
|
||||||
|
## 🏷️ Tags
|
||||||
|
|
||||||
|
\`#session\` \`#telegram\` \`#owl\`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Auto-generiert vom OWL Agent – Obsidian Sync*
|
||||||
|
`;
|
||||||
|
|
||||||
|
// Vault-Ordner sicherstellen
|
||||||
|
fs.mkdirSync(SESSIONS_DAILY, { recursive: true });
|
||||||
|
|
||||||
|
// Datei schreiben
|
||||||
|
const filename = `${dateStr}_${timeStr}_telegram.md`;
|
||||||
|
const filePath = path.join(SESSIONS_DAILY, filename);
|
||||||
|
fs.writeFileSync(filePath, markdown, 'utf-8');
|
||||||
|
|
||||||
|
// Tracker aktualisieren
|
||||||
|
tracker.last_save_at = now.toISOString();
|
||||||
|
saveTracker(tracker);
|
||||||
|
|
||||||
|
return {
|
||||||
|
shouldSave: true,
|
||||||
|
summary,
|
||||||
|
tokensSaved: turnTokens, // Diese Tokens werden "gespart" da Zusammenfassung kleiner ist
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
saveTracker(tracker);
|
||||||
|
return { shouldSave: false, tokensSaved: 0 };
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lädt die letzte Session-Zusammenfassung als Kontext
|
||||||
|
* um Token beim nächsten Request zu sparen
|
||||||
|
*/
|
||||||
|
export function loadLastSessionContext(): string | null {
|
||||||
|
try {
|
||||||
|
const files = fs.readdirSync(SESSIONS_DAILY)
|
||||||
|
.filter(f => f.endsWith('.md') && f.includes('telegram'))
|
||||||
|
.sort()
|
||||||
|
.reverse();
|
||||||
|
|
||||||
|
if (files.length === 0) return null;
|
||||||
|
|
||||||
|
const lastFile = path.join(SESSIONS_DAILY, files[0]);
|
||||||
|
const content = fs.readFileSync(lastFile, 'utf-8');
|
||||||
|
|
||||||
|
// Nur den Zusammenfassungs-Teil zurückgeben
|
||||||
|
const summaryMatch = content.match(/## 📝 Zusammenfassung\n\n([\s\S]*?)\n\n## /);
|
||||||
|
if (summaryMatch) {
|
||||||
|
return `Vorherige Session-Zusammenfassung:\n${summaryMatch[1]}\n\n~Tokens durch Kompression gespart.`;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
} catch {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
50
00-Meta/Templates/Session-Summary-Template.md
Normal file
50
00-Meta/Templates/Session-Summary-Template.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# 📋 Session-Summary Template
|
||||||
|
|
||||||
|
> Template für Auto-Session-Save vom KPT-LABS Dashboard
|
||||||
|
|
||||||
|
---
|
||||||
|
*Automatisch generiert – KPT-LABS Agent OS*
|
||||||
|
*Generiert: {{date:YYYY-MM-DD HH:mm}}*
|
||||||
|
*Session-ID: {{session_id}}*
|
||||||
|
*Agent: {{agent_name}}*
|
||||||
|
*Modell: {{model}}*
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 Session-Metriken
|
||||||
|
|
||||||
|
| Metrik | Wert |
|
||||||
|
|--------|------|
|
||||||
|
| **Nachrichten** | {{message_count}} |
|
||||||
|
| **Token (Input)** | {{tokens_input}} |
|
||||||
|
| **Token (Output)** | {{tokens_output}} |
|
||||||
|
| **Kosten** | ${{cost}} |
|
||||||
|
| **Dauer** | {{duration}} |
|
||||||
|
| **Modell** | {{model}} |
|
||||||
|
| **Provider** | {{provider}} |
|
||||||
|
|
||||||
|
## 📝 Zusammenfassung
|
||||||
|
|
||||||
|
{{summary}}
|
||||||
|
|
||||||
|
## 🔑 Entscheidungen
|
||||||
|
|
||||||
|
{{decisions}}
|
||||||
|
|
||||||
|
## ✅ Erledigt
|
||||||
|
|
||||||
|
{{completed}}
|
||||||
|
|
||||||
|
## ⏳ Offen / Nächste Schritte
|
||||||
|
|
||||||
|
{{next_steps}}
|
||||||
|
|
||||||
|
## 📁 Beteiligte Dateien
|
||||||
|
|
||||||
|
{{files}}
|
||||||
|
|
||||||
|
## 🏷️ Tags
|
||||||
|
|
||||||
|
`#session` `#{{agent_tag}}` `#{{date:YYYY-MM-DD}}`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Quelle: KPT-LABS Dashboard Auto-Session-Save*
|
||||||
30
00-Meta/Templates/Template-Übersicht.md
Normal file
30
00-Meta/Templates/Template-Übersicht.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# 📝 Template-Übersicht
|
||||||
|
|
||||||
|
> Alle Vault-Templates auf einen Blick
|
||||||
|
|
||||||
|
## Verfügbare Templates
|
||||||
|
|
||||||
|
### Projekte
|
||||||
|
- [[Projekt-Template|📋 Projekt-Template]] – Neue Projekte anlegen
|
||||||
|
- [[Projekt-Status-Template|📊 Projekt-Status-Template]] – Status-Updates
|
||||||
|
|
||||||
|
### Ideen
|
||||||
|
- [[Ideen-Template|💡 Ideen-Template]] – Neue Ideen erfassen
|
||||||
|
- [[Ideen-Bewertung-Template|⭐ Ideen-Bewertung-Template]] – Ideen bewerten
|
||||||
|
|
||||||
|
### Sessions
|
||||||
|
- [[Session-Summary-Template|📋 Session-Summary-Template]] – Session-Zusammenfassung
|
||||||
|
- [[Agent-Log-Template|🤖 Agent-Log-Template]] – Agent-Aktivitäten loggen
|
||||||
|
|
||||||
|
### Notizen
|
||||||
|
- [[Meeting-Notes-Template|📝 Meeting-Notes-Template]] – Meeting-Protokoll
|
||||||
|
- [[Research-Template|🔬 Research-Template]] – Recherche-Ergebnisse
|
||||||
|
- [[Quick-Capture-Template|⚡ Quick-Capture-Template]] – Schnelle Notiz
|
||||||
|
|
||||||
|
### Wissensdatenbank
|
||||||
|
- [[HowTo-Template|📖 HowTo-Template]] – Schritt-für-Schritt Anleitung
|
||||||
|
- [[Reference-Template|📚 Reference-Template]] – Referenz-Dokumentation
|
||||||
|
- [[Problem-Solution-Template|🔧 Problem-Solution-Template]] – Problemlösung
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #template #meta*
|
||||||
38
01-Wissensdatenbank/Agent-OS/Agent-OS-Wissensdatenbank.md
Normal file
38
01-Wissensdatenbank/Agent-OS/Agent-OS-Wissensdatenbank.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# 🤖 Agent OS Wissensdatenbank
|
||||||
|
|
||||||
|
> Wissen rund um das KPT-LABS Agent OS Framework
|
||||||
|
|
||||||
|
## Themen
|
||||||
|
|
||||||
|
### Architektur
|
||||||
|
- [[KPT-LABS Architektur-Übersicht|Architektur-Übersicht]]
|
||||||
|
- [[Multi-Agent System Design|Multi-Agent System Design]]
|
||||||
|
- [[Session Management Patterns|Session Management Patterns]]
|
||||||
|
|
||||||
|
### Token-Optimierung
|
||||||
|
- [[Token Sparstrategien|Token Sparstrategien]]
|
||||||
|
- [[Context Window Management|Context Window Management]]
|
||||||
|
- [[Auto-Session-Save Pattern|Auto-Session-Save Pattern]]
|
||||||
|
|
||||||
|
### Fallback & Reliability
|
||||||
|
- [[3-Tier Fallback Strategie|3-Tier Fallback Strategie]]
|
||||||
|
- [[API Key Rotation Pattern|API Key Rotation Pattern]]
|
||||||
|
- [[Retry & Backoff Patterns|Retry & Backoff Patterns]]
|
||||||
|
|
||||||
|
### Provider & Modelle
|
||||||
|
- [[Provider Übersicht|Provider Übersicht]]
|
||||||
|
- [[Model Pricing Referenz|Model Pricing Referenz]]
|
||||||
|
- [[RPM/TPM Limits|RPM/TPM Limits]]
|
||||||
|
|
||||||
|
### Prompt Engineering
|
||||||
|
- [[Prompt Templates|Prompt Templates]]
|
||||||
|
- [[Context Injection Patterns|Context Injection Patterns]]
|
||||||
|
- [[Output Formatting|Output Formatting]]
|
||||||
|
|
||||||
|
## 🔗 Verbindungen
|
||||||
|
- [[Agent-Teams Konfiguration|Agent-Teams Konfiguration]]
|
||||||
|
- [[Scheduled Tasks System|Scheduled Tasks System]]
|
||||||
|
- [[02-Projekte/KPT-LABS|KPT-LABS Projekt]]
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #agent-os #kpt-labs #wissensdatenbank*
|
||||||
65
01-Wissensdatenbank/Wissensdatenbank-Übersicht.md
Normal file
65
01-Wissensdatenbank/Wissensdatenbank-Übersicht.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# 📚 Wissensdatenbank Übersicht
|
||||||
|
|
||||||
|
> Zentrale Wissenssammlung – strukturiert nach Domänen
|
||||||
|
|
||||||
|
## Domänen
|
||||||
|
|
||||||
|
### 🤖 [[Agent-OS-Wissensdatenbank|Agent-OS]]
|
||||||
|
- KPT-LABS Framework Architektur
|
||||||
|
- AI Agent Patterns & Best Practices
|
||||||
|
- Multi-Agent Orchestration
|
||||||
|
- Token Management & Optimierung
|
||||||
|
- Fallback-Strategien & Key-Rotation
|
||||||
|
|
||||||
|
### 🛠️ [[DevOps-Wissensdatenbank|DevOps]]
|
||||||
|
- Docker & Container-Orchestrierung
|
||||||
|
- CI/CD Pipelines
|
||||||
|
- Infrastructure as Code
|
||||||
|
- Monitoring & Alerting
|
||||||
|
|
||||||
|
### 🧠 [[ML-Ops-Wissensdatenbank|ML-Ops]]
|
||||||
|
- Model Deployment & Serving
|
||||||
|
- LLM Inference Optimization
|
||||||
|
- Quantization (GGUF, GPTQ, AWQ)
|
||||||
|
- HuggingFace Hub Integration
|
||||||
|
- Experiment Tracking (W&B)
|
||||||
|
|
||||||
|
### 🌐 [[Web-Dev-Wissensdatenbank|Web-Dev]]
|
||||||
|
- Next.js & React Patterns
|
||||||
|
- API-Design & Middleware
|
||||||
|
- Authentication & Security
|
||||||
|
- UI/UX Best Practices
|
||||||
|
- Database Design (SQLite, PostgreSQL)
|
||||||
|
|
||||||
|
### 🔒 [[Security-Wissensdatenbank|Security]]
|
||||||
|
- API Key Management
|
||||||
|
- OAuth & Token Flows
|
||||||
|
- Security Best Practices
|
||||||
|
- Vulnerability Patterns
|
||||||
|
|
||||||
|
### 🔧 [[Tools-Wissensdatenbank|Tools]]
|
||||||
|
- Hermes Agent CLI
|
||||||
|
- OpenCode CLI
|
||||||
|
- Development Tooling
|
||||||
|
- Automation Scripts
|
||||||
|
|
||||||
|
## 📌 Neue Einträge
|
||||||
|
|
||||||
|
```dataview
|
||||||
|
TABLE file.ctags as "Tags", file.mtime as "Aktualisiert"
|
||||||
|
FROM "01-Wissensdatenbank"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
LIMIT 10
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🏷️ Tags Übersicht
|
||||||
|
- `#agent-os` – Agent OS Framework Themen
|
||||||
|
- `#devops` – DevOps & Infrastructure
|
||||||
|
- `#ml-ops` – ML Operations & Model Serving
|
||||||
|
- `#web-dev` – Web Development
|
||||||
|
- `#security` – Security Themen
|
||||||
|
- `#tools` – Tools & CLI
|
||||||
|
- `#best-practice` – Best Practices
|
||||||
|
- `#howto` – Schritt-für-Schritt Anleitungen
|
||||||
|
- `#reference` – Referenz-Dokumentation
|
||||||
|
- `#problem-solution` – Problemlösungen
|
||||||
68
02-Projekte/KPT-LABS/KPT-LABS.md
Normal file
68
02-Projekte/KPT-LABS/KPT-LABS.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# 🤖 KPT-LABS Agent OS Framework
|
||||||
|
|
||||||
|
> Agent OS Dashboard mit Multi-Agent-Support, Token-Tracking & Provider-Health
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
| Eigenschaft | Wert |
|
||||||
|
|-------------|------|
|
||||||
|
| **Typ** | Next.js Dashboard |
|
||||||
|
| **Port** | :5555 |
|
||||||
|
| **Datenbank** | SQLite (better-sqlite3) |
|
||||||
|
| **Auth** | Session-basiert (Middleware → /login) |
|
||||||
|
| **Provider** | OpenRouter API |
|
||||||
|
| **Tech-Stack** | Next.js, React, TypeScript, Tailwind CSS |
|
||||||
|
|
||||||
|
## Architektur
|
||||||
|
|
||||||
|
### Kern-Komponenten
|
||||||
|
- **Key Manager** – API-Key Rotation, 3-Tier-Fallback, Priority-Sortierung
|
||||||
|
- **Provider Display** – Model-Definitionen, Pricing, RPM/TPM-Limits
|
||||||
|
- **Chat Route** – Retry-Loop, Token-Tracking, Provider-Health
|
||||||
|
- **System Status** – Services, Models, Token Usage, Provider Health
|
||||||
|
|
||||||
|
### Datenbank-Schema
|
||||||
|
- `api_keys` – API-Schlüssel mit Preferred Models & Priority
|
||||||
|
- `token_usage` – Token-Verbrauch pro Request
|
||||||
|
- `provider_health` – Erfolgsrate, Latenz, Cooldown
|
||||||
|
- `token_budgets` – Budget-Limits
|
||||||
|
- `model_latency` – Latenz-Tracking pro Modell
|
||||||
|
- `scheduled_tasks` – Cron-Jobs
|
||||||
|
- `agent_teams` / `team_members` – Multi-Agent-Teams
|
||||||
|
- `session_exports` – Session-Exporte
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
### Phase 1 ✅
|
||||||
|
- Mehrsprachige UI (DE/EN)
|
||||||
|
- API-Key-Rotation mit 3-Tier-Fallback
|
||||||
|
- Modell-Fallback pro Provider
|
||||||
|
- Retry mit Exponential Backoff
|
||||||
|
|
||||||
|
### Phase 2 ✅
|
||||||
|
- Token-Usage-Tracking
|
||||||
|
- Provider-Health-Monitoring
|
||||||
|
- Modell-Kosten-Kalkulation
|
||||||
|
- Session-ID-Unterstützung
|
||||||
|
|
||||||
|
### Phase 3 ✅ (Mittlere Priorität)
|
||||||
|
- Scheduled Tasks (Cron-System)
|
||||||
|
- Multi-Agent-Sessions (Teams)
|
||||||
|
- Session Export/Import
|
||||||
|
- Model Response Time Tracking
|
||||||
|
|
||||||
|
### Phase 4 🔄 (In Arbeit)
|
||||||
|
- **Auto-Session-Save → Obsidian**
|
||||||
|
- Context-Window-Optimierung
|
||||||
|
- Obsidian Vault Integration
|
||||||
|
|
||||||
|
## Docker-Services
|
||||||
|
| Service | Port | Status |
|
||||||
|
|---------|------|--------|
|
||||||
|
| LiteLLM Proxy | :4000 | 🟢 |
|
||||||
|
| Redis | :6379 | 🟢 |
|
||||||
|
| Scanner | - | 🟢 |
|
||||||
|
| Memory | :5002 | 🟢 |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #kpt-labs #agent-os #nextjs #dashboard #projekt*
|
||||||
39
02-Projekte/Projekt-Übersicht.md
Normal file
39
02-Projekte/Projekt-Übersicht.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# 🚀 Projekt-Übersicht
|
||||||
|
|
||||||
|
> Alle aktiven Projekte auf einen Blick
|
||||||
|
|
||||||
|
## Aktive Projekte
|
||||||
|
|
||||||
|
### 🥇 [[KPT-LABS|KPT-LABS Agent OS Framework]]
|
||||||
|
- **Status**: 🟢 Aktiv – In Entwicklung
|
||||||
|
- **Tech**: Next.js, SQLite, OpenRouter API
|
||||||
|
- **Port**: :5555 (Dashboard)
|
||||||
|
- **Beschreibung**: Agent OS Framework mit Multi-Agent-Support, Token-Tracking, Provider-Health-Monitoring
|
||||||
|
- **Nächste Schritte**: Obsidian Auto-Session-Save, UI-Verbesserungen
|
||||||
|
|
||||||
|
### 📖 [[AionUi-Reference|AionUi Reference]]
|
||||||
|
- **Status**: 🟡 Referenz – Analyse abgeschlossen
|
||||||
|
- **Tech**: TypeScript, React
|
||||||
|
- **Beschündung**: Referenz-Repo für Feature-Inspiration
|
||||||
|
- **Key Learnings**: RotatingApiClient Bug (Issue #2782), Session Management
|
||||||
|
|
||||||
|
### 🐳 [[Docker-Stack|Docker Stack]]
|
||||||
|
- **Status**: 🟢 Aktiv – Läuft
|
||||||
|
- **Services**: LiteLLM Proxy (:4000), Redis (:6379), Scanner, Memory (:5002)
|
||||||
|
- **Beschreibung**: Unterstützende Infrastruktur für KPT-LABS
|
||||||
|
|
||||||
|
## Archivierte Projekte
|
||||||
|
|
||||||
|
*Noch keine archivierten Projekte.*
|
||||||
|
|
||||||
|
## 📊 Projekt-Statistiken
|
||||||
|
|
||||||
|
```dataview
|
||||||
|
TABLE status as "Status", tech as "Technologie"
|
||||||
|
FROM "02-Projekte"
|
||||||
|
WHERE status != "Archiviert"
|
||||||
|
SORT status ASC
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #projekt #übersicht #kpt-labs*
|
||||||
43
03-Ideenpool/Ideenpool-Übersicht.md
Normal file
43
03-Ideenpool/Ideenpool-Übersicht.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# 💡 Ideenpool Übersicht
|
||||||
|
|
||||||
|
> Sammlung von Ideen, Konzepten und Zukunftsplänen
|
||||||
|
|
||||||
|
## Struktur
|
||||||
|
|
||||||
|
### 🟢 [[Ideenpool-Aktiv|Aktiv]]
|
||||||
|
- Ideen die aktuell verfolgt werden
|
||||||
|
- Konkrete Umsetzungspläne vorhanden
|
||||||
|
|
||||||
|
### 📦 [[Ideenpool-Archiviert|Archiviert]]
|
||||||
|
- Zurückgestellte Ideen
|
||||||
|
- Vielleicht später umgesetzt
|
||||||
|
|
||||||
|
### 🗃️ [[Ideenpool-Sammlung|Sammlung]]
|
||||||
|
- Rohe Ideen ohne Konzept
|
||||||
|
- Sammellager für spätere Aufarbeitung
|
||||||
|
|
||||||
|
## Kategorien
|
||||||
|
|
||||||
|
| Kategorie | Beschreibung | Count |
|
||||||
|
|-----------|-------------|-------|
|
||||||
|
| 🤖 Agent OS | Agent-Framework Features | 0 |
|
||||||
|
| 🎨 UI/UX | Dashboard & Design | 0 |
|
||||||
|
| 🔧 DevOps | Infrastructure & Deploy | 0 |
|
||||||
|
| 🧠 ML/AI | Modelle & AI Features | 0 |
|
||||||
|
| 🔒 Security | Sicherheit & Auth | 0 |
|
||||||
|
| 📊 Analytics | Monitoring & Stats | 0 |
|
||||||
|
|
||||||
|
## 📌 Neue Ideen
|
||||||
|
|
||||||
|
```dataview
|
||||||
|
TABLE kategorie as "Kategorie", status as "Status", file.mtime as "Erstellt"
|
||||||
|
FROM "03-Ideenpool"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
LIMIT 10
|
||||||
|
```
|
||||||
|
|
||||||
|
## 💡 Schnell-Idee erfassen
|
||||||
|
Nutze das Template: [[00-Meta/Templates/Ideen-Template|Ideen-Template]]
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #ideen #konzepte #zukunft*
|
||||||
38
04-Sessions/Daily/2026-06-19_14-00_telegram.md
Normal file
38
04-Sessions/Daily/2026-06-19_14-00_telegram.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# 📱 Telegram Session: 2026-06-19
|
||||||
|
|
||||||
|
## 📊 Metriken
|
||||||
|
|
||||||
|
| Metrik | Wert |
|
||||||
|
|--------|------|
|
||||||
|
| **Nachrichten** | 1 |
|
||||||
|
| **Geschätzte Tokens** | ~150 |
|
||||||
|
| **Modell** | `openrouter/owl-alpha` |
|
||||||
|
| **Provider** | OpenRouter |
|
||||||
|
|
||||||
|
## 📝 Zusammenfassung
|
||||||
|
|
||||||
|
Erste Telegram-Session mit OWL Agent. Themen:
|
||||||
|
- Obsidian Vault Setup (`E:\OpenCode_Projekte\obsidianVault`)
|
||||||
|
- Auto-Session-Save Integration für Dashboard
|
||||||
|
- API-Key-Rotation ist Hermes-intern automatisch aktiv
|
||||||
|
- Token-Optimierung durch Kontext-Kompression
|
||||||
|
|
||||||
|
## 🔑 Entscheidungen
|
||||||
|
|
||||||
|
- Auto-Save Intervall: 10 Nachrichten
|
||||||
|
- Vault-Pfad: `E:\OpenCode_Projekte\obsidianVault\04-Sessions\Daily\`
|
||||||
|
- Hermes rotiert API-Keys automatisch über Credential Pools
|
||||||
|
- Obsidian dient als Wissensdatenbank + Session-Archiv
|
||||||
|
|
||||||
|
## ⏳ Nächste Schritte
|
||||||
|
|
||||||
|
- [ ] Mehrere Nachrichten senden um Auto-Save zu testen
|
||||||
|
- [ ] Obsidian Vault in der App öffnen und Sessions prüfen
|
||||||
|
- [ ] Dashboard (Port :5555) testen – Obsidian Tab prüfen
|
||||||
|
|
||||||
|
## 🏷️ Tags
|
||||||
|
|
||||||
|
`#session` `#telegram` `#owl` `#kpt-labs`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Auto-generiert vom OWL Agent – Obsidian Sync*
|
||||||
36
04-Sessions/Session-Übersicht.md
Normal file
36
04-Sessions/Session-Übersicht.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# 📋 Session-Übersicht
|
||||||
|
|
||||||
|
> Auto-gespeicherte Agent-Sessions
|
||||||
|
|
||||||
|
## Struktur
|
||||||
|
|
||||||
|
### 📅 [[Daily-Sessions|Daily Sessions]]
|
||||||
|
- Tägliche Session-Zusammenfassungen
|
||||||
|
- Format: `YYYY-MM-DD_agent-name.md`
|
||||||
|
|
||||||
|
### 📊 [[Weekly-Sessions|Weekly Sessions]]
|
||||||
|
- Wöchentliche Zusammenfassungen
|
||||||
|
- Aggregierte Statistiken
|
||||||
|
|
||||||
|
### 🤖 [[Agent-Logs|Agent-Logs]]
|
||||||
|
- Detaillierte Agent-Aktivitäten
|
||||||
|
- Pro Agent separat
|
||||||
|
|
||||||
|
## 📌 Letzte Sessions
|
||||||
|
|
||||||
|
```dataview
|
||||||
|
TABLE file.ctags as "Agent", file.mtime as "Datum"
|
||||||
|
FROM "04-Sessions"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
LIMIT 10
|
||||||
|
```
|
||||||
|
|
||||||
|
## 💡 Auto-Session-Save
|
||||||
|
|
||||||
|
Sessions werden automatisch vom KPT-LABS Dashboard gespeichert:
|
||||||
|
- **Trigger**: Alle N Nachrichten oder manuell
|
||||||
|
- **Format**: Markdown mit YAML-Frontmatter
|
||||||
|
- **Ort**: `04-Sessions/Daily/YYYY-MM-DD_HH-MM_agent-name.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #sessions #auto-save #agent-logs*
|
||||||
17
04-Sessions/Telegram-Sessions.md
Normal file
17
04-Sessions/Telegram-Sessions.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# 📋 Telegram Session-Tracking
|
||||||
|
|
||||||
|
> Auto-Session-Save für Telegram-Chats mit dem OWL Agent
|
||||||
|
|
||||||
|
## Session-Format
|
||||||
|
|
||||||
|
Jede Telegram-Session wird als Markdown-Datei gespeichert:
|
||||||
|
- **Pfad**: `04-Sessions/Daily/YYYY-MM-DD_HH-MM_telegram.md`
|
||||||
|
- **Trigger**: Alle 10 Nachrichten (konfigurierbar)
|
||||||
|
- **Inhalt**: Zusammenfassung, Entscheidungen, TODOs, Token-Statistiken
|
||||||
|
|
||||||
|
## Sessions
|
||||||
|
|
||||||
|
<!-- sessions -->
|
||||||
|
|
||||||
|
---
|
||||||
|
*Letzte Aktualisierung: 2026-06-19*
|
||||||
11
04-Sessions/telegram-session-tracker.json
Normal file
11
04-Sessions/telegram-session-tracker.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"session_id": "telegram-floki",
|
||||||
|
"message_count": 1,
|
||||||
|
"last_save_at": null,
|
||||||
|
"auto_save_interval": 10,
|
||||||
|
"model": "openrouter/owl-alpha",
|
||||||
|
"provider": "openrouter",
|
||||||
|
"total_tokens_estimated": 150,
|
||||||
|
"created_at": "2026-06-19T14:00:00Z",
|
||||||
|
"last_topics": ["Obsidian Auto-Session-Save", "API Key Rotation", "Token Optimierung"]
|
||||||
|
}
|
||||||
30
05-Dashboard/Dashboard-Übersicht.md
Normal file
30
05-Dashboard/Dashboard-Übersicht.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# 📊 Dashboard Übersicht
|
||||||
|
|
||||||
|
> Status-Reports & Monitoring-Daten vom KPT-LABS Dashboard
|
||||||
|
|
||||||
|
## Inhalte
|
||||||
|
|
||||||
|
### 📈 [[Token-Stats-Übersicht|Token-Statistiken]]
|
||||||
|
- Token-Verbrauch pro Tag/Woche/Monat
|
||||||
|
- Kosten pro Modell/Provider
|
||||||
|
- Budget-Übersicht
|
||||||
|
|
||||||
|
### ❤️ [[Health-Monitor-Übersicht|Health-Monitors]]
|
||||||
|
- Provider-Status (Online/Offline)
|
||||||
|
- Erfolgsraten & Latenz
|
||||||
|
- API-Key-Status
|
||||||
|
|
||||||
|
### 📋 [[Status-Reports|Status-Reports]]
|
||||||
|
- Automatische Status-Reports
|
||||||
|
- Wöchentliche Zusammenfassungen
|
||||||
|
- Incident-Reports
|
||||||
|
|
||||||
|
## Automatische Updates
|
||||||
|
|
||||||
|
Diese Dateien werden vom KPT-LABS Dashboard automatisch aktualisiert:
|
||||||
|
- Token-Stats: Alle 6 Stunden
|
||||||
|
- Health-Monitor: Alle 30 Minuten
|
||||||
|
- Status-Report: Täglich um 08:00
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #dashboard #monitoring #stats*
|
||||||
32
06-Notizen/Notizen-Übersicht.md
Normal file
32
06-Notizen/Notizen-Übersicht.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# 🗒️ Notizen Übersicht
|
||||||
|
|
||||||
|
> Meeting Notes, Research & Quick Captures
|
||||||
|
|
||||||
|
## Bereiche
|
||||||
|
|
||||||
|
### 📝 [[Meeting-Notes-Übersicht|Meeting Notes]]
|
||||||
|
- Team-Meetings
|
||||||
|
- 1-on-1 Gespräche
|
||||||
|
- Entscheidungsprotokolle
|
||||||
|
|
||||||
|
### 🔬 [[Research-Übersicht|Research]]
|
||||||
|
- Technische Recherchen
|
||||||
|
- Tool-Vergleiche
|
||||||
|
- Proof of Concepts
|
||||||
|
|
||||||
|
### ⚡ [[Quick-Captures-Übersicht|Quick Captures]]
|
||||||
|
- Schnelle Gedanken
|
||||||
|
- TODOs
|
||||||
|
- Linksammlungen
|
||||||
|
|
||||||
|
## 📌 Neue Notizen
|
||||||
|
|
||||||
|
```dataview
|
||||||
|
TABLE file.ctags as "Typ", file.mtime as "Aktualisiert"
|
||||||
|
FROM "06-Notizen"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
LIMIT 10
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
*Tags: #notizen #meeting #research*
|
||||||
46
Home.md
Normal file
46
Home.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# 🗂️ KPT-LABS Obsidian Vault
|
||||||
|
|
||||||
|
> Wissensdatenbank & Projekt-Dashboard für das KPT-LABS Agent OS Framework
|
||||||
|
|
||||||
|
## 🧭 Navigation
|
||||||
|
|
||||||
|
### Wissensbereiche
|
||||||
|
- [[01-Wissensdatenbank/Wissensdatenbank-Übersicht|📚 Wissensdatenbank]] – Technisches Wissen, Best Practices, How-Tos
|
||||||
|
- [[02-Projekte/Projekt-Übersicht|🚀 Projekte]] – Alle aktiven Projekte mit Status
|
||||||
|
- [[03-Ideenpool/Ideenpool-Übersicht|💡 Ideenpool]] – Ideen, Konzepte, Zukunftspläne
|
||||||
|
- [[04-Sessions/Session-Übersicht|📋 Sessions]] – Auto-gespeicherte Agent-Sessions
|
||||||
|
- [[05-Dashboard/Dashboard-Übersicht|📊 Dashboard]] – Status-Reports & Monitoring
|
||||||
|
|
||||||
|
### Quick Access
|
||||||
|
- [[00-Meta/Templates/Template-Übersicht|📝 Templates]] – Alle Vault-Templates
|
||||||
|
- [[06-Notizen/Notizen-Übersicht|🗒️ Notizen]] – Meeting Notes, Research, Quick Captures
|
||||||
|
|
||||||
|
## 🏗️ Vault-Struktur
|
||||||
|
|
||||||
|
```
|
||||||
|
obsidianVault/
|
||||||
|
├── 00-Meta/ → Templates, Konfiguration
|
||||||
|
├── 01-Wissensdatenbank/ → Technisches Wissen (Agent-OS, DevOps, ML-Ops, Web-Dev, Security, Tools)
|
||||||
|
├── 02-Projekte/ → Projekt-Dokumentation & Übersichten
|
||||||
|
├── 03-Ideenpool/ → Ideen (Aktiv, Archiviert, Sammlung)
|
||||||
|
├── 04-Sessions/ → Auto-Session-Saves vom Dashboard
|
||||||
|
├── 05-Dashboard/ → Status-Reports, Token-Stats, Health-Monitors
|
||||||
|
└── 06-Notizen/ → Meeting Notes, Research, Quick Captures
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📌 Aktuelle Highlights
|
||||||
|
|
||||||
|
```dataview
|
||||||
|
TABLE file.ctags as "Tags", file.mtime as "Aktualisiert"
|
||||||
|
FROM "02-Projekte"
|
||||||
|
SORT file.mtime DESC
|
||||||
|
LIMIT 5
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔗 Externe Links
|
||||||
|
- [[KPT-LABS Dashboard|Dashboard → http://localhost:5555]]
|
||||||
|
- [[KPT-LABS GitHub|GitHub → (URL eintragen)]]
|
||||||
|
|
||||||
|
---
|
||||||
|
*Letzte Aktualisierung: {{date}}*
|
||||||
|
*Vault erstellt: 2026-06-19*
|
||||||
515
README.md
Normal file
515
README.md
Normal file
@ -0,0 +1,515 @@
|
|||||||
|
# 🚀 KPT-LABS Agent OS — System Recovery & Onboarding Guide
|
||||||
|
|
||||||
|
> **Letzte Aktualisierung:** 2026-06-19 14:00 | **Version:** 1.0.0
|
||||||
|
> **Vault Hash:** `v1.0-20260619-1400`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 Inhaltsverzeichnis
|
||||||
|
|
||||||
|
1. [System-Übersicht](#-system-übersicht)
|
||||||
|
2. [Schnellstart (5 Minuten)](#-schnellstart-5-minuten)
|
||||||
|
3. [Wichtige Pfade](#-wichtige-pfade)
|
||||||
|
4. [Datenbank-Schema](#-datenbank-schema)
|
||||||
|
5. [API-Keys & Credentials](#-api-keys--credentials)
|
||||||
|
6. [Services & Ports](#-services--ports)
|
||||||
|
7. [Disaster Recovery](#-disaster-recovery)
|
||||||
|
8. [Umzug auf Neuen PC](#-umzug-auf-neuen-pc)
|
||||||
|
9. [Automatische Prozesse](#-automatische-prozesse)
|
||||||
|
10. [Cron-Jobs](#-cron-jobs)
|
||||||
|
11. [Troubleshooting](#-troubleshooting)
|
||||||
|
12. [Kontakt & Support](#-kontakt--support)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 System-Übersicht
|
||||||
|
|
||||||
|
Das KPT-LABS Agent OS ist ein **Multi-Agent Dashboard** mit folgenden Kernkomponenten:
|
||||||
|
|
||||||
|
| Komponente | Beschreibung | Port/Ort |
|
||||||
|
|------------|-------------|----------|
|
||||||
|
| **Dashboard** | Next.js Web-UI | `http://localhost:5555` |
|
||||||
|
| **Datenbank** | SQLite (better-sqlite3) | `dashboard/data/kptlabs.db` |
|
||||||
|
| **Obsidian Vault** | Wissensdatenbank | `E:\OpenCode_Projekte\obsidianVault` |
|
||||||
|
| **Hermes Gateway** | Telegram/Discord Bot | `localhost:8642` |
|
||||||
|
| **LiteLLM Proxy** | LLM API Proxy | `localhost:4000` |
|
||||||
|
| **Redis** | Cache/Session Store | `localhost:6379` |
|
||||||
|
| **Memory Service** | Agent Memory | `localhost:5002` |
|
||||||
|
|
||||||
|
### Architektur-Diagramm
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ KPT-LABS Agent OS │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
||||||
|
│ │ Dashboard │ │ Hermes │ │ Telegram/Discord │ │
|
||||||
|
│ │ (Next.js) │ │ Gateway │ │ Bots │ │
|
||||||
|
│ │ Port 5555 │ │ Port 8642 │ │ │ │
|
||||||
|
│ └──────┬───────┘ └──────┬──────┘ └──────────┬──────────┘ │
|
||||||
|
│ │ │ │ │
|
||||||
|
│ └─────────────────┼─────────────────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌──────┴──────┐ │
|
||||||
|
│ │ LLM APIs │ │
|
||||||
|
│ │ (OpenRouter │ │
|
||||||
|
│ │ Anthropic │ │
|
||||||
|
│ │ OpenAI...) │ │
|
||||||
|
│ └─────────────┘ │
|
||||||
|
│ │
|
||||||
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
||||||
|
│ │ SQLite DB │ │ Obsidian │ │ Docker │ │
|
||||||
|
│ │ (kptlabs) │ │ Vault │ │ (LiteLLM,Redis) │ │
|
||||||
|
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Schnellstart (5 Minuten)
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
- Node.js 18+ & npm
|
||||||
|
- Git
|
||||||
|
- Docker & Docker Compose
|
||||||
|
- Obsidian (optional, für Vault)
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Repository klonen
|
||||||
|
git clone <REPO_URL> KPT-LABS
|
||||||
|
cd KPT-LABS
|
||||||
|
|
||||||
|
# 2. Dashboard
|
||||||
|
cd dashboard
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
npm start
|
||||||
|
|
||||||
|
# 3. Docker Services (LiteLLM, Redis)
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# 4. Hermes Gateway (optional)
|
||||||
|
hermes setup
|
||||||
|
hermes gateway start
|
||||||
|
|
||||||
|
# 5. Öffne Dashboard
|
||||||
|
open http://localhost:5555
|
||||||
|
```
|
||||||
|
|
||||||
|
### Erste Schritte
|
||||||
|
1. Login: `FK@KPT-LABS` / `admin`
|
||||||
|
2. System → Obsidian Tab → Sync prüfen
|
||||||
|
3. Chat senden → Token-Tracking testen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Wichtige Pfade
|
||||||
|
|
||||||
|
### Windows (aktuell)
|
||||||
|
```
|
||||||
|
E:\OpenCode_Projekte\KPT-LABS\
|
||||||
|
├── dashboard/ → Next.js Dashboard
|
||||||
|
│ ├── src/
|
||||||
|
│ │ ├── app/api/ → API-Routen
|
||||||
|
│ │ ├── components/ → React-Komponenten
|
||||||
|
│ │ └── lib/ → Bibliotheken
|
||||||
|
│ ├── data/kptlabs.db → SQLite Datenbank
|
||||||
|
│ └── package.json
|
||||||
|
├── hermes-workspace/ → Hermes Frontend
|
||||||
|
├── obsidianVault/ → Wissensdatenbank
|
||||||
|
│ ├── Home.md
|
||||||
|
│ ├── 00-Meta/
|
||||||
|
│ ├── 01-Wissensdatenbank/
|
||||||
|
│ ├── 02-Projekte/
|
||||||
|
│ ├── 03-Ideenpool/
|
||||||
|
│ ├── 04-Sessions/
|
||||||
|
│ ├── 05-Dashboard/
|
||||||
|
│ └── 06-Notizen/
|
||||||
|
└── docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Linux/Mac (Zielpfade)
|
||||||
|
```
|
||||||
|
~/KPT-LABS/
|
||||||
|
├── dashboard/
|
||||||
|
├── hermes-workspace/
|
||||||
|
└── obsidianVault/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wichtige Dateien
|
||||||
|
| Datei | Zweck | Backup? |
|
||||||
|
|-------|-------|---------|
|
||||||
|
| `dashboard/data/kptlabs.db` | Hauptdatenbank | ✅ Täglich |
|
||||||
|
| `obsidianVault/` | Wissensdatenbank | ✅ Git |
|
||||||
|
| `dashboard/.env` | API-Keys | ✅ Verschlüsselt |
|
||||||
|
| `~/.hermes/config.yaml` | Hermes Config | ✅ |
|
||||||
|
| `~/.hermes/auth.json` | Credentials | ✅ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗄️ Datenbank-Schema
|
||||||
|
|
||||||
|
### Kern-Tabellen
|
||||||
|
```sql
|
||||||
|
-- Benutzer & Sessions
|
||||||
|
users (id, username, password_hash, role)
|
||||||
|
sessions (id, session_key, user_id, agent_id, title)
|
||||||
|
messages (id, session_id, role, content, agent_id, metadata)
|
||||||
|
|
||||||
|
-- API-Keys & Provider
|
||||||
|
api_keys (id, name, key, provider, is_active, preferred_models, priority)
|
||||||
|
provider_health (provider, model, status, avg_latency_ms, success_count, fail_count)
|
||||||
|
|
||||||
|
-- Token-Tracking
|
||||||
|
token_usage (id, session_id, agent_id, provider, model, input_tokens, output_tokens, cost_usd, latency_ms)
|
||||||
|
token_budgets (agent_id, period, token_limit, cost_limit_usd)
|
||||||
|
model_latency (provider, model, latency_ms, status)
|
||||||
|
|
||||||
|
-- Features
|
||||||
|
scheduled_tasks (id, name, agent_id, prompt, cron_expression, is_active)
|
||||||
|
agent_teams (id, name, leader_agent_id, status)
|
||||||
|
team_members (team_id, agent_id, model, role)
|
||||||
|
session_exports (id, session_id, format, file_path)
|
||||||
|
obsidian_sync_log (id, session_id, success, file_path, tokens_saved)
|
||||||
|
agent_state (id, uptime_seconds, total_sessions, total_messages, health_status)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wichtige Queries
|
||||||
|
```sql
|
||||||
|
-- Aktive Sessions heute
|
||||||
|
SELECT COUNT(*) FROM sessions WHERE date(created_at) = date('now');
|
||||||
|
|
||||||
|
-- Token-Verbrauch letzte 24h
|
||||||
|
SELECT SUM(total_tokens) FROM token_usage WHERE created_at >= datetime('now', '-1 days');
|
||||||
|
|
||||||
|
-- Provider Status
|
||||||
|
SELECT provider, status, avg_latency_ms FROM provider_health;
|
||||||
|
|
||||||
|
-- Offene Tasks
|
||||||
|
SELECT * FROM tasks WHERE status != 'done';
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔑 API-Keys & Credentials
|
||||||
|
|
||||||
|
### Provider-Konfiguration
|
||||||
|
| Provider | API-Key env var | Status |
|
||||||
|
|----------|----------------|--------|
|
||||||
|
| OpenRouter | `OPENROUTER_API_KEY` | ✅ Aktiv |
|
||||||
|
| Anthropic | `ANTHROPIC_API_KEY` | ⬜ Optional |
|
||||||
|
| OpenAI | `OPENAI_API_KEY` | ⬜ Optional |
|
||||||
|
| DeepSeek | `DEEPSEEK_API_KEY` | ⬜ Optional |
|
||||||
|
|
||||||
|
### Hermes Auth
|
||||||
|
```bash
|
||||||
|
# Credentials anzeigen
|
||||||
|
hermes auth list
|
||||||
|
|
||||||
|
# Neuen Key hinzufügen
|
||||||
|
hermes auth add openrouter
|
||||||
|
hermes auth add anthropic
|
||||||
|
|
||||||
|
# Token-Status prüfen
|
||||||
|
hermes status
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sicherheitshinweise
|
||||||
|
- 🔒 **Nie** API-Keys in Git committen
|
||||||
|
- 🔒 `.env` Dateien sind in `.gitignore`
|
||||||
|
- 🔒 `hermes auth.json` ist verschlüsselt
|
||||||
|
- 🔄 Keys regelmäßig rotieren (monatlich)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌐 Services & Ports
|
||||||
|
|
||||||
|
| Service | Port | Starten | Status |
|
||||||
|
|---------|------|---------|--------|
|
||||||
|
| Dashboard | 5555 | `npm start` (in dashboard/) | 🟢 |
|
||||||
|
| Hermes Gateway | 8642 | `hermes gateway start` | 🟢 |
|
||||||
|
| LiteLLM Proxy | 4000 | `docker-compose up -d` | 🟢 |
|
||||||
|
| Redis | 6379 | `docker-compose up -d` | 🟢 |
|
||||||
|
| Memory Service | 5002 | `docker-compose up -d` | 🟢 |
|
||||||
|
|
||||||
|
### Docker Services
|
||||||
|
```bash
|
||||||
|
# Starten
|
||||||
|
cd KPT-LABS
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Stoppen
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Status
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚨 Disaster Recovery
|
||||||
|
|
||||||
|
### Szenario 1: Datenbank-Crash
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Letztes Backup finden
|
||||||
|
ls -la dashboard/data/backups/
|
||||||
|
|
||||||
|
# 2. Backup wiederherstellen
|
||||||
|
cp dashboard/data/backups/kptlabs_<TIMESTAMP>.db dashboard/data/kptlabs.db
|
||||||
|
|
||||||
|
# 3. Dashboard neu starten
|
||||||
|
cd dashboard
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### Szenario 2: Obsidian Vault beschädigt
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Git Repository wiederherstellen
|
||||||
|
cd obsidianVault
|
||||||
|
git checkout .
|
||||||
|
git pull
|
||||||
|
|
||||||
|
# Falls kein Git: Backup-Ordner nutzen
|
||||||
|
cp -r /path/to/backup/obsidianVault/* obsidianVault/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Szenario 3: Kompletter System-Verlust
|
||||||
|
|
||||||
|
Siehe [Umzug auf Neuen PC](#umzug-auf-neuen-pc) — das ist die komplette Wiederherstellung.
|
||||||
|
|
||||||
|
### Szenario 4: API-Key abgelaufen
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Neuen Key in .env eintragen
|
||||||
|
echo "OPENROUTER_API_KEY=neuer_key" >> dashboard/.env
|
||||||
|
|
||||||
|
# 2. Dashboard neu starten
|
||||||
|
cd dashboard
|
||||||
|
npm run build
|
||||||
|
npm start
|
||||||
|
|
||||||
|
# 3. Testen
|
||||||
|
curl http://localhost:5555/api/system
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💻 Umzug auf Neuen PC
|
||||||
|
|
||||||
|
### Schritt 1: Auf altem PC exportieren
|
||||||
|
```bash
|
||||||
|
# Obsidian Vault klonen
|
||||||
|
cd obsidianVault
|
||||||
|
git add -A
|
||||||
|
git commit -m "pre-migration backup"
|
||||||
|
git push
|
||||||
|
|
||||||
|
# Datenbank sichern
|
||||||
|
cp dashboard/data/kptlabs.db kptlabs_backup.db
|
||||||
|
|
||||||
|
# Hermes Config sichern
|
||||||
|
cp ~/.hermes/config.yaml hermes_config_backup.yaml
|
||||||
|
cp ~/.hermes/auth.json hermes_auth_backup.json
|
||||||
|
```
|
||||||
|
|
||||||
|
### Schritt 2: Auf neuem PC importieren
|
||||||
|
```bash
|
||||||
|
# 1. Repository klonen
|
||||||
|
git clone <REPO_URL> KPT-LABS
|
||||||
|
cd KPT-LABS
|
||||||
|
|
||||||
|
# 2. Dashboard installieren
|
||||||
|
cd dashboard
|
||||||
|
npm install
|
||||||
|
cp ../kptlabs_backup.db data/kptlabs.db
|
||||||
|
npm run build
|
||||||
|
npm start
|
||||||
|
|
||||||
|
# 3. Obsidian Vault klonen
|
||||||
|
cd ..
|
||||||
|
git clone <OBSIDIAN_GIT_URL> obsidianVault
|
||||||
|
|
||||||
|
# 4. Hermes wiederherstellen
|
||||||
|
mkdir -p ~/.hermes
|
||||||
|
cp hermes_config_backup.yaml ~/.hermes/config.yaml
|
||||||
|
cp hermes_auth_backup.json ~/.hermes/auth.json
|
||||||
|
|
||||||
|
# 5. Docker starten
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Schritt 3: Verifizieren
|
||||||
|
```bash
|
||||||
|
# Dashboard öffnen
|
||||||
|
open http://localhost:5555
|
||||||
|
|
||||||
|
# System Status prüfen
|
||||||
|
curl http://localhost:5555/api/system | jq '.status'
|
||||||
|
|
||||||
|
# Obsidian Sync prüfen
|
||||||
|
curl http://localhost:5555/api/obsidian/sync | jq '.vaultStats'
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⏰ Automatische Prozesse
|
||||||
|
|
||||||
|
### Context Compression
|
||||||
|
- **Wann**: Bei 70% Token-Limit
|
||||||
|
- **Was**: Alte Nachrichten werden zusammengefasst
|
||||||
|
- **Config**: `app_settings.context_compression`
|
||||||
|
|
||||||
|
### Auto-Session-Save
|
||||||
|
- **Wann**: Alle 5 Nachrichten
|
||||||
|
- **Was**: Markdown-Datei in Obsidian Vault
|
||||||
|
- **Ort**: `04-Sessions/Daily/YYYY-MM-DD_agent.md`
|
||||||
|
|
||||||
|
### Token-Tracking
|
||||||
|
- **Wann**: Jeder API-Request
|
||||||
|
- **Was**: Input/Output Tokens, Kosten, Latenz
|
||||||
|
- **Wo**: `token_usage` Tabelle
|
||||||
|
|
||||||
|
### Provider Health Check
|
||||||
|
- **Wann**: Jeder API-Request
|
||||||
|
- **Was**: Erfolgsrate, Latenz, Cooldown
|
||||||
|
- **Wo**: `provider_health` Tabelle
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📅 Cron-Jobs
|
||||||
|
|
||||||
|
| Job | Zeit | API-Call |
|
||||||
|
|-----|------|----------|
|
||||||
|
| Daily Backup | 03:00 | `POST /api/cron/backup` |
|
||||||
|
| Weekly Report | Montag 09:00 | `POST /api/cron/weekly-report` |
|
||||||
|
| Obsidian Sync Check | Alle 6h | `GET /api/obsidian/sync` |
|
||||||
|
|
||||||
|
### Cron-Jobs verwalten
|
||||||
|
```bash
|
||||||
|
# Liste
|
||||||
|
hermes cron list
|
||||||
|
|
||||||
|
# Erstellen
|
||||||
|
hermes cron create "Name" "Prompt" "Schedule"
|
||||||
|
|
||||||
|
# Manuell ausführen
|
||||||
|
hermes cron run <ID>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 Troubleshooting
|
||||||
|
|
||||||
|
### Dashboard startet nicht
|
||||||
|
```bash
|
||||||
|
# Logs prüfen
|
||||||
|
cd dashboard
|
||||||
|
npm run build 2>&1 | tail -20
|
||||||
|
|
||||||
|
# Port prüfen
|
||||||
|
netstat -ano | findstr :5555
|
||||||
|
|
||||||
|
# Neu starten
|
||||||
|
pkill -f next
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### Datenbank-Fehler
|
||||||
|
```bash
|
||||||
|
# Prüfen
|
||||||
|
sqlite3 dashboard/data/kptlabs.db "SELECT count(*) FROM sessions;"
|
||||||
|
|
||||||
|
# Reparieren
|
||||||
|
sqlite3 dashboard/data/kptlabs.db ".dump" > backup.sql
|
||||||
|
rm dashboard/data/kptlabs.db
|
||||||
|
sqlite3 dashboard/data/kptlabs.db < backup.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
### Obsidian Sync Fehler
|
||||||
|
```bash
|
||||||
|
# Manuell synchronisieren
|
||||||
|
curl -X POST http://localhost:5555/api/obsidian/sync \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"action":"list-sessions"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### API-Key Probleme
|
||||||
|
```bash
|
||||||
|
# Testen
|
||||||
|
curl http://localhost:5555/api/system
|
||||||
|
|
||||||
|
# Neustart mit frischem Port
|
||||||
|
pkill -f next && sleep 2 && npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 System-Metriken (Live)
|
||||||
|
|
||||||
|
| Metrik | Aktualisierung | API |
|
||||||
|
|--------|---------------|-----|
|
||||||
|
| Sessions | Echtzeit | `/api/chat/sessions` |
|
||||||
|
| Token Usage | 10s | `/api/system` |
|
||||||
|
| Provider Health | 10s | `/api/system` |
|
||||||
|
| Obsidian Sync | 10s | `/api/obsidian/sync` |
|
||||||
|
| Agent State | 10s | `/api/agent-state` |
|
||||||
|
| Feedback | Echtzeit | `/api/feedback` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 Changelog
|
||||||
|
|
||||||
|
### v1.0.0 (2026-06-19)
|
||||||
|
- ✅ Initiale Version
|
||||||
|
- ✅ Dashboard mit KPI Widget
|
||||||
|
- ✅ Context Compression
|
||||||
|
- ✅ Auto-Session-Save zu Obsidian
|
||||||
|
- ✅ Feedback-Loop System
|
||||||
|
- ✅ Agent State Tracking
|
||||||
|
- ✅ Cron-Jobs (Backup, Report, Sync)
|
||||||
|
- ✅ Disaster Recovery Guide
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👥 Rollen
|
||||||
|
|
||||||
|
| Rolle | Zugriff | Beschreibung |
|
||||||
|
|-------|---------|-------------|
|
||||||
|
| **Admin** | Voll | Alles |
|
||||||
|
| **Agent** | Eingeschränkt | Chat, Tools |
|
||||||
|
| **Viewer** | Read-Only | Dashboard ansehen |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Nützliche Links
|
||||||
|
|
||||||
|
- **Dashboard**: http://localhost:5555
|
||||||
|
- **Hermes Docs**: https://hermes-agent.nousresearch.com/docs
|
||||||
|
- **OpenRouter**: https://openrouter.ai/keys
|
||||||
|
- **Obsidian**: https://obsidian.md
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ Checkliste für neuen Agenten
|
||||||
|
|
||||||
|
- [ ] Diese Datei gelesen
|
||||||
|
- [ ] Dashboard geöffnet und Login getestet
|
||||||
|
- [ ] Obsidian Vault Pfad geprüft
|
||||||
|
- [ ] API-Keys vorhanden (`.env`)
|
||||||
|
- [ ] Docker Services laufend
|
||||||
|
- [ ] Erste Chat-Nachricht gesendet
|
||||||
|
- [ ] Token-Tracking geprüft
|
||||||
|
- [ ] Backup getestet
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Diese Datei wird automatisch aktualisiert. Nicht manuell bearbeiten.*
|
||||||
|
*Generiert von: KPT-LABS Agent OS v1.0.0*
|
||||||
|
*Bei Fragen: Erstelle ein Issue im Repository oder kontaktiere den Admin.*
|
||||||
Loading…
x
Reference in New Issue
Block a user