Autonome Agenten mit LangChain

🦜🔗

Wer es selbst probieren will braucht ...

  • einen OpenAI Key
    (sorry dafür, is aber so)
     
  • einen SerpAPI-Key
     
  • ein Jupyter-Env 
    • Docker wird mitgeliefert
  • Internet

 

  • Bekommt Ihr alles unter der URL gleich, und ich erzähl was, solange Ihr einrichtet.

Was sind Agenten?

  • fast so alt wie ich, 1977  Hewitt
     
  • führt aus eigener Initiative Aktionen aus und arbeitet unabhängig vom Nutzer
     
  • kommuniziert mit dem Nutzer und anderen Agenten
     
  • passt sich an die Umwelt an und lernt langfristig aus Beobachtungen und Entscheidungen

https://tinyurl.com/codetalks23

Was sind Agenten?

https://tinyurl.com/codetalks23

Sie sind schuld.

https://tinyurl.com/codetalks23

ChatGPT und die
LLM-(R)Evolution

Das geht jetzt intelligent& einfach


 

  • führt aus eigener Initiative Aktionen aus und arbeitet unabhängig vom Nutzer
     
  • kommuniziert mit dem Nutzer und anderen Agenten
     
  • passt sich an die Umwelt an und lernt langfristig aus Beobachtungen und Entscheidungen

https://tinyurl.com/codetalks23

ChatGPT und die
LLM-(R)Evolution

https://arxiv.org/pdf/2309.07864.pdf

Das Problem mit LLMs und Agenten ... 

  • Der LLM-Fuckup: XX token/s
     
  • Chat & Streaming geht in UX gerade so - aber nicht bei Agenten
     
  • Fazit: Agenten sind asynchrone Services 

🦜🔗 LangChain

🦜🔗 LangChain

🦜🔗 LangChain

  • Alternatives
    • AutoChain
    • Semantic Kernel
    • Haystack
    • llama Index
  • Langchain Community
    • Features, Doku, Entwickler
    • viel Forks, viele Comitter
    • Häufige compability breaks
  • Gegenargumente
    • Zu gross, zu schnell, zu viel
  • Wird noch eine Weile populär bleiben.

🦜🔗 Wie tickt LangChain?

Ziele: 

  • be data-aware Daten für LLMs bereitstellen
  • be agentic Agenten als Kernstrategie

 

Dafür wird bereitgestellt: 

  • Komponenten Abstraktionen für typische Aufgaben
  • Off-the-shelf chains (fast) fertige Lösungsstrecken

🦜🔗 Chains

https://python.langchain.com/docs/use_cases/more/agents

https://arxiv.org/pdf/2309.07864.pdf

Default: ReAct Agents

https://blog.research.google/2022/11/react-synergizing-reasoning-and-acting.html

Der agile
Plan-Do-Check-Act-Loop der Agenten.

ReAct

Agents

https://blog.research.google/2022/11/react-synergizing-reasoning-and-acting.html

🦜🔗 ReAct Example

HandsOn 2: ReAct mit LangChain

 

Bitte
2_react.ipynb
aufrufen.

🦜🔗 Tools

Im Beispiel: search und llm-math

 

Viele Tools, wachsend ... 

  • Alle Suchplattformen, Wikipedia, Arxiv, WolframAlpha, DuckDuckGo, ...
  • Libraries: HuggingFace Tools
  • Code ausführen: Shell , Python, Lambda
  • Interaktion: Human

🦜🔗 Stand da gerade Shell? 

 

Kommt Ihr noch klar?

Ich soll allen Ernstes OpenAI auf meinem Rechner was ausführen lassen?
 

Bitte
3_react_with_humantool.ipynb
aufrufen.

 

Wer neugierig ist: unter
https://github.com/mayflower/cloudbot

ist ein kubernetes/aws-bot.

🦜🔗 Long Term Memory

Natürliche Sprache != Strukturierte Daten



! SQL, !NoSQL, !DocumentDB, !GraphDB


Wenn man bloss was hätte, was man mit Sprache abfragen könnte ...

🦜🔗 VectorStores

Superspezialdatenbanken mit 3 Spalten:

  • hochdimensionaler Vektorindex
  • Textblob
  • Metadata

 

Der Vektorindex kommt aus Embeddings.

🦜🔗 Embeddings

  • Texte sind in LLMs in Token 
     
  • Embeddings sind Vektoren, die den "Sinn" von einem Stapel Token abbilden

 

"Liebe Vektordatenbank, gib mir mal alles inhaltlich ähnliches hierzu."

 

 

 

  • Every other "Chat My $stuff" Chatbot
     
  • Dokumentation verwendbar machen
     
  • Callcenter und Supportanfragen automatisch beantworten
     
  • Kundenbriefe und Mails auf Basis vergangener ähnlicher Anfragen beantworten
     
  • Alles Consultingwissen, von SAP bis Legal.

🦜🔗 Nutzen bei Agenten

🦜🔗 Docstore in Agenten verwenden

 

Bitte

4_react_with_docstore.ipynb

aufrufen.

 

🦜🔗 Strukturierte Daten

Hey, schön, dass Du Dich so
über Deinen VectorStore freust.

 

 

Unsere Daten liegen trotzdem in Oracle.

 

🦜🔗 Existierende Datenbanken anbinden

SQLDatabaseToolkit kümmert sich um:

  • Parsen der Schemata
  • Interpretieren der Daten
  • Erzeugen der SQL-Statements

 

Bitte

5_agent_with_sql_toolkit.ipynb

aufrufen.

 

🦜🔗 Plan & Solve

🦜🔗 Plan and execute

Der Waterfall unter den Agenten ...

 

Bitte

6_plan_and_execute.ipynb

aufrufen.

 

🦜🔗 BabyAGI

AGIs, das MakeMoneyFast!!!111elf der AI.

 

Wer hat schon mal AutoGPT, BabyAGI, DevGPT, ... genutzt?

 

GrundIdee: jedes Problem von der AI lösen lassen ohne selbst zu arbeiten.

🦜🔗 BabyAGI

 

Bitte

7_BabyAGI.ipynb

aufrufen.

 

🦜🔗 BabyAGI

Praxiserfahrungen:

 

  • es funktioniert in limitierten Domänen
  • as in: Abteilungen, Arbeitsbereichen
  • es braucht Long Term Memory 
  • es braucht Interaktion
  • DRY in Richtig.

 

🦜🔗 Your PAL for formal stuff

Program Aided Language

 

Wenn eine formelle Sprache ein Problem besser lösen kann sollte sie es tun. 

 

In Langchain:

LLMath, Bash, Python, SQL etc ...

 

🦜🔗 Your PAL for formal stuff

 

Bitte

8_CPAL.ipynb

aufrufen.

 

🦜🔗 CAMEL: Teamwork

🦜🔗 CAMEL: Teamwork

🦜🔗 CAMEL: Teamwork

 

  • Eigentlich als Simulation für Games etc gedacht
     
  • Erstaunlich kluge Ergebnisse
     
  • Kann alle anderen Features in Kooperation integrieren
     
  • Wirr aber wahr: Teamwork funktioniert auch für AI besser.

 

🦜🔗 CAMEL: Teamwork

 

Bitte

9_camel.ipynb

aufrufen.

 

🦜🔗 Integration in Unternehmens-IT

🦜🔗 Integration in Unternehmens-IT

 

Bitte

10_office.ipynb

aufrufen.

 

Q&A

Ausblick

  • Vieles ist noch instabil
  • Wenn man bleeding edge mag cool
  • lokal schnell grosse Benefits realisierbar
  • Infrastruktur drumherum entsteht erst
    • Observability (Langsmith etc)
    • Deployment
    • Automation (SuperAgent)

Autonome Agenten mit LangChain

By Johann-Peter Hartmann

Autonome Agenten mit LangChain

  • 176