MODULO 3.2

πŸ—οΈ Workflows Deterministicos com Archon

Alem do loop puro: como usar Archon para criar workflows controlados passo a passo, com mix de modelos, durabilidade via Postgres e separacao real entre sessoes de coding agent.

6
Topicos
40
Minutos
Avancado
Nivel
Hands-on
Tipo
GitHub Issue Input Extract deterministic regex/API Classify LLM (cheap) Haiku / Kimi Implement LLM (strong) Claude Code Validate tests + lint deterministic Pull Request output Pipeline Deterministico Archon humano define os steps, agente executa dentro de cada um controle humano: voce define a sequencia, o agente so executa dentro de cada step
1

🎯 O Que E Archon e Por Que Existe

Archon e o "harness builder" criado por Cole Medin. Ele permite construir workflows que orquestram multiplas sessoes de coding agent para tarefas maiores. A diferenca fundamental para o loop puro: voce define o processo, nao o agente. No loop puro, o agente decide como progredir. No Archon, voce determina os steps e o agente executa dentro de cada um.

🧱 Loop Puro vs Workflow Deterministico

Loop Puro (/loop)

  • Agente decide os proximos passos
  • Uma sessao para tudo
  • Um modelo para tudo
  • Context bloat inevitavel
  • Sem observabilidade nativa

Workflow Archon

  • Humano define a sequencia de steps
  • Sessao separada por step
  • Modelo diferente por step
  • Contexto fresco a cada step
  • Logs e dashboard integrados

Cole Medin explica a motivacao direta: "Archon is my harness builder, allows us to build workflows that orchestrate many coding agent sessions to handle larger tasks." A ideia e que um workflow como "fix GitHub issue" nao precisa de um agente decidindo como resolver. O processo e conhecido: extrair contexto, classificar, pesquisar, implementar, validar, criar PR.

2

πŸ”§ Anatomia do Workflow "Fix GitHub Issue"

O workflow mais classico do Archon e o "Fix GitHub Issue". Cole Medin usa isso no dia a dia: "Most of the input for my day-to-day work is issues in a repo. Either I'll create them or someone else will." O workflow segue uma sequencia fixa de steps, cada um com um papel especifico.

πŸ“‹ Steps do Workflow

Step 1: Extract Issue Number

Deterministico. Extrai o numero da issue via regex ou API do GitHub. Sem LLM.

Tipo: deterministic | Modelo: nenhum

Step 2: Fetch Issue Context

Deterministico. Busca titulo, descricao, labels, comments da issue via GitHub API.

Tipo: deterministic | Modelo: nenhum

Step 3: Classify

LLM decide: e um bug ou uma feature? O resto do workflow muda conforme essa decisao.

Tipo: LLM | Modelo: Haiku / Kimi K2.7 (barato)

Step 4: Research & Investigate

Explora o codebase, identifica arquivos relevantes, entende o contexto do problema.

Tipo: LLM | Modelo: Kimi K2.7 (exploracao)

Step 5: Implement

Escreve o codigo real. Aqui sim precisa de um modelo forte.

Tipo: LLM | Modelo: Claude Code (forte)

Step 6: Validate

Roda testes, linting, verifica se a issue foi resolvida. Pode ser deterministico ou LLM para review.

Tipo: mixed | Modelo: Codex para review

Step 7: Create PR

Cria a pull request com descricao baseada no contexto acumulado dos steps anteriores.

Tipo: deterministic + LLM | Modelo: Claude

O ponto chave: "We're not having the agent drive the entire thing. It's more deterministic because we set up the process in this workflow file." Voce define os steps, o Archon garante que eles executam na ordem certa, e cada step roda numa sessao isolada com o modelo ideal para aquela tarefa.

3

🧩 A Filosofia: Tirar Decisao do Agente

O principio fundamental do Archon e contra-intuitivo: quanto menos o agente decide, melhor o resultado. Cole Medin deixa isso explicito: "We want to actually take the decision away from the coding agent as much as we can, only applying the reasoning of the LLM when we actually need it to write the code."

Onde Usar LLM vs Onde Nao Usar

Precisa de LLM

  • *Classificar tipo de issue (bug vs feature)
  • *Pesquisar codebase e entender contexto
  • *Escrever codigo de implementacao
  • *Code review semantico

Nao Precisa de LLM

  • *Extrair numero da issue (regex)
  • *Buscar dados da issue (API call)
  • *Rodar testes (npm test)
  • *Criar PR (gh pr create)

πŸ’» Exemplo: Step Deterministico em TypeScript

// Step deterministico: nao precisa de LLM
async function extractIssueNumber(input: string): Promise<number> {
  const match = input.match(/issues\/(\d+)/);
  if (!match) throw new Error("Invalid issue URL");
  return parseInt(match[1], 10);
}

// Step deterministico: API call pura
async function fetchIssueContext(owner: string, repo: string, num: number) {
  const res = await fetch(
    `https://api.github.com/repos/${owner}/${repo}/issues/${num}`,
    { headers: { Authorization: `token ${process.env.GITHUB_TOKEN}` } }
  );
  return res.json();
}

// Step LLM: aqui sim o agente precisa raciocinar
async function classifyIssue(context: IssueContext): Promise<"bug" | "feature"> {
  // Roda num modelo barato (Haiku, Kimi K2.7)
  const response = await llm.complete({
    model: "haiku",
    prompt: `Classify this GitHub issue as "bug" or "feature":\n${context.title}\n${context.body}`
  });
  return response.trim() as "bug" | "feature";
}

πŸ€” Ponto de Reflexao

Essa filosofia e o que Cole Medin chama de "layering on top of loop engineering". Voce nao abandona loops completamente. Voce pega as partes boas (automacao, ciclos) e adiciona uma camada de controle humano. O resultado: menos token waste, mais previsibilidade, mais facil de debuggar.

4

πŸ”€ Mix de Modelos: O Modelo Certo para Cada Step

Um dos maiores problemas do loop puro com /loop ou /routines: "You're just using one model for pretty much everything. That's part of the problem of why it's so expensive." No Archon, cada node do workflow pode usar um modelo diferente, otimizando custo sem perder qualidade.

πŸŽ›οΈ Mapa de Modelos por Step

Step Modelo Sugerido Justificativa Custo Relativo
Extract / Fetch Nenhum (API) Deterministico, sem raciocinio $0
Classify Haiku / Kimi K2.7 Decisao simples, nao precisa de modelo caro $
Research Kimi K2.7 Exploracao de codebase, context loading $$
Implement Claude Code Escrita de codigo real, precisa qualidade $$$
Validate Testes + Codex Testes sao deterministicos, review e LLM $$

Cole Medin demonstra na pratica: "We can use Cloud Code for the implementation. And then we can use Codex for the review. And then for all of our context loading and exploration up front, we can use a smaller model like Kimi K 2.7." Isso e model routing aplicado a workflows de agentes.

πŸ’‘ Dica Pratica

A regra geral: use modelos baratos para decisoes, modelos fortes para criacao. Classificar uma issue como bug vs feature nao precisa de Opus. Escrever o fix precisa. A diferenca de custo pode ser 10x ou mais por step.

5

πŸ’Ύ Durabilidade: State em Postgres/Neon

Uma das maiores fraquezas do loop basico: se o terminal fecha, voce perde tudo. Archon resolve isso guardando todo o estado num banco externo. "All of the loops that we run and the different events and logs, I'm storing this here so we can always resume a workflow later on."

πŸ’» Schema Simplificado: Durabilidade com Neon

-- Cada run tem um ID e estado persistente
CREATE TABLE workflow_runs (
  id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  workflow_id TEXT NOT NULL,
  status      TEXT DEFAULT 'running', -- running | paused | completed | failed
  input       JSONB NOT NULL,
  state       JSONB DEFAULT '{}',
  created_at  TIMESTAMPTZ DEFAULT now(),
  updated_at  TIMESTAMPTZ DEFAULT now()
);

-- Cada step registra sua execucao
CREATE TABLE step_executions (
  id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  run_id      UUID REFERENCES workflow_runs(id),
  step_name   TEXT NOT NULL,
  status      TEXT DEFAULT 'pending', -- pending | running | completed | failed
  input       JSONB,
  output      JSONB,
  model_used  TEXT,
  tokens_used INTEGER DEFAULT 0,
  started_at  TIMESTAMPTZ,
  finished_at TIMESTAMPTZ
);

-- Logs de conversacao para replay
CREATE TABLE conversation_logs (
  id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  run_id      UUID REFERENCES workflow_runs(id),
  step_name   TEXT NOT NULL,
  role        TEXT NOT NULL, -- system | user | assistant
  content     TEXT NOT NULL,
  created_at  TIMESTAMPTZ DEFAULT now()
);

Cole Medin enfatiza: "I have all my conversations, the code bases that I'm operating on with Archon, everything is durable and it's super easy to resume any work that I'm doing." Com o estado num banco Postgres (Neon), voce pode: retomar workflows apos crash, ver o historico completo de cada run, e auditar decisoes do agente.

πŸ€” Ponto de Reflexao

Durabilidade nao e um "nice to have" para loops serios. E um requisito. Se voce esta rodando um loop de 2 horas e a maquina reinicia no minuto 90, sem state externo voce perdeu tudo. Com Neon/Postgres, voce retoma do step exato onde parou. O custo de setup (uma hora de config) se paga na primeira falha que voce NAO perde.

6

❓ Questionamentos: Archon vs Loop Puro

Archon resolve muitos problemas do loop puro, mas introduz sua propria complexidade. Vale a pena ser honesto sobre os trade-offs.

Questoes Abertas

Quando o workflow deterministico limita demais?

Se voce define todos os steps rigidamente, perde a capacidade do agente de improvisar. Para tarefas exploratΓ³rias (provas de conceito, ideacao), o loop puro pode ser mais adequado porque o agente precisa de liberdade para descobrir caminhos inesperados.

O overhead de engenharia compensa?

Configurar Archon, definir workflows, manter Postgres: e engenharia real. Para uma tarefa unica, provavelmente nao compensa. Para tarefas repetitivas (processar issues todo dia), compensa muito rapido. Cole Medin usa Archon diariamente para issues.

Harness engineering vs loop engineering?

Cole Medin propoe: "I would just fold loop engineering into harness engineering. It doesn't quite deserve its own buzzword." A visao e que loops sao uma ferramenta dentro de um harness maior, nao um paradigma separado. O harness define o processo, os loops executam partes dele.

🎯 Resumo da Escolha

  • *Loop puro: ideal para exploraΓ§Γ£o, PoCs, tarefas simples e unicas
  • *Archon/Workflow: ideal para tarefas repetitivas, multi-step, com custo controlado
  • *Hibrido: workflow deterministico com loops internos nos steps que precisam de iteracao

πŸ“ Resumo do Modulo

βœ“
Archon - harness builder que orquestra multiplas sessoes de coding agent em workflows deterministicos
βœ“
Steps deterministicos - humano define o processo, agente executa dentro de cada step com contexto fresco
βœ“
Mix de modelos - modelo barato para classificacao, modelo forte para implementacao, zero LLM para steps deterministicos
βœ“
Durabilidade - state em Postgres/Neon permite retomar workflows apos crash sem perder progresso
βœ“
Harness > Loop - loops sao uma ferramenta dentro de um harness maior, nao um paradigma isolado

Proximo Modulo:

3.3 - Dashboard de Controle (Agent Control Plane): como observar decisoes do orchestrator em tempo real e adicionar human-in-the-loop