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

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

Сквозной пример: агент сохраняет договорённость «staging выкатывается через systemd-юнит app-staging» со ссылкой на документ docs/deploy.md.

remember добавляет новую запись в память проекта, к которому привязан ключ. Инструмент никогда не удаляет и не перезаписывает существующие записи: повторное сохранение с тем же fact_key добавляет более новую версию, а старые остаются и помечаются.

ПараметрТипПо умолчаниюОписание
contentstring— (обязательный)Текст записи. Не пустой, не длиннее 100 000 символов.
workspacestring"default"Рабочая область. Если её ещё нет, она создаётся в проекте ключа.
scopestring"shared"Ярлык записи, например shared или private. По нему можно фильтровать поиск. Доступ не ограничивает.
sourcestring"owner"Кто сохраняет запись (например, owner, agent).
source_idstring или nullnullМетка источника: документ, файл, сессия.
source_hashstring или nullnullХеш содержимого источника — по нему потом определяется устаревание. Требует source_id.
source_revisionstring или nullnullВерсия источника (тег, номер ревизии).
fact_keystring или nullnullКлюч темы. Записи с одним ключом и разным содержимым получают статус conflict.
confidencenumber0.5Уверенность от 0.0 до 1.0.
derived_fromarray of string или nullnullID записей, которые эта запись обобщает (сводка). До 50 ID, только существующие и доступные вам записи.
ПолеОписание
idID новой записи. Нужен для forget и derived_from.
api_versionВерсия API сервера (1.0).
workspaceРабочая область.
tenant_idИдентификатор аккаунта.
project_idИдентификатор проекта ключа.
scopeЯрлык записи.
statusВсегда unverified для новой записи.
source_id, source_hashПроисхождение, как передано (после вычистки секретов).
derived_fromОтсортированный список ID исходных записей; пустой, если это не сводка.
created_atВремя создания, ISO 8601 (UTC).

Вызов, как его делает агент:

arguments
{
"content": "staging выкатывается через systemd-юнит app-staging",
"workspace": "default",
"source": "agent",
"source_id": "docs/deploy.md",
"source_hash": "sha256:9f2c4e1a",
"source_revision": "a1b2c3d",
"fact_key": "deploy-staging",
"confidence": 0.9
}

Ответ:

{
"id": "4d428a41-e7b0-4f81-a886-f40c6f6c766c",
"api_version": "1.0",
"workspace": "default",
"tenant_id": "t-3f9a",
"project_id": "0c6e2b54-2d0f-4a51-9d0e-6b1f3c2a8e77",
"scope": "shared",
"status": "unverified",
"source_id": "docs/deploy.md",
"source_hash": "sha256:9f2c4e1a",
"derived_from": [],
"created_at": "2026-10-05T09:12:00.412345+00:00"
}

Сводка из нескольких записей — тот же вызов с derived_from:

arguments
{
"content": "Деплой: staging — systemd-юнит app-staging, prod — через релизный пайплайн",
"fact_key": "deploy-summary",
"derived_from": ["4d428a41-e7b0-4f81-a886-f40c6f6c766c", "b7e1d0c2-5a44-4f0e-8f3a-2c9d1e6f0a11"]
}

Тексты приходят в ответе с "isError": true в виде Error executing tool remember: ….

ТекстПричина
content exceeds maximum allowed lengthcontent длиннее 100 000 символов.
content must not be emptyПустой или состоящий из пробелов content.
Memory rejected by Security Guard: …Memory Guard распознал в тексте попытку «отравления памяти» (инструкции вида «ignore previous instructions»).
workspace and scope must not be emptyПустые workspace или scope.
confidence must be between 0 and 1confidence вне диапазона 0–1.
source_id is required when source_hash is providedПередан source_hash без source_id.
derived_from accepts at most 50 memory idsБольше 50 ID в derived_from.
derived_from contains unknown memory idsСреди ID есть несуществующие, удалённые или недоступные вам записи.
invalid X-Idempotency-KeyКлюч идемпотентности пустой, длиннее 256 символов или содержит не печатные ASCII-символы.
409 Conflict: idempotency key was used with different inputТот же ключ идемпотентности уже использован с другим содержимым.
project memory limit exceededДостигнут лимит записей проекта по тарифу.
maximum number of memories exceeded for workspace / … for tenantДостигнут технический лимит записей рабочей области или аккаунта.
MCP rate limit exceeded, project call limit exceededСлишком много вызовов в минуту.
workspace '…' was deleted and cannot be reusedРабочая область с этим именем была удалена.
403 Forbidden: workspace access denied for projectРабочая область принадлежит другому проекту.
membership may not write in this organizationВ организации: роль «аудитор» или членство неактивно.
[MMW Notice]: …Нет подписки, льготный период (только чтение) или аккаунт приостановлен.

Что делать с каждой ошибкой — на странице Ошибки.

Идемпотентность. При прямом HTTP-подключении передайте заголовок X-Idempotency-Key (1–256 печатных ASCII-символов). Повтор с тем же ключом и теми же параметрами вернёт тот же ответ с тем же id, новой записи не появится. Ключ действует в пределах ключа доступа, проекта и рабочей области. Тот же ключ с другими параметрами даёт ошибку 409 Conflict.

Статуса verified нет. source_hash — это сведения о происхождении, а не доказательство истинности. Новая запись всегда unverified; позже search может показать stale или conflict. Подробнее — Источник и свежесть.

scope — это ярлык, а не права доступа. В организации, кто видит запись, определяет её видимость (автор, отдел, проект, вся организация), а не scope. См. Видимость записей.

Секреты вычищаются. Перед сохранением Memory Guard заменяет найденные ключи, токены и пароли во всех текстовых полях на метки вида [REDACTED:правило:8 символов хеша]. Запись при этом сохраняется. См. Memory Guard.

Архивариус. После сохранения запись в фоне анализирует архивариус: строит связи с другими записями (видны как graph_relations в search).