# LangGraph em Python: organize um fluxo com estado

Página canônica: https://scraft.com.br/langgraph-python

Por Scraft. Nível: Intermediário. Atualizado em 7 de setembro de 2026.

Um fluxo pode ter várias etapas, decisões e informações compartilhadas. LangGraph representa essas etapas como nós conectados em um grafo. Para começar, separe o mecanismo de orquestração da chamada a um modelo: um exemplo determinístico ajuda a entender o estado sem depender de uma API de IA.

## Antes de começar

Conheça funções, dicionários e tipos. Use Python 3.10 ou superior em um ambiente virtual com langgraph. O exemplo não usa chave nem serviço de IA.

### O que você vai praticar

- Representar os dados de um fluxo com TypedDict e StateGraph.
- Conectar um nó entre START e END, compilar o grafo e invocá-lo.
- Distinguir a orquestração do fluxo de uma chamada a um modelo de IA.

## Estado, nós e transições

O estado descreve os dados que percorrem o fluxo. Um nó recebe esse estado, executa uma operação e devolve uma atualização. Uma aresta determina qual etapa vem depois. START e END indicam os limites do fluxo; decisões mais complexas podem escolher o próximo nó por meio de condições.

TypedDict ajuda a expressar a estrutura esperada para ferramentas de tipagem, mas não valida dados externos automaticamente em tempo de execução. Valide entradas na fronteira da aplicação. O exemplo abaixo aceita um nome e acrescenta uma mensagem ao estado.

## Execute um grafo sem modelo de IA

Em um ambiente virtual local, instale langgraph com python -m pip install langgraph. Salve o exemplo em um arquivo Python e execute-o. Não há chave de modelo nem chamada externa neste grafo: a função de saudação é Python comum.

Depois de registrar o nó e as arestas, compile cria o objeto executável. invoke recebe o estado inicial e retorna o resultado do fluxo. Essa estrutura é pequena de propósito: primeiro confirme o caminho feliz, depois acrescente outra etapa e teste o que muda no estado.

```python
from typing import TypedDict
from langgraph.graph import StateGraph, START, END

class Estado(TypedDict):
    nome: str
    mensagem: str

def saudar(estado: Estado):
    return {"mensagem": f"Olá, {estado['nome']}!"}

construtor = StateGraph(Estado)
construtor.add_node("saudar", saudar)
construtor.add_edge(START, "saudar")
construtor.add_edge("saudar", END)
grafo = construtor.compile()
resultado = grafo.invoke({"nome": "Ana", "mensagem": ""})
print(resultado["mensagem"])
```

Resultado esperado:

```text
Olá, Ana!
```

## Quando acrescentar IA, persistência e decisões

Use uma nova etapa quando houver uma responsabilidade clara, como classificar uma entrada ou conferir um resultado. Quando vários nós atualizam uma coleção, defina como combinar as atualizações; nem sempre substituir o valor anterior é o comportamento desejado.

Antes de integrar um modelo, defina quais dados podem sair da aplicação, o limite de execução e o comportamento após falha. Persistência e retomada precisam ser configuradas para o caso de uso. Teste o fluxo com respostas determinísticas antes de avaliar a variabilidade de uma IA.

Para chegar a esse ponto com base, pratique funções, dicionários, tipos e testes. A Scraft apresenta Python como porta de entrada para programação e conecta esses fundamentos à construção de aplicações mais amplas.

## Sua vez de praticar

Acrescente um nó antes de saudar que remova espaços no início e no fim do nome. Conecte START à normalização, depois à saudação e finalmente a END.

### Confira estes casos

- Nome " Ana ": mensagem "Olá, Ana!".
- Nome "Bia": mensagem "Olá, Bia!".
- A normalização devolve uma atualização do nome no estado.

Dica: Use strip no nó de normalização e altere as arestas para que a saudação receba o nome já tratado.

## Continue pela documentação oficial

- [LangGraph: documentação oficial](https://docs.langchain.com/oss/python/langgraph/overview)
- [LangGraph: exemplo com Graph API](https://docs.langchain.com/oss/python/langgraph/quickstart)

## Seu próximo passo

- [Aprender Python: um caminho da lógica às APIs](https://scraft.com.br/aprender-python)
- [Aprender FastAPI: crie sua primeira API Python](https://scraft.com.br/aprender-fastapi)
- [Async e await em Python: entenda a concorrência](https://scraft.com.br/async-await-python)

[Ver todos os guias](https://scraft.com.br/aprender-programacao)
