Hermes Agent для разработчика: делегирование кода, ревью и деплоя

Hermes Agent — это AI-агент с открытым исходным кодом от NousResearch, который может делегировать задачи субагентам, ревьюить пулл-реквесты, запускать CI/CD и работать с GitHub через gh CLI и MCP. В этой статье — как разработчик может использовать Hermes для делегирования кодинга, автоматического code review, рефакторинга и деплоя, с конкретными примерами и командами.

Что такое делегирование задач в Hermes Agent?

Делегирование в Hermes — это механизм, при котором основной агент порождает изолированных дочерних агентов (субагентов) для выполнения подзадач. Каждый субагент получает собственную сессию, набор инструментов и контекст — промежуточные вызовы инструментов не попадают в контекст родителя. В отличие от обычного последовательного выполнения, делегирование позволяет запускать до 3 задач параллельно (настраивается через delegation.max_concurrent_children в config.yaml) и изолирует контекст — каждый субагент подходит к задаче без предвзятости.

Основной инструмент — delegate_task. Он принимает цель (goal), контекст (context) и набор инструментов (toolsets). Контекст — это всё, что субагенту нужно знать: пути к файлам, сообщения об ошибках, структура проекта, команды для тестирования. Без хорошего контекста субагент слеп.

Как настроить GitHub-интеграцию для Hermes?

Hermes работает с GitHub через два механизма: gh CLI и MCP-сервер GitHub.

Через gh CLI

Установите GitHub CLI и авторизуйтесь:

gh auth login

После этого Hermes сможет создавать issues, ревьюить PR, запускать Actions и читать логи. Для проверки:

gh auth status

Через MCP (для gateway/Docker/cron)

Для фоновых задач используйте fine-grained Personal Access Token с правами на Contents, Issues и Pull Requests (read+write). Добавьте в config.yaml:

mcp:
  servers:
    github:
      command: npx
      args: ["-y", "@modelcontextprotocol/server-github"]
      env:
        GITHUB_TOKEN: "ghp_your_token_here"

Проверка подключения:

hermes mcp test github

Важно: начинайте с read-only доступа. Добавляйте write-права только после того, как read-only smoke test пройдёт.

Как делегировать code review субагенту?

Паттерн «Code Review + Fix» — одна из самых полезных задач для делегирования. Субагент получает свежий контекст, читает код без предвзятости, находит проблемы и исправляет их.

delegate_task(
    goal="Review src/auth/ for security issues and fix any found",
    context="""Project at /home/user/webapp. Python 3.11, Flask, PyJWT, bcrypt.
    Auth files: src/auth/login.py, src/auth/jwt.py, src/auth/middleware.py
    Test command: pytest tests/auth/ -v
    Focus on: SQL injection, JWT validation, password hashing, session management.
    Fix issues found and verify tests pass.""",
    toolsets=["terminal", "file"]
)

Ключевые правила:

  • Пишите конкретные цели. «Исправь баг» — слишком размыто. «Исправь TypeError в api/handlers.py строка 47, где process_request() получает None от parse_body()» — достаточно для работы.
  • Передавайте абсолютные пути. Субагенты не знают структуру вашего проекта.
  • Указывайте команды тестирования. Субагент должен проверить, что ничего не сломалось.
  • Проверяйте результат. Если субагент говорит «исправил и тесты прошли» — верифицируйте самостоятельно.
  • Как использовать Hermes для ревью пулл-реквестов на GitHub?

    Hermes имеет встроенные навыки для работы с GitHub: github-code-review, github-pr-workflow, github-issues. Загрузите нужный навык — и агент будет следовать установленным конвенциям ревью.

    Ревью PR через gh CLI

    # Получить diff PR
    gh pr diff 3888 --repo NousResearch/hermes-agent
    
    # Оставить ревью-комментарий
    gh pr review 3888 --approve --body "Reviewed by Hermes Agent. LGTM."
    
    # Или запросить изменения
    gh pr review 3888 --request-changes --body "Found issues in auth module..."
    

    Автономный PR-workflow

    Hermes может пройти полный цикл: создать ветку, написать код, закоммитить, запушить, открыть PR и замержить — всё из одного промпта. Это работает через комбинацию terminal (для git-команд) и file (для записи кода).

    Skill bundle для разработчика

    Создайте bundle, объединяющий несколько навыков:

    name: backend-dev
    description: Backend feature work — review, test, PR workflow
    skills:
      - github-code-review
      - test-driven-development
      - github-pr-workflow
    instruction: |
      Always start by writing failing tests, then implement.
      Run the full test suite before opening a PR.
    

    Как делать рефакторинг через параллельных субагентов?

    Большой рефакторинг, затрагивающий множество файлов — идеальный кандидат для параллельного делегирования. Каждый субагент работает со своей частью кодовой базы:

    delegate_task(tasks=[
        {
            "goal": "Refactor all API endpoint handlers to use the new response format",
            "context": """Project at /home/user/api-server.
            Files: src/handlers/users.py, src/handlers/auth.py, src/handlers/billing.py
            Old format: return {"data": result, "status": "ok"}
            New format: return APIResponse(data=result, status=200).to_dict()
            Import: from src.responses import APIResponse
            Run tests after: pytest tests/handlers/ -v""",
            "toolsets": ["terminal", "file"]
        },
        {
            "goal": "Update all client SDK methods to handle the new response format",
            "context": """Project at /home/user/api-server.
            Files: sdk/python/client.py, sdk/python/models.py
            Old parsing: result = response.json()["data"]
            New parsing: result = response.json()["data"] (same key, but add status code checking)
            Also update sdk/python/tests/test_client.py""",
            "toolsets": ["terminal", "file"]
        },
        {
            "goal": "Update API documentation to reflect the new response format",
            "context": """Project at /home/user/api-server.
            Docs at: docs/api/. Format: Markdown with code examples.
            Update all response examples from old format to new format.
            Add a 'Response Format' section to docs/api/overview.md explaining the schema.""",
            "toolsets": ["terminal", "file"]
        }
    ])
    

    Каждый субагент получает собственную терминальную сессию. Они могут работать с одной директорией проекта, не мешая друг другу —前提是 редактируют разные файлы. Если два субагент могут затронуть один файл — обработайте его вручную после завершения параллельной работы.

    Что такое ACP и как подключить Hermes к IDE?

    ACP (Agent Client Protocol) — это протокол, разработанный Zed и JetBrains (официальное партнёрство с октября 2025 года), который позволяет AI-агентам работать внутри редакторов кода. Hermes поддерживает ACP, что означает: один раз реализовав протокол — агент работает в Zed, JetBrains IDE, Neovim, Emacs, Obsidian и любом будущем ACP-клиенте.

    Провайдеры ACP в Hermes

    hermes chat --provider copilot-acp --model copilot-acp   # GitHub Copilot CLI
    hermes chat --provider codex-acp --model codex-acp       # OpenAI Codex CLI
    hermes chat --provider gemini-acp --model gemini-acp     # Google Gemini CLI
    

    ACP позволяет делегировать задачи из Hermes в Claude Code, Codex или Copilot как субагентам, сохраняя изоляцию контекста и контроль над инструментами.

    Как автоматизировать CI/CD через Hermes?

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

    Мониторинг Actions

    Попросите Hermes проанализировать упавший workflow:

    Посмотри последний упавший Actions job в репозитории user/project,
    найди причину падения и предложи исправление.
    

    Hermes выполнит gh run list, gh run view, проанализирует логи и предложит план исправления.

    Cron-отчёты о здоровье репозитория

    Настройте cron-задачу для еженедельного отчёта:

  • Открытые issues
  • Зависшие PR
  • Упавшие workflows
  • Изменения, достойные changelog
  • Результат доставляется в Telegram, Discord, Slack или email.

    Webhook-триггеры

    Hermes поддерживает webhook-подписки — агент может запускаться по событиям GitHub (push, PR, issue) без постоянного polling.

    Какие наборы инструментов выбрать для субагентов?

    Выбор toolsets определяет, что субагент может делать:

    Задача Toolsets Почему
    Веб-исследование `[«web»]` web_search + web_extract
    Работа с кодом `[«terminal», «file»]` Shell + файловые операции
    Полный стек `[«terminal», «file», «web»]` Всё кроме мессенджеров
    Только чтение `[«file»]` Анализ кода без выполнения
    Системное администрирование `[«terminal»]` Управление процессами

    Ограничивайте toolsets — это удерживает субагент в фокусе и предотвращает случайные побочные эффекты.

    Ограничения и подводные камни делегирования

    Субагенты ничего не знают о вашем разговоре. Они начинают с чистого листа. Если делегировать «исправь баг, обсуждаемый ранее» — субагент не поймёт, о чём речь. Всегда передавайте пути, ошибки, структуру проекта.

    Делегирование синхронно. Если родительский процесс прервётся (новое сообщение, /stop, /new) — все активные субагенты отменяются. Для долгосрочных задач используйте cronjob или terminal(background=True).

    Вложенные субагенты отключены по умолчанию. Листовые субагенты не могут вызывать delegate_task. Включите через delegation.max_spawn_depth: 2 в config.yaml, если нужна многоуровневая делегация.

    Субагенты не могут взаимодействовать с пользователем. Инструменты clarify, memory, send_message заблокированы. Планируйте задачи так, чтобы субагент мог завершить работу автономно.

    Какой моделью пользоваться для субагентов?

    Можно настроить отдельную модель для субагентов — дешевле и быстрее для простых задач:

    delegation:
      model: "google/gemini-flash-2.0"
      provider: "openrouter"
    

    Если не указано — субагенты используют ту же модель, что и родитель.

    FAQ

    Может ли Hermes работать с приватными репозиториями на GitHub?

    Да. Выдайте Hermes scoped GitHub access на нужные приватные репозитории. Начните с read-only, проверьте smoke test, затем добавляйте write-права только для нужных workflow.

    Как Hermes обрабатывает упавшие GitHub Actions?

    Hermes запускает gh run view для анализ логов, идентифицирует упавшую команду, формулирует гипотезу о причине и предлагает план исправления. Это работает как через gh CLI, так и через MCP.

    Сколько субагентов можно запустить параллельно?

    По умолчанию — 3. Настройте через delegation.max_concurrent_children в config.yaml. Жёсткого потолка нет, только минимальное значение 1.

    Можно ли делегировать задачи из cron-задачи?

    Да, но с оговоркой: delegate_task синхронен. Если cron-сессия прервётся, субагенты отменяются. Для устойчивых задач используйте terminal(background=True, notify_on_complete=True).

    Чем Hermes отличается от Claude Code или Copilot для разработчика?

    Claude Code и Copilot — это инструменты для работы в IDE. Hermes — оркестратор, который может делегировать задачи Claude Code, Codex и Copilot через ACP, а также управлять GitHub, CI/CD и другими системами через MCP. Hermes не заменяет IDE-ассистентов, а координирует их.

    Ссылки

  • Документация Hermes: делегирование
  • Документация Hermes: субагенты
  • Hermes Agent GitHub-интеграция
  • GitHub PR Review Agent — туториал
  • Hermes Agent на GitHub
  • hermeswiki.ru