Skip to content

Protocole ACP

源码版本v2026.7.20

Responsabilité

ACP (Agent Client Protocol) est un protocole standard de communication entre un éditeur / IDE et un agent. acp_adapter/ expose Hermes comme serveur ACP, afin que les clients compatibles ACP (Zed, extension VS Code, etc.) puissent piloter Hermes directement : gérer les sessions, lire/écrire des ressources (fichiers/images), approuver des modifications, tracer la provenance, isoler les outils selon les permissions. Hermes n'est plus seulement une plateforme de messagerie, il peut aussi s'imbriquer dans un flux de développement.

Fichiers clés

Flux de données

  1. Le client ACP (éditeur) découvre et démarre le serveur ACP d'Hermes via acp_registry/agent.json (acp_adapter/__main__.py).
  2. Le client ouvre une session → SessionManager:175 crée un SessionState, aligne le cwd (acp_adapter/session.py:29), déploie les toolsets (acp_adapter/session.py:129).
  3. Le client envoie messages / ressources → conversion de ressource:201 transforme la ressource ACP (fichier/image, sous la limite acp_adapter/server.py:96) en parties de contenu OpenAI, et alimente run_conversation:588.
  4. Quand l'agent veut modifier un fichier, l'appel d'outil devient un EditProposal via build_edit_proposal:178, soumis à l'utilisateur via le demandeur d'approbation (acp_adapter/edit_approval.py:51).
  5. L'exécution des outils est contrôlée par les permissions acp_adapter/permissions.py ; chaque opération est tracée par acp_adapter/provenance.py:22.
  6. Le streaming et les événements (acp_adapter/events.py) sont renvoyés au client.

Résumé

ACP permet à Hermes de s'imbriquer dans le flux d'un éditeur : gestion de session, lecture/écriture de ressources, approbation des modifications, isolation des permissions, traçabilité de la provenance. Le cœur est server.py (adaptation de protocole) + session.py (session) + edit_approval.py (édition approuvée par un humain). Complémentaire de la couche passerelle — la passerelle branche les plateformes de messagerie, ACP branche l'IDE.

Site d'apprentissage communautaire non officiel. Basé sur le code source de NousResearch/hermes-agent (licence MIT).