Скил autonomous-mode — длинные задачи без постоянных уточнений
Как скил autonomous-mode в Datarim подавляет ненужные вопросы через пятиуровневую лестницу разрешения и сохраняет строгий контроль оператора над действиями с высоким риском.
У длинных задач есть проблема с прерываниями. Агент останавливается, чтобы уточнить значение конфига, потом снова — чтобы подтвердить путь к файлу, потом ещё раз — чтобы выбрать между двумя очевидно равнозначными вариантами. Каждая пауза ломает ритм и тратит время. Скил autonomous-mode решает это с помощью структурированной процедуры самостоятельного ответа на вопросы — и жёсткого стопа для небольшого класса действий, которые действительно требуют согласования с оператором.
Что он делает
Скил активируется при одновременном выполнении трёх условий: переменная окружения DATARIM_AUTO_MODE=1 установлена, файл-маркер datarim/.auto-mode-active существует и парсится как корректный YAML, и поле task_id внутри маркера совпадает с идентификатором текущей задачи. Маркер истекает через 24 часа, поэтому забытая переменная из прошлой сессии не может незаметно активировать режим.
После активации агент обязан пройти пятиуровневую лестницу подавления вопросов — Question Suppression Ladder — прежде чем обращаться к оператору. Уровень 1 — grep по кодовой базе или чтение файла: самый дешёвый способ, менее секунды. Уровень 2 — runtime-проба: curl localhost/healthz или git log -1. Уровень 3 — поиск ответа в MEMORY.md оператора. Уровень 4 — делегирование вопроса внешней LLM через coworker ask, когда для ответа нужно прочитать много больших файлов. Только если все четыре уровня не дают однозначного ответа, агент выходит на уровень 5 — вопрос оператору.
Параллельно с лестницей работает правило L1 Inline Resolution. Исправление, затрагивающее один файл, не превышающее 50 строк и не изменяющее никакого API-контракта, можно применить прямо по ходу работы без согласования. Более крупные изменения уходят в бэклог. Каждое встроенное исправление логируется в append-only файл и всплывает на шаге архивирования.
Один конкретный пример
В ходе длинного /dr-do агенту нужно узнать, на каком порту слушает база данных. По лестнице подавления вопросов применяется уровень 1: grep по конфигам проекта в поисках значения порта. Если результат однозначный — продолжаем. Если два конфига расходятся — переходим на уровень 2: прямая проба работающего сервиса. Оператора не спрашивают — ответ находится в кодовой базе или runtime.
Когда загружается
Скил вызывается командой /dr-auto, которая устанавливает переменную окружения и записывает маркер. Каждая команда пайплайна — от /dr-init до /dr-archive — проверяет маркер при запуске и перестраивает поведение. Hard-gated действия (деплой в прод, ротация секретов, публичные посты, force-push в main) никогда не выполняются автоматически — лестница всегда передаёт их оператору на уровне 5.
Как это вписывается в общий процесс — в посте что такое Datarim. Контракт активации — в статье о команде /dr-auto.