Перейти к содержимому

ACP Интеграция с редактором

Hermes Agent может работать как сервер ACP, позволяя редакторам, совместимым с ACP, взаимодействовать с Hermes через stdio и отображать:

  • сообщения чата
  • активность инструментов
  • различия файлов
  • команды терминала
  • prompts на подтверждение
  • потоковое мышление / фрагменты ответа

ACP хорошо подходит, когда вы хотите, чтобы Hermes вел себя как coding-агент, встроенный в редактор, а не как отдельный CLI или бот для обмена сообщениями.

Hermes запускается с тщательно подобранным набором инструментов hermes-acp, предназначенным для сценариев работы в редакторе. Он включает:

  • файловые инструменты: read_file, write_file, patch, search_files
  • инструменты терминала: terminal, process
  • инструменты web/browser
  • память, todo, поиск по сессиям
  • навыки
  • execute_code и delegate_task
  • vision

Он намеренно исключает вещи, не вписывающиеся в типичный UX редактора, такие как доставка сообщений и управление cronjob.

Установите Hermes обычным способом, затем добавьте extra ACP:

Окно терминала
pip install -e '.[acp]'

Это установит зависимость agent-client-protocol и включит:

  • hermes acp
  • hermes-acp
  • python -m acp_adapter

Любая из следующих команд запускает Hermes в режиме ACP:

Окно терминала
hermes acp
Окно терминала
hermes-acp
Окно терминала
python -m acp_adapter

Hermes пишет логи в stderr, чтобы stdout оставался зарезервированным для трафика ACP JSON-RPC.

Установите расширение [Client ACP .

Для подключения:

  1. Откройте панель Client ACP на Activity Bar.
  2. Выберите Hermes Agent из встроенного списка агентов.
  3. Подключитесь и начните общение.

Если вы хотите определить Hermes вручную, добавьте его через настройки VS Code в разделе acp.agents:

{
"acp.agents": {
"Hermes Agent": {
"command": "hermes",
"args": ["acp"]
}
}
}

Пример фрагмента settings:

{
"agent_servers": {
"hermes-agent": {
"type": "custom",
"command": "hermes",
"args": ["acp"],
},
},
}

Используйте плагин, совместимый с ACP, и укажите в нем:

/path/to/hermes-agent/acp_registry

Манифест реестра ACP находится по адресу:

acp_registry/agent.json
```Он объявляет агент на основе команд, команда запуска которого:
```text
hermes acp

Режим ACP использует ту же конфигурацию Hermes, что и CLI:

  • ~/.hermes/.env
  • ~/.hermes/config.yaml
  • ~/.hermes/skills/
  • ~/.hermes/state.db

Разрешение провайдера использует обычный runtime-resolver Hermes, поэтому ACP наследует текущие настроенные провайдер и учетные данные.

Сессии ACP отслеживаются менеджером сессий в памяти адаптера ACP, пока сервер работает.

Каждая сессия хранит:

  • ID сессии
  • рабочую директорию
  • выбранную модель
  • текущую историю разговора
  • событие отмены

Базовый AIAgent по-прежнему использует обычные пути persistence/logging Hermes, но ACP list/load/resume/fork ограничены текущим запущенным процессом сервера ACP.

Сессии ACP привязывают cwd редактора к ID задачи Hermes, чтобы файловые и терминальные инструменты выполнялись относительно workspace редактора, а не cwd процесса сервера.

Опасные команды терминала могут перенаправляться обратно в редактор как запросы на подтверждение. Варианты подтверждения ACP проще, чем поток CLI:

  • разрешить один раз
  • разрешить всегда
  • запретить

При тайм-ауте или ошибке мост подтверждения отклоняет запрос.

Проверьте:

  • редактор указывает на правильный путь acp_registry/
  • Hermes установлен и доступен в вашем PATH
  • установлен extra ACP (pip install -e '.[acp]')

ACP запускается, но сразу завершается с ошибкой

Заголовок раздела «ACP запускается, но сразу завершается с ошибкой»

Попробуйте следующие проверки:

Окно терминала
hermes doctor
hermes status
hermes acp

Режим ACP не имеет собственного потока входа. Он использует существующую настройку провайдера Hermes. Настройте учетные данные с помощью:

Окно терминала
hermes model

или отредактировав ~/.hermes/.env.