>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Rust

Come passare da Claude Code a Codex senza perdere il contesto

ai-memory

Situazione familiare: sei seduto nel terminale con Claude Code, stai debuggando un bug complicato in una coda distribuita per un'ora e mezza, hai provato cinque ipotesi che non funzionavano, e alla fine hai trovato la soluzione giusta. Poi la sessione cresce, il contesto si comprime, o si raggiungono i limiti. Passi a Codex o OpenCode nella stessa cartella, e inizia il caos. Il nuovo assistente deve essere aggiornato da zero: perché non puoi toccare la configurazione NGINX, quali test hanno già fallito, e quale struttura del database abbiamo scelto venti minuti fa.

Il progetto ai-memory mira a risolvere questo problema una volta per tutte. È stato creato da Fabio Akita (noto nella community come AkitaOnRails). L'idea è dare agli agenti AI da console una memoria condivisa a lungo termine e un passaggio automatico del contesto tra sessioni e modelli diversi.

Qual è il concetto

Di solito, "memoria AI" significa un database vettoriale dove i log delle conversazioni grezzi vengono inseriti come embedding. In pratica, questi log sono pieni di spazzatura: chiamate di strumenti intermedie, esecuzioni di test ripetute, errori di sintassi.

L'autore di ai-memory ha preso una strada diversa, ispirato al concetto di LLM Wiki di Karpathy. Qui la memoria è strutturata come un wiki normale fatto di file Markdown in un repository Git. Il server intercetta gli eventi del ciclo di vita dell'agente, li ripulisce dal rumore non necessario e compila un sommario compresso alla fine della sessione: cosa è stato fatto, quali conclusioni sono state raggiunte, quali attività rimangono aperte.

Quando apri un nuovo terminale con un agente diverso, lo strumento gli alimenta automaticamente un sommario strutturato proprio prima del primo prompt. Nessun copia-incolla manuale.

Sotto il cofano e nel terminale

Il server è scritto in Rust. Avvia un servizio locale con supporto MCP (Model Context Protocol), hook del ciclo di vita e un'interfaccia web integrata.

Supporta praticamente tutti gli attuali agent CLI:

  • Claude Code
  • OpenAI Codex
  • Command Code
  • Devin CLI
  • OpenCode, Cursor, Zed
  • Gemini CLI, Grok Build CLI, Kimi Code, Kiro CLI, Pi / OMP

I dati vengono archiviati localmente in una singola directory:

<data_dir>/
├── wiki/    # Markdown-страницы под версионным контролем Git
├── raw/     # очищенные сегменты сессий
├── db/      # SQLite с индексами FTS5, сущностями и эмбеддингами
└── logs/    # логи работы

Ogni progetto è isolato tramite il percorso del repository o un file marker .ai-memory.toml. Se lavori con un monorepo o più worktree Git, vengono collegati in un contesto unificato.

Funzionalità chiave in pratica

Passaggio fluido tra agenti

ai-memory ha una modalità di sessione gestita ai-memory run. Funziona in modo semplice:

cd /path/to/project
ai-memory run claude

# Закончили работу в Claude Code, продолжаем задачу в Codex:
ai-memory run codex --yolo

# А потом возвращаемся к сессии через Command Code:
ai-memory run command-code

L'agente legge il blocco "dove ci siamo fermati" all'avvio. Contiene decisioni architetturali recenti, domande aperte e risultati dei test. Se non specifichi un nome di agente, il comando ai-memory run seleziona automaticamente la sessione attiva più recente nella cartella corrente.

Il comando ai-memory continue va ancora oltre: puoi chiamarlo da qualsiasi cartella, e ti riporterà al progetto su cui stavi lavorando l'ultima volta.

Wiki invece di accumulo di log

L'intera base di conoscenza è archiviata come testo normale. Puoi aprirla in Obsidian, leggerla con grep, o sfogliarla nel browser integrato sulla porta 127.0.0.1:49374/web.

Se vuoi registrare una regola importante del progetto, basta dire all'agente: "salva in memoria permanente che usiamo NATS JetStream per le code." L'agente chiama lo strumento MCP memory_write_page, e appare un file Markdown versionato nel repository.

La ricerca nella base di conoscenza è ibrida. La ricerca full-text SQLite FTS5 viene eseguita prima, poi il matching delle entità e le connessioni a grafo tra le pagine. Se colleghi un modello di embedding, viene aggiunta anche la ricerca vettoriale.

Allo stesso tempo, ai-memory può distinguere tra regole architetturali stabili e note temporanee della sessione, dando priorità alle pagine stabili dalle cartelle _rules/ e decisions/.

Funzionamento senza LLM esterni

Un dettaglio interessante: ai-memory si avvia senza alcuna chiave API di reti neurali. In modalità "zero-LLM", la ricerca funziona tramite FTS5 ed entità, e i sommari delle sessioni vengono assemblati usando regole deterministiche.

Se configuri le chiavi (Anthropic, OpenAI, Gemini, o Ollama locale tramite un endpoint compatibile), lo strumento abilita il consolidamento intelligente delle pagine, il rilevamento dei conflitti nella base di conoscenza e l'auto-apprendimento in background per il progetto.

Avvio rapido tramite Docker

Il modo più veloce per distribuire il server sulla tua workstation:

# 1. Запускаем локальный сервер
docker run -d --name ai-memory \
    --restart unless-stopped \
    -p 127.0.0.1:49374:49374 \
    -v ai-memory-data:/data \
    -e AI_MEMORY_LLM_PROVIDER=anthropic \
    -e ANTHROPIC_API_KEY=sk-ant-... \
    akitaonrails/ai-memory:latest

# 2. Подключаем MCP и хуки для Claude Code
ai-memory install-mcp   --client claude-code --apply
ai-memory install-hooks --agent  claude-code --apply

Per gli utenti Arch Linux, sono disponibili pacchetti pronti ai-memory-bin con unità systemd in AUR. Binari nativi per Apple Silicon e Intel vengono rilasciati per macOS.

Se il server viene spostato su un home server o rete locale, la sicurezza è configurata tramite token Bearer. Il server ascolta le richieste, verifica l'autorizzazione e separa la memoria tra più sviluppatori attraverso slot operatore.

A cosa serve

Lo strumento risolve tre compiti specifici.

Prima cosa — sviluppo multi-agente. È più veloce redigere un task in Claude, fare il refactoring in Codex, e la code review tramite Gemini. Senza un livello di memoria condivisa, questo flusso di lavoro si trasforma in una routine infinita di copia del contesto.

Seconda cosa — onboarding di un agente su un repository vecchio. Il comando ai-memory bootstrap legge la cronologia dei commit, README e la documentazione del progetto, generando pagine iniziali della base di conoscenza.

Terza cosa — audit locale. In qualsiasi momento puoi aprire l'interfaccia web, controllare le note generate, ripristinare una modifica sbagliata tramite ai-memory restore-page, o pulire i dati obsoleti.

Riepilogo

ai-memory affascina con il suo approccio pragmatico. Invece di costruire un'altra stack pesante con database vettoriali esterni, l'autore ha optato per Rust veloce, SQLite affidabile e Git semplice con Markdown.

Se usi attivamente assistenti AI da terminale e sei stanco di dover spiegare continuamente il contesto del progetto ai modelli ogni giorno, il repository merita sicuramente un'occhiata. Inizia con un'esecuzione locale abbinata al tuo agente CLI principale per valutare quanto sia comodo il trasferimento del contesto tra i task.

Progetti correlati