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

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.

См. также