[позже] Промптинг (общий курс)
Глава 7. Искусство промптинга для DSH (для маркетолога)
В прошлых главах вы настроили профиль, подключили GitHub и сервер. Теперь осталось самое важное — научиться правильно давать задачи агенту. В Cursor вы могли писать промпты в свободной форме, и ИИ дописывал код. В DSH промпт — это инструкция для автономного исполнителя, который будет сам планировать шаги и выполнять их. Если промпт расплывчатый, агент может сделать не то, потратить кучу токенов или застрять в цикле.
Эта глава — ваш «учебник по промптингу» для DSH. Никакой теории ИИ, только практика и шаблоны для ваших задач.
7.1. Чем промпт для DSH отличается от промпта для Cursor
| Критерий | Cursor | DeepSeek Harness |
|---|---|---|
| Цель | Получить готовый код, который вы потом сами используете | Получить выполненную задачу — агент сам делает всё от начала до конца |
| Что вы описываете | Что нужно написать (функцию, скрипт, компонент) | Какой конечный результат вы хотите увидеть (работающий сайт, отправленный отчёт, обновлённая база) |
| Уровень детализации | Можно быть кратким — модель сама догадается | Нужно чётко указать границы (что можно менять, что нельзя) и условия остановки |
| Обработка ошибок | Вы сами видите ошибку и просите исправить | Агент должен сам обнаруживать и исправлять ошибки или сообщать вам |
| Безопасность | Вы контролируете каждое изменение | Агент может выполнять команды на сервере — нужно чётко ограничить его права в промпте |
7.2. Золотые правила промпта для DSH
Чтобы агент сделал то, что вы хотите, и не наломала дров, запомните пять правил:
Правило 1. Чётко формулируйте конечный результат
Вместо: «Сделай сайт»
Напишите: «Создай одностраничный сайт-визитку для компании "Ромашка" с блоком "О нас", "Услуги", "Контакты". Дизайн — минималистичный, на белом фоне, шрифт Inter. Задеплой на мой сервер (профиль "мой_сайт") так, чтобы он открывался по адресу http://мой-сайт.рф».
Правило 2. Указывайте ограничения (что нельзя делать)
«Не изменяй существующие файлы в папке /home/dsh-agent/www/config, не удаляй базу данных, не перезагружай сервер без моего подтверждения».
Правило 3. Определяйте действия при ошибках
«Если при деплое возникнет ошибка 500, попробуй перезапустить сервер один раз. Если не поможет — остановись и сообщи мне текст ошибки».
Правило 4. Разбивайте сложные задачи на шаги
Вместо одной гигантской задачи лучше дать последовательность простых. Можно указать в промпте: «Сначала... затем... после проверки...»
Правило 5. Всегда указывайте профиль или явно ссылайтесь на настроенные плагины
«Используй мой профиль "мой_сайт" для доступа к GitHub и серверу» или явно: «Подключись к серверу "Мой VPS" и создай папку для нового проекта».
7.3. Структура идеального промпта
Чтобы ничего не забыть, используйте эту структуру:
1. [ЦЕЛЬ] Что должно быть сделано и какой финальный результат.
2. [РЕСУРСЫ] С какими репозиториями, серверами, базами данных работать.
3. [ШАГИ] Последовательность действий (если важно).
4. [ОГРАНИЧЕНИЯ] Что нельзя трогать, какие команды запрещены.
5. [ОБРАБОТКА ОШИБОК] Что делать при сбоях.
6. [ФИНАЛ] Что сделать по завершении (уведомление, ссылка, лог).
Это как техническое задание для подрядчика. Чем детальнее, тем лучше.
7.4. Примеры хороших и плохих промптов
Пример 1: Создание сайта-визитки
Плохой промпт:
«Сделай мне сайт»
Что пойдёт не так: агент не знает, какой сайт, для кого, куда деплоить, какой дизайн. Он либо сделает что-то абстрактное, либо спросит уточнения (что сожжёт токены и время).
Хороший промпт:
«ЦЕЛЬ: Создать одностраничный сайт-визитку для компании "БухгалтерПро". В сайт должны входить: логотип (используй заглушку), блок "Услуги" с тремя пунктами (бухгалтерский учёт, налоговое консультирование, аудит), блок "О нас" с текстом-заглушкой, форма обратной связи (имя, телефон, сообщение), и контактные данные (телефон, email, адрес). Дизайн — строгий, синий цвет (#1a5276), шрифт Roboto.
РЕСУРСЫ: Работай в репозитории https://github.com/мой-аккаунт/buhgalter-site. После создания кода закоммить изменения и запушь в ветку main.
ШАГИ: 1. Создай папку проекта локально (или используй уже существующую). 2. Создай index.html, style.css, script.js (если нужен). 3. Добавь форму обратной связи (без бэкенда, просто заглушка). 4. Проверь, что страница открывается в браузере. 5. Закоммить и запушить на GitHub.
ОГРАНИЧЕНИЯ: Не используй внешние библиотеки, кроме шрифтов Google. Не трогай другие файлы в репозитории.
ОБРАБОТКА ОШИБОК: Если после создания страница не открывается, попробуй исправить ошибки в коде (проверь пути к CSS). Если не получается — сообщи мне.
ФИНАЛ: Пришли ссылку на репозиторий и скажи, что сайт готов к просмотру.»
Этот промпт даёт агенту всё: цель, ресурсы, шаги, ограничения, инструкции по ошибкам и финальное действие. Вероятность успеха высокая.
Пример 2: Ежедневный парсинг курса валют
Плохой промпт:
«Парси курс доллара и скидывай в телеграм»
Что пойдёт не так: агент не знает, откуда парсить, как часто, в какой телеграм-чат, в каком формате.
Хороший промпт:
«ЦЕЛЬ: Настроить автоматический парсинг курса USD/RUB с сайта ЦБ РФ (https://cbr.ru) каждый день в 10:00 по московскому времени и отправлять результат в мой Telegram-канал @my_channel.
РЕСУРСЫ: Используй профиль "парсинг", в котором установлен плагин dsh-automation для расписания и dsh-telegram для отправки сообщений.
ШАГИ: 1. Напиши скрипт на Python, который заходит на сайт ЦБ, парсит курс доллара и сохраняет его в переменную. 2. Добавь логирование времени парсинга. 3. Интегрируй отправку сообщения в Telegram с текстом "Курс USD на сегодня: X.XX руб.".
ОГРАНИЧЕНИЯ: Не используй Selenium, только requests и BeautifulSoup. Не храни токены в коде — возьми их из переменных окружения.
ОБРАБОТКА ОШИБОК: Если сайт недоступен, попробуй повторить через 5 минут три раза. Если всё равно не получается — отправь мне сообщение об ошибке и остановись.
ФИНАЛ: После настройки расписания покажи мне лог первого выполнения, чтобы я убедился, что всё работает.»
Такой промпт превращает агента в вашего личного ассистента, который не просто пишет код, но и организует его выполнение.
7.5. Как правильно указывать действия на сервере
В предыдущей главе вы подключили сервер. Теперь в промптах вы можете давать команды для сервера.
Пример: вы хотите, чтобы агент обновил сайт на сервере.
«Подключись к серверу "Мой VPS" (пользователь dsh-agent). В папке /home/dsh-agent/www/project1 выполни git pull из ветки main. Затем перезапусти сервер Nginx командой sudo systemctl restart nginx (используй sudo без пароля, так как пользователь dsh-agent настроен для этого). Проверь, что сайт открывается, и пришли мне статус "обновление выполнено" или текст ошибки.»
Важно: если команда требует прав sudo, вы должны заранее настроить пользователя для выполнения этой команды без пароля (через sudoers), чтобы агент не завис в ожидании пароля. Или используйте режим ask для опасных команд.
7.6. Чего нельзя делать в промптах (и как избежать)
| Чего нельзя | Почему | Как правильно |
|---|---|---|
| Просить агента сделать то, что он не умеет (например, «позвони клиенту») | Агент может попытаться, но не сможет, потратит токены и время | Давайте только те задачи, которые можно автоматизировать через код, API, скрипты |
| Давать слишком общие задачи | Агент будет переспрашивать, или сделает не то | Детализируйте, разбивайте на подзадачи |
| Не указывать ограничения | Агент может перезаписать важные файлы или выполнить опасную команду | Всегда явно прописывайте, что нельзя делать |
| Игнорировать стоимость | Длинные промпты или сложные задачи могут дорого стоить | Сокращайте промпты, используйте стандартные шаблоны, указывайте лимиты шагов и токенов в профиле |
| Полагать, что агент «знает» контекст | DSH не сохраняет контекст между сессиями, если вы не используете специальные плагины | Повторяйте ключевую информацию в каждом новом промпте, или сохраняйте её в профиле |
7.7. Шаблоны промптов для частых задач
Вот несколько готовых шаблонов, которые вы можете копировать и адаптировать.
Шаблон 1: Создание нового сайта (с деплоем на сервер)
ЦЕЛЬ: Создать [тип сайта] для [компания/проект] с [краткое описание функционала].
Деплой на сервер [имя сервера] в папку [путь].
РЕСУРСЫ: Репозиторий GitHub [ссылка], сервер [имя], профиль [имя профиля].
ШАГИ:
1. Создай локальную копию репозитория (если нет).
2. Напиши код [описание технологий, например, HTML+CSS+JS, или React, или PHP].
3. Проверь локально, что всё работает.
4. Загрузи на сервер в папку [путь] (используй rsync или git pull).
5. Настрой веб-сервер (если нужно).
6. Проверь, что сайт открывается по адресу [URL].
ОГРАНИЧЕНИЯ: Не трогай файлы конфигурации [список]. Используй только [разрешённые библиотеки].
ОБРАБОТКА ОШИБОК: Если при загрузке ошибка — сообщи мне текст ошибки и остановись.
ФИНАЛ: Дай ссылку на сайт и на репозиторий.
Шаблон 2: Обновление данных на сайте
ЦЕЛЬ: Обновить контент на сайте [URL] из источника [Google Sheets / CSV / API].
РЕСУРСЫ: Сервер [имя], данные по ссылке [ссылка].
ШАГИ:
1. Скачай новые данные из источника.
2. Обнови файлы на сервере [путь к файлам].
3. Перезапусти кеш, если используется.
ОГРАНИЧЕНИЯ: Не изменяй структуру базы данных.
ОБРАБОТКА ОШИБОК: Если источник недоступен, остановись и сообщи.
ФИНАЛ: Отправь уведомление в Telegram об успешном обновлении.
Шаблон 3: Парсинг и отправка отчёта
ЦЕЛЬ: Собрать данные с сайта [URL] и отправить отчёт в [Telegram/email].
РЕСУРСЫ: Плагин dsh-browser (если нужен браузер), или requests (если API).
ШАГИ:
1. Зайди на сайт [URL].
2. Извлеки данные [какие именно: цены, товары, новости].
3. Обработай данные (суммируй, усредни, отфильтруй).
4. Сформируй отчёт в виде текста или таблицы.
5. Отправь в [Telegram канал / email].
ОГРАНИЧЕНИЯ: Не превышай 50 запросов в минуту, чтобы не забанили.
ОБРАБОТКА ОШИБОК: Если сайт не отвечает, повтори через 5 минут до 3 раз.
ФИНАЛ: Отправь уведомление, что отчёт готов.
7.8. Как экономить токены при написании промптов
Токены — это деньги. Чем длиннее промпт и чем больше агент делает шагов, тем дороже задача. Вот как сократить расходы:
- Выносите постоянные настройки в профиль. Например, если вы всегда используете DeepSeek-V4-Flash и Standard — пропишите модель и лимиты в
cordis.patch.yml, а не в каждом промпте. PTC включайте пресетом сессии только для длинных пайплайнов. - Используйте короткие, но точные формулировки. Вместо «пожалуйста, не могли бы вы...» пишите «Сделай».
- Давайте одну задачу за раз. Если нужно несколько дел, разбейте их на отдельные сессии.
- Используйте лимиты в профиле (
max_steps,max_tokens), чтобы агент не ушёл в бесконечный цикл. - При ошибках не просите агента «подумать ещё» — лучше остановитесь, прочитайте логи и дайте уточнённый промпт.
7.9. Как отлаживать промпты
Если агент сделал не то или потратил много токенов, посмотрите на траекторию (Trajectory) — это полный лог всех действий агента. В веб-интерфейсе после выполнения задачи вы можете открыть детали сессии и увидеть:
- какие промпты отправлялись модели,
- какие инструменты вызывались,
- какие ошибки возникали,
- сколько токенов потрачено на каждом шаге.
Анализируя траекторию, вы увидите, где агент «сбился с пути», и сможете уточнить промпт для следующего запуска.
7.10. Итоговый чек-лист
Прежде чем отправить задачу агенту, проверьте свой промпт:
- [x] Чётко сформулирована конечная цель (что должно получиться).
- [x] Указаны ресурсы (репозиторий, сервер, профиль).
- [x] Описаны шаги (если важен порядок).
- [x] Есть ограничения (что нельзя делать).
- [x] Определены действия при ошибках.
- [x] Указано, что делать в конце (уведомление, ссылка).
- [x] Промпт не слишком длинный (можно уместить в 10–15 предложений).
- [x] В профиле настроены лимиты на шаги и токены.
Следуя этим правилам, вы сможете эффективно использовать DSH для автоматизации, не переплачивая и не разочаровываясь в результате.
Квиз по главе
Ответьте на все вопросы и сдайте квиз — сразу будет оценка и отсылки к тексту, где доучить ошибки.