Skip to content

5. Сборка контекста

Статус: реализовано в Workbench v0.6.0. Общая схема находится в разделе «AI Workbench: подготовка данных».

Цель этапа — доказать, что каждая задача имеет достаточно данных, а затем собрать единый ModelRequest. Сборка не меняет план и не перезапускает retrieval.

Вход сборщика

Сборщик получает валидный TaskPlan, разрешённые source blocks и ограниченное окно сообщений. Состояние Interaction остаётся в persistence и не копируется в отдельную каноническую модель контекста.

Context Adequacy Gate

Для каждой задачи gate проверяет:

ПроверкаУсловие успеха
IntentIntent поддержан текущим registry.
ContextДля каждой domain/documentation задачи создан хотя бы один подтверждённый block.
SnapshotРанее разрешённый identity повторно ищется, если изменился snapshot hash.
BudgetMandatory blocks помещаются в контекст.

Непройденная проверка не заменяется предположением модели. Gate переводит Interaction в awaiting_clarification или в явную ошибку.

Приоритеты бюджета

Сначала помещаются mandatory blocks, затем остальные blocks по убыванию lexical score. System contract, исходный запрос, план и ограниченное окно истории добавляются самим prompt template вокруг выбранных blocks.

Точно разрешённая цель не может быть вытеснена более длинным, но менее релевантным блоком.

Дедупликация

Повторные documentation chunks дедуплицируются по chunkId, domain candidates — по паре documentType + identity. Семантически похожие, но разные blocks не склеиваются.

ModelRequest

json
{
  "request": "...",
  "plan": { "tasks": [] },
  "context": [],
  "conversation": [],
  "workspace": {
    "generation": "18",
    "snapshotSha256": "..."
  }
}

JSON сначала сериализуется стандартным encoder, затем подставляется в строгий embedded template. Итоговый prompt не становится source of truth: его можно воспроизвести из payload и версии prompt catalog.

Следующий этап: «Генерация и проверка».