Aufbau eines Conversational-AI-Agenten mit Langzeitgedächtnis mithilfe von LangChain und Milvus
Large Language Models (LLMs) haben das Spiel in der künstlichen Intelligenz (KI) verändert. Diese fortschrittlichen Modelle können menschenähnlichen Text mühelos verstehen und mit beeindruckender Genauigkeit generieren, wodurch KI-Assistenten und Chatbots viel intelligenter und nützlicher werden. Dank LLMs verfügen wir heute über KI-Tools, die komplexe Sprachaufgaben bewältigen können, vom Beantworten von Fragen bis zum Übersetzen von Sprachen.
Konversationelle Agenten sind Softwareprogramme, die mit Benutzern in natürlicher Sprache chatten, genau wie bei einem Gespräch mit einer echten Person. Sie treiben Dinge wie Chatbots und virtuelle Assistenten an und helfen uns bei alltäglichen Aufgaben, indem sie unsere Fragen und Befehle verstehen und darauf reagieren.
LangChain ist ein Open-Source-Framework, das den Aufbau solcher konversationellen Agenten erleichtert. Es bietet praktische Tools und Vorlagen, um intelligente, kontextbewusste Chatbots und andere KI-Anwendungen schnell und effizient zu erstellen.
Einführung in LangChain Agents
LangChain Agents sind fortschrittliche Systeme, die ein LLM verwenden, um mit verschiedenen Tools und Datenquellen zu interagieren und komplexe Aufgaben zu erledigen. Diese Agenten können Benutzereingaben verstehen, Entscheidungen treffen und Antworten erstellen, wobei sie das LLM nutzen, um flexiblere und anpassungsfähigere Entscheidungsfindung als traditionelle Methoden zu bieten.
Ein großer Vorteil von LangChain Agents ist ihre Fähigkeit, externe Tools und Datenquellen zu nutzen. Das bedeutet, dass sie Informationen sammeln, Berechnungen durchführen und Aktionen ausführen können, die über die reine Sprachverarbeitung hinausgehen, wodurch sie für verschiedene Anwendungen leistungsfähiger und effektiver werden
LangChain Agents vs. Chains
Chains und Agents sind die beiden wichtigsten Tools, die in LangChain verwendet werden. Chains ermöglichen es Ihnen, eine vordefinierte Abfolge der Tool-Nutzung zu erstellen, was für Aufgaben nützlich ist, die eine bestimmte Reihenfolge der Ausführung erfordern.
So funktionieren LangChain Chains
Andererseits ermöglichen Agents dem Large Language Model, Tools in einer Schleife zu verwenden, sodass es entscheiden kann, wie oft Tools verwendet werden. Diese Flexibilität ist ideal für Aufgaben, die iterative Verarbeitung oder dynamische Entscheidungsfindung erfordern.
So funktionieren LangChain Agents
Einen konversationellen Agenten mit LangChain erstellen
Lassen Sie uns einen konversationellen Agenten mit LangChain in Python erstellen.
Abhängigkeiten installieren
Um einen LangChain Agent zu erstellen, müssen wir die folgenden Abhängigkeiten installieren:
LangChain: LangChain ist ein Open-Source-Framework, das Entwicklern hilft, Anwendungen mit Large Language Models (LLMs) zu erstellen.
Langchain OpenAI: Dieses Paket enthält die LangChain-Integrationen für OpenAI über deren
openaiSDK.OpenAI API SDK: Die OpenAI-Python-Bibliothek bietet bequemen Zugriff auf die OpenAI REST API von jeder Python-3.7+-Anwendung aus.
Dotenv: Python-dotenv liest Schlüssel-Wert-Paare aus einer
.env-Datei und kann sie als Umgebungsvariablen festlegen.Milvus: eine Open-Source-Vektordatenbank, die sich am besten für Vektorspeicherung und Ähnlichkeitssuche im Milliardenmaßstab eignet. Sie ist außerdem eine beliebte Infrastrukturkomponente für den Aufbau von Retrieval Augmented Generation (RAG)-Anwendungen.
Pymilvus: Das Python SDK für Milvus. Es integriert viele beliebte Embedding- und Reranking-Modelle, was den Aufbau von RAG-Anwendungen vereinfacht.
Tiktoken: ein schneller BPE-Tokenizer zur Verwendung mit OpenAI-Modellen.
Sie können sie installieren, indem Sie den folgenden Befehl ausführen:
pip install langchain==0.1.20 langchain-openai openai python-dotenv pymilvus langchain_milvus tiktoken
Bitte beachten Sie, dass wir in diesem Beispiel speziell LangChain Version 0.1.20 verwenden werden.
Nachdem wir alle Abhängigkeiten installiert haben, schreiben wir den Code, um einen einfachen Konversationsagenten einzurichten.
Umgebungsvariablen laden
Zuerst laden wir Umgebungsvariablen mit dem Paket dotenv. Dieses Paket hilft dabei, sensible Informationen wie API-Schlüssel zu sichern.
from dotenv import load_dotenv
load_dotenv()
Stellen Sie sicher, dass Sie eine .env-Datei in Ihrem Projektverzeichnis haben, die Ihren OpenAI-API-Schlüssel enthält.
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
OpenAI-LLM initialisieren
Als Nächstes initialisieren wir das OpenAI-LLM mit dem Paket langchain_openai.
from langchain_openai import OpenAI
llm = OpenAI()
Eine Conversation Chain erstellen
Wir verwenden die Klasse ConversationChain aus langchain.chains, um einen Konversationsagenten zu erstellen. Diese Chain wird den Dialog mit dem Benutzer verwalten.
from langchain.chains import ConversationChain
conversation = ConversationChain(
llm=llm,
)
Vorhersagen treffen
Schließlich können wir Vorhersagen treffen, indem wir Benutzereingaben an die Conversation Chain übergeben. In diesem Beispiel stellen wir dem Agenten eine einfache Frage.
answer = conversation.predict(input="What's my name?")
print(answer)
Das vollständige Codebeispiel
Wenn wir alle Schritte kombinieren, ist hier der vollständige Code.
from dotenv import load_dotenv
from langchain_openai import OpenAI
from langchain.chains import ConversationChain
load_dotenv()
llm = OpenAI()
conversation = ConversationChain(
llm=llm,
)
answer = conversation.predict(input="What's my name?")
print(answer)
Den Code ausführen
Um den Code auszuführen, stellen Sie sicher, dass Sie Ihre .env-Datei mit Ihrem OpenAI-API-Schlüssel eingerichtet haben. Führen Sie dann Ihr Python-Skript aus. Sie sollten eine Ausgabe sehen, in der der Agent auf die Frage antwortet und die Konversationsfähigkeiten des LangChain-Frameworks demonstriert.
Nachdem Sie das Python-Skript ausgeführt haben, sollten Sie eine Antwort in etwa wie diese erhalten:
> Ich habe keinen Zugriff auf Ihre persönlichen Informationen, daher kann ich diese Frage nicht genau beantworten. Könnten Sie mir bitte Ihren Namen nennen, damit ich Sie angemessen ansprechen kann?
Glückwunsch! Sie haben erfolgreich einen grundlegenden Konversationsagenten mit LangChain erstellt. Dieses Beispiel ist nur der Anfang. Mit LangChain können Sie komplexere und leistungsfähigere KI-Agenten erstellen, die auf Ihre Bedürfnisse zugeschnitten sind.
Die Bedeutung von Memory in Konversationsagenten
Als wir unseren Agenten jedoch fragten: "What's my name?", konnte er nicht korrekt antworten, weil er keine Erinnerung an frühere Interaktionen hatte. Dieser Mangel an Memory begrenzt den Nutzen von Konversationsagenten, da sie wichtige Informationen über den Benutzer oder den Kontext der Konversation nicht behalten können. Durch die Integration von Memory kann unser Agent wichtige Details aus vergangenen Interaktionen behalten, wodurch die Antworten genauer und personalisierter werden.
Einen Konversationsagenten mit Langzeitgedächtnis mithilfe von LangChain und Milvus erstellen
Milvus ist eine leistungsstarke Open-Source-Vektordatenbank, die dafür entwickelt wurde, Vektoren im Milliardenmaßstab effizient zu speichern und abzurufen. Sie wird häufig für GenAI-Anwendungsfälle wie semantische Suche und Retrieval Augmented Generation (RAG) verwendet. Sie ist außerdem eine wichtige Infrastrukturkomponente, um LLMs Langzeitgedächtnisse hinzuzufügen.
Milvus Lite ist eine leichtgewichtige Version von Milvus, die auf Ihren lokalen Geräten ausgeführt werden kann. In diesem Beispiel verwenden wir Milvus Lite als Vector Store, um meine privaten Daten zu speichern und abzurufen.
Verbessern wir nun unseren Konversationsagenten mit Langzeitgedächtnis mithilfe von LangChain und Milvus Lite.
Anforderungen installieren
Installieren Sie zuerst die erforderlichen Pakete, falls Sie sie noch nicht haben.
pip install langchain==0.1.20 langchain-openai python-dotenv openai pymilvus tiktoken
Schreiben wir nun den Code Schritt für Schritt.
Umgebungsvariablen laden
Laden Sie die Umgebungsvariablen mit dem Paket dotenv. Dieser Schritt hilft dabei, sensible Informationen wie API-Schlüssel zu schützen.
from dotenv import load_dotenv
load_dotenv()
Stellen Sie sicher, dass Sie eine .env-Datei in Ihrem Projektverzeichnis haben, die Ihren OpenAI-API-Schlüssel enthält.
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
OpenAI LLM und Embeddings initialisieren
Initialisieren Sie das OpenAI LLM und die Embeddings mit dem Paket langchain_openai.
from langchain_openai import OpenAI, OpenAIEmbeddings
llm = OpenAI()
embeddings = OpenAIEmbeddings()
Milvus als Vektorspeicher einrichten
Richten Sie eine Milvus-Vektordatenbank ein, um Ihre Daten zu speichern und abzurufen.
from langchain_milvus.vectorstores import Milvus
vectordb = Milvus(
embeddings,
connection_args={"uri": "./milvus_demo.db"},
# The easiest way is to use Milvus Lite where everything is stored in a local file.
# If you have a Milvus server you can use the server URI such as "http://localhost:19530".
)
retriever = vectordb.as_retriever( search_kwargs=dict(k=1))
Speicher für den Agenten erstellen
Richten Sie den Speicher mit dem Vektor-Retriever ein.
from langchain.memory import VectorStoreRetrieverMemory
memory = VectorStoreRetrieverMemory(retriever=retriever)
Anfangskontext speichern
Fügen Sie dem Speicher einige anfängliche Informationen hinzu.
about_me = [
{"input": "My name is Bob.", "output": "Got it!"},
{"input": "I'm from San Francisco.", "output": "Got it!"},
]
for example in about_me:
memory.save_context({"input": example["input"]}, {"output": example["output"]})
Prompt-Vorlage definieren
Erstellen Sie eine Prompt-Vorlage, die den Speicher einschließt.
from langchain.prompts import PromptTemplate
prompt_template = """The following is a friendly conversation between a user and a chatbot. The chatbot is talkative and provides lots of specific details from its context. If the chatbot does not know the answer to a question, it truthfully says it does not know.
Relevant pieces of previous conversation:
{history}
(You do not need to use these pieces of information if not relevant)
Current conversation:
User: {input}
Chatbot:"""
prompt = PromptTemplate(input_variables=["history", "input"], template=prompt_template)
Eine Conversation Chain mit Speicher erstellen
Richten Sie die Conversation Chain so ein, dass sie den Prompt und den Speicher verwendet.
from langchain.chains import ConversationChain
conversation_with_memory = ConversationChain(
llm=llm, prompt=prompt, memory=memory, verbose=True
)
Vorhersagen erstellen
Stellen Sie dem Agenten abschließend eine Frage, um zu sehen, wie er seinen Speicher nutzt.
Das vollständige Codebeispiel
Wenn alle Schritte kombiniert werden, ergibt sich der vollständige Code.
from dotenv import load_dotenv
from langchain_openai import OpenAIEmbeddings
from langchain_openai import OpenAI
from langchain.memory import VectorStoreRetrieverMemory
from langchain.chains import ConversationChain
from langchain.prompts import PromptTemplate
from langchain_milvus.vectorstores import Milvus
load_dotenv()
llm = OpenAI()
embeddings = OpenAIEmbeddings()
vectordb = Milvus(
embeddings,
connection_args={"uri": "./milvus_demo.db"},
)
retriever = vectordb.as_retriever(search_kwargs=dict(k=1))
memory = VectorStoreRetrieverMemory(retriever=retriever)
about_me = [
{"input": "My name is Bob.", "output": "Got it!"},
{"input": "I'm from San Francisco.", "output": "Got it!"},
]
for example in about_me:
memory.save_context({"input": example["input"]}, {"output": example["output"]})
prompt_template = """The following is a friendly conversation between a user and a chatbot. The chatbot is talkative and provides lots of specific details from its context. If the chatbot does not know the answer to a question, it truthfully says it does not know.
Relevant pieces of previous conversation:
{history}
(You do not need to use these pieces of information if not relevant)
Current conversation:
User: {input}
Chatbot:"""
prompt = PromptTemplate(input_variables=["history", "input"], template=prompt_template)
conversation_with_memory = ConversationChain(
llm=llm, prompt=prompt, memory=memory, verbose=True
)
answer = conversation_with_memory.predict(input="What's my name?")
print(answer)
Ausführen des Codes
Richten Sie Ihre .env-Datei mit Ihrem OpenAI-API-Schlüssel ein, um den Code auszuführen. Führen Sie dann Ihr Python-Skript aus. Sie sollten eine Ausgabe sehen, in der der Agent auf die Frage antwortet und die erweiterten Fähigkeiten des LangChain-Frameworks mit Speicherintegration demonstriert.
Nach dem Ausführen des Python-Skripts sollten Sie eine Antwort in etwa dieser Art erhalten:
> Ihr Name ist Bob. Wussten Sie, dass der Name Bob eine Verkleinerungsform des Namens Robert ist, der in germanischen Sprachen „heller Ruhm“ bedeutet? Er war im Mittelalter ein beliebter Name und wurde im Laufe der Geschichte von vielen berühmten Menschen getragen. Kennen Sie berühmte Personen namens Bob?
Herzlichen Glückwunsch! Sie haben erfolgreich einen Konversationsagenten mit Langzeitgedächtnis mithilfe von LangChain und Milvus erstellt. Dieses Beispiel zeigt, wie Speicher die Fähigkeit von Agenten, genaue und personalisierte Antworten zu geben, erheblich verbessern kann. Mit LangChain und Milvus können Sie noch fortschrittlichere und leistungsfähigere KI-Agenten erstellen, die auf Ihre Bedürfnisse zugeschnitten sind.
Zusammenfassung
In diesem Artikel haben wir die faszinierende Welt der LangChain-Agenten und ihr Potenzial zur Transformation konversationeller KI erkundet. Wir begannen mit einer grundlegenden Einführung in LangChain und verstanden seine Rolle beim Aufbau fortschrittlicher, kontextbewusster Konversationsagenten. Anschließend untersuchten wir die praktischen Schritte zur Erstellung eines einfachen Agenten mit LangChain und hoben die Einschränkungen von Agenten ohne Speicher hervor.
Um diese Einschränkungen zu beheben, haben wir gezeigt, wie Sie mithilfe von Milvus Lite Langzeitgedächtnis in Ihren Agenten integrieren können, und veranschaulicht, wie diese Erweiterung es dem Agenten ermöglicht, wichtige Informationen zu behalten und genauere, personalisierte Antworten zu liefern.
Ermutigung zum Experimentieren
Da Sie nun ein grundlegendes Verständnis von LangChain und davon haben, wie man Konversationsagenten erstellt, ist es Zeit zu experimentieren! Versuchen Sie, komplexere Agenten zu erstellen, zusätzliche Tools zu integrieren und verschiedene Anwendungsfälle zu erkunden. Die Flexibilität und Leistungsfähigkeit von LangChain machen es zu einem fantastischen Framework, um die Grenzen dessen zu erweitern, was konversationelle KI erreichen kann.
Für einen tieferen Einblick in LangChain und Milvus sehen Sie sich deren offizielle Dokumentation und empfohlene Tutorials an:
Durch das Erkunden dieser Ressourcen gewinnen Sie ein umfassenderes Verständnis und sind besser gerüstet, fortschrittliche, intelligente Konversationsagenten zu erstellen. Viel Spaß beim Programmieren!
Weiterlesen

How to Choose the Best Embedding Model for RAG in 2026: 10 Models Benchmarked
We benchmarked 10 embedding models on cross-modal, cross-lingual, long-document, and dimension compression tasks. See which one fits your RAG pipeline.

Context Engineering Strategies for AI Agents: A Developer’s Guide
Learn practical context engineering strategies for AI agents. Explore frameworks, tools, and techniques to improve reliability, efficiency, and cost.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.



