Когда один из самых продуктивных системных инженеров индустрии — Митчелл Хашимото, создатель Vagrant, Terraform, Consul и терминала Ghostty — делится опытом работы с искусственным интеллектом, к его выводам стоит прислушаться. В своем подробном инженерном эссе Хашимото честно признается: поначалу попытки внедрить нейросети в повседневную разработку вызывали раздражение. Бесконечное переключение между редактором кода и окном веб-чата, копирование сниппетов и ручное исправление галлюцинаций отнимали больше сил, чем написание кода вслепую.
Чтобы нейросети превратились из модной игрушки в реальный рычаг продуктивности, Хашимото пришлось полностью перестроить привычный рабочий процесс, пройдя путь от банального диалога к автономным фоновым агентам с жесткими программными ограничениями.
Ловушка диалогового окна и копирования сниппетов
Главная системная ошибка большинства программистов — попытка общаться с моделью через стандартный интерфейс чат-бота. В существующих («коричневых», развивающихся годами) проектах со сложной архитектурой чат быстро заходит в тупик. Модель не видит соседних модулей, не может самостоятельно запустить сборку и не знает, как ее решение стыкуется с остальной кодовой базой. В результате человек работает живым мостом между нейросетью и терминалом, перенося ошибки компиляции обратно в чат.
Первый фундаментальный шаг — полный отказ от веб-чатов в пользу локальных агентных инструментов (Claude Code, Cursor, Aider). Агент обязан обладать прямым доступом к чтению и редактированию файлов проекта, выполнению shell-команд и вызовам системных утилит. Только тогда цикл обратной связи замыкается внутри машины.
Шесть ступеней зрелости: от воспроизведения решений к ночным агентам
Эволюция взаимодействия с агентами по методологии Хашимото строится на постепенном расширении автономии:
- Воспроизведение собственных решений (Reproduce Your Own Work). Прежде чем доверить агенту неизведанную задачу, поручите ему проблему, которую вы только что решили сами вручную. Не показывая готовый код, оцените, какими путями идет модель, где ошибается и какие инструменты ей требуются. Это позволяет объективно нащупать границы применимости конкретной LLM без риска сломать продакшн.
- Агенты конца дня (End-of-Day Agents). Последние 20–30 минут перед уходом с работы Хашимото посвящает запуску фоновых исследовательских агентов. Пока инженер отдыхает, автономный скрипт исследует архитектуру сторонних зависимостей, анализирует открытые баг-репорты в GitHub и готовит выжимку к утреннему кофе.
- Делегирование гарантированных задач (Outsource the Slam Dunks). Рутинные задачи с предсказуемым результатом (написание юнит-тестов на граничные условия, типовой парсинг JSON, миграция структур данных) полностью передаются агенту в фоне, пока человек сосредоточен на архитектуре.
- Проектирование обвязки (Harness Engineering). Успех автономной работы зависит не от умности модели, а от строгости правил. В корень репозитория помещается файл
AGENTS.md— манифест архитектурных ограничений и команд проверки. - Полная параллелизация. В зрелом процессе разработчик держит хотя бы одного фонового агента постоянно запущенным, проверяя его артефакты только в паузах между собственными мыслительными блоками.
Контракт AGENTS.md и скрипты тихой автоматизации
Файл AGENTS.md служит для ИИ-агента аналогом технического задания и свода законов репозитория. В нем фиксируются обязательные шаги проверки и жесткие запреты:
# AGENTS.md — Инженерные правила проекта
## Окружение и автоматическая валидация
- Перед правками убедись в чистоте репозитория: `git status`
- Запуск тестов на гонки данных: `go test -race ./...`
- Проверка стиля и линтера: `golangci-lint run`
## Архитектурные правила
- Не подключай сторонние библиотеки без прямого согласования в задаче.
- Все публичные методы должны использовать кастомные типизированные ошибки.
- Не отключай существующие ассерты в тестах ради успешного прогона.
## Алгоритм сдачи работы
1. Убедись, что все тесты выполняются без ошибок.
2. Подготовь сводку внесенных изменений в файле summary.md.
Второй критический элемент — устранение информационного шума. Хашимото подчеркивает: любые всплывающие уведомления и звуковые сигналы от агента разрушают концентрацию инженера. Скрипт запуска должен работать в фоновом режиме, сохраняя результат в изолированный лог:
#!/usr/bin/env bash
set -euo pipefail
# Автономный сбор контекста по открытым багам через GitHub CLI
gh issue list --label "bug" --limit 5 --json number,title,body > /tmp/open_bugs.json
# Фоновый запуск агента без назойливых интерактивных оповещений
claude --print \
--append-system-prompt "Проанализируй баги из /tmp/open_bugs.json, сопоставь с кодовой базой и подготовь план решений в report.md. Никаких правок в git не коммить." \
"Выполни утренний триаж задач" > /tmp/triage_agent.log 2>&1 &
echo "Фоновый агент запущен в тихом режиме (PID: $!). Результаты будут готовы к утру."
Главный урок: почему тишина ценнее скорости
Ключевой инсайт Хашимото лежит в плоскости психологии внимания. Агент не должен быть болтливым собеседником, дергающим вас за плечо каждые две минуты. Лучший агент — это тихий стажер, запертый в надежной песочнице с четкой инструкцией и набором автотестов.
Человек определяет архитектуру, формулирует инварианты и проводит финальное ревью, а нейросеть берет на себя черновую реализацию. Если результат работы агента не прошел автоматические тесты или нарушил правила AGENTS.md, задача бракуется до того, как попадет на глаза разработчику. Именно такой подход позволяет масштабировать личную продуктивность без выгорания и потери контроля над системой.
