Перейти к содержимому

Память

Окно терминала
bee remember "Redis кэширует токены сессий, а не данные пользователей" \
--type decision --reason "у пользовательских данных другой TTL"

Четыре типа, и тип — это и есть суть: он решает, что ещё стоит спросить.

тип запишите также
decision --reason, --alternative "вариант: почему нет" (повторяемо)
error --solution, --prevention
learning (по умолчанию) --category
pattern --category

Всё хранится в MongoDB с отметкой проекта, сессии, автора (из конфигурации git) и времени.

Окно терминала
bee remember search "redis"
bee remember search "кэширование" --all-projects --since 30d
bee remember search "кэширование пользовательских сессий" --semantic

Поиск возвращает объединение самых свежих и самых релевантных совпадений, потому что каждая половина по отдельности что-то теряет.

Измерено на хранилище из 50 001 записи: половина, отсортированная по дате, так и не добралась до двухлетнего факта, отвечавшего на вопрос — он был погребён под 50 000 более новых. Половина, отсортированная по релевантности, вернула его первым, за 27 мс. И наоборот: одна релевантность упускает «что я только что делал» — а это большая часть того, что нужно агенту, возобновляющему работу.

--semantic ранжирует по смыслу, а не по совпадению слов, поэтому «кэширование пользовательских сессий» находит «Redis кэширует токены сессий».

  • Локально (по умолчанию) — многоязычный sentence-transformer (distiluse-base-multilingual-cased-v2, более 50 языков), запускаемый через ONNX Runtime и скачиваемый в ~/.bee/models/ при первом использовании. Ни вызовов API, ни ключей.
  • Geminibee config set embedding.provider gemini плюс bee config set gemini.apiKey <ключ> --secret.

Косинус считается внутри MongoDB, и обратно приходят только победители. Ранжирование на клиенте означало скачивание всех сохранённых векторов на каждый запрос — измеренные 96,5 МБ при десяти тысячах записей. Теперь это 1,5 КБ, с побитово идентичными оценками.

Эмбеддинги при сохранении делаются по мере возможности: если бэкенд недоступен, факт всё равно сохраняется, просто --semantic его не найдёт.

Окно терминала
bee remember context # что усвоил этот проект, полезное вперёд
bee remember history --since 7d
bee remember stats

Записи памяти хранят, кто их создал; имя берётся из конфигурации git так же, как для правил — локальная для репозитория личность важнее глобальной, и связанные рабочие деревья (worktree) учтены: конфигурация живёт в основном репозитории, а не под файлом .git внутри worktree.

В общем хранилище именно это не даёт заметке коллеги читаться как ваша.