Das Semantic Web hat mich schon lange fasziniert. Die Idee, das Web in eine verständliche Datenbank umzuwandeln, die der künstlichen Intelligenz zugänglich ist, wurde zur Grundlage meiner weiteren Forschung. Die Idee, ein intelligentes Warnsystem zu schaffen, einen digitalen Wächter, der das Informationschaos des Internets bewacht, war eine Anwendung, die meine Neugier immer wieder weckte. Stellen Sie sich einen Roboter vor, der unaufhörlich den riesigen Ozean des Internets durchforstet und Sie auf das Eintreten eines bestimmten Ereignisses aufmerksam macht, beispielsweise auf die Veröffentlichung eines neuen Buches. Das ist ein Traum, den ich seit Jahren verfolge.
Das Aufkommen autonomer Agenten wie AutoGPT und BabyAGI hat mein Interesse geweckt. Diese Systeme stellten eine vielversprechende neue Richtung für die KI-Technologie dar. Ich beschloss, mit diesen Tools zu experimentieren, mit dem Ziel, meinen Traum von einem intelligenten Alarmsystem zu verwirklichen. Meine Aufregung ließ jedoch schnell nach. Diese Systeme sind zwar fortschrittlich, konzentrieren sich jedoch auf ein Ziel und dessen anschließende Unterteilung in Schritte. Dies ist weit entfernt von dem kontinuierlichen, wachsamen Überwachungssystem, das ich mir vorgestellt habe. Zu meiner großen Enttäuschung stellte ich fest, dass ihre Architektur für eine solche Aufgabe ungeeignet war. Sie können es manchmal zum Laufen bringen, aber nicht zuverlässig.
Die Mängel bestehender Modelle lösten den Funken aus, etwas Neues zu bauen. Ich beschloss, mein eigenes System zu schaffen, ein System ereignisgesteuerter autonomer Agenten. Ich nenne es WhenX.
Das Ziel des Systems besteht darin, Warnungen in der Form „Wenn X passiert, dann mache Y“ zu erstellen. In dieser ersten Version unterstützen wir nur E-Mail-Benachrichtigungen in der Form „Wenn X passiert, senden Sie mir einen E-Mail-Bericht“.
Das System besteht aus vier Agenten: dem Captain, dem Scout, dem Sentinel und dem Soldier.
Der Kapitän ist der Dirigent dieses Orchesters. Bei einer Mission ist es für die Zusammenstellung eines Teams von Agenten verantwortlich – einem Scout, einem Sentinel und einem Soldaten.
Der Scout fungiert als Entdecker, der sich auf die Suche nach relevanten Informationen begibt und auf seiner Reise „Beobachtungen“ erstellt. Diese Beobachtungen sind die wesentlichen Rohstoffe, die das WhenX-System antreiben.
Der Sentinel , der Torwächter, prüft die letzten N Beobachtungen des Scouts. Es handelt sich um eine anspruchsvolle Einheit, die darauf ausgelegt ist, Änderungen, egal wie subtil, in den Beobachtungsdaten zu erkennen. Wenn es etwas Bemerkenswertes erkennt, löst es einen „Alarm“ aus, der den Soldaten zum Handeln auffordert.
Der Soldat , der Testamentsvollstrecker, tritt in Aktion, wenn er Alarme vom Sentinel erhält. Es führt Anweisungen basierend auf den Alarmen aus und erstellt einen „Bericht“, der die erkannte Änderung oder das erkannte Ereignis zusammenfasst.
$ poetry install
$ poetry run alembic upgrade head
Kopieren Sie die Datei .env.example nach .env und geben Sie die Werte ein. Zum Versenden von E-Mails nutzen wir den Resend-Dienst. Sie können ein kostenloses Konto erstellen und es zum Testen verwenden.
Das Ziel des Systems besteht darin, Warnungen in der Form „Wenn X passiert“ und dann „Senden Sie mir einen Bericht“ zu erstellen. In dieser ersten Version unterstützen wir nur E-Mail-Benachrichtigungen.
Zuerst müssen wir eine Mission erstellen. Eine Mission ist eine Beschreibung der Warnung. Zum Beispiel: „Wenn Haruki Murakami ein neues Buch veröffentlicht“.
$ python -m whenx create --mission " when Haruki Murakami releases a new book. "
Das System startet und erstellt jeden Tag eine neue Beobachtung. Die Beobachtung ist eine Momentaufnahme des aktuellen Status Ihrer Abfrage. Das System vergleicht die letzten beiden Beobachtungen und sendet eine E-Mail mit dem Bericht, wenn es eine Änderung erkennt.
$ python -m whenx monitor
Sie können alle Warnungen und deren Status auflisten.
$ python -m whenx list
Sie können eine Warnung anhand ihrer ID löschen.
$ python -m whenx delete --id a5dc910a-4457-4911-8ba3-c7713588e7ff