Agentes Locais: Da Conversa à Ação

Um LLM sozinho responde perguntas. Um agente age. Ele decide quais ferramentas usar, em qual ordem, e itera até completar a tarefa. A diferença é a capacidade de executar — não apenas raciocinar.

A anatomia de um agente

[LLM] ← raciocínio
  ↓
[Ferramentas] ← ação
  - busca web
  - execução de código
  - leitura de arquivos
  - chamadas de API
  ↓
[Memória] ← contexto
  - curto prazo (conversa)
  - longo prazo (vector store)

Stack local com LangChain + Ollama

from langchain_ollama import ChatOllama
from langchain.agents import create_react_agent, AgentExecutor
from langchain_community.tools import DuckDuckGoSearchRun

llm = ChatOllama(model="llama3.1", temperature=0)
tools = [DuckDuckGoSearchRun()]

agent = create_react_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

executor.invoke({"input": "Quais são os últimos modelos open-source lançados?"})

Limitações dos modelos menores

Agentes exigem capacidade de seguir instruções complexas e raciocínio de múltiplos passos. Modelos abaixo de 7B tendem a falhar em loops de ferramenta. Para agentes confiáveis, use Llama 3.1 8B no mínimo — ou Mistral Nemo para tarefas mais exigentes.

Casos de uso práticos

  • Análise automática de documentos internos
  • Geração e execução de relatórios
  • Assistente de código com acesso ao repositório
  • Monitoramento e sumarização de feeds