Инструмент памяти позволяет Claude сохранять и извлекать информацию между разговорами через каталог файлов памяти. Claude может создавать, читать, обновлять и удалять файлы, которые сохраняются между сессиями, позволяя ему накапливать знания со временем без необходимости хранить всё в окне контекста. Инструмент памяти работает на стороне клиента — вы контролируете где и как данные хранятся через вашу собственную инфраструктуру.
Инструмент памяти в настоящее время находится в бета-версии. Чтобы включить его, используйте бета-заголовок context-management-2025-06-27 в ваших API-запросах.Пожалуйста, обратитесь к нам через нашу форму обратной связи, чтобы поделиться своими отзывами об этой функции.

Случаи использования

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

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

При включении Claude автоматически проверяет свой каталог памяти перед началом задач. Claude может создавать, читать, обновлять и удалять файлы в каталоге /memories для хранения того, что он изучает во время работы, а затем ссылаться на эти воспоминания в будущих разговорах для более эффективного выполнения похожих задач или продолжения с того места, где остановился. Поскольку это инструмент на стороне клиента, Claude делает вызовы инструментов для выполнения операций с памятью, а ваше приложение выполняет эти операции локально. Это даёт вам полный контроль над тем, где и как хранится память. Для безопасности вы должны ограничить все операции с памятью каталогом /memories.

Пример: Как работают вызовы инструмента памяти

Когда вы просите Claude помочь с задачей, Claude автоматически сначала проверяет свой каталог памяти. Вот как выглядит типичное взаимодействие: 1. Запрос пользователя:
"Помогите мне ответить на этот тикет службы поддержки клиентов."
2. Claude проверяет каталог памяти:
"Я помогу вам ответить на тикет службы поддержки клиентов. Позвольте мне проверить мою память на предмет любого предыдущего контекста."
Claude вызывает инструмент памяти:
{
  "type": "tool_use",
  "id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "name": "memory",
  "input": {
    "command": "view",
    "path": "/memories"
  }
}
3. Ваше приложение возвращает содержимое каталога:
{
  "type": "tool_result",
  "tool_use_id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "content": "Directory: /memories\n- customer_service_guidelines.xml\n- refund_policies.xml"
}
4. Claude читает соответствующие файлы:
{
  "type": "tool_use",
  "id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "name": "memory",
  "input": {
    "command": "view",
    "path": "/memories/customer_service_guidelines.xml"
  }
}
5. Ваше приложение возвращает содержимое файла:
{
  "type": "tool_result",
  "tool_use_id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "content": "<guidelines>\n<addressing_customers>\n- Always address customers by their first name\n- Use empathetic language\n..."
}
6. Claude использует память для помощи:
"Основываясь на ваших руководящих принципах службы поддержки клиентов, я могу помочь вам составить ответ. Пожалуйста, поделитесь деталями тикета..."

Поддерживаемые модели

Инструмент памяти доступен на:
  • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
  • Claude Sonnet 4 (claude-sonnet-4-20250514)
  • Claude Opus 4.1 (claude-opus-4-1-20250805)
  • Claude Opus 4 (claude-opus-4-20250514)

Начало работы

Чтобы использовать инструмент памяти:
  1. Включите бета-заголовок context-management-2025-06-27 в ваши API-запросы
  2. Добавьте инструмент памяти в ваш запрос
  3. Реализуйте обработчики на стороне клиента для операций с памятью
Чтобы обрабатывать операции инструмента памяти в вашем приложении, вам нужно реализовать обработчики для каждой команды памяти. Наши SDK предоставляют помощники инструмента памяти, которые обрабатывают интерфейс инструмента — вы можете создать подкласс BetaAbstractMemoryTool (Python) или использовать betaMemoryTool (TypeScript) для реализации вашего собственного бэкенда памяти (на основе файлов, базы данных, облачного хранилища, зашифрованных файлов и т.д.).Для рабочих примеров смотрите:

Базовое использование

curl https://api.anthropic.com/v1/messages \
    --header "x-api-key: $ANTHROPIC_API_KEY" \
    --header "anthropic-version: 2023-06-01" \
    --header "content-type: application/json" \
    --header "anthropic-beta: context-management-2025-06-27" \
    --data '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 2048,
        "messages": [
            {
                "role": "user",
                "content": "Я работаю над веб-скрапером на Python, который постоянно падает с ошибкой тайм-аута. Вот проблемная функция:\n\n```python\ndef fetch_page(url, retries=3):\n    for i in range(retries):\n        try:\n            response = requests.get(url, timeout=5)\n            return response.text\n        except requests.exceptions.Timeout:\n            if i == retries - 1:\n                raise\n            time.sleep(1)\n```\n\nПожалуйста, помогите мне отладить это."
            }
        ],
        "tools": [{
            "type": "memory_20250818",
            "name": "memory"
        }]
    }'

Команды инструмента

Ваша реализация на стороне клиента должна обрабатывать эти команды инструмента памяти:

view

Показывает содержимое каталога или содержимое файла с опциональными диапазонами строк:
{
  "command": "view",
  "path": "/memories",
  "view_range": [1, 10]  // Опционально: просмотр конкретных строк
}

create

Создать или перезаписать файл:
{
  "command": "create",
  "path": "/memories/notes.txt",
  "file_text": "Заметки встречи:\n- Обсудили временные рамки проекта\n- Определили следующие шаги\n"
}

str_replace

Заменить текст в файле:
{
  "command": "str_replace",
  "path": "/memories/preferences.txt",
  "old_str": "Любимый цвет: синий",
  "new_str": "Любимый цвет: зелёный"
}

insert

Вставить текст в конкретную строку:
{
  "command": "insert",
  "path": "/memories/todo.txt",
  "insert_line": 2,
  "insert_text": "- Просмотреть документацию инструмента памяти\n"
}

delete

Удалить файл или каталог:
{
  "command": "delete",
  "path": "/memories/old_file.txt"
}

rename

Переименовать или переместить файл/каталог:
{
  "command": "rename",
  "old_path": "/memories/draft.txt",
  "new_path": "/memories/final.txt"
}

Руководство по промптингу

Мы автоматически включаем эту инструкцию в системный промпт, когда включён инструмент памяти:
ВАЖНО: ВСЕГДА ПРОСМАТРИВАЙТЕ СВОЙ КАТАЛОГ ПАМЯТИ ПЕРЕД ТЕМ, КАК ДЕЛАТЬ ЧТО-ЛИБО ЕЩЁ.
ПРОТОКОЛ ПАМЯТИ:
1. Используйте команду `view` вашего инструмента `memory` для проверки предыдущего прогресса.
2. ... (работайте над задачей) ...
     - По мере продвижения записывайте статус / прогресс / мысли и т.д. в вашу память.
ПРЕДПОЛАГАЙТЕ ПРЕРЫВАНИЕ: Ваше окно контекста может быть сброшено в любой момент, поэтому вы рискуете потерять любой прогресс, который не записан в вашем каталоге памяти.
Если вы наблюдаете, что Claude создаёт загромождённые файлы памяти, вы можете включить эту инструкцию:
Примечание: при редактировании вашей папки памяти всегда старайтесь поддерживать её содержимое актуальным, связным и организованным. Вы можете переименовывать или удалять файлы, которые больше не актуальны. Не создавайте новые файлы, если это не необходимо.
Вы также можете направлять то, что Claude записывает в память, например, “Записывайте только информацию, относящуюся к <теме> в вашу систему памяти.”

Соображения безопасности

Вот важные проблемы безопасности при реализации вашего хранилища памяти:

Конфиденциальная информация

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

Размер хранилища файлов

Рассмотрите отслеживание размеров файлов памяти и предотвращение чрезмерного роста файлов. Рассмотрите добавление максимального количества символов, которое команда чтения памяти может вернуть, и позвольте Claude пагинировать через содержимое.

Истечение срока памяти

Рассмотрите периодическую очистку файлов памяти, к которым не обращались в течение длительного времени.

Защита от обхода путей

Вредоносные входные пути могут попытаться получить доступ к файлам вне каталога /memories. Ваша реализация ДОЛЖНА валидировать все пути для предотвращения атак обхода каталогов.
Рассмотрите эти меры защиты:
  • Валидируйте, что все пути начинаются с /memories
  • Разрешайте пути в их каноническую форму и проверяйте, что они остаются в каталоге памяти
  • Отклоняйте пути, содержащие последовательности типа ../, ..\\, или другие шаблоны обхода
  • Следите за URL-кодированными последовательностями обхода (%2e%2e%2f)
  • Используйте встроенные утилиты безопасности путей вашего языка (например, pathlib.Path.resolve() и relative_to() в Python)

Обработка ошибок

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