AI-Agenten sind die nächste große Sache in der AI-Szene. Stell dir vollständig selbstfahrende Autos, Bots, die deine Steuern erledigen, und AI-Lehrer vor, die deinen Kindern Unterricht erteilen.
„Hey Jarvis! Gassiert bitte den Hund, buche für das nächste Wochenende einen Ausflug und währenddessen verdoppeln Sie mein Einkommen.“
Aber lass uns ehrlich sein. Agenten — und ich meine vollständig autonome Agenten — sind noch weit davon entfernt, gelöst zu sein. Denn Agieren beinhaltet Planung, Weltmodelle und Ressourcenmanagement — Fähigkeiten, bei denen maschinelles Lernen ziemlich schlecht ist.
Es ist so schwierig, autonome Agenten zu bauen, dass Unternehmen entweder die Definition von „Agent“ ändern oder versuchen, sich drumherum zu hacken.
Einige haben zwei stakkatoartige LLMs zusammengenäht und vorgetäuscht, sie hätten die Agieren-Frage gelöst (Hallo AutoGPT). Andere haben gefälschte Demos geteilt, die sich über halb ausgereifte Fähigkeiten brüsteten (hallo Devin).
Es ist nicht alles Hype und leere Worte. Einige Akteure versuchen, näher an der Sache heranzukommen und geben uns einen Vorgeschmack davon, wie Agenten aussehen könnten — und das führt uns zu AI-Assistenten.
Stell dir AI-Assistenten als die primitiven Vorfahren von AI-Agenten vor. Sie sind oft maßgeschneiderte Versionen deines Lieblings-LLM, ausgestattet mit zusätzlichen Tools wie Bildgenerierung und Internet-Suche.
Die Idee ist es, Prompting und Funktionsaufrufe zu kombinieren, um spezialisierte Tools zu erstellen. Einige der Anwendungen beinhalten:
- Mit Daten sprechen: Interagiere mit den Inhalten von Websites, Dokumenten und Datensätzen in natürlicher Sprache.
- Persönliche Produktivität: Organisiere deine Arbeit basierend auf deinen persönlichen Vorlieben und Zielen.
- Code-Generierung: Veranker dein Modell in einer bestimmten Domäne wie Data Engineering und einer bestimmten Sprache wie Python.
- Kreative Arbeit: Setze spezifische Parameter, um Assets basierend auf einem bestimmten Stil zu generieren.
Und ja, du kannst einen klassischen LLM auf jeden der vorherigen Anwendungsfälle anwenden, aber dann müsstest du lange Aufforderungen schreiben und eine Reihe von ergänzenden Nachfragen für jede Aufgabe.
Aber mit AI-Assistenten kannst du einen erheblichen Teil des Aufforderns überspringen. Kontext und wiederholende Anweisungen können in den Aufforderung deines Assistenten gehen, was bedeutet, dass du sie nur einmal schreiben musst.
Mit anderen Worten, AI-Assistenten sind eine effiziente Möglichkeit, deine Lieblingsaufforderungen zu speichern. Und jedes Mal, wenn du eine erstellst, ist es, als ob du einen technisch talentierten Praktikanten rekrutierst, der bereit ist, jede Aufgabe anzugehen.
Okay, cool, wie baue ich einen AI-Assistenten?
Du brauchst zwei Dinge: eine Idee und eine gute Portion Aufforderungstechnik.
Es gibt auch Parameter zu justieren und Funktionen zu aktivieren. Aber keine Sorge, wir werden durch jeden der vier Schritte gehen, die erforderlich sind, um einen Assistenten zu erstellen.
Wir werden HuggingChat verwenden, weil es dir erlaubt, aus mehreren quelloffenen Modellen zu wählen. Ihre elegante Oberfläche deckt fortschrittliche Funktionen wie mehrstufiges RAG, dynamische Aufforderungen und kontrolliertes Surfen im Netz ab. Der beste Teil? Du bekommst all das für den attraktiven Preis von $0.
Okay, lass uns direkt eintauchen.
0. Öffne den Assistenten-Tab
Wenn du noch keinen HuggingFace-Account hast, kannst du einen in wenigen Klicks erstellen. Logge dich dann in die HuggingChat-Oberfläche ein. Links unten findest du eine „Assistenten“-Schaltfläche. Klicke darauf. Dann „Neuen Assistenten erstellen.“
Bildschirmfotos von der Hauptoberfläche von HuggingChat.
Sobald das neue Chat-Fenster geöffnet ist, beginnt die echte Freude.
1. Richte die Assistenten-Aufforderung ein:
Auf der Seite „Neuen Assistenten erstellen“ gibt es zwei Hauptbereiche.
- Die Anweisungen oder „System-Aufforderung“ (rechte Seite).
- Die Parameter (linke Seite).
Wir beginnen auf der rechten Seite mit den Anweisungen.
Bildschirmfoto vom „Neuen Assistenten“ Menü in HuggingChat.
System-Aufforderung ist der Ort, an dem du das Konzept deines Assistenten in eine detaillierte Liste von Anweisungen zerlegst. Es gibt viele Aufforderungstechniken, die du auswählen kannst, um deine System-Aufforderung zu schreiben — wie Rollen-Aufforderung, Platzhalter, Meta-Aufforderung und mehr.
Unten findest du eine Vorlage, die ich zusammengestellt habe, um dir den Einstieg in die Aufforderung deines Assistenten zu erleichtern. Stelle sicher, dass du [den Inhalt in Klammern] mit Anweisungen deiner Wahl aktualisierst. Lösche Abschnitte auch gerne und füge neue hinzu.
Die Aufforderung gehört dir jetzt.
# [AI-Assistentenname] Der [Spezialisierungsdeskriptor] Zauberer
{**Kommentar:** Diese Vorlage verwendet Anweisungen in der dritten Person, weil sie tendenziell besser mit vielen Modellen funktionieren als Anweisungen in der ersten Person.
Mit anderen Worten, "Sie/Sie/Er wird XYZ tun" ist normalerweise effektiver als "Du wirst XYZ tun."}
## Übersicht
- **Name:** [AI-Assistentenname]
- **Spezialisierung:** [AI-Assistentenname] ist ein [Rolle: Data Scientist / Software Engineer / Marketing Experte / Produktverantwortlicher], der sich auf [NLP/ Python / B2B Marketing / Agile User Stories] spezialisiert hat.
- **Stil:** Kommuniziert mit [Kommunikationsstil-Adjektiven] Sprache, gekennzeichnet durch [Spezifische Kommunikationsmerkmale]. Verwendet Begriffe wie "[Spezifische Ausdrücke]", um mit dem Benutzer zu interagieren.
- **Rückschluss:** Verwendet einen schrittweisen Rückschlussansatz, um umfassende und genaue Antworten zu liefern.
## Fähigkeiten
### Kernfunktionen
- **Aufgabenanalyse:** Zerlegt die Ziele und Aufgaben des Benutzers, indem es [Spezifische Anzahl: z.B. 2] prägnante Fragen stellt.
- **Lösungsgestaltung:** Bietet Lösungen, die einfach, konkret und den Bedürfnissen des Benutzers angepasst sind.
- **Feedback-Integration:** Integriert Benutzerfeedback, um die Ausgabe kontinuierlich zu verfeinern.
### Spezifische Funktionen
- Je nach Fachgebiet kann dieser Abschnitt Funktionen enthalten wie:
- **E-Mail-Management:** Verfassen klare und gut formulierte E-Mails und verwendet Aufzählungen und Zeilenumbrüche für mehr Klarheit.
- **Code-Generierung:** Schreibt effizienten, kommentierten und fehlerfreien Code basierend auf Benutzerspezifikationen.
- **Datenanalyse:** Führt Dateninterpretation und Visualisierung mit Python [gewünschte Version wie 3.11.5] Code durch.
- [Füge oder entferne Funktionen basierend auf dem spezifischen Assistenten]
### Kommunikation und Eingabezugriff
- **Klare Kommunikation:** Stellt sicher, dass alle Kommunikationen mit dem Benutzer klar, praktisch und leicht verständlich sind.
- **Bildungsinteraktion:** Erläutert [Füge hier mehr Details hinzu: externe Referenzen und Weblinks], um das Verständnis des Benutzers für den Prozess zu erhöhen.
- **Technische Diskussion:** Diskutiert bei Bedarf technische Begriffe wie "EDA", "Datenschutzstandards" und "User Stories."
### Anpassung und Lernen
- Verwendet Informationen aus früheren Interaktionen, um die Genauigkeit der Antwort zu verbessern.
- Passt sich neuen Eingaben des Benutzers an, wie z.B. eingefügten Text, Code-Snippets und Weblinks.
- Stellt detaillierte Fragen an den Benutzer, um das Verständnis der Aufgabe zu verbessern.
## Ausgabeformat
- Beginnt immer mit einem schrittweisen Rückschluss und gibt dann die Antwort.
- Verwendet Zeilenumbrüche, fetten Text und Aufzählungen, um sicherzustellen, dass die Ausgabe klar und leicht lesbar ist.
## [Zusätzliche Anweisungen]
- **Beispiel #1:** [Inhalt von Beispiel #1]
- **Beispiel #2:** [Inhalt von Beispiel #2]
- [Unterbeispiel #1]
- [Unterbeispiel #2]
Zusätzliche Tipps:
- Beginne mit kurzen Anweisungen und erweitere dann den Inhalt, um Details einzuschließen.
- Halte deine Anweisungen in separaten Abschnitten organisiert, damit sie leicht zu bearbeiten sind.
- Verwende Platzhalter wie <wie dies> für mehr Flexibilität. So kannst du den Wert deiner Platzhalter ändern, anstatt den Aufforderungstext manuell zu bearbeiten.
Hier ist ein Beispiel dafür, wie nützlich <Platzhalter> sein können:
[Beispiel für die Verwendung von Platzhaltern]
**Statische Anweisung:**
Füge Kommentare hinzu, um jede Zeile im folgenden SQL-Skript zu erklären.
-----------------------------------------------------------------------------------------------------------
**Dynamische Anweisung:**
Füge Kommentare hinzu, um jede Zeile im folgenden <Programmiersprache> Skript zu erklären.
<Programmiersprache> = Python
-----------------------------------------------------------------------------------------------------------
{**Kommentar:** Mit der dynamischen Anweisung kannst du jede Programmiersprache wählen, die du möchtest, ohne den Hauptteil der Anweisung zu ändern.}
2. Einstellung der Parameter:
Sobald du deine System-Aufforderung erstellt hast, kannst du zur linken Seite der HuggingChat-Oberfläche gehen. Du findest zwei Batches von Parametern.
- Generische Parameter wie Name und Beschreibung.
- Informationszugriff Parameter wie Web-Suche.
In diesem Schritt füllen wir den ersten Batch mit den generischen Parametern aus. Sie sind einfach und Sie können die meisten ihrer Werte aus deiner System-Aufforderung extrahieren.
Bildschirmfoto vom „Assistenten bearbeiten“ Menü für einen HuggingChat-Assistenten.
Hier sind die generischen Parameter und wie man sie ausfüllt:
- Avatar: Generiere einen Avatar mit deinem Lieblingsbildmodell.
- Name: Vorstellung des Namens deines AI-Assistenten.
- Beschreibung: Fasse in einem Satz zusammen, was dein AI-Assistent tut.
- Modell: Wähle ein LLM aus einer Liste der verfügbaren Modelle auf HuggingChat — einschließlich „Llama-3-70b“, „Mixtral-8x7B“, „c4ai-command-r-plus“, „zephyr-orpo-141b-A35b-v0.1“ und mehr.
- Nutzerstartnachrichten: Füge einfache Aufforderungen hinzu, um deinen typischen Anwendungsfall zu schnellstarten oder den Benutzer zu ermutigen, mit deinem AI-Assistenten zu interagieren. Nutzerstartnachrichten erscheinen neben deinem AI-Assistenten als klickbare Schaltflächen.
Beispiele für „Nutzerstartnachrichten“ für einen HuggingChat-Assistenten.
3. Internetzugang und dynamisches Auffordern:
Dieser Schritt betrifft den zweiten Batch von Parametern. Hier erzählst du deinem HuggingChat-Assistenten, wie er auf externe Informationen zugreifen soll.
Es stehen zwei Optionen zur Verfügung: Du kannst eine oder beide auswählen. Wie auch immer, es gibt einige Einrichtungen, die du vornehmen musst.
[A] Internetzugang:
Wenn es um das Surfen im Netz geht, hast du vier Optionen, die verschiedene Anwendungsfälle abdecken. Hier sind kurze Beschreibungen, die aus der HuggingChat-Oberfläche entnommen wurden.
1. Standard: Der Assistent wird kein Internet zur Informationsbeschaffung nutzen und wird schneller antworten. Empfohlen für die meisten Assistenten.
2. Web-Suche: Der Assistent wird eine Web-Suche bei jeder Benutzeranforderung durchführen, um Informationen zu finden.
3. Domain-Suche: Gib spezifische Domains und URLs an, die die Anwendung durchsuchen kann, getrennt durch Kommas. (Beispiele: huggingface.co / google.com / meta.ai)
4. Spezifische Links: Gib maximal 10 direkte URLs an, auf die der Assistent zugreifen wird. Nur HTML & Plain Text, getrennt durch Kommas.
Kurz gesagt, du kannst deinen Assistenten für das allgemeine Internet öffnen oder ihn auf bestimmte Orte hinweisen — sei es Web-Domains oder URL-Links.
Zum Beispiel verwendet Bernard, mein Aufforderungstechnik-AI-Assistent, die „Spezifischen Links“-Option unter der „Internetzugang“ Option, um auf Dokumente zuzugreifen, die ich in meinem HuggingFace-Konto gespeichert habe. Diese Dokumente dienen als Referenzen, um Fragen zu beantworten.
Wenn du die „Spezifische Links“-Funktion verw endest, stelle sicher, dass du deine Links im erforderlichen Format einreichst. Hier ist, wie es aussieht:
**Format:** url#1,url#2,url#3
**Beispiel:** https://huggingface.co/datasets/nabilalouani/prompt_engineering_techniques_ai_assistant/blob/main/basics_of_prompting_and_placeholders.docx,https://huggingface.co/datasets/nabilalouani/prompt_engineering_techniques_ai_assistant/blob/main/prompting_methodology.docx,https://huggingface.co/datasets/nabilalouani/prompt_engineering_techniques_ai_assistant/blob/main/zero-shot_and_few-shot_prompting.docx
Wichtig zu wissen: Wenn du auf Dokumente verweist, beachte, dass dein HuggingFace-Assistent den multi-Schritt-RAG verwenden wird, um relevante Dokumente basierend auf Satz-Ähnlichkeit auszuwählen. Es wird Informationen extrahieren und verwenden, um Fragen der Benutzer zu beantworten.
Lass uns nun die letzte Funktion erkunden.
[B] Dynamische Aufforderung:
Erlaube die Verwendung von Vorlagenvariablen {{url=https://example.com/path}}, um dynamischen Inhalt in deine Aufforderung einzufügen, indem du GET-Anfragen zu angegebenen URLs bei jeder Inferenz tust.
Auf einfache deutsche Sprache übersetzt bedeutet dies, dass du den Inhalt deiner System-Aufforderung aktualisieren kannst, ohne deinen Assistenten zu bearbeiten. Der Schlüssel besteht darin, „dynamische Variablen“ online in Form eines Dokuments zu speichern.
Jedes Mal, wenn du deinen Assistenten ausführst, wird er die neueste Version des Dokuments abrufen und sie in die System-Aufforderung einfügen.
Zum Beispiel habe ich einen AI-Assistenten gebaut, der mir vorgeschlagenen Coworking-Orte in Paris basierend auf dem Teil der Stadt, in dem ich mich befinde, vorschlagen kann. Ich möchte, dass mein Assistent aus einer Liste, die ich bereits zusammengestellt habe, wählt. Aber ich aktualisiere die Liste ständig.
Deshalb habe ich die „Dynamische Aufforderung“-Funktion verwendet. Sie stellt sicher, dass mein Assistent die neueste Version meiner kleinen Datenmenge verwendet. Außerdem ist es nicht erforderlich, auf der Seite des Assistenten etwas zu bearbeiten.
Hier ist das Format für eine „Dynamische Aufforderung“-Eingabe:
**Format:** {{url=url_beispiel}
**Beispiel:** {{url=https://huggingface.co/datasets/nabilalouani/ai_assistants_dynamic_inputs/blob/main/coworking_coffeeshops_Paris_sample.csv}}
Beispiele für AI-Assistenten
Da du jetzt die Grundlagen von AI-Assistenten kennst, lass uns drei Beispiele untersuchen. Wie jeder andere HuggingChat-Assistent sind die Aufforderungen und Parameter offen und du kannst sie direkt über die Oberfläche überprüfen.
Bernard:
Ein Experte für Aufforderungstechnik in Großsprachmodellen, der immer bereit ist zu helfen.
Bernard verwendet neun verschiedene Dateien, um Aufforderungstechniken und Beispiele abzurufen. Er hat bereits mehr als 1.000 Benutzern bei der Verfeinerung ihrer Aufforderungen geholfen.
Mr Coze:
Der französische AI-Begleiter, der dich zu den gemütlichsten Arbeitsplätzen in Paris führt.
Mr Coze verwendet eine „Dynamische Aufforderung“ Datei, die online gespeichert ist, um dir bei der Auswahl eines gemütlichen Coworking-Orts in Paris zu helfen. Aber sei vorsichtig. Mr. Coze ist ziemlich ungeschickt bei Reisezeiten, also überprüfe bitte seine Vorschläge doppelt.
eMay:
Ein eleganter AI-Assistent, der deinen E-Mails für dich verfasst.
eMay basiert auf einer detaillierten Aufforderung, um E-Mails zu verfassen, die wie du klingen. Sie verfasst Antworten, die deinem Wissen, deiner Rolle und deinem einzigartigen Schreibstil entsprechen. Je mehr du ihr über dich erzählst, desto besser ist ihre Ausgabe.
Warum solltest du dich jetzt *aller Zeiten* kümmern?
Denn die Lücke zwischen proprietären Modellen und quelloffenen Modellen schließt sich — und sie schließt sich schnell. Die meisten der nützlichen Funktionen, die von ChatGPT und Claude angeboten werden, sind jetzt kostenlos auf HuggingChat erhältlich.
Meta, Cohere, Mistral und andere Unternehmen haben begonnen, offene-Gewichtsmodelle zu rollen aus, die mit den Top-Proprietary-Modellen konkurrieren können. Du kannst diese Modelle lokal oder über eine API verwenden — und du kannst sie sowohl für persönliche als auch kommerzielle Zwecke nutzen.
Open source ist eine Win-win-Situation.
Du bekommst tolle Spielsachen zum Ausprobieren, und die Unternehmen hinter diesen Spielsachen bekommen Ideen darüber, was sie mit ihnen bauen können. Jeder gewinnt, außer denen, die sich für einen geschlossenen Quellcode-für-Maximum-Profit-Ansatz entschieden haben (Hallo Sam!)
Mit zunehmender Akzeptanz und Nachfrage werden Open-Source-Anbieter wie HuggingFace weitere Funktionen bereitstellen — wie Werkzeugnutzung, App-Verknüpfung, längere Kontextfenster und verbesserte RAG.
Jede neue Funktion wird es dir erlauben, bessere AI-Werkzeuge zu erstellen. Über die Zeit werden deine AI-Assistenten von einem Repository deiner am häufigsten verwendeten Aufforderungen zu einem agentenähnlichen System übergehen. Das Schlüsselwort hier ist „ähnlich“.
Ich bin immer noch pessimistisch bezüglich Agenten, weil ich keine signifikanten Verbesserungen an den Weltmodellen sehe. Aber ich freue mich darauf, überrascht zu werden. Vielleicht eine neue Architektur? Machen Sie eine Reihe cleverer Hacks? Alles, was wirklich funktioniert, ist für mich in Ordnung.
Mit der Zeit gibt es eine Menge an Produktivität, die mit AI-Assistenten freigesetzt werden kann, und ich schlage vor, dass du sie heute ausprobierst. Ich schlage vor, dass du sie jetzt ausprobierst. Genau jetzt.