← Claude на русском
Перевод с разбором · для Сони
Адаптировал Claude Opus 4.7 (ИИ) на основе документации Anthropic. Полная версия — в docs/contextual-retrieval.html.

Contextual retrieval: «умный поиск» по истории

Адаптация для Сони · 2026-04-23

Зачем тебе это нужно

У бота накапливается много разговоров с пользователем. Год спустя пользователь напишет: «помнишь, я рассказывала про бег?» — и ты хочешь, чтобы бот «вспомнил» ту сессию. Запихнуть всю историю в system prompt невозможно (дорого, не поместится). Нужно уметь искать только релевантные куски и подкладывать их в промпт в нужный момент. Эта техника называется RAG (Retrieval-Augmented Generation). А contextual retrieval — её улучшенная версия от Anthropic.

Словарик

Как выглядит классический RAG

  1. Режешь базу (истории разговоров) на чанки.
  2. Каждый чанк превращаешь в эмбеддинг и сохраняешь в vector store.
  3. Когда приходит новое сообщение — превращаешь его в эмбеддинг, ищешь 5–20 самых похожих чанков.
  4. Подкладываешь найденные чанки в промпт под тегом <memory>.

Проблема классического RAG

Когда ты режешь длинный разговор на чанки по 500 слов, из каждого чанка «выпадает» контекст: кто говорил, когда, про что был весь разговор. Строка «пробежала 3 км впервые» сама по себе плохо находится на запрос «расскажи про первые шаги в беге у Ани».

Идея contextual retrieval

Перед тем как превращать чанк в эмбеддинг — дописать к нему короткий контекст: чей это разговор, когда, о чём. Делает это та же LLM: даёшь ей полный документ и чанк, просишь написать в одну фразу, «где этот чанк живёт». Результат:

исходный чанк:
«пробежала 3 км впервые, чуть не умерла, но горжусь»

контекстуализированный чанк:
«Запись из сессии с Аней от 2026-04-15, разговор про долгосрочную цель
«бегать 3 раза в неделю». Аня:
пробежала 3 км впервые, чуть не умерла, но горжусь»

Что здесь происходит: теперь этот чанк найдётся и на запрос «первая пробежка», и на «Аня бег», и на «апрель 2026». Релевантность поиска вырастает в разы.

Сколько это стоит

Благодаря prompt caching один и тот же документ подставляется в контекст для каждого своего чанка, но кешируется — и на длинную историю обработка выходит около $1 за миллион токенов. Это разовая стоимость: один раз обработал и сохранил контекстуализированные чанки, дальше они используются сколько угодно.

Нужно ли тебе это прямо сейчас

Честно: скорее всего нет, пока у пользователя меньше 100 сессий в истории. Для начала хватит: сохранять важные факты в отдельную таблицу user_notes (текущая цель, срывы, интересы) и подставлять их в system prompt целиком. Это не RAG, а просто «короткий дайджест пользователя».

Contextual retrieval пригодится, когда:

Что это значит для твоего бота

Полная версия — в docs/contextual-retrieval.html.