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