Neuro es un asistente de programación con IA que combina un sistema de orquestación dual de modelos con capacidades avanzadas de análisis de código y RAG (Retrieval-Augmented Generation).
Current Milestone: ✅ 50% COMPLETE (Sprint 4)
| Sprint | Status | Features | Lines | Tests | Completion |
|---|---|---|---|---|---|
| Sprint 4 | ✅ COMPLETE | 5/5 | 3,236 | 46/46 | 100% |
| Sprint 5 | 🔄 Planning | TBD | TBD | TBD | 0% |
| Project | 🚀 In Progress | 5/10 | 3,236+ | 219+ | 50% |
Latest Achievement: Sprint 4 delivered 5 production-ready features including smart error recovery, code review mode, context preloading, performance benchmarking, and production monitoring. All features validated with 100% test pass rate.
📖 See SPRINT4_FINAL_REPORT.md for detailed breakdown.
- 🧠 Orquestación Dual de Modelos: Modelo rápido para tareas simples y modelo pesado para tareas complejas
- 🌐 Múltiples Proveedores: Soporte para Ollama (local), OpenAI, Anthropic y Groq
- ⚙️ Configuración JSON: Sistema flexible de configuración por entorno
- 📊 Planning Orchestrator: Sistema de planificación de tareas con ejecución paso a paso
- 🔍 RAPTOR Integration: Indexación recursiva para búsqueda semántica mejorada
- 🎨 TUI Moderna: Interfaz de terminal con ratatui
- 🛠️ Múltiples Herramientas: Análisis de código, linting, git, búsqueda semántica, refactoring y más
- 🌐 Soporte i18n: Interfaz multiidioma (inglés/español)
- 🔄 Smart Error Recovery: Sistema de recuperación automática con retry y rollback (600 lines, 9 tests)
- 🔍 Code Review Mode: Análisis AST con detección de complejidad y code smells (887 lines, 10 tests)
- ⚡ Context Preloading: Caché LRU para respuestas 10x más rápidas (547 lines, 9 tests)
- 📊 Performance Benchmarks: Framework de benchmarking con detección de regresiones (536 lines, 10 tests)
- 🔥 Production Monitoring: Sistema de monitoreo con métricas en tiempo real (666 lines, 8 tests)
- Rust 1.70+
- Uno de los siguientes proveedores de modelos:
- Ollama server corriendo localmente (recomendado para desarrollo)
- API key de OpenAI, Anthropic o Groq
cargo build --releaseNeuro soporta configuración a través de archivos JSON. La configuración se carga con la siguiente prioridad:
- Archivo especificado con
--config ~/.config/neuro/config.{NEURO_ENV}.json(donde NEURO_ENV=production|development|test)- Valores por defecto
Crea ~/.config/neuro/config.production.json:
{
"fast_model": {
"provider": "ollama",
"url": "http://localhost:11434",
"model": "qwen3:0.6b",
"temperature": 0.7,
"top_p": 0.95
},
"heavy_model": {
"provider": "ollama",
"url": "http://localhost:11434",
"model": "qwen3:8b",
"temperature": 0.7,
"top_p": 0.95
},
"heavy_timeout_secs": 1200,
"max_concurrent_heavy": 2
}{
"provider": "ollama",
"url": "http://localhost:11434",
"model": "qwen3:8b",
"temperature": 0.7,
"top_p": 0.95
}{
"provider": "openai",
"url": "https://api.openai.com/v1",
"model": "gpt-4o-mini",
"api_key": "OPENAI_API_KEY",
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 4096
}Configura la variable de entorno:
export OPENAI_API_KEY="sk-..."{
"provider": "anthropic",
"url": "https://api.anthropic.com/v1",
"model": "claude-3-5-sonnet-20241022",
"api_key": "ANTHROPIC_API_KEY",
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 8192
}Configura la variable de entorno:
export ANTHROPIC_API_KEY="sk-ant-..."{
"provider": "groq",
"url": "https://api.groq.com/openai/v1",
"model": "llama-3.3-70b-versatile",
"api_key": "GROQ_API_KEY",
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 8192
}Configura la variable de entorno:
export GROQ_API_KEY="gsk_..."Las siguientes variables de entorno pueden sobrescribir la configuración:
NEURO_ENV: Entorno de configuración (production|development|test, default: production)NEURO_OLLAMA_URL: URL del servidor OllamaNEURO_FAST_MODEL: Nombre del modelo rápidoNEURO_HEAVY_MODEL: Nombre del modelo pesadoOPENAI_API_KEY: API key de OpenAIANTHROPIC_API_KEY: API key de AnthropicGROQ_API_KEY: API key de Groq
Puedes usar diferentes proveedores para cada modelo:
{
"fast_model": {
"provider": "ollama",
"url": "http://localhost:11434",
"model": "qwen3:0.6b",
"temperature": 0.7,
"top_p": 0.95
},
"heavy_model": {
"provider": "anthropic",
"url": "https://api.anthropic.com/v1",
"model": "claude-3-5-sonnet-20241022",
"api_key": "ANTHROPIC_API_KEY",
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 8192
}
}# Usar configuración por defecto
cargo run --release
# Usar archivo de configuración específico
cargo run --release -- --config ./config.json
# Usar variables de entorno para desarrollo
export NEURO_ENV=development
cargo run --release
# Backward compatibility: parámetros CLI (deprecated)
cargo run --release -- --fast-model qwen3:8b --heavy-model qwen3:8bUna vez dentro de la aplicación, puedes navegar entre las diferentes pantallas:
┌─────────────────────────────────────────────────┐
│ │
│ Chat (Pantalla Principal) │
│ │
│ • Interactúa con el asistente │
│ • Enter: Enviar mensaje │
│ • ↑↓: Scroll │
│ │
│ Tab ↓ │
└─────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ │
│ Settings (Herramientas) │
│ │
│ • ↑↓: Navegar │
│ • Space/Enter: Toggle herramienta │
│ • Esc: ← Volver a Chat │
│ │
│ Tab ↓ │
└─────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ │
│ ⚙️ Model Config (Configuración) │
│ │
│ • ↑↓: Navegar entre campos │
│ • Enter: Editar campo/Activar botón │
│ • ←→: Cambiar provider │
│ • Tab: ← Volver a Chat │
│ • Esc: Cancelar edición │
│ │
└─────────────────────────────────────────────────┘
-
Chat (pantalla principal): Interactúa con el asistente
Enter: Enviar mensaje↑↓: Scroll en el chatTab: Ir a Settings (herramientas)
-
Settings: Habilitar/deshabilitar herramientas disponibles
↑↓: Navegar entre herramientasSpace/Enter: Activar/desactivar herramientaTab: Ir a Model Config (configuración de modelos)Esc: Volver a Chat
-
Model Config ⚙️: Configurar proveedores y modelos interactivamente
↑↓: Navegar entre camposEnter: Editar campo o activar botón←→: Cambiar proveedor (en campos de provider)Tab: Volver a ChatEsc: Cancelar edición o volver a Chat- Botones disponibles:
- 💾 Save Configuration: Guardar cambios
- 🔌 Test Connection: Probar conexión con el proveedor
Para cambiar los modelos desde la interfaz:
- Presiona
Taben la pantalla principal para ir a Settings - Presiona
Tabnuevamente para ir a Model Config - Navega con
↑↓entre los campos:- Fast Model: Provider, URL, Modelo, API Key, Temperature, Top P
- Heavy Model: Provider, URL, Modelo, API Key, Temperature, Top P
- Presiona
Enterpara editar un campo - Para cambiar el provider, usa
←→en el campo "Provider" - Presiona
Enteren "💾 Save Configuration" para guardar - Los cambios requieren reiniciar la aplicación para aplicarse
- DualModelOrchestrator: Orquestación básica con routing inteligente
- PlanningOrchestrator: Sistema de planificación y ejecución de tareas
- RAPTOR: Indexación jerárquica para RAG
- Tool Registry: Sistema extensible de herramientas
Neuro incluye una suite completa de tests funcionales para verificar el correcto funcionamiento del sistema:
- 36+ tests funcionales organizados en 3 archivos
- 40+ casos de prueba cubriendo todas las funcionalidades
- Tests de integración end-to-end con modelos reales
- Tests unitarios de herramientas individuales
- Tests de clasificación y routing inteligente
# Verificar configuración
./run_tests.sh check
# Tests rápidos (sin Ollama)
./run_tests.sh fast
# Tests funcionales completos (requiere Ollama)
./run_tests.sh functional
# Test específico
./run_tests.sh chat # Solo chat conversacional
./run_tests.sh arithmetic # Solo operaciones matemáticas
./run_tests.sh code # Solo generación de código- tests/QUICKSTART.md - Inicio rápido
- tests/README.md - Documentación completa
- tests/EXAMPLES.md - Ejemplos de código
- tests/TEST_SUMMARY.md - Resumen técnico
- tests/VISUAL_MAP.md - Mapa visual
- ✅ Chat conversacional
- ✅ Procesamiento de texto
- ✅ Operaciones aritméticas
- ✅ Generación de código (Rust, Python, JS)
- ✅ Comprensión de contexto
- ✅ Edición de archivos
- ✅ Comandos de terminal
- ✅ Uso de herramientas (tools)
- ✅ Tareas multi-paso
- ✅ Manejo de errores
- ✅ Seguridad y validaciones
MIT