Агент balanced

Orchestrate Resolver

Плагин-слой инференса субагентов: классифицирует неизвестную строку pane в slash-команду через мультибэкендную цепочку AI CLI (claude → codex → cursor). Fail-closed; порог отсечения — на стороне вызывающего.

Обзор

Orchestrate Resolver — плагин-слой инференса субагентов плагина dr-orchestrate (Фаза 2). Активируется, когда семантический парсер по правилам возвращает confidence: 0 для строки pane — то есть ничего в корпусе правил не совпало. По тексту pane и объединённому корпусу правил выбирает единственную наиболее вероятную slash-команду из закрытого набора команд Datarim и сообщает калиброванную уверенность.

Зависимость от плагина

Агент нефункционален без плагина dr-orchestrate. Shell-драйвер (subagent_resolver.sh) и семантический парсер (semantic_parser.sh) живут в плагине. Включите плагин перед вызовом: /dr-plugin enable <abs-path>/plugins/dr-orchestrate. Файл агента лежит в ядре только чтобы slash-picker мог его обнаружить; функциональность полностью обеспечивается плагином.

Классификатор, а не решающий

Вызывающий (cmd_run.sh) сравнивает результат с порогом (по умолчанию ≥0.80) для автономного исполнения; ниже порога — эскалация. Граница «автономно vs эскалация» принадлежит вызывающему — сам resolver только классификатор, никогда не принимает решения. Если pane запрашивает операционное действие, resolver также классифицирует action_kind и его payload, а вызывающий пропускает их через per-space гейт действий до исполнения.

Цепочка бэкендов

Бэкенды пробуются по порядку из DR_ORCH_SUBAGENT_CHAIN (по умолчанию: claude codex cursor). Первый бэкенд, вернувший парсимый JSON-объект, побеждает; последующие не вызываются. У каждого вызова свой бюджет по времени (DR_ORCH_RESOLVER_TIMEOUT_S, по умолчанию 15 с), stderr подавляется, а отсутствующий бинарь бэкенда предупреждается один раз и далее молча пропускается.

Мягкий парсинг JSON

Вывод бэкенда парсится по порядку (первый успех выигрывает): сырой stdout как JSON, затем первый блок ```json … ```, затем первый сбалансированный блок { … }. Если ничего не распарсилось — бэкенд считается промахом и цепочка продолжается. Дизайн fail-closed: неразрешённая строка эскалируется, а не исполняется как угаданная команда.

Отчёт о результате

Перед сообщением человеку применяется Human Outcome Reporting. Объясняются изменение для пользователя, исходные условия, проверки и доказательства, а также открытые ограничения. Итог этапа не означает завершения всей задачи. Точные протоколы и технические записи сохраняются. Для повторного объяснения без продолжения работы — /dr-explain.