DeepSeek chat ou agente: por que refatorar vários arquivos quebra no copiar e colar?

DeepSeek agente Harness organizando refatoração de código em vários arquivos
Resposta rápida

Se a refatoração toca três, cinco, doze arquivos, o chat começa a escorregar: ele só enxerga o que você colou, não vê o disco nem o resultado do build. É aí que entra o DeepSeek agente, o Harness, lançado em 13/08/2026 como developer preview, open source sob licença MIT. Ele sobe com npx @deepseek-ai/dsh web, abre uma Web UI local em http://127.0.0.1:3080, tem três modos de operação e grava um log de sessão append-only auditável pela visão Trajectory. Chat para arquivo único, agente para tarefa que atravessa o projeto

Fala aí, beleza? Você abre o chat, cola o primeiro arquivo, pede a refatoração, cola de volta

Aí vem o segundo arquivo

O terceiro

No quarto você já não lembra se aplicou a mudança de assinatura naquele helper, o modelo devolve uma função que você renomeou dois arquivos atrás, e a refatoração que ia levar 20 minutos vira uma tarde de git diff procurando o que quebrou

A pergunta "chat ou agente" mudou de lugar desde que a DeepSeek passou a ter os dois lados da mesa ao mesmo tempo

Neste post: onde cada modo alcança de verdade, os cinco sinais de que sua tarefa passou do ponto do copiar e colar, e o veredito honesto por tipo de refatoração

Bora?

O que é o DeepSeek Harness e por que ele existe

O DeepSeek Harness é o agente de código open source da própria DeepSeek, publicado em 13 de agosto de 2026 em developer preview

Ele sai sob licença MIT, com o código aberto no GitHub

A arquitetura é plugin-first

Que plugin-first? Significa que TODA capacidade é uma peça substituível: modelos, ferramentas, skills, sessões, sandboxes, storage, loops, agendamento e até a própria UI

Se você conhece a lógica de pacotes do NPM, a sensação é parecida: o núcleo é fino e o resto você pluga

A distribuição é como pacote npm @deepseek-ai/dsh, e ele sobe com um comando único:

npx @deepseek-ai/dsh web

Esse comando abre a Web UI local do Harness em http://127.0.0.1:3080 por padrão, e dsh web é alias fixo para --profile web

Os perfis web e headless se inicializam sozinhos no primeiro uso

Qualquer outro perfil precisa ser criado na mão, com dsh plugin --profile <nome> add <pacote-ou-git>

Tome cuidado com uma coisa antes de empolgar: ele segue em developer preview hoje, com plugins e APIs centrais ainda em evolução, ou seja, API sujeita a mudança

Isso não é detalhe de rodapé, é o que separa "ferramenta pra usar na sua máquina" de "peça pra confiar sozinha num pipeline"

Chat x agente: a comparação que importa numa refatoração

O ponto não é qual dos dois é mais inteligente

O ponto é ALCANCE: quem carrega o estado da tarefa

O que a tarefa exige Chat (você transporta) Agente (Harness)
Quem carrega o contexto dos arquivos Você, colando manualmente o que achar relevante A ferramenta, com as ferramentas do modo escolhido
Quem aplica a mudança no disco Você, copiando e colando a resposta O agente, via editor de arquivos
Quem roda comando de shell Você, fora da conversa O agente, mesmo no modo Minimal (uma ferramenta de shell e um editor de arquivos)
Escopo de ferramentas Não se aplica: a saída é texto Três modos: Standard (conjunto completo), Code (o modelo gera código pra orquestrar várias rodadas de chamadas via Code Mode SDK em TypeScript) e Minimal
Rastro do que foi feito O histórico da conversa, e só Log de sessão append-only com system prompts, raciocínio, chamadas de ferramenta e resultados, agendamento de subagentes e cada injeção de contexto
Auditar depois Rolar pra cima e torcer Visão Trajectory por origem: resume, fork, busca e replay sobre o mesmo fluxo de eventos
Dividir a tarefa Você abre outra aba Delegação a subagentes com overrides de model, provider, persona e toolFilter por chamada

Repare que a coluna do chat descreve sempre a MESMA coisa: a saída é texto, e o transportador é você

Enquanto a tarefa cabe num arquivo, isso é ótimo, é rápido e é barato

Quando a tarefa vira estado espalhado por doze arquivos, o transportador humano é o gargalo

Esse é o mesmo raciocínio de até onde o agente enxerga seus arquivos que vale pra qualquer ferramenta agêntica: o que está fora do alcance dele, alguém tem que carregar na mão

Cinco sinais de que sua refatoração passou do ponto do copiar e colar

Todos os cinco sinais têm a MESMA raiz, e vou repetir de propósito: o chat não tem estado do repositório nem retorno de execução

Ele não sabe o que está no disco agora, e não sabe se o build passou

1. Você começa a resumir o arquivo em vez de colar ele inteiro

Sintoma: você corta imports, apaga funções "que não têm a ver", cola só o miolo

Causa: a conversa não comporta mais o volume, então você virou o compressor da tarefa

Solução: modo agente, onde a leitura dos arquivos é ferramenta e não upload manual

2. O modelo devolve código com função que não existe mais

Sintoma: ele chama um método com a assinatura antiga, aquela que você mudou dois arquivos atrás

Causa: aquela mudança aconteceu no SEU editor, não na conversa, então pro chat ela nunca aconteceu

Solução: um executor que lê o arquivo atual antes de escrever, em vez de lembrar da versão que você colou meia hora antes

3. Você perde a conta de quais arquivos já aplicou

Sintoma: abre o git status pra descobrir onde parou

Causa: o progresso da tarefa mora na sua cabeça, não em lugar nenhum verificável

Solução: log de sessão append-only, com a visão Trajectory pra inspecionar chamada de ferramenta e resultado por origem

4. A resposta vem com trecho elidido

Sintoma: aquele clássico "mantenha o resto igual" no meio do bloco de código

Causa: o modelo está economizando saída porque a resposta ficou grande demais pro formato conversa

Solução: edição aplicada no arquivo, onde não existe "resto igual", existe diff

5. O mesmo erro reaparece três vezes

Sintoma: você cola o erro, ele corrige, quebra de novo, você cola de novo

Causa: o chat nunca viu o resultado do build, ele viu a sua transcrição do resultado do build

Solução: loop com execução de verdade, e um rastro pra você conferir depois

Esse rastro é o que separa depurar de adivinhar, e vale a mesma disciplina de rastrear falhas quando a tarefa é delegada: sem registro por origem, você só tem o resultado final e nenhuma pista de onde torceu

Como prevenir: defina o corte ANTES de começar, não no meio

Se a refatoração toca mais de três arquivos ou muda alguma assinatura pública, ela já nasce fora do copiar e colar

Decidir isso no arquivo sete, com metade aplicada e metade não, é o pior dos mundos

Quando o chat ainda é a escolha certa

Agora, cuidado com o discurso de que agente ganha sempre, porque não ganha

Pra um monte de coisa o chat é mais rápido, mais direto e mais barato:

  • entender um trecho que você herdou e não faz ideia do que faz
  • gerar uma função isolada, daquelas sem dependência nenhuma
  • revisar uma decisão de design antes de escrever qualquer linha
  • escrever teste pra um arquivo único
  • traduzir uma stack trace hostil pra português de gente

E o corte oposto, onde o copiar e colar sempre vai doer:

  • renomear um conceito em todo o projeto
  • trocar biblioteca
  • mover módulos de lugar
  • propagar mudança de assinatura pra quem chama

Tem uma variável extra que quase ninguém considera e que é bem real pra tarefa longa de agente: o HORÁRIO

A API da DeepSeek passou a cobrar por faixa de horário, com o preço fora de pico pela metade do preço de pico

O pico vai das 01:00 às 04:00 e das 06:00 às 10:00 UTC, e a tabela nova está em vigor desde 16/08/2026 às 16:00 UTC

Ou seja: aquela refatoração grandona que vai mastigar contexto por um tempão tem hora melhor pra rodar 😀

Vale lembrar também que o contexto de 1M de tokens é o padrão em todos os serviços oficiais da DeepSeek, e que os modelos disponíveis hoje na API são deepseek-v4-flash e deepseek-v4-pro, ambos com modo Thinking e Non-Thinking

O V4-Pro entrou em disponibilidade geral em 13/08/2026, no mesmo dia do Harness

Veredito: qual usar em cada tipo de refatoração

Mudança de arquivo único, função isolada, dúvida conceitual? Chat

É menos cerimônia, você não precisa subir nada e a resposta serve na hora

Tarefa que atravessa arquivos, muda assinatura, mexe em import de meio projeto? Agente

Não porque o modelo do agente é mais esperto, e sim porque ele carrega o estado que você estava carregando na mão

Mas segura a ressalva dura: o Harness está em developer preview, com APIs centrais sujeitas a mudança

Pra usar na sua máquina, com você olhando o Trajectory, ótimo

Pra colocar sozinho num pipeline crítico, ainda não é o momento

E existe uma saída lateral que muita gente ignora: a API da DeepSeek é compatível com os formatos da OpenAI e da Anthropic, então dá pra apontar agentes de terceiros pra ela

A própria DeepSeek mantém o guia "Integrate with AI Tools", com páginas dedicadas pra Claude Code, Codex, OpenCode, GitHub Copilot e Deep Code

Ou seja: se você já tem um agente que gosta, não precisa trocar de ferramenta pra usar os modelos deles

Conclusão

O copiar e colar não falha porque o modelo é fraco

Ele falha porque a tarefa tem mais estado do que uma janela de conversa consegue segurar, e o estado que sobra acaba na sua memória de curto prazo

Próximo passo bem concreto: pega a próxima refatoração que toca mais de três arquivos

Sobe a Web UI local com npx @deepseek-ai/dsh web, roda a mesma tarefa pelos dois caminhos e compara o resultado

Depois abre a visão Trajectory e audita o que o agente realmente fez, chamada por chamada

É o tipo de comparação que responde melhor que qualquer opinião na timeline 🙂

Até o próximo post!

Perguntas frequentes

Como instalar o DeepSeek Harness pra rodar como agente na minha máquina?

É um comando só: npx @deepseek-ai/dsh web, que sobe a Web UI local em http://127.0.0.1:3080 por padrão. O perfil web já vem com auto-init, então não precisa configurar nada antes de abrir. Se quiser outro perfil além de web ou headless, aí sim entra o dsh plugin --profile <nome> add <pacote-ou-git>.

O DeepSeek Harness é gratuito e open source de verdade?

Sim, o código fica aberto no GitHub sob licença MIT, sem custo pra rodar o próprio agente. O que pode gerar custo é o consumo da API dos modelos que ele orquestra, não o Harness em si. Vale lembrar que ele segue em developer preview, com plugins e APIs centrais ainda em evolução.

Dá pra apontar outros agentes de código pros modelos da DeepSeek?

Dá, porque a API da DeepSeek é compatível com os formatos da OpenAI e da Anthropic. A própria DeepSeek mantém o guia "Integrate with AI Tools", com páginas dedicadas pra Claude Code, Codex, OpenCode, GitHub Copilot e Deep Code, e é lá que mora o passo a passo de cada ferramenta.

O OpenCode também suporta trocar pra um provider DeepSeek?

Sim, a documentação oficial da DeepSeek cobre esse caminho também. A troca é feita dentro da própria ferramenta, mudando o provider pra DeepSeek, sem precisar sair pra outro agente.

Quanto custa usar a API da DeepSeek fora do horário de pico?

A tabela em vigor desde 16/08/2026 às 16:00 UTC cobra pela metade do preço de pico nas horas fora de pico. O pico acontece das 01:00 às 04:00 e das 06:00 às 10:00 UTC, e todo o resto do dia entra na faixa mais barata.

O DeepSeek Harness já pode ser usado em produção hoje?

Ainda não é recomendado tratar como peça definitiva de pipeline: ele está em developer preview, e a própria DeepSeek avisa que plugins e APIs centrais seguem em evolução. Pra testar refatoração e ganhar ritmo com agente local já dá pra usar, mas cuidado com automação crítica em cima dele por enquanto.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 30min

Blog | Mais populares