MODULO 4.2

🦜 LangChain e LangGraph

Domine o framework mais popular para orquestracao de LLMs: chains, agents, tools, memory e grafos de estado com LangGraph.

6
Topicos
35
Minutos
Avancado
Nivel
Pratico
Tipo
1

🦜 Introducao ao LangChain

LangChain e o framework open-source mais popular para construir aplicacoes com LLMs. Fornece abstraccoes para conectar modelos a dados, memoria e ferramentas.

🧱 Componentes Principais

  • Models: Wrappers para LLMs (OpenAI, Anthropic, etc)
  • Prompts: Templates e formatacao de prompts
  • Chains: Sequencias de operacoes
  • Agents: LLMs que decidem acoes
  • Memory: Persistencia de contexto

Exemplo Basico

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

# Modelo
model = ChatOpenAI(model="gpt-4")

# Prompt template
prompt = ChatPromptTemplate.from_messages([
    ("system", "Voce e um assistente util."),
    ("user", "{input}")
])

# Chain simples
chain = prompt | model
response = chain.invoke({"input": "O que e LangChain?"})
2

🔗 Chains e LCEL

LCEL (LangChain Expression Language) e a sintaxe declarativa para compor operacoes. Usa o operador pipe (|) para criar pipelines.

Chain com LCEL

from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough

# Chain completa
chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | model
    | StrOutputParser()
)

# Streaming
for chunk in chain.stream("Qual e o capital da Franca?"):
    print(chunk, end="")

✓ Vantagens LCEL

  • • Streaming first-class
  • • Async nativo
  • • Batch processing
  • • Facil de debugar

Runnables Uteis

  • • RunnablePassthrough
  • • RunnableParallel
  • • RunnableLambda
  • • RunnableBranch
3

🛠️ Agents e Tools

Agents sao LLMs que decidem quais ferramentas usar. Usam tool calling para executar acoes no mundo real.

Definindo Tools

from langchain_core.tools import tool

@tool
def search_web(query: str) -> str:
    """Busca informacoes na web."""
    # Implementacao
    return results

@tool
def calculate(expression: str) -> float:
    """Calcula expressoes matematicas."""
    return eval(expression)

tools = [search_web, calculate]

# Bind tools ao modelo
model_with_tools = model.bind_tools(tools)

Agent Executor

from langgraph.prebuilt import create_react_agent

# Criar agente ReAct
agent = create_react_agent(model, tools)

# Executar
result = agent.invoke({
    "messages": [("user", "Quanto e 15% de 230?")]
})
4

🧠 Memory e State

Memory permite que agentes mantenham contexto entre interacoes. Essencial para conversas longas e tarefas iterativas.

Tipos de Memory

  • Buffer: Historico completo de mensagens
  • Window: Ultimas N mensagens
  • Summary: Resumo comprimido
  • Vector: Busca semantica no historico

Checkpointing

LangGraph usa checkpointers para persistir estado entre execucoes. Permite retomar conversas e implementar human-in-the-loop.

5

📊 LangGraph para Fluxos

LangGraph modela agentes como grafos de estado. Permite loops, condicoes e controle fino sobre o fluxo de execucao.

StateGraph Basico

from langgraph.graph import StateGraph, END

# Definir estado
class State(TypedDict):
    messages: list
    next_step: str

# Criar grafo
graph = StateGraph(State)

# Adicionar nodes
graph.add_node("agent", agent_node)
graph.add_node("tools", tool_node)

# Adicionar edges
graph.add_edge("agent", "tools")
graph.add_conditional_edges("tools", should_continue)

# Compilar
app = graph.compile()

💡 Quando usar LangGraph

Use LangGraph quando precisar de: loops condicionais, human-in-the-loop, estados persistentes, fluxos complexos com branches, ou agentes que precisam "pensar" em etapas.

6

🔌 Integracao com Skills

Skills podem invocar pipelines LangChain atraves de scripts. Isso combina a clareza de instrucoes das skills com o poder de orquestracao do LangChain.

Skill que usa LangChain

---
name: document-qa
description: Responde perguntas sobre documentos.
  Use quando usuario perguntar sobre PDFs ou docs.
allowed-tools: Bash(python:*)
---

# Document QA Skill

Para responder perguntas sobre documentos:

```bash
python scripts/doc_qa.py --question "$QUESTION" --doc "$DOC_PATH"
```

O script usa LangChain RAG com ChromaDB local.

🎯 Proximo Passo

No proximo modulo, exploramos AutoGPT e Agentes Autonomos - sistemas que executam tarefas complexas de forma iterativa com minima supervisao humana.

📚 Resumo do Modulo

LangChain - Framework dominante para orquestracao de LLMs
LCEL - Sintaxe declarativa com pipe operator
Agents - LLMs que decidem quais tools usar
Memory - Persistencia de contexto entre interacoes
LangGraph - Grafos de estado para fluxos complexos
Integracao - Skills que invocam pipelines LangChain

Proximo Modulo:

4.3 - AutoGPT e Agentes Autonomos