🧬 Da API REST ao Harness: a evolução da interação com LLMs 2022-2026+ 🤖 Do chat solto ao agente soberano: API, RAG, contexto e harness
A forma como interagimos com Modelos de Linguagem de Grande Escala (LLMs) mudou radicalmente em poucos anos. O que começou como “escrever um bom prompt” virou disciplina de arquitetura de sistemas. A jornada passa por API REST direta + prompt engineering, RAG e context engineering, prompt loops / otimização programática (DSPy), harness engineering e aponta para test-time compute, programação por intenção e sistemas auto-corretivos.
Abaixo está um mapeamento atualizado (com base em posts de pesquisadores, papers e guias de 2025–2026), com exemplos concretos e o que os principais pensadores apontam para o futuro.
A Era da API REST Direta e Prompt Engineering (2022 – meados de 2025)
Paradigma
Você envia uma string (ou mensagens) via HTTP para endpoints como /v1/chat/completions. Técnicas clássicas: zero-shot, few-shot, chain-of-thought, role-playing.
Foco do pesquisador/engenheiro
“Como formular a frase para o modelo entender?” A distribuição de tokens e a ordem das palavras importavam muito. Uma palavra trocada podia quebrar o comportamento.
Gargalo
Fragilidade extrema. Otimização era quase exclusivamente empírica (tentativa e erro humana). Não havia métricas robustas nem loops de melhoria automática. Sistemas de produção sofriam com regressões silenciosas.
Exemplo simples
System: Você é um assistente útil.
User: Explique o que é RAG em 3 frases.
Funcionava bem para chat pontual. Em pipelines de produção (classificação, extração, agentes), falhava com frequência.
RAG e Engenharia de Contexto: o LLM como CPU e o contexto como RAM
Quando as janelas de contexto cresceram (de 4k–8k para 100k–1M+ tokens), a pergunta mudou de “como perguntar” para “o que o modelo vê”.
A virada de chave (junho de 2025)
Tobi Lütke (CEO da Shopify) e Andrej Karpathy popularizaram o termo context engineering. Karpathy escreveu:
“People associate prompts with short task descriptions you’d give an LLM in your day-to-day use. When in every industrial-strength LLM app, context engineering is the delicate art and science of filling the context window with just the right information for the next step.”
"As pessoas associam prompts a descrições breves de tarefas que seriam fornecidas a um LLM no uso cotidiano. No entanto, em qualquer aplicação de LLM de nível industrial, a engenharia de contexto constitui a arte e a ciência — que exigem grande sensibilidade — de preencher a janela de contexto exatamente com as informações adequadas para a etapa seguinte."
A analogia que pegou: o LLM é a CPU; o contexto é a RAM.
O que é Context Engineering
Não é só RAG clássico (buscar documentos e jogar no prompt). É curar todo o conjunto de tokens que o modelo vê em cada chamada:
- Instruções de sistema
- Definições de ferramentas (tools / MCP)
- Documentos recuperados
- Histórico de conversa e estado
- Exemplos few-shot
- Resultados de ferramentas anteriores
- Memória de longo prazo
Anthropic formalizou: “the set of strategies for curating and maintaining the optimal set of tokens (information) during LLM inference”.
"o conjunto de estratégias para selecionar e manter o conjunto ideal de tokens (informações) durante a inferência de LLMs"
Técnicas práticas (taxonomia comum)
- Write – gerar ou estruturar informação
- Select – escolher o que entra
- Compress – resumir / compactar histórico
- Isolate – separar contextos (sub-agentes, sandboxes)
Problema residual
Mesmo com RAG avançado e bancos vetoriais, ainda havia alucinações estruturais porque o ambiente externo (ferramentas, permissões, execução) não era rigidamente controlado. “Lost in the middle” e poluição de contexto continuavam frequentes.
Exemplo
Em vez de um prompt estático, um sistema monta dinamicamente:
[System instructions]
[Tool schemas]
[Relevant docs from vector DB – top-k + re-rank]
[Compressed conversation history]
[Current user goal + constraints]
Harness Engineering, Prompt Loops e Automação (estado atual – 2026)
A comunidade percebeu que a capacidade do modelo isolado não garante confiabilidade em produção. Surgiu a camada seguinte:
Agent = Model + Harness
O harness é tudo o que envolve o modelo: loop de execução, ferramentas, gerenciamento de contexto, sandboxes, guardrails, verificação, observabilidade e orquestração. Em sistemas de agentes modernos, a maior parte do código de produção fica no harness, não na chamada ao LLM.
Componentes típicos de um harness
- Ambiente de execução (sandbox / container isolado)
- Registry de ferramentas (MCP, function calling)
- Gerenciamento de contexto e memória
- Loop (plan → act → observe → verify)
- Guardrails e permissões
- Verificação determinística (linters, testes, schemas)
- Observabilidade e logs
Papers de 2026 (incluindo estudos de código-fonte de Claude Code, Codex CLI, Gemini CLI, OpenHands etc.) tratam harness engineering como disciplina própria. Um insight recorrente: um modelo mais fraco com harness melhor frequentemente supera um modelo mais forte com harness ruim.
Prompt Loops e otimização programática (DSPy e similares)
Em vez de reescrever prompts manualmente (“vibe-based”), define-se:
- Um programa modular (signatures + modules)
- Uma métrica de avaliação (evals)
- Um conjunto de exemplos rotulados
Otimizadores (BootstrapFewShot, MIPROv2, GEPA etc.) rodam loops automáticos: geram candidatos, avaliam, selecionam, reescrevem. O resultado é um pipeline que se auto-melhora com dados reais.
Exemplo mental de loop
- Rode o programa em um conjunto de treino.
- Avalie com métrica (ex.: exact match + LLM-as-judge).
- Mantenha as melhores demonstrações / instruções.
- Compile um novo prompt/programa.
- Repita até convergência ou orçamento.
Comparativo rápido das três camadas
| Dimensão | Prompt Engineering | Context Engineering | Harness Engineering |
|---|---|---|---|
| O que controla | Instrução única | Tudo que entra na janela | Ambiente completo do agente |
| Nível | Mensagem | Sessão / multi-turn | Sistema |
| Era aproximada | 2022–meados 2025 | 2025 | 2026+ |
| Falha típica | Modelo “não entendeu” | Contexto errado/poluído | Ação inválida ou sem verificação |
| Onde está o código | Strings de prompt | Retrieval + assembly | 80–90% do código de produção |
Elas não se excluem: prompt está dentro de context, que está dentro de harness.
O que o futuro reserva (visões de pesquisadores e labs)
1. Computação em tempo de inferência (Test-Time Compute)
Modelos de raciocínio (série o1, DeepSeek-R1 e sucessores) mostram que o ganho de performance não vem só de escalar pré-treinamento. Dar mais “tempo de pensar” na inferência (gerar longos CoTs, explorar árvores, auto-corrigir, amostrar múltiplas vezes) rende melhorias grandes. Pesquisas apontam estratégias compute-optimal (adaptar o orçamento de tokens à dificuldade do problema) e até looping de camadas de transformers congelados.
2. Programação por intenção / Declarative AI
Em vez de escrever prompts textuais complexos, o engenheiro declara objetivos, restrições e métricas. Compiladores de IA (evolução do DSPy e frameworks similares) traduzem isso em grafos de execução otimizados automaticamente. O “código” se torna mais próximo de especificações de alto nível.
3. Gestão de entropia e sistemas auto-corretivos
Agentes geram código, documentação e dados em volume. O sistema acumula desalinhamentos (drift arquitetural, docs obsoletos, inconsistências). Pesquisadores falam em agentes de manutenção de segundo plano que auditam, refatoram contextos e limpam o ecossistema periodicamente. Também surgem self-harness: o próprio agente melhora o harness em que roda (Weakness Mining → Proposal → Validation).
4. Outras tendências emergentes
- Harnesses que se auto-evoluem (papers de 2026 já mostram ganhos de 5–10+ pontos em benchmarks só melhorando o harness).
- Meta-harnesses que orquestram vários harnesses de vendors.
- Maior formalização (taxonomias de 6–7 camadas: Execution, Tooling, Context, Lifecycle, Observability, Verification, Governance).
Conclusão prática
- 2022–2024: o diferencial era o prompt.
- 2025: o diferencial passou a ser o contexto que o modelo vê.
- 2026+: o diferencial é o sistema completo (harness) que controla o que o modelo vê, o que ele pode fazer e como o resultado é verificado.
Para quem está construindo hoje:
- Domine context engineering (curadoria de tokens).
- Invista pesado no harness (ferramentas, sandbox, verificação, loops).
- Trate prompts como parâmetros otimizáveis (DSPy ou equivalentes).
- Prepare-se para test-time compute e automações de segundo nível.
A maior parte do valor migrará cada vez mais para fora do modelo em si e para a infraestrutura que o torna confiável, observável e auto-melhorável. O modelo continua importante — mas o sistema ao redor dele é o que decide se a aplicação funciona em produção.
SDKs e Harnesses para construir agentes (2026)
Instalação rápida (pip / npm)
| Pacote | Comando |
|---|---|
| Claude Agent SDK (npm) | npm i @anthropic-ai/claude-agent-sdk |
| Antigravity | pip install google-antigravity |
| OpenAI Agents (Python) | pip install openai-agents |
| OpenAI Agents (JS) | npm i @openai/agents |
| Deep Agents | pip install deepagents |
| OpenHands SDK | pip install openhands-sdk openhands-tools |
| Pydantic AI | pip install pydantic-ai |
| Pydantic AI Harness | pip install pydantic-ai-harness |
| CrewAI | pip install crewai |
| LangGraph | pip install langgraph |
Meus projetos que se derivam desse pensamento
(Posso está esquecendo de alguns, e tem outros privados, que talvez abra no futuro distante)
https://www.tabnews.com.br/MrJ/a-jornada-do-crom-agente-como-estou-construindo-um-agente-de-ia-autonomo-do-zero
Artigo que conta a origem do crom-agente: por que construir um agente próprio em Go (independência de ferramentas de terceiros), o estudo de Antigravity, Claude Code e Void, e a arquitetura em camadas (daemon, SDK, CLI, app, IDE e cloud).
https://www.tabnews.com.br/MrJ/openheinerss-o-maestro-universal-de-ai-coding-agents-harness-orquestrador-de-clis-e-sdks-oficiais-agy-claude-code-codex-aider-opencode
Pitch do Openheinerss: o “maestro” que unifica CLIs e SDKs de coding agents (Claude Code, Codex, Aider, OpenCode, Antigravity/AGY) sob uma interface única, com MCP, checkpoints, multi-contas e execução offline.
https://github.com/crom-org/opencorp
OpenCorp — sistema operacional de empresas autônomas movidas por agentes. Orquestra workspaces isolados, Secretário Executivo, Kanban, fluxos estilo n8n, reuniões multi-agente e scheduler 24/7, usando harnesses como OpenCode, Claude Code e Antigravity.
https://github.com/crom-org/openheinerss
Repositório oficial do Openheinerss (Go): binário CLI + JSON-RPC (STDIO/WebSocket), adaptadores para claude-code, opencode, codex, agy e aider, hub MCP, missões com worktree/checkpoints e SDKs em TypeScript, Python e PHP.
https://github.com/MrJc01/crom-opencorp
Repositório de desenvolvimento ativo do OpenCorp (fork/manutenção em MrJc01): onde a evolução do “sistema operacional de empresas” continua em ritmo diário, com a mesma visão de workspaces governados e agentes especializadas.
https://github.com/MrJc01/crom-opencorp-claude
Variante/experimento do OpenCorp centrada no harness Claude (Claude Code / Agent SDK), explorando como o ecossistema CROM se comporta quando o motor principal é o stack da Anthropic.
https://github.com/MrJc01/crom-agente
Core do crom-agente: daemon em Go que roda o loop ReAct localmente, gerencia tools no terminal via PTY com sandbox, suporta múltiplos agentes em paralelo (goroutines) e fala com qualquer provedor OpenAI-compatible ou Ollama.
https://github.com/MrJc01/crom-agente-sdk
SDK do crom-agente (TypeScript e Go): camada que abstrai IPC, WebSocket e gRPC com o daemon, para que CLI, app desktop, IDE ou qualquer cliente da comunidade se conecte sem reinventar o protocolo.
https://github.com/MrJc01/crom-agente-app
Aplicação desktop do crom-agente (Tauri + React): interface visual com dark mode e acompanhamento do loop do agente, pensada para quem prefere UI em vez de só terminal.
https://github.com/MrJc01/crom-agente-cli
CLI/TUI do crom-agente (Charmbracelet — bubbletea/lipgloss): interface de terminal rica para enviar tarefas, acompanhar o loop ReAct e interagir com o daemon de forma nativa no shell.