Skip to content

Protocolo ACP

源码版本v2026.7.20

Responsabilidad

ACP (Agent Client Protocol) es el protocolo estándar de comunicación entre un editor/IDE y un agent. acp_adapter/ expone a Hermes como server ACP, de modo que los clientes compatibles (Zed, extensiones de VS Code, etc.) puedan conducir Hermes directamente: gestionar sesiones, leer/escribir recursos (ficheros/imágenes), aprobar ediciones, trazar provenance y aislar herramientas por permisos. Así Hermes no vive solo en plataformas de mensajes, también se incrusta en flujos de desarrollo.

Archivos clave

Flujo de datos

  1. El cliente ACP (editor) descubre y arranca el server ACP de Hermes a partir de acp_registry/agent.json (acp_adapter/__main__.py).
  2. El cliente inicia una sesión → SessionManager:175 crea un SessionState, alinea cwd (acp_adapter/session.py:29) y expande toolsets (acp_adapter/session.py:129).
  3. El cliente envía mensajes/recursos → la conversión de recursos:201 traduce el recurso ACP (fichero/imagen, sujeto al límite de tamaño de acp_adapter/server.py:96) a partes de contenido OpenAI y las entrega a run_conversation:588.
  4. Cuando el agent quiere modificar ficheros, la llamada a herramienta pasa por build_edit_proposal:178 y se convierte en un EditProposal, que el requester de aprobación (acp_adapter/edit_approval.py:51) eleva al usuario para confirmar.
  5. La ejecución de herramientas está sujeta a los permisos de acp_adapter/permissions.py; cada operación anota provenance vía acp_adapter/provenance.py:22.
  6. La salida en streaming y los eventos (acp_adapter/events.py) se devuelven al cliente.

Resumen

ACP incrusta a Hermes en el flujo de trabajo del editor: gestión de sesiones, lectura/escritura de recursos, aprobación de ediciones, aislamiento de permisos y trazabilidad de origen. El núcleo es server.py (adaptación de protocolo) + session.py (sesión) + edit_approval.py (ediciones con revisión humana). Complementa a la capa de gateway: el gateway conecta plataformas de mensajes; ACP conecta IDEs.

Sitio de aprendizaje comunitario no oficial. Basado en el código fuente de NousResearch/hermes-agent (licencia MIT).