search
Из этой страницы вы узнаете, как search находит записи, что значит каждое поле ответа и как по статусу понять, можно ли доверять найденному.
Сквозной пример: новый разработчик спрашивает агента «как у нас выкатывается staging?», и агент ищет в MMW.
Назначение
Заголовок раздела «Назначение»search возвращает записи рабочей области, подходящие под запрос, вместе с происхождением (source_id, source_hash, source_revision), статусом свежести и связями графа знаний. Инструмент только читает: ничего не создаёт и не меняет.
Параметры
Заголовок раздела «Параметры»| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
query | string | — (обязательный) | Текст запроса. Пустой запрос возвращает последние записи области. |
workspace | string | "default" | Рабочая область. Должна уже существовать (в ней хотя бы раз сохраняли). |
scope | string или null | null | Фильтр по ярлыку, например shared или private. |
limit | integer | 10 | Сколько записей вернуть. Значения вне 1–50 приводятся к ближайшей границе. |
current_source_hash | string или null | null | Текущий хеш источника: записи, у которых source_hash отличается, получат статус stale. |
exclude_stale | boolean | false | Не возвращать записи со статусом stale. |
Как ищет
Заголовок раздела «Как ищет»- Запрос делится на слова; запись подходит, если в её тексте или поле
sourceвстречается хотя бы одно слово.score— число совпавших слов. - Если совпадений нет или запрос абстрактный, сервер расширяет его синонимами и терминами проекта с помощью языковой модели и ищет ещё раз (с учётом
fact_key). - Результаты сортируются по
score, затем по времени последнего изменения, и обрезаются доlimit. - В организации в выдачу попадают только записи, которые вам разрешено видеть по правилам видимости.
Результат — список записей, в структурированном ответе он лежит в поле result.
| Поле | Описание |
|---|---|
id | ID записи. |
workspace | Рабочая область. |
scope | Ярлык записи. |
content | Текст записи. |
source | Кто сохранил (owner, agent, telegram и т. п.). |
source_id, source_hash, source_revision | Происхождение записи. |
fact_key | Ключ темы. |
confidence | Уверенность 0.0–1.0. |
status | unverified, stale или conflict (см. ниже). |
derived_from | ID записей, которые эта запись обобщает. |
superseded_by | ID более новой версии с тем же fact_key или null. Новейшие версии стоят в выдаче первыми. |
score | Релевантность: число совпавших слов запроса. |
graph_relations | Связи с другими записями: relation, direction (outgoing или incoming), weight, target_id, preview (первые 120 символов связанной записи). |
created_at, updated_at | Время создания и последнего изменения, ISO 8601. |
Статусы
Заголовок раздела «Статусы»| Статус | Когда |
|---|---|
conflict | У записи есть «соседи» с тем же fact_key в той же области, но с другим содержимым или хешем источника. |
stale | Передан current_source_hash, и он отличается от source_hash записи; или запись помечена устаревшей архивариусом. |
unverified | Всё остальное. Это нормальный статус: MMW хранит происхождение, но не утверждает истинность. |
Если статусов несколько, показывается самый тревожный: conflict важнее stale, stale важнее unverified. Сводка наследует статус источников: если запись создана с derived_from, а одна из исходных записей в конфликте или устарела, сводка получит conflict или stale (проверяется до трёх уровней вглубь).
{ "query": "staging выкатывается", "workspace": "default", "limit": 5}{ "result": [ { "id": "4d428a41-e7b0-4f81-a886-f40c6f6c766c", "workspace": "default", "scope": "shared", "content": "staging выкатывается через systemd-юнит app-staging", "source": "agent", "source_id": "docs/deploy.md", "source_hash": "sha256:9f2c4e1a", "source_revision": "a1b2c3d", "fact_key": "deploy-staging", "confidence": 0.9, "status": "unverified", "derived_from": [], "score": 2, "graph_relations": [ { "relation": "relates_to", "direction": "outgoing", "weight": 0.8, "target_id": "b7e1d0c2-5a44-4f0e-8f3a-2c9d1e6f0a11", "preview": "prod выкатывается через релизный пайплайн" } ], "created_at": "2026-10-05T09:12:00.412345+00:00", "updated_at": "2026-10-05T09:12:00.412345+00:00" } ]}Связи строит архивариус; он выбирает relation из значений relates_to, fixes_issue, supersedes; weight — сила связи.
| Текст | Причина |
|---|---|
workspace '…' is not active | Такой рабочей области нет (в ней ещё ничего не сохраняли) или она удалена. Поиск не создаёт области. |
403 Forbidden: workspace access denied for project | Рабочая область принадлежит другому проекту, а ключ привязан к этому. |
MCP rate limit exceeded, project call limit exceeded | Слишком много вызовов в минуту. |
bound project is missing, inactive, or outside tenant | Проект, к которому привязан ключ, удалён или неактивен. |
[MMW Notice]: … | Нет подписки или аккаунт приостановлен. В льготный период после окончания подписки поиск работает. |
Примечания
Заголовок раздела «Примечания»scope— фильтр по ярлыку, а не механизм доступа. В организации доступ определяет видимость.- Пустая выдача не ошибка: попробуйте другие слова, проверьте
workspaceи то, что ключ привязан к нужному проекту. - Чтения переданных знаний уволенных сотрудников записываются в журнал организации (только количество, без содержимого).