agentleFS
bestdeejay-designbestdeejay-design/agent-skills/skills/dsh-runner/SKILL.md

dsh-runner

Skill6 starsChanged 3 months agoMITView on GitHub

Запуск автономных агентных задач через DeepSeek Harness (dsh) — изолированные workspace, JSONL-логи сессий, параллельные прогоны. Скрипт dsh_task.py генерирует конфиг и запускает агента через Python SDK (jsonrpc-agent): задача → workspace → harness.run(prompt) → отчёт с final_response и логом. Режимы: headless-задача одной командой, Web UI (npx @deepseek-ai/dsh web), сравнение моделей. Ключ: DEEPSEEK_API_KEY (env) или автоматически из auth.json opencode (провайдер deepseek), либо OpenAI-совместимый endpoint через DEEPSEEK_BASE_URL. Триггеры: 'dsh', 'deepseek harness', 'агент в песочнице', 'изолированный агент', 'запусти агента на репо', 'агентная задача', 'агент-исполнитель', 'harness run', 'agent harness', 'запустить dsh', 'автономная задача агентом', 'параллельные агенты', 'сравнить модели на задаче', 'jsonrpc-agent'.

  • Reads credentials
  • Installs packages

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when:

    line 24
  2. Distinctive:

    Do NOT use when:

    line 31
  3. Distinctive:

    Do not use for ordinary local commands or interactive development.

    line 133

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

dsh-runner

Автономный агент DeepSeek Harness (dsh) как внешний исполнитель задач: изолированная папка-workspace, полный JSONL-лог каждого шага, никакого доступа к файлам вне задачи.

Загружай этот скилл, когда нужно запустить агента на реальной задаче в отдельном окружении: починить баг в клоне репозитория, сгенерировать код по описанию, прогнать одну задачу на разных моделях и сравнить результат.

🎯 When to use

Use this skill when:

  • Просят «запусти агента на репо», «почини баг автономно», «агентная задача»
  • Нужен изолированный прогон: агент не должен трогать файлы вне workspace
  • Нужен полный лог сессии (JSONL) для аудита каждого шага
  • Нужно сравнить 2+ модели на одной задаче (по качеству и токенам)
  • Нужен Web UI для интерактивной работы с агентами (dsh web)

Do NOT use when:

  • Задача простая и решается напрямую (мелкая правка, вопрос) — прямое редактирование быстрее, чем подъём агента
  • Нет API-ключа и нет OpenAI-совместимого endpoint — dsh без них не запустится
  • Нужна классическая оценка качества модели на бенчмарках (MMLU и т.п.) — это lm-evaluation-harness, а не dsh
  • Нужен полный контроль каждого правки с апрувами — оставайся в основном агенте

📦 Files

  • SKILL.md — этот файл
  • scripts/dsh_task.py — запуск одной агентной задачи (Python SDK, JSON-RPC)
  • references/runbook.md — чек-листы, типовые ошибки, примеры конфигов

🧰 Usage

0. Требования (один раз)

# Python 3.10+; SDK:
pip install deepseek-harness-sdk

# API-ключ: DEEPSEEK_API_KEY в env…
export DEEPSEEK_API_KEY=sk-...

# …ИЛИ ключ DeepSeek из auth.json opencode (провайдер `deepseek`) —
# dsh_task.py подхватит его автоматически:
# ~/.local/share/opencode/auth.json → ~/.config/opencode/auth.json

# ИЛИ свой OpenAI-совместимый endpoint (vLLM и т.п.):
# export DEEPSEEK_BASE_URL=http://127.0.0.1:8000/v1

# Модель (по умолчанию deepseek-v4-flash):
# export DSH_MODEL=deepseek-v4-flash

1. Одна задача в изолированном workspace

python3 skills/dsh-runner/scripts/dsh_task.py \
  --workspace /tmp/agent-ws/dj1 \
  --session-root /tmp/agent-sessions \
  --session-id fix-001 \
  "В репозитории падает тест test_player.test.ts. Найди причину и почини."

Агент клонирует/принимает workspace, решает задачу, возвращает:

  • final_response — текстовый ответ агента
  • session_root — корень, где SDK хранит лог
  • finish_reason — чем завершился (например, completed)

Лог сессии: <session_root>/<sanitized-cwd>/<session-id>/session.jsonl.zstd (zstd-сжатый JSONL, где каждый запрос/вызов инструмента/ответ — отдельная запись; декодируется zstd -d -c <файл> | jq -s .).

2. Сравнение моделей на одной задаче

# Два прогона с разными моделями, отдельные session-id:
python3 skills/dsh-runner/scripts/dsh_task.py --workspace /tmp/ws --session-id cmp-a --model deepseek-v4-flash "задача"
python3 skills/dsh-runner/scripts/dsh_task.py --workspace /tmp/ws --session-id cmp-b --model anthropic/claude-sonnet-4-5 "задача"

# Сравни: final_response + размер JSONL-лога (токены) + время прогона

3. Web UI (интерактив)

npx @deepseek-ai/dsh web   # → http://127.0.0.1:3080

⚠️ Оговорки (важно)

  • Developer preview: версия 0.1.0-rc.x, API ломается между релизами. Если SDK упал на незнакомой ошибке — проверь свежую версию (pip install -U deepseek-harness-sdk) и README репозитория.
  • Безопасность: композиция jsonrpc-agent по умолчанию даёт агенту полный доступ к workspace (danger-full-access). Запускай только в одноразовой папке/контейнере. Никогда не указывай workspace = домашнюю директорию или рабочее дерево с незакоммиченными изменениями.
  • Проверка результата — снаружи: dsh не оценивает «правильно/неправильно». После прогона запусти тесты/линтер сам и сравни патчи.
  • Лог — JSONL в --session-root/<session-id>.jsonl: каждый запрос к модели, вызов инструмента и ответ. Используй для аудита и метрики токенов.

🔬 Проверка результата

  • Скрипт завершился кодом 0 → final_response непустой, лог существует.
  • Лог: find <session-root> -name "session.jsonl.zstd"; размер — метрика токенов; декод: zstd -d -c <файл> | jq -s ..
  • Если в workspace были тесты — прогони их после агента и сравни с состоянием «до».
  • Если задача требует проверки «правильно ли починил» — собери diff (git diff в workspace, если это клон) и просмотри.

Runbook

Чек-листы «перед запуском», «после прогона», типовые ошибки и рабочие примеры конфигов — в references/runbook.md.

Boundaries

  • Do not use for ordinary local commands or interactive development; use the project toolchain directly.

Evidence and completion gate

Run the documented command against the user’s actual input. Report the command, exit status, files changed or produced, and relevant stdout/stderr. Separate blocked or pre-existing failures from failures introduced by the current work. Do not call the result complete when the script was only described or when an artifact was not reopened and checked.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.