Skip to content

Vue d'ensemble de l'architecture OpenClaw

源码版本v2026.6.11

En une phrase

OpenClaw est un assistant AI personnel articulé autour d'une passerelle (gateway) persistante + ingestion multi-canaux + boucle principale d'agent: la passerelle reçoit les messages → les passe à l'agent → l'agent appelle itérativement modèles et outils → le résultat est re-livré via la passerelle vers chaque canal. Toutes les capacités (outils/compétences/plugins/provider/MCP/canaux) sont des registres (registry) enfichables.

Couches

Une phrase par couche

  • Démarrage et entrée: openclaw.mjs vérifie la version Node, forward vers src/entry.ts, puis src/cli/run-main.ts répartit les sous-commandes.
  • Couche passerelle: startGatewayServer est le processus persistant; il reçoit les requêtes via la table de méthodes RPC et diffuse les événements de l'agent aux clients WebSocket.
  • Boucle principale de l'agent: le while(true) de embedded-agent-runner pilote chaque tour de conversation; une tentative (attempt) accomplit l'appel LLM et l'appariement tool_use/tool_result.
  • Couche de capacités: les outils sont un Map de registre, les compétences sont des guides en SKILL.md que le modèle lit lui-même, les plugins sont découverts par convention de répertoire, les providers sont répartis par vendeur, MCP est ponté dans les deux sens.
  • Couche de canaux: 22 canaux (WhatsApp/Telegram/Slack...) sont branchés via registry + loader + plugin, la passerelle orchestre le tout.
  • Système de configuration: openclaw.json est l'unique point d'entrée; un Zod schema valide à l'exécution.
  • Mémoire et contexte: le Context Engine abstrait le contrat de compaction, les fichiers de mémoire vivent à la racine du workspace.
  • Ordonnancement et extensions: Cron lance des jobs dans des sessions d'agent isolées, Tasks persiste en SQLite, ACP fait le pont vers les IDE.
  • Déploiement: la passerelle est un processus persistant; le daemon l'installe en service système, ou bien Docker/Fly pour conteneurs.

Motivation du découpage en couches

Pourquoi ce découpage? OpenClaw sépare complètement « d'où viennent les messages » (canaux), « comment les traiter » (boucle agent), « quelles capacités utiliser » (outils/compétences/plugins/provider), « comment persister » (configuration/mémoire/ordonnancement) et « comment lancer » (déploiement). Ainsi changer de canal n'affecte pas la logique agent, changer de modèle n'affecte pas les outils, ajouter un plugin ne nécessite pas de modifier le cœur. La passerelle est le seul carrefour: toute coordination inter-couche passe par elle.

Malentendus courants

  • « OpenClaw est un chatbot » — pas tout à fait. Le bot n'est qu'une face de la couche canal; la passerelle est le cœur du produit, la boucle agent est le cerveau.
  • « Outils et compétences sont la même chose » — non. Les outils sont des fonctions appelables; les compétences sont des guides en Markdown que le modèle décide lui-même de lire ou non, et comment les utiliser.
  • « MCP n'est qu'un client » — OpenClaw est à la fois MCP server (expose ses capacités vers l'extérieur) et MCP client (consomme des MCP servers externes).

Ordre de lecture recommandé

Commencez par Démarrage et entrée, puis Cœur de passerelle et Boucle principale de l'agent, puis descendez dans l'ordre Couche de capacitésCouche de canauxSystème de configurationMémoireOrdonnancementDéploiement.

Pour comparer avec la documentation officielle: Site OpenClaw · Documentation officielle · DeepWiki.