Autonome Agenten
mit
LangChain
Und Ihr so?
-
ChatGPT-Nutzer? CoPilot?
-
Python-Entwickler?
-
Son büschen, wenigstens?
-
Kennt AutoGPT, AgentVerse, BabyAGI, MetaGPT etc?
-
Schon mit LangChain gearbeitet?
![](https://media1.giphy.com/media/cXblnKXr2BQOaYnTni/giphy.gif)
Und das braucht Ihr dazu:
-
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.
https://tinyurl.com/codetalks23
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
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://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Was sind Agenten?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744546/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
... und sie sind schuld daran.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744475/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Das wusste
OpenAI.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744528/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748571/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Wer sich umorientieren möchte ..
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744535/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
![](https://media2.giphy.com/media/MnN8CPLwABPPSv0u46/giphy.gif)
WTF ...
Agenten gibt es doch schon lange, Sprachmodelle auch.
Warum jetzt auf einmal
so einen Wirbel machen?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748573/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Language Models
Gibt es seit den 80ern.
-
Können:
-
Zusammenfassung
-
Text Generation
-
Lücken füllen
-
Entities erkennen
...
-
-
Das statistisch Wahrscheinliche auf Basis von Model & Input
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10749616/pasted-from-clipboard.png)
Input | Prediction |
---|---|
Hello! | How |
Hello! How | can |
Hello! How can | I |
Hello! How can I | as- |
Hello! How can i as- | -sist |
Hello! How can i assist | you |
Hello! How can i assist you | today |
Hello! How can i assist you today | ? |
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Language Models
Text-Generation: Sag mir statistisch das nächste Wort voraus ...
![](https://media3.giphy.com/media/OJac5MRF6xJpqQAcR5/giphy.gif)
LARGE Language Models
-
Generative Pretrained Transformer
-
Du bist zu arm dafür:
GPT-4 100.000.000 $ -
Europa auch
-
UAE nicht:
Falcon 180B 7.000.000 GPU Hours.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
-
Wenn man nicht das ganze trainieren kann, dann nur den relevanten Teil.
-
Finetuning bzw. PEFT (parameter efficient fine tuning) - nur das trainieren, was man braucht.
-
Mit Lora & co sogar noch kleiner und dazuladbar
-
Wie bei rekursiver Komprimierung wird nicht alles besser mit mehr: Catastrophic forgetting
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Finetuning
Du, die richtige Fortsetzung von
"Zähl mal von 1 bis 12"
ist
"1,2,3,4,5,6,7,8,9,10,11,12"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Wie man aus Text Generation
Instruction Following macht
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744837/pasted-from-clipboard.png)
FLAN-Palm Finetuning
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Und was tuned man so fein?
Größere Modelle, besseres Finetuning
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744920/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
Ende 2022...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744906/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
... und seitdem sind alle hibbelig.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744925/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10566481/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10566485/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10566489/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
- Generate Texts
- Summarization
- Classification
- Question Answering
Planned ...
- Follow Instructions
- Reasoning
- Decision making
- Evaluate Results
Emergent...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744421/pasted-from-clipboard.png)
https://tinyurl.com/codetalks23
-
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
TAFKA-In-Context-Learning:
Prompt Engineering
-
Transformer-Architekturen setzen auf dem Input auf
-
Das kann für neue Informationen genutzt werden
-
Neudeutsch "Prompt Engineering"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748644/pasted-from-clipboard.png)
Few-Shot-Prompting
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745167/pasted-from-clipboard.png)
https://the-prompt-engineer.beehiiv.com/p/3-fewshot-prompting
Chain of Thought Prompting
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745154/pasted-from-clipboard.png)
Warum Agenten jetzt funktionieren
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10744837/pasted-from-clipboard.png)
Warum LLMs doof für Software sind ...
-
Der LLM-Fuckup: XX token/s
-
Chat & Streaming geht in UX gerade so - aber nicht bei Agenten
-
Fazit: Agenten sind asynchrone Services
-
"Autonom". Ja genau.
![](https://media1.giphy.com/media/l2JHVUriDGEtWOx0c/giphy.gif)
🦜🔗 LangChain
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745226/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745265/pasted-from-clipboard.png)
🦜🔗 LangChain
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748103/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748107/pasted-from-clipboard.png)
🦜🔗 LangChain
-
Alternativen
-
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.
🦜🔗 LangChain
🦜🔗 HandsOn
Bei wem läuft denn schon?
Wenn nein: macht nix, geht auch später und kommt auch hier vorne.
Noch mal sorry für die Keys, aber ohne funktionieren Agenten (noch) nicht.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748086/pasted-from-clipboard.png)
🦜🔗 LangChain vs LLM
HandsOn 1: LangChain vs LLM.
Jupyter läuft?
OPENAI_API_KEY steht in .env?
Super!
Bitte
1_langchain_basics.ipynb
aufrufen.
![](https://media1.giphy.com/media/YQitE4YNQNahy/giphy.gif)
🦜🔗 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://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745527/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748093/pasted-from-clipboard.png)
https://python.langchain.com/docs/use_cases/more/agents
🦜🔗 Default: ReAct Agents
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745453/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10745476/pasted-from-clipboard.png)
🦜🔗 ReAct Example
HandsOn 2: ReAct mit LangChain
Bitte
2_react.ipynb
aufrufen.
![](https://media2.giphy.com/media/13HgwGsXF0aiGY/giphy.gif)
🦜🔗 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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10747983/pasted-from-clipboard.png)
🦜🔗 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.
![](https://media2.giphy.com/media/DwIdasRkFKsMg/giphy.gif)
🦜🔗 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 ...
![](https://media4.giphy.com/media/u4KibgMsDLWM0/giphy.gif)
🦜🔗 VectorStores
Superspezialdatenbanken mit 3 Spalten:
-
hochdimensionaler Vektorindex
-
Textblob
-
Metadata
Der Vektorindex kommt aus Embeddings.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10566878/pasted-from-clipboard.png)
🦜🔗 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."
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748719/pasted-from-clipboard.png)
-
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.
🦜🔗 VectorStores einsetzen bei Agenten
🦜🔗 Vectorstores in Agenten verwenden
Bitte
4_react_with_docstore.ipynb
aufrufen.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748973/pasted-from-clipboard.png)
🦜🔗 Strukturierte Daten
Hey, schön, dass Du Dich so
über Deinen VectorStore freust.
Unsere Daten liegen trotzdem in Oracle.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748071/pasted-from-clipboard.png)
🦜🔗 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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748982/pasted-from-clipboard.png)
🦜🔗 Plan & Solve
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748123/pasted-from-clipboard.png)
🦜🔗 Plan and Execute Agent
Der Waterfall unter den Agenten:
Bitte
6_plan_and_execute.ipynb
aufrufen.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10748990/pasted-from-clipboard.png)
🦜🔗 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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10749001/pasted-from-clipboard.png)
🦜🔗 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.
![](https://media3.giphy.com/media/mTPjPA6SSXgTsnZ1Dh/giphy.gif)
🦜🔗 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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1073786/images/10829455/pasted-from-clipboard.png)
Bitte
9_camel.ipynb
aufrufen.
🦜🔗 CAMEL: Teamwork
![](https://media4.giphy.com/media/DhstvI3zZ598Nb1rFf/giphy.gif)
Praxis und Ausblick
-
Vieles ist noch instabil
-
Wenn man bleeding edge mag cool
-
Aber: lokal schnell große Benefits realisierbar
-
Infrastruktur drumherum entsteht erst
-
Observability (Langsmith etc)
-
Deployment
-
Automation (SuperAgent)
-
Q&A
![](https://media4.giphy.com/media/3otPoOxyDTXjzpMbIY/giphy.gif)
Slides: https://slides.com/johann-peterhartmann/autonome-agenten/
Code: https://github.com/mayflower/codetalks23/
Langchain-Buch: http://hub.mayflower.de/langchain-buch
Autonome Agenten
By Johann-Peter Hartmann
Autonome Agenten
- 534