remember
Из этой страницы вы узнаете, какие параметры принимает remember, что он возвращает, как сделать повтор запроса безопасным и почему запись может быть отклонена.
Сквозной пример: агент сохраняет договорённость «staging выкатывается через systemd-юнит app-staging» со ссылкой на документ docs/deploy.md.
Назначение
Заголовок раздела «Назначение»remember добавляет новую запись в память проекта, к которому привязан ключ. Инструмент никогда не удаляет и не перезаписывает существующие записи: повторное сохранение с тем же fact_key добавляет более новую версию, а старые остаются и помечаются.
Параметры
Заголовок раздела «Параметры»| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
content | string | — (обязательный) | Текст записи. Не пустой, не длиннее 100 000 символов. |
workspace | string | "default" | Рабочая область. Если её ещё нет, она создаётся в проекте ключа. |
scope | string | "shared" | Ярлык записи, например shared или private. По нему можно фильтровать поиск. Доступ не ограничивает. |
source | string | "owner" | Кто сохраняет запись (например, owner, agent). |
source_id | string или null | null | Метка источника: документ, файл, сессия. |
source_hash | string или null | null | Хеш содержимого источника — по нему потом определяется устаревание. Требует source_id. |
source_revision | string или null | null | Версия источника (тег, номер ревизии). |
fact_key | string или null | null | Ключ темы. Записи с одним ключом и разным содержимым получают статус conflict. |
confidence | number | 0.5 | Уверенность от 0.0 до 1.0. |
derived_from | array of string или null | null | ID записей, которые эта запись обобщает (сводка). До 50 ID, только существующие и доступные вам записи. |
| Поле | Описание |
|---|---|
id | ID новой записи. Нужен для 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). |
Вызов, как его делает агент:
{ "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:
{ "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 length | content длиннее 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 1 | confidence вне диапазона 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).