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"]
)
Ключевые правила:
Как использовать 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-задачу для еженедельного отчёта:
Результат доставляется в 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-ассистентов, а координирует их.