Einen LangChain AI-Agenten mit Gedächtnis und Tools aufbauen
Kombiniere ein LLM, Gedächtnis und externe Tools, um einen intelligenten LangChain-Agenten zu erstellen, der sich an Konversationen erinnert und Aufgaben mit Tools löst.
Originalvideo ansehen: Ich hab Claude Code Remote getestet - auf einem ServerInstallieren Sie die notwendigen Bibliotheken.
Stellen Sie sicher, dass `langchain`, `openai`, `python-dotenv` und alle für Ihre Tools erforderlichen Bibliotheken installiert sind.
pip install langchain openai python-dotenvInitialisieren Sie das LLM, das Gedächtnis und die Tools.
Verwenden Sie die zuvor gelernten Schritte, um Ihr `ChatOpenAI`-Modell, `ConversationBufferMemory` und Ihre `Tool`-Instanzen (z.B. `google_search_tool`, `custom_hello_tool`) zu initialisieren.
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain.memory import ConversationBufferMemory
from langchain.tools import Tool
from langchain_community.utilities import GoogleSearchAPIWrapper
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
load_dotenv()
llm = ChatOpenAI(model='gpt-3.5-turbo', temperature=0.7)
memory = ConversationBufferMemory(memory_key='chat_history', return_messages=True)
# Beispiel für Google Search Tool (ersetzen Sie mit Ihren tatsächlichen Tools)
search = GoogleSearchAPIWrapper(google_api_key=os.getenv('GOOGLE_API_KEY'), google_cse_id=os.getenv('GOOGLE_CSE_ID'))
google_search_tool = Tool(
name='Google Search',
description='Nützlich, um Fragen zu beantworten, die aktuelles Wissen erfordern.',
func=search.run
)
def say_hello(name: str) -> str:
return f"Hallo {name}!"
custom_hello_tool = Tool(
name='say_hello',
description='Nützlich, um Hallo zu einer Person zu sagen. Die Eingabe sollte der Name der Person sein.',
func=say_hello
)
tools = [google_search_tool, custom_hello_tool]Erstellen Sie den Prompt für den Agenten.
Der Prompt sollte Anweisungen für den Agenten enthalten und Platzhalter für die Chat-Historie und die Agenten-Zwischenschritte.
prompt = ChatPromptTemplate.from_messages([
('system', 'Du bist ein hilfreicher Assistent.'),
MessagesPlaceholder(variable_name='chat_history'),
('user', '{input}'),
MessagesPlaceholder(variable_name='agent_scratchpad')
])Erstellen Sie den Agenten.
Verwenden Sie `create_openai_functions_agent` mit dem LLM, den Tools und dem Prompt.
agent = create_openai_functions_agent(llm, tools, prompt)Erstellen Sie den Agent Executor.
Der `AgentExecutor` ist die Laufzeitumgebung, die den Agenten ausführt. Übergeben Sie den Agenten, die Tools und das Gedächtnis.
agent_executor = AgentExecutor(agent=agent, tools=tools, memory=memory, verbose=True)Interagieren Sie mit dem Agenten.
Rufen Sie den Agenten mit `agent_executor.invoke()` auf und übergeben Sie Ihre Eingabe.
response = agent_executor.invoke({'input': 'Hallo, mein Name ist Bob. Wie ist das Wetter in Berlin?'})
print(response['output'])
response2 = agent_executor.invoke({'input': 'Kannst du mir mehr über die Temperatur dort erzählen?'})
print(response2['output'])
response3 = agent_executor.invoke({'input': 'Sag mir Hallo mit meinem Namen.'})
print(response3['output'])