web-search — Búsqueda web con navegador Edge para DSH
En DSH, utiliza Edge local + Playwright MCP para realizar búsquedas web reales (similares a las de un sitio web oficial): el modelo invoca las herramientas MCP del navegador para abrir Bing en Edge real, captura la instantánea de la página, la devuelve al contexto de DSH y luego filtra cada resultado según reglas de seguridad para generar un resumen. No utiliza la interfaz web_search integrada de DSH, sino una búsqueda real con navegador.
Composición de capacidades (dos partes)
| Componente | Ubicación | Descripción |
|---|---|---|
| Configuración de Playwright MCP | cordis.yml de DSH (plugin dsh-mcp-client) | Permite que DSH controle Edge |
| Esta habilidad (skill) | .agents/skills/web-search/SKILL.md | Registra los pasos de configuración, el flujo de búsqueda y las reglas de seguridad |
Ambos son necesarios para que la capacidad de búsqueda sea completa.
1. Configuración en un equipo nuevo
Requisitos previos
- Node.js instalado (incluye npm)
- Microsoft Edge instalado (incluido en Windows 10/11)
- DSH ya funcional
Paso 1: Instalar el paquete Playwright MCP
Si la política de ejecución de PowerShell bloquea
.ps1, usanpm.cmd/npx.cmd.
npm install -g @playwright/mcp@latest --no-audit --no-fund
Verificar que se puede iniciar:
node "$env:APPDATA\npm\node_modules\@playwright\mcp\cli.js" --help
Si ves un montón de Opciones, está instalado.
Paso 2: Registrar el cliente MCP en el cordis.yml de DSH
Agrega una entrada del plugin @deepseek-ai/dsh-mcp-client en el cordis.yml del perfil/preset que ejecuta DSH (una entrada por servidor MCP):
- id: mcp-playwright
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: playwright
transport: stdio
command: npx.cmd
args: ['-y', '@playwright/mcp@latest', '--browser', 'msedge']
--browser msedgeusa Edge local directamente, sin necesidad de descargar Chromium.commandusanpx.cmdpara evitar la política de ejecución de PowerShell; si no hay restricciones, también puede sernpx.- DSH registra las herramientas MCP como
mcp__<serverName>__<nombre de herramienta original>, por ejemplo:mcp__playwright__browser_navigate,mcp__playwright__browser_snapshot, etc.
Paso 3: Reiniciar para que surta efecto
El cordis.yml se carga al iniciar DSH; el plugin MCP ejecuta listTools() al conectarse y registra las herramientas. Después de modificar, reinicia DSH para que aparezcan las herramientas.
2. Flujo de búsqueda
- Llama a
mcp__playwright__browser_navigatepara abrir Bing:https://www.bing.com/search?q=<término codificado en URL>. - Llama a
mcp__playwright__browser_snapshotpara capturar la instantánea de la página de resultados (título, dominio, URL, descripción). Si la instantánea no es suficiente, puede usarmcp__playwright__browser_take_screenshotpara ver la imagen. - Evalúa cada resultado según las reglas de «Clasificación de seguridad» a continuación.
- Solo los resultados de nivel «Confiable» pueden abrirse con
mcp__playwright__browser_clickpara leer detalles; los sospechosos y bloqueados no se abren. - Organiza los resultados según el «Formato de salida» y responde; las URLs referenciadas se escriben como enlaces markdown.
Cada búsqueda automática abrirá brevemente una ventana de Edge, es normal. Si se desea que funcione en segundo plano sin interfaz, se puede agregar
--headlessa los argumentos de MCP, pero se pierde la visualización; generalmente no se recomienda.
3. Clasificación de seguridad (filtrado medio)
Los resultados de los motores de búsqueda pueden ser engañosos (phishing, suplantación de identidad, granjas SEO, descargas empaquetadas, sitios de software malicioso). Es necesario clasificar cada resultado por niveles. No depende de bibliotecas externas, solo de reglas.
🔒 Confiable (se puede abrir para ver detalles)
- Sitio oficial (el dominio coincide claramente con la marca, ej.
brand.com/brand.com.cn) - Sitios de autoridad: Wikipedia, Zhihu, documentación oficial,
.gov/.edu/ dominios de grandes empresas - Sitios grandes y maduros conocidos (registro antiguo, reputación clara)
⚠️ Sospechoso (solo se muestra el título y la URL, no se abre ni se proporcionan enlaces de descarga)
- Resultados marcados como anuncios (marcas
adde Bing,sp=ad,promocionado, etc.) - Sitios agregadores de descargas / sitios de recursos (Huajun, Pacific, Software Home, Green Software Alliance, xpgod, ZOL Downloads, etc.)
- Dominios suplantados: imitan intencionadamente a los oficiales, ej.
brand-oficial.com,brand-download.net, con guiones o variaciones numéricas - Dominios recién registrados, sin HTTPS, descripciones con muchas palabras clave repetidas
🚫 Bloqueado explícitamente (marcado en rojo, no se considera)
- Sitios claramente de phishing, apuestas, contenido para adultos, que solicitan descargar exe sospechosos
- Cualquier sitio de «versión crackeada / versión verde / sitio de descargas de software X»
4. Reglas estrictas
- Nunca descargar ningún archivo automáticamente (exe / apk / zip / dmg, nada)
- Nunca proporcionar enlaces de descarga de sitios sospechosos
- Si se necesita software, solo recomendar el sitio oficial o la tienda de aplicaciones oficial del sistema
- No abrir detalles de páginas sospechosas por defecto; solo las de nivel «Confiable» se abren para lectura profunda
5. Formato de salida
Devuelve en el siguiente formato (en español):
🔒 Resultados confiables
1. [Título](dominio) – Breve descripción
2. ...
⚠️ Solo como referencia (no verificado)
- Título (dominio) – Indicación: por qué es sospechoso
- ...
🚫 Bloqueado (no se recomienda visitar)
- Título (dominio) – Razón
6. Por qué usar reglas de filtrado en lugar de cambiar de motor
El problema no está en el motor de búsqueda, sino en la falta de una capa de filtrado: cambiar de motor solo cambia los anuncios/posiciones promocionadas. Mantén las reglas de filtrado, así cualquier resultado de cualquier motor se clasifica primero. Tampoco intentes integrar listas negras externas de URLs (como las de Huorong): estas bibliotecas son cerradas y no tienen una API de consulta pública, por lo que no se pueden consultar en el flujo.