Loading...
    • Разработка
    • Администрирование
    • Модели и цены
    • Client SDKs
    • API Reference
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Разработка с Claude
    Обзор функцийИспользование Messages APIClaude API skillОбработка причин остановки
    Возможности модели
    Extended thinkingAdaptive thinkingУсилиеБюджеты задач (бета)Быстрый режим (бета: исследовательский просмотр)Структурированные выходные данныеЦитированияПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовПоддержка многоязычностиEmbeddings
    Инструменты
    ОбзорКак работает использование инструментовИнструмент веб-поискаИнструмент веб-выборкиИнструмент выполнения кодаИнструмент советникаИнструмент памятиИнструмент BashИнструмент управления компьютеромИнструмент текстового редактора
    Инфраструктура инструментов
    Справочник инструментовПоиск инструментовПрограммный вызов инструментовПотоковая передача инструментов с детализацией
    Управление контекстом
    Окна контекстаСжатиеРедактирование контекстаКэширование подсказокПодсчет токенов
    Работа с файлами
    Files APIПоддержка PDFИзображения и зрение
    Skills
    ОбзорБыстрый стартЛучшие практикиSkills для предприятияSkills в API
    MCP
    Удаленные MCP серверыMCP коннектор
    Инженерия подсказок
    ОбзорЛучшие практики подсказокИнструменты подсказок Console
    Тестирование и оценка
    Определение успеха и создание оценокИспользование инструмента оценки в ConsoleСнижение задержки
    Укрепление защиты
    Снижение галлюцинацийПовышение согласованности выходных данныхСмягчение взломовСнижение утечки подсказок
    Ресурсы
    Глоссарий
    Примечания к выпуску
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Инструменты

    Инструмент памяти

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

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

    Это ключевой примитив для получения контекста точно в нужный момент: вместо загрузки всей релевантной информации заранее, агенты сохраняют то, что они узнают, в памяти и извлекают это по требованию. Это позволяет активному контексту сосредоточиться на том, что в данный момент релевантно, что критично для долгоживущих рабочих процессов, где загрузка всего сразу перегрузила бы окно контекста. См. Effective context engineering для более широкого паттерна.

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

    Свяжитесь через форму обратной связи, чтобы поделиться своим мнением об этой функции.

    This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

    Варианты использования

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

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

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

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

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

    Когда вы просите Claude помочь с задачей, Claude автоматически сначала проверяет каталог памяти. Вот как выглядит типичное взаимодействие:

    1. Запрос пользователя:

    "Help me respond to this customer service ticket."

    2. Claude проверяет каталог памяти:

    "I'll help you respond to the customer service ticket. Let me check my memory for any previous context."

    Claude вызывает инструмент памяти:

    {
      "type": "tool_use",
      "id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "name": "memory",
      "input": {
        "command": "view",
        "path": "/memories"
      }
    }

    3. Ваше приложение возвращает содержимое каталога:

    {
      "type": "tool_result",
      "tool_use_id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
      "content": "Here're the files and directories up to 2 levels deep in /memories, excluding hidden items and node_modules:\n4.0K\t/memories\n1.5K\t/memories/customer_service_guidelines.xml\n2.0K\t/memories/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": "Here's the content of /memories/customer_service_guidelines.xml with line numbers:\n     1\t<guidelines>\n     2\t<addressing_customers>\n     3\t- Always address customers by their first name\n     4\t- Use empathetic language\n..."
    }

    6. Claude использует память для помощи:

    "Based on your customer service guidelines, I can help you craft a response. Please share the ticket details..."

    Для поддержки моделей см. Справочник инструментов.

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

    Для использования инструмента памяти:

    1. Добавьте инструмент памяти в ваш запрос
    2. Реализуйте обработчики на стороне клиента для операций с памятью

    Для обработки операций инструмента памяти в вашем приложении вам нужно реализовать обработчики для каждой команды памяти. SDK предоставляют помощники инструмента памяти, которые обрабатывают интерфейс инструмента. Вы можете создать подкласс BetaAbstractMemoryTool (Python) или использовать betaMemoryTool (TypeScript) для реализации вашего собственного бэкенда памяти (на основе файлов, базы данных, облачного хранилища, зашифрованных файлов и т.д.).

    Для рабочих примеров см.:

    • Python: examples/memory/basic.py
    • TypeScript: examples/tools-helpers-memory.ts

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

    client = anthropic.Anthropic()
    
    message = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=2048,
        messages=[
            {
                "role": "user",
                "content": "I'm working on a Python web scraper that keeps crashing with a timeout error. Here's the problematic function:\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\nPlease help me debug this.",
            }
        ],
        tools=[{"type": "memory_20250818", "name": "memory"}],
    )
    
    print(message)

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

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

    view

    Показывает содержимое каталога или содержимое файла с опциональными диапазонами строк:

    {
      "command": "view",
      "path": "/memories",
      "view_range": [1, 10] // Optional: view specific lines
    }

    Возвращаемые значения

    Для каталогов: Возвращайте список, который показывает файлы и каталоги с их размерами:

    Here're the files and directories up to 2 levels deep in {path}, excluding hidden items and node_modules:
    {size}    {path}
    {size}    {path}/{filename1}
    {size}    {path}/{filename2}
    • Список файлов до 2 уровней в глубину
    • Показывает размеры в удобочитаемом формате (например, 5.5K, 1.2M)
    • Исключает скрытые элементы (файлы, начинающиеся с .) и node_modules
    • Использует символ табуляции между размером и путём

    Для файлов: Возвращайте содержимое файла с заголовком и номерами строк:

    Here's the content of {path} with line numbers:
    {line_numbers}{tab}{content}

    Форматирование номеров строк:

    • Ширина: 6 символов, выравнивание по правому краю с заполнением пробелами
    • Разделитель: Символ табуляции между номером строки и содержимым
    • Индексирование: 1-индексирование (первая строка — это строка 1)
    • Лимит строк: Файлы с более чем 999 999 строками должны возвращать ошибку: "File {path} exceeds maximum line limit of 999,999 lines."

    Пример вывода:

    Here's the content of /memories/notes.txt with line numbers:
         1	Hello World
         2	This is line two
        10	Line ten
       100	Line one hundred

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

    • Файл/каталог не существует: "The path {path} does not exist. Please provide a valid path."

    create

    Создать новый файл:

    {
      "command": "create",
      "path": "/memories/notes.txt",
      "file_text": "Meeting notes:\n- Discussed project timeline\n- Next steps defined\n"
    }

    Возвращаемые значения

    • Успех: "File created successfully at: {path}"

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

    • Файл уже существует: "Error: File {path} already exists"

    str_replace

    Заменить текст в файле:

    {
      "command": "str_replace",
      "path": "/memories/preferences.txt",
      "old_str": "Favorite color: blue",
      "new_str": "Favorite color: green"
    }

    Возвращаемые значения

    • Успех: "The memory file has been edited." с последующим фрагментом отредактированного файла с номерами строк

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

    • Файл не существует: "Error: The path {path} does not exist. Please provide a valid path."
    • Текст не найден: "No replacement was performed, old_str `\{old_str}` did not appear verbatim in {path}."
    • Дублирующийся текст: Когда old_str появляется несколько раз, возвращайте: "No replacement was performed. Multiple occurrences of old_str `\{old_str}` in lines: {line_numbers}. Please ensure it is unique"

    Обработка каталогов

    Если путь является каталогом, возвращайте ошибку "файл не существует".

    insert

    Вставить текст в определённую строку:

    {
      "command": "insert",
      "path": "/memories/todo.txt",
      "insert_line": 2,
      "insert_text": "- Review memory tool documentation\n"
    }

    Возвращаемые значения

    • Успех: "The file {path} has been edited."

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

    • Файл не существует: "Error: The path {path} does not exist"
    • Неверный номер строки: "Error: Invalid `insert_line` parameter: {insert_line}. It should be within the range of lines of the file: [0, {n_lines}]"

    Обработка каталогов

    Если путь является каталогом, возвращайте ошибку "файл не существует".

    delete

    Удалить файл или каталог:

    {
      "command": "delete",
      "path": "/memories/old_file.txt"
    }

    Возвращаемые значения

    • Успех: "Successfully deleted {path}"

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

    • Файл/каталог не существует: "Error: The path {path} does not exist"

    Обработка каталогов

    Удаляет каталог и всё его содержимое рекурсивно.

    rename

    Переименовать или переместить файл/каталог:

    {
      "command": "rename",
      "old_path": "/memories/draft.txt",
      "new_path": "/memories/final.txt"
    }

    Возвращаемые значения

    • Успех: "Successfully renamed {old_path} to {new_path}"

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

    • Источник не существует: "Error: The path {old_path} does not exist"
    • Пункт назначения уже существует: Возвращайте ошибку (не перезаписывайте): "Error: The destination {new_path} already exists"

    Обработка каталогов

    Переименовывает каталог.

    Руководство по подсказкам

    Эта инструкция автоматически включается в системную подсказку при включении инструмента памяти:

    IMPORTANT: ALWAYS VIEW YOUR MEMORY DIRECTORY BEFORE DOING ANYTHING ELSE.
    MEMORY PROTOCOL:
    1. Use the `view` command of your `memory` tool to check for earlier progress.
    2. ... (work on the task) ...
         - As you make progress, record status / progress / thoughts etc in your memory.
    ASSUME INTERRUPTION: Your context window might be reset at any moment, so you risk losing any progress that is not recorded in your memory directory.

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

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

    Вы также можете направить то, что Claude записывает в память. Например: "Only write down information relevant to <topic> in your memory system."

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

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

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

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

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

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

    Истечение памяти

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

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

    Вредоносные входные пути могут попытаться получить доступ к файлам вне каталога /memories. Ваша реализация ДОЛЖНА валидировать все пути, чтобы предотвратить атаки обхода каталогов.

    Рассмотрите эти меры защиты:

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

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

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

    Интеграция редактирования контекста

    Инструмент памяти работает в паре с редактированием контекста для управления долгоживущими разговорами. Для подробностей см. Context editing.

    Использование с компактизацией

    Инструмент памяти также может быть объединён с компактизацией, которая обеспечивает суммирование старого контекста разговора на стороне сервера. Хотя редактирование контекста очищает определённые результаты инструментов на стороне клиента, компактизация автоматически суммирует весь разговор на стороне сервера, когда он приближается к лимиту окна контекста.

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

    Паттерн разработки программного обеспечения с несколькими сеансами

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

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

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

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

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

    Ключевой принцип

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

    Для подробного тематического исследования этого паттерна на практике, включая скрипт инициализатора, структуру файла прогресса и восстановление на основе git, см. Effective harnesses for long-running agents.

    Следующие шаги

    Смотреть все инструменты

    Каталог инструментов, предоставляемых Anthropic, и их свойства.

    Редактирование контекста

    Управляйте длиной разговора вместе с памятью.

    Was this page helpful?

    • Варианты использования
    • Как это работает
    • Пример: Как работают вызовы инструмента памяти
    • Начало работы
    • Базовое использование
    • Команды инструмента
    • view
    • create
    • str_replace
    • insert
    • delete
    • rename
    • Руководство по подсказкам
    • Соображения безопасности
    • Конфиденциальная информация
    • Размер хранилища файлов памяти
    • Истечение памяти
    • Защита от обхода пути
    • Обработка ошибок
    • Интеграция редактирования контекста
    • Использование с компактизацией
    • Паттерн разработки программного обеспечения с несколькими сеансами
    • Как это работает
    • Ключевой принцип
    • Следующие шаги