Что это такое

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

Инструмент работает на just-in-time подгрузке контекста: вместо того чтобы заранее загружать всю потенциально нужную информацию, агент записывает то, что узнал, в файлы памяти и читает их по запросу. Это держит активный контекст сфокусированным на текущей задаче - особенно важно для долгих сессий, которые иначе перегрузили бы окно контекста.

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

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

При включённом memory tool Claude автоматически проверяет директорию памяти перед началом задачи, а по ходу работы записывает туда то, что узнал, и читает это обратно в следующих разговорах.

Шесть команд

view - показывает содержимое директории или файла, с опциональным диапазоном строк для больших файлов.
create - создаёт новый файл (или перезаписывает существующий).
str_replace - заменяет текст в файле; если новый текст не указан, старый просто удаляется.
insert - вставляет текст на конкретную строку.
delete - удаляет файл или директорию рекурсивно; саму папку /memories удалить нельзя.
rename - переименовывает или перемещает файл; саму папку /memories переименовать тоже нельзя.

Инструмент доступен на всех моделях Claude 4 и новее. Подключается одной записью в списке инструментов запроса - без отдельной схемы входных параметров, поскольку это готовый инструмент от Anthropic.

Защита от path traversal - забота разработчика

Все файловые операции выполняет приложение разработчика, поэтому и все меры защиты - тоже его ответственность. Вредоносный путь вроде /memories/../../secrets.env способен дотянуться до файлов за пределами папки памяти, если обработчик не проверяет каждый путь в каждой команде.

Базовые меры защиты: проверять, что все пути начинаются с /memories, приводить пути к канонической форме и убеждаться, что они остаются внутри папки памяти, отклонять последовательности вроде ../ и их URL-кодированные варианты, и использовать встроенные утилиты безопасности путей своего языка программирования.

Паттерн для проектов на несколько сессий

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

Стартовая сессия настраивает файлы памяти до начала содержательной работы: журнал прогресса (что сделано и что дальше), чек-лист функций (объём работы) и ссылку на установочный скрипт проекта, если он нужен.

Каждая следующая сессия начинается с чтения этих файлов памяти - это восстанавливает состояние проекта без повторного исследования кодовой базы и без пересмотра уже принятых решений.

Перед завершением сессии журнал прогресса обновляется тем, что сделано и что осталось - это гарантирует, что следующая сессия начнёт с точного состояния.

Ключевой принцип - работать над одной функцией за раз и отмечать её завершённой только после сквозной проверки, что она действительно работает, а не в момент, когда код просто написан.

Память в паре со сжатием контекста

Memory tool хорошо сочетается со сжатием контекста для управления долгими разговорами. Context editing очищает конкретные результаты вызовов инструментов на стороне клиента. Compaction автоматически сжимает весь разговор на сервере при приближении к лимиту окна контекста. Для по-настоящему долгих агентов имеет смысл сочетать оба механизма: compaction держит активный контекст компактным без ручной работы на стороне клиента, а memory сохраняет ту информацию, которая должна пережить сжатие.

Чек-лист

Настройка memory tool
  1. Инструмент memory добавлен в список tools запроса
  2. Реализован обработчик всех шести команд на стороне приложения
  3. Добавлена проверка, что каждый путь остаётся внутри /memories
  4. Для многосессионных проектов настроен журнал прогресса и чек-лист функций с самого начала
  5. Продумано ограничение на размер файлов памяти и периодическая очистка неактуальных
Где физически хранятся файлы памяти?
Там, где решит разработчик приложения - на диске, в базе данных, в облачном хранилище. Memory tool работает на стороне клиента: Anthropic не хранит эти данные сама, только передаёт запросы на файловые операции.
Нужна ли отдельная схема входных параметров для memory tool?
Нет, это готовый инструмент от Anthropic - достаточно одной записи с типом и именем в списке инструментов запроса, без описания схемы, как для собственных пользовательских инструментов.
Что произойдёт, если Claude попробует выйти за пределы папки /memories?
Зависит от того, насколько тщательно реализована защита на стороне приложения - без явной проверки путей вредоносный или ошибочный путь вроде /memories/../../secrets.env способен дотянуться до файлов за пределами предназначенной папки, поэтому такая защита обязательна, а не опциональна.
Чем memory tool отличается от обычного CLAUDE.md в Claude Code?
CLAUDE.md - статичный файл с инструкциями, который читается в начале каждой сессии. Memory tool - динамический механизм для API-приложений, где сам Claude решает, что записать и когда прочитать, через отдельные команды файловых операций в разговоре с моделью.
Можно ли использовать memory tool вместе со сжатием контекста?
Да, они хорошо дополняют друг друга: сжатие контекста (compaction) держит активное окно компактным, а память сохраняет информацию, которая должна пережить это сжатие и остаться доступной в следующих сессиях.
Как избежать того, чтобы Claude случайно записал в память что-то чувствительное?
Claude обычно сам отказывается записывать явно чувствительную информацию в файлы памяти, но для более надёжной гарантии стоит добавить собственную валидацию на стороне приложения, которая вычищает чувствительные данные перед тем, как обработчик реально запишет файл.
← Все статьи блога