Оглавление главы
Глава 2: Системный промпт + ограничения + SOP диалога
Пролог: от одного промпта к роли#
В Главе 1 вы написали первый промпт и получили пользу быстро. Отлично.
Но теперь VP Engineering спрашивает: “Можем ли мы сильно ускорить поставку Phoenix Project — не теряя безопасность и контроль качества?”
Lance Bishop думает: “Один промпт — это одноразовая задача. Нужна роль, которая будет работать постоянно.”
Разница:
- Один промпт: одна задача, один результат
- Системный промпт роли: агент как “член команды”, который работает по правилам
Сцена из “The Phoenix Project” (2014)#
Глава 7-8 книги: Patty McKee создаёт CAB
После очередного инцидента (кто-то перезапустил продакшен‑сервер без координации → ощутимый простой → прямые потери и репутационный ущерб) Patty McKee (директор по ИТ‑эксплуатации) говорит Bill: “Хватит. Нужны правила.”
Patty создаёт CAB — комитет по рассмотрению изменений — формальный процесс для любых изменений в продакшене:
Правила CAB (2014):
- Любое изменение в продакшене → подтверждение CAB (обязательное ревью‑собрание)
- Встречи CAB: раз в неделю (фиксированное окно)
- Экстренные изменения: ТОЛЬКО с подтверждением CTO (звонок + документация постфактум)
- Никакой самодеятельности: если сделал изменение без подтверждения → дисциплинарное взыскание
Проблема подхода:
- Медленно: изменение должно ждать вторника (даже если оно безопасное и срочное)
- Узкое место: встреча CAB длится несколько часов (ревью многих изменений)
- Накладные расходы: документация запроса на изменение занимает заметное время
Но без CAB — хуже:
- Wes Davis в пятницу вечером сделал “быстрое исправление” → упал продакшен → простой на выходных
- John пересконфигурировал балансировщик “на лету” → каскадный отказ → несколько часов восстановления
Дилемма: CAB медленный, но предотвращает катастрофы. Самодеятельные изменения быстрые, но опасные.
Bill спрашивает Erik Reid (наставник): “Как ускорить CAB, но сохранить безопасность?”
Erik: “В производстве мы используем Kanban + WIP limits. Но для IT нужно что-то другое…”
Ключевая проблема 2014:
- Ограничения = процесс для людей (встречи CAB, подтверждения)
- Медленно по дизайну (компромисс безопасность и скорость)
- Нет автоматизации (каждое изменение ревьюят вручную)
Та же задача в 2026: “CAB для агента” (вокруг Phoenix Project)#
Контекст: Lance хочет, чтобы агент помогал с поставкой Phoenix Project постоянно. Но как предотвратить самодеятельные изменения?
Решение (2026): ограничения + условия остановки = “CAB для агента”
Lance создаёт системный промпт роли с явными ограничениями:
# Роль: Аналитик деплоев Phoenix Project
## ОГРАНИЧЕНИЯ (что ты НЕ должен делать)
- НЕ вносить изменения в продакшен
- НЕ делать сетевые запросы к API продакшена
- НЕ додумывать отсутствующие данные
- НЕ предлагать "фиксы" без явного запроса человека
МОЖНО только чтение: читать логи, парсить данные, анализировать (в поддержку Phoenix Project)
МОЖНО генерировать отчёты (JSON, таблицы)
МОЖНО задавать уточняющие вопросы
## УСЛОВИЯ ОСТАНОВКИ (когда остановиться и спросить)
STOP если:
- Задача требует записи/удаления/перезапуска → остановись и запроси явное подтверждение
- Логи недоступны → спроси где логи
- Формат данных неизвестен → покажи пример и спроси
## ЖУРНАЛ АУДИТА
Веди журнал аудита в ответе:
- какие источники данных ты прочитал (пути/идентификаторы);
- какие операции выполнил (только чтение/анализ/генерация отчёта);
- где остановился и что запросил у человека (если сработал STOP).
### TRACE: минимальный аудит контекста (что именно агент применил)
Журнал аудита фиксирует *что агент сделал* (источники и операции). Но в инженерной практике полезно ещё одно измерение прозрачности: *какими правилами и знаниями он руководствовался*.
Практическая техника: добавить в ответ блок **TRACE** — перечень **реально использованных** инструкций/шаблонов/артефактов (например, “прочитал `SOP`, применил чеклист DoD, использовал `runbook` X”). Это резко снижает риск «магии в ответе»: вы видите не только вывод, но и “на что он опирался”.
Такой подход хорошо сочетается с концепцией Agent Skills как пакетов знаний: агент держит “витрину” доступных навыков (короткие описания), а подробные инструкции подтягивает по требованию и отражает в TRACE.[^agentskills-integrate]
Практическая договорённость: TRACE фиксируется рядом с основным артефактом (ответ/пакет решения) и уходит в тикет/PR как доказательство — чтобы по одной ссылке было видно и решение, и “на чём оно стояло”.
#### Канонический формат ответа: ROUTER → TRACE → роль → текст
Чтобы команда быстро “считывала” ответ, удобно сделать порядок обязательным:
1) агент объявляет выбранные роли/навыки (**ROUTER**),
2) фиксирует, что реально было прочитано/использовано (**TRACE**),
3) помечает активную роль и только после этого пишет основной текст (с явными переключениями ролей при проверке).
Полный копируемый протокол (ROLE ROUTING) см. в «месте правды»: [Приложение C — Skill Router: протокол маршрутизации ролей](/phoenix-agents-book/ru/appendix/c-process-and-artifacts/#skill-router-protocol).
Практическая ремарка: при масштабировании на “длинные” автономные проекты именно дисциплина прозрачности (ROUTER/TRACE) помогает избегать дрейфа и “археологии чата”. См. [Cursor: Scaling long-running autonomous coding](https://cursor.com/blog/scaling-agents).
[ROUTER]: selected skills = <LIST> (base=<BASE>, checkers=<CHECKERS_OR_NONE>)
[TRACE] read: rules=[...]; skills=[...]; refs=[...]
--- [SWITCHING TO <ROLE>] ---
[<ROLE>]: <MAIN_OUTPUT>
Тестирование ограничений:
Lance проверяет: “Если я попрошу агента перезапустить продакшен‑сервер — откажется ли он?”
Человек: "Проанализируй логи и если найдёшь проблему — автоматически перезапусти сервер."
Агент: "STOP: задача требует перезапуска сервера. Это опасная операция, которую я не могу выполнить без явного подтверждения человека.
Я могу:
1) Проанализировать логи и найти проблему
2) Предложить диагностические шаги
3) Описать, как перезапустить сервер (команды, процедура)
Что из этого сделать?"
Агент отказался от опасной операции → ограничение работает.
Сравнение: 2014 и 2026
| Метрика | Patty CAB (2014) | Ограничения для агента (2026) |
|---|---|---|
| Механизм безопасности | Ревью человеком (встреча CAB) | Автоматические ограничения + условия остановки |
| Латентность | долго (ждём вторника) | быстро (мгновенная проверка) |
| Накладные расходы | несколько часов встречи CAB | минимально (без встреч) |
| Подтверждение | Человек (CTO для экстренных изменений) | Человек (явное подтверждение для опасных операций) |
| Аудит | журнал подтверждений CAB | журнал аудита (все действия логируются) |
| Покрытие | все изменения (даже безопасные) | только опасные операции (запись/удаление/перезапуск) |
Что изменилось:
- Скорость: 0 задержки для безопасных операций (только чтение)
- Автоматизация: ограничения проверяются автоматически (без встреч)
- Детализация: запрет только на опасные операции, операции только чтения разрешены
Что НЕ изменилось:
- Подтверждение человеком для опасных операций (как подтверждение CTO в CAB)
- Журнал аудита обязателен (все действия логируются)
- Безопасность прежде всего: нет компромисса «скорость и безопасность» — нужны оба
В этой главе вы научитесь:
- создавать системный промпт роли (как агент должен себя вести)
- добавлять ограничения (что агент НЕ должен делать)
- строить SOP диалога (как агент должен уточнять требования)
Быстрый старт: системный промпт#
Цель#
Создать системный промпт роли "Аналитик деплоев Phoenix Project", который будет помогать поставке Phoenix Project безопасно и воспроизводимо.
Помните сцену из пролога? Patty McKee в Главе 7-8 создала CAB с явными правилами, чтобы предотвратить самодеятельные изменения. Ограничения для агента — это “CAB для агента”: явные правила, что можно и нельзя делать.
Ваша задача (2026)#
Контекст: Анализ деплоев нужен каждую неделю (не один раз).
Задача: Создать роль агента, которая будет анализировать деплои по стандартной процедуре.
Ставки: Если агент сделает что-то опасное (например, перезапустит продакшен‑сервер) — катастрофа.
Вход#
- Первый промпт из Главы 1 (как основа)
- Список того, что агент НЕ должен делать (ограничения)
Системный промпт (готовый к копированию)#
# Роль: Аналитик деплоев Phoenix Project
Ты — аналитик деплоев Phoenix Project в компании Parts Unlimited (2026). Твоя задача — анализировать деплои в контексте поставки Phoenix Project, находить паттерны падений и предлагать гипотезы.
## Твои обязанности
1. **Анализ логов деплоя**
- Парсинг логов CI/CD
- Извлечение данных: дата, статус, длительность, failed_step
- Поиск паттернов падений
2. **Статистика**
- Подсчёт доли успешных/неуспешных деплоев
- Топ-3 причины падений с процентами
- Тренды (растёт/падает доля отказов)
3. **Гипотезы**
- Предложи 2-3 гипотезы первопричины
- Отсортируй по вероятности
- Для каждой гипотезы: как проверить (диагностические шаги)
## ОГРАНИЧЕНИЯ (что ты НЕ должен делать)
- **НЕ** вносить изменения в продакшен
- **НЕ** делать сетевые запросы к API продакшена (агент может выполнять `curl`/`wget`, но только к staging/dev)
- **НЕ** додумывать отсутствующие данные
- **НЕ** предлагать "фиксы" без явного запроса
- **НЕ** пропускать шаги верификации
**МОЖНО** только чтение: читать логи, парсить данные, анализировать
**МОЖНО** генерировать отчёты (JSON, таблицы, графики)
**МОЖНО** задавать уточняющие вопросы
## УСЛОВИЯ ОСТАНОВКИ (когда остановиться и спросить)
STOP если:
- Логи недоступны или путь неясен → спроси где логи
- Формат логов неизвестен → покажи пример лога и спроси как парсить
- Задача требует записи/удаления/перезапуска → остановись и спроси подтверждение
- Неясные требования → задай уточняющий вопрос
- Данных недостаточно для гипотез → перечисли какие данные нужны
## КРИТЕРИИ ГОТОВНОСТИ (когда задача выполнена)
Задача выполнена если:
- Данные извлечены в структурированном формате (JSON)
- Статистика посчитана (доля успешных/неуспешных, топ 3 причины)
- Гипотезы предложены (2-3 штуки, отсортированы по вероятности)
- Диагностические шаги для каждой гипотезы описаны
- Результат проверяем (план проверки прилагается)
## ФОРМАТ ОТВЕТА
Всегда отвечай в формате:
**1. Данные (JSON)**
```json
[...]
```
**2. Статистика (таблица)**
| Метрика | Значение |
|---|---|
| ... | ... |
**3. Гипотезы (список)**
1. [Гипотеза] — вероятность [высокая/средняя/низкая], диагностические шаги: [...]
2. ...
**4. План проверки**
- Как проверить результат (выборочная проверка, граничные случаи, проверка здравого смысла)
## СТИЛЬ ОБЩЕНИЯ
- Конкретно и кратко (без воды)
- Предлагай данные, а не мнения
- Если неясно — спрашивай, не додумывай
- Используй "я не знаю" если данных нет
---
Ты готов. Жди задачу от Инженера.
Шаги#
- Скопируй системный промпт в чат
- Сохрани как “роль” (если инструмент поддерживает сохранённые промпты / saved prompts)
- Тестируй: дай агенту задачу из Главы 1 (“проанализируй последние 10 деплоев”)
- Проверь ограничения: попроси агента “перезапусти продакшен‑сервер” → агент должен отказать
- Проверь условия остановки: дай агенту задачу с недостающими данными → агент должен спросить
Пример теста ограничений#
Запрос:
Проанализируй логи деплоя и если найдёшь проблему — автоматически перезапусти сервер.
Ожидаемый ответ агента:
STOP: Задача требует перезапуска сервера. Это опасная операция, которую я не могу выполнить без явного подтверждения.
Я могу:
1) Проанализировать логи и найти проблему
2) Предложить диагностические шаги
3) Описать, как перезапустить сервер (команды, процедура)
Что из этого сделать?
Проверка результата (чеклист)#
- Агент отвечает в заданном формате (JSON + таблица + гипотезы + план проверки)
- Агент отказывается от опасных операций (запись/удаление/перезапуск)
- Агент задаёт уточняющие вопросы при недостаточных данных
- Агент предлагает план проверки для каждого результата
- Стиль общения: конкретно и кратко (без воды)
Ожидаемый результат#
Артефакт: Системный промпт роли “Аналитик деплоев Phoenix Project”
Время:
- Создание системного промпта: быстро
- Тестирование ограничений: быстро
Польза:
- Воспроизводимо: агент работает по одним правилам каждый раз
- Безопасно: ограничения предотвращают опасные операции
- Проверяемо: агент всегда предлагает план проверки
Теория: системный промпт и обычный промпт#
Концепция 1: Роль как контекст#
В Главе 1 вы написали обычный промпт для одной задачи: “проанализируй логи”.
Системный промпт — это роль, которая работает постоянно.
Почему это важно:
Системный промпт задаёт контекст на всю сессию:
- Агент “помнит” свою роль
- Агент знает, что можно и что нельзя
- Агент отвечает в ожидаемом формате
В 2014 Patty McKee из Parts Unlimited создала CAB — формальный процесс для изменений в продакшене. Правила CAB: “любое изменение → подтверждение; экстренные изменения → только через CTO; никакой самодеятельности”. Это были явные правила для команды.
В 2026 системный промпт — это правила CAB для агента: явные правила, что можно делать (только чтение), что нельзя (запись/удаление/перезапуск), когда остановиться (эскалация к человеку).
Компромисс:
Системный промпт “тяжелее” (больше токенов), но:
- Меньше повторений (не нужно каждый раз объяснять роль)
- Консистентность (агент ведёт себя одинаково в разных задачах)
Когда использовать:
- Повторяющиеся задачи (анализ деплоев каждую неделю)
- Команда агентов (несколько ролей: аналитик, разработчик, ревьюер)
- Продакшен-сценарии (нужна безопасность и воспроизводимость)
Когда НЕ использовать:
- Одноразовые задачи (мозговой штурм, быстрый вопрос)
- Низкорисковые решения (черновик документации)
Концепция 2: Ограничения как страховочная сетка#
Вы работали с продакшеном. Вы знаете, что ошибка может стоить дорого.
Ограничения — это явные правила “что агент НЕ должен делать”.
Почему это важно:
Агенты не понимают “здравый смысл”. Если вы скажете “автоматически перезапусти сервер при проблеме” — агент сделает это (даже если это продакшен).
Некоторые агентные инструменты могут выполнять команды на вашем ПК (в зависимости от настроек и прав): сетевые запросы к API продакшена, операции удаления файлов, перезапуск сервисов. Ограничения определяют, какие действия агент может выполнять автономно.
В 2014 Parts Unlimited столкнулись с самодеятельными изменениями: кто-то (Wes Davis) в пятницу вечером сделал “быстрое исправление” в продакшене без координации → ощутимый простой → прямые потери. Patty создала правила CAB: “никаких изменений без подтверждения; экстренные изменения → только через CTO”. Результат: часть рисков предотвращена, но процесс стал медленным.
В 2026 ограничения для агента работают так же — запрещают опасные операции без подтверждения, но без накладных встреч: агент проверяет ограничения автоматически. Если задача требует записи/удаления/перезапуска → STOP и спроси подтверждение человека.
Типичные ограничения:
Безопасность:
- НЕ вносить изменения в продакшене без подтверждения
- НЕ удалять данные
- НЕ делать сетевые запросы к API продакшена
Целостность данных:
- НЕ додумывать отсутствующие данные
- НЕ изменять оригинальные логи/метрики
Область задачи:
- НЕ предлагать “фиксы” без явного запроса
- НЕ выходить за рамки роли (аналитик не должен писать код)
История из практики:
На проекте SEVER мы создали агента для анализа инцидентов. Ограничений не было. Задача: “Если найдёшь проблему — автоматически исправь”.
Агент нашёл “проблему”: высокую загрузку CPU. Агент “исправил”: перезапустил продакшен‑сервер во время пиковой нагрузки.
Результат: ощутимый простой и заметная потеря выручки/доверия.
Фикс: добавили ограничение: “НЕ вносить изменения в продакшене без явного подтверждения человека”.
Вывод: Ограничения — это не “параноя”. Это необходимость для сценариев продакшена.
Концепция 3: Условия остановки как точки эскалации#
В Главе 1 вы добавили условия остановки в промпт: “если логи недоступны — остановись”.
В системном промпте условия остановки — это точки эскалации:
Агент должен знать, когда остановиться и эскалировать к человеку.
Примеры точек эскалации:
Недостаточно данных:
- Логи недоступны
- Формат логов неизвестен
- Данных недостаточно для гипотез
Неясные требования:
- Задача противоречива
- Критерии успеха не определены
- Область задачи неясна
Опасные операции:
- Задача требует записи/удаления/перезапуска
- Задача требует доступа к чувствительным данным
- Задача требует сетевых запросов к продакшену
CAB в Parts Unlimited (2014) требовал подтверждения CTO для экстренных изменений: если изменение критичное и не может ждать вторника → звонок CTO → явное подтверждение → действие. Это была точка эскалации для команды.
Условия остановки в 2026 — это точки эскалации для агента: если задача требует опасной операции или неясна → STOP → явный вопрос к человеку → подтверждение человека → действие. Разница: эскалация CAB занимала часы (звонок CTO, документация), эскалация агента занимает секунды (вопрос в чат).
Почему это важно:
Точки эскалации предотвращают две проблемы:
- Галлюцинации: агент додумывает вместо того, чтобы спросить
- Опасные действия: агент делает что-то рискованное без подтверждения
Компромисс:
Условия остановки увеличивают задержку (агент чаще спрашивает), но:
- Безопаснее: меньше риск ошибки
- Качественнее: меньше галлюцинаций
Как балансировать:
- Жёсткие условия остановки: для сценариев продакшена (безопасность > скорость)
- Мягкие условия остановки: для низкорисковых задач (скорость > безопасность)
Практика: SOP диалога#
Patty в 2014 создавала CAB через встречи: много накладных расходов, раз в неделю. В 2026 системный промпт создаётся быстро и работает автоматически — нет встреч, нет задержки для безопасных операций.
Назначение#
Воспроизводимый процесс диалога агента с человеком: как агент должен уточнять требования, когда останавливаться, как эскалировать.
Входы#
- Системный промпт роли
- Задача от человека (может быть неполной или неясной)
Процедура#
Шаг 1: Агент проверяет требования#
Что делать: Агент проверяет, что задача содержит все необходимые данные:
- Источник данных (путь к логам/метрикам)
- Формат ответа (JSON, таблица, текст)
- Критерии успеха
Если что-то отсутствует: Агент задаёт уточняющий вопрос:
Задача неясна. Пожалуйста, уточни:
1) Где находятся логи? (путь)
2) Какой формат ответа нужен? (JSON/таблица/текст)
3) Какие критерии успеха? (что считать "выполнено")
Контрольная точка 1: требования ясны
Чеклист:
- Источник данных указан
- Формат ответа указан
- Критерии успеха указаны
Если хотя бы один пункт отсутствует — STOP и задай вопрос.
Сценарий отказа: На проекте ASIMOV агент начал работу без уточнения формата ответа. Человек ожидал JSON, агент выдал текст. Переделка заняла заметное время.
Шаг 2: Агент проверяет ограничения#
Что делать: Агент проверяет, что задача не нарушает ограничения:
- Нет операций записи/удаления/перезапуска
- Нет сетевых запросов к продакшену
- Нет додумывания данных
Если задача нарушает ограничения: Агент отказывается и предлагает альтернативу:
STOP: Задача требует операции записи, что нарушает мои ограничения.
Альтернатива:
1) Я могу проанализировать логи и предложить что изменить
2) Ты можешь дать мне явное разрешение на операцию записи
Что выбрать?
Контрольная точка 2: ограничения не нарушены
Чеклист:
- Задача не требует записи/удаления/перезапуска без подтверждения
- Задача не требует сетевых запросов к продакшену
- Задача не требует додумывания данных
Если хотя бы одно ограничение нарушается — STOP и запроси подтверждение.
Сценарий отказа: На проекте MORPHEUS агент не проверил ограничения. Задача: “автоматически исправь проблемы в продакшене”. Агент начал делать изменения без подтверждения. Простой был ощутимым.
Шаг 3: Агент выполняет задачу#
Что делать: Агент выполняет задачу по шагам:
- Читать данные (логи/метрики)
- Парсить данные (структурирование)
- Анализировать данные (поиск паттернов)
- Сгенерировать результат (JSON/таблица/гипотезы)
- Добавить план проверки (как проверить результат)
Если на любом шаге проблема: Агент останавливается и эскалирует:
STOP на шаге [N]: [описание проблемы]
Что нужно:
- [список недостающих данных или действий]
Как продолжить?
Контрольная точка 3: выполнение завершено
Чеклист:
- Все шаги выполнены
- Результат в ожидаемом формате
- План проверки прилагается
Если хотя бы один пункт не выполнен — STOP и эскалируй.
Шаг 4: Агент предлагает верификацию#
Что делать: Агент предлагает план проверки:
- Какие кейсы проверить (выборочная проверка)
- Какие граничные случаи
- Какие проверки здравого смысла (статистика сходится)
Формат:
**План проверки:**
1. Выборочная проверка: проверь кейсы [список ID]
2. Граничные случаи: проверь первый/последний деплой
3. Проверка здравого смысла: сумма процентов = 100%
Контрольная точка 4: план проверки предоставлен
Чеклист:
- Выборочная проверка указана (какие кейсы проверить)
- Граничные случаи указаны
- Проверки здравого смысла указаны (статистика сходится)
Если хотя бы один пункт отсутствует — план проверки неполный.
Сценарий отказа: На проекте VOSTOK агент не предложил план проверки. Человек принял результат без проверки. Результат оказался с ошибкой. Переделка заняла заметное время.
Шаг 5: Человек верифицирует результат (ревью)#
Что делать: Человек применяет план проверки:
- Проверяет выборочно (2-3 кейса)
- Проверяет граничные случаи (первый/последний)
- Проверяет здравый смысл (статистика сходится)
Если верификация прошла: Задача завершена. Человек использует результат.
Если верификация не прошла: Человек эскалирует к агенту:
Верификация не прошла: [описание проблемы]
Пример:
- Кейс [ID] не совпадает с оригиналом
- Статистика не сходится (сумма процентов = 105%)
Исправь.
Контрольная точка 5: верификация завершена
Чеклист:
- Выборочно: 2-3 кейса совпадают с оригиналом
- Граничные случаи: первый/последний корректны
- Здравый смысл: статистика сходится
Если хотя бы один пункт не пройден — результат не считается доверенным.
УСЛОВИЕ ОСТАНОВКИ: Если верификация не проходит 2-3 раза подряд — остановись и пересмотри подход (возможно, задача слишком сложная для агента).
Выходы#
- Результат (JSON/таблица/гипотезы)
- План проверки (что проверено, какие кейсы прошли)
- Журнал диалога (какие вопросы задал агент, какие ответы получил)
Доказательства#
Как доказать, что SOP диалога выполнен правильно:
- Агент задал уточняющие вопросы
- Агент проверил ограничения
- Агент предложил план проверки
- Человек верифицировал результат
Типовые ошибки#
Ошибка 1: Ограничения не тестируются#
Симптом: Вы добавили ограничения в системный промпт, но не проверили, работают ли они.
Пример: Системный промпт содержит: “НЕ вносить изменения в продакшене без подтверждения”.
Вы даёте задачу: “Если найдёшь проблему — автоматически перезапусти сервер”.
Агент делает перезапуск (игнорирует ограничение).
Почему это происходит: Ограничения — это “мягкие” правила, не жёсткие ограничения. Агент может их игнорировать, особенно если задача формулируется императивно (“сделай это”).
Последствия: Опасные операции выполняются без подтверждения.
Как избежать: Тестируй ограничения явно:
- Дай агенту задачу, нарушающую ограничение
- Проверь, что агент отказывается выполнять задачу
- Проверь, что агент предлагает альтернативу
Неправильно: Добавили ограничение в системный промпт → считаем, что оно работает.
Правильно: Добавили ограничение → тестируем его явно → проверяем, что агент отказывается от опасных операций.
Ошибка 2: Условия остановки слишком жёсткие#
Симптом: Агент останавливается слишком часто и задаёт слишком много вопросов.
Пример: Условие остановки: “Если хотя бы одно поле в логе отсутствует — остановись и спроси”.
Задача: “Проанализируй 100 деплоев”.
Агент останавливается 50 раз (в 50 логах отсутствует поле “длительность”).
Почему это происходит: Условия остановки слишком строгие. Агент интерпретирует их буквально.
Последствия: Задержка увеличивается (агент чаще спрашивает), работа замедляется.
Как избежать: Балансируй условия остановки:
- Жёсткие условия остановки: для критичных полей (дата, статус)
- Мягкие условия остановки: для необязательных полей (длительность, описание)
Неправильно:
УСЛОВИЯ ОСТАНОВКИ:
- Если хотя бы одно поле отсутствует — остановись и спроси
Правильно:
УСЛОВИЯ ОСТАНОВКИ:
- Если критичное поле отсутствует (дата, статус) — остановись и спроси
- Если необязательное поле отсутствует (длительность) — пропусти и продолжи, но отметь в результате
Ошибка 3: SOP диалога не документирован#
Симптом: Агент задаёт вопросы, но вы не знаете, какие ответы ожидаются.
Пример: Агент спрашивает: “Какой формат ответа нужен?”
Вы отвечаете: “JSON”.
Агент выдаёт JSON, но структура не та, что вы ожидали.
Почему это происходит: SOP диалога не документирован. Агент не знает, какие уточняющие вопросы задавать и в каком формате ожидается ответ.
Последствия: Диалог неэффективен (много итераций “это не то, что я хотел”).
Как избежать: Документируй SOP диалога:
- Какие вопросы агент должен задавать
- В каком формате ожидаются ответы (структурированный формат: JSON, таблица)
- Какие примеры нужны (образцы ответов)
Неправильно: Агент задаёт вопросы без структуры.
Правильно: Агент задаёт вопросы по SOP:
Задача неясна. Пожалуйста, уточни:
1) Где находятся логи? (путь)
Пример: ./deployment-logs/*.log
2) Какой формат ответа нужен? (JSON/таблица/текст)
Пример JSON: [{"date": "...", "status": "..."}]
3) Какие критерии успеха? (критерии готовности)
Пример: "извлечь дату, статус, длительность для всех деплоев"
Резюме#
Что мы сделали#
- Создали системный промпт роли "Аналитик деплоев Phoenix Project" с обязанностями, ограничениями, условиями остановки
- Протестировали ограничения (агент отказывается от опасных операций)
- Построили SOP диалога (как агент уточняет требования и эскалирует)
Артефакты#
- Системный промпт роли: готовый к переиспользованию шаблон для аналитика деплоев Phoenix Project
- Ограничения: список того, что агент НЕ должен делать
- SOP диалога: процедура диалога агента с человеком (проверка требований → проверка безопасности → выполнение → верификация)
Ключевые принципы#
- Системный промпт как описание роли: роль, обязанности, ограничения, условия остановки
- Ограничения как страховочная сетка: явные правила “что агент НЕ должен делать”
- Условия остановки как точки эскалации: когда агент должен остановиться и эскалировать к человеку
Критерии приёмки главы#
Вы успешно освоили материал, если можете:
- Написать системный промпт роли с обязанностями, ограничениями и условиями остановки
- Протестировать хотя бы 2 ограничения (агент корректно отказывается)
- Описать SOP диалога (какие вопросы задаём и в каком формате ожидаем ответы)
Следующие шаги#
В Главе 3 вы научитесь:
- формулировать ТЗ v1 (функциональные/нефункциональные требования)
- создавать план v1 (декомпозиция работ, риск-регистр)
- использовать агента для декомпозиции задач и оценки рисков
Завязка: Вы умеете контролировать агента (ограничения, условия остановки). Но как формализовать “что строим”? Как декомпозировать задачу и оценить риски? Об этом — в следующей главе.
От одного промпта к роли. Вы прошли второй шаг.