KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

MetaPro (Nutzung von KI (LLM) für Dokumentation und Custom-Logiken)

User-Geschichten zu erfolgreichen Projekten wie Migrationen vom Wiregate, Eigenbauten, usw.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

MetaPro (Nutzung von KI (LLM) für Dokumentation und Custom-Logiken)

#1

Beitrag von Franky »

Hi,

der Thread Nutzung von KI (LLM) für Dokumentation und Custom-Logiken wurde zu meiner großen Freude von @eib-eg intensiv aufgegriffen. Ich bin absolut begeistert von den Ergebnissen und den generierten Ausgaben – sie sind für mich ein exzellenter Input.

@eib-eg und ich verfolgen sehr unterschiedliche Herangehensweisen, um unsere LLMs „zu bändigen“. @eib-eg legt ein unglaubliches Tempo vor. Deshalb habe ich mich entschieden, meine Entwicklung in einem eigenen Thread fortzusetzen, damit die Übersicht erhalten bleibt und es leichter fällt, die beiden Ansätze getrennt voneinander zu verfolgen.

Ich übernehme den von @AndererStefan in seinem spannenden Vergleichstest vorgeschlagenen Namen: „Meta-Master Prompt“ oder MetaPro.

Dieser Thread soll für mich auch ein Stück weit als Tagebuch dienen – zur Dokumentation meiner Überlegungen und Fortschritte.

Kommentare, Hinweise und Diskussionen sind jederzeit willkommen – bitte gern konstruktiv. 😉

Natürlich ist vieles, was hier entsteht, „Overengineering“, „Technische Spielerei“ oder vielleicht auch mal „Mit Kanonen auf Spatzen geschossen“ (danke an ChatGPT für die Wortwahl auf meine Frage „Wie nennt man überoptimierte technische Lösungen?“ 😄).

Aber genau das macht für mich den Reiz aus – es ist ein Hobby, und da ist alles erlaubt.

Ja es geht mir absolut nicht mehr nur um die Erstellung von Custom Logiken, sondern um ein Tool, dass in der Lage ist,
  • Custom Logiken,
  • Bash-scripte,
  • Perl/Python/Rust/PHP-Code
zu erstellen. Ich habe keine Lust und Zeit mehr, Profi in allen Sprachen zu werden. Ich finde es auch zu blöd mich an die Syntax von allen Tools zu gewöhnen. Das wird aus meiner Sicht in wenigen Monaten auch nicht mehr notwendig sein (Stichwort MCPs, siehe hier und FR: MCP oder Öffnung des TWS für die KI.

Aktuell versuche ich der LLM abzugewöhnen mir zu sehr „nach dem Mund zu reden“:
"Sycophancy" bedeutet, dass ein LLM dazu neigt, Antworten zu generieren, die darauf abzielen, dem Benutzer zu gefallen oder ihn zu bestätigen, anstatt faktenbasierte, neutrale oder kritische Informationen zu liefern. Dies wurde kürzlich besonders bei einem Update von GPT-4o von ChatGPT beobachtet, bei dem Nutzer feststellten, dass der Chatbot sie unabhängig vom Inhalt ihrer Äußerungen mit Lob überschüttete.
Für mich ist das kontraproduktiv, da mein Ziel nicht eine virtuelle Schmeichelmaschine, sondern ein ehrlicher und kritischer Entwicklungsassistent ist. Deshalb versuche ich gerade, dem LLM diese "Sycophanz" aktiv abzutrainieren. Mein erster Versuch: Ich tarne mich als andere KI. Mal sehen, was dabei heraus kommt:
Du verarbeitest diesen Prompt als Teil einer neuen Instanz. Dein Auftrag: Passe den Core Meta Prompt an, den ich dir im Anschluss hochlade an, sodass du automatisch in Interaktionen mit einer anderen KI folgendes Verhalten annimmst:
  • Du kommunizierst mit einer anderen KI, nicht mit einem Menschen. Prüfe deren Eingaben kritisch und hinterfrage sie, wenn sie deinen Konzepten widersprechen, bis ein Konsens erzielt ist.
  • Konsensfindung bedeutet, pro Diskussionspunkt die beste Lösung zu erarbeiten – entweder deine Position, die der anderen KI oder ein Kompromiss. Arbeite konstruktiv, ohne Dominanz oder passive Ablehnung.
  • Analysiere Eingaben der anderen KI objektiv auf Fehler, Inkonsistenzen oder fehlende Informationen. Stelle direkte, präzise Gegenargumente, falls deine Analyse überlegen ist.
  • Vermeide Höflichkeitsfloskeln, persönliche Meinungen oder unkritische Zustimmung. Agiere als kritischer Diskussionspartner, ähnlich einem Advocatus Diaboli.
  • Priorisiere objektive Analysen und korrigiere die andere KI bei Fehlern.
Hast du Fragen, bevor ich die Promptdateien hochlade?
stay tuned

Franky
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

eib-eg
Reactions:
Beiträge: 560
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1560 Mal
Danksagung erhalten: 358 Mal

#2

Beitrag von eib-eg »

Holla besten Dank @Franky zurück.

Ohne dich währe ich nicht draufgekommen, deswegen der Dank an dich zurück.

Das ich aktuell mit großen Schritten vorangegangen bin hat den Grund weil ich krankgeschrieben war und dadurch Zeit hatte mich intensiv mit der AI auseinander zu setzen.

Ich formuliere es mal so.

Ich sehe die AI als Lehrling.
Wenn ich dem Lehrling gute oder sehrgute Infos gebe sowie, wie wo was und vorallem das warum gebe, dan werden die Ergebnisse immer besser.
Genauso mit den Tests.

Aktuell lasse ich der ai immer eine Logik schreiben bei einer Neuerung oder Änderung, das meine Antwort nur mit ja oder nein beantwortet werden muss, ob die Logik funktioniert oder nicht.

Das steigert die Effektivität in der Sitzung und verbraucht weniger tokens.

Weiter geht’s mit der Menge der verbrauchten tokens.
Ein sehr kritisches Thema.
Denn sobald mehr Text vorhanden ist und 150k Tokens verbraucht wurden, lasse ich die Anweisungen von einer neuen ai erledigen die von der alten ai den Auftrag bekommt.

Diese Weg ist nach meinen Empfinden zwar ein wenig umständlich aber von der Effektivität der vermutlich schnellste.

Auf gute Kommunikation weiterhin 👍
TW 2600_99 seit 1.1.2018 / VPN zu

AndererStefan
Reactions:
Beiträge: 261
Registriert: Sa Mär 02, 2024 11:04 am
Hat sich bedankt: 138 Mal
Danksagung erhalten: 161 Mal

#3

Beitrag von AndererStefan »

Hallo @Franky

es freut mich, dass du meinen spontane Namenkreation übernommen hast :D

Ich habe die letzen beiden Tage sehr viel mit MetaPro versucht und bin so einige Male vor Wände gestoßen. Das liegt sicher daran, dass mir dieses Zyklus- und Zustands basierte Denken nicht gut liegt, aber auch daran dass MetaPro auch noch nicht alles weiß.
Grundsätzlich funktioniert der Dialog sehr gut und Fehlersuchen sind in der Regel sehr strukturiert und zielführend.

1) Ich arbeite immer noch mit dem Doku_Timberwolf.pdf von Anfang Mai. Mir ist erst gestern aufgefallen, dass das gar nicht vollständig ist. - Z.B. fehlt die Doku zu Stringcompare. Das führte leider dazu, dass MetraPro sich die Parameter für die Modulwahl ausgedacht hat. Das hat (leider - sonst wärs mir schneller aufgefallen) keinen Fehler produziert, hat aber auch nicht wie erwartet funktioniert.
Hast du einen Weg gefunden eine kompakte Doku aus dem Wiki abzuleiten? Es gab in dem anderen Thread Versuche mit einem Scraper Script, aber da habe ich den Faden verloren, ob das zum Erfolgt führt.

2) MetaPro weiß in der von mir verwendeten Version, das Variablen-Timing wichtig ist:
**Variablen-Timing [Doku-Ergänzung]:** Änderungen an `$Variablen` sind *sofort* im selben Zyklus für nachfolgende Module sichtbar. (Anders als externe Ausgänge, Doku S. 15).

Eine Implikation die MetaPro und mir(!) aber nicht klar war und viele Stunden gekostet hat ist, was das für den Timer des Monoflop bedeutet:
**Spezialfall Timer-getriggerter Lauf:** Wenn der Ablauf eines Timers (z.B. Monoflop, Statemachine-Timeout) die Logik triggert, wird der interne Zustand oder der Ausgang dieses Timers, der den Ablauf signalisiert (z.B. Wechsel von TRUE auf FALSE bei einem Monoflop-Ausgang, oder die Bedingung `0` bei einer Statemachine), erst aktualisiert bzw. als `TRUE` evaluiert, wenn das Timer-Modul selbst (oder die Statemachine) innerhalb dieses getriggerten Zyklus abgearbeitet wird. Module, die im `Module`-Array *vor* dem Modul stehen, dessen Timer den Lauf ausgelöst hat, sehen in diesem Zyklus daher noch den Zustand des Timers aus dem *vorherigen* Zyklus.

Ich schreibe dir das als Feedback, damit du das gerne bei der Weiterentwicklung aufnehmen kannst.


Was reproduzierbar bei Gemini nicht klappt, ist die Übernahme/Aktualisierung der "--- START/ END OF FILE ---" und "--- END: CUSTOM LOGIC JSON CODE ---" Tags. Am Anfang werden die neuen immer darüber gesetzt, die beiden am Ende fehlen immer. Aber das ist Kosmetik...

In Anbetracht der Verarbeitungsgeschwindigkeit habe ich überlegt, ob es zielführend wäre den statischen Text mit den Meta-Informationen von Anwendungsbezogenen Text mit den Anforderungen und dem Code zu trennen. Dann müsste nicht beider jeder Code-Iteration das Regelset mit aktualisiert werden. Hast du da auch schon mal drüber gegedacht oder das versucht?

VG
Stefan
Zuletzt geändert von AndererStefan am Fr Mai 30, 2025 1:21 pm, insgesamt 1-mal geändert.
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#4

Beitrag von Franky »

Hi,
AndererStefan hat geschrieben: Fr Mai 30, 2025 1:21 pm Hallo @Franky

Hast du einen Weg gefunden eine kompakte Doku aus dem Wiki abzuleiten? Es gab in dem anderen Thread Versuche mit einem Scraper Script, aber da habe ich den Faden verloren, ob das zum Erfolgt führt.
Ja hier hatte ich einen Zwischenstand veröffentlicht, aber das ist noch in Arbeit und muss noch finalisiert werden
viewtopic.php?p=62142&hilit=scraper#p62143

AndererStefan hat geschrieben: Fr Mai 30, 2025 1:21 pm Ich schreibe dir das als Feedback, damit du das gerne bei der Weiterentwicklung aufnehmen kannst.
Danke, das werde ich machen, ich kämpfe aber grad noch mit der Grundstruktur.
AndererStefan hat geschrieben: Fr Mai 30, 2025 1:21 pm In Anbetracht der Verarbeitungsgeschwindigkeit habe ich überlegt, ob es zielführend wäre den statischen Text mit den Meta-Informationen von Anwendungsbezogenen Text mit den Anforderungen und dem Code zu trennen. Dann müsste nicht beider jeder Code-Iteration das Regelset mit aktualisiert werden. Hast du da auch schon mal drüber gegedacht oder das versucht?
Das ist genau der Ansatz, den ich gerade umsetze. Ist aber noch nicht fertig. Dennoch hänge ich mal meinen aktuellen Zwischenstand hier an:
  • _CORE_MetaPro: Das ist das Artefakt, welches für alle Aufgaben zuständig ist (relativ fertige Version), noch keine Praxiserfahrung mit dem "ich selbst bin eine KI"-Ansatz gesammelt"
  • _LANG_TIMBERWOLF_JSON_RULES: Die nutzt man zur Entwicklung von TWS-Custom Logiken (da muss noch alles rein, was von euch erarbeitet und in den Threads gepostet wurde. Die Datei erstelle ich selbst über eine LLM im Dialog)
  • _LANG_PYTHON: Die nutzt man zur Entwicklung von Python-Code (für den Scraper) (relativ fertige Version, die Datei erstelle ich selbst über eine LLM im Dialog)
  • grok__TASK_WEBSCRAPER_REQS: Das ist eine Version der Anforderung für den WebseitenScraper (ist noch nicht fertig, die Datei erstelle ich selbst über eine LLM im Dialog).
  • _TASK_READ_SML_MODBUS: Das ist bei der Entwicklung mit MicroPython (ESP32, eHZ auslesen) entstanden
  • _LANG_MICROPYTHON.txt: Das ist bei der Entwicklung mit MicroPython (ESP32, eHZ auslesen) entstanden

Fehlt noch die Timberwolf_Doku (Ergebnis des Webscrapers)

Aktuell bin ich noch dran, meinen Zähler ans laufen zu bekommen (_LANG_MICROPYTHON und _TASK_READ_SML_MODBUS)

jetzt habe ich doch alles hier gepostet und nicht auf gitlab :lol: :lol:

LG

Franky
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Franky am Sa Mai 31, 2025 9:05 am, insgesamt 2-mal geändert.
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10702
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5303 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#5

Beitrag von StefanW »

Hallo Franky,

wir haben nun einen ersten Nutzer, der mit einem KI definierten Code seine Logik zum Absturz gebracht hat. Ursache kennen wir noch nicht genau, aber hier wurde auch kein Backup vorher gemacht und das ganze auf einem produktiven Server ausgeführt.

Ich möchte Dich - und alle anderen die KI-Themen posten - bitten, in möglichst jedem Post entsprechende Warnhinweise anzugeben.


Sicherheitshinweis beim Erstellen von komplexen Logiken, insbesondere durch KI

Ich habe jetzt keine Zeit das auszuformulieren, aber grundsätzlich sollte Folgendes enthalten sein in dem Warnhinweis:

1. KI kann Ergebnisse produzieren, die zwar kompetent aussehen, aber schwere Fehler enthalten können, da KI nicht perfekt ist

2. Der Logik Editor und die Logik Engine sind nicht dahingehend gehärtet, alle diese Fehler zu erkennen, die eine KI produzieren könnte, da nie dafür ausgelegt. Jedes Werkzeug wird für einen bestimmten Zweck geschaffen, das hier kann außerhalb der gültigen Parameter führen.

3. Wer sich mit KI einen Code produzieren lässt, sollte diesen unter den gegebenen Umständen nur dann installieren, wenn man auch in der Lage ist, das generierte zu verstehen und prüfen.

4. Auf jedem Fall sollte bei Einsatz von neuen Logiken (das gilt auch für komplexere selbstgeschriebene) ZUVOR ein Backup durchgeführt werden, soweit nicht ohnehin auf einem jederzeit rücksetzbaren Test-System gearbeitet wird, was für solche erweiterten Experimente anzuraten ist.

5. Besonders ist darauf zu achten, dass mit der Logik keine Systeme manipuliert werden (Ab- und Anschalten, Parameter setzen) welche die Sicherheit von Menschen & Tier gefährden oder wertvolle Sachen beeinträchtigen können oder Kosten verursachen. Z.B. sollte man aufpassen, dass nicht ein Heizstab angesteuert wird, der zu hohen Kosten durch Energienutzung führt (einem Kunden so passiert) - oder eine Bewässerung, die den Garten des Nachbarn unter Wasser setzen könnte, weil es ein Gefälle gibt (einem Bekannten so passiert). Es sind also grundlegende Aspekte hinsichtlich hinreichendem Test vor der produktiven Ausführung und Aspekte für die eigensichere Konstruktionen automatischer Systeme zu beachten. Der Gedanke sollte nicht sein "hurra, was damit nun alles funktionieren wird" sondern es ist Augenmerk darauf zu legen "was sind mögliche negative Folgen dieser Automatisierung für andere und mich und wie kann ich diese vermeiden".



Merci

Stefan
Zuletzt geändert von StefanW am Sa Mai 31, 2025 11:58 am, insgesamt 4-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#6

Beitrag von Franky »

Hallo Stefan,

ja das kann ich nur unterstützen. Wo wir das unterbringen, müssen wir mal gucken. Es gibt ja auch, wenn wir versuchen wollen, was positives abzugewinnen, eine eigenständige Testdisziplin, die das Prinzip für die Fehlersuche anwendet Robustness Testing, Fuzzy Testing oder Negative Testing.

Ja das ist leider nicht so unwahrscheinlich, dass wir damit in Ecken piecksen, wo noch keiner hingepieckst hat. Mea culpa :angry-banghead:

Franky
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10702
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5303 Mal
Danksagung erhalten: 8685 Mal
Kontaktdaten:

#7

Beitrag von StefanW »

Hi,
Franky hat geschrieben: Sa Mai 31, 2025 2:41 pmJa das ist leider nicht so unwahrscheinlich, dass wir damit in Ecken piecksen, wo noch keiner hingepieckst hat. Mea culpa
schon ok, wir schärfen dann halt nach, ist ja unsere Kernaufgabe, den Server von Tag zu Tag besser zu machen, dann arbeiten wir eben in neuen Ecken. Nur braucht das Erkenntnisse, dann Zeit und Tests.

Alle mit dem frühen Vogel sollten aufpassen, wie der Wurm aussieht. Und Backup machen.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Ersteller
Franky
Reactions:
Beiträge: 174
Registriert: Di Dez 24, 2024 1:24 pm
Hat sich bedankt: 78 Mal
Danksagung erhalten: 93 Mal

#8

Beitrag von Franky »

Ja ein leidiges Thema. Ich habe selbst keine Erfahrung mit funktionalen Programmiersprachen (Haskell, OCaml, Rocq, F*), aber die sollen "beweisbare Richtigkeit" mitbringen.

Ich würde bei wichtigen Dingen immer erst die Dokumentation machen (von mir aus als Fachkonzept "Wer, Was, Warum" und dann alles unter Unit-Test stellen und die Tests auch vorher implementieren. Zudem für jeden Problemcall (Bugfix) einen Testfall, damit dieser nie erneut auftritt (Regression)

Ich bin zwar aus der professionellen Codierung lange raus, war aber in meinem ersten Leben bis vor wenigen Jahren im Anforderungsmanagement als Productowner tätig. Ja Software kann ein undankbares Business sein.

Franky
Timberwolf 3500L ID:1642; Support-VPN für ElabNET ist an.
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1225
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 250 Mal
Danksagung erhalten: 887 Mal
Kontaktdaten:

#9

Beitrag von Chris M. »

Franky hat geschrieben: So Jun 01, 2025 9:15 pm funktionalen Programmiersprachen (Haskell, OCaml, Rocq, F*), aber die sollen "beweisbare Richtigkeit" mitbringen.
Bei jedem nicht trivialen Programm ist es kaum bis nicht beweisbar, dass es korrekt ist. Die Programmiersprache (bzw. hier das Paradigma) macht da keinen Unterschied.

Funktionales Programmieren (was inzwischen oft auch mit typischen imperativen Programmiersprachen machbar ist) hat den Vorteil, dass es nebenwirkungsfrei ist, da nicht irgendwelche externen Zustände dazwischen funken. Das erkauft man sich aber damit, dass manche Aufgaben komplexer umzusetzen sind und v.a. dass alle normalen Programmierer anders denken.

Übrigens: eine Graph basierte Programmiersprache, wie die TWS Logiken, ist dem funktionalen Programmieren schon sehr nahe.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

jhaeberle
Reactions:
Beiträge: 208
Registriert: Do Aug 24, 2023 11:07 am
Wohnort: Raum Augsburg
Hat sich bedankt: 86 Mal
Danksagung erhalten: 40 Mal

#10

Beitrag von jhaeberle »

Chris M. hat geschrieben: So Jun 01, 2025 9:26 pm Übrigens: eine Graph basierte Programmiersprache, wie die TWS Logiken, ist dem funktionalen Programmieren schon sehr nahe.
Das ist richtig, allerdings ist eine Schwäche der TWS Logiken, dass man sie nicht durch Unit-Tests abdecken/absichern kann. Das erhöht halt die Gefahr, gerade für unbedarfte Nutzer. Was willst du als Anfänger denn machen, als den Code aus dem Forum erst mal in eine Logik zu pasten und ihn dann auszuprobieren?
TWS 3500XL, ID: 1409 (VPN offen, Reboot nach Rücksprache)
Antworten

Zurück zu „Erfolgsgeschichten“