Baby-SkyNet

Um sistema autônomo de gerenciamento de memória para Claude AI, com integração de LLM de múltiplos provedores e um banco de dados de memória persistente.

Documentação

Baby-SkyNet 🤖

Sistema Autônomo de Gerenciamento de Memória para Claude AI com Integração Multi-Provedor de LLM e Banco de Dados Gráfico

Um servidor MCP que dá ao Claude uma memória permanente e pesquisável - incluindo análise semântica, suporte a LLM multi-provedor e integração com banco de dados gráfico.

O que é isso?

Baby-SkyNet expande o Claude com:

  • Memória Persistente - As memórias sobrevivem aos limites de sessão
  • Categorização - Organização estruturada do conhecimento
  • Busca em Texto Completo - Encontre conversas e insights antigos
  • Análise Semântica - Extração de conceitos com IA
  • Suporte Multi-Provedor - Ollama (local) + API Anthropic
  • Banco de Dados Gráfico - Integração Neo4j para informações vinculadas

Recursos v2.3

Gerenciamento Central de Memória

  • ✅ Banco de Dados SQL - Armazenamento local robusto
  • ✅ Sistema de Categorias - Programação, depuração, projetos, etc.
  • ✅ Busca em Texto Completo - Pesquise todas as memórias
  • ✅ Operações CRUD - Criar, Ler, Atualizar, Mover

Armazenamento Avançado de Vetores e Grafos

  • ✅ Integração ChromaDB - Busca semântica baseada em vetores
  • ✅ Banco de Dados Gráfico Neo4j - Interconexão de memórias baseada em relacionamentos
  • ✅ Busca Multi-Fonte - Resultados combinados de todas as fontes de dados
  • ✅ Análise de Grafos - Estatísticas de rede e análise de relacionamentos

Mecanismo de Análise Semântica

  • ✅ LLM Multi-Provedor - Ollama (local) ou API Anthropic
  • ✅ Classificação de Memórias - técnica, emocional, processual, factual
  • ✅ Extração de Conceitos - Extração automática de conceitos-chave
  • ✅ Processamento em Lote - Análise assíncrona de múltiplas memórias
  • ✅ Enriquecimento de Metadados - Detecção de ferramentas, pessoas e código
  • ✅ Detecção de Relacionamentos - Vínculos semânticos automáticos

Gerenciamento de Contêineres e Inicialização Automática

  • ✅ Integração Podman/Docker - Gerenciamento automático de contêineres
  • ✅ Serviços de Inicialização Automática - Iniciar ChromaDB e Neo4j automaticamente
  • ✅ Monitoramento de Saúde - Status do contêiner na ferramenta memory_status
  • ✅ Recuperação Inteligente - Reiniciar contêineres com falha

Início Rápido

Pré-requisitos

  • Node.js >= 18.0
  • TypeScript >= 5.0
  • Ollama (opcional, para LLM local) ou Chave da API Anthropic
  • Ambiente compatível com MCP (Claude Desktop, etc.)

Instalação

# 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

Configuração

Opção 1: API 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

Opção 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

Integração MCP

No 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"
      }
    }
  }
}

Banco de Dados Gráfico Neo4j (Opcional, mas recomendado)

Configuração do 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 recursos de grafo:

  • save_memory_with_graph - Memória com interconexão automática
  • search_memories_with_graph - Busca avançada com contexto
  • get_memory_graph_context - Exibir rede de relacionamentos
  • get_graph_statistics - Estatísticas de rede

Arquitetura da Fábrica de Clientes LLM

Baby-SkyNet usa uma LLMClientFactory central para gerenciar todos os provedores de LLM:

Provedores suportados

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

Detecção automática de provedores

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

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

Integração do SemanticAnalyzer

O SemanticAnalyzer usa a factory automaticamente:

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

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

🧪 Testes

Baby-SkyNet possui uma suíte de testes abrangente com 18+ testes:

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

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

Categorias de teste:

  • Testes do sistema principal (funcionalidade básica)
  • Testes de integração (ponta a ponta)
  • Testes de interface MCP (Claude Desktop)
  • Testes de banco de dados (PostgreSQL/SQLite)
  • Testes de VectorDB (ChromaDB)
  • Testes de serviços externos (OpenAI, Neo4j)

📖 Documentação detalhada: TESTING.md | tests/README.md

✅ Reorganização do JobProcessor (janeiro de 2025)

Estrutura de diretórios otimizada

  • JobProcessor.ts movido de src/jobs/ para src/utils/
  • Diretório vazio jobs/ removido
  • Caminhos de importação atualizados de acordo

Nova estrutura enxuta:

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

Vantagens:

  • Menos diretórios → mais organizado