Jak przełączać się między Claude Code a Codex bez utraty kontekstu
Znana sytuacja: siedzisz w terminalu z Claude Code, debugujesz trudny błąd w rozproszonej kolejce od półtorej godziny, wypróbowałeś pięć nietrafionych hipotez i wreszcie znalazłeś właściwe rozwiązanie. Potem sesja się rozrasta, kontekst się kompresuje lub osiągasz limity. Przełączasz się na Codex lub OpenCode w tym samym folderze i zaczyna się cyrk. Nowy asystent musi zostać poinformowany od zera: dlaczego nie można dotykać konfiguracji NGINX, które testy już nie przeszły i jaką strukturę bazy danych wybraliśmy dwadzieścia minut temu.
Projekt ai-memory ma rozwiązać ten problem raz na zawsze. Został stworzony przez Fabio Akita (znanego w społeczności jako AkitaOnRails). Pomysł polega na tym, by dać konsolowym agentom AI wspólną długoterminową pamięć i automatyczne przekazywanie kontekstu między sesjami oraz różnymi modelami.
Na czym polega koncepcja
Zazwyczaj „pamięć AI" oznacza wektorową bazę danych, do której wrzuca się surowe dzienniki dialogów jako embeddingi. W praktyce te dzienniki są pełne śmieci: pośrednich wywołań narzędzi, powtórzonych uruchomień testów, błędów składniowych.
Autor ai-memory wybrał inną ścieżkę, inspirowaną koncepcją LLM Wiki Karpathy'ego. Tutaj pamięć jest ustrukturyzowana jako zwykła wiki z plików Markdown w repozytorium Git. Serwer przechwytuje zdarzenia cyklu życia agenta, oczyszcza je z niepotrzebnego szumu i kompiluje skompresowane podsumowanie na końcu sesji: co zostało zrobione, jakie wnioski wyciągnięto i jakie zadania pozostały otwarte.
Gdy otwierasz nowy terminal z innym agentem, narzędzie automatycznie podaje mu ustrukturyzowane podsumowanie tuż przed pierwszym promptem. Bez ręcznego kopiowania ze schowka.
Pod maską i w terminalu
Serwer jest napisany w Rust. Uruchamia lokalną usługę z obsługą MCP (Model Context Protocol), hakami cyklu życia i wbudowanym interfejsem webowym.
Obsługuje praktycznie wszystkie obecne agenty CLI:
- Claude Code
- OpenAI Codex
- Command Code
- Devin CLI
- OpenCode, Cursor, Zed
- Gemini CLI, Grok Build CLI, Kimi Code, Kiro CLI, Pi / OMP
Dane są przechowywane lokalnie w jednym katalogu:
<data_dir>/
├── wiki/ # Markdown-страницы под версионным контролем Git
├── raw/ # очищенные сегменты сессий
├── db/ # SQLite с индексами FTS5, сущностями и эмбеддингами
└── logs/ # логи работы
Każdy projekt jest izolowany przez ścieżkę repozytorium lub plik markerowy .ai-memory.toml. Jeśli pracujesz z monorepo lub wieloma Git worktrees, są one połączone w ujednolicony kontekst.
Kluczowe funkcje w praktyce
Bezszwowe przełączanie między agentami
ai-memory ma tryb zarządzanych sesji ai-memory run. Działa to prosto:
cd /path/to/project
ai-memory run claude
# Закончили работу в Claude Code, продолжаем задачу в Codex:
ai-memory run codex --yolo
# А потом возвращаемся к сессии через Command Code:
ai-memory run command-code
Agent czyta blok „gdzie skończyliśmy" przy starcie. Zawiera on ostatnie decyzje architektoniczne, otwarte pytania i wyniki testów. Jeśli nie określisz nazwy agenta, polecenie ai-memory run automatycznie wybiera najbardziej aktywną sesję w bieżącym folderze.
Polecenie ai-memory continue idzie jeszcze dalej: możesz wywołać je z dowolnego folderu, a przeniesie cię z powrotem do ostatnio używanego projektu.
Wiki zamiast składowiska logów
Cała baza wiedzy jest przechowywana jako zwykły tekst. Możesz otworzyć ją w Obsidian, przeczytać za pomocą grep lub przeglądać w wbudowanej przeglądarce na porcie 127.0.0.1:49374/web.
Jeśli chcesz zapisać ważną regułę projektu, po prostu powiedz agentowi: „zapisz do stałej pamięci, że używamy NATS JetStream do kolejek". Agent wywołuje narzędzie MCP memory_write_page i w repozytorium pojawia się wersjonowany plik Markdown.
Wyszukiwanie w bazie wiedzy jest hybrydowe. Najpierw działa wyszukiwanie pełnotekstowe SQLite FTS5, potem dopasowywanie encji i połączenia grafowe między stronami. Jeśli podłączysz model osadzeń, dodaje się też wyszukiwanie wektorowe.
Jednocześnie ai-memory potrafi rozróżniać stabilne reguły architektoniczne od tymczasowych notatek sesyjnych, priorytetyzując stabilne strony z folderów _rules/ i decisions/.
Praca bez zewnętrznych LLM
Interesujący szczegół: ai-memory startuje bez żadnych kluczy API sieci neuronowej. W trybie „zero-LLM" wyszukiwanie działa przez FTS5 i encje, a podsumowania sesji są składane za pomocą deterministycznych reguł.
Jeśli skonfigurujesz klucze (Anthropic, OpenAI, Gemini lub lokalny Ollama przez kompatybilny endpoint), narzędzie włączy inteligentną konsolidację stron, wykrywanie konfliktów w bazie wiedzy i samonauki w tle dla projektu.
Szybki start przez Docker
Najszybszy sposób wdrożenia serwera na stacji roboczej:
# 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
Dla użytkowników Arch Linux dostępne są gotowe pakiety ai-memory-bin z jednostkami systemd w AUR. Natywne pliki binarne dla Apple Silicon i Intel są wydawane dla macOS.
Jeśli serwer zostanie przeniesiony na serwer domowy lub sieć lokalną, bezpieczeństwo jest konfigurowane przez tokeny Bearer. Serwer nasłuchuje żądań, weryfikuje autoryzację i rozdziela pamięć między wieloma programistami przez sloty operatorów.
Do czego to się przyda
Narzędzie rozwiązuje trzy konkretne zadania.
Po pierwsze — rozwój z wieloma agentami. Szybciej jest napisać zadanie w Claude, zrefaktoryzować je w Codex i przeprowadzić przegląd kodu przez Gemini. Bez wspólnej warstwy pamięci ten przepływ pracy zamienia się w niekończące się kopiowanie kontekstu.
Po drugie — wdrażanie agenta do starego repozytorium. Polecenie ai-memory bootstrap czyta historię commitów, README i dokumentację projektu, generując początkowe strony bazy wiedzy.
Po trzecie — lokalny audyt. W każdej chwili możesz otworzyć interfejs webowy, sprawdzić wygenerowane notatki, przywrócić złą edycję przez ai-memory restore-page lub wyczyścić nieaktualne dane.
Podsumowanie
ai-memory przyciąga pragmatycznym podejściem. Zamiast budować kolejną ciężką stertę z zewnętrznymi wektorowymi bazami danych, autor wziął szybki Rust, niezawodny SQLite i prosty Git z Markdown.
Jeśli aktywnie używasz terminalowych asystentów AI i masz dość ciągłego wyjaśniania kontekstu projektu modelom każdego dnia, repozytorium zdecydowanie warto sprawdzić. Zacznij od lokalnego uruchomienia sparowanego z głównym CLI agentem, żeby ocenić, jak wygodne jest przekazywanie kontekstu między zadaniami.
Powiązane projekty