chore(i18n): refresh fr translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-17 07:01:36 +00:00
parent 19e77a80f4
commit f744e6b2cb
5 changed files with 1090 additions and 1071 deletions

View File

@ -1,23 +1,23 @@
---
read_when:
- Extension de qa-lab ou qa-channel
- Extension de qa-lab ou de qa-channel
- Ajout de scénarios QA adossés au dépôt
- Création dune automatisation QA plus réaliste autour du tableau de bord Gateway
summary: Forme de lautomatisation QA privée pour qa-lab, qa-channel, les scénarios initialisés et les rapports de protocole
title: Automatisation E2E de la QA
title: Automatisation QA E2E
x-i18n:
generated_at: "2026-04-16T21:51:24Z"
generated_at: "2026-04-17T06:57:31Z"
model: gpt-5.4
provider: openai
source_hash: 7deefda1c90a0d2e21e2155ffd8b585fb999e7416bdbaf0ff57eb33ccc063afc
source_hash: 51f97293c184d7c04c95d9858305668fbc0f93273f587ec7e54896ad5d603ab0
source_path: concepts/qa-e2e-automation.md
workflow: 15
---
# Automatisation E2E de la QA
# Automatisation QA E2E
La pile QA privée est conçue pour tester OpenClaw dune manière plus réaliste,
façonnée par les canaux, quun simple test unitaire ne peut le faire.
La pile QA privée a pour but dexercer OpenClaw dune manière plus réaliste,
structurée comme un canal, quun simple test unitaire ne peut le faire.
Éléments actuels :
@ -25,26 +25,26 @@ façonnée par les canaux, quun simple test unitaire ne peut le faire.
les réactions, les modifications et les suppressions.
- `extensions/qa-lab` : interface de débogage et bus QA pour observer la transcription,
injecter des messages entrants et exporter un rapport Markdown.
- `qa/` : ressources de départ adossées au dépôt pour la tâche de lancement et les
- `qa/` : ressources initiales adossées au dépôt pour la tâche de démarrage et les
scénarios QA de référence.
Le flux opérateur QA actuel est un site QA à deux volets :
- Gauche : tableau de bord Gateway (Control UI) avec lagent.
- Droite : QA Lab, affichant une transcription de type Slack et le plan du scénario.
- Gauche : tableau de bord Gateway (UI de contrôle) avec lagent.
- Droite : QA Lab, affichant la transcription de type Slack et le plan du scénario.
Lancez-le avec :
Exécutez-le avec :
```bash
pnpm qa:lab:up
```
Cela construit le site QA, démarre la voie Gateway adossée à Docker et expose la
page QA Lab où un opérateur ou une boucle dautomatisation peut confier à lagent une
mission QA, observer le comportement réel du canal et consigner ce qui a
fonctionné, échoué ou est resté bloqué.
page QA Lab où un opérateur ou une boucle dautomatisation peut confier à lagent une mission QA,
observer le comportement réel du canal et consigner ce qui a fonctionné, échoué ou
est resté bloqué.
Pour des itérations plus rapides sur linterface QA Lab sans reconstruire limage Docker à chaque fois,
Pour itérer plus rapidement sur linterface QA Lab sans reconstruire limage Docker à chaque fois,
démarrez la pile avec un bundle QA Lab monté par liaison :
```bash
@ -54,81 +54,81 @@ pnpm qa:lab:up:fast
pnpm qa:lab:watch
```
`qa:lab:up:fast` maintient les services Docker sur une image préconstruite et monte par liaison
`qa:lab:up:fast` conserve les services Docker sur une image préconstruite et monte par liaison
`extensions/qa-lab/web/dist` dans le conteneur `qa-lab`. `qa:lab:watch`
reconstruit ce bundle à chaque modification, et le navigateur se recharge automatiquement lorsque le hachage
des ressources QA Lab change.
Pour une voie de validation Matrix avec transport réel, exécutez :
Pour une voie de smoke test Matrix sur transport réel, exécutez :
```bash
pnpm openclaw qa matrix
```
Cette voie provisionne un homeserver Tuwunel jetable dans Docker, enregistre
des utilisateurs temporaires pour le pilote, le SUT et lobservateur, crée une salle privée,
puis exécute le véritable plugin Matrix dans un enfant Gateway QA. La voie de transport en direct conserve
la configuration enfant limitée au transport testé, de sorte que Matrix sexécute sans
des utilisateurs temporaires pilote, SUT et observateur, crée une salle privée, puis exécute
le vrai Plugin Matrix dans un enfant Gateway QA. La voie sur transport réel conserve
la configuration enfant limitée au transport testé, afin que Matrix sexécute sans
`qa-channel` dans la configuration enfant. Elle écrit les artefacts de rapport structurés ainsi
quun journal combiné stdout/stderr dans le répertoire de sortie Matrix QA sélectionné. Pour
capturer également la sortie de construction/lancement externe de `scripts/run-node.mjs`, définissez
capturer également la sortie externe de build/lancement de `scripts/run-node.mjs`, définissez
`OPENCLAW_RUN_NODE_OUTPUT_LOG=<path>` vers un fichier journal local au dépôt.
Pour une voie de validation Telegram avec transport réel, exécutez :
Pour une voie de smoke test Telegram sur transport réel, exécutez :
```bash
pnpm openclaw qa telegram
```
Cette voie cible un groupe Telegram privé réel au lieu de provisionner un
Cette voie cible un vrai groupe Telegram privé au lieu de provisionner un
serveur jetable. Elle nécessite `OPENCLAW_QA_TELEGRAM_GROUP_ID`,
`OPENCLAW_QA_TELEGRAM_DRIVER_BOT_TOKEN` et
`OPENCLAW_QA_TELEGRAM_SUT_BOT_TOKEN`, ainsi que deux bots distincts dans le même
groupe privé. Le bot SUT doit avoir un nom dutilisateur Telegram, et lobservation
bot-à-bot fonctionne mieux lorsque les deux bots ont le mode de communication bot-à-bot
bot à bot fonctionne mieux lorsque les deux bots ont le mode de communication Bot-to-Bot
activé dans `@BotFather`.
Les voies de transport en direct partagent désormais un contrat plus petit au lieu que chacune
invente sa propre forme de liste de scénarios.
Les voies sur transport réel partagent désormais un contrat plus réduit au lieu que chacune
invente sa propre structure de liste de scénarios.
`qa-channel` reste la suite large de comportements synthétiques du produit et ne fait pas partie
de la matrice de couverture des transports en direct.
`qa-channel` reste la suite large de comportements produit synthétiques et ne fait pas partie
de la matrice de couverture des transports réels.
| Voie | Canary | Filtrage des mentions | Blocage par liste dautorisation | Réponse de niveau supérieur | Reprise après redémarrage | Suivi dans un fil | Isolation des fils | Observation des réactions | Commande daide |
| -------- | ------ | --------------------- | -------------------------------- | --------------------------- | ------------------------- | ----------------- | ------------------ | ------------------------- | --------------- |
| Matrix | x | x | x | x | x | x | x | x | |
| Telegram | x | | | | | | | | x |
| Voie | Canary | Gating par mention | Blocage par allowlist | Réponse de niveau supérieur | Reprise après redémarrage | Suivi dans le fil | Isolation du fil | Observation des réactions | Commande daide |
| -------- | ------ | ------------------ | --------------------- | --------------------------- | ------------------------- | ----------------- | ---------------- | ------------------------- | --------------- |
| Matrix | x | x | x | x | x | x | x | x | |
| Telegram | x | | | | | | | | x |
Cela conserve `qa-channel` comme la suite large de comportements du produit, tandis que Matrix,
Telegram et les futurs transports en direct partagent une checklist explicite de contrat de transport.
Cela permet à `qa-channel` de rester la suite large de comportements produit, tandis que Matrix,
Telegram et les futurs transports réels partagent une checklist explicite unique du contrat de transport.
Pour une voie sur VM Linux jetable sans intégrer Docker dans le parcours QA, exécutez :
Pour une voie de VM Linux jetable sans intégrer Docker dans le chemin QA, exécutez :
```bash
pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline
```
Cela démarre un invité Multipass neuf, installe les dépendances, construit OpenClaw
Cela démarre un nouvel invité Multipass, installe les dépendances, construit OpenClaw
dans linvité, exécute `qa suite`, puis copie le rapport QA normal et le
résumé dans `.artifacts/qa-e2e/...` sur lhôte.
Elle réutilise le même comportement de sélection de scénarios que `qa suite` sur lhôte.
Les exécutions sur lhôte et sur Multipass exécutent par défaut plusieurs scénarios sélectionnés en parallèle
Cela réutilise le même comportement de sélection de scénarios que `qa suite` sur lhôte.
Les exécutions de suite sur lhôte et dans Multipass exécutent par défaut plusieurs scénarios sélectionnés en parallèle
avec des workers Gateway isolés, jusquà 64 workers ou au nombre de scénarios sélectionnés.
Utilisez `--concurrency <count>` pour ajuster le nombre de workers, ou
`--concurrency 1` pour une exécution en série.
Les exécutions en direct transmettent les entrées dauthentification QA prises en charge qui sont pratiques pour
linvité : les clés de fournisseur basées sur lenvironnement, le chemin de configuration du fournisseur QA live, et
`CODEX_HOME` lorsquil est présent. Gardez `--output-dir` sous la racine du dépôt afin que linvité
Les exécutions live transmettent les entrées dauth QA prises en charge qui sont pratiques pour
linvité : clés de fournisseur basées sur lenvironnement, chemin de configuration du fournisseur QA live, et
`CODEX_HOME` lorsquil est présent. Conservez `--output-dir` sous la racine du dépôt afin que linvité
puisse écrire en retour via lespace de travail monté.
## Ressources de départ adossées au dépôt
## Ressources initiales adossées au dépôt
Les ressources de départ se trouvent dans `qa/` :
Les ressources initiales se trouvent dans `qa/` :
- `qa/scenarios/index.md`
- `qa/scenarios/*.md`
Elles sont volontairement conservées dans git afin que le plan QA soit visible à la fois pour les humains et pour
Elles sont volontairement dans git afin que le plan QA soit visible à la fois pour les humains et pour
lagent.
`qa-lab` doit rester un exécuteur Markdown générique. Chaque fichier Markdown de scénario est
@ -136,41 +136,57 @@ la source de vérité pour une exécution de test et doit définir :
- les métadonnées du scénario
- les références de documentation et de code
- les exigences de plugin facultatives
- le correctif de configuration Gateway facultatif
- les exigences facultatives en matière de Plugin
- le correctif facultatif de configuration Gateway
- le `qa-flow` exécutable
La surface dexécution réutilisable qui sous-tend `qa-flow` peut rester générique
et transversale. Par exemple, les scénarios Markdown peuvent combiner des
helpers côté transport avec des helpers côté navigateur qui pilotent la Control UI intégrée via la
surface Gateway `browser.request` sans ajouter dexécuteur spécialisé.
et transverse. Par exemple, des scénarios Markdown peuvent combiner des helpers côté transport
avec des helpers côté navigateur qui pilotent lUI de contrôle intégrée via le
point dintégration Gateway `browser.request` sans ajouter dexécuteur spécialisé.
La liste de référence doit rester suffisamment large pour couvrir :
- les conversations en MP et en canal
- les MP et les conversations en canal
- le comportement des fils
- le cycle de vie des actions sur les messages
- les rappels Cron
- le rappel de mémoire
- le changement de modèle
- le transfert à un sous-agent
- le transfert vers un sous-agent
- la lecture du dépôt et de la documentation
- une petite tâche de build comme Lobster Invaders
## Voies avec fournisseur simulé
`qa suite` dispose de deux voies locales avec fournisseur simulé :
- `mock-openai` est le mock OpenClaw sensible aux scénarios. Il reste la
voie simulée déterministe par défaut pour la QA adossée au dépôt et les gates de parité.
- `aimock` démarre un serveur fournisseur adossé à AIMock pour une couverture expérimentale
de protocole, de fixtures, denregistrement/relecture et de chaos. Il est additionnel et ne
remplace pas le répartiteur de scénarios `mock-openai`.
Limplémentation des voies fournisseur se trouve sous `extensions/qa-lab/src/providers/`.
Chaque fournisseur possède ses valeurs par défaut, le démarrage de serveur local, la configuration
du modèle Gateway, les besoins de préparation du profil dauth, et les indicateurs de capacités live/simulées.
Le code partagé de suite et Gateway doit passer par le registre des fournisseurs plutôt que de
se brancher selon les noms de fournisseurs.
## Adaptateurs de transport
`qa-lab` possède une interface de transport générique pour les scénarios QA Markdown.
`qa-channel` est le premier adaptateur sur cette interface, mais lobjectif de conception est plus large :
les futurs canaux réels ou synthétiques devraient sintégrer au même exécuteur de suite
`qa-lab` possède un point dintégration de transport générique pour les scénarios QA Markdown.
`qa-channel` est le premier adaptateur sur ce point dintégration, mais lobjectif de conception est plus large :
les futurs canaux réels ou synthétiques doivent pouvoir se brancher sur le même exécuteur de suite
au lieu dajouter un exécuteur QA spécifique au transport.
Au niveau de larchitecture, la séparation est la suivante :
- `qa-lab` gère lexécution générique des scénarios, la concurrence des workers, lécriture des artefacts et le reporting.
- ladaptateur de transport gère la configuration Gateway, létat de préparation, lobservation des entrées et sorties, les actions de transport et létat de transport normalisé.
- les fichiers de scénarios Markdown sous `qa/scenarios/` définissent lexécution du test ; `qa-lab` fournit la surface dexécution réutilisable qui les exécute.
- `qa-lab` possède lexécution générique des scénarios, la concurrence des workers, lécriture des artefacts et les rapports.
- ladaptateur de transport possède la configuration Gateway, létat prêt, lobservation entrante et sortante, les actions de transport et létat de transport normalisé.
- les fichiers de scénarios Markdown sous `qa/scenarios/` définissent lexécution de test ; `qa-lab` fournit la surface dexécution réutilisable qui les exécute.
Les consignes dadoption destinées aux mainteneurs pour les nouveaux adaptateurs de canal se trouvent dans
Les directives dadoption destinées aux mainteneurs pour les nouveaux adaptateurs de canal se trouvent dans
[Testing](/fr/help/testing#adding-a-channel-to-qa).
## Rapports
@ -181,10 +197,10 @@ Le rapport doit répondre aux questions suivantes :
- Ce qui a fonctionné
- Ce qui a échoué
- Ce qui est resté bloqué
- Quels scénarios de suivi valent la peine dêtre ajoutés
- Quels scénarios de suivi méritent dêtre ajoutés
Pour les vérifications de caractère et de style, exécutez le même scénario sur plusieurs
références de modèles en direct et écrivez un rapport Markdown évalué :
Pour les vérifications de caractère et de style, exécutez le même scénario sur plusieurs références de modèles live
et écrivez un rapport Markdown évalué :
```bash
pnpm openclaw qa character-eval \
@ -203,36 +219,36 @@ pnpm openclaw qa character-eval \
--judge-concurrency 16
```
La commande exécute des processus enfants Gateway QA locaux, pas Docker. Les scénarios dévaluation de caractère
doivent définir la persona via `SOUL.md`, puis exécuter des tours utilisateur ordinaires
comme la discussion, laide sur lespace de travail et de petites tâches sur des fichiers. Le
modèle candidat ne doit pas être informé quil est en cours dévaluation. La commande préserve chaque
transcription complète, enregistre des statistiques dexécution de base, puis demande aux modèles juges en mode rapide avec
un raisonnement `xhigh` de classer les exécutions selon leur naturel, leur ambiance et leur humour.
Utilisez `--blind-judge-models` lors de la comparaison de fournisseurs : linvite du juge reçoit toujours
chaque transcription et le statut dexécution, mais les références candidates sont remplacées par des
étiquettes neutres telles que `candidate-01` ; le rapport réassocie les classements aux références réelles après
La commande exécute des processus enfants Gateway QA locaux, pas Docker. Les
scénarios dévaluation de caractère doivent définir la persona via `SOUL.md`, puis exécuter des tours utilisateur
ordinaires tels que la conversation, laide sur lespace de travail et de petites tâches sur des fichiers. Le modèle
candidat ne doit pas être informé quil est en cours dévaluation. La commande conserve chaque
transcription complète, enregistre les statistiques dexécution de base, puis demande aux modèles juges en mode rapide avec
un raisonnement `xhigh` de classer les exécutions selon le naturel, lambiance et lhumour.
Utilisez `--blind-judge-models` lors de la comparaison entre fournisseurs : linvite du juge reçoit toujours
chaque transcription et létat dexécution, mais les références candidates sont remplacées par des
étiquettes neutres telles que `candidate-01` ; le rapport réassocie les classements aux vraies références après
lanalyse.
Les exécutions candidates utilisent par défaut le niveau de réflexion `high`, avec `xhigh` pour les modèles OpenAI qui
Les exécutions candidates utilisent par défaut un niveau de réflexion `high`, avec `xhigh` pour les modèles OpenAI qui
le prennent en charge. Remplacez un candidat spécifique en ligne avec
`--model provider/model,thinking=<level>`. `--thinking <level>` définit toujours un
repli global, et lancienne forme `--model-thinking <provider/model=level>` est
`--model provider/model,thinking=<level>`. `--thinking <level>` définit toujours une
valeur de repli globale, et lancienne forme `--model-thinking <provider/model=level>` est
conservée pour compatibilité.
Les références candidates OpenAI utilisent par défaut le mode rapide afin que le traitement prioritaire soit utilisé lorsque
le fournisseur le prend en charge. Ajoutez `,fast`, `,no-fast` ou `,fast=false` en ligne lorsquun
candidat ou juge unique nécessite un remplacement. Passez `--fast` uniquement si vous souhaitez
forcer le mode rapide pour chaque modèle candidat. Les durées des candidats et des juges sont
enregistrées dans le rapport pour lanalyse comparative, mais les invites des juges indiquent explicitement
de ne pas classer en fonction de la vitesse.
Les références candidates OpenAI utilisent par défaut le mode rapide afin que le traitement prioritaire soit utilisé là
le fournisseur le prend en charge. Ajoutez `,fast`, `,no-fast` ou `,fast=false` en ligne lorsquun
candidat ou juge particulier a besoin dun remplacement. Passez `--fast` uniquement lorsque vous souhaitez
forcer le mode rapide pour tous les modèles candidats. Les durées des candidats et des juges sont
enregistrées dans le rapport pour lanalyse de benchmark, mais les invites des juges indiquent explicitement
de ne pas classer selon la vitesse.
Les exécutions des modèles candidats et juges utilisent toutes deux par défaut une concurrence de 16. Réduisez
`--concurrency` ou `--judge-concurrency` lorsque les limites des fournisseurs ou la pression locale sur Gateway
rendent une exécution trop bruyante.
Lorsquaucun `--model` candidat nest transmis, lévaluation de caractère utilise par défaut
`--concurrency` ou `--judge-concurrency` lorsque les limites du fournisseur ou la pression sur le Gateway local
rendent une exécution trop bruitée.
Lorsquaucun `--model` candidat nest fourni, lévaluation de caractère utilise par défaut
`openai/gpt-5.4`, `openai/gpt-5.2`, `openai/gpt-5`, `anthropic/claude-opus-4-6`,
`anthropic/claude-sonnet-4-6`, `zai/glm-5.1`,
`moonshot/kimi-k2.5` et
`google/gemini-3.1-pro-preview` lorsquaucun `--model` nest transmis.
Lorsquaucun `--judge-model` nest transmis, les juges utilisent par défaut
`moonshot/kimi-k2.5`, et
`google/gemini-3.1-pro-preview` lorsquaucun `--model` nest fourni.
Lorsquaucun `--judge-model` nest fourni, les juges utilisent par défaut
`openai/gpt-5.4,thinking=xhigh,fast` et
`anthropic/claude-opus-4-6,thinking=high`.

File diff suppressed because it is too large Load Diff

View File

@ -1,130 +1,122 @@
---
read_when:
- Vous voyez l'avertissement OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED
- Vous voyez l'avertissement OPENCLAW_EXTENSION_API_DEPRECATED
- Vous mettez à jour un plugin vers l'architecture de plugin moderne
- Vous maintenez un plugin OpenClaw externe
- Vous voyez lavertissement `OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED`
- Vous voyez lavertissement `OPENCLAW_EXTENSION_API_DEPRECATED`
- Vous mettez à jour un Plugin vers larchitecture de Plugin moderne
- Vous maintenez un Plugin OpenClaw externe
sidebarTitle: Migrate to SDK
summary: Migrez depuis la couche héritée de rétrocompatibilité vers le Plugin SDK moderne
summary: Migrez de la couche de compatibilité descendante héritée vers le Plugin SDK moderne
title: Migration du Plugin SDK
x-i18n:
generated_at: "2026-04-09T01:29:23Z"
generated_at: "2026-04-17T06:57:32Z"
model: gpt-5.4
provider: openai
source_hash: 60cbb6c8be30d17770887d490c14e3a4538563339a5206fb419e51e0558bbc07
source_hash: f0283f949eec358a12a0709db846cde2a1509f28e5c60db6e563cb8a540b979d
source_path: plugins/sdk-migration.md
workflow: 15
---
# Migration du Plugin SDK
OpenClaw est passé d'une large couche de rétrocompatibilité à une architecture de plugin
moderne avec des imports ciblés et documentés. Si votre plugin a été créé avant
la nouvelle architecture, ce guide vous aidera à migrer.
OpenClaw est passé dune large couche de compatibilité descendante à une architecture de Plugin moderne avec des imports ciblés et documentés. Si votre Plugin a été conçu avant la nouvelle architecture, ce guide vous aide à le migrer.
## Ce qui change
L'ancien système de plugins fournissait deux surfaces très ouvertes qui permettaient aux plugins d'importer
tout ce dont ils avaient besoin depuis un seul point d'entrée :
Lancien système de Plugin fournissait deux surfaces très ouvertes qui permettaient aux Plugins dimporter tout ce dont ils avaient besoin depuis un seul point dentrée :
- **`openclaw/plugin-sdk/compat`** — un import unique qui réexportait des dizaines de
helpers. Il a été introduit pour maintenir le fonctionnement des anciens plugins basés sur des hooks pendant que la
nouvelle architecture de plugin était en cours de construction.
- **`openclaw/extension-api`** — un pont qui donnait aux plugins un accès direct à
des helpers côté hôte comme l'exécuteur d'agent embarqué.
- **`openclaw/plugin-sdk/compat`** — un import unique qui réexportait des dizaines de helpers. Il a été introduit pour permettre aux anciens Plugins basés sur des hooks de continuer à fonctionner pendant la construction de la nouvelle architecture de Plugin.
- **`openclaw/extension-api`** — un pont qui donnait aux Plugins un accès direct à des helpers côté hôte, comme lexécuteur dagent embarqué.
Ces deux surfaces sont maintenant **obsolètes**. Elles fonctionnent toujours à l'exécution, mais les nouveaux
plugins ne doivent pas les utiliser, et les plugins existants doivent migrer avant que la prochaine
version majeure ne les supprime.
Ces deux surfaces sont désormais **dépréciées**. Elles fonctionnent toujours à lexécution, mais les nouveaux Plugins ne doivent pas les utiliser, et les Plugins existants doivent migrer avant que la prochaine version majeure ne les supprime.
<Warning>
La couche de rétrocompatibilité sera supprimée dans une future version majeure.
Les plugins qui importent encore depuis ces surfaces ne fonctionneront plus lorsque cela arrivera.
La couche de compatibilité descendante sera supprimée dans une future version majeure.
Les Plugins qui importent encore depuis ces surfaces cesseront de fonctionner à ce moment-là.
</Warning>
## Pourquoi cela a changé
L'ancienne approche causait des problèmes :
Lancienne approche causait des problèmes :
- **Démarrage lent**importer un helper chargeait des dizaines de modules sans rapport
- **Dépendances circulaires**les réexportations larges facilitaient la création de cycles d'import
- **Surface d'API floue** — il n'y avait aucun moyen de distinguer quels exports étaient stables et lesquels étaient internes
- **Démarrage lent**limport dun helper chargeait des dizaines de modules sans lien
- **Dépendances circulaires**de larges réexportations facilitaient la création de cycles dimport
- **Surface dAPI peu claire** — il ny avait aucun moyen de savoir quelles exportations étaient stables ou internes
Le Plugin SDK moderne corrige cela : chaque chemin d'import (`openclaw/plugin-sdk/\<subpath\>`)
est un petit module autonome avec une finalité claire et un contrat documenté.
Le Plugin SDK moderne corrige cela : chaque chemin dimport (`openclaw/plugin-sdk/\<subpath\>`)
est un petit module autonome avec un objectif clair et un contrat documenté.
Les interfaces de commodité provider héritées pour les canaux intégrés ont également disparu. Les imports
Les couches de commodité héritées pour les providers des canaux groupés ont également disparu. Les imports
tels que `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`,
les interfaces helpers de marque de canal, ainsi que
`openclaw/plugin-sdk/telegram-core` étaient des raccourcis privés du mono-repo, pas
des contrats de plugin stables. Utilisez plutôt des sous-chemins SDK génériques et étroits. À l'intérieur de l'
espace de travail du plugin intégré, conservez les helpers détenus par le provider dans l'
`api.ts` ou `runtime-api.ts` de ce plugin.
les couches de helpers associées à une marque de canal, et
`openclaw/plugin-sdk/telegram-core` étaient des raccourcis privés du mono-repo, et non
des contrats de Plugin stables. Utilisez à la place des sous-chemins génériques étroits du SDK. Dans lespace de travail
des Plugins groupés, conservez les helpers appartenant au provider dans le
`api.ts` ou le `runtime-api.ts` propre à ce Plugin.
Exemples actuels de providers intégrés :
Exemples actuels de providers groupés :
- Anthropic conserve les helpers de flux spécifiques à Claude dans sa propre interface `api.ts` /
- Anthropic conserve les helpers de flux spécifiques à Claude dans sa propre couche `api.ts` /
`contract-api.ts`
- OpenAI conserve les builders de provider, les helpers de modèle par défaut et les builders de provider temps réel
dans son propre `api.ts`
- OpenRouter conserve le builder de provider ainsi que les helpers d'onboarding/configuration dans son propre
- OpenAI conserve les builders de provider, les helpers de modèle par défaut et les builders de provider
temps réel dans son propre `api.ts`
- OpenRouter conserve le builder de provider et les helpers donboarding/configuration dans son propre
`api.ts`
## Comment migrer
<Steps>
<Step title="Migrer les gestionnaires approval-native vers les faits de capacité">
Les plugins de canal capables d'approbation exposent désormais le comportement d'approbation natif via
`approvalCapability.nativeRuntime` ainsi que le registre partagé de contexte d'exécution.
<Step title="Migrer les gestionnaires natifs dapprobation vers des faits de capacité">
Les Plugins de canal capables de gérer les approbations exposent désormais le comportement dapprobation natif via
`approvalCapability.nativeRuntime` ainsi que le registre partagé de contexte dexécution.
Changements clés :
Principaux changements :
- Remplacez `approvalCapability.handler.loadRuntime(...)` par
`approvalCapability.nativeRuntime`
- Déplacez l'authentification/la livraison spécifiques aux approbations hors du câblage hérité `plugin.auth` /
- Déplacez lauthentification/la distribution spécifiques aux approbations hors de lancien câblage `plugin.auth` /
`plugin.approvals` vers `approvalCapability`
- `ChannelPlugin.approvals` a été supprimé du contrat public du plugin de canal ;
- `ChannelPlugin.approvals` a été supprimé du contrat public du Plugin de canal ;
déplacez les champs delivery/native/render vers `approvalCapability`
- `plugin.auth` reste réservé aux flux de connexion/déconnexion du canal ; les hooks d'authentification
d'approbation qui s'y trouvent ne sont plus lus par le cœur
- Enregistrez les objets d'exécution détenus par le canal tels que clients, jetons ou applications Bolt
via `openclaw/plugin-sdk/channel-runtime-context`
- N'envoyez pas d'avis de reroutage détenus par le plugin depuis des gestionnaires d'approbation natifs ;
le cœur gère désormais les avis « routé ailleurs » à partir des résultats de livraison réels
- Lors du passage de `channelRuntime` à `createChannelManager(...)`, fournissez une
vraie surface `createPluginRuntime().channel`. Les stubs partiels sont rejetés.
- `plugin.auth` reste utilisé uniquement pour les flux de connexion/déconnexion des canaux ; les hooks
dauthentification des approbations qui sy trouvent ne sont plus lus par le core
- Enregistrez les objets dexécution appartenant au canal, comme les clients, jetons ou applications
Bolt, via `openclaw/plugin-sdk/channel-runtime-context`
- Nenvoyez pas davis de réacheminement appartenant au Plugin depuis les gestionnaires dapprobation natifs ;
le core gère désormais les avis « acheminé ailleurs » à partir des résultats réels de distribution
- Lors du passage de `channelRuntime` à `createChannelManager(...)`, fournissez une vraie
surface `createPluginRuntime().channel`. Les stubs partiels sont rejetés.
Voir `/plugins/sdk-channel-plugins` pour la disposition actuelle de la
capacité d'approbation.
capacité dapprobation.
</Step>
<Step title="Auditer le comportement de repli du wrapper Windows">
Si votre plugin utilise `openclaw/plugin-sdk/windows-spawn`, les wrappers Windows
`.cmd`/`.bat` non résolus échouent désormais de manière fermée sauf si vous passez explicitement
Si votre Plugin utilise `openclaw/plugin-sdk/windows-spawn`, les wrappers Windows
`.cmd`/`.bat` non résolus échouent désormais de manière stricte, sauf si vous transmettez explicitement
`allowShellFallback: true`.
```typescript
// Avant
// Before
const program = applyWindowsSpawnProgramPolicy({ candidate });
// Après
// After
const program = applyWindowsSpawnProgramPolicy({
candidate,
// Définissez ceci uniquement pour les appelants de compatibilité de confiance qui
// acceptent intentionnellement le repli via le shell.
// Only set this for trusted compatibility callers that intentionally
// accept shell-mediated fallback.
allowShellFallback: true,
});
```
Si votre appelant ne repose pas intentionnellement sur un repli shell, ne définissez pas
`allowShellFallback` et gérez plutôt l'erreur levée.
Si votre appelant ne dépend pas intentionnellement du repli via shell, ne définissez pas
`allowShellFallback` et gérez plutôt lerreur levée.
</Step>
<Step title="Trouver les imports obsolètes">
Recherchez dans votre plugin les imports depuis l'une ou l'autre des surfaces obsolètes :
<Step title="Trouver les imports dépréciés">
Recherchez dans votre Plugin les imports provenant de lune ou lautre surface dépréciée :
```bash
grep -r "plugin-sdk/compat" my-plugin/
@ -134,35 +126,35 @@ Exemples actuels de providers intégrés :
</Step>
<Step title="Remplacer par des imports ciblés">
Chaque export de l'ancienne surface correspond à un chemin d'import moderne spécifique :
Chaque export de lancienne surface correspond à un chemin dimport moderne spécifique :
```typescript
// Avant (couche de rétrocompatibilité obsolète)
// Before (deprecated backwards-compatibility layer)
import {
createChannelReplyPipeline,
createPluginRuntimeStore,
resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";
// Après (imports modernes ciblés)
// After (modern focused imports)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
```
Pour les helpers côté hôte, utilisez le runtime de plugin injecté au lieu d'importer
Pour les helpers côté hôte, utilisez le runtime de Plugin injecté au lieu dimporter
directement :
```typescript
// Avant (pont extension-api obsolète)
// Before (deprecated extension-api bridge)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });
// Après (runtime injecté)
// After (injected runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
```
Le même modèle s'applique aux autres helpers de pont hérités :
Le même modèle sapplique aux autres helpers hérités du pont :
| Ancien import | Équivalent moderne |
| --- | --- |
@ -172,7 +164,7 @@ Exemples actuels de providers intégrés :
| `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
| `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
| `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
| helpers de magasin de session | `api.runtime.agent.session.*` |
| helpers du stockage de session | `api.runtime.agent.session.*` |
</Step>
@ -184,227 +176,227 @@ Exemples actuels de providers intégrés :
</Step>
</Steps>
## Référence des chemins d'import
## Référence des chemins dimport
<Accordion title="Tableau des chemins d'import courants">
| Chemin d'import | Finalité | Exports clés |
<Accordion title="Tableau des chemins dimport courants">
| Chemin dimport | Objectif | Exportations clés |
| --- | --- | --- |
| `plugin-sdk/plugin-entry` | Helper canonique de point d'entrée de plugin | `definePluginEntry` |
| `plugin-sdk/core` | Réexportation parapluie héritée pour les définitions/builders d'entrée de canal | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Export du schéma de configuration racine | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | Helper de point d'entrée de provider unique | `defineSingleProviderPluginEntry` |
| `plugin-sdk/channel-core` | Définitions et builders ciblés de point d'entrée de canal | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/setup` | Helpers partagés pour l'assistant de configuration | Prompts de liste d'autorisation, builders d'état de configuration |
| `plugin-sdk/setup-runtime` | Helpers d'exécution au moment de la configuration | Adaptateurs de patch de configuration sûrs à importer, helpers de notes de recherche, `promptResolvedAllowFrom`, `splitSetupEntries`, proxys de configuration déléguée |
| `plugin-sdk/setup-adapter-runtime` | Helpers d'adaptateur de configuration | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | Helpers d'outillage de configuration | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Helpers multi-comptes | Helpers de liste/configuration/contrôle d'action de compte |
| `plugin-sdk/account-id` | Helpers d'ID de compte | `DEFAULT_ACCOUNT_ID`, normalisation d'ID de compte |
| `plugin-sdk/plugin-entry` | Helper dentrée de Plugin canonique | `definePluginEntry` |
| `plugin-sdk/core` | Réexportation parapluie héritée pour les définitions/builders dentrée de canal | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Exportation du schéma de configuration racine | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | Helper dentrée à provider unique | `defineSingleProviderPluginEntry` |
| `plugin-sdk/channel-core` | Définitions et builders dentrée de canal ciblés | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/setup` | Helpers partagés de lassistant de configuration | Prompts de liste dautorisation, builders détat de configuration |
| `plugin-sdk/setup-runtime` | Helpers dexécution au moment de la configuration | Adaptateurs de patch de configuration sûrs à limport, helpers de notes de recherche, `promptResolvedAllowFrom`, `splitSetupEntries`, proxys de configuration déléguée |
| `plugin-sdk/setup-adapter-runtime` | Helpers dadaptateur de configuration | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | Helpers doutillage de configuration | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Helpers multi-comptes | Helpers de liste/configuration/action gate de compte |
| `plugin-sdk/account-id` | Helpers didentifiant de compte | `DEFAULT_ACCOUNT_ID`, normalisation de lidentifiant de compte |
| `plugin-sdk/account-resolution` | Helpers de recherche de compte | Helpers de recherche de compte + repli par défaut |
| `plugin-sdk/account-helpers` | Helpers de compte étroits | Helpers de liste de compte/action de compte |
| `plugin-sdk/channel-setup` | Adaptateurs d'assistant de configuration | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, ainsi que `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/channel-pairing` | Primitives de pairage DM | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | Câblage de préfixe de réponse + frappe | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | Fabriques d'adaptateurs de configuration | `createHybridChannelConfigAdapter` |
| `plugin-sdk/account-helpers` | Helpers de compte ciblés | Helpers de liste de comptes/action de compte |
| `plugin-sdk/channel-setup` | Adaptateurs dassistant de configuration | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/channel-pairing` | Primitives dappairage DM | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | Câblage du préfixe de réponse + saisie | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | Fabriques dadaptateurs de configuration | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Builders de schéma de configuration | Types de schéma de configuration de canal |
| `plugin-sdk/telegram-command-config` | Helpers de configuration de commande Telegram | Normalisation de nom de commande, réduction de description, validation des doublons/conflits |
| `plugin-sdk/telegram-command-config` | Helpers de configuration des commandes Telegram | Normalisation des noms de commandes, réduction des descriptions, validation des doublons/conflits |
| `plugin-sdk/channel-policy` | Résolution de politique groupe/DM | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | Suivi d'état de compte | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Helpers d'enveloppe entrante | Helpers partagés de route + construction d'enveloppe |
| `plugin-sdk/inbound-reply-dispatch` | Helpers de réponse entrante | Helpers partagés d'enregistrement et de distribution |
| `plugin-sdk/messaging-targets` | Analyse des cibles de messagerie | Helpers d'analyse/correspondance de cible |
| `plugin-sdk/outbound-media` | Helpers de média sortant | Chargement partagé de média sortant |
| `plugin-sdk/outbound-runtime` | Helpers d'exécution sortante | Helpers de délégation d'identité/d'envoi sortants |
| `plugin-sdk/thread-bindings-runtime` | Helpers de liaison de thread | Helpers de cycle de vie de liaison de thread et d'adaptateur |
| `plugin-sdk/agent-media-payload` | Helpers hérités de charge utile média | Builder de charge utile média d'agent pour des dispositions de champs héritées |
| `plugin-sdk/channel-runtime` | Shim de compatibilité obsolète | Utilitaires d'exécution de canal hérités uniquement |
| `plugin-sdk/channel-send-result` | Types de résultat d'envoi | Types de résultat de réponse |
| `plugin-sdk/runtime-store` | Stockage persistant de plugin | `createPluginRuntimeStore` |
| `plugin-sdk/runtime` | Helpers d'exécution étendus | Helpers d'exécution/journalisation/sauvegarde/installation de plugin |
| `plugin-sdk/runtime-env` | Helpers d'environnement d'exécution étroits | Helpers de logger/environnement d'exécution, délai, retry et backoff |
| `plugin-sdk/plugin-runtime` | Helpers partagés d'exécution de plugin | Helpers de commandes/hooks/http/interactifs de plugin |
| `plugin-sdk/hook-runtime` | Helpers de pipeline de hook | Helpers partagés de pipeline de hooks webhook/internes |
| `plugin-sdk/lazy-runtime` | Helpers d'exécution différée | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpers de processus | Helpers partagés d'exécution de commande |
| `plugin-sdk/cli-runtime` | Helpers d'exécution CLI | Formatage de commandes, attentes, helpers de version |
| `plugin-sdk/gateway-runtime` | Helpers de passerelle | Client de passerelle et helpers de patch d'état de canal |
| `plugin-sdk/channel-lifecycle` | Suivi de létat du compte | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Helpers denveloppe entrante | Helpers partagés de route + construction denveloppe |
| `plugin-sdk/inbound-reply-dispatch` | Helpers de réponse entrante | Helpers partagés denregistrement et de répartition |
| `plugin-sdk/messaging-targets` | Analyse des cibles de messagerie | Helpers danalyse/correspondance de cibles |
| `plugin-sdk/outbound-media` | Helpers de médias sortants | Chargement partagé des médias sortants |
| `plugin-sdk/outbound-runtime` | Helpers dexécution sortante | Helpers de délégation didentité/denvoi sortants |
| `plugin-sdk/thread-bindings-runtime` | Helpers de liaison de fil | Helpers de cycle de vie et dadaptateur de liaison de fil |
| `plugin-sdk/agent-media-payload` | Helpers hérités de payload média | Builder de payload média dagent pour les dispositions de champs héritées |
| `plugin-sdk/channel-runtime` | Shim de compatibilité déprécié | Utilitaires hérités dexécution de canal uniquement |
| `plugin-sdk/channel-send-result` | Types de résultat denvoi | Types de résultat de réponse |
| `plugin-sdk/runtime-store` | Stockage persistant de Plugin | `createPluginRuntimeStore` |
| `plugin-sdk/runtime` | Helpers dexécution étendus | Helpers dexécution/journalisation/sauvegarde/installation de Plugin |
| `plugin-sdk/runtime-env` | Helpers ciblés denvironnement dexécution | Logger/runtime env, helpers de délai dexpiration, de retry et de backoff |
| `plugin-sdk/plugin-runtime` | Helpers partagés dexécution de Plugin | Helpers de commandes/hooks/http/interactifs de Plugin |
| `plugin-sdk/hook-runtime` | Helpers de pipeline de hook | Helpers partagés de pipeline de Webhook/hook interne |
| `plugin-sdk/lazy-runtime` | Helpers dexécution paresseuse | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpers de processus | Helpers partagés dexécution |
| `plugin-sdk/cli-runtime` | Helpers dexécution CLI | Formatage des commandes, attentes, helpers de version |
| `plugin-sdk/gateway-runtime` | Helpers Gateway | Client Gateway et helpers de patch détat de canal |
| `plugin-sdk/config-runtime` | Helpers de configuration | Helpers de chargement/écriture de configuration |
| `plugin-sdk/telegram-command-config` | Helpers de commande Telegram | Helpers de validation de commande Telegram stables en repli lorsque la surface de contrat Telegram intégrée n'est pas disponible |
| `plugin-sdk/approval-runtime` | Helpers de prompt d'approbation | Charge utile d'approbation exec/plugin, helpers de capacité/profil d'approbation, helpers natifs de routage/runtime d'approbation |
| `plugin-sdk/approval-auth-runtime` | Helpers d'authentification d'approbation | Résolution d'approbateur, authentification d'action dans le même chat |
| `plugin-sdk/approval-client-runtime` | Helpers client d'approbation | Helpers natifs de profil/filtre d'approbation exec |
| `plugin-sdk/approval-delivery-runtime` | Helpers de livraison d'approbation | Adaptateurs natifs de capacité/livraison d'approbation |
| `plugin-sdk/approval-gateway-runtime` | Helpers de passerelle d'approbation | Helper partagé de résolution de passerelle d'approbation |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpers d'adaptateur d'approbation | Helpers légers de chargement d'adaptateur d'approbation natif pour points d'entrée de canal à chaud |
| `plugin-sdk/approval-handler-runtime` | Helpers de gestionnaire d'approbation | Helpers d'exécution plus larges pour gestionnaire d'approbation ; préférez les interfaces plus étroites d'adaptateur/passerelle lorsqu'elles suffisent |
| `plugin-sdk/approval-native-runtime` | Helpers de cible d'approbation | Helpers natifs de liaison cible/compte d'approbation |
| `plugin-sdk/approval-reply-runtime` | Helpers de réponse d'approbation | Helpers de charge utile de réponse d'approbation exec/plugin |
| `plugin-sdk/channel-runtime-context` | Helpers de contexte d'exécution de canal | Helpers génériques d'enregistrement/obtention/surveillance de contexte d'exécution de canal |
| `plugin-sdk/security-runtime` | Helpers de sécurité | Helpers partagés de confiance, contrôle DM, contenu externe et collecte de secrets |
| `plugin-sdk/ssrf-policy` | Helpers de politique SSRF | Helpers de liste d'autorisation d'hôte et de politique de réseau privé |
| `plugin-sdk/ssrf-runtime` | Helpers d'exécution SSRF | Helpers de pinned-dispatcher, fetch protégé et politique SSRF |
| `plugin-sdk/telegram-command-config` | Helpers de commandes Telegram | Helpers de validation de commandes Telegram stables en repli lorsque la surface de contrat Telegram groupée nest pas disponible |
| `plugin-sdk/approval-runtime` | Helpers de prompt dapprobation | Helpers de payload dapprobation exec/Plugin, de capacité/profil dapprobation, de routage/exécution dapprobation native |
| `plugin-sdk/approval-auth-runtime` | Helpers dauthentification dapprobation | Résolution de lapprobateur, autorisation daction dans le même chat |
| `plugin-sdk/approval-client-runtime` | Helpers de client dapprobation | Helpers de profil/filtre dapprobation exec native |
| `plugin-sdk/approval-delivery-runtime` | Helpers de distribution dapprobation | Adaptateurs de capacité/distribution dapprobation native |
| `plugin-sdk/approval-gateway-runtime` | Helpers Gateway dapprobation | Helper partagé de résolution de Gateway dapprobation |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpers dadaptateur dapprobation | Helpers légers de chargement dadaptateur dapprobation native pour les points dentrée de canal à chaud |
| `plugin-sdk/approval-handler-runtime` | Helpers de gestionnaire dapprobation | Helpers plus étendus dexécution de gestionnaire dapprobation ; préférez les couches adaptateur/Gateway plus ciblées lorsquelles suffisent |
| `plugin-sdk/approval-native-runtime` | Helpers de cible dapprobation | Helpers natifs de cible dapprobation/liaison de compte |
| `plugin-sdk/approval-reply-runtime` | Helpers de réponse dapprobation | Helpers de payload de réponse dapprobation exec/Plugin |
| `plugin-sdk/channel-runtime-context` | Helpers de contexte dexécution de canal | Helpers génériques denregistrement/lecture/surveillance du contexte dexécution de canal |
| `plugin-sdk/security-runtime` | Helpers de sécurité | Helpers partagés de confiance, de filtrage DM, de contenu externe et de collecte de secrets |
| `plugin-sdk/ssrf-policy` | Helpers de politique SSRF | Helpers de liste dautorisation dhôte et de politique réseau privé |
| `plugin-sdk/ssrf-runtime` | Helpers dexécution SSRF | Répartiteur épinglé, fetch protégé, helpers de politique SSRF |
| `plugin-sdk/collection-runtime` | Helpers de cache borné | `pruneMapToMaxSize` |
| `plugin-sdk/diagnostic-runtime` | Helpers de contrôle diagnostic | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/error-runtime` | Helpers de formatage d'erreur | `formatUncaughtError`, `isApprovalNotFoundError`, helpers de graphe d'erreur |
| `plugin-sdk/fetch-runtime` | Helpers fetch/proxy encapsulés | `resolveFetch`, helpers de proxy |
| `plugin-sdk/host-runtime` | Helpers de normalisation d'hôte | `normalizeHostname`, `normalizeScpRemoteHost` |
| `plugin-sdk/diagnostic-runtime` | Helpers de filtrage diagnostique | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/error-runtime` | Helpers de formatage des erreurs | `formatUncaughtError`, `isApprovalNotFoundError`, helpers de graphe derreurs |
| `plugin-sdk/fetch-runtime` | Helpers de fetch/proxy encapsulés | `resolveFetch`, helpers de proxy |
| `plugin-sdk/host-runtime` | Helpers de normalisation dhôte | `normalizeHostname`, `normalizeScpRemoteHost` |
| `plugin-sdk/retry-runtime` | Helpers de retry | `RetryConfig`, `retryAsync`, exécuteurs de politique |
| `plugin-sdk/allow-from` | Formatage de liste d'autorisation | `formatAllowFromLowercase` |
| `plugin-sdk/allowlist-resolution` | Mappage d'entrée de liste d'autorisation | `mapAllowlistResolutionInputs` |
| `plugin-sdk/command-auth` | Contrôle de commande et helpers de surface de commande | `resolveControlCommandGate`, helpers d'autorisation d'expéditeur, helpers de registre de commandes |
| `plugin-sdk/command-status` | Rendu d'état/d'aide des commandes | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` |
| `plugin-sdk/secret-input` | Analyse d'entrée de secret | Helpers d'entrée de secret |
| `plugin-sdk/webhook-ingress` | Helpers de requête webhook | Utilitaires de cible webhook |
| `plugin-sdk/webhook-request-guards` | Helpers de protection du corps webhook | Helpers de lecture/limite de corps de requête |
| `plugin-sdk/reply-runtime` | Runtime de réponse partagé | Distribution entrante, heartbeat, planificateur de réponse, découpage |
| `plugin-sdk/reply-dispatch-runtime` | Helpers étroits de distribution de réponse | Helpers de finalisation + distribution provider |
| `plugin-sdk/reply-history` | Helpers d'historique de réponse | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/allow-from` | Formatage de liste dautorisation | `formatAllowFromLowercase` |
| `plugin-sdk/allowlist-resolution` | Mappage dentrée de liste dautorisation | `mapAllowlistResolutionInputs` |
| `plugin-sdk/command-auth` | Filtrage des commandes et helpers de surface de commande | `resolveControlCommandGate`, helpers dautorisation de lexpéditeur, helpers de registre de commandes |
| `plugin-sdk/command-status` | Moteurs de rendu détat/aide des commandes | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` |
| `plugin-sdk/secret-input` | Analyse des entrées secrètes | Helpers dentrée secrète |
| `plugin-sdk/webhook-ingress` | Helpers de requête Webhook | Utilitaires de cible Webhook |
| `plugin-sdk/webhook-request-guards` | Helpers de garde du corps de requête Webhook | Helpers de lecture/limitation du corps de requête |
| `plugin-sdk/reply-runtime` | Exécution partagée des réponses | Répartition entrante, Heartbeat, planificateur de réponse, découpage |
| `plugin-sdk/reply-dispatch-runtime` | Helpers ciblés de répartition des réponses | Helpers de finalisation + répartition provider |
| `plugin-sdk/reply-history` | Helpers dhistorique des réponses | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | Planification de référence de réponse | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Helpers de découpage de réponse | Helpers de découpage texte/markdown |
| `plugin-sdk/session-store-runtime` | Helpers de magasin de session | Helpers de chemin de magasin + updated-at |
| `plugin-sdk/state-paths` | Helpers de chemins d'état | Helpers de répertoires d'état et OAuth |
| `plugin-sdk/reply-chunking` | Helpers de découpage des réponses | Helpers de découpage texte/Markdown |
| `plugin-sdk/session-store-runtime` | Helpers de stockage de session | Helpers de chemin de stockage + `updated-at` |
| `plugin-sdk/state-paths` | Helpers de chemins détat | Helpers de répertoire détat et OAuth |
| `plugin-sdk/routing` | Helpers de routage/clé de session | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, helpers de normalisation de clé de session |
| `plugin-sdk/status-helpers` | Helpers d'état de canal | Builders de résumé d'état de canal/compte, valeurs par défaut d'état runtime, helpers de métadonnées de problème |
| `plugin-sdk/status-helpers` | Helpers détat de canal | Builders de résumé détat de canal/compte, valeurs par défaut détat dexécution, helpers de métadonnées dincident |
| `plugin-sdk/target-resolver-runtime` | Helpers de résolution de cible | Helpers partagés de résolution de cible |
| `plugin-sdk/string-normalization-runtime` | Helpers de normalisation de chaîne | Helpers de normalisation slug/chaîne |
| `plugin-sdk/request-url` | Helpers d'URL de requête | Extraction d'URL chaîne depuis des entrées de type requête |
| `plugin-sdk/run-command` | Helpers de commande temporisée | Exécuteur de commande temporisée avec stdout/stderr normalisés |
| `plugin-sdk/param-readers` | Lecteurs de paramètres | Lecteurs communs de paramètres d'outil/CLI |
| `plugin-sdk/tool-payload` | Extraction de charge utile d'outil | Extraction de charges utiles normalisées depuis des objets de résultat d'outil |
| `plugin-sdk/tool-send` | Extraction d'envoi d'outil | Extraction des champs de cible d'envoi canoniques depuis les arguments d'outil |
| `plugin-sdk/temp-path` | Helpers de chemins temporaires | Helpers partagés de chemin de téléchargement temporaire |
| `plugin-sdk/logging-core` | Helpers de journalisation | Logger de sous-système et helpers de masquage |
| `plugin-sdk/markdown-table-runtime` | Helpers de tableau Markdown | Helpers de mode tableau Markdown |
| `plugin-sdk/reply-payload` | Types de réponse de message | Types de charge utile de réponse |
| `plugin-sdk/provider-setup` | Helpers de configuration sélectionnés pour providers locaux/autohébergés | Helpers de découverte/configuration de provider autohébergé |
| `plugin-sdk/self-hosted-provider-setup` | Helpers ciblés de configuration de provider autohébergé compatible OpenAI | Les mêmes helpers de découverte/configuration de provider autohébergé |
| `plugin-sdk/provider-auth-runtime` | Helpers d'authentification runtime de provider | Helpers de résolution runtime de clé API |
| `plugin-sdk/provider-auth-api-key` | Helpers de configuration de clé API provider | Helpers d'onboarding/écriture de profil de clé API |
| `plugin-sdk/provider-auth-result` | Helpers de résultat d'authentification provider | Builder standard de résultat d'authentification OAuth |
| `plugin-sdk/provider-auth-login` | Helpers de connexion interactive provider | Helpers partagés de connexion interactive |
| `plugin-sdk/provider-env-vars` | Helpers de variables d'environnement provider | Helpers de recherche de variables d'environnement d'authentification provider |
| `plugin-sdk/provider-model-shared` | Helpers partagés de modèle/relecture provider | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, builders partagés de politique de relecture, helpers de point d'accès provider et helpers de normalisation d'ID de modèle |
| `plugin-sdk/provider-catalog-shared` | Helpers partagés de catalogue provider | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-onboard` | Patches d'onboarding provider | Helpers de configuration d'onboarding |
| `plugin-sdk/provider-http` | Helpers HTTP provider | Helpers génériques HTTP/capacités de point d'accès provider |
| `plugin-sdk/provider-web-fetch` | Helpers web-fetch provider | Helpers d'enregistrement/cache de provider web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Helpers de configuration de recherche web provider | Helpers étroits de configuration/identifiants de recherche web pour les providers qui n'ont pas besoin de câblage d'activation de plugin |
| `plugin-sdk/provider-web-search-contract` | Helpers de contrat de recherche web provider | Helpers étroits de contrat de configuration/identifiants de recherche web tels que `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, et setters/getters d'identifiants à portée limitée |
| `plugin-sdk/provider-web-search` | Helpers de recherche web provider | Helpers d'enregistrement/cache/runtime de provider de recherche web |
| `plugin-sdk/provider-tools` | Helpers de compatibilité provider outil/schéma | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, nettoyage de schéma Gemini + diagnostics, et helpers de compatibilité xAI tels que `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | Helpers d'usage provider | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage`, et autres helpers d'usage provider |
| `plugin-sdk/provider-stream` | Helpers d'encapsulation de flux provider | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, types d'encapsulation de flux, et helpers partagés d'encapsulation Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/keyed-async-queue` | File async ordonnée | `KeyedAsyncQueue` |
| `plugin-sdk/media-runtime` | Helpers média partagés | Helpers de récupération/transformation/stockage de média ainsi que builders de charge utile média |
| `plugin-sdk/media-generation-runtime` | Helpers partagés de génération média | Helpers partagés de basculement, sélection de candidat, et messages de modèle manquant pour la génération d'image/vidéo/musique |
| `plugin-sdk/media-understanding` | Helpers de compréhension média | Types de provider de compréhension média ainsi que exports de helpers image/audio côté provider |
| `plugin-sdk/text-runtime` | Helpers texte partagés | Suppression de texte visible par l'assistant, helpers de rendu/découpage/tableau markdown, helpers de masquage, helpers de balises de directive, utilitaires de texte sûr, et helpers associés de texte/journalisation |
| `plugin-sdk/string-normalization-runtime` | Helpers de normalisation de chaîne | Helpers de normalisation de slug/chaîne |
| `plugin-sdk/request-url` | Helpers dURL de requête | Extraire des URL sous forme de chaîne à partir dentrées de type requête |
| `plugin-sdk/run-command` | Helpers de commande chronométrée | Exécuteur de commande chronométrée avec stdout/stderr normalisés |
| `plugin-sdk/param-readers` | Lecteurs de paramètres | Lecteurs courants de paramètres doutil/CLI |
| `plugin-sdk/tool-payload` | Extraction de payload doutil | Extraire des payloads normalisés à partir dobjets de résultat doutil |
| `plugin-sdk/tool-send` | Extraction denvoi doutil | Extraire les champs canoniques de cible denvoi à partir des arguments doutil |
| `plugin-sdk/temp-path` | Helpers de chemin temporaire | Helpers partagés de chemin de téléchargement temporaire |
| `plugin-sdk/logging-core` | Helpers de journalisation | Logger de sous-système et helpers de rédaction |
| `plugin-sdk/markdown-table-runtime` | Helpers de tableau Markdown | Helpers de mode de tableau Markdown |
| `plugin-sdk/reply-payload` | Types de réponse de message | Types de payload de réponse |
| `plugin-sdk/provider-setup` | Helpers de configuration local/self-hosted de provider organisés | Helpers de découverte/configuration de provider auto-hébergé |
| `plugin-sdk/self-hosted-provider-setup` | Helpers ciblés de configuration de provider auto-hébergé compatible OpenAI | Les mêmes helpers de découverte/configuration de provider auto-hébergé |
| `plugin-sdk/provider-auth-runtime` | Helpers dauthentification dexécution du provider | Helpers de résolution de clé API à lexécution |
| `plugin-sdk/provider-auth-api-key` | Helpers de configuration de clé API du provider | Helpers donboarding/écriture de profil de clé API |
| `plugin-sdk/provider-auth-result` | Helpers de résultat dauthentification du provider | Builder standard de résultat dauthentification OAuth |
| `plugin-sdk/provider-auth-login` | Helpers de connexion interactive du provider | Helpers partagés de connexion interactive |
| `plugin-sdk/provider-env-vars` | Helpers de variables denvironnement du provider | Helpers de recherche de variables denvironnement dauthentification du provider |
| `plugin-sdk/provider-model-shared` | Helpers partagés de modèle/relecture du provider | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, builders partagés de politique de relecture, helpers de point de terminaison du provider et helpers de normalisation didentifiant de modèle |
| `plugin-sdk/provider-catalog-shared` | Helpers partagés du catalogue de providers | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-onboard` | Correctifs donboarding des providers | Helpers de configuration donboarding |
| `plugin-sdk/provider-http` | Helpers HTTP des providers | Helpers génériques HTTP/capacités de point de terminaison des providers |
| `plugin-sdk/provider-web-fetch` | Helpers de web-fetch des providers | Helpers denregistrement/de cache des providers de web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Helpers de configuration de recherche web des providers | Helpers ciblés de configuration/didentifiants de recherche web pour les providers qui nont pas besoin de câblage dactivation de Plugin |
| `plugin-sdk/provider-web-search-contract` | Helpers de contrat de recherche web des providers | Helpers ciblés de contrat de configuration/didentifiants de recherche web tels que `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` et setters/getters didentifiants à portée limitée |
| `plugin-sdk/provider-web-search` | Helpers de recherche web des providers | Helpers denregistrement/de cache/dexécution des providers de recherche web |
| `plugin-sdk/provider-tools` | Helpers de compatibilité outil/schéma des providers | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, nettoyage de schéma Gemini + diagnostics, et helpers de compatibilité xAI tels que `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | Helpers dusage des providers | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` et autres helpers dusage des providers |
| `plugin-sdk/provider-stream` | Helpers dencapsulation de flux des providers | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, types dencapsulation de flux, et helpers partagés dencapsulation Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/keyed-async-queue` | File asynchrone ordonnée | `KeyedAsyncQueue` |
| `plugin-sdk/media-runtime` | Helpers média partagés | Helpers de récupération/transformation/stockage de média ainsi que builders de payload média |
| `plugin-sdk/media-generation-runtime` | Helpers partagés de génération de média | Helpers partagés de basculement, sélection de candidats et messages de modèle manquant pour la génération dimage/vidéo/musique |
| `plugin-sdk/media-understanding` | Helpers de compréhension des médias | Types de providers de compréhension des médias ainsi quexports de helpers image/audio destinés aux providers |
| `plugin-sdk/text-runtime` | Helpers texte partagés | Suppression du texte visible par lassistant, helpers de rendu/découpage/tableau Markdown, helpers de rédaction, helpers de balises de directive, utilitaires de texte sûr et helpers associés de texte/journalisation |
| `plugin-sdk/text-chunking` | Helpers de découpage de texte | Helper de découpage de texte sortant |
| `plugin-sdk/speech` | Helpers de parole | Types de provider speech ainsi que helpers côté provider de directive, registre et validation |
| `plugin-sdk/speech-core` | Cœur speech partagé | Types de provider speech, registre, directives, normalisation |
| `plugin-sdk/realtime-transcription` | Helpers de transcription temps réel | Helpers de types provider et de registre |
| `plugin-sdk/realtime-voice` | Helpers de voix temps réel | Helpers de types provider et de registre |
| `plugin-sdk/image-generation-core` | Cœur partagé de génération d'image | Helpers de types, basculement, authentification et registre pour génération d'image |
| `plugin-sdk/music-generation` | Helpers de génération musicale | Types de provider/requête/résultat pour génération musicale |
| `plugin-sdk/music-generation-core` | Cœur partagé de génération musicale | Types de génération musicale, helpers de basculement, recherche de provider et analyse de référence de modèle |
| `plugin-sdk/video-generation` | Helpers de génération vidéo | Types de provider/requête/résultat pour génération vidéo |
| `plugin-sdk/video-generation-core` | Cœur partagé de génération vidéo | Types de génération vidéo, helpers de basculement, recherche de provider et analyse de référence de modèle |
| `plugin-sdk/interactive-runtime` | Helpers de réponse interactive | Normalisation/réduction de charge utile de réponse interactive |
| `plugin-sdk/channel-config-primitives` | Primitives de configuration de canal | Primitives étroites de schéma de configuration de canal |
| `plugin-sdk/channel-config-writes` | Helpers d'écriture de configuration de canal | Helpers d'autorisation d'écriture de configuration de canal |
| `plugin-sdk/channel-plugin-common` | Prélude de canal partagé | Exports partagés de prélude de plugin de canal |
| `plugin-sdk/channel-status` | Helpers d'état de canal | Helpers partagés d'instantané/résumé d'état de canal |
| `plugin-sdk/allowlist-config-edit` | Helpers de configuration de liste d'autorisation | Helpers de lecture/édition de configuration de liste d'autorisation |
| `plugin-sdk/group-access` | Helpers d'accès de groupe | Helpers partagés de décision d'accès de groupe |
| `plugin-sdk/direct-dm` | Helpers de DM direct | Helpers partagés d'authentification/protection de DM direct |
| `plugin-sdk/extension-shared` | Helpers d'extension partagés | Primitives helpers de canal passif/état et proxy ambiant |
| `plugin-sdk/webhook-targets` | Helpers de cibles webhook | Registre de cibles webhook et helpers d'installation de route |
| `plugin-sdk/webhook-path` | Helpers de chemin webhook | Helpers de normalisation de chemin webhook |
| `plugin-sdk/speech` | Helpers Speech | Types de providers Speech ainsi quhelpers de directive, de registre et de validation destinés aux providers |
| `plugin-sdk/speech-core` | Noyau Speech partagé | Types de providers Speech, registre, directives, normalisation |
| `plugin-sdk/realtime-transcription` | Helpers de transcription en temps réel | Types de providers et helpers de registre |
| `plugin-sdk/realtime-voice` | Helpers de voix en temps réel | Types de providers et helpers de registre |
| `plugin-sdk/image-generation-core` | Noyau partagé de génération dimages | Types, helpers de basculement, dauthentification et de registre pour la génération dimages |
| `plugin-sdk/music-generation` | Helpers de génération de musique | Types de provider/requête/résultat pour la génération de musique |
| `plugin-sdk/music-generation-core` | Noyau partagé de génération de musique | Types de génération de musique, helpers de basculement, recherche de provider et analyse de model-ref |
| `plugin-sdk/video-generation` | Helpers de génération de vidéo | Types de provider/requête/résultat pour la génération de vidéo |
| `plugin-sdk/video-generation-core` | Noyau partagé de génération de vidéo | Types de génération de vidéo, helpers de basculement, recherche de provider et analyse de model-ref |
| `plugin-sdk/interactive-runtime` | Helpers de réponse interactive | Normalisation/réduction du payload de réponse interactive |
| `plugin-sdk/channel-config-primitives` | Primitives de configuration de canal | Primitives ciblées de schéma de configuration de canal |
| `plugin-sdk/channel-config-writes` | Helpers décriture de configuration de canal | Helpers dautorisation décriture de configuration de canal |
| `plugin-sdk/channel-plugin-common` | Prélude de canal partagé | Exports partagés du prélude de Plugin de canal |
| `plugin-sdk/channel-status` | Helpers détat de canal | Helpers partagés dinstantané/de résumé de létat du canal |
| `plugin-sdk/allowlist-config-edit` | Helpers de configuration de liste dautorisation | Helpers dédition/de lecture de configuration de liste dautorisation |
| `plugin-sdk/group-access` | Helpers daccès de groupe | Helpers partagés de décision daccès de groupe |
| `plugin-sdk/direct-dm` | Helpers de DM direct | Helpers partagés dauthentification/de garde pour DM direct |
| `plugin-sdk/extension-shared` | Helpers dextension partagés | Primitives de helper pour canal passif/état et proxy ambiant |
| `plugin-sdk/webhook-targets` | Helpers de cible Webhook | Helpers de registre de cible Webhook et dinstallation de route |
| `plugin-sdk/webhook-path` | Helpers de chemin Webhook | Helpers de normalisation de chemin Webhook |
| `plugin-sdk/web-media` | Helpers média web partagés | Helpers de chargement de média distant/local |
| `plugin-sdk/zod` | Réexportation Zod | `zod` réexporté pour les consommateurs du Plugin SDK |
| `plugin-sdk/memory-core` | Helpers memory-core intégrés | Surface helper de gestionnaire/configuration/fichier/CLI mémoire |
| `plugin-sdk/memory-core-engine-runtime` | Façade runtime du moteur mémoire | Façade runtime d'indexation/recherche mémoire |
| `plugin-sdk/memory-core-host-engine-foundation` | Moteur foundation hôte mémoire | Exports du moteur foundation hôte mémoire |
| `plugin-sdk/memory-core-host-engine-embeddings` | Moteur d'embeddings hôte mémoire | Exports du moteur d'embeddings hôte mémoire |
| `plugin-sdk/memory-core-host-engine-qmd` | Moteur QMD hôte mémoire | Exports du moteur QMD hôte mémoire |
| `plugin-sdk/memory-core-host-engine-storage` | Moteur de stockage hôte mémoire | Exports du moteur de stockage hôte mémoire |
| `plugin-sdk/memory-core-host-multimodal` | Helpers multimodaux hôte mémoire | Helpers multimodaux hôte mémoire |
| `plugin-sdk/memory-core-host-query` | Helpers de requête hôte mémoire | Helpers de requête hôte mémoire |
| `plugin-sdk/memory-core-host-secret` | Helpers de secret hôte mémoire | Helpers de secret hôte mémoire |
| `plugin-sdk/memory-core-host-events` | Helpers de journal d'événements hôte mémoire | Helpers de journal d'événements hôte mémoire |
| `plugin-sdk/memory-core-host-status` | Helpers d'état hôte mémoire | Helpers d'état hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-cli` | Runtime CLI hôte mémoire | Helpers runtime CLI hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-core` | Runtime cœur hôte mémoire | Helpers runtime cœur hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-files` | Helpers fichier/runtime hôte mémoire | Helpers fichier/runtime hôte mémoire |
| `plugin-sdk/memory-host-core` | Alias runtime cœur hôte mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers runtime cœur hôte mémoire |
| `plugin-sdk/memory-host-events` | Alias journal d'événements hôte mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers de journal d'événements hôte mémoire |
| `plugin-sdk/memory-host-files` | Alias fichier/runtime hôte mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers fichier/runtime hôte mémoire |
| `plugin-sdk/memory-host-markdown` | Helpers markdown géré | Helpers partagés de markdown géré pour les plugins adjacents à la mémoire |
| `plugin-sdk/memory-host-search` | Façade de recherche de mémoire active | Façade runtime différée du gestionnaire de recherche de mémoire active |
| `plugin-sdk/memory-host-status` | Alias d'état hôte mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers d'état hôte mémoire |
| `plugin-sdk/memory-lancedb` | Helpers memory-lancedb intégrés | Surface helper memory-lancedb |
| `plugin-sdk/testing` | Utilitaires de test | Helpers et mocks de test |
| `plugin-sdk/zod` | Réexportation de Zod | `zod` réexporté pour les consommateurs du Plugin SDK |
| `plugin-sdk/memory-core` | Helpers groupés memory-core | Surface de helpers pour le gestionnaire/configuration/fichier/CLI de la mémoire |
| `plugin-sdk/memory-core-engine-runtime` | Façade dexécution du moteur mémoire | Façade dexécution dindexation/recherche mémoire |
| `plugin-sdk/memory-core-host-engine-foundation` | Moteur de fondation hôte de la mémoire | Exports du moteur de fondation hôte de la mémoire |
| `plugin-sdk/memory-core-host-engine-embeddings` | Moteur dembeddings hôte de la mémoire | Contrats dembeddings mémoire, accès au registre, provider local et helpers génériques de lot/distant ; les providers distants concrets résident dans leurs Plugins propriétaires |
| `plugin-sdk/memory-core-host-engine-qmd` | Moteur QMD hôte de la mémoire | Exports du moteur QMD hôte de la mémoire |
| `plugin-sdk/memory-core-host-engine-storage` | Moteur de stockage hôte de la mémoire | Exports du moteur de stockage hôte de la mémoire |
| `plugin-sdk/memory-core-host-multimodal` | Helpers multimodaux hôte de la mémoire | Helpers multimodaux hôte de la mémoire |
| `plugin-sdk/memory-core-host-query` | Helpers de requête hôte de la mémoire | Helpers de requête hôte de la mémoire |
| `plugin-sdk/memory-core-host-secret` | Helpers de secret hôte de la mémoire | Helpers de secret hôte de la mémoire |
| `plugin-sdk/memory-core-host-events` | Helpers de journal dévénements hôte de la mémoire | Helpers de journal dévénements hôte de la mémoire |
| `plugin-sdk/memory-core-host-status` | Helpers détat hôte de la mémoire | Helpers détat hôte de la mémoire |
| `plugin-sdk/memory-core-host-runtime-cli` | Exécution CLI hôte de la mémoire | Helpers dexécution CLI hôte de la mémoire |
| `plugin-sdk/memory-core-host-runtime-core` | Exécution core hôte de la mémoire | Helpers dexécution core hôte de la mémoire |
| `plugin-sdk/memory-core-host-runtime-files` | Helpers de fichier/dexécution hôte de la mémoire | Helpers de fichier/dexécution hôte de la mémoire |
| `plugin-sdk/memory-host-core` | Alias dexécution core hôte de la mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers dexécution core hôte de la mémoire |
| `plugin-sdk/memory-host-events` | Alias de journal dévénements hôte de la mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers de journal dévénements hôte de la mémoire |
| `plugin-sdk/memory-host-files` | Alias de fichier/dexécution hôte de la mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers de fichier/dexécution hôte de la mémoire |
| `plugin-sdk/memory-host-markdown` | Helpers de Markdown géré | Helpers partagés de Markdown géré pour les Plugins adjacents à la mémoire |
| `plugin-sdk/memory-host-search` | Façade de recherche Active Memory | Façade dexécution paresseuse du gestionnaire de recherche Active Memory |
| `plugin-sdk/memory-host-status` | Alias détat hôte de la mémoire | Alias neutre vis-à-vis du fournisseur pour les helpers détat hôte de la mémoire |
| `plugin-sdk/memory-lancedb` | Helpers groupés memory-lancedb | Surface de helpers memory-lancedb |
| `plugin-sdk/testing` | Utilitaires de test | Helpers de test et mocks |
</Accordion>
Ce tableau est volontairement le sous-ensemble courant de migration, et non la surface complète du SDK.
La liste complète des plus de 200 points d'entrée se trouve dans
Ce tableau correspond intentionnellement au sous-ensemble commun de migration, et non à la surface complète
du SDK. La liste complète des plus de 200 points dentrée se trouve dans
`scripts/lib/plugin-sdk-entrypoints.json`.
Cette liste inclut encore certaines interfaces helpers de plugins intégrés telles que
Cette liste inclut encore certaines couches de helpers de Plugins groupés telles que
`plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`,
`plugin-sdk/zalo-setup` et `plugin-sdk/matrix*`. Elles restent exportées pour
la maintenance et la compatibilité des plugins intégrés, mais elles sont intentionnellement
omises du tableau de migration courant et ne sont pas la cible recommandée pour
du nouveau code de plugin.
`plugin-sdk/zalo-setup`, et `plugin-sdk/matrix*`. Elles restent exportées pour la
maintenance et la compatibilité des Plugins groupés, mais elles sont volontairement
omises du tableau de migration commun et ne constituent pas la cible recommandée pour
le nouveau code de Plugin.
La même règle s'applique aux autres familles de helpers intégrés telles que :
La même règle sapplique aux autres familles de helpers groupés telles que :
- helpers de prise en charge du navigateur : `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support`
- Matrix : `plugin-sdk/matrix*`
- LINE : `plugin-sdk/line*`
- IRC : `plugin-sdk/irc*`
- surfaces de helper/plugin intégrées comme `plugin-sdk/googlechat`,
- surfaces de helper/Plugin groupées comme `plugin-sdk/googlechat`,
`plugin-sdk/zalouser`, `plugin-sdk/bluebubbles*`,
`plugin-sdk/mattermost*`, `plugin-sdk/msteams`,
`plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`,
`plugin-sdk/twitch`,
`plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`,
`plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`,
`plugin-sdk/thread-ownership` et `plugin-sdk/voice-call`
`plugin-sdk/thread-ownership`, et `plugin-sdk/voice-call`
`plugin-sdk/github-copilot-token` expose actuellement la surface étroite de helper de jeton
`plugin-sdk/github-copilot-token` expose actuellement la surface ciblée de helper de jeton
`DEFAULT_COPILOT_API_BASE_URL`,
`deriveCopilotApiBaseUrlFromToken` et `resolveCopilotApiToken`.
`deriveCopilotApiBaseUrlFromToken`, et `resolveCopilotApiToken`.
Utilisez l'import le plus étroit correspondant au besoin. Si vous ne trouvez pas un export,
consultez la source dans `src/plugin-sdk/` ou demandez sur Discord.
Utilisez limport le plus ciblé qui correspond à la tâche. Si vous ne trouvez pas une exportation,
consultez la source dans `src/plugin-sdk/` ou demandez dans Discord.
## Calendrier de suppression
| Quand | Ce qui se passe |
| ---------------------- | ----------------------------------------------------------------------- |
| **Maintenant** | Les surfaces obsolètes émettent des avertissements à l'exécution |
| **Prochaine version majeure** | Les surfaces obsolètes seront supprimées ; les plugins qui les utilisent encore échoueront |
| **Maintenant** | Les surfaces dépréciées émettent des avertissements à lexécution |
| **Prochaine version majeure** | Les surfaces dépréciées seront supprimées ; les Plugins qui les utilisent encore échoueront |
Tous les plugins du cœur ont déjà été migrés. Les plugins externes doivent migrer
Tous les Plugins du core ont déjà été migrés. Les Plugins externes doivent migrer
avant la prochaine version majeure.
## Supprimer temporairement les avertissements
Définissez ces variables d'environnement pendant que vous travaillez à la migration :
Définissez ces variables denvironnement pendant que vous travaillez à la migration :
```bash
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
```
Il s'agit d'une échappatoire temporaire, pas d'une solution permanente.
Il sagit dune échappatoire temporaire, et non dune solution permanente.
## Liens associés
- [Premiers pas](/fr/plugins/building-plugins) — créez votre premier plugin
- [Vue d'ensemble du SDK](/fr/plugins/sdk-overview) — référence complète des imports par sous-chemin
- [Plugins de canal](/fr/plugins/sdk-channel-plugins) — création de plugins de canal
- [Plugins de provider](/fr/plugins/sdk-provider-plugins) — création de plugins de provider
- [Internes des plugins](/fr/plugins/architecture) — analyse détaillée de l'architecture
- [Manifeste de plugin](/fr/plugins/manifest) — référence du schéma de manifeste
- [Bien démarrer](/fr/plugins/building-plugins) — créez votre premier Plugin
- [Vue densemble du SDK](/fr/plugins/sdk-overview) — référence complète des imports par sous-chemin
- [Plugins de canal](/fr/plugins/sdk-channel-plugins) — créer des Plugins de canal
- [Plugins de provider](/fr/plugins/sdk-provider-plugins) — créer des Plugins de provider
- [Internes des Plugins](/fr/plugins/architecture) — analyse approfondie de larchitecture
- [Manifest de Plugin](/fr/plugins/manifest) — référence du schéma du manifest

View File

@ -1,33 +1,33 @@
---
read_when:
- Vous devez savoir depuis quel sous-chemin du SDK importer
- Vous voulez une référence pour toutes les méthodes d'enregistrement sur OpenClawPluginApi
- Vous recherchez un export spécifique du SDK
- Vous voulez une référence pour toutes les méthodes denregistrement sur `OpenClawPluginApi`
- Vous recherchez une exportation SDK spécifique
sidebarTitle: SDK Overview
summary: Import map, référence de l'API d'enregistrement et architecture du SDK
title: Vue d'ensemble du SDK de plugin
summary: Map dimportation, référence de lAPI denregistrement et architecture du SDK
title: Vue densemble du SDK Plugin
x-i18n:
generated_at: "2026-04-11T02:46:28Z"
generated_at: "2026-04-17T06:57:33Z"
model: gpt-5.4
provider: openai
source_hash: 4bfeb5896f68e3e4ee8cf434d43a019e0d1fe5af57f5bf7a5172847c476def0c
source_hash: b177fdb6830f415d998a24812bc2c7db8124d3ba77b0174c9a67ac7d747f7e5a
source_path: plugins/sdk-overview.md
workflow: 15
---
# Vue d'ensemble du SDK de plugin
# Vue densemble du SDK Plugin
Le SDK de plugin est le contrat typé entre les plugins et le cœur. Cette page est la
Le SDK Plugin est le contrat typé entre les plugins et le cœur. Cette page est la
référence pour **quoi importer** et **ce que vous pouvez enregistrer**.
<Tip>
**Vous cherchez un guide pratique ?**
- Premier plugin ? Commencez par [Getting Started](/fr/plugins/building-plugins)
- Plugin de channel ? Voir [Channel Plugins](/fr/plugins/sdk-channel-plugins)
- Plugin de provider ? Voir [Provider Plugins](/fr/plugins/sdk-provider-plugins)
- Premier plugin ? Commencez par [Premiers pas](/fr/plugins/building-plugins)
- Plugin de canal ? Voir [Plugins de canal](/fr/plugins/sdk-channel-plugins)
- Plugin de fournisseur ? Voir [Plugins de fournisseur](/fr/plugins/sdk-provider-plugins)
</Tip>
## Convention d'import
## Convention dimportation
Importez toujours depuis un sous-chemin spécifique :
@ -36,331 +36,333 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
```
Chaque sous-chemin est un petit module autonome. Cela permet de conserver un démarrage rapide et
d'éviter les problèmes de dépendances circulaires. Pour les helpers d'entrée/build spécifiques aux channels,
préférez `openclaw/plugin-sdk/channel-core` ; gardez `openclaw/plugin-sdk/core` pour
la surface ombrelle plus large et les helpers partagés tels que
Chaque sous-chemin est un module petit et autonome. Cela permet de garder un
démarrage rapide et déviter les problèmes de dépendances circulaires. Pour les
helpers dentrée/de build spécifiques aux canaux, préférez
`openclaw/plugin-sdk/channel-core` ; gardez `openclaw/plugin-sdk/core` pour
la surface parapluie plus large et les helpers partagés tels que
`buildChannelConfigSchema`.
N'ajoutez pas et ne dépendez pas de surfaces de commodité nommées d'après des providers telles que
Najoutez pas et ne dépendez pas de surfaces de commodité nommées daprès des fournisseurs comme
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, ou
de surfaces helper associées à une marque de channel. Les plugins intégrés doivent composer des sous-chemins
SDK génériques dans leurs propres barils `api.ts` ou `runtime-api.ts`, et le cœur
doit soit utiliser ces barils locaux au plugin, soit ajouter un contrat SDK générique étroit
lorsque le besoin est réellement inter-channel.
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, ni de
surfaces helper associées à une marque de canal. Les plugins intégrés doivent
composer des sous-chemins SDK génériques dans leurs propres barrels `api.ts` ou `runtime-api.ts`, et le cœur
doit soit utiliser ces barrels locaux au plugin, soit ajouter un contrat SDK
générique étroit lorsque le besoin est réellement transversal aux canaux.
La map d'exports générée contient encore un petit ensemble de
surfaces helper de plugins intégrés telles que `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
La map dexportation générée contient encore un petit ensemble de surfaces helper
pour les plugins intégrés, comme `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` et `plugin-sdk/matrix*`. Ces
sous-chemins n'existent que pour la maintenance et la compatibilité des plugins intégrés ; ils sont
volontairement omis du tableau courant ci-dessous et ne constituent pas le
chemin d'import recommandé pour les nouveaux plugins tiers.
sous-chemins nexistent que pour la maintenance et la compatibilité des plugins intégrés ;
ils sont volontairement omis du tableau courant ci-dessous et ne constituent pas
le chemin dimportation recommandé pour les nouveaux plugins tiers.
## Référence des sous-chemins
Les sous-chemins les plus couramment utilisés, regroupés par objectif. La liste complète générée de
plus de 200 sous-chemins se trouve dans `scripts/lib/plugin-sdk-entrypoints.json`.
Les sous-chemins les plus couramment utilisés, regroupés par usage. La liste
complète générée de plus de 200 sous-chemins se trouve dans
`scripts/lib/plugin-sdk-entrypoints.json`.
Les sous-chemins helper réservés aux plugins intégrés apparaissent toujours dans cette liste générée.
Traitez-les comme des surfaces de détail d'implémentation/de compatibilité, sauf si une page de documentation
Les sous-chemins helper réservés aux plugins intégrés figurent toujours dans cette
liste générée. Traitez-les comme des surfaces de détail dimplémentation/de compatibilité, sauf si une page de documentation
en promeut explicitement une comme publique.
### Entrée de plugin
| Sous-chemin | Exports clés |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| Sous-chemin | Exportations clés |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
<AccordionGroup>
<Accordion title="Sous-chemins de channel">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins de canal">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Export du schéma Zod racine de `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Helpers partagés d'assistant de configuration, invites de liste d'autorisation, constructeurs d'état de configuration |
| `plugin-sdk/config-schema` | Exportation du schéma Zod racine `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, ainsi que `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Helpers partagés dassistant de configuration, invites dallowlist, constructeurs détat de configuration |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Helpers de configuration/action-gate multi-comptes, helpers de fallback de compte par défaut |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helpers de normalisation d'identifiant de compte |
| `plugin-sdk/account-resolution` | Recherche de compte + helpers de fallback par défaut |
| `plugin-sdk/account-core` | Helpers de config/mécanisme de contrôle daction multi-compte, helpers de repli pour compte par défaut |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helpers de normalisation didentifiant de compte |
| `plugin-sdk/account-resolution` | Helpers de recherche de compte + repli par défaut |
| `plugin-sdk/account-helpers` | Helpers étroits de liste de comptes/action sur compte |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Types de schéma de configuration de channel |
| `plugin-sdk/telegram-command-config` | Helpers de normalisation/validation de commandes personnalisées Telegram avec fallback de contrat intégré |
| `plugin-sdk/channel-config-schema` | Types de schéma de config de canal |
| `plugin-sdk/telegram-command-config` | Helpers de normalisation/validation de commandes personnalisées Telegram avec repli sur contrat intégré |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Helpers partagés de route entrante + construction d'enveloppe |
| `plugin-sdk/inbound-reply-dispatch` | Helpers partagés d'enregistrement et de répartition entrante |
| `plugin-sdk/messaging-targets` | Helpers d'analyse/correspondance des cibles |
| `plugin-sdk/outbound-media` | Helpers partagés de chargement des médias sortants |
| `plugin-sdk/outbound-runtime` | Helpers de délégué d'identité/envoi sortants |
| `plugin-sdk/thread-bindings-runtime` | Helpers de cycle de vie et d'adaptateur pour les liaisons de fil |
| `plugin-sdk/agent-media-payload` | Constructeur historique de charge utile média d'agent |
| `plugin-sdk/conversation-runtime` | Helpers de conversation/liaison de fil, appairage et liaison configurée |
| `plugin-sdk/runtime-config-snapshot` | Helper d'instantané de configuration d'exécution |
| `plugin-sdk/runtime-group-policy` | Helpers de résolution de politique de groupe à l'exécution |
| `plugin-sdk/channel-status` | Helpers partagés d'instantané/résumé d'état de channel |
| `plugin-sdk/channel-config-primitives` | Primitives étroites de schéma de configuration de channel |
| `plugin-sdk/channel-config-writes` | Helpers d'autorisation d'écriture de configuration de channel |
| `plugin-sdk/channel-plugin-common` | Exports de prélude partagés pour plugin de channel |
| `plugin-sdk/allowlist-config-edit` | Helpers de lecture/modification de configuration de liste d'autorisation |
| `plugin-sdk/group-access` | Helpers partagés de décision d'accès de groupe |
| `plugin-sdk/direct-dm` | Helpers partagés d'authentification/garde de DM direct |
| `plugin-sdk/interactive-runtime` | Helpers de normalisation/réduction de charges utiles de réponse interactive |
| `plugin-sdk/channel-inbound` | Helpers d'anti-rebond entrant, de correspondance de mentions, d'aide de politique de mention et d'enveloppe |
| `plugin-sdk/inbound-envelope` | Helpers partagés de route entrante + construction denveloppe |
| `plugin-sdk/inbound-reply-dispatch` | Helpers partagés denregistrement et de répartition entrante |
| `plugin-sdk/messaging-targets` | Helpers danalyse/de correspondance de cibles |
| `plugin-sdk/outbound-media` | Helpers partagés de chargement de médias sortants |
| `plugin-sdk/outbound-runtime` | Helpers de délégation denvoi/didentité sortante |
| `plugin-sdk/thread-bindings-runtime` | Helpers de cycle de vie et dadaptateur pour liaisons de fils |
| `plugin-sdk/agent-media-payload` | Constructeur historique de charge utile média dagent |
| `plugin-sdk/conversation-runtime` | Helpers de liaison conversation/fil, appairage et liaison configurée |
| `plugin-sdk/runtime-config-snapshot` | Helper dinstantané de config dexécution |
| `plugin-sdk/runtime-group-policy` | Helpers de résolution de politique de groupe à lexécution |
| `plugin-sdk/channel-status` | Helpers partagés dinstantané/résumé de statut de canal |
| `plugin-sdk/channel-config-primitives` | Primitives étroites de schéma de config de canal |
| `plugin-sdk/channel-config-writes` | Helpers dautorisation décriture de config de canal |
| `plugin-sdk/channel-plugin-common` | Exportations de prélude partagées pour plugin de canal |
| `plugin-sdk/allowlist-config-edit` | Helpers de lecture/modification de config dallowlist |
| `plugin-sdk/group-access` | Helpers partagés de décision daccès de groupe |
| `plugin-sdk/direct-dm` | Helpers partagés dauthentification/de garde pour messages directs |
| `plugin-sdk/interactive-runtime` | Helpers de normalisation/réduction de charge utile de réponse interactive |
| `plugin-sdk/channel-inbound` | Helpers danti-rebond entrant, de correspondance de mention, de politique de mention et denveloppe |
| `plugin-sdk/channel-send-result` | Types de résultat de réponse |
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
| `plugin-sdk/channel-targets` | Helpers d'analyse/correspondance des cibles |
| `plugin-sdk/channel-contract` | Types de contrat de channel |
| `plugin-sdk/channel-feedback` | Câblage des retours/réactions |
| `plugin-sdk/channel-secret-runtime` | Helpers étroits de contrat de secret tels que `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, et types de cible de secret |
| `plugin-sdk/channel-targets` | Helpers danalyse/de correspondance de cibles |
| `plugin-sdk/channel-contract` | Types de contrat de canal |
| `plugin-sdk/channel-feedback` | Câblage de feedback/réaction |
| `plugin-sdk/channel-secret-runtime` | Helpers étroits de contrat de secret comme `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, ainsi que les types de cible de secret |
</Accordion>
<Accordion title="Sous-chemins de provider">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins de fournisseur">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/provider-setup` | Helpers sélectionnés de configuration de provider local/autohébergé |
| `plugin-sdk/self-hosted-provider-setup` | Helpers ciblés de configuration de provider autohébergé compatible OpenAI |
| `plugin-sdk/provider-setup` | Helpers de configuration organisés pour fournisseurs locaux/autohébergés |
| `plugin-sdk/self-hosted-provider-setup` | Helpers ciblés de configuration de fournisseur autohébergé compatible OpenAI |
| `plugin-sdk/cli-backend` | Valeurs par défaut du backend CLI + constantes watchdog |
| `plugin-sdk/provider-auth-runtime` | Helpers d'exécution de résolution de clé API pour les plugins de provider |
| `plugin-sdk/provider-auth-api-key` | Helpers d'onboarding/écriture de profil de clé API tels que `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Constructeur standard de résultat d'authentification OAuth |
| `plugin-sdk/provider-auth-login` | Helpers interactifs partagés de connexion pour les plugins de provider |
| `plugin-sdk/provider-env-vars` | Helpers de recherche de variables d'environnement d'authentification provider |
| `plugin-sdk/provider-auth-runtime` | Helpers dexécution de résolution de clé API pour plugins de fournisseur |
| `plugin-sdk/provider-auth-api-key` | Helpers dintégration/écriture de profil de clé API comme `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Constructeur standard de résultat dauthentification OAuth |
| `plugin-sdk/provider-auth-login` | Helpers partagés de connexion interactive pour plugins de fournisseur |
| `plugin-sdk/provider-env-vars` | Helpers de recherche de variables denvironnement dauthentification de fournisseur |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, constructeurs partagés de politique de replay, helpers de point de terminaison provider et helpers de normalisation d'identifiant de modèle tels que `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, constructeurs partagés de politique de relecture, helpers de point de terminaison de fournisseur, et helpers de normalisation didentifiant de modèle tels que `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-http` | Helpers génériques de capacités HTTP/point de terminaison provider |
| `plugin-sdk/provider-web-fetch-contract` | Helpers étroits de contrat de configuration/sélection web-fetch tels que `enablePluginInConfig` et `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Helpers d'enregistrement/cache de provider web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Helpers étroits de configuration/identifiants web-search pour les providers qui n'ont pas besoin de câblage d'activation de plugin |
| `plugin-sdk/provider-web-search-contract` | Helpers étroits de contrat de configuration/identifiants web-search tels que `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, et setters/getters d'identifiants limités par portée |
| `plugin-sdk/provider-web-search` | Helpers d'enregistrement/cache/exécution de provider web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, nettoyage + diagnostics de schéma Gemini, et helpers de compatibilité xAI tels que `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-http` | Helpers génériques de capacité HTTP/point de terminaison de fournisseur |
| `plugin-sdk/provider-web-fetch-contract` | Helpers étroits de contrat de config/sélection web-fetch comme `enablePluginInConfig` et `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Helpers denregistrement/cache de fournisseur web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Helpers étroits de config/identifiants web-search pour les fournisseurs qui nont pas besoin du câblage dactivation du plugin |
| `plugin-sdk/provider-web-search-contract` | Helpers étroits de contrat de config/identifiants web-search comme `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, et les setters/getters didentifiants à portée limitée |
| `plugin-sdk/provider-web-search` | Helpers dexécution/cache/enregistrement de fournisseur web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, nettoyage de schéma Gemini + diagnostics, et helpers de compatibilité xAI comme `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` et similaires |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, types de wrapper de flux, et helpers partagés de wrapper Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Helpers de patch de configuration d'onboarding |
| `plugin-sdk/provider-onboard` | Helpers de correctif de config dintégration |
| `plugin-sdk/global-singleton` | Helpers de singleton/map/cache locaux au processus |
</Accordion>
<Accordion title="Sous-chemins d'authentification et de sécurité">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins dauthentification et de sécurité">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helpers de registre de commandes, helpers d'autorisation d'expéditeur |
| `plugin-sdk/command-status` | Constructeurs de messages de commande/d'aide tels que `buildCommandsMessagePaginated` et `buildHelpMessage` |
| `plugin-sdk/approval-auth-runtime` | Helpers de résolution d'approbateur et d'authentification d'action dans le même chat |
| `plugin-sdk/approval-client-runtime` | Helpers de profil/filtre d'approbation native d'exécution |
| `plugin-sdk/approval-delivery-runtime` | Adaptateurs de capacité/livraison d'approbation native |
| `plugin-sdk/approval-gateway-runtime` | Helper partagé de résolution de gateway d'approbation |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpers légers de chargement d'adaptateur d'approbation native pour les points d'entrée de channel à chaud |
| `plugin-sdk/approval-handler-runtime` | Helpers d'exécution plus larges du gestionnaire d'approbation ; préférez les surfaces adaptateur/gateway plus étroites lorsqu'elles suffisent |
| `plugin-sdk/approval-native-runtime` | Helpers de cible d'approbation native + liaison de compte |
| `plugin-sdk/approval-reply-runtime` | Helpers de charge utile de réponse d'approbation d'exécution/plugin |
| `plugin-sdk/command-auth-native` | Helpers d'authentification de commande native + helpers de cible de session native |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helpers de registre de commandes, helpers dautorisation dexpéditeur |
| `plugin-sdk/command-status` | Constructeurs de messages de commande/daide tels que `buildCommandsMessagePaginated` et `buildHelpMessage` |
| `plugin-sdk/approval-auth-runtime` | Helpers de résolution dapprobateur et dauthentification daction dans la même discussion |
| `plugin-sdk/approval-client-runtime` | Helpers de profil/filtre dapprobation dexécution native |
| `plugin-sdk/approval-delivery-runtime` | Adaptateurs natifs de capacité/livraison dapprobation |
| `plugin-sdk/approval-gateway-runtime` | Helper partagé de résolution de Gateway dapprobation |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpers légers de chargement dadaptateur dapprobation native pour les points dentrée de canal critiques |
| `plugin-sdk/approval-handler-runtime` | Helpers plus larges du runtime de gestionnaire dapprobation ; préférez les surfaces adaptateur/Gateway plus étroites lorsquelles suffisent |
| `plugin-sdk/approval-native-runtime` | Helpers natifs de cible dapprobation + liaison de compte |
| `plugin-sdk/approval-reply-runtime` | Helpers de charge utile de réponse dapprobation exec/plugin |
| `plugin-sdk/command-auth-native` | Helpers natifs dauthentification de commande + helpers natifs de cible de session |
| `plugin-sdk/command-detection` | Helpers partagés de détection de commande |
| `plugin-sdk/command-surface` | Normalisation du corps de commande et helpers de surface de commande |
| `plugin-sdk/command-surface` | Helpers de normalisation de corps de commande et de surface de commande |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Helpers étroits de collecte de contrat de secret pour les surfaces de secret de channel/plugin |
| `plugin-sdk/secret-ref-runtime` | Helpers étroits `coerceSecretRef` et de typage SecretRef pour l'analyse de contrat de secret/configuration |
| `plugin-sdk/security-runtime` | Helpers partagés de confiance, filtrage DM, contenu externe et collecte de secrets |
| `plugin-sdk/ssrf-policy` | Helpers de liste d'autorisation d'hôte et de politique SSRF réseau privé |
| `plugin-sdk/ssrf-runtime` | Helpers de dispatcher épinglé, fetch protégé par SSRF et politique SSRF |
| `plugin-sdk/secret-input` | Helpers d'analyse d'entrée secrète |
| `plugin-sdk/webhook-ingress` | Helpers de requête/cible webhook |
| `plugin-sdk/webhook-request-guards` | Helpers de taille de corps de requête/délai d'expiration |
| `plugin-sdk/channel-secret-runtime` | Helpers étroits de collecte de contrat de secret pour les surfaces de secret de canal/plugin |
| `plugin-sdk/secret-ref-runtime` | Helpers étroits `coerceSecretRef` et de typage SecretRef pour lanalyse de contrat de secret/config |
| `plugin-sdk/security-runtime` | Helpers partagés de confiance, contrôle DM, contenu externe et collecte de secrets |
| `plugin-sdk/ssrf-policy` | Helpers de politique SSRF dallowlist dhôtes et de réseau privé |
| `plugin-sdk/ssrf-runtime` | Helpers de répartiteur épinglé, fetch protégé par SSRF et politique SSRF |
| `plugin-sdk/secret-input` | Helpers danalyse dentrée de secret |
| `plugin-sdk/webhook-ingress` | Helpers de requête/cible Webhook |
| `plugin-sdk/webhook-request-guards` | Helpers de taille du corps de requête/délai dattente |
</Accordion>
<Accordion title="Sous-chemins d'exécution et de stockage">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins de runtime et de stockage">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/runtime` | Helpers larges d'exécution/journalisation/sauvegarde/installation de plugin |
| `plugin-sdk/runtime-env` | Helpers étroits d'environnement d'exécution, logger, délai d'expiration, retry et backoff |
| `plugin-sdk/channel-runtime-context` | Helpers génériques d'enregistrement et de recherche de contexte d'exécution de channel |
| `plugin-sdk/runtime` | Helpers larges de runtime/journalisation/sauvegarde/installation de plugin |
| `plugin-sdk/runtime-env` | Helpers étroits denvironnement de runtime, logger, délai dattente, retry et backoff |
| `plugin-sdk/channel-runtime-context` | Helpers génériques denregistrement et de recherche du contexte dexécution de canal |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Helpers partagés de commande/hook/http/interaction de plugin |
| `plugin-sdk/hook-runtime` | Helpers partagés de pipeline de webhook/hook interne |
| `plugin-sdk/lazy-runtime` | Helpers d'import/binding d'exécution paresseux tels que `createLazyRuntimeModule`, `createLazyRuntimeMethod` et `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpers d'exécution de processus |
| `plugin-sdk/cli-runtime` | Helpers CLI de formatage, d'attente et de version |
| `plugin-sdk/gateway-runtime` | Helpers de client gateway et de patch d'état de channel |
| `plugin-sdk/config-runtime` | Helpers de chargement/écriture de configuration |
| `plugin-sdk/telegram-command-config` | Normalisation du nom/de la description des commandes Telegram et vérifications de doublons/conflits, même lorsque la surface de contrat Telegram intégrée n'est pas disponible |
| `plugin-sdk/approval-runtime` | Helpers d'approbation d'exécution/plugin, constructeurs de capacité d'approbation, helpers d'authentification/profil, helpers de routage/exécution natifs |
| `plugin-sdk/reply-runtime` | Helpers partagés d'exécution entrante/réponse, fragmentation, répartition, heartbeat, planificateur de réponse |
| `plugin-sdk/hook-runtime` | Helpers partagés de pipeline de Webhook/hook interne |
| `plugin-sdk/lazy-runtime` | Helpers dimportation/de liaison de runtime paresseux tels que `createLazyRuntimeModule`, `createLazyRuntimeMethod` et `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpers dexécution de processus |
| `plugin-sdk/cli-runtime` | Helpers de formatage, dattente et de version pour CLI |
| `plugin-sdk/gateway-runtime` | Helpers de client Gateway et de correctif de statut de canal |
| `plugin-sdk/config-runtime` | Helpers de chargement/écriture de config |
| `plugin-sdk/telegram-command-config` | Normalisation du nom/de la description de commande Telegram et vérifications de doublon/conflit, même lorsque la surface de contrat Telegram intégrée nest pas disponible |
| `plugin-sdk/approval-runtime` | Helpers dapprobation exec/plugin, constructeurs de capacité dapprobation, helpers dauthentification/profil, helpers natifs de routage/runtime |
| `plugin-sdk/reply-runtime` | Helpers partagés du runtime entrant/de réponse, segmentation, répartition, Heartbeat, planificateur de réponse |
| `plugin-sdk/reply-dispatch-runtime` | Helpers étroits de répartition/finalisation de réponse |
| `plugin-sdk/reply-history` | Helpers partagés d'historique de réponse sur fenêtre courte tels que `buildHistoryContext`, `recordPendingHistoryEntry` et `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-history` | Helpers partagés dhistorique de réponse sur fenêtre courte tels que `buildHistoryContext`, `recordPendingHistoryEntry` et `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Helpers étroits de fragmentation texte/Markdown |
| `plugin-sdk/session-store-runtime` | Helpers de chemin de magasin de session + date de mise à jour |
| `plugin-sdk/state-paths` | Helpers de chemin de répertoire d'état/OAuth |
| `plugin-sdk/routing` | Helpers de route/clé de session/liaison de compte tels que `resolveAgentRoute`, `buildAgentSessionKey` et `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Helpers partagés de résumé d'état de channel/compte, valeurs par défaut d'état d'exécution et helpers de métadonnées de problème |
| `plugin-sdk/reply-chunking` | Helpers étroits de segmentation de texte/Markdown |
| `plugin-sdk/session-store-runtime` | Helpers de chemin du magasin de session + date de mise à jour |
| `plugin-sdk/state-paths` | Helpers de chemin de répertoire pour état/OAuth |
| `plugin-sdk/routing` | Helpers de routage/clé de session/liaison de compte tels que `resolveAgentRoute`, `buildAgentSessionKey` et `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Helpers partagés de résumé de statut de canal/compte, valeurs par défaut de létat dexécution et helpers de métadonnées de problème |
| `plugin-sdk/target-resolver-runtime` | Helpers partagés de résolution de cible |
| `plugin-sdk/string-normalization-runtime` | Helpers de normalisation de slug/chaîne |
| `plugin-sdk/request-url` | Extraire des URL chaîne depuis des entrées de type fetch/request |
| `plugin-sdk/request-url` | Extraire des URL de chaîne à partir dentrées de type fetch/request |
| `plugin-sdk/run-command` | Exécuteur de commande temporisé avec résultats stdout/stderr normalisés |
| `plugin-sdk/param-readers` | Lecteurs de paramètres communs d'outil/CLI |
| `plugin-sdk/tool-payload` | Extraire des charges utiles normalisées depuis des objets de résultat d'outil |
| `plugin-sdk/tool-send` | Extraire des champs cibles d'envoi canoniques depuis des arguments d'outil |
| `plugin-sdk/param-readers` | Lecteurs courants de paramètres doutil/CLI |
| `plugin-sdk/tool-payload` | Extraire des charges utiles normalisées à partir dobjets résultat doutil |
| `plugin-sdk/tool-send` | Extraire les champs de cible denvoi canoniques à partir des arguments doutil |
| `plugin-sdk/temp-path` | Helpers partagés de chemin de téléchargement temporaire |
| `plugin-sdk/logging-core` | Logger de sous-système et helpers de masquage |
| `plugin-sdk/markdown-table-runtime` | Helpers de mode tableau Markdown |
| `plugin-sdk/json-store` | Petits helpers de lecture/écriture d'état JSON |
| `plugin-sdk/logging-core` | Helpers de logger de sous-système et de masquage |
| `plugin-sdk/markdown-table-runtime` | Helpers de mode de tableau Markdown |
| `plugin-sdk/json-store` | Petits helpers de lecture/écriture détat JSON |
| `plugin-sdk/file-lock` | Helpers de verrouillage de fichier réentrant |
| `plugin-sdk/persistent-dedupe` | Helpers de cache de déduplication adossé au disque |
| `plugin-sdk/acp-runtime` | Helpers ACP d'exécution/session et de répartition de réponse |
| `plugin-sdk/agent-config-primitives` | Primitives étroites de schéma de configuration d'exécution d'agent |
| `plugin-sdk/boolean-param` | Lecteur permissif de paramètre booléen |
| `plugin-sdk/persistent-dedupe` | Helpers de cache de déduplication sauvegardé sur disque |
| `plugin-sdk/acp-runtime` | Helpers ACP de runtime/session et de répartition de réponse |
| `plugin-sdk/agent-config-primitives` | Primitives étroites de schéma de config du runtime dagent |
| `plugin-sdk/boolean-param` | Lecteur souple de paramètre booléen |
| `plugin-sdk/dangerous-name-runtime` | Helpers de résolution de correspondance de nom dangereux |
| `plugin-sdk/device-bootstrap` | Helpers d'initialisation d'appareil et de jeton d'appairage |
| `plugin-sdk/extension-shared` | Primitives helper partagées de channel passif, d'état et de proxy ambiant |
| `plugin-sdk/models-provider-runtime` | Helpers de réponse de commande `/models`/provider |
| `plugin-sdk/skill-commands-runtime` | Helpers de listage des commandes de Skills |
| `plugin-sdk/native-command-registry` | Helpers de registre/build/sérialisation de commandes natives |
| `plugin-sdk/agent-harness` | Surface expérimentale de plugin de confiance pour les harnais d'agent bas niveau : types de harnais, helpers de pilotage/abandon d'exécution active, helpers de pont d'outils OpenClaw et utilitaires de résultat de tentative |
| `plugin-sdk/provider-zai-endpoint` | Helpers de détection de point de terminaison Z.AI |
| `plugin-sdk/infra-runtime` | Helpers d'événement système/heartbeat |
| `plugin-sdk/device-bootstrap` | Helpers dinitialisation dappareil et de jeton dappairage |
| `plugin-sdk/extension-shared` | Primitives helper partagées pour canal passif, statut et proxy ambiant |
| `plugin-sdk/models-provider-runtime` | Helpers de réponse de fournisseur/commande `/models` |
| `plugin-sdk/skill-commands-runtime` | Helpers de liste de commandes Skills |
| `plugin-sdk/native-command-registry` | Helpers natifs de registre/construction/sérialisation de commande |
| `plugin-sdk/agent-harness` | Surface expérimentale de plugin approuvé pour des harnais dagent bas niveau : types de harnais, helpers de pilotage/abandon dexécution active, helpers de pont doutil OpenClaw et utilitaires de résultat de tentative |
| `plugin-sdk/provider-zai-endpoint` | Helpers de détection de point de terminaison Z.A.I |
| `plugin-sdk/infra-runtime` | Helpers dévénement système/Heartbeat |
| `plugin-sdk/collection-runtime` | Petits helpers de cache borné |
| `plugin-sdk/diagnostic-runtime` | Helpers d'indicateur et d'événement de diagnostic |
| `plugin-sdk/error-runtime` | Graphe d'erreurs, formatage, helpers partagés de classification d'erreurs, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Helpers de fetch encapsulé, proxy et recherche épinglée |
| `plugin-sdk/host-runtime` | Helpers de normalisation de nom d'hôte et d'hôte SCP |
| `plugin-sdk/retry-runtime` | Helpers de configuration et d'exécuteur de retry |
| `plugin-sdk/agent-runtime` | Helpers de répertoire/identité/espace de travail d'agent |
| `plugin-sdk/directory-runtime` | Requête/déduplication de répertoire adossée à la configuration |
| `plugin-sdk/diagnostic-runtime` | Helpers de drapeau et dévénement de diagnostic |
| `plugin-sdk/error-runtime` | Helpers de graphe derreur, formatage, classification derreur partagée, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Helpers de fetch enveloppé, proxy et recherche épinglée |
| `plugin-sdk/host-runtime` | Helpers de normalisation de nom dhôte et dhôte SCP |
| `plugin-sdk/retry-runtime` | Helpers de config de retry et dexécuteur de retry |
| `plugin-sdk/agent-runtime` | Helpers de répertoire/identité/espace de travail dagent |
| `plugin-sdk/directory-runtime` | Requête/déduplication de répertoire basée sur la config |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Sous-chemins de capacités et de tests">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins de capacité et de test">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/media-runtime` | Helpers partagés de récupération/transformation/stockage de médias plus constructeurs de charges utiles média |
| `plugin-sdk/media-generation-runtime` | Helpers partagés de fallback de génération de médias, sélection de candidats et messagerie de modèle manquant |
| `plugin-sdk/media-understanding` | Types de provider de compréhension des médias plus exports helper orientés provider pour image/audio |
| `plugin-sdk/text-runtime` | Helpers partagés de texte/Markdown/journalisation tels que suppression du texte visible par l'assistant, helpers de rendu/fragmentation/tableau Markdown, helpers de masquage, helpers de balises de directive et utilitaires de texte sûr |
| `plugin-sdk/text-chunking` | Helper de fragmentation de texte sortant |
| `plugin-sdk/speech` | Types de provider de parole plus helpers orientés provider de directive, registre et validation |
| `plugin-sdk/speech-core` | Helpers partagés de types de provider de parole, registre, directive et normalisation |
| `plugin-sdk/realtime-transcription` | Types de provider de transcription en temps réel et helpers de registre |
| `plugin-sdk/realtime-voice` | Types de provider de voix en temps réel et helpers de registre |
| `plugin-sdk/image-generation` | Types de provider de génération d'image |
| `plugin-sdk/image-generation-core` | Helpers partagés de types de génération d'image, fallback, authentification et registre |
| `plugin-sdk/music-generation` | Types de provider/requête/résultat de génération musicale |
| `plugin-sdk/music-generation-core` | Types partagés de génération musicale, helpers de fallback, recherche de provider et analyse de référence de modèle |
| `plugin-sdk/video-generation` | Types de provider/requête/résultat de génération vidéo |
| `plugin-sdk/video-generation-core` | Types partagés de génération vidéo, helpers de fallback, recherche de provider et analyse de référence de modèle |
| `plugin-sdk/webhook-targets` | Registre de cibles webhook et helpers d'installation de route |
| `plugin-sdk/webhook-path` | Helpers de normalisation de chemin webhook |
| `plugin-sdk/media-runtime` | Helpers partagés de récupération/transformation/stockage de médias ainsi que constructeurs de charge utile média |
| `plugin-sdk/media-generation-runtime` | Helpers partagés de basculement en cas déchec pour la génération de médias, sélection de candidats et messagerie de modèle manquant |
| `plugin-sdk/media-understanding` | Types de fournisseur de compréhension des médias ainsi quexportations helper orientées fournisseur pour image/audio |
| `plugin-sdk/text-runtime` | Helpers partagés de texte/Markdown/journalisation tels que suppression du texte visible par lassistant, helpers de rendu/segmentation/tableau Markdown, helpers de masquage, helpers de balise de directive et utilitaires de texte sûr |
| `plugin-sdk/text-chunking` | Helper de segmentation de texte sortant |
| `plugin-sdk/speech` | Types de fournisseur Speech ainsi quhelpers orientés fournisseur pour directives, registre et validation |
| `plugin-sdk/speech-core` | Helpers partagés de types, registre, directive et normalisation pour fournisseur Speech |
| `plugin-sdk/realtime-transcription` | Types de fournisseur de transcription en temps réel et helpers de registre |
| `plugin-sdk/realtime-voice` | Types de fournisseur de voix en temps réel et helpers de registre |
| `plugin-sdk/image-generation` | Types de fournisseur de génération dimage |
| `plugin-sdk/image-generation-core` | Helpers partagés de types, basculement en cas déchec, authentification et registre pour la génération dimage |
| `plugin-sdk/music-generation` | Types de fournisseur/de requête/de résultat pour la génération musicale |
| `plugin-sdk/music-generation-core` | Helpers partagés de types, basculement en cas déchec, recherche de fournisseur et analyse de référence de modèle pour la génération musicale |
| `plugin-sdk/video-generation` | Types de fournisseur/de requête/de résultat pour la génération vidéo |
| `plugin-sdk/video-generation-core` | Helpers partagés de types, basculement en cas déchec, recherche de fournisseur et analyse de référence de modèle pour la génération vidéo |
| `plugin-sdk/webhook-targets` | Helpers de registre de cible Webhook et dinstallation de route |
| `plugin-sdk/webhook-path` | Helpers de normalisation de chemin Webhook |
| `plugin-sdk/web-media` | Helpers partagés de chargement de médias distants/locaux |
| `plugin-sdk/zod` | `zod` réexporté pour les consommateurs du SDK de plugin |
| `plugin-sdk/zod` | `zod` réexporté pour les consommateurs du SDK Plugin |
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
</Accordion>
<Accordion title="Sous-chemins de mémoire">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins mémoire">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/memory-core` | Surface helper memory-core intégrée pour les helpers de gestionnaire/configuration/fichier/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Façade d'exécution d'indexation/recherche de mémoire |
| `plugin-sdk/memory-core-host-engine-foundation` | Exports du moteur de fondation de l'hôte mémoire |
| `plugin-sdk/memory-core-host-engine-embeddings` | Exports du moteur d'embeddings de l'hôte mémoire |
| `plugin-sdk/memory-core-host-engine-qmd` | Exports du moteur QMD de l'hôte mémoire |
| `plugin-sdk/memory-core-host-engine-storage` | Exports du moteur de stockage de l'hôte mémoire |
| `plugin-sdk/memory-core-host-multimodal` | Helpers multimodaux de l'hôte mémoire |
| `plugin-sdk/memory-core-host-query` | Helpers de requête de l'hôte mémoire |
| `plugin-sdk/memory-core-host-secret` | Helpers de secret de l'hôte mémoire |
| `plugin-sdk/memory-core-host-events` | Helpers de journal d'événements de l'hôte mémoire |
| `plugin-sdk/memory-core-host-status` | Helpers d'état de l'hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-cli` | Helpers d'exécution CLI de l'hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-core` | Helpers d'exécution cœur de l'hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-files` | Helpers de fichier/exécution de l'hôte mémoire |
| `plugin-sdk/memory-host-core` | Alias neutre vis-à-vis du fournisseur pour les helpers d'exécution cœur de l'hôte mémoire |
| `plugin-sdk/memory-host-events` | Alias neutre vis-à-vis du fournisseur pour les helpers de journal d'événements de l'hôte mémoire |
| `plugin-sdk/memory-host-files` | Alias neutre vis-à-vis du fournisseur pour les helpers de fichier/exécution de l'hôte mémoire |
| `plugin-sdk/memory-host-markdown` | Helpers partagés de Markdown géré pour les plugins proches de la mémoire |
| `plugin-sdk/memory-host-search` | Façade d'exécution de mémoire active pour l'accès au gestionnaire de recherche |
| `plugin-sdk/memory-host-status` | Alias neutre vis-à-vis du fournisseur pour les helpers d'état de l'hôte mémoire |
| `plugin-sdk/memory-lancedb` | Surface helper memory-lancedb intégrée |
| `plugin-sdk/memory-core` | Surface helper `memory-core` intégrée pour les helpers de gestionnaire/config/fichier/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Façade de runtime pour lindexation/la recherche mémoire |
| `plugin-sdk/memory-core-host-engine-foundation` | Exportations du moteur de fondation hôte mémoire |
| `plugin-sdk/memory-core-host-engine-embeddings` | Contrats dembedding hôte mémoire, accès au registre, fournisseur local et helpers génériques de lot/distant |
| `plugin-sdk/memory-core-host-engine-qmd` | Exportations du moteur QMD hôte mémoire |
| `plugin-sdk/memory-core-host-engine-storage` | Exportations du moteur de stockage hôte mémoire |
| `plugin-sdk/memory-core-host-multimodal` | Helpers multimodaux hôte mémoire |
| `plugin-sdk/memory-core-host-query` | Helpers de requête hôte mémoire |
| `plugin-sdk/memory-core-host-secret` | Helpers de secret hôte mémoire |
| `plugin-sdk/memory-core-host-events` | Helpers de journal dévénements hôte mémoire |
| `plugin-sdk/memory-core-host-status` | Helpers de statut hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-cli` | Helpers de runtime CLI hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-core` | Helpers de runtime central hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-files` | Helpers de fichier/runtime hôte mémoire |
| `plugin-sdk/memory-host-core` | Alias neutre vis-à-vis du fournisseur pour les helpers de runtime central hôte mémoire |
| `plugin-sdk/memory-host-events` | Alias neutre vis-à-vis du fournisseur pour les helpers de journal dévénements hôte mémoire |
| `plugin-sdk/memory-host-files` | Alias neutre vis-à-vis du fournisseur pour les helpers de fichier/runtime hôte mémoire |
| `plugin-sdk/memory-host-markdown` | Helpers partagés de Markdown géré pour les plugins adjacents à la mémoire |
| `plugin-sdk/memory-host-search` | Façade de runtime Active Memory pour laccès au gestionnaire de recherche |
| `plugin-sdk/memory-host-status` | Alias neutre vis-à-vis du fournisseur pour les helpers de statut hôte mémoire |
| `plugin-sdk/memory-lancedb` | Surface helper `memory-lancedb` intégrée |
</Accordion>
<Accordion title="Sous-chemins helper intégrés réservés">
| Famille | Sous-chemins actuels | Utilisation prévue |
| --- | --- | --- |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Helpers de prise en charge du plugin browser intégré (`browser-support` reste le baril de compatibilité) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Surface helper/d'exécution Matrix intégrée |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Surface helper/d'exécution LINE intégrée |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Helpers de support pour le plugin Browser intégré (`browser-support` reste le barrel de compatibilité) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Surface helper/runtime Matrix intégrée |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Surface helper/runtime LINE intégrée |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Surface helper IRC intégrée |
| Helpers spécifiques au channel | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Surfaces de compatibilité/helper de channel intégrées |
| Helpers spécifiques à auth/plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Surfaces helper de fonctionnalité/plugin intégrées ; `plugin-sdk/github-copilot-token` exporte actuellement `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` et `resolveCopilotApiToken` |
| Helpers spécifiques à un canal | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Surfaces de compatibilité/helper de canaux intégrés |
| Helpers spécifiques à lauthentification/au plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Surfaces helper de fonctionnalités/plugins intégrés ; `plugin-sdk/github-copilot-token` exporte actuellement `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` et `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
## API d'enregistrement
## API denregistrement
Le callback `register(api)` reçoit un objet `OpenClawPluginApi` avec ces
méthodes :
### Enregistrement de capacités
| Méthode | Ce qu'elle enregistre |
| ------------------------------------------------ | ------------------------------------- |
| `api.registerProvider(...)` | Inférence de texte (LLM) |
| `api.registerAgentHarness(...)` | Exécuteur d'agent bas niveau expérimental |
| `api.registerCliBackend(...)` | Backend CLI d'inférence locale |
| `api.registerChannel(...)` | Channel de messagerie |
| `api.registerSpeechProvider(...)` | Synthèse texte-vers-parole / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Transcription temps réel en streaming |
| `api.registerRealtimeVoiceProvider(...)` | Sessions vocales temps réel duplex |
| `api.registerMediaUnderstandingProvider(...)` | Analyse d'image/audio/vidéo |
| `api.registerImageGenerationProvider(...)` | Génération d'image |
| `api.registerMusicGenerationProvider(...)` | Génération musicale |
| `api.registerVideoGenerationProvider(...)` | Génération vidéo |
| `api.registerWebFetchProvider(...)` | Fournisseur de récupération / scraping web |
| `api.registerWebSearchProvider(...)` | Recherche web |
| Méthode | Ce quelle enregistre |
| ----------------------------------------------- | -------------------------------------- |
| `api.registerProvider(...)` | Inférence de texte (LLM) |
| `api.registerAgentHarness(...)` | Exécuteur dagent bas niveau expérimental |
| `api.registerCliBackend(...)` | Backend local dinférence CLI |
| `api.registerChannel(...)` | Canal de messagerie |
| `api.registerSpeechProvider(...)` | Synthèse texte-parole / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Transcription en temps réel en streaming |
| `api.registerRealtimeVoiceProvider(...)` | Sessions vocales duplex en temps réel |
| `api.registerMediaUnderstandingProvider(...)` | Analyse dimage/audio/vidéo |
| `api.registerImageGenerationProvider(...)` | Génération dimage |
| `api.registerMusicGenerationProvider(...)` | Génération musicale |
| `api.registerVideoGenerationProvider(...)` | Génération vidéo |
| `api.registerWebFetchProvider(...)` | Fournisseur de récupération / scraping web |
| `api.registerWebSearchProvider(...)` | Recherche web |
### Outils et commandes
| Méthode | Ce qu'elle enregistre |
| ------------------------------- | --------------------------------------------- |
| `api.registerTool(tool, opts?)` | Outil d'agent (obligatoire ou `{ optional: true }`) |
| `api.registerCommand(def)` | Commande personnalisée (contourne le LLM) |
| Méthode | Ce quelle enregistre |
| ----------------------------- | ------------------------------------------- |
| `api.registerTool(tool, opts?)` | Outil dagent (obligatoire ou `{ optional: true }`) |
| `api.registerCommand(def)` | Commande personnalisée (contourne le LLM) |
### Infrastructure
| Méthode | Ce qu'elle enregistre |
| ---------------------------------------------- | ------------------------------------ |
| `api.registerHook(events, handler, opts?)` | Hook d'événement |
| `api.registerHttpRoute(params)` | Point de terminaison HTTP de Gateway |
| `api.registerGatewayMethod(name, handler)` | Méthode RPC de Gateway |
| `api.registerCli(registrar, opts?)` | Sous-commande CLI |
| `api.registerService(service)` | Service d'arrière-plan |
| Méthode | Ce quelle enregistre |
| --------------------------------------------- | ------------------------------------- |
| `api.registerHook(events, handler, opts?)` | Hook dévénement |
| `api.registerHttpRoute(params)` | Point de terminaison HTTP Gateway |
| `api.registerGatewayMethod(name, handler)` | Méthode RPC Gateway |
| `api.registerCli(registrar, opts?)` | Sous-commande CLI |
| `api.registerService(service)` | Service en arrière-plan |
| `api.registerInteractiveHandler(registration)` | Gestionnaire interactif |
| `api.registerMemoryPromptSupplement(builder)` | Section additive d'invite proche de la mémoire |
| `api.registerMemoryCorpusSupplement(adapter)` | Corpus additif de recherche/lecture mémoire |
| `api.registerMemoryPromptSupplement(builder)` | Section additive de prompt adjacente à la mémoire |
| `api.registerMemoryCorpusSupplement(adapter)` | Corpus additif de recherche/lecture mémoire |
Les espaces de noms d'administration du cœur réservés (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) restent toujours `operator.admin`, même si un plugin essaie d'assigner une
portée de méthode gateway plus étroite. Préférez des préfixes spécifiques au plugin pour
Les espaces de noms dadministration du cœur réservés (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) restent toujours `operator.admin`, même si un plugin essaie dassigner une
portée de méthode Gateway plus étroite. Préférez des préfixes spécifiques au plugin pour
les méthodes appartenant au plugin.
### Métadonnées d'enregistrement CLI
### Métadonnées denregistrement CLI
`api.registerCli(registrar, opts?)` accepte deux types de métadonnées de niveau supérieur :
`api.registerCli(registrar, opts?)` accepte deux types de métadonnées de premier niveau :
- `commands` : racines de commandes explicites appartenant au registrar
- `descriptors` : descripteurs de commande à l'analyse utilisés pour l'aide de la CLI racine,
le routage et l'enregistrement paresseux de la CLI du plugin
- `commands` : racines de commande explicites appartenant au registrar
- `descriptors` : descripteurs de commande au moment de lanalyse utilisés pour laide de la CLI racine,
le routage et lenregistrement paresseux de la CLI du plugin
Si vous voulez qu'une commande de plugin reste chargée paresseusement dans le chemin CLI racine normal,
fournissez des `descriptors` qui couvrent chaque racine de commande de niveau supérieur exposée par ce
Si vous voulez quune commande de plugin reste chargée paresseusement dans le chemin CLI racine normal,
fournissez des `descriptors` qui couvrent chaque racine de commande de premier niveau exposée par ce
registrar.
```typescript
@ -373,7 +375,7 @@ api.registerCli(
descriptors: [
{
name: "matrix",
description: "Gérer les comptes Matrix, la vérification, les appareils et l'état du profil",
description: "Gérer les comptes Matrix, la vérification, les appareils et létat du profil",
hasSubcommands: true,
},
],
@ -381,134 +383,135 @@ api.registerCli(
);
```
Utilisez `commands` seul uniquement lorsque vous n'avez pas besoin d'un enregistrement CLI racine paresseux.
Ce chemin de compatibilité eager reste pris en charge, mais il n'installe pas de
placeholders soutenus par des descripteurs pour le chargement paresseux au moment de l'analyse.
Utilisez `commands` seul uniquement lorsque vous navez pas besoin dun enregistrement CLI racine paresseux.
Ce chemin de compatibilité eager reste pris en charge, mais il ninstalle pas
demplacements réservés adossés à des descripteurs pour le chargement paresseux au moment de lanalyse.
### Enregistrement de backend CLI
### Enregistrement du backend CLI
`api.registerCliBackend(...)` permet à un plugin de posséder la configuration par défaut d'un backend CLI
d'IA local tel que `codex-cli`.
`api.registerCliBackend(...)` permet à un plugin de posséder la config par défaut dun backend CLI
dIA local tel que `codex-cli`.
- Le `id` du backend devient le préfixe provider dans des références de modèle comme `codex-cli/gpt-5`.
- La `config` du backend utilise la même structure que `agents.defaults.cliBackends.<id>`.
- La configuration utilisateur garde la priorité. OpenClaw fusionne `agents.defaults.cliBackends.<id>` au-dessus de la
valeur par défaut du plugin avant d'exécuter la CLI.
- Utilisez `normalizeConfig` lorsqu'un backend a besoin de réécritures de compatibilité après fusion
(par exemple normaliser d'anciennes formes de drapeaux).
- L`id` du backend devient le préfixe de fournisseur dans des références de modèle comme `codex-cli/gpt-5`.
- La `config` du backend utilise la même forme que `agents.defaults.cliBackends.<id>`.
- La config utilisateur garde la priorité. OpenClaw fusionne `agents.defaults.cliBackends.<id>` sur la
valeur par défaut du plugin avant dexécuter la CLI.
- Utilisez `normalizeConfig` lorsquun backend a besoin de réécritures de compatibilité après fusion
(par exemple pour normaliser danciennes formes de drapeaux).
### Emplacements exclusifs
| Méthode | Ce qu'elle enregistre |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api.registerContextEngine(id, factory)` | Moteur de contexte (un seul actif à la fois). Le callback `assemble()` reçoit `availableTools` et `citationsMode` afin que le moteur puisse adapter les ajouts à l'invite. |
| `api.registerMemoryCapability(capability)` | Capacité mémoire unifiée |
| `api.registerMemoryPromptSection(builder)` | Constructeur de section d'invite mémoire |
| Méthode | Ce quelle enregistre |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api.registerContextEngine(id, factory)` | Moteur de contexte (un seul actif à la fois). Le callback `assemble()` reçoit `availableTools` et `citationsMode` afin que le moteur puisse adapter les ajouts au prompt. |
| `api.registerMemoryCapability(capability)` | Capacité mémoire unifiée |
| `api.registerMemoryPromptSection(builder)` | Constructeur de section de prompt mémoire |
| `api.registerMemoryFlushPlan(resolver)` | Résolveur de plan de vidage mémoire |
| `api.registerMemoryRuntime(runtime)` | Adaptateur d'exécution mémoire |
| `api.registerMemoryRuntime(runtime)` | Adaptateur de runtime mémoire |
### Adaptateurs d'embeddings mémoire
### Adaptateurs dembedding mémoire
| Méthode | Ce qu'elle enregistre |
| ---------------------------------------------- | --------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Adaptateur d'embeddings mémoire pour le plugin actif |
| Méthode | Ce quelle enregistre |
| --------------------------------------------- | -------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Adaptateur dembedding mémoire pour le plugin actif |
- `registerMemoryCapability` est l'API exclusive préférée pour les plugins mémoire.
- `registerMemoryCapability` est lAPI de plugin mémoire exclusive préférée.
- `registerMemoryCapability` peut aussi exposer `publicArtifacts.listArtifacts(...)`
afin que les plugins compagnons puissent consommer les artefacts mémoire exportés via
`openclaw/plugin-sdk/memory-host-core` au lieu d'accéder à la disposition privée d'un
afin que des plugins compagnons puissent consommer les artefacts mémoire exportés via
`openclaw/plugin-sdk/memory-host-core` au lieu datteindre la disposition privée dun
plugin mémoire spécifique.
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` et
`registerMemoryRuntime` sont des API exclusives de plugin mémoire compatibles avec l'historique.
- `registerMemoryEmbeddingProvider` permet au plugin mémoire actif d'enregistrer un
ou plusieurs identifiants d'adaptateur d'embeddings (par exemple `openai`, `gemini`, ou un identifiant défini par un plugin personnalisé).
- La configuration utilisateur telle que `agents.defaults.memorySearch.provider` et
`registerMemoryRuntime` sont des API exclusives de plugin mémoire compatibles avec les versions historiques.
- `registerMemoryEmbeddingProvider` permet au plugin mémoire actif denregistrer un
ou plusieurs identifiants dadaptateur dembedding (par exemple `openai`, `gemini` ou un identifiant
personnalisé défini par le plugin).
- La config utilisateur comme `agents.defaults.memorySearch.provider` et
`agents.defaults.memorySearch.fallback` se résout par rapport à ces identifiants
d'adaptateur enregistrés.
dadaptateur enregistrés.
### Événements et cycle de vie
| Méthode | Ce qu'elle fait |
| -------------------------------------------- | ------------------------------ |
| `api.on(hookName, handler, opts?)` | Hook de cycle de vie typé |
| Méthode | Ce quelle fait |
| ------------------------------------------- | ----------------------------- |
| `api.on(hookName, handler, opts?)` | Hook de cycle de vie typé |
| `api.onConversationBindingResolved(handler)` | Callback de liaison de conversation |
### Sémantique de décision des hooks
- `before_tool_call` : renvoyer `{ block: true }` est terminal. Dès qu'un gestionnaire le définit, les gestionnaires de priorité inférieure sont ignorés.
- `before_tool_call` : renvoyer `{ block: false }` est traité comme aucune décision (comme si `block` était omis), pas comme une surcharge.
- `before_install` : renvoyer `{ block: true }` est terminal. Dès qu'un gestionnaire le définit, les gestionnaires de priorité inférieure sont ignorés.
- `before_install` : renvoyer `{ block: false }` est traité comme aucune décision (comme si `block` était omis), pas comme une surcharge.
- `reply_dispatch` : renvoyer `{ handled: true, ... }` est terminal. Dès qu'un gestionnaire revendique la répartition, les gestionnaires de priorité inférieure et le chemin de répartition de modèle par défaut sont ignorés.
- `message_sending` : renvoyer `{ cancel: true }` est terminal. Dès qu'un gestionnaire le définit, les gestionnaires de priorité inférieure sont ignorés.
- `message_sending` : renvoyer `{ cancel: false }` est traité comme aucune décision (comme si `cancel` était omis), pas comme une surcharge.
- `before_tool_call` : retourner `{ block: true }` est terminal. Dès quun gestionnaire le définit, les gestionnaires de priorité inférieure sont ignorés.
- `before_tool_call` : retourner `{ block: false }` est traité comme aucune décision (comme si `block` était omis), et non comme une surcharge.
- `before_install` : retourner `{ block: true }` est terminal. Dès quun gestionnaire le définit, les gestionnaires de priorité inférieure sont ignorés.
- `before_install` : retourner `{ block: false }` est traité comme aucune décision (comme si `block` était omis), et non comme une surcharge.
- `reply_dispatch` : retourner `{ handled: true, ... }` est terminal. Dès quun gestionnaire revendique la répartition, les gestionnaires de priorité inférieure et le chemin par défaut de répartition du modèle sont ignorés.
- `message_sending` : retourner `{ cancel: true }` est terminal. Dès quun gestionnaire le définit, les gestionnaires de priorité inférieure sont ignorés.
- `message_sending` : retourner `{ cancel: false }` est traité comme aucune décision (comme si `cancel` était omis), et non comme une surcharge.
### Champs de l'objet API
### Champs de lobjet API
| Champ | Type | Description |
| ----------------------- | ------------------------- | ------------------------------------------------------------------------------------------ |
| `api.id` | `string` | Identifiant du plugin |
| `api.name` | `string` | Nom d'affichage |
| `api.version` | `string?` | Version du plugin (facultatif) |
| `api.description` | `string?` | Description du plugin (facultatif) |
| `api.source` | `string` | Chemin source du plugin |
| `api.rootDir` | `string?` | Répertoire racine du plugin (facultatif) |
| `api.config` | `OpenClawConfig` | Instantané de configuration actuel (instantané d'exécution actif en mémoire lorsqu'il est disponible) |
| `api.pluginConfig` | `Record<string, unknown>` | Configuration spécifique au plugin depuis `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Helpers d'exécution](/fr/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger limité par portée (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Mode de chargement actuel ; `"setup-runtime"` est la fenêtre légère de démarrage/configuration avant l'entrée complète |
| `api.resolvePath(input)` | `(string) => string` | Résoudre un chemin relatif à la racine du plugin |
| Champ | Type | Description |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | Identifiant du plugin |
| `api.name` | `string` | Nom daffichage |
| `api.version` | `string?` | Version du plugin (facultatif) |
| `api.description` | `string?` | Description du plugin (facultatif) |
| `api.source` | `string` | Chemin source du plugin |
| `api.rootDir` | `string?` | Répertoire racine du plugin (facultatif) |
| `api.config` | `OpenClawConfig` | Instantané de config actuel (instantané actif en mémoire à lexécution lorsquil est disponible) |
| `api.pluginConfig` | `Record<string, unknown>` | Config spécifique au plugin depuis `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Helpers de runtime](/fr/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger à portée limitée (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Mode de chargement actuel ; `"setup-runtime"` est la fenêtre légère de démarrage/configuration avant le chargement complet |
| `api.resolvePath(input)` | `(string) => string` | Résoudre un chemin relatif à la racine du plugin |
## Convention de module interne
Dans votre plugin, utilisez des fichiers barils locaux pour les imports internes :
Dans votre plugin, utilisez des fichiers barrel locaux pour les importations internes :
```
my-plugin/
api.ts # Exports publics pour les consommateurs externes
runtime-api.ts # Exports d'exécution internes uniquement
index.ts # Point d'entrée du plugin
setup-entry.ts # Entrée légère réservée à la configuration (facultative)
api.ts # Exportations publiques pour les consommateurs externes
runtime-api.ts # Exportations de runtime réservées à linterne
index.ts # Point dentrée du plugin
setup-entry.ts # Entrée légère réservée à la configuration (facultatif)
```
<Warning>
N'importez jamais votre propre plugin via `openclaw/plugin-sdk/<your-plugin>`
depuis le code de production. Faites passer les imports internes via `./api.ts` ou
`./runtime-api.ts`. Le chemin SDK est uniquement le contrat externe.
Nimportez jamais votre propre plugin via `openclaw/plugin-sdk/<your-plugin>`
depuis le code de production. Faites passer les importations internes par `./api.ts` ou
`./runtime-api.ts`. Le chemin du SDK est uniquement le contrat externe.
</Warning>
Les surfaces publiques de plugin intégré chargées via façade (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` et autres fichiers d'entrée publics similaires) préfèrent désormais l'instantané
de configuration d'exécution actif lorsque OpenClaw est déjà en cours d'exécution. Si aucun instantané d'exécution
n'existe encore, elles se replient sur le fichier de configuration résolu sur le disque.
Les surfaces publiques des plugins intégrés chargées via façade (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` et fichiers dentrée publics similaires) préfèrent désormais
linstantané actif de config dexécution lorsque OpenClaw est déjà en cours dexécution. Si aucun instantané
dexécution nexiste encore, elles reviennent au fichier de config résolu sur le disque.
Les plugins de provider peuvent aussi exposer un baril de contrat local au plugin et étroit lorsqu'un
helper est intentionnellement spécifique au provider et n'a pas encore sa place dans un
sous-chemin SDK générique. Exemple intégré actuel : le provider Anthropic conserve ses helpers de flux Claude
dans sa propre surface publique `api.ts` / `contract-api.ts` au lieu de promouvoir la logique
d'en-tête bêta Anthropic et `service_tier` dans un contrat générique
`plugin-sdk/*`.
Les plugins de fournisseur peuvent aussi exposer un barrel de contrat local au plugin et étroit lorsquun
helper est intentionnellement spécifique à un fournisseur et na pas encore sa place dans un sous-chemin SDK
générique. Exemple intégré actuel : le fournisseur Anthropic conserve ses helpers de flux Claude
dans sa propre surface publique `api.ts` / `contract-api.ts` au lieu de
promouvoir la logique den-tête bêta Anthropic et `service_tier` dans un contrat
générique `plugin-sdk/*`.
Autres exemples intégrés actuels :
- `@openclaw/openai-provider` : `api.ts` exporte des constructeurs de provider,
des helpers de modèle par défaut et des constructeurs de provider temps réel
- `@openclaw/openrouter-provider` : `api.ts` exporte le constructeur de provider ainsi que
des helpers d'onboarding/configuration
- `@openclaw/openai-provider` : `api.ts` exporte des constructeurs de fournisseur,
des helpers de modèle par défaut et des constructeurs de fournisseur temps réel
- `@openclaw/openrouter-provider` : `api.ts` exporte le constructeur de fournisseur ainsi que
des helpers dintégration/de config
<Warning>
Le code de production d'extension doit aussi éviter les imports `openclaw/plugin-sdk/<other-plugin>`.
Le code de production des extensions doit également éviter les importations `openclaw/plugin-sdk/<other-plugin>`.
Si un helper est réellement partagé, promouvez-le vers un sous-chemin SDK neutre
tel que `openclaw/plugin-sdk/speech`, `.../provider-model-shared`, ou une autre
surface orientée capacité au lieu de coupler deux plugins ensemble.
tel que `openclaw/plugin-sdk/speech`, `.../provider-model-shared` ou une autre
surface orientée capacité au lieu de coupler deux plugins entre eux.
</Warning>
## Voir aussi
## Liens connexes
- [Points d'entrée](/fr/plugins/sdk-entrypoints) — options `definePluginEntry` et `defineChannelPluginEntry`
- [Helpers d'exécution](/fr/plugins/sdk-runtime) — référence complète de l'espace de noms `api.runtime`
- [Configuration et config](/fr/plugins/sdk-setup) — packaging, manifestes, schémas de configuration
- [Points dentrée](/fr/plugins/sdk-entrypoints) — options de `definePluginEntry` et `defineChannelPluginEntry`
- [Helpers de runtime](/fr/plugins/sdk-runtime) — référence complète de lespace de noms `api.runtime`
- [Configuration et config](/fr/plugins/sdk-setup) — empaquetage, manifestes, schémas de config
- [Tests](/fr/plugins/sdk-testing) — utilitaires de test et règles de lint
- [Migration du SDK](/fr/plugins/sdk-migration) — migration depuis les surfaces obsolètes
- [Internes des plugins](/fr/plugins/architecture) — architecture approfondie et modèle de capacité
- [Migration du SDK](/fr/plugins/sdk-migration) — migration depuis des surfaces obsolètes
- [Internes des plugins](/fr/plugins/architecture) — architecture détaillée et modèle de capacités

View File

@ -1,13 +1,13 @@
---
read_when:
- Ajuster l'analyse ou les valeurs par défaut des directives de réflexion, du mode rapide ou du mode verbeux
summary: Syntaxe des directives pour `/think`, `/fast`, `/verbose`, `/trace` et la visibilité du raisonnement
- Ajustement de lanalyse des directives ou des valeurs par défaut pour le niveau de réflexion, le mode rapide ou le mode verbeux
summary: Syntaxe des directives pour /think, /fast, /verbose, /trace et la visibilité du raisonnement
title: Niveaux de réflexion
x-i18n:
generated_at: "2026-04-12T23:33:32Z"
generated_at: "2026-04-17T06:57:28Z"
model: gpt-5.4
provider: openai
source_hash: 4f3b1341281f07ba4e9061e3355845dca234be04cc0d358594312beeb7676e68
source_hash: 1cb44a7bf75546e5a8c3204e12f3297221449b881161d173dea4983da3921649
source_path: tools/thinking.md
workflow: 15
---
@ -16,103 +16,106 @@ x-i18n:
## Ce que cela fait
- Directive inline dans tout corps entrant : `/t <level>`, `/think:<level>`, ou `/thinking <level>`.
- Directive en ligne dans tout corps de message entrant : `/t <level>`, `/think:<level>` ou `/thinking <level>`.
- Niveaux (alias) : `off | minimal | low | medium | high | xhigh | adaptive`
- minimal → « réfléchir »
- low → « réfléchir sérieusement »
- medium → « réfléchir davantage »
- high → « ultrathink » (budget maximal)
- xhigh → « ultrathink+ » (modèles GPT-5.2 + Codex uniquement)
- adaptive → budget de raisonnement adaptatif géré par le fournisseur (pris en charge pour la famille de modèles Anthropic Claude 4.6)
- `x-high`, `x_high`, `extra-high`, `extra high`, et `extra_high` sont mappés vers `xhigh`.
- `highest`, `max` sont mappés vers `high`.
- Notes sur les fournisseurs :
- Les modèles Anthropic Claude 4.6 utilisent `adaptive` par défaut lorsqu'aucun niveau de réflexion explicite n'est défini.
- MiniMax (`minimax/*`) sur le chemin de streaming compatible Anthropic utilise par défaut `thinking: { type: "disabled" }` sauf si vous définissez explicitement thinking dans les paramètres du modèle ou de la requête. Cela évite les deltas `reasoning_content` divulgués par le format de flux Anthropic non natif de MiniMax.
- Z.AI (`zai/*`) ne prend en charge qu'un thinking binaire (`on`/`off`). Tout niveau autre que `off` est traité comme `on` (mappé vers `low`).
- Moonshot (`moonshot/*`) mappe `/think off` vers `thinking: { type: "disabled" }` et tout niveau autre que `off` vers `thinking: { type: "enabled" }`. Lorsque thinking est activé, Moonshot n'accepte que `tool_choice` `auto|none` ; OpenClaw normalise les valeurs incompatibles vers `auto`.
- xhigh → « ultrathink+ » (GPT-5.2 + modèles Codex et effort Anthropic Claude Opus 4.7)
- adaptive → réflexion adaptative gérée par le fournisseur (prise en charge pour Anthropic Claude 4.6 et Opus 4.7)
- `x-high`, `x_high`, `extra-high`, `extra high` et `extra_high` correspondent à `xhigh`.
- `highest`, `max` correspondent à `high`.
- Remarques sur les fournisseurs :
- Les modèles Anthropic Claude 4.6 utilisent `adaptive` par défaut lorsquaucun niveau de réflexion explicite nest défini.
- Anthropic Claude Opus 4.7 nutilise pas la réflexion adaptative par défaut. Sa valeur deffort par défaut de lAPI reste gérée par le fournisseur, sauf si vous définissez explicitement un niveau de réflexion.
- Anthropic Claude Opus 4.7 mappe `/think xhigh` vers une réflexion adaptative plus `output_config.effort: "xhigh"`, car `/think` est une directive de réflexion et `xhigh` est le paramètre deffort dOpus 4.7.
- MiniMax (`minimax/*`) sur le chemin de streaming compatible Anthropic utilise par défaut `thinking: { type: "disabled" }`, sauf si vous définissez explicitement la réflexion dans les paramètres du modèle ou de la requête. Cela évite les deltas `reasoning_content` divulgués par le format de flux Anthropic non natif de MiniMax.
- Z.AI (`zai/*`) prend uniquement en charge une réflexion binaire (`on`/`off`). Tout niveau autre que `off` est traité comme `on` (mappé vers `low`).
- Moonshot (`moonshot/*`) mappe `/think off` vers `thinking: { type: "disabled" }` et tout niveau autre que `off` vers `thinking: { type: "enabled" }`. Lorsque la réflexion est activée, Moonshot naccepte que `tool_choice` `auto|none` ; OpenClaw normalise les valeurs incompatibles en `auto`.
## Ordre de résolution
1. Directive inline sur le message (s'applique uniquement à ce message).
2. Remplacement de session (défini en envoyant un message contenant uniquement une directive).
3. Valeur par défaut par agent (`agents.list[].thinkingDefault` dans la configuration).
4. Valeur par défaut globale (`agents.defaults.thinkingDefault` dans la configuration).
5. Repli : `adaptive` pour les modèles Anthropic Claude 4.6, `low` pour les autres modèles compatibles avec le raisonnement, `off` sinon.
1. Directive en ligne sur le message (sapplique uniquement à ce message).
2. Surcharge de session (définie en envoyant un message contenant uniquement une directive).
3. Valeur par défaut par agent (`agents.list[].thinkingDefault` dans la config).
4. Valeur par défaut globale (`agents.defaults.thinkingDefault` dans la config).
5. Repli : `adaptive` pour les modèles Anthropic Claude 4.6, `off` pour Anthropic Claude Opus 4.7 sauf configuration explicite, `low` pour les autres modèles prenant en charge la réflexion, `off` sinon.
## Définir une valeur par défaut de session
- Envoyez un message qui contient **uniquement** la directive (espaces autorisés), par exemple `/think:medium` ou `/t high`.
- Cela reste appliqué à la session actuelle (par expéditeur par défaut) ; effacé par `/think:off` ou une réinitialisation après inactivité de session.
- Une réponse de confirmation est envoyée (`Thinking level set to high.` / `Thinking disabled.`). Si le niveau est invalide (par exemple `/thinking big`), la commande est rejetée avec une indication et l'état de la session reste inchangé.
- Cela reste actif pour la session en cours (par expéditeur par défaut) ; effacé par `/think:off` ou par la réinitialisation après inactivité de la session.
- Une réponse de confirmation est envoyée (`Thinking level set to high.` / `Thinking disabled.`). Si le niveau est invalide (par exemple `/thinking big`), la commande est rejetée avec une indication et létat de la session reste inchangé.
- Envoyez `/think` (ou `/think:`) sans argument pour voir le niveau de réflexion actuel.
## Application par agent
- **Pi embarqué** : le niveau résolu est transmis au runtime d'agent Pi en processus.
- **Pi intégré** : le niveau résolu est transmis au runtime de lagent Pi en cours de processus.
## Mode rapide (/fast)
- Niveaux : `on|off`.
- Un message contenant uniquement la directive active/désactive un remplacement de session du mode rapide et répond `Fast mode enabled.` / `Fast mode disabled.`.
- Envoyez `/fast` (ou `/fast status`) sans mode pour voir l'état effectif actuel du mode rapide.
- Un message contenant uniquement une directive active ou désactive une surcharge de session du mode rapide et répond `Fast mode enabled.` / `Fast mode disabled.`.
- Envoyez `/fast` (ou `/fast status`) sans mode pour voir létat effectif actuel du mode rapide.
- OpenClaw résout le mode rapide dans cet ordre :
1. `/fast on|off` inline/contenant uniquement la directive
2. Remplacement de session
1. `/fast on|off` en ligne / sous forme de directive seule
2. Surcharge de session
3. Valeur par défaut par agent (`agents.list[].fastModeDefault`)
4. Configuration par modèle : `agents.defaults.models["<provider>/<model>"].params.fastMode`
4. Config par modèle : `agents.defaults.models["<provider>/<model>"].params.fastMode`
5. Repli : `off`
- Pour `openai/*`, le mode rapide correspond au traitement prioritaire OpenAI en envoyant `service_tier=priority` sur les requêtes Responses prises en charge.
- Pour `openai-codex/*`, le mode rapide envoie le même indicateur `service_tier=priority` sur Codex Responses. OpenClaw conserve un seul basculement `/fast` partagé entre les deux chemins d'authentification.
- Pour les requêtes directes publiques `anthropic/*`, y compris le trafic authentifié par OAuth envoyé à `api.anthropic.com`, le mode rapide correspond aux niveaux de service Anthropic : `/fast on` définit `service_tier=auto`, `/fast off` définit `service_tier=standard_only`.
- Pour `openai-codex/*`, le mode rapide envoie le même indicateur `service_tier=priority` sur les réponses Codex. OpenClaw conserve un seul basculement `/fast` partagé entre les deux chemins dauthentification.
- Pour les requêtes directes publiques `anthropic/*`, y compris le trafic authentifié par OAuth envoyé vers `api.anthropic.com`, le mode rapide correspond aux niveaux de service Anthropic : `/fast on` définit `service_tier=auto`, `/fast off` définit `service_tier=standard_only`.
- Pour `minimax/*` sur le chemin compatible Anthropic, `/fast on` (ou `params.fastMode: true`) réécrit `MiniMax-M2.7` en `MiniMax-M2.7-highspeed`.
- Les paramètres explicites de modèle Anthropic `serviceTier` / `service_tier` remplacent la valeur par défaut du mode rapide lorsque les deux sont définis. OpenClaw continue à ignorer l'injection du niveau de service Anthropic pour les URL de base proxy non Anthropic.
- Les paramètres explicites du modèle Anthropic `serviceTier` / `service_tier` remplacent la valeur par défaut du mode rapide lorsque les deux sont définis. OpenClaw continue toutefois à ignorer linjection du niveau de service Anthropic pour les URL de base proxy non Anthropic.
## Directives verbeuses (/verbose ou /v)
- Niveaux : `on` (minimal) | `full` | `off` (par défaut).
- Un message contenant uniquement la directive active le mode verbeux de session et répond `Verbose logging enabled.` / `Verbose logging disabled.` ; les niveaux invalides renvoient une indication sans modifier l'état.
- `/verbose off` stocke un remplacement explicite de session ; effacez-le via l'interface Sessions en choisissant `inherit`.
- La directive inline n'affecte que ce message ; les valeurs par défaut de session/globales s'appliquent sinon.
- Envoyez `/verbose` (ou `/verbose:`) sans argument pour voir le niveau verbeux actuel.
- Lorsque le mode verbeux est activé, les agents qui émettent des résultats d'outils structurés (Pi, autres agents JSON) renvoient chaque appel d'outil dans son propre message contenant uniquement des métadonnées, préfixé par `<emoji> <tool-name>: <arg>` lorsque disponible (chemin/commande). Ces résumés d'outils sont envoyés dès le démarrage de chaque outil (bulles séparées), et non comme deltas de streaming.
- Les résumés d'échec d'outil restent visibles en mode normal, mais les suffixes détaillés d'erreur brute sont masqués sauf si verbose vaut `on` ou `full`.
- Lorsque verbose vaut `full`, les sorties d'outils sont également transmises après leur achèvement (bulle séparée, tronquée à une longueur sûre). Si vous basculez `/verbose on|full|off` pendant qu'une exécution est en cours, les bulles d'outils suivantes respectent le nouveau réglage.
- Un message contenant uniquement une directive active la verbosité de session et répond `Verbose logging enabled.` / `Verbose logging disabled.` ; les niveaux invalides renvoient une indication sans modifier létat.
- `/verbose off` enregistre une surcharge explicite de session ; effacez-la via linterface Sessions en choisissant `inherit`.
- La directive en ligne naffecte que ce message ; sinon, les valeurs par défaut de session/globales sappliquent.
- Envoyez `/verbose` (ou `/verbose:`) sans argument pour voir le niveau de verbosité actuel.
- Lorsque le mode verbeux est activé, les agents qui émettent des résultats doutils structurés (Pi, autres agents JSON) renvoient chaque appel doutil comme son propre message de métadonnées uniquement, préfixé par `<emoji> <tool-name>: <arg>` lorsque disponible (chemin/commande). Ces résumés doutils sont envoyés dès le démarrage de chaque outil (bulles séparées), et non comme deltas de streaming.
- Les résumés déchec des outils restent visibles en mode normal, mais les suffixes détaillant les erreurs brutes sont masqués sauf si verbose vaut `on` ou `full`.
- Lorsque verbose vaut `full`, les sorties des outils sont également transmises après leur fin (bulle séparée, tronquée à une longueur sûre). Si vous basculez `/verbose on|full|off` pendant quune exécution est en cours, les bulles doutils suivantes respecteront le nouveau paramètre.
## Directives de trace du Plugin (/trace)
## Directives de trace de Plugin (/trace)
- Niveaux : `on` | `off` (par défaut).
- Un message contenant uniquement la directive active la sortie de trace du Plugin pour la session et répond `Plugin trace enabled.` / `Plugin trace disabled.`.
- La directive inline n'affecte que ce message ; les valeurs par défaut de session/globales s'appliquent sinon.
- Un message contenant uniquement une directive active la sortie de trace des plugins pour la session et répond `Plugin trace enabled.` / `Plugin trace disabled.`.
- La directive en ligne naffecte que ce message ; sinon, les valeurs par défaut de session/globales sappliquent.
- Envoyez `/trace` (ou `/trace:`) sans argument pour voir le niveau de trace actuel.
- `/trace` est plus étroit que `/verbose` : il n'expose que les lignes de trace/de débogage appartenant au Plugin, comme les résumés de débogage Active Memory.
- Les lignes de trace peuvent apparaître dans `/status` et comme message de diagnostic de suivi après la réponse normale de l'assistant.
- `/trace` est plus ciblé que `/verbose` : il nexpose que les lignes de trace/debug appartenant aux plugins, comme les résumés de débogage Active Memory.
- Les lignes de trace peuvent apparaître dans `/status` et sous forme de message de diagnostic de suivi après la réponse normale de lassistant.
## Visibilité du raisonnement (/reasoning)
- Niveaux : `on|off|stream`.
- Un message contenant uniquement la directive active/désactive l'affichage des blocs de réflexion dans les réponses.
- Lorsqu'il est activé, le raisonnement est envoyé comme **message séparé** préfixé par `Reasoning:`.
- `stream` (Telegram uniquement) : diffuse le raisonnement dans la bulle de brouillon Telegram pendant la génération de la réponse, puis envoie la réponse finale sans le raisonnement.
- Un message contenant uniquement une directive active ou désactive laffichage des blocs de réflexion dans les réponses.
- Lorsquelle est activée, la réflexion est envoyée comme **message séparé** préfixé par `Reasoning:`.
- `stream` (Telegram uniquement) : diffuse la réflexion dans la bulle de brouillon Telegram pendant la génération de la réponse, puis envoie la réponse finale sans la réflexion.
- Alias : `/reason`.
- Envoyez `/reasoning` (ou `/reasoning:`) sans argument pour voir le niveau de raisonnement actuel.
- Ordre de résolution : directive inline, puis remplacement de session, puis valeur par défaut par agent (`agents.list[].reasoningDefault`), puis repli (`off`).
- Envoyez `/reasoning` (ou `/reasoning:`) sans argument pour voir le niveau actuel de raisonnement.
- Ordre de résolution : directive en ligne, puis surcharge de session, puis valeur par défaut par agent (`agents.list[].reasoningDefault`), puis repli (`off`).
## Voir aussi
## Lié
- La documentation du mode élevé se trouve dans [Elevated mode](/fr/tools/elevated).
- La documentation du mode élevé se trouve dans [Mode élevé](/fr/tools/elevated).
## Heartbeats
- Le corps de la sonde Heartbeat est l'invite Heartbeat configurée (par défaut : `Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`). Les directives inline dans un message Heartbeat s'appliquent comme d'habitude (mais évitez de modifier les valeurs par défaut de session à partir des Heartbeats).
- L'envoi Heartbeat transmet par défaut uniquement la charge utile finale. Pour envoyer aussi le message séparé `Reasoning:` (lorsqu'il est disponible), définissez `agents.defaults.heartbeat.includeReasoning: true` ou, par agent, `agents.list[].heartbeat.includeReasoning: true`.
- Le corps de la sonde Heartbeat est le prompt Heartbeat configuré (par défaut : `Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`). Les directives en ligne dans un message Heartbeat sappliquent normalement (mais évitez de modifier les valeurs par défaut de session à partir des Heartbeats).
- La livraison Heartbeat envoie par défaut uniquement la charge utile finale. Pour envoyer aussi le message séparé `Reasoning:` (lorsquil est disponible), définissez `agents.defaults.heartbeat.includeReasoning: true` ou, par agent, `agents.list[].heartbeat.includeReasoning: true`.
## Interface de chat web
- Le sélecteur de réflexion du chat web reflète le niveau stocké de la session depuis le magasin de sessions/configuration entrante au chargement de la page.
- Choisir un autre niveau écrit immédiatement le remplacement de session via `sessions.patch` ; il n'attend pas l'envoi suivant et ce n'est pas un remplacement ponctuel `thinkingOnce`.
- La première option est toujours `Default (<resolved level>)`, où la valeur par défaut résolue provient du modèle actif de la session : `adaptive` pour Claude 4.6 sur Anthropic/Bedrock, `low` pour les autres modèles compatibles avec le raisonnement, `off` sinon.
- Le sélecteur reste conscient du fournisseur :
- Le sélecteur de réflexion du chat web reflète le niveau stocké de la session à partir du magasin de session entrant/de la config au chargement de la page.
- Choisir un autre niveau écrit immédiatement la surcharge de session via `sessions.patch` ; cela nattend pas le prochain envoi et ce nest pas une surcharge ponctuelle `thinkingOnce`.
- La première option est toujours `Default (<resolved level>)`, où la valeur par défaut résolue provient du modèle actif de la session : `adaptive` pour Claude 4.6 sur Anthropic, `off` pour Anthropic Claude Opus 4.7 sauf configuration, `low` pour les autres modèles prenant en charge la réflexion, `off` sinon.
- Le sélecteur reste adapté au fournisseur :
- la plupart des fournisseurs affichent `off | minimal | low | medium | high | adaptive`
- Anthropic Claude Opus 4.7 affiche `off | minimal | low | medium | high | xhigh | adaptive`
- Z.AI affiche le binaire `off | on`
- `/think:<level>` fonctionne toujours et met à jour le même niveau de session stocké, de sorte que les directives de chat et le sélecteur restent synchronisés.
- `/think:<level>` fonctionne toujours et met à jour le même niveau de session stocké, afin que les directives du chat et le sélecteur restent synchronisés.