Pular para o conteúdo
← Voltar para o Skalablog

Artigo publicado

OpenCode com Ollama: dá para substituir IA paga?

Engenharia de SoftwareCursorGitHub Copilot

OpenCode com Ollama pode substituir parte da sua assinatura de IA, mas não toda ela. O agente open source entende o repositório e roda testes; o modelo local, porém, exige VRAM, contexto configurado e revisão humana. A economia só aparece quando uma tarefa real fecha sem intervenção extra.

O que a auditoria do OpenCode com Ollama realmente testou

A auditoria do OpenCode com Ollama testou uma tarefa completa: entender um repositório, adicionar um export CSV compatível com a RFC 4180 e rodar os testes existentes. O resultado mostra que o gargalo não é gerar texto de código, e sim fechar a mudança com revisão e casos de borda resolvidos.

O experimento usa um pequeno rastreador de despesas que guarda rótulos e valores e já soma o total. A mudança precisa encaixar no código existente e preservar rótulos que contêm vírgula, aspas ou quebra de linha. Esses dados comuns escapam de implementações ingênuas e tornam o teste observável.

Uma ressalva importante acompanha o exercício: o exemplo foi construído e testado durante a pesquisa sem que um modelo local gerasse o código final. Ele demonstra o trabalho que uma substituição precisa concluir, mas não mede a capacidade de um modelo específico de concluí-lo.

Os valores são armazenados como centavos inteiros, então 1.200 significa US$ 12. O export deve preservar essa representação, e o código de base tinha dois testes, ambos passando, antes de qualquer alteração.

Agente e modelo são camadas separadas

O OpenCode é o agente: ele gerencia a conversa e as ferramentas que leem arquivos, alteram código e executam comandos. O Ollama é o servidor de modelo, ou seja, outro programa envia uma requisição e recebe uma resposta. Separar as duas funções permite trocar onde o modelo roda sem reescrever o editor de arquivos.

Essa divisão explica por que baixar um agente não entrega a capacidade de computação por trás de um serviço pago. Também mostra que um cliente open source pode se conectar a um modelo hospedado, então a licença do cliente não informa para onde o seu código está indo.

O próprio repositório do OpenCode carrega licença MIT. Os pesos do modelo têm termos próprios, e o cartão do Qwen3.8-27B lista licença Apache 2.0. É um modelo concreto que você pode inspecionar, não uma garantia de que ele cabe no seu notebook.

O comando documentado de configuração é ollama launch opencode, e o guia também mostra uma conexão manual com um servidor local. O endereço aponta para a sua própria máquina e o nome do modelo diz ao servidor o que usar — os dois precisam bater com o modelo de fato carregado.

O Ollama documenta uma configuração local-only que desativa recursos de nuvem. Ferramentas web do agente são uma escolha à parte. Antes de chamar o fluxo de offline, verifique a rota inteira, não apenas o primeiro salto.

Como preparar o repositório antes de pedir código

Antes de pedir o recurso ao agente, dê a ele um caminho para entender o repositório: comece pelo README, pelo arquivo que guarda as despesas e pelos testes existentes. Pergunte onde a mudança deve entrar e qual comando verifica o resultado.

O OpenCode documenta um modo de planejamento para análise, com edições e comandos de shell sujeitos às suas permissões. Isso cria um ponto de checagem da abordagem antes de qualquer alteração no código.

Salve o resultado dos testes antes da mudança, porque uma falha posterior só é útil se você sabe o que funcionava antes. Em seguida, escreva as condições de aceitação: manter os totais, incluir os nomes das colunas e preservar rótulos problemáticos.

A documentação de regras do OpenCode descreve a prática de colocar orientações do projeto em um arquivo AGENTS.md. Mantenha comandos e convenções ali. Os testes continuam sendo a evidência executável — uma frase pedindo cuidado não mostra se uma vírgula deslocou um valor para a coluna errada.

O que acontece no ciclo de chamada de ferramentas

Você pede o export e fornece os arquivos e as regras relevantes. O agente envia esse contexto, junto com a descrição das ferramentas disponíveis, ao servidor de modelo. O modelo pode responder com um pedido de uso de ferramenta; o agente checa permissões, executa a ação permitida e devolve o resultado à conversa.

O exemplo de chamada de ferramentas do Ollama mostra essa troca de forma explícita: o pedido de leitura de arquivo feito pelo modelo e o conteúdo real do arquivo são mensagens separadas. É essa distinção que transforma uma sugestão em ação com evidência por trás.

A mesma troca pode gerar um patch e depois rodar o comando de teste. Se falhar, a próxima requisição pode incluir a falha, o trecho de código relevante e o requisito violado. O modelo propõe um reparo com base no que aconteceu, mas ainda pode corrigir um caso e quebrar outro.

Confira o código que ficou no disco, principalmente quando a conversa soou mais confiante que o compilador. Verifique também as permissões das ferramentas mesmo com modelo local: inferência local diz onde o pedido é processado, não impede um comando de shell de alterar arquivos ou usar a rede. O OpenCode oferece controles de permitir, perguntar e negar.

O teste de CSV que expõe falhas silenciosas

A primeira implementação junta rótulo e valor com vírgula e depois junta os registros com quebras de linha. Para um rótulo simples, como hosting, isso funciona. Com hosting, EU, a vírgula interna parece outro separador de coluna, e um analisador pode colocar EU onde deveria estar o valor.

A função continua devolvendo uma string, mas o dado mudou de significado. Checar apenas se a função retorna algo não pega esse problema. A execução dos testes expôs três falhas — vírgula, aspas e quebra de linha embutida — enquanto outros quatro testes passaram, incluindo os dois de total.

O reparo coloca entre aspas duplas os campos que contêm esses caracteres especiais e dobra as aspas internas, seguindo as regras de escape do formato CSV. Assim, a vírgula em hosting, EU fica dentro do rótulo, e o separador depois das aspas de fechamento introduz o valor.

Depois do reparo, os sete testes passaram. Uma verificação separada leu o arquivo real com o analisador CSV do PowerShell e recuperou os rótulos e valores originais, incluindo a quebra de linha dentro de um rótulo. Isso exercita um leitor diferente das strings esperadas pelo autor do teste.

Guarde versões, comandos e resultados junto da pesquisa. Essa versão deliberadamente ingênua não prova que o OpenCode errou: ela representa o tipo de requisito que um export de produção precisa declarar, incluindo a ferramenta de importação de destino e o tratamento de valores inválidos. Manter as mesmas condições entre comparações de agentes evita que um assistente que pula casos difíceis pareça mais rápido.

Contexto, compactação e o que sobrevive na sessão

A janela de contexto é o espaço de trabalho que o modelo consegue usar na requisição que recebe. A documentação atual do Ollama recomenda pelo menos 64.000 tokens para ferramentas e agentes de código e alerta que um contexto maior consome mais memória. O padrão documentado para máquinas com menos de 24 GB de memória gráfica é bem menor.

Máximo anunciado pelo modelo, capacidade configurada no servidor e informação efetivamente enviada pelo agente são três coisas diferentes. Trate o contexto como a mesa de trabalho deste export: as regras e o código atual precisam ficar ao alcance, e um log de testes que passaram sem relação com a falha só ocupa espaço.

Preserve a falha de asserção exata e o código a que ela se refere, mantendo o log completo no disco. O OpenCode documenta compactação automática, que usa um resumo menor quando a sessão cresce, e também expõe uma opção separada de poda de saídas antigas de ferramentas. Nenhuma das duas garante que todo detalhe importante sobreviva.

Um resumo útil preservaria a representação em centavos, o requisito de escape, os arquivos alterados e o resultado atual dos testes. O repositório continua com o código e os testes completos, e o agente pode lê-los de novo. Se o resumo esquecer que um rótulo pode conter quebra de linha, o teste deve trazer o requisito de volta.

Custo real: assinatura, hardware e tempo de correção

A página de preços do Cursor lista o Pro a US$ 20 por mês antes de impostos aplicáveis. A documentação do GitHub Copilot lista GitHub Copilot Pro a US$ 10 por mês. Pagando os dois mensalmente, são US$ 30 por mês ou US$ 360 em um ano, nesses preços.

Esse par ilustrativo tem recursos diferentes, então identifique qual trabalho cada plano faz para você antes de chamar os pagamentos de redundantes. Uma requisição de modelo totalmente local não gera fatura de inferência hospedada, mas você ainda fornece máquina, eletricidade e tempo.

Neste experimento a execução local do agente não foi medida, então o consumo de energia e o tempo de conclusão continuam desconhecidos. O tempo de execução do comando de teste não indica quanto um modelo levaria para produzir o reparo. Deixe essas células vazias.

Um orçamento simples adaptável: suponha que você valore seu tempo em US$ 30 por hora e que o fluxo local consuma uma hora extra de intervenção por mês. Isso já equivale ao par de assinaturas ilustrativo antes de eletricidade ou compra de hardware. É aritmética com premissas declaradas, não uma afirmação sobre o seu salário nem uma lentidão medida.

Com hardware que você já tem e pouca intervenção, a conta pode favorecer o uso local. Com uma máquina nova e reparos repetidos, a economia precisa de mais evidência. Meça mudanças concluídas, incluindo revisão, em vez da velocidade com que o texto aparece.

Perguntas frequentes

  • O OpenCode com Ollama substitui o Cursor por completo? Não de forma automática. O OpenCode cobre o papel de agente, com leitura de arquivos, edição e execução de comandos, mas o modelo local ainda depende de hardware e configuração de contexto. Neste experimento, o resultado local não foi medido, então a substituição total segue sem prova.
  • O que preciso checar antes de cancelar uma assinatura de IA? Teste uma mudança real do seu repositório com as mesmas condições de aceitação que você usaria com o serviço pago. Registre configurações do modelo, tentativas falhas e correções manuais. Só compare agentes quando a tarefa e o padrão de revisão forem idênticos.
  • Rodar o modelo localmente garante privacidade do código? Não. Inferência local diz onde a requisição do modelo é processada, mas não impede um comando de shell de alterar arquivos ou acessar a rede. Use permissões de ferramenta, uma cópia descartável do projeto e credenciais fora do diretório de trabalho.
  • Por que os testes de CSV são um bom critério de avaliação? Porque os casos de borda são objetivos: vírgulas, aspas e quebras de linha dentro de rótulos quebram implementações ingênuas de forma silenciosa. Neste experimento, a primeira versão devolveu uma string válida com o dado no lugar errado, e os testes expuseram três falhas.
  • Qual a diferença entre usar modelo local e usar modelo hospedado com agente aberto? No arranjo local, você fornece máquina e eletricidade; no hospedado, o provedor cobra pelo serviço enquanto você escolhe a interface. Os dois casos mudam a conta e a rota do seu código. Verifique a rota inteira antes de descrever o fluxo como offline.

Source video