Budowanie Agentów AI z LangChain: Poradnik dla Deweloperów Enterprise
Przestań pisać hardcodowane prompty. Dowiedz się, jak zaimplementować pętle ReAct, Pamięć Wektorową i Narzędzia, aby tworzyć autonomicznych agentów.
Większość aplikacji „AI” dzisiaj to tylko ulepszone chatboty. Piszesz, one odpisują. Ale Agent może robić rzeczy. Może przeglądać sieć, odpytywać bazę SQL i wysyłać wiadomości na Slacku.
Wzorzec ReAct (Rozumowanie + Działanie)
Sercem każdego agenta LangChain jest pętla ReAct. Pozwala ona LLM na wstrzymanie generowania, użycie narzędzia, a następnie kontynuowanie na podstawie wyniku.
- Myśl: „Użytkownik chce cenę akcji Apple. Nie znam jej.”
- Działanie: „Użyję [Narzędzia Wyszukiwania], aby znaleźć 'cena akcji AAPL’.”
- Obserwacja: „Narzędzie zwróciło: $185.40.”
- Ostateczna Odpowiedź: „Akcje Apple są obecnie notowane po $185.40.”
Pamięć Wektorowa (RAG)
Agenci mają krótką uwagę (Okno Kontekstowe). Aby dać im pamięć długoterminową, używamy Baz Wektorowych (jak Pinecone lub Qdrant).
Gdy użytkownik zadaje pytanie, nie wysyłamy całej bazy do GPT-4. Zamieniamy zapytanie na wektor, znajdujemy 3 najbardziej podobne dokumenty i konstruujemy prompt.
Przykład Kodu: Prosty Agent SQL
Oto jak implementujemy agenta, który może odpytywać Twoją bazę Postgres używając języka naturalnego:
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain.llms import OpenAI
db = SQLDatabase.from_uri("postgresql://user:pass@localhost:5432/crm")
toolkit = SQLDatabaseToolkit(db=db, llm=OpenAI(temperature=0))
agent_executor = create_sql_agent(
llm=OpenAI(temperature=0),
toolkit=toolkit,
verbose=True
)
agent_executor.run("How many customers signed up last week?")
Agent automatycznie wygeneruje SQL: SELECT COUNT(*) FROM users WHERE created_at > NOW() - INTERVAL '1 week', wykona go i wyjaśni wynik.
Ostrzeżenie Bezpieczeństwa
Nigdy nie dawaj Agentowi dostępu do zapisu (INSERT/DELETE) na bazie produkcyjnej bez weryfikacji „Human in the Loop”. LLM mogą halucynować niszczycielskie komendy.
