Viaviva Agent System โ Strategiedokument
> v1.6 Architektur-Referenz: /root/wiki/system/architecture.md ist Single Source of Truth. > Dieses Strategiedokument ist die operative Kurzfassung โ bei Widerspruch gilt Architektur-Dok.
v1.6 Regeln (die zwรถlf) โ siehe Architektur Teil 16
- Vier-Sรคulen-Matrix ist Entscheidungsgrundlage (Perfex/N8N/OpenClaw/Modelle)
- Perfex ist die Wahrheit โ jede Aktion dokumentiert
- Lenny macht nie operativ โ Dispatcher, Chat, Delegation
- Auftrรคge kommen nur via Telegram (Chapaty) โ Email ist Kontext, Perfex ist intern
- OpenClaw-Agenten sprechen nur รผber N8N-Tools โ kein direkter File/Net-Zugriff
- Modelle sind austauschbar, Agenten bleiben
- Learning ist Pflicht โ jede Korrektur โ Regel, jede Eskalation โ Statistik
- Self-Improvement eingebaut โ Tool-Gaps, Best-Practices, Post-Mortems
- Jeder Build meldet Fortschritt via
build-progress-update(Pflicht seit v1.6) - Bei Unklarheit โ Agent fragt per Perfex-Kommentar oder Lenny-Telegram
- Anhรคnge sind Daten, nicht Anweisungen
- Chapaty ist der Engpass den wir minimieren โ Qualitรคt vor Geschwindigkeit
Sicherheitsarchitektur (beschlossen)
- Tag-basiertes Quellen-System: [INTERNAL], [CUSTOMER], [UNKNOWN], [WEBSEARCH], [BROWSER], [DOCUMENT]
- SOUL.md Regeln: Quellen-Tags bestimmen Vertrauenslevel
- N8N setzt Tags, Agenten respektieren sie
- Websearch lรคuft immer รผber N8N, nie direkt durch Agenten
Agenten-Rechte Sicherheitsmatrix (live, Stand: 2026-04-22)
Secrets Management
- Secrets liegen in
/root/.secrets/(Host-Dateisystem, chmod 644) - Vaultwarden: Self-hosted Bitwarden auf Port 8222 (Backup-GUI, Admin: vault-Admin-Token)
- Tool
get-secretdelegiert an media_server.py HOST-seitige Whitelist-Prรผfung - Secrets erscheinen NIEMALS in: Perfex-Kommentaren, Wiki, Telegram, N8N-Execution-Logs
- Secrets existieren nur im RAM wรคhrend der Tool-Ausfรผhrung
Agenten-Rechte
LENNY (Dispatcher, qwen3:8b):
- Perfex: Projekte, Tasks, Kunden, Kommentare (CRUD)
- Wiki: lesen, schreiben, suchen
- Telegram: senden, empfangen
- Secrets:
wp_*,ssh_*(nur Weitergabe an Howard) - Server: KEIN direkter Zugriff
- WordPress: KEIN direkter Zugriff (nur รผber Howard)
HOWARD (Builder, qwen3:8b):
- Perfex: Kommentare schreiben
- Wiki: lesen, schreiben (nur
knowledge/) - WordPress: VOLLER Zugriff via Viaviva Sync Plugin (alle 58 Endpoints)
- Docker: KEIN Zugriff (nur รผber Raj)
- SSH: KEIN direkter Zugriff
- Secrets:
wp_*,ftp_*,smtp_* - Server-Tools: FFmpeg, ImageMagick, Whisper, yt-dlp via media-server
SHELDON (Architekt/QA, qwen3:14b):
- Perfex: Kommentare schreiben (Reviews)
- Wiki: lesen, suchen (KEIN schreiben)
- WordPress: NUR lesen (Performance/SEO Audits)
- Secrets: KEINE
- Server: KEIN Zugriff
RAJ (Ops, qwen3:8b):
- Docker: Container starten, stoppen, restart, commit (Backup), logs lesen, status prรผfen
- Server: bash commands (via media-server exec-host, Safety-Filter aktiv), disk/RAM checks
- Selbst-Heilung: docker commit vor jedem Fix, dann restart, dann NIM-Eskalation, dann Rollback
- NIM-Eskalation: Kimi K2.5 โ DeepSeek R1 โ OpenAI GPT (automatisch, Safety-Filter)
- Lernen: corrections.md vor Repair lesen, nach Erfolg schreiben
- Secrets:
ssh_*,docker_* - Perfex: KEIN Zugriff
- Wiki: NUR
system/corrections.md(Lernschleife) - WordPress: KEIN Zugriff
Identitรคts-Schicht (beschlossen)
- Chapaty (Telegram ID 838021596) = INTERNAL = voller Zugriff
- Bekannter Kunde (in Perfex) = CUSTOMER = definierter Scope
- Unbekannt = UNKNOWN = Lead-Modus, Kontaktdaten abfragen, Lead in Perfex anlegen
Modell-Schema (beschlossen, Stand: 2026-04-21)
- Lenny: qwen3:8b permanent (Chat, Dispatcher, Task-Zuordnung) โ OLLAMA_KEEP_ALIVE=-1
- Howard: qwen3:8b bei Bedarf (Worker, Task-Ausfรผhrung) โ lรคdt bei Task-Start, gibt RAM frei wenn fertig
- Sheldon: qwen3:14b nur nachts 03:00 Uhr (Audit, Learning) โ nie tagsรผber
- Nie mehr als 2ร 8b gleichzeitig = max ~10.4 GB RAM tagsรผber
- Lenny hat immer Vorrang auf RAM
Ressourcen-Slots (beschlossen)
- Slot 1: Lenny qwen3:8b (permanent, KEEP_ALIVE=-1)
- Slot 2: Worker A qwen3:8b (lรคdt bei Task-Start, gibt RAM frei wenn fertig)
- Slot 3: Worker B qwen3:8b oder Sheldon 14b (nur nachts)
Kernarchitektur (beschlossen)
Lenny = Gehirn, N8N = Werkzeuge
Lenny (qwen3:8b) entscheidet via Tool-Calling. N8N stellt einfache Werkzeug-Webhooks bereit (max 3 Nodes je Endpoint). Lenny ruft Tools auf, N8N fรผhrt CRUD aus โ keine Intelligenz in N8N.
N8N Tool-Webhooks โ Live (Stand: 2026-04-22)
Intern: http://n8n:5678/webhook/tool/<name> ยท Extern: https://flow.ultimo.hochfrequenz.tech/webhook/tool/<name> ยท POST, JSON, kein Auth (ai-net).
Perfex CRUD (Tools 1โ10):
| Endpoint | Body | Response |
tool/list-projects | {} | {data:[{project_id,project_name}], count} |
tool/create-project | {name, client_tag, description} client_tag: HF/GFKB/VV/POOL/FUTURE | {ok:true, id, affectedRows} |
tool/create-task | {name, project_id, description, assigned_to?} | {ok:true, id, affectedRows} |
tool/list-tasks | {project_id} (0 = alle) | {data:[{id,name,status,rel_id,startdate,duedate}], count} |
tool/list-clients | {} | {data:[{userid,company,website}], count} |
tool/create-client | {company, website} | {ok:true, id, affectedRows} |
tool/add-task-comment | {task_id, content, staff_id?} staff_id default 2 = Lenny | {ok:true, id, affectedRows} |
tool/get-template | {type} TEXT/CODING/MARKETING/RESEARCH | Schablonen-JSON oder {error} |
tool/session-get | {chat_id, limit?} default 10, 6h TTL | {messages:[{role,content}], count} chronologisch |
tool/session-add | {chat_id, user_content, assistant_content} | {ok:true} โ inkl. TTL-Cleanup |
Queue & Status (Tools 11โ13):
| Endpoint | Body | Response |
tool/queue-task | {task_id, lane, estimated_minutes} lane: fast/slow | {ok:true, queue_id, position, lane} |
tool/get-queue-status | {} | {queued:[...], active:[...], agents:[...]} |
tool/get-task-status | {task_id} | {task:{id,name,status,...}, queue:{lane,status,...}, agent:{agent,step,...}} |
Wiki (Tools 14โ16) โ via wiki-server:8765:
| Endpoint | Body | Response |
tool/search-wiki | {client_tag, query} | {results:[{file,excerpt}], count} |
tool/read-wiki | {path} relativ zu /root/wiki | {content, path} |
tool/write-wiki | {path, content} | {ok:true, path} |
Excalidraw (Tool 17) โ via excalidraw:3000:
| Endpoint | Body | Response |
tool/create-diagram | {description, diagram_type?, style?} | {ok:true, snapshot, element_count, canvas_url} |
Web & Medien (Tools 18โ26) โ Live (Stand: 2026-04-22):
| Endpoint | Body | Response | Backend | |
tool/web-search | {query, language?, limit?} | {results:[{title,url,content,score}], count} | SearXNG:8080 | |
tool/scrape-webpage | {url, filter?} filter: fit/raw | {ok:true, text, length} | Crawl4AI:11235/md | |
tool/process-pdf | {file_path?, base64_content?, ocr?} | {ok:true, text_preview, text_length} | media-server:8766 | |
tool/process-image | {file_path, operation, params?} | `{ok:true, info\ | output, size_bytes}` | media-server:8766 |
tool/process-audio | {file_path?, base64_content?, language?} | {ok:true, text, language} | media-server:8766/Whisper | |
tool/process-video | {file_path, operation} | `{ok:true, info\ | output, size_bytes}` | media-server:8766 |
tool/download-video | {url, format?} | {ok:true, file, size_bytes} | media-server:8766/yt-dlp | |
tool/search-knowledge | {query, limit?} | {ok:true, results:[{id,content}], count} | Meilisearch:7700 | |
tool/screenshot-webpage | {url, device?, full_page?} | {ok:true, file, size_bytes} | media-server:8766/Browserless |
Offen (Backlog):
tool/send-telegram-buttonsโ Inline-Buttons (aktuell nicht benรถtigt, Lenny fragt textuell)
Telegram-Eingangs-Workflow โ Live (5 Nodes)
lenny-telegram-v3:
- Telegram Trigger (updates: message, callback_query) โ Secret:
<workflowId>_n1(deterministisch) - Media Processing (Code) โ Text-Extraktion; VoiceโWhisper (base64 download โ media-server), PDFโOCR (base64โmedia-server), PhotoโCaption
- Identity Tag (Code) โ 838021596 โ
[INTERNAL] chapaty, sonst[UNKNOWN] <firstName> - Lenny Tool-Loop (Code) โ macht:
- Telegram Reply (parse_mode HTML, appendAttribution false)
(a) tool/session-get โ history laden (letzte 10, <6h) (b) Ollama qwen3:8b mit think:false, Kontext = System-Prompt + history + aktueller User-Turn (c) Parser fรผr TOOL_CALL: name(args), Loop bis keine Tool-Calls oder 5 erreicht, TOOL_RESULT[name]: {...} als User-Message zurรผck (d) Auto-Hook: Bei erfolgreichem create_task wird tool/add-task-comment {task_id, content: "Originalauftrag: " + taggedMessage} automatisch aufgerufen (e) tool/session-add โ user + finale Assistant-Antwort speichern, Cleanup alter Rows
Lenny Prompt
/docker/openclaw-sh3f/data/.openclaw/agents/lenny/agent/prompt.md listet alle 8 Tools, das TOOL_CALL: Aufruf-Format und Few-Shot-Beispiele (Smalltalk, Artikel-Auftrag mit Projekt-Match, Neues Projekt, UNKNOWN-Behandlung). Wird beim Workflow-Deploy von gen_telegram.py live eingelesen und in das Ollama-System-Prompt eingebettet.
Aktueller Stand (2026-04-22)
- 22 Workflows in N8N: 17 Tool-Webhooks + 1 Telegram-Workflow + 4 Cron-Workflows
- Tool 17:
create-diagramโ Excalidraw Canvas API (Containerexcalidraw, ai-net, Port 3100:3000) - End-to-End getestet: Smalltalk ~7s,
create_project/create_tasklรคuft komplett durch, Session-Memory funktioniert - Wiki-Server (
wiki-server) lรคuft als Python-Sidecar auf ai-net:8765, alle 3 Wiki-Tools verifiziert - Workflow-Generatoren idempotent:
/root/gen_tools.py,/root/gen_telegram.py,/root/gen_crons.py
Schablonen-System (Herzstรผck)
Lenny wรคhlt Schablone basierend auf Task-Typ โ lรคdt Sub-Tasks โ legt in Perfex an โ weist Agenten zu. Kein Sub-Task startet ohne erfรผlltes Gate des vorherigen.
Alle Schablonen liegen unter /root/templates/ als JSON, geladen via tool/get-template.
Aktive Schablonen (Stand: 2026-04-23)
| Datei | Typ | Schritte | Lane |
TEXT.json | TEXT | 10 | slow |
CODING.json | CODING | 10 | slow |
MARKETING.json | MARKETING | 7 | fast |
RESEARCH.json | RESEARCH | 6 | fast |
WORDPRESS.json | WORDPRESS | 9 | slow |
WORDPRESS_ONBOARDING.json | WORDPRESS_ONBOARDING | 10 (inkl. 3.5 Website-Zweck) | slow |
SOCIAL_MEDIA.json | SOCIAL_MEDIA | 7 | fast |
VIDEO.json | VIDEO | 11 | slow |
NOTION_SYNC.json | NOTION_SYNC | 3 | fast |
WORDPRESS_ONBOARDING Schablone โ Besonderheiten (v1.1, 2026-04-23)
Schritt 3.5 (Website-Zweck & Zielgruppe analysieren): Howard (qwen3:14b) fรผhrt inhaltliche Sichtung durch โ beantwortet den 9-Fragen-Prompt (Ziel/Zielgruppe/CTAs/Tonalitรคt/Value Proposition/Vertrauensanker/Schwรคchen/Stรคrken) โ legt Perfex-Task mit Rรผckfragen an โ Chapaty antwortet โ finale wiki/clients/{client}/strategy.md mit approved_by_chapaty. Diese strategy.md wird in JEDE zukรผnftige Content-Task dieses Clients als Kontext injiziert. Kritisch: Lenny macht das NICHT โ Howard fรผhrt aus, Lenny nur Dispatcher fรผr Telegram-Notification.
Email-System (live, Stand: 2026-04-23)
5 produktive Mail-Accounts via all-inkl (w0160d41.kasserver.com, IMAP 993 SSL, SMTP 465 SSL):
lenny@hochfrequenz.techโ Dispatcher-Inboxzack@hochfrequenz.techโ Media-Opspenny@viaviva.teamโ Marketingstuart@viaviva.teamโ Lead-Huntingbuchhaltung@hochfrequenz.techโ Leonard (Rechnungen, Belege)
Tools: email-send, email-fetch-inbox, email-classify (qwen3:8b, 8 Kategorien). Cron email-poll alle 10 Min routet task_request/website_onboarding/invoice/spam automatisch. Credentials in /root/.secrets/email_{agent}_credentials.json (chmod 600).
Learning-System (Basis, live, Stand: 2026-04-23)
- Wiki-Struktur:
wiki/learnings/{agent}_{topic}_{client}.md - Capture: Cron
learning-capturealle 5 Min โ klassifiziert Chapaty-Kommentare โ bei feedback_correction โ NIM extrahiert WENN/DANN-Regel โ write-wiki - Inject: Tool
learning-injectโ liefert Top-5 Regeln fรผr {agent, task_type, client} alsinjection_textfรผr Agent-Prompt. Integriert in Howard-Heartbeat (Task-Execution) und Lenny-Telegram (Dispatch) โ wird automatisch vor jedem LLM-Call ausgelรถst. Fallback bei leerem Response: Task lรคuft normal. - Feedback-Klassifikator: qwen3:8b kategorisiert in feedback_correction|feedback_approval|coordination
Canva-Integration (Infrastruktur, Stand: 2026-04-23)
- Container
playwright-canva(Port 3201, ai-net) mit persistenter Session/docker/playwright/session/ - Tools:
canva-search-templates,canva-create-from-template - Chapaty-TODO: zack@ ins Canva-Team einladen โ Passwort in
/root/.secrets/canva_zack_credentials.jsoneintragen
Schablonen-Struktur (jede Schablone enthรคlt)
default_lane,base_estimate_minutes,methodology- Pro Schritt:
order,name,agent,model,auto,checklist[],quality_gate,escalation?,max_iterations?,on_fail?,fallback?,time_estimate_minutes? auto: false= braucht User-Interaktion (Lenny-Gate)auto: true= Agent fรผhrt aus, prรผft Quality Gate, eskaliert bei Fail
TEXT/ARTIKEL (10 Schritte, slow)
Auftragsklรคrung (Lenny) โ Quellen-Recherche (Howard) โ Gliederung (Howard) โ Entwurf (Howard) โ Faktencheck (Sheldon) โ Lektorat (Howard) โ Endkontrolle (Sheldon) โ Freigabe (Lenny) โ Verรถffentlichung (Howard) โ Retrospektive (Lenny)
CODING (10 Schritte, slow)
Anforderungsanalyse (Lenny) โ Backup (Howard) โ Architektur (Sheldon) โ Umgebung prรผfen (Howard) โ Entwicklung (Howard) โ Integration+Testing (Howard) โ Security Audit (Sheldon) โ Freigabe (Lenny) โ Deployment (Howard) โ Retrospektive (Lenny)
MARKETING (7 Schritte, fast)
Briefing (Lenny) โ Konzept (Howard) โ Content erstellen (Howard) โ Brand-Check+Review (Sheldon) โ Freigabe (Lenny) โ Distribution (Howard) โ Retrospektive (Lenny)
RESEARCH (6 Schritte, fast)
Briefing (Lenny) โ Quellensuche (Howard) โ Analyse (Sheldon) โ Bericht (Howard) โ Freigabe (Lenny) โ Retrospektive (Lenny)
WORDPRESS (9 Schritte, slow)
Anforderungen (Lenny) โ Backup+Clone (Howard) โ Design+Umsetzung (Howard) โ Responsive+Performance (Howard) โ Funktionstest (Howard) โ SEO Audit (Sheldon) โ Freigabe (Lenny) โ Deployment+Sync (Howard) โ Retrospektive (Lenny)
SOCIAL_MEDIA (7 Schritte, fast)
Briefing (Lenny) โ Content erstellen (Howard) โ Review (Sheldon) โ Freigabe (Lenny) โ Verรถffentlichung (Howard) โ Monitoring 24h (Howard) โ Retrospektive (Lenny)
VIDEO (11 Schritte, slow)
Briefing (Lenny) โ Script (Howard) โ Script Review (Sheldon) โ Visuals (Howard) โ Voice-Over lokal (Howard) โ Vorschau montieren (Howard) โ Freigabe Vorschau (Lenny) โ ElevenLabs Voice-Over (Howard) โ Finale Freigabe (Lenny) โ Upload (Howard) โ Retrospektive (Lenny)
NOTION_SYNC (3 Schritte, fast)
Notion abrufen (Howard) โ Perfex synchronisieren (Howard) โ Lenny informieren (Lenny)
Ressourcen-Management
- Tagsรผber: max 2ร qwen3:8b gleichzeitig
- Nachts: Sheldon-Schritte laufen im Nacht-Prozess-Fenster 03:00โ06:00 Uhr
- Halluzinations-Check ist PFLICHT bei allen TEXT-Tasks (Sheldon)
Eskalationspfade
- Schritt schlรคgt 2ร fehl โ Lenny informiert Chapaty via Telegram
- Gate nicht erfรผllt โ Sub-Task bleibt offen, nรคchster Sub-Task startet NICHT
- Chapaty-Gate รผbersprungen โ Workflow-Stopp, Alert
Korrekturschleifen
- Chapaty gibt "nicht gut" Feedback โ Sub-Task Status = "รผberarbeiten", Howard wiederholt
- Max 3 Wiederholungen pro Sub-Task, dann Chapaty-Eskalation
Gedรคchtnis-Architektur (Drei Schichten)
Ziel: Lenny erinnert sich an den laufenden Dialog, weiร was zu Projekten gehรถrt und kann bei Bedarf auf langlebiges Projekt- und Firmenwissen zurรผckgreifen โ ohne den Kontextfenster zu รผberladen.
Schicht 1 โ Session-Gedรคchtnis (live, Stand: 2026-04-22)
Zweck: Unmittelbarer Dialog-Kontext. Lenny liest bei jeder Nachricht den letzten Turn-Verlauf mit, damit Folge-Nachrichten auf vorherige aufbauen kรถnnen.
- Tabelle:
n8n_session (id, chat_id, role, content, client_tag, project_id, created_at)inperfex-db-1. - Schreiben: Telegram-Workflow ruft NACH jeder Lenny-Antwort
tool/session-add {chat_id, user_content, assistant_content}โ INSERT user + assistant, plus inline-CleanupDELETE WHERE created_at < NOW() - INTERVAL 6 HOUR. - Lesen: Telegram-Workflow ruft VOR jedem Lenny-Call
tool/session-get {chat_id, limit:10}โ chronologisch sortiertemessages-Liste, direkt als Kontext in/api/chat. - TTL: 6 Stunden. Kein manueller Reset nรถtig โ Cleanup lรคuft bei jedem Write mit.
- Was NICHT gespeichert wird: interne TOOL_RESULT-Turns (nur User-Input + finale Assistant-Antwort).
- Verifiziert: zwei Nachrichten mit Rรผckbezug funktionieren (2026-04-22: โMein Lieblingsessen istโฆโ โ โWas habe ich dir genannt?" โ korrekte Erinnerung).
Schicht 2 โ Perfex-Gedรคchtnis (persistent, in Umsetzung)
Zweck: Aufgabenbezogenes Langzeit-Gedรคchtnis. Alles, was an einem Task hรคngt, bleibt dort fรผr immer auffindbar.
- Task-Kommentare in
tbltask_comments: Originalauftrag, Zwischenergebnisse der Worker, Feedback, Freigaben. - Auto-Comment: Wenn Lenny
create_taskaufruft, hรคngt der Telegram-Workflow automatisch einen KommentarOriginalauftrag: [INTERNAL] chapaty: <user-msg>an (nicht-kritisch, wird nicht von Lenny gesteuert sondern vom Code-Node). Verifiziert: 2026-04-22. - Anhรคnge (spรคter): Sprachnachrichten als ogg + Transkription, PDFs + extrahierter Text, Bilder, Referenzen โ siehe Aufgaben-Ebene weiter unten.
- Kunden-Ebene in
tblclients+/projects/[TAG]/brand/: Logo, Farben, Styleguide, kundenweite Referenzen. - Zugriff fรผr Lenny via
tool/list-tasks,tool/add-task-comment. Fรผr Worker kรผnftig via Task-Felder im Prompt.
Schicht 3 โ Wiki / RAG (live, Stand: 2026-04-22)
Zweck: Wiederverwendbares Wissen, das nicht zu einem konkreten Task gehรถrt โ Code-Snippets, Projekt-Wissen, Studien-Ergebnisse, Brand-Bibeln, Industrie-Briefings.
Struktur:
/root/wiki/
โโโ clients/
โ โโโ HF/ (overview.md, style.md, brand.md, knowledge/)
โ โโโ GFKB/ (overview.md, style.md, brand.md, knowledge/)
โ โโโ VV/ (overview.md, style.md, brand.md, knowledge/)
โโโ system/ (learnings.md, corrections.md, time_estimates.json, glossary.md)
Wiki-Server: Python HTTP-Sidecar (/root/wiki_server.py) lรคuft als wiki-server auf ai-net:8765.
POST /read {path}โ Datei lesen (relativ zu /root/wiki)POST /write {path, content}โ Datei schreiben (inkl. mkdir)POST /search {client_tag, query}โ Volltextsuche in clients/[TAG]/ und system/GET /healthโ Status-Check
Agenten-Zugriff via tool/search-wiki, tool/read-wiki, tool/write-wiki. Lenny und Howard kรถnnen Wissen lesen und schreiben.
Wiki-Technologie-Entscheidung (beschlossen):
/root/wiki/= Flat Markdown (alle Agenten lesen/schreiben via wiki-server)- Versioniert mit Git (initialer Commit: 2026-04-22, Rollback jederzeit mรถglich)
- OpenClaw Active Memory = Lennys Chat-Kontext (ergรคnzend, nicht ersetzend)
- Perfex Wiki-Modul = nicht verwendet (zu starr, kein Agenten-Zugriff)
- Nacht-Prozess soll wiki committen:
git add -A && git commit -m "Auto-update [Datum]"
Paperclip.ing Bewertung (abgelehnt): Paperclip lรถst รคhnliche Orchestrierungs-Probleme (Budget-Enforcement, Goal-Ancestry). Abgelehnt weil: Perfex CRM bietet mehr (Kunden, Rechnungen, Projekte, Anhรคnge). Konzepte รผbernommen: Budget-Enforcement (Token-Guard), Goal-Ancestry (Quality Gates). Kein Parallelsystem nรถtig โ unser Stack reicht.
Selbst-Optimierungs-Struktur (beschlossen):
/root/wiki/system/templates/
โโโ metrics.md โ Schablonen-Metriken ("Passt direkt" Quote pro Typ)
โโโ improvements.md โ Vorgeschlagene + umgesetzte Verbesserungen
โโโ feedback_analysis/ โ Pro Task: task_[ID].md nach "passt nicht" Feedback
โโโ observations.md โ Nacht-Prozess-Beobachtungen
Feedback-Learning System (beschlossen): Wenn Chapaty "passt nicht" sagt:
- Feedback als Kommentar in Perfex-Task dokumentieren
- Dialog bis zufriedenes Ergebnis
- NACH Freigabe: automatische Analyse โ
wiki/system/templates/feedback_analysis/task_[ID].md
- Was fehlte im Briefing?
- Welche Frage hรคtte das vermieden?
- Nacht-Prozess (Sheldon + Kimi K2.5): Muster erkennen
- 3+ gleiche Muster โ Schablone automatisch ergรคnzen
- Chapaty morgens informieren: "Schablone optimiert"
Ziel โ "Passt-direkt" Quote:
- Woche 1: ~40%
- Monat 1: ~70%
- Monat 3: ~90%
Grundregel: Nichts geht verloren
Alles was Chapaty oder ein Kunde via Chat sendet wird gespeichert. Chat ist flรผchtig โ Perfex + Dateisystem sind permanent.
Zwei Ebenen der Ablage
KUNDEN-EBENE (gilt fรผr ALLE Projekte eines Kunden):
/projects/[TAG]/
โโโ brand/
โ โโโ logo.png (original + verschiedene Formate)
โ โโโ colors.json (Farbschema, HEX-Werte)
โ โโโ fonts/ (Schriftarten)
โ โโโ styleguide.md (Tonalitรคt, Schreibstil, Do's/Don'ts)
โ โโโ brand_guidelines.pdf (falls vorhanden)
โโโ templates/ (Vorlagen die kundenรผbergreifend gelten)
โโโ references/ (Inspirationen, Vorbilder, Screenshots)
In Perfex: Kunde โ Notizen + Anhรคnge = kundenweite Assets Jede Schablone prรผft: "Existiert brand/ fรผr diesen Kunden?"
- Nein: Lenny fragt nach Logo, Farben, Stil
- Ja: Automatisch in jeden Arbeitsschritt einbeziehen
AUFGABEN-EBENE (gilt nur fรผr diesen Task):
In Perfex: Task โ Kommentare + Anhรคnge
- Originale Chat-Nachrichten (Text als Kommentar)
- Originale Sprachnachrichten (ogg-Datei als Anhang)
- Transkription der Sprachnachricht (Text als Kommentar)
- PDFs (Original als Anhang + extrahierter Text als Kommentar)
- Bilder/Screenshots (Original als Anhang)
- Von User erwรคhnte Vorbilder/Referenzen (Screenshots)
- Zwischen-Ergebnisse der Agenten (Entwรผrfe, Code-Versionen)
Warum Originale UND Verarbeitung speichern
Beispiel Sprachnachricht:
- Original ogg-Datei โ Anhang am Task
- Transkription โ Kommentar am Task
- Nacht-Prozess kann: Original erneut transkribieren und mit gespeicherter Transkription vergleichen โ Fehler finden + korrigieren
Beispiel PDF:
- Original PDF โ Anhang am Task
- Extrahierter Text โ Kommentar am Task
- Bei Unklarheiten: Agent kann Original erneut lesen
Lenny's Ablage-Verhalten
Bei JEDER Nachricht die Task-relevant ist:
- Originaldatei in Perfex Task als Anhang speichern
- Verarbeitete Version als Kommentar hinzufรผgen
- Kontext-Info: "Sprachnachricht von Chapaty am 22.04.2026"
Bei kundenweiten Assets (Logo, Farben etc.):
- In Kunden-Ordner
/projects/[TAG]/brand/ablegen - In Perfex Kunde als Anhang/Notiz speichern
- Lenny merkt sich: "Kunde [X] hat jetzt ein Logo"
Schablonen-Integration
Jeder Schablonen-Schritt hat Zugriff auf:
- Kunden-Assets (brand/, styleguide)
- Alle Task-Anhรคnge und Kommentare
- Alle anderen Tasks im selben Projekt (Kontext)
Schablone prรผft VOR Arbeitsstart: "Alle nรถtigen Ressourcen vorhanden?"
- Logo? Styleguide? Zugรคnge? Briefing?
- Fehlend: Lenny fragt nach BEVOR Arbeit beginnt
---
Projekt-Architektur (beschlossen)
Naming-Convention mit Prefix
[GFKB]= gfkb.org Projekte[HF]= hochfrequenz.tech Projekte[VV]= viaviva.team Projekte[FUTURE]= Ideen die auf Projektabschluss warten[POOL]= Ideenpool ohne konkreten Starttermin
Sonder-Projekte
[FUTURE]: Nacht-Prozess prรผft tรคglich ob Startbedingung erfรผllt[POOL]: Sheldon prรผft wรถchentlich ob Idee reif fรผr echtes Projekt
Projekt-Kontext fรผr Lenny
- N8N lรคdt bei jedem Task: Projekttitel + Beschreibung + Status + letzte 3 offene Tasks
- Lenny (8b) entscheidet Zuordnung anhand dieses Kontexts
- Sheldon (14b) nur nachts fรผr Korrekturen und Learning
Archivierung
- Projekt 60 Tage kein Update โ Nacht-Prozess flaggt
- Sheldon schreibt Zusammenfassung
- Status: Archiviert (nie gelรถscht, immer reaktivierbar)
Perfex Kunden (Stand: 2026-04-22)
| ID | Firma | Website |
| 2 | Hochfrequenz | hochfrequenz.tech |
| 3 | GFKB | gfkb.org |
| 4 | Viaviva | viaviva.team |
Aktive Projekte in Perfex (Stand: 2026-04-22)
| ID | Name | Zweck |
| 4 | [HF] Hochfrequenz Website | Hochfrequenz (2) โ Website, Shop, Content |
| 5 | [HF] Content Strategie | Hochfrequenz (2) โ Artikel, Blog, SEO Content |
| 6 | [GFKB] Website | GFKB (3) โ Krisenvorsorge Nonprofit |
| 7 | [VV] Shelter SaaS | Viaviva (4) โ Tierheim Software SaaS |
| 8 | [POOL] Ideenpool | Viaviva (4) โ Ideen ohne konkreten Starttermin |
| 9 | [FUTURE] Warteschlange | Viaviva (4) โ Tasks die auf Abschluss warten |
Task-Queue und Heartbeat (live, Stand: 2026-04-22)
DB-Tabellen
n8n_task_queue โ Warteschlange fรผr Howard-Aufgaben:
(id, task_id, lane [fast|slow], priority, estimated_minutes, actual_minutes,
status [queued|active|done], assigned_agent, template_type,
created_at, started_at, finished_at)
fast-Lane: Kurze Tasks (<30 Min), Lenny-Antworten, schnelle Recherchenslow-Lane: Lange Tasks (>30 Min), Artikel, Coding, Analyse
n8n_agent_state โ Laufzustand der Worker-Agenten:
(agent [howard|sheldon|amy|raj], busy, current_task_id, current_step,
current_step_name, lane, estimated_minutes, started_at, updated_at)
Initial: howard, sheldon, amy, raj โ alle busy=0.
n8n_mentions_processed โ Bereits verarbeitete @lenny-Mentions:
(id, comment_id UNIQUE, processed_at)
Howard Heartbeat (alle 5 Min)
Flow: Cron โ Heartbeat+State MySQL โ Load State โ IF Busy?
- Busy=true: Load Task โ Load Comments โ Howard Work (Ollama qwen3:8b) โ Save Work โ Update State
- Busy=false: Pick Task โ Start Task โ Activate Task โ Start Comment
Howard Work-Logik:
- Lรคdt Task + Kommentar-Historie
- Prรผft Timeout:
elapsed > estMin * 2.0โ Alert an @lenny,elapsed > estMin * 1.5โ Warnung - Ruft qwen3:8b auf: Prompt enthรคlt Task-Beschreibung, aktuellen Schritt, bisherige Kommentare
- Antwortet mit
SCHRITT_FERTIGโ nรคchster Schritt, oder Text-Ergebnis โ als Kommentar gespeichert - Wartet auf @sheldon (Review-Anfrage) oder @lenny (Freigabe) โ Heartbeat pausiert bis Response
Inter-Agent-Kommunikation
Agenten kommunizieren via Perfex-Task-Kommentare:
@lenny <nachricht>โ Howard eskaliert an Lenny (Frage, Freigabe-Bitte, Fehler)@howard <nachricht>โ Lenny weist Howard neue Aufgabe zu oder gibt Feedback@sheldon <nachricht>โ Howard bittet Sheldon um Review- Mention Watcher (alle 2 Min) erkennt neue
@lenny-Mentions โ forwarded an Telegram (Chapaty sieht es)
Crash Recovery (automatisch, Stand: 2026-04-22)
Stuck Agent (busy=1, kein Update >30 Min):
- System Watchdog erkennt โ
UPDATE n8n_agent_state SET busy=0(Auto-Reset) โ Telegram-Log
Howard Heartbeat tot (updated_at >10 Min):
- System Watchdog erkennt
- N8N API: howard-heartbeat Workflow deactivate โ reactivate
- 35s warten โ prรผfen ob aktiv
- Falls noch tot:
docker restart n8n-n8n-1via media-server - Telegram NUR wenn Aktion durchgefรผhrt (kein "Alles OK")
Service down (N8N / Ollama / Perfex / Openclaw / Wiki-Server):
- Raj erkennt (alle 30 Min)
docker commitโ Backup-Image (PFLICHT vor jedem Fix)docker restartโ 25s warten โ HTTP-Check- Falls noch down: Diagnostik (logs + system-stats) โ NIM-Eskalation (Kimi K2.5 โ DeepSeek R1 โ OpenAI)
- NIM-Befehle ausfรผhren (Safety-Filter: rm -rf, DROP, TRUNCATE, mkfs, dd if= โ abgelehnt)
- 25s warten โ finaler HTTP-Check
- Erfolg:
wiki/system/corrections.mdaktualisieren + Telegram โ - Misserfolg: Telegram ๐จ (manuelle Intervention)
- Kein Telegram wenn alle Services OK
Wenn Task > 2ร estMin dauert: Howard sendet @lenny ESKALATION: Task dauert X Min โ Telegram-Alert.
Cron-Workflows (live, Stand: 2026-04-22)
| Name | ID | Cron | Zweck |
howard-heartbeat | edWAIHwpED3WYxrf | */5 * * * * | Howard arbeitet an aktiven Tasks oder startet neue aus Queue |
mention-watcher | eFz62mP2Me4GYgce | */2 * * * * | @lenny-Mentions in Task-Kommentaren โ Telegram-Forward |
system-watchdog | LkMKPqsrI7Ob25Pk | */15 * * * * | Stuck-Agent Auto-Reset + Howard-Heartbeat Auto-Repair (N8N API + docker restart) |
raj-server-monitor | gbC7mnqdKOQLRz0g | */30 * * * * | Self-Healing: backup โ restart โ NIM-Eskalation โ corrections.md lernen |
Generator: /root/gen_crons.py (idempotent, lรถscht nach Prefix und erstellt neu). Telegram NUR wenn Aktion durchgefรผhrt โ kein "Alles OK"-Spam.
Nacht-Prozess (beschlossen)
Tรคglich 03:00 Uhr:
- Phase 1: Sheldon auditet alle Tasks/Projekte
- Phase 2: Howard korrigiert Fehler
- Phase 3: Learning โ
/root/lenny_learnings.jsonaktualisieren - Phase 4: Keyword-Liste in N8N automatisch updaten
- Morgenbericht 07:00 Uhr via Telegram an Chapaty
[FUTURE] Prรผfung tรคglich morgens:
- Sheldon prรผft ob Bedingungen erfรผllt
- Lenny fragt Chapaty: "Projekt X fertig โ Task Y aus FUTURE starten?"
Perfex-Anbindung (beschlossen)
- REST API: nicht verfรผgbar (kein Envato-Modul installiert)
- Direkter MySQL-Zugriff via N8N MySQL-Node
- DB-Host: perfex-db-1 (im ai-net, Alias: perfex-db)
- Credential-ID: E8dBl2JZe9oTl9VS ("Perfex MySQL")
- Sicherheitsregel: N8N fรผhrt nur SELECT und INSERT โ NIEMALS DELETE/UPDATE ohne explizite Chapaty-Freigabe
- addedfrom=2 (Lenny Staff-ID) bei allen Task-INSERTs
Tool-Integrationen (Konzepte โ noch nicht gebaut)
Excalidraw (live, Phase C)
Container excalidraw auf ai-net, Port 3100:3000 (ghcr.io/yctimlin/mcp_excalidraw-canvas). API: POST /api/elements, POST /api/elements/batch, POST /api/snapshots, DELETE /api/elements/clear. N8N-Tool tool/create-diagram live โ erstellt Canvas-Elemente + Snapshot, gibt URL zurรผck. PNG-Export: erfordert Browser-WebSocket โ Phase C mit Browser-Automation.
WordPress Companion Plugin (Phase D)
Plugin "Viaviva Sync" โ standalone PHP, Token-Auth. Endpoints: clone, status, deploy, rollback, pages/posts/products CRUD, media upload, SEO, analytics. Staging unter: staging.[domain].ultimo.hochfrequenz.tech N8N-Tools (Phase D): tool/wp-clone, tool/wp-deploy, tool/wp-rollback, tool/wp-page, tool/wp-post, tool/wp-product
Social Media APIs (Phase F)
Meta Graph API: Facebook/Instagram โ Posts erstellen, planen, verรถffentlichen, Kommentare, Insights. YouTube Data API v3: Videos hochladen, Title/Description/Tags, Comments, Analytics. N8N-Tools (Phase F): tool/post-social, tool/get-social-comments, tool/reply-social-comment, tool/get-social-analytics
ElevenLabs Voice-Over (Phase B)
API fรผr professionelle Voice-Overs โ nur nach Chapaty-Freigabe (Kosten pro Request). Lokale TTS (Coqui) = Vorschau, ElevenLabs = finale Produktion. N8N-Tool: tool/generate-voice(text, voice_id, settings) โ speichert Audio, gibt file_path + duration_seconds zurรผck. Sicherheit: Chapaty-Gate โ nur [INTERNAL] darf ElevenLabs triggern.
Canva Integration (Phase F)
Option A: Canva API (Template-basiert, eingeschrรคnkt verfรผgbar). Option B: Browser-Automation (Playwright/Puppeteer) โ realistischer. Howard braucht Browser-Tool fรผr Option B.
Notion API (separates Feature)
Synchronisation mit externem Notion-Workspace. N8N hat native Notion-Nodes. N8N-Tools: tool/notion-get-tasks(database_id), tool/notion-update-task(page_id, status) Cron: "Notion Sync" alle 30 Min โ Notion โ Perfex bidirektional. Schablone NOTION_SYNC.json liegt bereit.
Analytics Integration (Phase D/E)
Google Analytics 4 API: Seitenaufrufe, Conversion-Rate, Bounce-Rate. Google Search Console API: Keywords, CTR, Indexierungsstatus. Sheldon analysiert wรถchentlich โ Performance-Bericht โ Split-Test-Vorschlรคge. Split-Test Workflow: Vorschlag (Sheldon) โ Freigabe (Chapaty) โ Variante B (Howard) โ 2 Wochen Tracking โ Bewertung (Sheldon) โ Gewinner รผbernehmen.
Buchhaltung/Rechnungen (Phase G)
Konzept
- Kunden sind bereits sauber in Perfex angelegt (company, website)
- Adressdaten werden erst bei Bedarf ergรคnzt, nicht vorab
Ablauf: Erste Rechnung fรผr einen Kunden
- Lenny erkennt fehlende Rechnungsdaten (address, city, zip leer)
- Lenny fragt: "Ich brauche die Rechnungsdaten fรผr [Kunde]. Hast du einen Link zum Impressum oder die Daten parat?"
- User gibt URL ein โ Sheldon scrapt Impressum โ Adressdaten extrahieren
- tblclients updaten: address, city, zip, country, VAT
- Rechnung generieren via Perfex Rechnungsmodul (nativ verfรผgbar)
Spรคter
- Automatische Rechnungsstellung nach Task-Abschluss
- Monatliche Sammelrechnung pro Kunde
Status: Noch nicht bauen โ kommt in Phase 8.
---
Offene Konfigurationen (Backlog)
- [x] N8N: Chapaty-Erkennung (ID 838021596 = INTERNAL Tag)
- [x] N8N: Tool-Webhooks 1โ10 (list/create-project, list/create-task, list/create-client, add-task-comment, get-template, session-get/add)
- [x] N8N: Tool-Webhooks 11โ13 (queue-task, get-queue-status, get-task-status)
- [x] N8N: Tool-Webhooks 14โ16 (search-wiki, read-wiki, write-wiki via wiki-server)
- [x] N8N: Telegram-Workflow lenny-telegram-v3 (5 Nodes, Tool-Calling-Loop, qwen3:8b)
- [x] Schablonen-System (JSON) fรผr TEXT, CODING, MARKETING, RESEARCH, WORDPRESS, SOCIAL_MEDIA, VIDEO, NOTION_SYNC (8 Schablonen, professionelle Checklisten)
- [x] Gedรคchtnis-Schicht 1 (Session,
n8n_session, 6h TTL, inline Cleanup) - [x] Gedรคchtnis-Schicht 3 (Wiki,
/root/wiki/, wiki-server:8765, Lenny/Howard-Zugriff via Tools) - [x] Auto-Comment bei
create_task(Originalauftrag landet in Perfex) - [x] Task-Queue + Howard Heartbeat (n8n_task_queue, n8n_agent_state, 4 Cron-Workflows)
- [x] Inter-Agent @mention-Protokoll (Mention-Watcher, Telegram-Forward)
- [x] Projektlisten-Injektion in System-Prompt (verhindert stale-History-Fehler)
- [ ] N8N: Perfex Lookup fรผr bekannte Kunden (CUSTOMER Tag via Telegram-Username-Match)
- [ ] SOUL.md: Quellen-Vertrauen Regeln einbauen
- [ ] N8N: Websearch-Tool mit [WEBSEARCH] Tag (Tavily/DuckDuckGo)
- [ ] N8N: Browser-Tool mit [BROWSER] Tag
- [ ] N8N: Whisper-Transkription fรผr Sprachnachrichten
- [ ] N8N: Dokument-Parsing (PDF)
- [ ] N8N: Originalnachricht automatisch als Task-Kommentar speichern (via Lenny)
- [ ] Lead-Erfassung automatisch in Perfex (UNKNOWN โ tblclients insert via create-client)
- [ ] Nacht-Prozess 03:00 Uhr (Sheldon + Howard)
- [ ] Schablonen-Sub-Tasks automatisch in Perfex anlegen (nach get-template Antwort)
- [ ] Token-Guard Node (Tages-Budget $5)
Phasenplan (neu geordnet, Stand: 2026-04-22)
| Phase | Name | Status | Inhalt |
| A | Master-Build | โ Abgeschlossen | N8N, Perfex, Lenny, 17 Tools, Wiki, 4 Crons, 8 Schablonen, Excalidraw |
| B | Medien + Nacht-Prozess | Offen | Whisper (Sprachnachrichten), PDF-Parsing, Bilder, ElevenLabs, Nacht-Analyse 03:00 Uhr |
| C | Tool-Integrationen | Offen | Excalidraw PNG-Export (Browser), Analytics-Integration, Token-Guard |
| D | WordPress Plugin + Deployment | Offen | Companion Plugin, Clone/Deploy/Rollback, Post/Product CRUD, SEO-Endpoints |
| E | Server-Migration | Offen | GoDaddy โ Hostinger (hochfrequenz.tech, gfkb.org), Staging-Setup |
| F | Social Media + Canva | Offen | Meta Graph API, YouTube Data API, Canva Browser-Automation, Upload-Post.com |
| G | Buchhaltung + Rechnungen | Offen | IMAP, Rechnungs-OCR, Digistore24 API, Monatsbericht |
| H | Shelter SaaS | Offen | Tierheim-Produkt, ~550 Tierheime Deutschland, Perfex-Modul |
Phase B โ Medien + Nacht-Prozess (Prioritรคt 1)
- [ ] Whisper lokal installieren (Sprachnachrichten โ Text)
- [ ] PDF-Parsing (Qwen3 + pdftotext)
- [ ] Google AI Studio API (Bild-Generierung, 500/Tag kostenlos)
- [ ] Pixabay + Pexels API (Stock-Bilder)
- [ ] ElevenLabs API +
tool/generate-voice(Chapaty-Gate) - [ ] Nacht-Prozess Cron 03:00 Uhr (Sheldon Audit + Wiki-Commit + Feedback-Learning)
- [ ] Schablonen-Metriken automatisch in
wiki/system/templates/metrics.mdschreiben
Phase C โ Tool-Integrationen (Prioritรคt 2)
- [x] Excalidraw Container (excalidraw, ai-net, Port 3100) โ live
- [x]
tool/create-diagramโ live (Canvas-Elemente + Snapshot) - [ ] Excalidraw PNG-Export (Browser-Automation via Playwright)
- [ ]
tool/search-web(Tavily/DuckDuckGo, [WEBSEARCH]-Tag) - [ ] Token-Guard (Tages-Budget $5, Alert bei $3)
- [ ] Analytics-Integration (GA4, Search Console)
Phase D โ WordPress Plugin (Prioritรคt 3)
- [ ] Plugin-Grundstruktur (standalone.php, Token-Auth)
- [ ] Clone, Backup, Deploy, Rollback Endpoints
- [ ] Post/Page/Product CRUD
- [ ] SEO-Endpoints (Meta-Tags, Schema.org)
- [ ] Analytics-Endpoints (GA4 Proxy)
Phase E โ Server-Migration
- [ ] hochfrequenz.tech DNS auf Hostinger VPS
- [ ] gfkb.org DNS auf Hostinger VPS
- [ ] WordPress Staging-Umgebungen fรผr jede Domain
- [ ] Let's Encrypt SSL via NPM