Перейти к содержанию

Vision

На этой странице Hermes Agent поддерживает мультимодальное зрение — вы можете вставлять изображения из буфера обмена прямо в CLI и просить агента проанализировать, описать или работать с ними. Изображения отправляются модели в виде блоков контента, закодированных в base64, поэтому любая модель, поддерживающая зрение, может их обработать.

Как это работает

  1. Скопируйте изображение в буфер обмена (скриншот, изображение в браузере и т. д.)
  2. Прикрепите его одним из способов ниже
  3. Наберите свой вопрос и нажмите Enter
  4. Изображение появится в виде значка [📎 Изображение #1] над строкой ввода
  5. После отправки изображение передаётся модели как блок контента для зрения

Вы можете прикрепить несколько изображений перед отправкой — каждое получит свой значок. Нажмите Ctrl+C, чтобы очистить все прикреплённые изображения. Изображения сохраняются в ~/.hermes/images/ как PNG-файлы с именами, содержащими временные метки.

Способы вставки

Способ прикрепления изображения зависит от вашего терминального окружения. Не все методы работают везде — вот полная информация:

Команда /paste

Самый надёжный явный способ вставки изображения. [code] /paste

[/code] Введите /paste и нажмите Enter. Hermes проверяет буфер обмена на наличие изображения и прикрепляет его. Это самый безопасный вариант, когда ваш терминал перехватывает Cmd+V/Ctrl+V или когда вы скопировали только изображение, и нет текстовых данных вставки для анализа.

Ctrl+V / Cmd+V

Hermes обрабатывает вставку как многоуровневый процесс: * сначала обычная вставка текста * затем резервный вариант — родной буфер обмена / OSC52, если терминал не передал текст корректно * затем прикрепление изображения, если буфер обмена или данные вставки содержат изображение или путь к нему

Это означает, что вставленные временные пути скриншотов macOS и URI изображений file://... могут прикрепляться сразу, вместо того чтобы оставаться в редакторе как обычный текст. warning Если в вашем буфере обмена только изображение (нет текста), терминалы всё равно не могут напрямую передавать бинарные данные изображения. Используйте /paste как явный резервный способ вставки изображения.

/terminal-setup для VS Code / Cursor / Windsurf

Если вы запускаете TUI во встроенном терминале семейства VS Code на macOS, Hermes может установить рекомендуемые привязки workbench.action.terminal.sendSequence для улучшенной поддержки многострочного ввода, отмены и повтора действий: [code] /terminal-setup

[/code] Это особенно полезно, когда Cmd+Enter, Cmd+Z или Shift+Cmd+Z перехватываются IDE. Запускайте эту команду только на локальной машине, а не внутри SSH-сессии.

Совместимость с платформами

Окружение| /paste| Cmd/Ctrl+V| /terminal-setup| Примечания
|---|---|---|---|---
macOS Terminal / iTerm2| ✅| ✅| Н/П| Лучший опыт — родной буфер обмена + восстановление путей скриншотов
Apple Terminal| ✅| ✅| Н/П| Если Cmd+←/→/⌫ перехватывается, используйте Ctrl+A / Ctrl+E / Ctrl+U
Linux X11 desktop| ✅| ✅| Н/П| Требуется xclip (apt install xclip)
Linux Wayland desktop| ✅| ✅| Н/П| Требуется wl-paste (apt install wl-clipboard)
WSL2 (Windows Terminal)| ✅| ✅| Н/П| Использует powershell.exe — дополнительная установка не требуется
VS Code / Cursor / Windsurf (локально)| ✅| ✅| ✅| Рекомендуется для лучшей поддержки Cmd+Enter / отмены / повтора
VS Code / Cursor / Windsurf (SSH)| ❌²| ❌²| ❌³| Запустите /terminal-setup на локальной машине
SSH-терминал (любой)| ❌²| ❌²| Н/П| Удалённый буфер обмена недоступен
² См. «SSH и удалённые сессии» ниже ³ Команда изменяет локальные привязки IDE и не должна запускаться с удалённого хоста

Настройка под конкретную платформу

macOS

Настройка не требуется. Hermes использует osascript (встроенная утилита macOS) для чтения буфера обмена. Для более быстрой работы можно дополнительно установить pngpaste: [code] brew install pngpaste

[/code]

Linux (X11)

Установите xclip: [code] # Ubuntu/Debian
sudo apt install xclip

# Fedora  
sudo dnf install xclip

# Arch  
sudo pacman -S xclip

[/code]

Linux (Wayland)

Современные Linux-десктопы (Ubuntu 22.04+, Fedora 34+) часто используют Wayland по умолчанию. Установите wl-clipboard: [code] # Ubuntu/Debian
sudo apt install wl-clipboard

# Fedora  
sudo dnf install wl-clipboard

# Arch  
sudo pacman -S wl-clipboard

[/code] Как проверить, используете ли вы Wayland [code] echo $XDG_SESSION_TYPE
# "wayland" = Wayland, "x11" = X11, "tty" = нет сервера отображения

[/code]

WSL2

Дополнительная настройка не требуется. Hermes автоматически определяет WSL2 (через /proc/version) и использует powershell.exe для доступа к буферу обмена Windows через .NET System.Windows.Forms.Clipboard. Это встроенная функция взаимодействия WSL2 с Windows — powershell.exe доступен по умолчанию. Данные буфера обмена передаются в виде PNG, закодированного в base64, через stdout, поэтому преобразование путей к файлам или временные файлы не требуются. Примечание о WSLg Если вы используете WSLg (WSL2 с поддержкой GUI), Hermes сначала пытается использовать PowerShell, а затем переключается на wl-paste. Мост буфера обмена WSLg поддерживает только формат BMP для изображений — Hermes автоматически конвертирует BMP в PNG с помощью Pillow (если установлен) или команды ImageMagick convert.

Проверка доступа к буферу обмена WSL2

[code] # 1. Проверка определения WSL
grep -i microsoft /proc/version

# 2. Проверка доступности PowerShell  
which powershell.exe

# 3. Скопируйте изображение, затем проверьте  
powershell.exe -NoProfile -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Clipboard]::ContainsImage()"  
# Должно вывести "True"

[/code]

SSH и удалённые сессии

Вставка изображений из буфера обмена через SSH работает не полностью. Когда вы подключаетесь по SSH к удалённой машине, CLI Hermes запускается на удалённом хосте. Инструменты для работы с буфером обмена (xclip, wl-paste, powershell.exe, osascript) читают буфер обмена той машины, на которой они запущены, — то есть удалённого сервера, а не вашего локального компьютера. Таким образом, ваше локальное изображение из буфера обмена недоступно на удалённой стороне. Текст иногда может быть передан через терминальную вставку или OSC52, но доступ к изображениям в буфере обмена и локальные временные пути скриншотов остаются привязанными к машине, на которой запущен Hermes.

Обходные пути для SSH

  1. Загрузите файл изображения — Сохраните изображение локально, загрузите его на удалённый сервер через scp, проводник VSCode (перетаскивание) или любой другой способ передачи файлов. Затем укажите путь к нему. (Команда /attach <путь_к_файлу> запланирована в одном из будущих релизов.)
  2. Используйте URL — Если изображение доступно онлайн, просто вставьте URL в своё сообщение. Агент может использовать vision_analyze для просмотра любого URL изображения напрямую.
  3. X11-форвардинг — Подключайтесь с помощью ssh -X для проброса X11. Это позволит xclip на удалённой машине получить доступ к вашему локальному X11-буферу обмена. Требует запущенного X-сервера локально (XQuartz на macOS, встроенный на Linux X11-десктопах). Медленно для больших изображений.
  4. Используйте платформу обмена сообщениями — Отправляйте изображения Hermes через Telegram, Discord, Slack или WhatsApp. Эти платформы обрабатывают загрузку изображений нативно и не зависят от ограничений буфера обмена и терминала.

Почему терминалы не могут вставлять изображения

Это частая причина путаницы, поэтому вот техническое объяснение: Терминалы — это текстовые интерфейсы. Когда вы нажимаете Ctrl+V (или Cmd+V), эмулятор терминала: 1. Читает из буфера обмена текстовое содержимое 2. Оборачивает его в escape-последовательности bracketed paste 3. Отправляет приложению через текстовый поток терминала

Если буфер обмена содержит только изображение (без текста), терминалу нечего отправлять. Не существует стандартной терминальной escape-последовательности для бинарных данных изображения. Терминал просто ничего не делает. Именно поэтому Hermes использует отдельную проверку буфера обмена — вместо получения данных изображения через событие вставки в терминале, он напрямую вызывает инструменты уровня ОС (osascript, powershell.exe, xclip, wl-paste) через подпроцесс для независимого чтения буфера обмена.

Поддерживаемые модели

Вставка изображений работает с любой моделью, поддерживающей зрение. Изображение отправляется в виде data URL, закодированного в base64, в формате контента OpenAI для зрения: [code] {
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,..."
}
}

[/code] Большинство современных моделей поддерживают этот формат, включая GPT-4 Vision, Claude (с поддержкой зрения), Gemini и opensource мультимодальные модели, доступные через OpenRouter.

Маршрутизация изображений (модели со зрением vs текстовые модели)

Когда пользователь прикрепляет изображение — из буфера обмена CLI, шлюза (Telegram/Discord фото) или любой другой точки входа — Hermes маршрутизирует его в зависимости от того, поддерживает ли ваша текущая модель зрение: Ваша модель| Что происходит с изображением
|---|---
С поддержкой зрения (GPT-4V, Claude with vision, Gemini, Qwen-VL, MiMo-VL и др.)| Отправляется как реальные пиксели, используя родной формат контента провайдера, указанный выше. Без слоя текстового описания.
Только текст (DeepSeek V3, небольшие opensource модели, старые чат-модели)| Маршрутизируется через вспомогательный инструмент vision_analyze — вспомогательная модель зрения описывает изображение, и текстовое описание вставляется в разговор.
Вам не нужно это настраивать — Hermes проверяет возможности вашей текущей модели в метаданных провайдера и автоматически выбирает правильный путь. Практический эффект: вы можете переключаться между моделями со зрением и без зрения в середине сессии, и обработка изображений «просто работает» без изменения вашего рабочего процесса. Текстовые модели получают связный контекст об изображении, а не повреждённый мультимодальный payload, который они были бы вынуждены отклонить. Какая вспомогательная модель обрабатывает путь текстового описания, настраивается в разделе auxiliary.vision — см. Вспомогательные модели. * Как это работает * Способы вставки * Команда /paste * Ctrl+V / Cmd+V * /terminal-setup для VS Code / Cursor / Windsurf * Совместимость с платформами * Настройка под конкретную платформу * macOS * Linux (X11) * Linux (Wayland) * WSL2 * SSH и удалённые сессии * Обходные пути для SSH * Почему терминалы не могут вставлять изображения * Поддерживаемые модели * Маршрутизация изображений (модели со зрением vs текстовые модели)