Интеграция с ACP-редактором
Hermes Agent может работать как ACP-сервер, позволяя ACP-совместимым редакторам общаться с Hermes через stdio и отображать:
-
сообщения чата
-
активность инструментов
-
различия файлов
-
команды терминала
-
запросы на одобрение
-
потоковые фрагменты мышления / ответа
ACP хорошо подходит, когда вы хотите, чтобы Hermes вёл себя как редакторский агент кодирования, а не как отдельный CLI или бот обмена сообщениями.
Что Hermes предоставляет в режиме ACP
Hermes запускается с подобранным набором инструментов hermes-acp, предназначенным для редакторских рабочих процессов. Он включает:
-
инструменты для работы с файлами:
read_file,write_file,patch,search_files -
инструменты терминала:
terminal,process -
веб/браузерные инструменты
-
память, задачи, поиск сессий
-
навыки
-
выполнение кода и делегирование задач
-
зрение
Из него намеренно исключены вещи, которые не вписываются в типичный UX редактора, такие как доставка сообщений и управление cron-задачами.
Установка
Установите Hermes обычным способом, затем добавьте расширение ACP:
pip install -e '.[acp]'
Это устанавливает зависимость agent-client-protocol и включает:
-
hermes acp -
hermes-acp -
python -m acp_adapter
Запуск ACP-сервера
Любая из следующих команд запускает Hermes в режиме ACP:
hermes acp
hermes-acp
python -m acp_adapter
Hermes ведёт логирование в stderr, поэтому stdout остаётся зарезервированным для ACP JSON-RPC трафика.
Настройка редактора
VS Code
Установите расширение ACP Client.
Для подключения:
-
Откройте панель ACP Client на панели активности.
-
Выберите Hermes Agent из встроенного списка агентов.
-
Подключитесь и начните общение.
Если вы хотите определить Hermes вручную, добавьте его через настройки VS Code в разделе acp.agents:
{
"acp.agents": {
"Hermes Agent": {
"command": "hermes",
"args": ["acp"]
}
}
}
Zed
Пример фрагмента настроек:
{
"agent_servers": {
"hermes-agent": {
"type": "custom",
"command": "hermes",
"args": ["acp"],
},
},
}
JetBrains
Используйте ACP-совместимый плагин и укажите ему путь:
/path/to/hermes-agent/acp_registry
Манифест реестра
Манифест реестра ACP находится по адресу:
acp_registry/agent.json
Он представляет агента на основе команд, чья команда запуска:
hermes acp
Конфигурация и учётные данные
Режим ACP использует ту же конфигурацию Hermes, что и CLI:
-
~/.hermes/.env -
~/.hermes/config.yaml -
~/.hermes/skills/ -
~/.hermes/state.db
Разрешение провайдера использует обычный рантайм-резолвер Hermes, поэтому ACP наследует текущего настроенного провайдера и учётные данные.
Поведение сессий
Сессии ACP отслеживаются внутрипроцессным менеджером сессий ACP-адаптера, пока сервер работает.
Каждая сессия хранит:
-
ID сессии
-
рабочую директорию
-
выбранную модель
-
текущую историю разговора
-
событие отмены
Базовый AIAgent по-прежнему использует обычные пути персистентности/логирования Hermes, но list/load/resume/fork в ACP ограничены текущим запущенным процессом ACP-сервера.
Поведение рабочей директории
Сессии ACP привязывают текущую рабочую директорию редактора к ID задачи Hermes, поэтому файловые инструменты и инструменты терминала выполняются относительно рабочего пространства редактора, а не рабочей директории процесса сервера.
Одобрения
Опасные команды терминала могут быть направлены обратно в редактор в виде запросов на одобрение. Варианты одобрения ACP проще, чем в CLI:
-
разрешить один раз
-
всегда разрешать
-
запретить
При тайм-ауте или ошибке мост одобрения отклоняет запрос.
Устранение неполадок
Агент ACP не отображается в редакторе
Проверьте:
-
редактор указывает на правильный путь
acp_registry/ -
Hermes установлен и находится в вашем PATH
-
расширение ACP установлено (
pip install -e '.[acp]')
ACP запускается, но сразу выдаёт ошибку
Попробуйте следующие проверки:
hermes doctor
hermes status
hermes acp
Отсутствуют учётные данные
У режима ACP нет собственного процесса входа. Он использует существующую настройку провайдера Hermes. Настройте учётные данные с помощью:
hermes model
или отредактировав ~/.hermes/.env.