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

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

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

Что Hermes предоставляет в режиме ACP

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

Из него намеренно исключены вещи, которые не вписываются в типичный UX редактора, такие как доставка сообщений и управление cron-задачами.

Установка

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

pip install -e '.[acp]'

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

Запуск ACP-сервера

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

hermes acp
hermes-acp
python -m acp_adapter

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

Настройка редактора

VS Code

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

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

  1. Откройте панель ACP Client на панели активности.

  2. Выберите Hermes Agent из встроенного списка агентов.

  3. Подключитесь и начните общение.

Если вы хотите определить 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, поэтому ACP наследует текущего настроенного провайдера и учётные данные.

Поведение сессий

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

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

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

Поведение рабочей директории

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

Одобрения

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

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

Устранение неполадок

Агент ACP не отображается в редакторе

Проверьте:

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

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

hermes doctor
hermes status
hermes acp

Отсутствуют учётные данные

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

hermes model

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

Смотрите также