Skip to main content
Glama
good-v1be
by good-v1be

Simple Rick

Постоянная память для AI-агентов разработки.

Каждая сессия работы с AI-агентом начинается с нуля. Вы заново объясняете архитектуру, заново обосновываете решение, которое уже приняли три недели назад, и заново находите баг, который уже однажды исправили. Транскрипт существует, но это стена текста, которую никто — ни человек, ни модель — не перечитывает.

Simple Rick — это MCP-сервер, который работает рядом с вашим агентом и решает эту проблему. Он записывает, что реально происходит в сессии, нормализует это в структурированные чанки с эмбеддингами, связывает чанки в граф и возвращает нужную часть в начале следующей сессии.

Всё работает локально. Файл SQLite в вашем проекте, никакой внешней базы данных, никакой телеметрии.

Статус: alpha. Он работает и используется, но есть шероховатости — см. Известные ограничения. Интерфейсы могут меняться.


Как это работает

flowchart LR
    A["Claude Code<br/>PostToolUse hook"] -->|POST /api/record| B[Recorder]
    W["File watcher<br/>(chokidar)"] --> B
    B --> Q[Norm queue]
    Q --> L["Lightweight<br/>normalizer"]
    L --> D["Deep<br/>normalizer"]
    D --> E[Edge wirer]
    E --> G[("SQLite<br/>+ sqlite-vec")]
    G --> BR[Briefer]
    G --> S[Semantic search]
    G --> I[Insight engine]
    BR --> M["MCP tools<br/>→ your agent"]
    S --> M
    I --> M
    G --> U["Web UI<br/>:3777"]

Пайплайн питают два источника: хук, который сообщает о каждом вызове инструмента вашим агентом, и наблюдатель за файлами, который перехватывает диффы с миллисекундными временными метками. Оба источника попадают в рекордер, который записывает сырые шаги без потери данных при сбоях.

Фоновая очередь разбирает эти шаги, не блокируя вашу сессию. Лёгкий нормализатор дёшево классифицирует намерение и домен; глубокий нормализатор создаёт саммари и эмбеддинги; связыватель рёбер соединяет новые чанки с похожими существующими. В результате получается небольшой граф знаний, а не транскрипт.

В начале следующей сессии модуль брифинга читает этот граф и выдаёт вашему агенту брифинг вместо чистого листа.


Related MCP server: hive-memory

Быстрый старт

Требуется Node.js 20+.

git clone https://github.com/good-v1be/simple-rick.git
cd simple-rick
npm install
npm run build

1. Подключите AI-провайдера

Simple Rick нужен один провайдер для эмбеддингов и один для генерации ответов в чате. Он сам определяет их по переменным окружения — побеждает первое совпадение:

Переменная окружения

Эмбеддинги

Чат

OPENAI_API_KEY

OpenAI

OpenAI

GOOGLE_API_KEY

Google

Gemini

MISTRAL_API_KEY

Mistral

Mistral

ANTHROPIC_API_KEY + VOYAGE_API_KEY

Voyage

Claude Haiku

У Anthropic нет модели эмбеддингов, поэтому рядом с ней нужен Voyage.

2. Зарегистрируйте его как MCP-сервер

В .mcp.json вашего проекта:

{
  "mcpServers": {
    "simple-rick": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/simple-rick/src/server/index.ts"],
      "env": {
        "PROJECT_PATH": ".",
        "OPENAI_API_KEY": "${OPENAI_API_KEY}"
      }
    }
  }
}

3. Установите хук записи

Без этого Simple Rick видит только изменения файлов, а не то, что делает ваш агент. Скопируйте hooks/simple-rick-recorder.js в постоянное место и зарегистрируйте его как хук PostToolUse в ~/.claude/settings.json:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash|Edit|Write|MultiEdit",
        "hooks": [
          { "type": "command", "command": "node /path/to/simple-rick-recorder.js" }
        ]
      }
    ]
  }
}

Хук работает по принципу fire-and-forget: он никогда не блокирует вашего агента и молча ничего не делает, когда Simple Rick не запущен.

4. Используйте его

Начните сессию и один раз вызовите simple_rick_init, чтобы заполнить контекст проекта. После этого открывайте каждую сессию с simple_rick_briefing, а завершайте её с simple_rick_close.


MCP-инструменты

Инструмент

Что делает

simple_rick_init

Разовая настройка. Сканирует кодовую базу, извлекает неявные архитектурные решения из кода и истории git и закладывает начальный контекст.

simple_rick_briefing

Вызывайте в начале сессии. Возвращает контекст проекта, открытые задачи, уроки и рекомендации. Принимает необязательный focus, чтобы сузить выдачу.

simple_rick_close

Вызывайте в конце сессии. Разбирает очередь: нормализует пары сообщений, извлекает уроки, создаёт эмбеддинги.

simple_rick_search

Семантический поиск по всей истории проекта. Фильтруется по намерению (bugfix, refactor, architecture_decision, …).

simple_rick_ask

Задаёт вопрос о коде, прошлых решениях или о том, как связаны части проекта.

simple_rick_decision

Явно записывает архитектурное решение с обоснованием и отклонёнными альтернативами.

simple_rick_link

Вручную перекрёстно связывает два чанка или понятия.

simple_rick_insights

Добывает из базы знаний корреляции, тренды и аномалии с проверкой через LLM. Режимы: deep, semantic, chains, all.


Веб-интерфейс

Сервер также предоставляет локальную визуализацию потока на http://127.0.0.1:3777, показывающую пайплайн в реальном времени и результирующий граф. Она защищена bearer-токеном, который генерируется при первом запуске; URL вместе с токеном выводится функцией simple_rick_briefing.

REST-эндпоинты: GET /api/graph, GET /api/sessions, POST /api/record.


Где хранятся ваши данные

Всё находится в папке .simple-rick/ внутри вашего проекта:

.simple-rick/
  simple-rick.db   SQLite: sessions, turns, chunks, edges, embeddings (sqlite-vec)
  .token           bearer token for the local HTTP server (mode 0600)

При первом запуске Simple Rick добавляет .simple-rick/ в ваш .gitignore. Никуда ничего не отправляется, кроме как выбранному вами AI-провайдеру для нормализации и эмбеддингов.

Помните о размере. Полная запись обходится недешево по месту на диске — интенсивный проект продолжительностью в несколько дней может дать базу в сотни мегабайт.


Разработка

npm run dev     # tsx watch
npm run build   # compile to dist/
npm run lint    # tsc --noEmit
npm test        # vitest (11 unit + integration tests)

Также есть сквозной набор тестов в e2e/, который запускает настоящие сессии Claude Code CLI против сервера, чтобы проверить каждый MCP-инструмент:

python3 e2e/test_mcp_e2e.py        # requires the `claude` CLI and a configured provider

Он не подключён к npm test, потому что требует реальных API-вызовов.


Настройка

Всё опционально — значения по умолчанию те, с которыми проект работал месяцами.

Переменная

По умолчанию

Что делает

SIMPLE_RICK_LOG_LEVEL

info

error, warn, info или debug. Всё идёт в stderr; stdout принадлежит MCP.

SIMPLE_RICK_MAX_FILES

500

Сколько файлов обходит сканер кодовой базы. Увеличьте для больших репозиториев.

SIMPLE_RICK_MAX_FILE_SIZE

50000

Максимальный размер файла, который читает сканер, в байтах.

SIMPLE_RICK_QUEUE_THROTTLE_MS

2000

Пауза между проходами нормализации. Меньшее значение быстрее расходует API-вызовы.


Известные ограничения

Честный список, чтобы никто не удивлялся:

  • Проверено только с Claude Code. Интерфейс MCP стандартный, но хук записи написан для формата хуков Claude Code.

  • Запись обходится недешево по месту на диске. См. Где хранятся ваши данные.

  • Граф знаний настолько хорош, насколько хороша модель за ним. Нормализация, маршрутизация по доменам и проверка инсайтов — это всё LLM-вызовы; маленькая или дешёвая модель даёт соответственно размытый граф.

  • Очистки пока нет. Ничто не удаляется из базы данных само по себе.


Лицензия

MIT — см. LICENSE.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Persistent memory for AI coding tools that captures conversations, builds a searchable knowledge graph, and automatically injects relevant context into new prompts.
    8 npm
    248
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI coding agents with persistent, graph-connected memory across projects, enabling cross-project context retrieval via synaptic connections and hybrid search.
    0
    8
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides persistent, searchable memory and knowledge capture for AI-assisted development, enabling agents to retain decisions, bugs, and patterns across sessions and projects.
    MIT