[позже] Создание профиля с нуля
Глава 6. Создание профиля (Profile) — ваша «машина для автоматизации»
В предыдущих главах вы:
- установили DSH и настроили API-ключ (Глава 2),
- запустили агента в тестовой папке (Глава 3),
- подключили GitHub (Глава 4),
- дали агенту доступ к серверу (Глава 5).
Теперь настало время собрать всё воедино и создать профиль — вашу персональную «машину для автоматизации».
6.1. Что такое Profile и зачем он нужен
В других инструментах вы «устанавливаете агента». В DeepSeek Harness вы запускаете Profile.
Простыми словами: Profile — это набор настроек, в котором вы один раз записываете:
- какие плагины использовать,
- какую модель вызывать,
- какие права давать агенту,
- какие инструменты подключать (GitHub, сервер, база данных).
После создания профиля вы сможете запускать одну и ту же задачу одной командой, не настраивая всё заново каждый раз.
Сравнение с Cursor:
| Что вы делали в Cursor | Что вы делаете в DSH через Profile |
|---|---|
Писали правила в .cursorrules |
Создаёте Profile — целый «набор инструментов» |
| Каждый раз заново объясняли задачу | Один раз настроили — и запускаете повторно |
| Не могли сохранить настройки для разных типов задач | Создаёте несколько профилей: «Сайт», «Парсинг», «Отчёты» |
В DSH Profile — это не просто правила, а полноценная сборка агента: какие у него есть инструменты, как он себя ведёт, к чему имеет доступ.
6.2. Структура профиля (что внутри)
Profile — это папка с тремя файлами. Она находится в ~/.dsh/profiles/<имя_профиля>/:
~/.dsh/profiles/<имя_профиля>/
├── package.json # список плагинов, которые нужны этому профилю
├── dsh.profile # список «кирпичиков» (bundles), из которых собран профиль
└── cordis.patch.yml # ваши личные настройки (самый важный файл!)
Что делает каждый файл:
| Файл | Что содержит | Аналогия |
|---|---|---|
| package.json | Список плагинов, которые нужно установить | «Список покупок» в магазине |
| dsh.profile | Список bundles (базовых наборов) для сборки | «Рецепт» — какие ингредиенты смешать |
| cordis.patch.yml | Ваши личные настройки поверх всего | «Добавить соли по вкусу» |
Важно: править нужно только cordis.patch.yml. Остальные файлы создаются автоматически.
6.3. Встроенные профили: web и headless
DSH поставляется с двумя готовыми профилями:
| Профиль | Команда запуска | Для чего |
|---|---|---|
| web | dsh web (или dsh --profile web) |
Работа в браузере, интерактивный режим |
| headless | dsh --profile headless "задача" |
Однозадачный запуск без интерфейса (для скриптов, CI/CD) |
Они оба используют одну и ту же базу (dsh-base) — модель, инструменты, безопасность. Разница только в том, что web добавляет веб-интерфейс, а headless — нет.
Для маркетолога: вы будете работать в web-профиле, когда сидите за компьютером. А когда захотите запускать задачи автоматически (по расписанию, на сервере) — будете использовать headless.
6.4. Зачем создавать свой профиль
Встроенные профили (web и headless) — это чистый DSH без ваших доработок. Они не знают про ваш GitHub, не умеют подключаться к вашему серверу, не помнят ваши настройки.
Свой профиль вы создаёте для того, чтобы один раз настроить всё необходимое и больше не повторять это.
Пример: вы хотите, чтобы агент всегда:
- использовал DeepSeek-V4-Flash (дешевле) или V4-Pro,
- имел доступ к вашему GitHub-репозиторию,
- мог подключаться к вашему серверу,
- по умолчанию работал в Standard (а PTC включали выборочно для длинных задач),
- не выполнял опасные команды без подтверждения.
Всё это вы прописываете один раз в своём профиле — и дальше просто запускаете его командой.
6.5. Пошаговая инструкция: создание своего профиля
Шаг 1. Создайте профиль через команду
Откройте терминал и выполните:
dsh plugin --profile мой_профиль
Что происходит: DSH создаёт папку ~/.dsh/profiles/мой_профиль/ с базовой структурой.
Важно: если вы укажете имя web или headless — вы перезапишете встроенные профили. Используйте новое имя, например мой_сайт, парсер, отчёты.
Шаг 2. Добавьте плагины в профиль
Теперь добавьте в профиль те плагины, которые вы установили в предыдущих главах:
# Добавляем GitHub-плагины
dsh plugin --profile мой_профиль add dsh-github dsh-github-rest dsh-tool-github dsh-github-connect
# Добавляем SSH-плагин для сервера
dsh plugin --profile мой_профиль add https://github.com/dmz2922990/dsh-ssh.git
Что происходит: плагины записываются в package.json вашего профиля и устанавливаются.
Шаг 3. Настройте профиль (самый важный шаг)
Откройте файл ~/.dsh/profiles/мой_профиль/cordis.patch.yml в любом текстовом редакторе.
Добавьте в него ваши настройки. Вот пример для маркетолога, который хочет создавать сайты:
# Подключаем базовые наборы (bundles)
- insert:
- id: dsh-base
- id: dsh-web-app
# Настраиваем модель (для старта обычно хватает V4-Flash)
- patch:
id: model
config:
provider: deepseek
model: deepseek-v4-flash
temperature: 0.3
# Режим агента по умолчанию — standard.
# PTC (Programmatic Tool Calling / Code Mode) включайте в UI пресета сессии
# или временно через DSH_TOOLS_MODE=code|both — не путайте с «планом проверки».
- patch:
id: agent
config:
mode: standard
# Добавляем GitHub-инструменты
- insert:
- id: dsh-github
name: dsh-github
- id: dsh-github-rest
name: dsh-github-rest
- id: dsh-tool-github
name: dsh-tool-github
# Добавляем SSH-инструменты для сервера
- insert:
- id: dsh-ssh
name: dsh-ssh
# Ограничиваем опасные команды (режим с подтверждением)
- patch:
id: permission
config:
dangerous_commands: ask # ask — спрашивать, allow — разрешать, deny — запрещать
# Устанавливаем лимиты (чтобы не тратить много денег)
- patch:
id: agent
config:
max_steps: 20
max_tokens: 50000
Что означают эти настройки:
| Настройка | Что делает |
|---|---|
model.provider: deepseek |
Используем DeepSeek |
model.model: deepseek-v4-flash |
Конкретная модель (дешевле Pro; имена уточняйте в кабинете API) |
agent.mode: standard |
Обычный режим с набором tools; PTC — отдельный пресет для длинных задач |
permission.dangerous_commands: ask |
Перед опасными командами — спрашивать разрешение |
agent.max_steps: 20 |
Максимум 20 шагов за одну задачу |
agent.max_tokens: 50000 |
Максимум 50 000 токенов за задачу |
Шаг 4. Сохраните и закройте файл
После сохранения настроек профиль готов к использованию.
6.6. Как проверить, что профиль работает
Запустите профиль и дайте ему простую задачу:
dsh --profile мой_профиль "Покажи список моих репозиториев на GitHub"
Если агент ответил списком репозиториев — профиль работает.
Дополнительная проверка: посмотрите, как выглядит собранный профиль изнутри:
dsh --profile мой_профиль --dump-config
Эта команда покажет все настройки, которые реально загружены — вы увидите, что именно попало в вашу сборку.
6.7. Как использовать профиль для автоматизации
Когда профиль создан, вы можете запускать его из любого места одной командой:
Из терминала (интерактивно):
dsh --profile мой_профиль
Одной задачей (headless):
dsh --profile мой_профиль "Создай сайт-визитку и задеплой на сервер"
Из Python-скрипта (для автоматизации):
from dsh import Agent
agent = Agent(profile="мой_профиль")
result = agent.run("Создай сайт-визитку и задеплой на сервер")
По расписанию (cron):
# Каждый день в 9:00
0 9 * * * dsh --profile мой_профиль "Обнови данные на сайте"
6.8. Что делать, если профиль не работает
| Проблема | Что проверять |
|---|---|
| Профиль не найден | Проверьте имя: dsh --profile мой_профиль (без опечаток) |
| Плагины не загружаются | Установлены ли они? dsh plugin --profile мой_профиль list |
| Настройки не применились | Правильный ли синтаксис в cordis.patch.yml? Проверьте отступы (пробелы, не табуляция) |
| Модель не отвечает | Проверьте API-ключ и баланс на платформе DeepSeek |
Универсальный способ: выполните dsh --profile мой_профиль --dump-config и посмотрите, какие настройки реально загружены. Если ваших настроек там нет — значит, они не попали в сборку из-за ошибки в YAML.
6.9. Советы для маркетолога: как удобно организовать профили
Создайте несколько профилей для разных типов задач:
| Имя профиля | Для чего | Какие плагины |
|---|---|---|
сайт |
Создание и деплой сайтов | GitHub + SSH + база данных |
парсинг |
Сбор данных с сайтов | Браузер + Telegram-уведомления |
отчёты |
Генерация отчётов | Google Sheets + Email |
тест |
Для экспериментов (безопасный) | Только базовые инструменты |
Как переключаться между профилями:
dsh --profile сайт "Сделай лендинг для клиента Иванова"
dsh --profile парсинг "Собери цены конкурентов"
dsh --profile отчёты "Сформируй ежемесячный отчёт"
6.10. Итоговый чек-лист
После прочтения этой главы вы должны уметь:
- [x] Понимать, что такое Profile и зачем он нужен.
- [x] Отличать встроенные профили (
web,headless) от своих. - [x] Создавать новый профиль командой
dsh plugin --profile <имя>. - [x] Добавлять плагины в профиль.
- [x] Настраивать профиль через
cordis.patch.yml(модель, режим, права, лимиты). - [x] Проверять, что профиль работает, через
--dump-config. - [x] Запускать задачи в своём профиле.
- [x] Понимать, как организовать несколько профилей для разных задач.
Квиз по главе
Ответьте на все вопросы и сдайте квиз — сразу будет оценка и отсылки к тексту, где доучить ошибки.