Skip to content

Роль-валидатор (overseer): следит за исполнителями и не даёт им уходить от задачи #5

Description

@tokyodaito

Описание / Мотивация

Сейчас контроль качества в графе solution-lod есть только пост-фактум: роль verify (langgraph-verifier) проверяет результат против success-критериев уже после того, как implement завершил работу. Но никто не следит за исполнителями в процессе: implement-агент может уйти от задачи (drift) — раздуть скоуп, переписать лишнее, закопаться в нерелевантных файлах или заняться gold-plating — и это обнаружится только на верификации, либо не обнаружится вовсе.

Нужна роль-валидатор / надсмотрщик («стоит с хлыстом»): дешёвая модель, которая во время работы исполнителя проверяет соответствие его действий заданию и оперативно возвращает его в русло.

Предложение

Добавить новую роль (например, enforce / overseer) в SOLUTION_ROLE_CONTRACTS (src/core/solution-lod/roles.ts):

  • Когда: периодически во время implement-активаций (по триггеру — N вызовов инструмента / шагов, или по сигналу от runtime onEvent), а не после завершения.
  • Что делает: сравнивает текущие действия исполнителя (последние tool-вызовы / дифф) с целью региона (region.objective) и acceptanceCriteria; если видит дрейф — возвращает исполнителю короткое предписание вернуться к задаче (инжект в контекст или прерывание активации).
  • Модель: по умолчанию дешёвая, настраивается отдельно через models.enforce (механизм уже есть: per-role model assignment в loadConnectorDefinition / withSolutionRoleModelAssignments, src/core/config.ts:43-70).
  • Верdict-схема: по аналогии с VerificationOutputSchema (src/core/solution-lod/types.ts:185) — например onTrack | steer(reason) | abort(reason).

Открытые вопросы

  • Механизм воздействия на исполнителя: инжект системного сообщения в следующий шаг vs полный рестарт активации с ужесточённым промптом.
  • Частота проверок (каждый шаг — дорого; слишком редко — теряется смысл).
  • Нужен ли overseer для synthesize/inspect или только для implement.

Ожидаемый результат

  1. Исполнители не уходят от поставленной задачи; дрейф ловится в процессе, а не на верификации.
  2. Роль настраивается через конфиг (модель, лимиты), как остальные роли.
  3. События overseer видны в TUI graph view.

Окружение

  • opencode-langgraph v0.9.0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions