DeepSeek Harness
Меню глав

← К оглавлению

[позже] Промптинг (общий курс)

Глава 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. Как экономить токены при написании промптов

Токены — это деньги. Чем длиннее промпт и чем больше агент делает шагов, тем дороже задача. Вот как сократить расходы:

  1. Выносите постоянные настройки в профиль. Например, если вы всегда используете DeepSeek-V4-Flash и Standard — пропишите модель и лимиты в cordis.patch.yml, а не в каждом промпте. PTC включайте пресетом сессии только для длинных пайплайнов.
  2. Используйте короткие, но точные формулировки. Вместо «пожалуйста, не могли бы вы...» пишите «Сделай».
  3. Давайте одну задачу за раз. Если нужно несколько дел, разбейте их на отдельные сессии.
  4. Используйте лимиты в профиле (max_steps, max_tokens), чтобы агент не ушёл в бесконечный цикл.
  5. При ошибках не просите агента «подумать ещё» — лучше остановитесь, прочитайте логи и дайте уточнённый промпт.

7.9. Как отлаживать промпты

Если агент сделал не то или потратил много токенов, посмотрите на траекторию (Trajectory) — это полный лог всех действий агента. В веб-интерфейсе после выполнения задачи вы можете открыть детали сессии и увидеть:

  • какие промпты отправлялись модели,
  • какие инструменты вызывались,
  • какие ошибки возникали,
  • сколько токенов потрачено на каждом шаге.

Анализируя траекторию, вы увидите, где агент «сбился с пути», и сможете уточнить промпт для следующего запуска.


7.10. Итоговый чек-лист

Прежде чем отправить задачу агенту, проверьте свой промпт:

  • [x] Чётко сформулирована конечная цель (что должно получиться).
  • [x] Указаны ресурсы (репозиторий, сервер, профиль).
  • [x] Описаны шаги (если важен порядок).
  • [x] Есть ограничения (что нельзя делать).
  • [x] Определены действия при ошибках.
  • [x] Указано, что делать в конце (уведомление, ссылка).
  • [x] Промпт не слишком длинный (можно уместить в 10–15 предложений).
  • [x] В профиле настроены лимиты на шаги и токены.

Следуя этим правилам, вы сможете эффективно использовать DSH для автоматизации, не переплачивая и не разочаровываясь в результате.


Квиз по главе 10 вопросов · нажмите, чтобы открыть

Ответьте на все вопросы и сдайте квиз — сразу будет оценка и отсылки к тексту, где доучить ошибки.

Вопрос 1 из 10

Чем промпт для DSH отличается от промпта для Cursor?

Вопрос 2 из 10

Что будет, если промпт расплывчатый?

Вопрос 3 из 10

Что важно в структуре «идеального» промпта?

Вопрос 4 из 10

Зачем в главе сравнивают хорошие и плохие промпты?

Вопрос 5 из 10

Как правильно указывать действия на сервере в промпте?

Вопрос 6 из 10

Чего нельзя делать в промптах?

Вопрос 7 из 10

Зачем шаблоны промптов в главе?

Вопрос 8 из 10

Как экономить токены в промптах?

Вопрос 9 из 10

Как отлаживать промпты?

Вопрос 10 из 10

Итог главы 7?