Baby-SkyNet

Un sistema autónomo de gestión de memoria para Claude AI, con integración de LLM de múltiples proveedores y una base de datos de memoria persistente.

Documentación

Baby-SkyNet 🤖

Sistema autónomo de gestión de memoria para Claude AI con integración de LLM multi-proveedor y base de datos de grafos

Un servidor MCP que otorga a Claude una memoria permanente y buscable, incluyendo análisis semántico, soporte LLM multi-proveedor e integración de base de datos de grafos.

¿Qué es?

Baby-SkyNet amplía Claude con:

  • Memoria persistente - Los recuerdos sobreviven los límites de la sesión
  • Categorización - Organización estructurada del conocimiento
  • Búsqueda de texto completo - Encuentra conversaciones y conocimientos antiguos
  • Análisis semántico - Extracción de conceptos asistida por IA
  • Soporte multi-proveedor - Ollama (local) + API de Anthropic
  • Base de datos de grafos - Integración de Neo4j para información vinculada

Características v2.3

Gestión de memoria principal

  • Base de datos SQL - Almacenamiento local robusto
  • Sistema de categorías - Programación, depuración, proyectos, etc.
  • Búsqueda de texto completo - Busca en todas las memorias
  • Operaciones CRUD - Crear, leer, actualizar, mover

Almacenamiento avanzado de vectores y grafos

  • Integración de ChromaDB - Búsqueda semántica basada en vectores
  • Base de datos de grafos Neo4j - Interconexión de memoria basada en relaciones
  • Búsqueda multi-fuente - Resultados combinados de todas las fuentes de datos
  • Analítica de grafos - Estadísticas de red y análisis de relaciones

Motor de análisis semántico

  • LLM multi-proveedor - Ollama (local) o API de Anthropic
  • Clasificación de memoria - técnico, emocional, procedimental, fáctico
  • Extracción de conceptos - Extracción automática de conceptos clave
  • Procesamiento por lotes - Análisis asíncrono de múltiples memorias
  • Enriquecimiento de metadatos - Detección de herramientas, personas y código
  • Detección de relaciones - Vínculos semánticos automáticos

Gestión de contenedores y auto-inicio

  • Integración de Podman/Docker - Gestión automática de contenedores
  • Servicios de auto-inicio - Iniciar ChromaDB y Neo4j automáticamente
  • Monitoreo de salud - Estado del contenedor en la herramienta memory_status
  • Recuperación inteligente - Reinicio de contenedores fallidos

Inicio rápido

Requisitos previos

  • Node.js >= 18.0
  • TypeScript >= 5.0
  • Ollama (opcional, para LLM local) o clave de API de Anthropic
  • Entorno compatible con MCP (Claude Desktop, etc.)

Instalación

# Repository klonen
git clone https://github.com/spie-mkroehn/baby-skynet.git
cd baby-skynet

# Dependencies installieren
npm install

# TypeScript kompilieren
npm run build

# Starten
npm start

Configuración

Opción 1: API de Anthropic (recomendada)

# .env Datei erstellen
echo "ANTHROPIC_API_KEY=your_api_key_here" > .env

# Mit Claude Haiku starten
node build/index.js --db-path ./claude_memory.db --brain-model claude-3-5-haiku-latest

Opción 2: Ollama local

# Ollama installieren und Modell laden
ollama pull llama3.1:latest

# Mit Ollama starten
node build/index.js --db-path ./claude_memory.db --brain-model llama3.1:latest

Integración MCP

En Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "baby-skynet": {
      "command": "node",
      "args": [
        "/pfad/zu/baby-skynet/build/index.js", 
        "--db-path", "/pfad/zu/claude_memory.db",
        "--brain-model", "claude-3-5-haiku-latest"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your_api_key_here"
      }
    }
  }
}

Base de datos de grafos Neo4j (opcional pero recomendada)

Configuración de Neo4j:

# 1. Neo4j installieren
# Download von https://neo4j.com/download/
# Oder mit Docker:
docker run --publish=7474:7474 --publish=7687:7687 --volume=$HOME/neo4j/data:/data neo4j

# 2. Environment Variables konfigurieren
cp .env.example .env
# Bearbeite .env mit deinen Neo4j Credentials:
# NEO4J_URL=bolt://localhost:7687
# NEO4J_USER=neo4j
# NEO4J_PASSWORD=your_password

Usar funciones de grafo:

  • save_memory_with_graph - Memoria con interconexión automática
  • search_memories_with_graph - Búsqueda avanzada con contexto
  • get_memory_graph_context - Mostrar red de relaciones
  • get_graph_statistics - Estadísticas de red

Arquitectura de fábrica de clientes LLM

Baby-SkyNet utiliza una LLMClientFactory central para gestionar todos los proveedores de LLM:

Proveedores compatibles

  • Anthropic Claude: claude-3-sonnet, claude-3-haiku, etc.
  • Modelos locales de Ollama: llama2, mistral, etc.

Detección automática de proveedores

import { LLMClientFactory } from './llm/LLMClientFactory.js';

// Automatische Erkennung basierend auf Modellname
const anthropicClient = LLMClientFactory.createClient('claude-3-sonnet');
const ollamaClient = LLMClientFactory.createClient('llama2');

Integración de SemanticAnalyzer

El SemanticAnalyzer utiliza la fábrica automáticamente:

import { SemanticAnalyzer } from './llm/SemanticAnalyzer.js';

const analyzer = new SemanticAnalyzer('claude-3-sonnet'); // Verwendet Factory intern

🧪 Pruebas

Baby-SkyNet cuenta con un conjunto de pruebas integral con más de 18 pruebas:

# Build & einzelner Test
npm run build
node tests/test-simple.js

# Alle Tests ausführen
Get-ChildItem tests\test-*.js | ForEach-Object { node $_.FullName }

Categorías de pruebas:

  • Pruebas del sistema principal (funcionalidad básica)
  • Pruebas de integración (de extremo a extremo)
  • Pruebas de interfaz MCP (Claude Desktop)
  • Pruebas de base de datos (PostgreSQL/SQLite)
  • Pruebas de VectorDB (ChromaDB)
  • Pruebas de servicios externos (OpenAI, Neo4j)

📖 Documentación detallada: TESTING.md | tests/README.md

✅ Reorganización de JobProcessor (enero de 2025)

Estructura de directorios optimizada

  • JobProcessor.ts movido de src/jobs/ a src/utils/
  • Directorio vacío jobs/ eliminado
  • Rutas de importación actualizadas en consecuencia

Nueva estructura ligera:

src/
├── database/     # Alle Datenbank-bezogenen Klassen
├── embedding/    # Embedding-Services
├── llm/          # LLM-Clients und SemanticAnalyzer
├── utils/        # Utilities inkl. JobProcessor
└── index.ts      # Hauptdatei

Ventajas:

  • Menos directorios → más claro