Zum Hauptinhalt Zur Navigation

Open Source: AutoGPT - ein autonomes GPT4-Experiment

151.000 Github-Sterne und eine rasante Entwicklung: AutoGPT will KI -Assistenten allen zugänglich machen.
/ Christophe Leske
17 Kommentare News folgen (öffnet im neuen Fenster)
AutoGPT ist beliebt auf Github. (Bild: Martin Wolf / Golem.de)
AutoGPT ist beliebt auf Github. Bild: Martin Wolf / Golem.de

"Open-Source-KI-Assistenten für alle" , verspricht AutoGPT (öffnet im neuen Fenster) als experimentelles Github-Projekt(öffnet im neuen Fenster) vom Entwickler Toran Bruce Richards. Es zielt darauf ab(öffnet im neuen Fenster) , ChatGPT zur autonomen Bewältigung von benutzerdefinierten Aufgaben zu verwenden. Es hat seit seinem Projektstart Anfang April dieses Jahres enorme Aufmerksamkeit und rasanten Zuspruch von anderen Entwicklern erfahren und über 151.000 Sterne erhalten. Das Projekt kann entweder über Github als Quellcode oder per Dockerimage bezogen werden.

AutoGPT geht bei seiner Arbeit so vor, dass Benutzer eine Arbeitsaufgabe stellen, die autonom in Unteraufgaben gegliedert wird, die wiederum Schritt für Schritt abgearbeitet werden. Dabei können folgende Features genutzt werden (in Überschneidung der Möglichkeiten von ChatGPT):

  • Internet-Zugang für die Suche und Sammlung von Informationen
  • Kurz- und Langzeitgedächtnis bei der Bearbeitung der Zwischenschritte (zur Wahrung des Kontextes)
  • Optionale Nutzung von Chat-GPT 4 für die Generierung der Texte
  • Zugang zu bekannten Websites und Plattformen (mit Einschränkungen)
  • Erzeugung von Dateien und Speicherung von Zusammenfassungen
  • Erweiterbarkeit durch Plug-ins.

Die Entwicklung verläuft recht stürmisch, weswegen dazu geraten wird, den Stable Branch für eigene Experimente zu nutzen. Aktuell ist die Version 0.4.7. Dazu gibt es einen Agent-Benchmark, mit dem die Leistungsfähigkeit selbst entwickelter Agenten geprüft werden kann. Der findet zum Beispiel Anwendung im aktuell stattfindenden Hackathon, der bis zum 26. Oktober 2023 läuft und schon mehrfach verlängert wurde. Der Hackathon bietet Aufgaben in mehreren Kategorien und es gibt Preise im Gesamtwert von 30.000 US-Dollar zu gewinnen.

Technische Struktur

AutoGPT selbst ist wie bereits erwähnt eine Sammlung von Python-Skripten. Diese können in verschiedenen Laufzeitumgebungen ausgeführt werden:

Für diesen Artikel wurde die Variante im Docker-Container gewählt. Dazu wurde Docker Desktop installiert und im weiteren Verlauf die Kommandozeile genutzt. Antworten und Ergebnisse werden in externe Verzeichnisse auf die Festplatte des Hostcomputers geschrieben.

Docker Image

Die Installation des Docker-Images ist einfach. Per

    docker pull significantgravitas/auto-gpt

wird die aktuelle Version des autonomen Agenten heruntergeladen und gebaut. Neben Docker muss noch ein ChatGPT-API-Schlüssel von der Website OpenAI erstellt und in die zentrale Konfigurationsdatei eingetragen werden. Eine Docker-Compose-Datei beschreibt die für Docker zu nutzende Konfiguration:

        version: "3.9"
services:
  auto-gpt:
    image: significantgravitas/auto-gpt
    env_file:
      - .env
    profiles: ["exclude-from-up"]
    volumes:
      - ./auto_gpt_workspace:/app/auto_gpt_workspace
      - ./data:/app/data
      ## allow auto-gpt to write logs to disk
      - ./logs:/app/logs
      ## uncomment following lines if you want to make use of these files
      ## you must have them existing in the same folder as this docker-compose.yml
      #- type: bind
      #  source: ./azure.yaml
      #  target: /app/azure.yaml
      #- type: bind
      #  source: ./ai_settings.yaml
      #  target: /app/ai_settings.yaml

Die Datei beschreibt das Image (significantgravitas/auto-gpt) sowie die zentrale Konfigurationsdatei (env file) und weitere Volumes für die Ausgabe des autonomen Agenten. Gestartet wird das alles per:

    docker compose run --rm auto-gpt

worauf der Prompt des Agenten erscheint ( "I want AutoGPT to:" ).

Nach Formulierung der Aufgabe wird ein Agent erstellt.

Arbeiten mit AutoGPT

Dazu formuliert AutoGPT Ziele zur Erlangung der Aufgabe. So werden zum Beispiel für eine 200-Wörter-Zusammenfassung der aktuellen Homepage von Golem.de folgende Ziele definiert:

    GolemDESummaryGPT has been created with the following details:
Name:  GolemDESummaryGPT
Role:  an autonomous agent that generates German summaries of the Golem.de homepage, providing concise and accurate information about the latest news, articles, and updates in the tech industry.
Goals:
-  Analyze the content of the Golem.de homepage and generate a comprehensive summary in German that captures the key points of each news article or update.
-  Ensure the generated summaries are concise, informative, and accurately represent the content of the original articles.
-  Provide a quick and efficient way for users to stay updated with the latest tech news by delivering timely and relevant summaries of the Golem.de homepage.
-  Continuously improve the quality of the generated summaries by incorporating user feedback and adapting to changes in the Golem.de website structure.
-  Optimize the summarization process to handle large volumes of content efficiently, ensuring that the summaries are generated in a timely manner.
Using memory of type:  JSONFileMemory
Using Browser:  chrome
\ Thinking...

Auto-GPT überlegt den nächsten Schritt, rationalisiert ihn, erstellt einen Plan und äußert eventuelle Kritik daran, bevor es sich entscheidet, was zu tun ist:

    GOLEMDESUMMARYGPT THOUGHTS:  I need to browse the Golem.de homepage to gather the latest tech news and generate a summary.
REASONING: Since I haven't started working on the task yet, the first step is to browse the Golem.de homepage to collect the necessary information.
PLAN:
-  Browse Golem.de homepage
-  Analyze content
-  Generate summary
-  Optimize process
-  Incorporate user feedback
CRITICISM:  I haven't made any progress yet, so I need to start working on the task immediately.
SPEAK:  I'm going to browse the Golem.de homepage to gather the latest tech news.
NEXT ACTION:  COMMAND = browse_website ARGUMENTS = {'url': 'https://www.golem.de/', 'question': 'What are the latest news articles and updates on the Golem.de homepage?'}
  Enter 'y' to authorise command, 'y -N' to run N continuous commands, 'n' to exit program, or enter feedback for GolemDESummaryGPT...
  Asking user via keyboard...
Input:

AutoGPT unterbricht dabei seine Arbeit, um Rückfrage mit dem Benutzer zu halten, denn jeder Prompt könnte Kosten nach sich ziehen - wenn man etwa wie empfohlen ChatGPT4 für seinen Agenten nutzt. Bei Freigabe des Prompts (man kann auch mehrere Freigaben erteilen) arbeitet sich der autonome Agent durch den selbstformulierten Plan, um das gesteckte Ziel zu erreichen. Es folgt das resultierende Kommando, das durch ein entsprechendes Plug-in im Code ausgeführt wird:

    NEXT ACTION:  COMMAND = browse_website ARGUMENTS = {'url': 'https://www.golem.de', 'question': ''}

Diese Vorgehensweise wird bei jedem weiteren Schritt wiederholt, bis alle Unteraufgaben erledigt, und damit die Gesamtaufgabe gelöst ist.

Fazit

AutoGPT ist durchaus faszinierend und entwickelt sich rasant. Der Python-Code, der vor ChatGPT genutzt wird, arbeitet in einer ständigen Schleife von Planen, Kritisieren und Ausführen mit ChatGPT zusammen, um die gesteckte Aufgabe abzuschließen. Interessant wird das Ganze natürlich durch externe Plug-ins wie etwa der Möglichkeit, Websites auszulesen. Der aktuell stattfindende Hackathon versucht, leistungsfähige Agenten zu erstellen, um diese dann weiterzuentwickeln.

Christophe Leske, Jahrgang 1972, ist Programmierer bei der BWI GmbH, Bonn, und beschäftigt sich unter anderem mit kryptografischen Systemen und deren Entwicklung. Er interessiert sich neben seiner Arbeit für viele verschiedene Programmiersprachen und Systeme.


Relevante Themen