ANP : un protocole open source pour une communication sécurisée et efficace entre agents intelligents

Introduction générale

AgentNetworkProtocol (ANP en abrégé) est un projet de protocole open source, hébergé sur GitHub, qui vise à fournir des solutions de communication sécurisées et efficaces pour les agents intelligents (AI Agents). Il résout les problèmes d'interconnexion, d'interfaces localisées et de collaboration efficace des réseaux d'agents grâce à une architecture à trois couches - couche d'identité et de communication cryptée, couche de métaprotocole et couche de protocole d'application. ANP réalise une authentification décentralisée basée sur la norme DID du W3C, prend en charge la communication cryptée de bout en bout et réalise une négociation autonome entre les agents par le biais de métaprotocoles, dans le but de construire un réseau qui prenne en charge des milliards d'agents intelligents. L'objectif est de construire un réseau de collaboration ouvert qui prenne en charge des milliards d'agents intelligents. Lancé par Gaowei Chang sous la licence du MIT, le projet fait progresser la conception et la mise en œuvre du protocole et devrait devenir une norme internationale à l'avenir.

ANP:实现智能代理间安全高效通信的开源协议

 

Liste des fonctions

  • Identité décentraliséeLe système d'authentification par proxy est basé sur la spécification DID du W3C et prend en charge l'authentification par proxy multiplateforme sans dépendre d'un système centralisé.
  • Communications cryptées de bout en boutLe protocole ECDHE est utilisé pour garantir que le contenu de la communication n'est décrypté que par les deux parties et qu'il n'est pas visible par les nœuds intermédiaires.
  • Négociation d'accords sur le dollarL'auto-organisation et l'adaptation dynamique des agents de soutien par la négociation en langage naturel des protocoles de communication.
  • Description des capacités de l'agentDéfinir les fonctions de l'agent et les protocoles pris en charge sur la base des normes du web sémantique pour faciliter l'échange de données.
  • Mécanisme de découverte des agentsLe système de gestion de l'information : il fournit des protocoles permettant aux agents de localiser d'autres agents et de se connecter à eux.
  • Soutien à l'Open SourceMise en œuvre de la fonctionnalité du protocole par l'intermédiaire d'AgentConnect pour l'intégration et le test par les développeurs.

 

Utiliser l'aide

Comment l'installer et l'utiliser

AgentNetworkProtocol (ANP) est actuellement un projet de protocole à source ouverte, disponible principalement sous forme de documentation et de code, aucune application autonome n'ayant encore été publiée. Ce qui suit est un guide détaillé de son utilisation :

1. l'accès aux ressources du projet

  • Accéder aux dépôts GitHubType dans votre navigateurhttps://github.com/agent-network-protocol/AgentNetworkProtocolpour accéder à la page d'accueil du projet.
  • Clonage du codeLes développeurs peuvent l'obtenir via la commande Git :
git clone https://github.com/agent-network-protocol/AgentNetworkProtocol.git

Lorsque vous aurez terminé, vous disposerez de toute la documentation et de tout le code.

  • Lire le documentPour plus d'informations, consultez le fichier README.md sans installation, ou reportez-vous au livre blanc technique (01-AgentNetworkProtocol Technical White Paper.md).

2. explorer les implémentations d'AgentConnect

L'implémentation open source de l'ANP se trouve à l'adresse suivantehttps://github.com/agent-network-protocol/AgentConnect: :

  • Cloner AgentConnect: :
git clone https://github.com/agent-network-protocol/AgentConnect.git
  • Préparation de l'environnementInstaller l'environnement d'exécution nécessaire (par exemple Node.js ou Python, les dépendances seront précisées dans la documentation). Il est recommandé de consulter le fichier README d'AgentConnect.
  • exemple de fonctionnementLe code doit être exécuté dans le répertoire et comme indiqué dans la documentation. Exemple :
node example.js

Cela permet de lancer une instance simple de communication par proxy.

3. déroulement des principales fonctions

Ce qui suit est une présentation détaillée des fonctionnalités de base de la PNA, en supposant que vous disposez d'un environnement de développement prêt à l'emploi :

(1) Configuration de l'authentification décentralisée
  • Générer une DID: Sur la base dedid:wbapour générer des identifiants décentralisés :
  • L'utilisation d'une bibliothèque DID (telle quedid-resolver) pour générer un identifiant unique.
  • Exemple (pseudo-code) :
    const did = await generateDID('wba');
    console.log("DID:", did);
    
  • Téléchargement d'un fichier DIDTélécharger le document DID généré sur le serveur de test :
  • Chemin d'accès à la demande :https://agent-network-protocol.com/wba/user/<16位随机ID>/did.json
  • Exemple de demande PUT :
    PUT /wba/user/2i3dg4dtf908cde0/did.json HTTP/1.1
    Host: agent-network-protocol.com
    Content-Type: application/json
    {<DID_document_json>}
    
  • En cas de succès, la DID estdid:wba:agent-network-protocol.com:wba:user:2i3dg4dtf908cde0.
  • vérifier l'identité de qqnLes résultats des tests sont validés au moyen d'une interface de test :
  • Demande :https://agent-network-protocol.com/wba/test
  • Portez une signature :
    GET /wba/test HTTP/1.1
    Host: agent-network-protocol.com
    Authorization: DID did:wba:agent-network-protocol.com:wba:user:2i3dg4dtf908cde0 Nonce <abc123> Timestamp <2025-03-10T12:00:00Z> VerificationMethod <key-1> Signature <base64url签名>
    
  • Renvoie un jeton à utiliser pour les demandes ultérieures.
(2) Permettre des communications cryptées de bout en bout
  • négociation cléLes données de l'utilisateur peuvent être obtenues à partir de paires de clés publiques et privées DID, à l'aide du protocole ECDHE :
  • L'agent A génère une paire de clés et envoie la clé publique à l'agent B.
  • L'agent B répond avec la clé publique et les deux parties calculent la clé partagée.
  • Exemple (pseudo-code) :
    const sharedKey = negotiateECDHKey(agentBPublicKey, agentAPrivateKey);
    
  • Envoyer un message crypté: :
  • Crypter le message et l'envoyer :
    const message = "Hello, Agent B!";
    const encrypted = encrypt(message, sharedKey);
    sendToAgentB(encrypted);
    
  • L'agent B déchiffre avec une clé partagée.
(3) Négocier des communications à l'aide de méta-protocoles
  • processus consultatifL'agent A envoie une demande de méta-protocole :
  • Exemple de demande (description en langage naturel) :
    {
    "request": "需要数据分析服务",
    "protocols": ["JSON-RPC", "REST"],
    "input": "JSON格式数据",
    "output": "分析结果"
    }
    
  • processus de consultationL'agent B répond à l'accord soutenu et parvient finalement à un accord.
  • Générer le codeLes deux parties génèrent le code de traitement du protocole et le déploient, par exemple :
const protocolCode = generateProtocolCode("REST");
deployProtocol(protocolCode);
(4) Description et découverte de l'agent
  • Description de l'agentCréation d'un fichier de description au format JSON-LD : Créer un fichier de description au format JSON-LD :
    {
    "agentId": "did:wba:agent-network-protocol.com:wba:user:2i3dg4dtf908cde0",
    "capabilities": ["data-analysis"],
    "protocols": ["REST"]
    }
    
  • Agent de découverte: Interrogation par le biais du protocole de découverte :
    • Demande :https://agent-network-protocol.com/wba/discovery
    • Renvoie une liste d'agents correspondants.

4. essais et développement

  • Utilisation de l'interface de test: Accèshttps://agent-network-protocol.com/wba/demo/generateGénérer des paires de DID et de clés :
    GET /wba/demo/generate HTTP/1.1
    Host: agent-network-protocol.com
    

    Retourner :

    {
    "did_document": "<DID文档>",
    "private_key": "<私钥>"
    }
    
  • Soumission de la RP: Sur la base deCONTRIBUTING.mdContribuer au code.
  • Support de contact: Courrierchgaowei@gmail.comOu rejoignez Discord (https://discord.gg/sFjBKTY7sB).

5) Précautions

  • Le projet est en phase de développement et certaines de ses caractéristiques (par exemple, le service de courtier en messages) n'ont pas encore été perfectionnées.
  • Limite du serveur de test : 50 fichiers maximum téléchargés par IP.
  • Suivez les mises à jour de GitHub pour connaître les derniers progrès.

En suivant ces étapes, vous pourrez profiter pleinement des fonctionnalités du PNA et participer à son développement.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...