Verdent Docs
Funciones avanzadas

Referencia del sistema de herramientas

Referencia completa del sistema de herramientas de Verdent

Lo que aprenderás

Referencia completa del sistema de herramientas integrado de Verdent, incluyendo operaciones con archivos, capacidades de búsqueda, ejecución de comandos y herramientas de integración.


Resumen de las herramientas disponibles

Verdent for VS Code ofrece un conjunto completo de herramientas para manipular código, navegar e interactuar con servicios externos.

HerramientaPropósitoCapacidades clave
file_readLeer el contenido de archivosAdmite rangos de líneas para archivos grandes, funciona con todos los formatos de texto
file_editModificaciones específicasReemplaza coincidencias exactas de texto, varios reemplazos, conserva el formato
file_writeCrear o sobrescribir archivosCreación/reemplazo completo de archivos, maneja contenido de texto
HerramientaPropósitoCapacidades clave
bashEjecución de comandos de shellConfiguración de tiempo de espera, descripciones de resumen, encadenamiento de comandos
spawn_subagentDelegar en especialistasLanza subagentes general, explorer, verifier o code-reviewer
todo_updateSeguir el progreso de las tareasGestiona listas de tareas, actualiza el estado, seguimiento del progreso
HerramientaPropósitoCapacidades clave
web_searchBúsqueda en internetEjecución de consultas, control del número de resultados, filtrado por actualidad
web_fetchObtener y analizar páginasRecupera contenido, extrae información mediante consultas

Capacidades de las herramientas y casos de uso

file_read

Capacidades:

  • Leer el contenido completo de archivos o rangos de líneas específicos
  • Esencial para entender el código antes de modificarlo
  • Manejo eficiente de archivos grandes mediante la especificación de rangos

Casos de uso:

  • Leer archivos de configuración antes de editarlos
  • Entender patrones de implementación existentes
  • Revisar archivos de prueba para comprender la cobertura

Ejemplo:

# Read entire file
file_read("src/components/Button.tsx")

# Read specific range for large files
file_read("package-lock.json", start_line=1, max_lines=50)

file_edit

Capacidades:

  • Reemplazo preciso de texto mediante coincidencia exacta de cadenas
  • Varias operaciones de reemplazo con la opción multiple
  • Conserva la estructura y el formato del archivo

Casos de uso:

  • Actualizar implementaciones de funciones
  • Modificar valores de configuración
  • Refactorizar nombres de variables en varios archivos

Práctica recomendada: Úsala para cambios específicos. Para reescrituras completas, usa file_write en su lugar.


file_write

Capacidades:

  • Crear archivos nuevos desde cero
  • Reemplazar por completo el contenido de archivos existentes
  • Manejar cualquier formato basado en texto

Casos de uso:

  • Generar nuevos componentes o módulos
  • Crear archivos de configuración
  • Escribir archivos de prueba

Advertencia: Sobrescribe por completo los archivos existentes. Usa file_edit para modificaciones parciales.

bash

Capacidades:

  • Ejecutar comandos de shell
  • Tiempo de espera máximo: 120 segundos (2 minutos, límite estricto)
  • Encadenar comandos con && para dependencias
  • Proporcionar resúmenes descriptivos para mayor claridad

Casos de uso:

  • Ejecutar pruebas
  • Construir proyectos
  • Instalar dependencias
  • Operaciones de Git
  • Migraciones de bases de datos

Ejemplo:

# Run tests
bash("npm test", timeout=60000, summary="Run Jest test suite")

# Chain dependent commands
bash("npm install && npm run build", timeout=120000)

Seguridad: Los comandos se ejecutan con los permisos del usuario. Revisa los comandos en Manual Accept Mode.


spawn_subagent

Capacidades:

  • Lanzar subagentes especializados con contextos aislados
  • Tipos: explorer, verifier, code-reviewer
  • Delegar tareas complejas sin contaminar el contexto principal
  • Ejecución de subagentes en paralelo para mayor eficiencia

Casos de uso:

  • explorer: Buscar patrones en bases de código grandes
  • verifier: Validar la lógica de implementación
  • code-reviewer: Evaluación de seguridad y calidad

Práctica recomendada: Delega la investigación exploratoria en el subagente Explorer para preservar el contexto de la conversación principal.


todo_update

Capacidades:

  • Crear y gestionar listas de tareas
  • Actualizar el estado de las tareas (pending, in_progress, completed)
  • Seguir el progreso en implementaciones complejas

Casos de uso:

  • Desglosar funciones de varios pasos
  • Seguir el progreso de la refactorización
  • Gestionar tareas de migración

Capacidades:

  • Consultar motores de búsqueda de internet
  • Controlar el número de resultados
  • Filtrar por actualidad (días recientes)

Casos de uso:

  • Encontrar documentación de APIs desconocidas
  • Investigar mensajes de error
  • Comprobar las prácticas recomendadas actuales

web_fetch

Capacidades:

  • Recuperar el contenido de páginas web
  • Analizar contenido con consultas específicas
  • Extraer información estructurada

Casos de uso:

  • Leer páginas de documentación
  • Analizar la documentación de API
  • Extraer ejemplos de tutoriales

Compatibilidad con formatos de archivo

Verdent funciona con todos los formatos de archivo basados en texto a través de sus herramientas de operación con archivos.

CategoríaLenguajes/Extensiones
WebJavaScript, TypeScript, HTML, CSS, SCSS, LESS
BackendPython, Java, Go, Rust, C, C++, C#, Ruby, PHP, Perl
MóvilSwift, Kotlin, Dart (Flutter), Objective-C
FuncionalHaskell, Scala, Elixir, Clojure, F#
ScriptingBash, PowerShell, Zsh, Fish
DatosSQL, R, Julia, MATLAB
FormatoEjemplos comunes
JSONpackage.json, tsconfig.json, settings.json
YAMLdocker-compose.yml, GitHub Actions, configuraciones de Kubernetes
TOMLCargo.toml, pyproject.toml
XMLpom.xml, web.xml, archivos de configuración
INI.gitconfig, .editorconfig
ENVarchivos .env, configuración de entorno
HCLconfiguración de Terraform
FormatoCasos de uso
MarkdownREADME.md, archivos de documentación
HTMLPlantillas, páginas web
LaTeXDocumentos científicos, artículos académicos
reStructuredTextDocumentación de Python
AsciiDocDocumentación técnica

Formatos de datos

FormatoDescripción
CSV/TSVArchivos de datos tabulares
Datos basados en textoArchivos de registro, volcados de datos
JSON/YAMLIntercambio de datos estructurados

Archivos de compilación y paquetes

ArchivoPropósito
MakefileAutomatización de compilación
package.jsonDependencias de Node.js
requirements.txtPaquetes de Python
GemfileGems de Ruby
Cargo.tomlPaquetes de Rust
build.gradleCompilaciones de Gradle
Tipo de formatoEjemplosEditabilidad
ImágenesPNG, JPG, GIF, SVG (binario)No editable directamente
VideosMP4, AVI, MOVNo editable directamente
Binarios compiladosEXE, DLL, SONo editable directamente
Archivos comprimidosZIP, TAR, GZNo editable directamente
Documentos de oficinaDOCX, XLSX, PPTXNo editable directamente
PDFsArchivos PDFNo editable directamente

Los archivos binarios pueden referenciarse en el código, pero no pueden modificarse a través de las herramientas de archivo.


Compatibilidad con lenguajes de programación

Verdent ofrece compatibilidad completa con todos los lenguajes de programación y frameworks basados en texto.

Lenguaje/FrameworkNivel de compatibilidadCasos de uso comunes
JavaScriptExcelenteLógica de frontend, backends de Node.js, herramientas
TypeScriptExcelenteApps web con tipado seguro, proyectos a gran escala
ReactExcelenteUIs basadas en componentes, hooks, gestión de estado
VueExcelenteApps web progresivas, componentes de un solo archivo
AngularExcelenteAplicaciones empresariales, integración con TypeScript
SvelteMuy buenaComponentes compilados, programación reactiva
HTML/CSSExcelenteMarcado, estilos, diseño responsivo
SCSS/LESSExcelenteEstilos avanzados, variables, mixins
Lenguaje/FrameworkNivel de compatibilidadCasos de uso comunes
PythonExcelenteAPIs, procesamiento de datos, automatización
Django/Flask/FastAPIExcelenteFrameworks web, APIs REST
Node.js/ExpressExcelenteBackends de JavaScript, microservicios
Java/SpringExcelenteAplicaciones empresariales, Spring Boot
GoExcelenteServicios de alto rendimiento, CLIs
RustMuy buenaProgramación de sistemas, código crítico en rendimiento
C/C++Muy buenaSistemas, embebidos, motores de juego
C# / .NETExcelenteApps de Windows, servicios web, Unity
Ruby/RailsMuy buenaAplicaciones web, desarrollo rápido
PHPBuenaWordPress, Laravel, apps heredadas
Lenguaje/FrameworkNivel de compatibilidadCasos de uso comunes
SwiftExcelenteApps nativas de iOS/macOS
KotlinExcelenteApps nativas de Android
Dart/FlutterExcelenteApps móviles multiplataforma
React NativeExcelenteApps móviles basadas en JavaScript
Objective-CBuenaApps heredadas de iOS/macOS
LenguajeNivel de compatibilidadCasos de uso comunes
PythonExcelenteNumPy, Pandas, scikit-learn, TensorFlow
RMuy buenaAnálisis estadístico, visualización de datos
SQLExcelenteConsultas de bases de datos, diseño de esquemas
JuliaBuenaComputación científica, análisis numérico
LenguajeNivel de compatibilidadCasos de uso comunes
CMuy buenaProgramación de sistemas, embebidos
C++Muy buenaAplicaciones críticas en rendimiento
RustMuy buenaProgramación de sistemas con seguridad de memoria
GoExcelenteSistemas concurrentes, servicios en la nube
AssemblyBuenaOptimización de bajo nivel, depuración

Calidad de la compatibilidad: Los lenguajes comunes (JavaScript, Python, TypeScript) tienen mayor compatibilidad debido a la amplia cantidad de datos de entrenamiento. Los lenguajes menos comunes o específicos de un dominio pueden tener una calidad de compatibilidad reducida, pero siguen siendo funcionales.


Límites de uso y prácticas recomendadas

Eficiencia de file_read

Prácticas recomendadas:

  • Usa rangos de líneas para archivos de más de 500 líneas y evita saturar el contexto
  • Lee solo las secciones relevantes para la tarea
  • Para archivos grandes, usa primero grep_content para identificar los números de línea relevantes
# Good: Read specific section
file_read("large-config.json", start_line=100, max_lines=50)

# Less efficient: Read entire large file
file_read("large-config.json")  # May consume excessive context

Precisión de file_edit

Prácticas recomendadas:

  • Asegura coincidencias exactas de cadenas para evitar ediciones fallidas
  • Para varios cambios similares, usa la opción multiple=true
  • Verifica las rutas de los archivos antes de editar

Seguridad de file_write

Prácticas recomendadas:

  • Verifica dos veces las rutas para evitar sobrescrituras accidentales
  • Úsala solo para archivos nuevos o reescrituras completas
  • Para modificaciones, prefiere file_edit por seguridad

Prácticas recomendadas de bash

Ejecución segura de comandos:

  • Proporciona resúmenes claros para las descripciones de los comandos
  • Establece tiempos de espera apropiados para operaciones de larga duración
  • Encadena comandos dependientes con &&
  • Revisa con cuidado los comandos destructivos (rm, drop, truncate)
# Good: Clear summary, reasonable timeout
bash("npm run build", timeout=120000, summary="Build production bundle")

# Good: Chained dependencies
bash("npm install && npm run test", timeout=180000)

Consideraciones de seguridad

Reglas de seguridad críticas:

  • Los comandos se ejecutan con los permisos del usuario
  • Nunca ejecutes comandos no confiables
  • Usa Manual Accept Mode para revisión en bases de código compartidas
  • Evita comandos que expongan credenciales o datos sensibles

Revisa siempre los comandos de bash en Manual Accept Mode cuando trabajes en bases de código compartidas o entornos de producción.

Eficiencia en la delegación a subagentes

Cuándo usar subagentes:

  • Explorer: Búsquedas en la base de código, preguntas de arquitectura (ahorra contexto principal)
  • Verifier: Comprobaciones rápidas de validación (verificación aislada)
  • Code-reviewer: Revisiones de seguridad y calidad (análisis detallado)
  • General: Tareas complejas de varios pasos (ejecución en paralelo)

Práctica recomendada: Delega tareas exploratorias y de investigación en subagentes para preservar el contexto de la conversación principal para el trabajo de desarrollo activo.


Gestión del contexto

Uso estratégico de las herramientas:

  • Lee archivos de forma estratégica: solo lo necesario
  • Usa subagentes para investigación en segundo plano
  • Monitorea el consumo de contexto durante sesiones largas
  • Divide operaciones complejas en pasos con todo_update

Flujos de trabajo eficientes:

  1. Planificación: Usa glob/grep para identificar el alcance
  2. Lectura: Lee solo los archivos/secciones relevantes
  3. Ejecución: Delega en subagentes cuando sea apropiado
  4. Verificación: Comprobaciones rápidas con el subagente Verifier

Límites de tamaño de archivo

Manejo de archivos grandes: Los archivos muy grandes (>10.000 líneas) deben leerse en secciones para evitar:

  • Agotamiento de la ventana de contexto
  • Tiempos de respuesta lentos
  • Problemas de memoria

Para archivos de más de 500 líneas, usa siempre rangos de líneas con file_read para mantener un rendimiento óptimo.


Tiempos de espera predeterminados de las herramientas

Límites de las herramientas:

  • Tiempo de espera de Bash: 120 segundos (2 minutos) como máximo
  • Operaciones con archivos: Sin límites de tamaño (los archivos grandes se leen automáticamente por lotes)
  • Manejo de archivos grandes: Los archivos >256KB devuelven solo los primeros 256KB de contenido
  • Resultados de búsqueda: Sin límites en los resultados de glob o grep_content
  • Subagentes concurrentes: Sin límites en la ejecución en paralelo

Configuración de tiempo de espera:

  • Establece tiempos de espera explícitos para operaciones de larga duración
  • Monitorea posibles procesos colgados
  • Los comandos que superen el tiempo de espera de 2 minutos se terminarán

Operaciones concurrentes

Ejecución en paralelo: Varios subagentes pueden ejecutarse en paralelo para acelerar operaciones complejas. El agente principal gestiona la coordinación automáticamente.

Beneficios de rendimiento:

  • Reducción del tiempo total de ejecución en tareas de varios pasos
  • Utilización eficiente de los recursos
  • Orquestación automática de tareas
  • Sin límites en el número de subagentes concurrentes

Consulta también