Режим артефактов

Запустите Hermes Agent внутри шлюза сообщений — Slack, Discord, Telegram, WhatsApp, Signal и так далее — и он сможет отдавать сгенерированные файлы сразу в чат. Не путём к файлу, который пользователю надо где-то скопировать, а нативным вложением.

График приходит встроенной картинкой. PDF-отчёт — файлом на скачивание. Таблица загружается как .xlsx. Агенту не нужно ставить тег MEDIA: или делать что-то особенное — он просто создаёт файл и упоминает его абсолютный путь в ответе. Дальше работает шлюз: вылавливает путь из текста, убирает его из видимого сообщения и загружает файл нативно.

Как это устроено

Срабатывают три механизма.

  1. У агента есть инструменты, которые создают файлы. execute_code рисует графики через matplotlib, навык docx готовит документы Word, навык xlsx — таблицы, навыки pdf и latex-pdf-report — PDF, навык powerpoint — презентации, image_generate делает картинки, text_to_speech — аудио, и так далее.

  2. Шлюз сканирует ответы агента на пути к файлам. Любой абсолютный путь (~/.hermes/cache/scratch/...) или путь относительно домашней папки (~/...) с поддерживаемым расширением извлекается. Пути внутри блоков кода и инлайн-кода игнорируются, поэтому примеры кода никогда не калечатся.

  3. Шлюз раскладывает файлы по типам. Картинки встраиваются прямо в сообщение там, где платформа это умеет; видео тоже встраивается; аудио уходит в голосовые/аудиовложения; всё остальное загружается файлом.

Поддерживаемые расширения файлов

КатегорияРасширенияСпособ доставки
Изображения.png .jpg .jpeg .gif .webp .bmp .tiff .svgВстраивание в сообщение
Видео.mp4 .mov .avi .mkv .webm .3gpВстраивание (где поддерживается)
Аудио.mp3 .m2a .wav .ogg .opus .m4a .flacГолосовое / аудиовложение
Документы.pdf .docx .doc .odt .rtf .txt .md .epubЗагрузка файлом
Данные.xlsx .xls .ods .csv .tsv .json .xml .yaml .ymlЗагрузка файлом
Геоданные.kmz .kml .geojson .gpxЗагрузка файлом
Презентации.pptx .ppt .odp .keyЗагрузка файлом
Архивы.zip .tar .gz .tgz .bz2 .xz .7z .rar .apk .ipaЗагрузка файлом
Веб.html .htmЗагрузка файлом

.py, .log и прочие расширения исходников намеренно исключены — чтобы агент не отправлял произвольные исходные файлы сам собой. Хотите отдать пользователю код — заверните его в блок кода.

Как подтолкнуть агента к артефактам

Сам по себе к артефактам агент не тянется — ему нужно об этом знать. Подтолкнуть можно двумя путями.

В рамках сессии: попросите явно («пришли сравнение графиком», «верни данные в CSV») либо пропишите свою запись в custom-instructions / personality, которая на платформах-мессенджерах склоняет ответы к формату артефактов.

На уровне проекта: добавьте такую установку в AGENTS.md / CLAUDE.md / .cursorrules проекта, с которым работает агент, в свою глобальную персону ~/.hermes/SOUL.md или в виде именованного пресета под ключом agent.personalities в ~/.hermes/config.yaml (переключается в каждой сессии командой /personality).

Сама механика для агента проста: отрендерить файл по абсолютному пути (скажем, ~/.hermes/cache/scratch/q3-revenue.png) и упомянуть этот путь в ответе обычным текстом. Остальное берёт на себя шлюз. Пути внутри огороженных блоков кода или бэктиков пропускаются, так что примеры кода остаются нетронутыми.

Канбан: артефакты едут вместе с уведомлением о завершении

Если вы пользуетесь мультиагентным канбан-процессом в Hermes, воркеры могут прикреплять файлы-артефакты к своему вызову kanban_complete:

kanban_complete(
    summary="rendered Q3 revenue chart and report",
    artifacts=[
        "~/.hermes/cache/scratch/q3-revenue.png",
        "~/.hermes/cache/scratch/q3-report.pdf",
    ],
)

Когда нотификатор шлюза доставляет сообщение «задача завершена» тому, кто подписан на задачу в Slack/Telegram и т. д., он заодно загружает каждый артефакт нативным вложением в этот чат. Человек получает и результат, и сводку в одном месте.

Файлы, которых на диске уже нет к моменту запуска нотификатора, тихо пропускаются.

Подключение других сервисов через MCP

Помимо конвейера доставки артефактов, агент способен дотянуться до других сервисов через MCP (Model Context Protocol). В экосистеме MCP есть готовые серверы сообщества почти под все популярные инструменты — ставьте те, что вам нужны:

СервисЧто открывает
NotionЧтение/запись страниц и баз Notion, запросы по рабочему пространству
GitHubIssue, PR, комментарии, поиск по репозиторию сверх возможностей gh CLI
LinearТикеты, проекты, циклы
SlackПоиск по всему рабочему пространству, чтение других каналов
GmailРазбор входящих, отправка писем, управление ярлыками
SalesforceЛиды, сделки, данные по аккаунтам
Snowflake / BigQuerySQL по хранилищам данных
Google DriveПоиск файлов, их содержимое, управление доступом

MCP-серверы ставятся через ~/.hermes/config.yaml в секции mcp_servers. Полное руководство по настройке — в разделе Интеграция MCP.

Сравнение с Perplexity Computer в Slack

Интеграция Perplexity Computer для Slack построена вокруг той же идеи: агент генерирует готовый результат (график, PDF, презентацию) и постит его обратно в тред нативным вложением. Режим артефактов Hermes Agent даёт тот же пользовательский сценарий, но локально:

  • Генерация идёт в собственном venv / песочнице пользователя, без удалённого арендатора.
  • Файлы попадают в чат через тот же Slack-API files.uploadV2.
  • Набор коннекторов обеспечивает MCP, а не курируемый каталог из 400 хостящихся интеграций — ставьте лишь те, которыми реально пользуетесь.

Токены OAuth остаются на машине пользователя — в auth.json / .env. Никакого хостинга токенов на стороне. Никаких мультиарендных microVM. Результат на выходе тот же.

перевод и редактура:

обновлено

⌕ ESC