DeepSeek Harness
Меню глав

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

[позже] Создание профиля с нуля

Глава 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] Понимать, как организовать несколько профилей для разных задач.

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

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

Вопрос 1 из 10

Что такое Profile в DSH?

Вопрос 2 из 10

Какие встроенные профили упоминаются?

Вопрос 3 из 10

Зачем создавать свой профиль?

Вопрос 4 из 10

Что обычно добавляют в профиль для сервера и GitHub?

Вопрос 5 из 10

Что такое PTC (Code Mode) в учебнике?

Вопрос 6 из 10

Зачем в профиле лимиты?

Вопрос 7 из 10

Зачем режим подтверждения опасных команд?

Вопрос 8 из 10

Как проверить, что профиль работает?

Вопрос 9 из 10

Как профиль связан с автоматизацией по расписанию?

Вопрос 10 из 10

Итог главы 6?