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

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
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
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.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Como rodar o DeepSeek Harness com npx e abrir o Web UI no navegador
Aprenda a rodar o DeepSeek Harness npx e abrir o Web UI em http://127.0.0.1:3080 automaticamente no navegador, direto do terminal com Node.js instalado.
DeepSeek V4 Pro: o que é e quando compensa usar em vez do V4 Flash?
DeepSeek V4 Pro tem 1,6 tri de parâmetros e janela de 1 milhão de tokens. Entenda o preço, o desempenho e quando vale mais a pena que o V4 Flash.
Como rodar o DeepSeek V4 no Ollama: o passo a passo e o que checar antes de tentar
Rodar o DeepSeek V4 no Ollama hoje é via tag cloud: veja como fazer login, baixar a tag e usar via CLI ou API local, e quando vale ir de GGUF offline.
