DeepSeek Harness: instalação, perfis e primeira execução
Updated August 16, 2026 · first published August 16, 2026
Esta é a metade prática da nossa cobertura do DeepSeek Harness: como colocar o dsh para rodar, o que o modelo de composição espera de você, e quais demos valem dez minutos.
O caminho mais rápido
npx @deepseek-ai/dsh web
Isso inicia a interface web em http://127.0.0.1:3080. Dali, duas coisas precisam acontecer antes que o compositor de sessão fique utilizável:
- Configurações → Modelos, e inserir sua chave de API da DeepSeek. A rota é habilitada na hora, sem reiniciar.
- Escolher espaço de trabalho, para adicionar e ativar o diretório do projeto. Enquanto não houver um espaço ativo, o compositor fica indisponível.
Uma vez em execução, o agente pode ler e editar arquivos, rodar comandos, delegar tarefas a subagentes e planejar. Ele pede confirmação conforme a política de permissões ativa.
A partir do código
git clone https://github.com/deepseek-ai/deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
Pisos a considerar: Node 22.19 ou mais recente (a CI cobre 22.19, 24 e 26), Git 2.26 ou mais recente, e Corepack com pnpm fixado em pnpm@11.7.0. Uma DEEPSEEK_API_KEY é opcional, lida do ambiente ou de um .env ignorado pelo git na raiz do repositório; ao lado dela, DEEPSEEK_BASE_URL pode apontar para outro endpoint. As suítes de ponta a ponta contra a API real se autoignoram quando a chave está ausente, então um checkout sem chave compila e testa sem problemas.
Perfis e bundles: o modelo de composição
Como cada parte do harness é um plugin, algo precisa dizer quais plugins são carregados. Isso é um perfil: uma composição nomeada que guarda uma lista ordenada de bundles mais os patches do usuário. Um bundle distribui linhas de configuração do Cordis e código.
Três perfis modelo acompanham o projeto:
| Perfil | O que compõe |
|---|---|
dsh-base | Adaptadores de modelo, ferramentas, persistência |
dsh-web-app | A interface de navegador |
dsh-headless | Executor de passada única |
A ordem de sobreposição em quatro camadas
A configuração resolve em ordem fixa, com as camadas posteriores vencendo:
- Bundles do perfil
- Patches do perfil
- Patches no nível home
- Overlays de linha de comando
Aprenda essa ordem antes de começar a depurar. Quase toda pergunta do tipo «por que está usando esse modelo» num sistema de configuração em camadas se responde descobrindo qual camada tocou o valor por último, e um overlay de linha de comando vence tudo abaixo dele.
Os subsistemas que você vai encontrar
Seis chaves de registro carregam a maior parte do comportamento: ctx.sessions (o log de eventos somente-anexação), ctx.systemPrompt, ctx.tools (um registro com escopo e execução guardada), ctx.agents, ctx.agentLoop e ctx.llm. Se você for estender o harness, esses são os nomes a procurar primeiro.
Três demos que valem a execução
- Headless de passada única:
pnpm dsh --profile headless "summarize this workspace". O formato que você ligaria à CI ou a um cron. - Introspecção do Cordis:
pnpm run demo:cordis. Autorreferente: inspeciona e modifica o próprio runtime de plugins em execução. É a demonstração mais clara de que a alegação sobre plugins é estrutural e não publicitária. - Automação ACP:
pnpm run demo:acp. Um servidor de automação que fala JSON-RPC sobre stdio, que é a superfície de integração para dirigir o harness a partir de outro sistema.
Se pretende contribuir
Algumas convenções economizam tempo. Marcadores TODO são graduados por urgência: FIXME bloqueia a release, TODO é em breve, XXX é algum dia. O Lefthook executa pre-commit (registros de pairing em staged, .oxlintrc.staged.json, regeneração dos avisos de terceiros, espaços em branco, guardião do manifesto de vendor), pre-merge-commit e pre-push (pnpm run typecheck). Os hooks pulam testes e builds de propósito: a CI é dona da cobertura exaustiva, e pnpm run check:all é o portão local abrangente e opcional.
Duas peculiaridades explicam uma estrutura que de outro modo confundiria. O build se divide em agregados tsconfig de Host e Client porque os dois lados fazem merge de declaração da interface Context do Cordis sob as mesmas chaves, e um único programa TypeScript que enxergue os dois merges reporta colisão. E os exemplos de código da documentação são mantidos honestos por blocos ts type-equiv mais pnpm run verify-type-equiv, de modo que declarações coladas não possam divergir em silêncio do código-fonte.
Calibrar expectativas
O README diz sem rodeios: isto é um developer preview, e haverá mudanças que quebram compatibilidade. A descoberta de plugins passa pelo topic do GitHub dsh-plugin, o projeto é licenciado sob MIT e as dependências de terceiros estão listadas em THIRD_PARTY_NOTICES.md. Avalie agora; padronize depois.
Related
- O que é DeepSeek Harness? Guia completo
- O que «tudo é um plugin» realmente entrega (EN)
- Onde colocar os limites de gasto (EN)
- O log de sessão como registro de custos (EN)
Want this applied to your own LLM spend? FinOps LLM runs a free audit of your AI costs and shows where the savings are. Book free audit →