Что изменилось в Hermes Agent?
Nous Research выпустила обновление Hermes Agent, которое переводит делегирование задач в асинхронный режим. Теперь инструмент delegate_task больше не «залипает» в родительском чате. Вы запускаете под‑агентов, получаете task_id и свободно продолжаете работать.
Кратко о субагентах
Субагент — это изолированный дочерний агент, получающий собственный разговор, терминальную сессию и набор инструментов. Он наследует API‑ключ, конфигурацию провайдера и пул учётных данных от родителя, но полностью независим в контексте: все, что нужно передать, делается через поля goal и context.
Синхронное vs асинхронное делегирование
- Синхронное (
delegate_task) – родитель ждёт завершения всех субагентов, чат блокируется. - Асинхронное (
async_delegationнабор инструментов) – сразу возвращаетсяtask_id, чат остаётся свободным.
Набор асинхронных инструментов
delegate_task_async– запустить субагент в фоне, получитьtask_id.check_task– проверить статус и увидеть свежий вывод без блокировки.steer_task– «подтолкнуть» уже запущенный субагент новым сообщением.collect_task– дождаться завершения и получить полный результат.cancel_task– принудительно остановить задачу.list_tasks– список всех фоновых задач в текущей сессии.
Когда использовать асинхронный режим?
- Длительные аналитические задачи (парсинг больших объёмов данных, обучение модели, генерация отчётов).
- Одновременная работа над несколькими запросами – вы можете задавать новые вопросы родителю, пока субагенты «мелькают» в фоне.
- Необходимость динамически корректировать процесс (добавить параметры, изменить цель) без перезапуска.
Как включить новую функцию
Для текущих пользователей достаточно выполнить одну команду в терминале:
hermes update
После обновления в конфигурационном файле config.yaml появятся новые эндпоинты async_delegation. При первом запуске рекомендуется проверить версию:
hermes --version
Если вывод показывает v2.4.0+ – всё готово к работе.
Пример использования
Допустим, нужно собрать статистику по 10 000 страниц сайта. Синхронно вы бы ждали час, а в асинхронном режиме:
# Запускаем субагент
task_id = delegate_task_async(
goal="Собрать метрики SEO",
context={"urls": ["https://example.com/page1", "..."]},
tool="web_scraper"
)
# Сразу продолжаем чат
print("Запуск получен, ID задачи:", task_id)
# Периодически проверяем статус
status = check_task(task_id)
print("Статус:", status["state"])
# При необходимости меняем параметры
steer_task(task_id, {"max_depth": 3})
# В конце собираем результат
result = collect_task(task_id)
print("Итоги:", result["summary"])
Лучшие практики
- Всегда задавайте короткую и чёткую цель (
goal) – субагент не «читает» историю родителя. - Используйте
contextдля передачи только необходимых данных (URL, параметры, токены). - Не храните большие объёмы данных в
context– лучше передать ссылку на файл в облаке. - Регулярно вызывайте
list_tasksиcancel_taskдля управления ресурсами. - Для критически важных задач сохраняйте
task_idв базе, чтобы можно было восстановить статус после перезапуска.
Где посмотреть детали?
Официальный анонс в Твиттере от со‑основателя Nous Research Teknium 🪽. Полный код и описание новых методов находятся в репозитории GitHub проекта: github.com/nousresearch/hermes-agent.






















