Trabajar con proyectos grandes
Gestiona grandes bases de código en Bob IDE. Comprende la optimización de la ventana de contexto, el manejo de archivos y las mejores prácticas para proyectos a escala empresarial.
Entender los límites de contexto en proyectos grandes
Bob usa modelos de lenguaje grandes que tienen una ventana de contexto limitada. Esta es la cantidad máxima de texto (medida en tokens) que Bob puede procesar a la vez. Si el contexto es demasiado grande, Bob puede no entender tu solicitud o generar respuestas precisas.
La ventana de contexto incluye:
- El prompt del sistema (instrucciones para Bob)
- El historial de conversación
- El contenido de cualquier archivo que menciones con
@ - Texto seleccionado enviado al chat usando Cmd + L (Mac) o Ctrl + L (Windows/Linux)
- La salida de cualquier comando o herramienta que Bob use
Estrategias para gestión de contexto
- Ser específico: Al hacer referencia a archivos o código, usa rutas de archivo específicas y nombres de funciones. Evita referencias vagas como "el archivo principal".
- Usar menciones de contexto efectivamente: Usa
@/ruta/al/archivo.tspara incluir archivos específicos. Usa@problemspara incluir errores y advertencias actuales. Usa@seguido de un hash de commit para hacer referencia a commits específicos de Git. También puedes resaltar texto en tu editor y usar Cmd + L (Mac) o Ctrl + L (Windows/Linux) para enviarlo directamente al chat. - Dividir tareas: Divide tareas grandes en subtareas más pequeñas y manejables. Esto ayuda a mantener el contexto enfocado.
- Resumir cuando sea necesario: Si necesitas hacer referencia a una gran cantidad de código, considera resumir las partes relevantes en tu prompt en lugar de incluir todo el código.
- Priorizar historial reciente: Bob condensa automáticamente mensajes más antiguos en el historial de conversación para permanecer dentro de la ventana de contexto. Ten esto en cuenta y vuelve a agregar contexto importante cuando sea necesario.
- Configurar el manejo de archivos grandes: Ajusta la configuración de manejo de archivos grandes para controlar cómo Bob procesa archivos que exceden un cierto umbral de tamaño. Esto ayuda a gestionar el uso de contexto al trabajar con archivos grandes.
- Gestionar el uso de herramientas MCP: Puedes deshabilitar y habilitar herramientas específicas en un servicio MCP para usar solo lo que necesitas, reduciendo el consumo de contexto de definiciones de herramientas no utilizadas.
- Usar subagentes o subtareas para trabajo aislado: Para piezas de trabajo grandes y autocontenidas, considera usar un subagente o subtarea. Ambos se ejecutan en su propia ventana de contexto separada, manteniendo la conversación principal ligera. Consulta Tools para detalles sobre
spawn_subagentystart_subtask. - Usar herramientas de símbolos en lugar de menciones de archivos completos: En lugar de mencionar un archivo completo con
@, Bob puede usar herramientas comoGetSymbolsOverviewyFindSymbolpara navegar directamente a la clase o función relevante. Esto recupera solo lo necesario y evita cargar el archivo completo en el contexto.
Ejemplo: Refactorizar un archivo grande
Si necesitas refactorizar un archivo TypeScript grande (src/components/MyComponent.tsx), aquí hay un enfoque efectivo:
- Obtener una visión general inicial:
@/src/components/MyComponent.tsx Lista las funciones y clases en este archivo. - Apuntar a funciones específicas:
@/src/components/MyComponent.tsx Refactoriza la función `processData` para usar `async/await` en lugar de Promises. - Hacer cambios iterativos: Realiza cambios pequeños e incrementales, y revisa y aprueba cada paso.
Al dividir la tarea y proporcionar contexto específico, puedes trabajar efectivamente con archivos grandes dentro de los límites de la ventana de contexto.
Envenenamiento del contexto
Aprende qué es el envenenamiento del contexto, cómo reconocerlo en una conversación con Bob y cómo recuperarte iniciando una tarea nueva o mejorando la higiene del contexto.
Atajos de teclado
Usa atajos de teclado para optimizar tu flujo de trabajo y reducir la dependencia de las interacciones con el ratón.