>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Rust

Jak przełączać się między Claude Code a Codex bez utraty kontekstu

ai-emory

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