DeepSeek Harness: Plugins Comunitários
Última atualização: 2026-08-31
O "tudo é um plugin" do DSH não é apenas uma arquitetura técnica — é uma visão de ecossistema. A equipe oficial fornece ferramentas centrais, enquanto a comunidade contribui com possibilidades ilimitadas. De operações de banco de dados a integração de API, de análise de código a implantação automatizada, os plugins comunitários expandem continuamente os limites de capacidade do DSH.
📋 Pré-requisitos: Ter completado 06-tools.md, familiarizado com noções básicas de ferramentas e plugins
1. O Que Você Vai Aprender
- Marketplace de plugins e o tópico GitHub dsh-plugin
- Instalação e gerenciamento de plugins comunitários
- Plugins comunitários recomendados
- Métodos de avaliação de segurança de plugins
- Fluxo de desenvolvimento e publicação de plugins
2. Marketplace de Plugins e Descoberta
(1) Formas de Descobrir Plugins
O DSH não possui um marketplace centralizado de plugins. Plugins são descobertos através de:
| Canal | Descrição | URL |
|---|---|---|
| GitHub Topic | Repositórios com a tag dsh-plugin |
github.com/topics/dsh-plugin |
| Docs Oficiais | Lista de plugins recomendados | docs.deepseek.com/dsh/plugins |
| Fórum da Comunidade | Compartilhamento e discussão dos usuários | community.deepseek.com |
| Busca npm | Pacotes com prefixo @dsh-plugin/ |
npmjs.com/search?q=@dsh-plugin |
(2) Convenção de Nomenclatura de Plugins
Plugins comunitários seguem uma convenção de nomenclatura unificada:
npm package name: @dsh-plugin/plugin-name
GitHub repository name: dsh-plugin-name
Configuration reference name: plugin-name
Exemplos:
npm: @dsh-plugin/database → GitHub: dsh-plugin-database
npm: @dsh-plugin/git-enhanced → GitHub: dsh-plugin-git-enhanced
npm: @dsh-plugin/docker → GitHub: dsh-plugin-docker
(3) Buscando Plugins Comunitários
▶ Exemplo 1:Buscar Plugins com GitHub CLI
# Buscar repositórios com o tópico dsh-plugin
gh repo list --topic dsh-plugin --limit 20
# Ordenar por estrelas
gh search repos "dsh-plugin" --sort stars --limit 20
▶ Exemplo 2:Buscar Plugins com npm
# Buscar pacotes de plugins DSH
npm search @dsh-plugin
# Ver detalhes de um plugin específico
npm info @dsh-plugin/database
3. Instalando Plugins Comunitários
(1) Métodos de Instalação
O DSH suporta três métodos de instalação de plugins:
| Método | Comando | Descrição |
|---|---|---|
| npm Install | dsh plugin add @dsh-plugin/name |
Download automático do npm |
| GitHub Install | dsh plugin add github:user/repo |
Instalar do GitHub |
| Caminho Local | dsh plugin add ./path/to/plugin |
Instalar plugin desenvolvido localmente |
▶ Exemplo 3:Instalando um Plugin de Banco de Dados
# Instalar do npm
dsh plugin add @dsh-plugin/database
# Saída da instalação
📦 Installing @dsh-plugin/database@1.2.0...
✅ Plugin installed successfully!
Available tools:
- database.query: Execute SQL queries
- database.migrate: Run database migrations
- database.schema: Inspect database schema
(2) Instalando a Partir do Código-Fonte
# Instalar do repositório GitHub
dsh plugin add github:alice/dsh-plugin-redis
# Instalar branch específica
dsh plugin add github:alice/dsh-plugin-redis#feature/cluster-support
# Instalar tag de versão específica
dsh plugin add github:alice/dsh-plugin-redis#v2.1.0
(3) Gerenciando Plugins Instalados
▶ Exemplo 4:Comandos de Gerenciamento de Plugins
# Listar plugins instalados
dsh plugin list
# Saída
📦 Installed Plugins:
@dsh-plugin/database v1.2.0 ✅ enabled
@dsh-plugin/redis v2.1.0 ✅ enabled
@dsh-plugin/git-enhanced v0.8.0 ⚠️ disabled
# Desabilitar plugin (sem desinstalar)
dsh plugin disable @dsh-plugin/redis
# Habilitar plugin
dsh plugin enable @dsh-plugin/redis
# Desinstalar plugin
dsh plugin remove @dsh-plugin/database
# Atualizar plugin
dsh plugin update @dsh-plugin/database
(4) Gerenciando Plugins via Arquivo de Configuração
Plugins também podem ser gerenciados pelo arquivo de configuração:
# dsh.config.yaml
plugins:
# Plugin npm
- name: "@dsh-plugin/database"
version: "^1.2.0"
enabled: true
config:
default_connection: "postgresql://localhost/mydb"
# Plugin GitHub
- name: "@dsh-plugin/redis"
source: "github:alice/dsh-plugin-redis"
version: "v2.1.0"
enabled: true
config:
host: "localhost"
port: 6379
# Plugin local
- name: "my-custom-tool"
source: "./plugins/my-custom-tool"
enabled: true
4. Plugins Comunitários Recomendados
(1) Categoria Banco de Dados
| Plugin | Função | Estrelas | Status |
|---|---|---|---|
| @dsh-plugin/database | Consultas SQL, migrações, inspeção de Schema | 2.1k | ✅ Ativo |
| @dsh-plugin/redis | Operações Redis, gerenciamento de cache | 890 | ✅ Ativo |
| @dsh-plugin/mongodb | Operações com documentos MongoDB | 650 | ✅ Ativo |
| @dsh-plugin/prisma | Integração Prisma ORM | 430 | ⚠️ Experimental |
▶ Exemplo 5:Uso do Plugin de Banco de Dados
# dsh.config.yaml
plugins:
- name: "@dsh-plugin/database"
config:
connections:
main: "postgresql://localhost/myapp"
analytics: "postgresql://localhost/analytics"
O Agent pode consultar o banco de dados diretamente:
👤 Alice: Consulte os 10 usuários mais recentemente registrados da tabela users
🤖 Agent:
🔧 Usando ferramenta: database.query
→ Conexão: main
→ Query: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
→ Resultados: 10 linhas
(2) Categoria DevOps
| Plugin | Função | Estrelas | Status |
|---|---|---|---|
| @dsh-plugin/docker | Gerenciamento de containers Docker | 1.5k | ✅ Ativo |
| @dsh-plugin/k8s | Operações com recursos Kubernetes | 980 | ✅ Ativo |
| @dsh-plugin/ci | Gerenciamento de pipelines CI/CD | 560 | ✅ Ativo |
| @dsh-plugin/terraform | Gerenciamento de infraestrutura IaC | 340 | ⚠️ Experimental |
(3) Categoria Qualidade de Código
| Plugin | Função | Estrelas | Status |
|---|---|---|---|
| @dsh-plugin/linter | Integração ESLint/Pylint | 1.8k | ✅ Ativo |
| @dsh-plugin/test-runner | Execução de testes e cobertura | 1.2k | ✅ Ativo |
| @dsh-plugin/code-metrics | Análise de complexidade de código | 780 | ✅ Ativo |
| @dsh-plugin/deps-audit | Auditoria de segurança de dependências | 920 | ✅ Ativo |
▶ Exemplo 6:Uso do Plugin Linter
👤 Bob: Verifique a qualidade do código no diretório src/
🤖 Agent:
🔧 Usando ferramenta: linter.check
→ Diretório: src/
→ Config: .eslintrc.json
→ Resultados: 12 avisos, 3 erros
Erros:
- src/utils/format.ts:45 — Tipo any inesperado
- src/routes/api.ts:128 — Tipo de retorno ausente
- src/models/user.ts:23 — Import não utilizado
(4) Categoria Integração de API
| Plugin | Função | Estrelas | Status |
|---|---|---|---|
| @dsh-plugin/github | Operações com GitHub API | 2.3k | ✅ Ativo |
| @dsh-plugin/jira | Gerenciamento de tarefas JIRA | 560 | ✅ Ativo |
| @dsh-plugin/slack | Envio de mensagens Slack | 890 | ✅ Ativo |
| @dsh-plugin/notion | Operações com páginas Notion | 450 | ✅ Ativo |
5. Avaliação de Segurança de Plugins
(1) Framework de Avaliação
Sempre realize uma avaliação de segurança antes de instalar qualquer plugin comunitário:
graph TD
A[Descobrir Plugin] --> B[Revisar Código-Fonte]
B --> C[Verificar Dependências]
C --> D[Revisar Permissões]
D --> E[Avaliar Status de Manutenção]
E --> F{Avaliação de Segurança Passou?}
F -->|Sim| G[Instalar e Usar]
F -->|Não| H[Abandonar ou Corrigir Antes de Usar]
(2) Checklist de Avaliação
| Item de Verificação | Descrição | Nível de Risco |
|---|---|---|
| Revisão de código-fonte | Ler o código principal para confirmar ausência de lógica maliciosa | 🔴 Crítico |
| Verificação de dependências | Verificar se as dependências no package.json são confiáveis | 🔴 Crítico |
| Revisão de permissões | Quais permissões de arquivo/rede/sistema o plugin solicita | 🟡 Importante |
| Status de manutenção | Data da última atualização, velocidade de resposta a Issues | 🟡 Importante |
| Avaliação da comunidade | Estrelas GitHub, downloads, feedback dos usuários | 🟢 Referência |
| Licença | Tipo de licença open source e restrições | 🟢 Referência |
(3) Pontos-Chave da Revisão de Código-Fonte
▶ Exemplo 7:Revisando o Código-Fonte do Plugin
# Clonar repositório do plugin para revisão
git clone https://github.com/user/dsh-plugin-example.git
cd dsh-plugin-example
# Verificar arquivo de entrada principal
cat src/index.ts
# Verificar dependências
cat package.json | grep -A 20 "dependencies"
# Verificar requisições de rede suspeitas
grep -r "fetch\|http\|axios\|request" src/
# Verificar operações no sistema de arquivos
grep -r "fs\.\|readFile\|writeFile\|exec\|spawn" src/
# Verificar acesso a variáveis de ambiente
grep -r "process\.env" src/
(4) Sistema de Permissões de Plugins
Plugins do DSH devem declarar suas permissões necessárias:
// Declaração de permissões do plugin
export default definePlugin({
name: 'dsh-plugin-example',
permissions: [
'fs.read', // Ler arquivos
'fs.write', // Escrever arquivos
'network.outbound', // Requisições de rede de saída
'shell.execute', // Executar comandos Shell
'env.read' // Ler variáveis de ambiente
],
// ...
});
Ao instalar, o DSH exibe as solicitações de permissão:
📦 Installing @dsh-plugin/example@1.0.0
⚠️ Este plugin solicita as seguintes permissões:
✅ fs.read — Ler arquivos no workspace
⚠️ network.outbound — Fazer requisições HTTP de saída
🔴 shell.execute — Executar comandos shell
Continuar instalação? (y/n)
6. Desenvolvimento e Publicação de Plugins
(1) Template de Desenvolvimento de Plugins
▶ Exemplo 8:Criando um Plugin Usando o Template
# Usar o template oficial
npx @deepseek-ai/create-dsh-plugin my-plugin
# Saída
📁 Creating plugin: my-plugin
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
└── README.md
✅ Plugin scaffolded! Run:
cd my-plugin
npm install
npm run dev
(2) Estrutura do Projeto de Plugin
dsh-plugin-my-plugin/
├── src/
│ ├── index.ts # Entrada principal do plugin
│ ├── tools/ # Definições de ferramentas
│ │ └── my-tool.ts
│ └── services/ # Definições de serviços
│ └── my-service.ts
├── package.json
├── tsconfig.json
├── dsh-plugin.yaml # Metadados do plugin
└── README.md
(3) Publicando no npm
# Build
npm run build
# Publicar
npm publish --access public
# Adicionar GitHub Topic
# Nas configurações do repositório GitHub, adicione o tópico: dsh-plugin
(4) Metadados dsh-plugin.yaml
name: dsh-plugin-my-plugin
version: 1.0.0
description: Mergulhe no ecossistema de plugins comunitários do DSH — descubra, instale, configure e avalie plugins de terceiros, domine as melhores práticas de...
author: "Alice"
license: "MIT"
repository: "https://github.com/alice/dsh-plugin-my-plugin"
keywords:
- dsh-plugin
- database
- tools
permissions:
- fs.read
- network.outbound
compatibility:
dsh: ">=0.5.0"
❓ Perguntas Frequentes
dsh plugin disable), depois verifique os logs de erro. Se for um problema de compatibilidade, tente instalar uma versão compatível ou contate o autor do plugin.priority na configuração.dsh plugin add ./path/to/plugin para instalar plugins locais, ou configure um registro npm interno.dsh plugin update <name> para atualizar um único plugin, ou dsh plugin update --all para atualizar todos os plugins. Recomendamos fazer backup do workspace antes de atualizar.📖 Resumo
- Plugins comunitários são descobertos via GitHub topic
dsh-plugine prefixo npm@dsh-plugin/ - Três métodos de instalação: npm, GitHub, caminho local
- Categorias comuns de plugins: banco de dados, DevOps, qualidade de código, integração de API
- Seis fatores de avaliação de segurança: código-fonte, dependências, permissões, status de manutenção, avaliação da comunidade, licença
- Plugins devem declarar permissões necessárias; solicitações de permissão são exibidas durante a instalação
- Desenvolva plugins usando o template
create-dsh-plugin; publique no npm + GitHub
📝 Exercícios
1. ⭐ Básico: Busque o tópico dsh-plugin no GitHub, liste 3 plugins que mais lhe interessam e descreva sua funcionalidade e por que você gostaria de usá-los.
2. ⭐⭐ Intermediário: Instale um plugin comunitário (ex.: @dsh-plugin/database), configure as informações de conexão e faça o Agent consultar um dado através do plugin. Registre o processo de instalação e configuração.
3. ⭐⭐⭐ Desafio: Desenvolva um plugin DSH simples (ex.: uma ferramenta de "consulta de horário atual"), use o template create-dsh-plugin para criar o projeto, escreva a lógica da ferramenta, instale localmente e faça o Agent invocá-la com sucesso.