chore(i18n): refresh fr translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-08 06:57:41 +00:00
parent 99bc4a49a7
commit 1bf37284fe
6 changed files with 1258 additions and 1259 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
---
read_when:
- Vous souhaitez que la promotion de la mémoire sexécute automatiquement
- Vous souhaitez que la promotion de la mémoire s'exécute automatiquement
- Vous souhaitez comprendre le rôle de chaque phase de dreaming
- Vous souhaitez ajuster la consolidation sans polluer `MEMORY.md`
summary: Consolidation de la mémoire en arrière-plan avec des phases légères, profondes et REM, ainsi quun journal des rêves
summary: Consolidation de la mémoire en arrière-plan avec des phases légères, profondes et REM, plus un Journal des rêves
title: Dreaming (expérimental)
x-i18n:
generated_at: "2026-04-06T06:56:53Z"
generated_at: "2026-04-08T06:51:00Z"
model: gpt-5.4
provider: openai
source_hash: 36c4b1e70801d662090dc8ce20608c2f141c23cd7ce53c54e3dcf332c801fd4e
source_hash: 0254f3b0949158264e583c12f36f2b1a83d1b44dc4da01a1b272422d38e8655d
source_path: concepts/dreaming.md
workflow: 15
---
@ -17,94 +17,101 @@ x-i18n:
# Dreaming (expérimental)
Dreaming est le système de consolidation de la mémoire en arrière-plan dans `memory-core`.
Il aide OpenClaw à déplacer des signaux forts de la mémoire à court terme vers une mémoire durable, tout en
Il aide OpenClaw à déplacer des signaux forts à court terme vers une mémoire durable tout en
gardant le processus explicable et vérifiable.
Dreaming est **optionnel** et désactivé par défaut.
## Ce que dreaming écrit
## Ce que Dreaming écrit
Dreaming conserve deux types de sortie :
- **État machine** dans `memory/.dreams/` (magasin de rappel, signaux de phase, points de contrôle dingestion, verrous).
- **État machine** dans `memory/.dreams/` (magasin de rappel, signaux de phase, points de contrôle d'ingestion, verrous).
- **Sortie lisible par les humains** dans `DREAMS.md` (ou `dreams.md` existant) et fichiers de rapport de phase facultatifs sous `memory/dreaming/<phase>/YYYY-MM-DD.md`.
La promotion à long terme continue décrire uniquement dans `MEMORY.md`.
La promotion à long terme continue d'écrire uniquement dans `MEMORY.md`.
## Modèle de phase
Dreaming utilise trois phases coopératives :
| Phase | Objectif | Écriture durable |
| ----- | -------- | ---------------- |
| Légère | Trier et préparer le matériel récent à court terme | Non |
| Profonde | Évaluer et promouvoir les candidats durables | Oui (`MEMORY.md`) |
| REM | Réfléchir aux thèmes et idées récurrentes | Non |
| Phase | Objectif | Écriture durable |
| ----- | ----------------------------------------- | ----------------- |
| Légère | Trier et préparer le contenu récent à court terme | Non |
| Profonde | Évaluer et promouvoir les candidats durables | Oui (`MEMORY.md`) |
| REM | Réfléchir aux thèmes et aux idées récurrentes | Non |
Ces phases sont des détails dimplémentation internes, et non des « modes »
séparés configurés par lutilisateur.
Ces phases sont des détails d'implémentation internes, et non des « modes »
distincts configurés par l'utilisateur.
### Phase légère
La phase légère ingère les signaux récents de mémoire quotidienne et les traces de rappel, les déduplique,
et prépare des lignes candidates.
- Lit létat de rappel à court terme et les fichiers récents de mémoire quotidienne.
- Écrit un bloc géré `## Light Sleep` lorsque le stockage inclut une sortie intégrée.
- Lit l'état de rappel à court terme, les fichiers récents de mémoire quotidienne et les transcriptions de session expurgées lorsqu'elles sont disponibles.
- Écrit un bloc géré `## Light Sleep` lorsque le stockage inclut une sortie inline.
- Enregistre des signaux de renforcement pour le classement profond ultérieur.
- Nécrit jamais dans `MEMORY.md`.
- N'écrit jamais dans `MEMORY.md`.
### Phase profonde
La phase profonde décide de ce qui devient une mémoire à long terme.
- Classe les candidats à laide dun score pondéré et de seuils de validation.
- Exige le passage de `minScore`, `minRecallCount` et `minUniqueQueries`.
- Réhydrate les extraits à partir des fichiers quotidiens actifs avant lécriture, afin dignorer les extraits obsolètes/supprimés.
- Classe les candidats à l'aide d'un score pondéré et de seuils de filtrage.
- Exige que `minScore`, `minRecallCount` et `minUniqueQueries` soient atteints.
- Réhydrate des extraits à partir de fichiers quotidiens actifs avant l'écriture, afin d'ignorer les extraits obsolètes ou supprimés.
- Ajoute les entrées promues à `MEMORY.md`.
- Écrit un résumé `## Deep Sleep` dans `DREAMS.md` et peut aussi écrire `memory/dreaming/deep/YYYY-MM-DD.md`.
- Écrit un résumé `## Deep Sleep` dans `DREAMS.md` et écrit éventuellement `memory/dreaming/deep/YYYY-MM-DD.md`.
### Phase REM
La phase REM extrait des motifs et des signaux réflexifs.
- Construit des résumés de thèmes et de réflexions à partir des traces récentes à court terme.
- Écrit un bloc géré `## REM Sleep` lorsque le stockage inclut une sortie intégrée.
- Construit des résumés de thèmes et de réflexions à partir de traces récentes à court terme.
- Écrit un bloc géré `## REM Sleep` lorsque le stockage inclut une sortie inline.
- Enregistre des signaux de renforcement REM utilisés par le classement profond.
- Nécrit jamais dans `MEMORY.md`.
- N'écrit jamais dans `MEMORY.md`.
## Ingestion des transcriptions de session
Dreaming peut ingérer des transcriptions de session expurgées dans le corpus de dreaming. Lorsque
des transcriptions sont disponibles, elles sont intégrées à la phase légère en même temps que les signaux de mémoire
quotidienne et les traces de rappel. Le contenu personnel et sensible est expurgé
avant l'ingestion.
## Journal des rêves
Dreaming conserve également un **journal des rêves** narratif dans `DREAMS.md`.
Après que chaque phase a accumulé suffisamment de matière, `memory-core` exécute en arrière-plan,
dans la mesure du possible, un tour de sous-agent (en utilisant le modèle dexécution par défaut) et ajoute une courte entrée de journal.
Dreaming conserve également un **Journal des rêves** narratif dans `DREAMS.md`.
Après que chaque phase dispose de suffisamment de contenu, `memory-core` exécute un tour de sous-agent
en arrière-plan en mode best-effort (en utilisant le modèle d'exécution par défaut) et ajoute une courte entrée de journal.
Ce journal est destiné à la lecture humaine dans linterface Dreams, et non à servir de source de promotion.
Ce journal est destiné à la lecture humaine dans l'interface Dreams, pas à servir de source de promotion.
## Signaux de classement profond
Le classement profond utilise six signaux de base pondérés, plus le renforcement de phase :
Le classement profond utilise six signaux de base pondérés, plus le renforcement des phases :
| Signal | Poids | Description |
| Signal | Poids | Description |
| ------------------- | ------ | ------------------------------------------------- |
| Fréquence | 0.24 | Nombre de signaux à court terme accumulés par lentrée |
| Pertinence | 0.30 | Qualité moyenne de récupération pour lentrée |
| Diversité des requêtes | 0.15 | Contextes distincts de requête/jour qui lont fait émerger |
| Récence | 0.15 | Score de fraîcheur avec décroissance temporelle |
| Consolidation | 0.10 | Force de récurrence sur plusieurs jours |
| Richesse conceptuelle | 0.06 | Densité des tags de concept à partir de lextrait/chemin |
| Fréquence | 0.24 | Nombre de signaux à court terme accumulés par l'entrée |
| Pertinence | 0.30 | Qualité moyenne de récupération pour l'entrée |
| Diversité des requêtes | 0.15 | Contextes distincts requête/jour qui l'ont fait remonter |
| Récence | 0.15 | Score de fraîcheur décroissant dans le temps |
| Consolidation | 0.10 | Force de récurrence sur plusieurs jours |
| Richesse conceptuelle | 0.06 | Densité de tags conceptuels à partir de l'extrait/chemin |
Les occurrences dans les phases légère et REM ajoutent un faible bonus à décroissance temporelle depuis
Les occurrences des phases légère et REM ajoutent un petit boost décroissant avec la récence depuis
`memory/.dreams/phase-signals.json`.
## Planification
Lorsquil est activé, `memory-core` gère automatiquement une tâche cron pour un balayage
complet de dreaming. Chaque balayage exécute les phases dans lordre : légère -> REM -> profonde.
Lorsqu'il est activé, `memory-core` gère automatiquement une tâche cron pour un balayage complet
de dreaming. Chaque balayage exécute les phases dans l'ordre : légère -> REM -> profonde.
Comportement de cadence par défaut :
| Paramètre | Par défaut |
| Paramètre | Par défaut |
| -------------------- | ----------- |
| `dreaming.frequency` | `0 3 * * *` |
@ -159,7 +166,7 @@ Activer dreaming avec une cadence de balayage personnalisée :
## Workflow CLI
Utilisez la promotion CLI pour un aperçu ou une application manuelle :
Utilisez la promotion CLI pour prévisualiser ou appliquer manuellement :
```bash
openclaw memory promote
@ -190,28 +197,28 @@ openclaw memory rem-harness --json
Tous les paramètres se trouvent sous `plugins.entries.memory-core.config.dreaming`.
| Clé | Par défaut |
| Clé | Par défaut |
| ----------- | ----------- |
| `enabled` | `false` |
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
La politique de phase, les seuils et le comportement de stockage sont des détails dimplémentation
internes (pas une configuration destinée aux utilisateurs).
La politique des phases, les seuils et le comportement de stockage sont des détails
d'implémentation internes (pas une configuration destinée à l'utilisateur).
Consultez [Référence de configuration de la mémoire](/fr/reference/memory-config#dreaming-experimental)
Consultez la [référence de configuration de la mémoire](/fr/reference/memory-config#dreaming-experimental)
pour la liste complète des clés.
## Interface Dreams
Lorsquelle est activée, longlet **Dreams** de la Gateway affiche :
Lorsqu'il est activé, l'onglet **Dreams** de la Gateway affiche :
- létat actuel dactivation de dreaming
- le statut au niveau des phases et la présence dun balayage géré
- les nombres à court terme, à long terme et promus aujourdhui
- le moment de la prochaine exécution planifiée
- un lecteur extensible du journal des rêves reposant sur `doctor.memory.dreamDiary`
- l'état d'activation actuel de dreaming
- le statut au niveau des phases et la présence d'un balayage géré
- les nombres à court terme, à long terme et promus aujourd'hui
- l'heure de la prochaine exécution planifiée
- un lecteur extensible du Journal des rêves reposant sur `doctor.memory.dreamDiary`
## Lié
## Liens connexes
- [Mémoire](/fr/concepts/memory)
- [Recherche dans la mémoire](/fr/concepts/memory-search)

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +1,33 @@
---
read_when:
- Vous avez besoin de savoir depuis quel sous-chemin du SDK importer
- Vous voulez une référence de toutes les méthodes denregistrement sur OpenClawPluginApi
- 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 une exportation spécifique du SDK
sidebarTitle: SDK Overview
summary: Map des imports, référence de lAPI denregistrement et architecture du SDK
title: Vue densemble du SDK des plugins
summary: Carte des imports, référence de l'API d'enregistrement et architecture du SDK
title: Vue d'ensemble du Plugin SDK
x-i18n:
generated_at: "2026-04-08T02:17:53Z"
generated_at: "2026-04-08T06:52:19Z"
model: gpt-5.4
provider: openai
source_hash: c5a41bd82d165dfbb7fbd6e4528cf322e9133a51efe55fa8518a7a0a626d9d30
source_hash: a9141dc0303c91974fe693ce48ad9f7dc4179418ae262a96011ad565aae87d21
source_path: plugins/sdk-overview.md
workflow: 15
---
# Vue densemble du SDK des plugins
# Vue d'ensemble du Plugin SDK
Le SDK des plugins est le contrat typé entre les plugins et le cœur. Cette page
Le SDK de 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 [Premiers pas](/fr/plugins/building-plugins)
- Plugin de canal ? Consultez [Plugins de canal](/fr/plugins/sdk-channel-plugins)
- Plugin de fournisseur ? Consultez [Plugins de fournisseur](/fr/plugins/sdk-provider-plugins)
- Premier plugin ? Commencez par [Getting Started](/fr/plugins/building-plugins)
- Plugin de canal ? Voir [Channel Plugins](/fr/plugins/sdk-channel-plugins)
- Plugin de fournisseur ? Voir [Provider Plugins](/fr/plugins/sdk-provider-plugins)
</Tip>
## Convention dimport
## Convention d'import
Importez toujours depuis un sous-chemin spécifique :
@ -36,39 +36,37 @@ 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 dentrée/de build spécifiques aux canaux,
préférez `openclaw/plugin-sdk/channel-core` ; gardez `openclaw/plugin-sdk/core` pour
la surface densemble plus large et les helpers partagés tels que
Chaque sous-chemin est un module petit et autonome. Cela permet un démarrage
rapide et évite les problèmes de dépendances circulaires. Pour les helpers
d'entrée/de build spécifiques aux canaux, préférez `openclaw/plugin-sdk/channel-core` ; gardez `openclaw/plugin-sdk/core` pour
la surface ombrelle plus large et les helpers partagés comme
`buildChannelConfigSchema`.
Najoutez pas et ne dépendez pas de points dentrée de commodité nommés daprès des fournisseurs tels que
N'ajoutez pas et ne dépendez pas de points d'entrée de commodité nommés d'après des fournisseurs tels que
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, ni de
points dentrée de helpers marqués canal. Les plugins inclus doivent composer des sous-chemins
génériques du SDK 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 et ciblé
lorsque le besoin est réellement transversal aux canaux.
points d'entrée helpers à marque de canal. Les plugins fournis 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 inter-canal.
La map dexports générée contient toujours un petit ensemble de points dentrée de helpers de plugins inclus
La carte d'export générée contient toujours un petit ensemble de points d'entrée helpers de plugins fournis
tels que `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` et `plugin-sdk/matrix*`. Ces
sous-chemins existent uniquement pour la maintenance et la compatibilité des plugins inclus ; ils sont
volontairement omis du tableau commun ci-dessous et ne constituent pas le
chemin dimport recommandé pour les nouveaux plugins tiers.
sous-chemins existent uniquement pour la maintenance et la compatibilité des plugins fournis ; ils
sont volontairement omis du tableau commun ci-dessous et ne constituent pas le chemin d'import recommandé pour les nouveaux plugins tiers.
## Référence des sous-chemins
Les sous-chemins les plus couramment utilisés, regroupés par usage. La liste complète générée de
Les sous-chemins les plus couramment utilisés, regroupés par usage. La liste complète générée des
plus de 200 sous-chemins se trouve dans `scripts/lib/plugin-sdk-entrypoints.json`.
Les sous-chemins réservés de helpers de plugins inclus apparaissent toujours dans cette liste générée.
Considérez-les comme des surfaces de détail dimplémentation/de compatibilité sauf si une page de documentation
les présente explicitement comme publiques.
Les sous-chemins helpers réservés aux plugins fournis apparaissent toujours dans cette liste générée.
Considérez-les comme des surfaces de détail d'implémentation/de compatibilité sauf si une page de documentation
en promeut explicitement un comme public.
### Entrée de plugin
| Sous-chemin | Exports clés |
| Sous-chemin | Exportations clés |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
@ -77,245 +75,245 @@ les présente explicitement comme publiques.
<AccordionGroup>
<Accordion title="Sous-chemins de canal">
| Sous-chemin | Exports clés |
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Export 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` | Helpers partagés d'assistant de configuration, invites de liste d'autorisation, 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 multi-comptes / garde de portes daction, helpers de repli sur le compte par défaut |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helpers de normalisation dID de compte |
| `plugin-sdk/account-core` | Helpers de config multi-comptes/contrôle d'action, helpers de repli sur le compte par défaut |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helpers de normalisation d'identifiant de compte |
| `plugin-sdk/account-resolution` | Helpers de recherche de compte + repli par défaut |
| `plugin-sdk/account-helpers` | Helpers ciblés de liste dactions / dactions de compte |
| `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 canal |
| `plugin-sdk/telegram-command-config` | Helpers de normalisation/validation des commandes personnalisées Telegram avec repli de contrat inclus |
| `plugin-sdk/channel-config-schema` | Types du schéma de config de canal |
| `plugin-sdk/telegram-command-config` | Helpers de normalisation/validation des commandes personnalisées Telegram avec repli de contrat fourni |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Helpers partagés de routage entrant + construction denveloppe |
| `plugin-sdk/inbound-reply-dispatch` | Helpers partagés denregistrement et de distribution entrante |
| `plugin-sdk/messaging-targets` | Helpers danalyse/correspondance de cible |
| `plugin-sdk/inbound-envelope` | Helpers partagés de route entrante + construction d'enveloppe |
| `plugin-sdk/inbound-reply-dispatch` | Helpers partagés d'enregistrement et d'envoi entrants |
| `plugin-sdk/messaging-targets` | Helpers d'analyse/correspondance des cibles |
| `plugin-sdk/outbound-media` | Helpers partagés de chargement de médias sortants |
| `plugin-sdk/outbound-runtime` | Helpers didentité sortante / délégation denvoi |
| `plugin-sdk/thread-bindings-runtime` | Helpers dadaptateur et de cycle de vie des liaisons de fils |
| `plugin-sdk/agent-media-payload` | Constructeur hérité de charge utile média dagent |
| `plugin-sdk/conversation-runtime` | Helpers de conversation/liaison de fil, dappairage et de liaisons configurées |
| `plugin-sdk/runtime-config-snapshot` | Helper dinstantané de configuration 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é détat de canal |
| `plugin-sdk/channel-config-primitives` | Primitives ciblées de schéma de configuration de canal |
| `plugin-sdk/channel-config-writes` | Helpers dautorisation décriture de configuration de canal |
| `plugin-sdk/channel-plugin-common` | Exports de prélude de plugin de canal partagés |
| `plugin-sdk/allowlist-config-edit` | Helpers de lecture/édition de configuration dallowlist |
| `plugin-sdk/group-access` | Helpers partagés de décision daccès de groupe |
| `plugin-sdk/direct-dm` | Helpers partagés dauthentification/garde de MP directs |
| `plugin-sdk/interactive-runtime` | Helpers de normalisation/réduction de charge utile de réponse interactive |
| `plugin-sdk/channel-inbound` | Helpers de debounce entrant, de correspondance de mention, de politique de mention et denveloppe |
| `plugin-sdk/outbound-runtime` | Helpers de délégation d'identité/d'envoi sortants |
| `plugin-sdk/thread-bindings-runtime` | Helpers de cycle de vie et d'adaptation des liaisons de fil |
| `plugin-sdk/agent-media-payload` | Constructeur hérité de payload 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 config 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é de statut de canal |
| `plugin-sdk/channel-config-primitives` | Primitifs étroits de schéma de config de canal |
| `plugin-sdk/channel-config-writes` | Helpers d'autorisation d'écriture de config de canal |
| `plugin-sdk/channel-plugin-common` | Exportations de prélude partagées pour plugins de canal |
| `plugin-sdk/allowlist-config-edit` | Helpers de lecture/édition de config de liste d'autorisation |
| `plugin-sdk/group-access` | Helpers partagés de décision d'accès aux groupes |
| `plugin-sdk/direct-dm` | Helpers partagés d'authentification/de garde des messages privés directs |
| `plugin-sdk/interactive-runtime` | Helpers de normalisation/réduction de payload de réponse interactive |
| `plugin-sdk/channel-inbound` | Helpers de temporisation des entrants, correspondance de mention, politique de mention et d'enveloppe |
| `plugin-sdk/channel-send-result` | Types de résultat de réponse |
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
| `plugin-sdk/channel-targets` | Helpers danalyse/correspondance de cible |
| `plugin-sdk/channel-targets` | Helpers d'analyse/correspondance des 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 ciblés de contrat de secrets tels que `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, ainsi que types de cibles de secrets |
| `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 |
</Accordion>
<Accordion title="Sous-chemins de fournisseur">
| Sous-chemin | Exports clés |
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/provider-setup` | Helpers soignés de configuration de fournisseurs locaux / auto-hébergés |
| `plugin-sdk/self-hosted-provider-setup` | Helpers ciblés de configuration de fournisseurs auto-hébergés compatibles OpenAI |
| `plugin-sdk/cli-backend` | Valeurs par défaut du backend CLI + constantes watchdog |
| `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 donboarding / décriture de profil de clé API tels que `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Constructeur standard de résultat dauthentification OAuth |
| `plugin-sdk/provider-setup` | Helpers de configuration sélectionné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 de watchdog |
| `plugin-sdk/provider-auth-runtime` | Helpers d'exécution de résolution de clé API pour plugins de fournisseur |
| `plugin-sdk/provider-auth-api-key` | Helpers d'intégration/é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 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-env-vars` | Helpers de recherche de variables d'environnement d'authentification fournisseur |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, constructeurs partagés de politique de rejeu, helpers de point de terminaison de fournisseur et helpers de normalisation dID 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 fournisseur, et helpers de normalisation d'identifiant 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é HTTP / point de terminaison de fournisseur |
| `plugin-sdk/provider-web-fetch-contract` | Helpers ciblés de contrat de configuration / sélection web-fetch tels que `enablePluginInConfig` et `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Helpers denregistrement / cache de fournisseur web-fetch |
| `plugin-sdk/provider-web-search-contract` | Helpers ciblés de contrat de configuration / identifiants web-search tels que `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` et setters/getters didentifiants limités |
| `plugin-sdk/provider-web-search` | Helpers dexécution / enregistrement / cache de fournisseur 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és HTTP/point de terminaison de fournisseur |
| `plugin-sdk/provider-web-fetch-contract` | Helpers étroits de contrat de config/sélection web-fetch tels que `enablePluginInConfig` et `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Helpers d'enregistrement/cache de fournisseur web-fetch |
| `plugin-sdk/provider-web-search-contract` | Helpers étroits de contrat de config/d'identifiants web-search tels que `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, et setters/getters d'identifiants à portée limitée |
| `plugin-sdk/provider-web-search` | Helpers d'enregistrement/cache/exécution de fournisseur web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, nettoyage du schéma Gemini + diagnostics, et helpers de compatibilité xAI tels que `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` et similaires |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, types de wrappers de flux et helpers partagés de wrappers Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Helpers de patch de configuration donboarding |
| `plugin-sdk/global-singleton` | Helpers de singleton / map / cache locaux au processus |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, types de wrappers de flux, et helpers de wrappers partagés Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Helpers de patch de config d'intégration |
| `plugin-sdk/global-singleton` | Helpers de singleton/map/cache locaux au processus |
</Accordion>
<Accordion title="Sous-chemins dauthentification et de sécurité">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins d'authentification et de sécurité">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helpers de registre de commandes, helpers dautorisation dexpéditeur |
| `plugin-sdk/approval-auth-runtime` | Helpers de résolution dapprobateur et dauthentification daction dans le même chat |
| `plugin-sdk/approval-client-runtime` | Helpers natifs de profil / filtre dapprobation exec |
| `plugin-sdk/approval-delivery-runtime` | Adaptateurs natifs de capacité / livraison dapprobation |
| `plugin-sdk/approval-gateway-runtime` | Helper partagé de résolution de passerelle dapprobation |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpers légers de chargement dadaptateur dapprobation native pour points dentrée de canal à chaud |
| `plugin-sdk/approval-handler-runtime` | Helpers dexécution plus larges du gestionnaire dapprobation ; préférez les points dentrée plus ciblés adaptateur/passerelle lorsquils 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 pour approbations exec/plugin |
| `plugin-sdk/command-auth-native` | Helpers dauthentification native de commande + cible de session native |
| `plugin-sdk/command-detection` | Helpers partagés de détection de commande |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helpers de registre de commandes, helpers d'autorisation de l'expéditeur |
| `plugin-sdk/approval-auth-runtime` | Résolution d'approbateur et helpers d'authentification d'action dans la même discussion |
| `plugin-sdk/approval-client-runtime` | Helpers de profil/filtre d'approbation d'exécution native |
| `plugin-sdk/approval-delivery-runtime` | Adaptateurs de capacité/livraison d'approbation native |
| `plugin-sdk/approval-gateway-runtime` | Helper partagé de résolution de passerelle d'approbation |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpers légers de chargement d'adaptateur d'approbation native pour points d'entrée de canaux à chaud |
| `plugin-sdk/approval-handler-runtime` | Helpers d'exécution plus larges pour gestionnaire d'approbation ; préférez les points d'entrée adaptateur/passerelle plus étroits lorsqu'ils suffisent |
| `plugin-sdk/approval-native-runtime` | Helpers de cible d'approbation native + liaison de compte |
| `plugin-sdk/approval-reply-runtime` | Helpers de payload de réponse d'approbation exec/plugin |
| `plugin-sdk/command-auth-native` | Authentification de commande native + helpers natifs de cible de session |
| `plugin-sdk/command-detection` | Helpers partagés de détection de commandes |
| `plugin-sdk/command-surface` | Helpers de normalisation du corps de commande et de surface de commande |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Helpers ciblés de collecte de contrat de secrets pour surfaces de secrets canal/plugin |
| `plugin-sdk/secret-ref-runtime` | Helpers ciblés `coerceSecretRef` et de typage SecretRef pour lanalyse de contrat/config de secrets |
| `plugin-sdk/security-runtime` | Helpers partagés de confiance, de contrôle daccès MP, de contenu externe et de collecte de secrets |
| `plugin-sdk/ssrf-policy` | Helpers de politique SSRF pour allowlist dhôtes et réseau privé |
| `plugin-sdk/ssrf-runtime` | Helpers de fetch protégé SSRF, de dispatcher épinglé et de politique SSRF |
| `plugin-sdk/secret-input` | Helpers danalyse dentrée de secret |
| `plugin-sdk/webhook-ingress` | Helpers de requête / cible de webhook |
| `plugin-sdk/webhook-request-guards` | Helpers de taille de corps / délai dattente de requête |
| `plugin-sdk/channel-secret-runtime` | Helpers étroits de collecte de contrat de secret pour surfaces de secret de canal/plugin |
| `plugin-sdk/secret-ref-runtime` | Helpers étroits `coerceSecretRef` et de typage SecretRef pour l'analyse de contrat de secret/config |
| `plugin-sdk/security-runtime` | Helpers partagés de confiance, filtrage des messages privés, contenu externe et collecte de secrets |
| `plugin-sdk/ssrf-policy` | Helpers de liste d'autorisation d'hôtes et de politique SSRF de réseau privé |
| `plugin-sdk/ssrf-runtime` | Helpers de répartiteur épinglé, fetch protégé contre SSRF et politique SSRF |
| `plugin-sdk/secret-input` | Helpers d'analyse des entrées secrètes |
| `plugin-sdk/webhook-ingress` | Helpers de requête/cible webhook |
| `plugin-sdk/webhook-request-guards` | Helpers de taille de corps/délai d'attente de requête |
</Accordion>
<Accordion title="Sous-chemins dexécution et de stockage">
| Sous-chemin | Exports clés |
<Accordion title="Sous-chemins d'exécution et de stockage">
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/runtime` | Helpers larges dexécution / journalisation / sauvegarde / installation de plugin |
| `plugin-sdk/runtime-env` | Helpers ciblés denvironnement dexécution, logger, délai, nouvelle tentative et backoff |
| `plugin-sdk/channel-runtime-context` | Helpers génériques denregistrement et de recherche de contexte dexécution de canal |
| `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'attente, retry et backoff |
| `plugin-sdk/channel-runtime-context` | Helpers génériques d'enregistrement et de recherche de contexte d'exé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 hook webhook/interne |
| `plugin-sdk/lazy-runtime` | Helpers de liaison/import paresseux dexécution tels que `createLazyRuntimeModule`, `createLazyRuntimeMethod` et `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpers dexécution de processus |
| `plugin-sdk/cli-runtime` | Helpers CLI de formatage, dattente et de version |
| `plugin-sdk/gateway-runtime` | Helpers de client passerelle et de patch détat de canal |
| `plugin-sdk/config-runtime` | Helpers de chargement / écriture de configuration |
| `plugin-sdk/telegram-command-config` | Normalisation du nom/de la description de commande Telegram et vérifications de doublons/conflits, même lorsque la surface de contrat Telegram incluse nest pas disponible |
| `plugin-sdk/approval-runtime` | Helpers dapprobation exec/plugin, constructeurs de capacité dapprobation, helpers dauthentification / profil, helpers natifs de routage / exécution |
| `plugin-sdk/reply-runtime` | Helpers partagés dexécution de réponse/entrée, découpage, distribution, heartbeat, planificateur de réponse |
| `plugin-sdk/reply-dispatch-runtime` | Helpers ciblés de distribution / finalisation de réponse |
| `plugin-sdk/reply-history` | Helpers partagés dhistorique de réponse sur courte fenêtre tels que `buildHistoryContext`, `recordPendingHistoryEntry` et `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/plugin-runtime` | Helpers partagés de commande/hook/http/interaction de plugin |
| `plugin-sdk/hook-runtime` | Helpers partagés de pipeline de hooks webhook/internes |
| `plugin-sdk/lazy-runtime` | Helpers de liaison/import d'exécution paresseuse tels que `createLazyRuntimeModule`, `createLazyRuntimeMethod` et `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpers d'exécution de processus |
| `plugin-sdk/cli-runtime` | Helpers de formatage CLI, attente et version |
| `plugin-sdk/gateway-runtime` | Helpers de client Gateway et de patch 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 doublons/conflits, même lorsque la surface de contrat Telegram fournie n'est pas disponible |
| `plugin-sdk/approval-runtime` | Helpers d'approbation exec/plugin, constructeurs de capacité d'approbation, helpers d'authentification/de profil, helpers natifs de routage/exécution |
| `plugin-sdk/reply-runtime` | Helpers partagés d'exécution entrante/de réponse, segmentation, envoi, heartbeat, planificateur de réponse |
| `plugin-sdk/reply-dispatch-runtime` | Helpers étroits d'envoi/finalisation de réponse |
| `plugin-sdk/reply-history` | Helpers partagés d'historique de réponse sur courte fenêtre tels que `buildHistoryContext`, `recordPendingHistoryEntry` et `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Helpers ciblés de découpage texte/Markdown |
| `plugin-sdk/session-store-runtime` | Helpers de chemin de magasin de session + `updated-at` |
| `plugin-sdk/state-paths` | Helpers de chemin de répertoire dé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é détat canal/compte, valeurs par défaut détat dexé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 + `updated-at` |
| `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é de statut de canal/compte, valeurs par défaut d'état d'exé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 à partir dentrées de type fetch/requête |
| `plugin-sdk/run-command` | Exécuteur de commande chronométré avec résultats stdout/stderr normalisés |
| `plugin-sdk/param-readers` | Lecteurs de paramètres communs doutil/CLI |
| `plugin-sdk/tool-send` | Extraire les champs de cible denvoi canonique des arguments doutil |
| `plugin-sdk/request-url` | Extraire des URL de chaîne à partir d'entrées de type fetch/request |
| `plugin-sdk/run-command` | Exécuteur de commandes temporisé avec résultats stdout/stderr normalisés |
| `plugin-sdk/param-readers` | Lecteurs communs de paramètres d'outil/CLI |
| `plugin-sdk/tool-send` | Extraire les champs cibles d'envoi canoniques des arguments d'outil |
| `plugin-sdk/temp-path` | Helpers partagés de chemin de téléchargement temporaire |
| `plugin-sdk/logging-core` | Helpers de logger de sous-système et 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/file-lock` | Helpers de verrou de fichier réentrant |
| `plugin-sdk/persistent-dedupe` | Helpers de cache de déduplication sauvegardé sur disque |
| `plugin-sdk/acp-runtime` | Helpers dexécution/session ACP et de distribution de réponse |
| `plugin-sdk/agent-config-primitives` | Primitives ciblées de schéma de configuration dexécution dagent |
| `plugin-sdk/boolean-param` | Lecteur permissif de paramètre booléen |
| `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 persisté sur disque |
| `plugin-sdk/acp-runtime` | Helpers ACP d'exécution/session et d'envoi de réponse |
| `plugin-sdk/agent-config-primitives` | Primitifs étroits de schéma de config d'exécution d'agent |
| `plugin-sdk/boolean-param` | Lecteur tolérant de paramètre booléen |
| `plugin-sdk/dangerous-name-runtime` | Helpers de résolution de correspondance de noms dangereux |
| `plugin-sdk/device-bootstrap` | Helpers de bootstrap dappareil et de jeton dappairage |
| `plugin-sdk/extension-shared` | Primitives partagées de canal passif, détat et de 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 de Skills |
| `plugin-sdk/native-command-registry` | Helpers de registre/construction/sérialisation de commandes natives |
| `plugin-sdk/device-bootstrap` | Helpers de bootstrap d'appareil et de jeton d'appairage |
| `plugin-sdk/extension-shared` | Primitifs helpers partagés pour canal passif, statut et proxy ambiant |
| `plugin-sdk/models-provider-runtime` | Helpers de réponse de commande `/models`/fournisseur |
| `plugin-sdk/skill-commands-runtime` | Helpers de liste de commandes Skills |
| `plugin-sdk/native-command-registry` | Helpers natifs de registre/construction/sérialisation de commandes |
| `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/infra-runtime` | Helpers d'événement système/heartbeat |
| `plugin-sdk/collection-runtime` | Petits helpers de cache borné |
| `plugin-sdk/diagnostic-runtime` | Helpers de drapeau et dévénement de diagnostic |
| `plugin-sdk/error-runtime` | Helpers de graphe derreur, de formatage, de classification partagée derreur, `isApprovalNotFoundError` |
| `plugin-sdk/diagnostic-runtime` | Helpers de drapeau et d'événement de diagnostic |
| `plugin-sdk/error-runtime` | Helpers de graphe d'erreurs, formatage, classification d'erreurs partagée, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Helpers de fetch encapsulé, 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 configuration et dexécuteur de nouvelle tentative |
| `plugin-sdk/agent-runtime` | Helpers de répertoire / identité / espace de travail dagent |
| `plugin-sdk/directory-runtime` | Requête/déduplication de répertoire appuyée sur la configuration |
| `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 config |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Sous-chemins de capacité et de test">
| Sous-chemin | Exports clés |
| Sous-chemin | Exportations clés |
| --- | --- |
| `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 repli de génération de média, sélection de candidats et messages de modèle manquant |
| `plugin-sdk/media-understanding` | Types de fournisseur de compréhension média ainsi quexports de helpers dimage/audio orientés fournisseur |
| `plugin-sdk/text-runtime` | Helpers partagés de texte/Markdown/journalisation tels que suppression de texte visible par lassistant, helpers de rendu/découpage/tableau Markdown, helpers de masquage, helpers de balise de directive et utilitaires de texte sûr |
| `plugin-sdk/text-chunking` | Helper de découpage de texte sortant |
| `plugin-sdk/speech` | Types de fournisseur de parole ainsi que helpers de directive, de registre et de validation orientés fournisseur |
| `plugin-sdk/speech-core` | Types partagés de fournisseur de parole, helpers de registre, de directive et de normalisation |
| `plugin-sdk/realtime-transcription` | Types de fournisseur de transcription temps réel et helpers de registre |
| `plugin-sdk/realtime-voice` | Types de fournisseur de voix temps réel et helpers de registre |
| `plugin-sdk/image-generation` | Types de fournisseur de génération dimage |
| `plugin-sdk/image-generation-core` | Types partagés de génération dimage, helpers de repli, dauthentification et de registre |
| `plugin-sdk/music-generation` | Types de fournisseur / requête / résultat de génération musicale |
| `plugin-sdk/music-generation-core` | Types partagés de génération musicale, helpers de repli, recherche de fournisseur et analyse de model-ref |
| `plugin-sdk/video-generation` | Types de fournisseur / 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 repli, recherche de fournisseur et analyse de model-ref |
| `plugin-sdk/webhook-targets` | Registre de cibles webhook et helpers dinstallation de route |
| `plugin-sdk/webhook-path` | Helpers de normalisation de chemin de webhook |
| `plugin-sdk/media-runtime` | Helpers partagés de récupération/transformation/stockage de médias ainsi que constructeurs de payload média |
| `plugin-sdk/media-generation-runtime` | Helpers partagés de bascule de génération de médias, sélection de candidats et messages de modèle manquant |
| `plugin-sdk/media-understanding` | Types de fournisseur de compréhension média ainsi qu'exportations d'helpers d'image/audio côté fournisseur |
| `plugin-sdk/text-runtime` | Helpers partagés de texte/Markdown/journalisation tels que suppression de texte visible par l'assistant, 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 vocal ainsi qu'helpers côté fournisseur pour directives, registre et validation |
| `plugin-sdk/speech-core` | Types partagés de fournisseur vocal, helpers de registre, de directive et de normalisation |
| `plugin-sdk/realtime-transcription` | Types de fournisseur de transcription en temps réel et helpers de registre |
| `plugin-sdk/realtime-voice` | Types de fournisseur vocal en temps réel et helpers de registre |
| `plugin-sdk/image-generation` | Types de fournisseur de génération d'image |
| `plugin-sdk/image-generation-core` | Types partagés de génération d'image, helpers de bascule, d'authentification et de registre |
| `plugin-sdk/music-generation` | Types de fournisseur/requête/résultat de génération musicale |
| `plugin-sdk/music-generation-core` | Types partagés de génération musicale, helpers de bascule, recherche de fournisseur et analyse de référence de modèle |
| `plugin-sdk/video-generation` | Types de fournisseur/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 bascule, recherche de fournisseur et analyse de référence de modèle |
| `plugin-sdk/webhook-targets` | Helpers de registre de cibles webhook et d'installation 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 Plugin SDK |
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
</Accordion>
<Accordion title="Sous-chemins mémoire">
| Sous-chemin | Exports clés |
| Sous-chemin | Exportations clés |
| --- | --- |
| `plugin-sdk/memory-core` | Surface de helpers memory-core incluse pour les helpers de gestionnaire/config/fichier/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Façade dexécution dindexation/recherche mémoire |
| `plugin-sdk/memory-core-host-engine-foundation` | Exports de moteur de fondation hôte mémoire |
| `plugin-sdk/memory-core-host-engine-embeddings` | Exports de moteur dembeddings hôte mémoire |
| `plugin-sdk/memory-core-host-engine-qmd` | Exports de moteur QMD hôte mémoire |
| `plugin-sdk/memory-core-host-engine-storage` | Exports de moteur de stockage hôte mémoire |
| `plugin-sdk/memory-core-host-multimodal` | Helpers multimodaux dhôte mémoire |
| `plugin-sdk/memory-core-host-query` | Helpers de requête dhôte mémoire |
| `plugin-sdk/memory-core-host-secret` | Helpers de secret dhôte mémoire |
| `plugin-sdk/memory-core-host-events` | Helpers de journal dévénements dhôte mémoire |
| `plugin-sdk/memory-core-host-status` | Helpers détat dhôte mémoire |
| `plugin-sdk/memory-core-host-runtime-cli` | Helpers dexécution CLI dhôte mémoire |
| `plugin-sdk/memory-core-host-runtime-core` | Helpers dexécution cœur dhôte mémoire |
| `plugin-sdk/memory-core-host-runtime-files` | Helpers de fichiers/exécution dhôte mémoire |
| `plugin-sdk/memory-host-core` | Alias neutre vis-à-vis du fournisseur pour les helpers dexécution cœur dhôte mémoire |
| `plugin-sdk/memory-host-events` | Alias neutre vis-à-vis du fournisseur pour les helpers de journal dévénements dhôte mémoire |
| `plugin-sdk/memory-host-files` | Alias neutre vis-à-vis du fournisseur pour les helpers de fichiers/exécution dhôte mémoire |
| `plugin-sdk/memory-host-markdown` | Helpers partagés de Markdown géré pour plugins adjacents à la mémoire |
| `plugin-sdk/memory-host-search` | Façade dexécution mémoire active pour laccès au gestionnaire de recherche |
| `plugin-sdk/memory-host-status` | Alias neutre vis-à-vis du fournisseur pour les helpers détat dhôte mémoire |
| `plugin-sdk/memory-lancedb` | Surface de helpers memory-lancedb incluse |
| `plugin-sdk/memory-core` | Surface helper `memory-core` fournie pour gestionnaire/config/fichier/helpers CLI |
| `plugin-sdk/memory-core-engine-runtime` | Façade d'exécution d'index/recherche mémoire |
| `plugin-sdk/memory-core-host-engine-foundation` | Exportations du moteur fondation d'hôte mémoire |
| `plugin-sdk/memory-core-host-engine-embeddings` | Exportations du moteur d'embeddings d'hôte mémoire |
| `plugin-sdk/memory-core-host-engine-qmd` | Exportations du moteur QMD d'hôte mémoire |
| `plugin-sdk/memory-core-host-engine-storage` | Exportations du moteur de stockage d'hôte mémoire |
| `plugin-sdk/memory-core-host-multimodal` | Helpers multimodaux d'hôte mémoire |
| `plugin-sdk/memory-core-host-query` | Helpers de requête d'hôte mémoire |
| `plugin-sdk/memory-core-host-secret` | Helpers de secret d'hôte mémoire |
| `plugin-sdk/memory-core-host-events` | Helpers de journal d'événements d'hôte mémoire |
| `plugin-sdk/memory-core-host-status` | Helpers de statut d'hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-cli` | Helpers d'exécution CLI d'hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-core` | Helpers d'exécution cœur d'hôte mémoire |
| `plugin-sdk/memory-core-host-runtime-files` | Helpers de fichier/exécution d'hôte mémoire |
| `plugin-sdk/memory-host-core` | Alias neutre vis-à-vis du fournisseur pour les helpers d'exécution cœur d'hôte mémoire |
| `plugin-sdk/memory-host-events` | Alias neutre vis-à-vis du fournisseur pour les helpers de journal d'événements d'hôte mémoire |
| `plugin-sdk/memory-host-files` | Alias neutre vis-à-vis du fournisseur pour les helpers de fichier/exécution d'hôte mémoire |
| `plugin-sdk/memory-host-markdown` | Helpers partagés de Markdown géré pour plugins proches de la mémoire |
| `plugin-sdk/memory-host-search` | Façade d'exécution de mémoire active pour accès au gestionnaire de recherche |
| `plugin-sdk/memory-host-status` | Alias neutre vis-à-vis du fournisseur pour les helpers de statut d'hôte mémoire |
| `plugin-sdk/memory-lancedb` | Surface helper `memory-lancedb` fournie |
</Accordion>
<Accordion title="Sous-chemins réservés de helpers inclus">
| Famille | Sous-chemins actuels | Usage prévu |
<Accordion title="Sous-chemins helpers fournis 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 inclus (`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 dexécution/helper Matrix incluse |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Surface dexécution/helper LINE incluse |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Surface de helper IRC incluse |
| 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` | Points dentrée de compatibilité/helper de canaux inclus |
| 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` | Points dentrée de helpers de fonctionnalité/plugin inclus ; `plugin-sdk/github-copilot-token` exporte actuellement `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` et `resolveCopilotApiToken` |
| 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 fourni (`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/exécution Matrix fournie |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Surface helper/exécution LINE fournie |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Surface helper IRC fournie |
| 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` | Points d'entrée de compatibilité/helper de canaux fournis |
| Helpers spécifiques à l'authentification/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` | Points d'entrée helpers de fonctionnalité/plugin fournis ; `plugin-sdk/github-copilot-token` exporte actuellement `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` et `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
## API denregistrement
## API d'enregistrement
Le callback `register(api)` reçoit un objet `OpenClawPluginApi` avec ces
méthodes :
### Enregistrement de capacités
### Enregistrement de capacité
| Méthode | Ce quelle enregistre |
| Méthode | Ce qu'elle enregistre |
| ------------------------------------------------ | -------------------------------- |
| `api.registerProvider(...)` | Inférence de texte (LLM) |
| `api.registerCliBackend(...)` | Backend dinférence CLI local |
| `api.registerCliBackend(...)` | Backend CLI local d'inférence |
| `api.registerChannel(...)` | Canal de messagerie |
| `api.registerSpeechProvider(...)` | Synthèse texte-vers-parole / STT |
| `api.registerSpeechProvider(...)` | Synthèse text-to-speech / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Transcription temps réel en flux |
| `api.registerRealtimeVoiceProvider(...)` | Sessions vocales temps réel duplex |
| `api.registerMediaUnderstandingProvider(...)` | Analyse dimage/audio/vidéo |
| `api.registerImageGenerationProvider(...)` | Génération dimage |
| `api.registerRealtimeVoiceProvider(...)` | Sessions vocales duplex en temps réel |
| `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 |
@ -323,39 +321,39 @@ méthodes :
### Outils et commandes
| Méthode | Ce quelle enregistre |
| ------------------------------ | -------------------------------------------- |
| `api.registerTool(tool, opts?)` | Outil dagent (obligatoire ou `{ optional: true }`) |
| `api.registerCommand(def)` | Commande personnalisée (contourne le LLM) |
| 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) |
### Infrastructure
| Méthode | Ce quelle enregistre |
| --------------------------------------------- | ------------------------------------ |
| `api.registerHook(events, handler, opts?)` | Hook dévénement |
| `api.registerHttpRoute(params)` | Point de terminaison HTTP de passerelle |
| `api.registerGatewayMethod(name, handler)` | Méthode RPC de passerelle |
| `api.registerCli(registrar, opts?)` | Sous-commande CLI |
| `api.registerService(service)` | Service darrière-plan |
| `api.registerInteractiveHandler(registration)`| Gestionnaire interactif |
| `api.registerMemoryPromptSupplement(builder)` | Section additive de prompt adjacente à la mémoire |
| `api.registerMemoryCorpusSupplement(adapter)` | Corpus additif de recherche/lecture mémoire |
| Méthode | Ce qu'elle 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 de prompt additive adjacente à la mémoire |
| `api.registerMemoryCorpusSupplement(adapter)` | Corpus additif de recherche/lecture mémoire |
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 de passerelle plus étroite. Préférez des préfixes spécifiques au plugin pour
les méthodes possédées par le plugin.
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 tente d'attribuer 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 denregistrement CLI
### Métadonnées d'enregistrement CLI
`api.registerCli(registrar, opts?)` accepte deux types de métadonnées de premier niveau :
- `commands` : racines de commande explicites possédées par le registrar
- `descriptors` : descripteurs de commande au moment de lanalyse, utilisés pour laide CLI racine,
le routage et lenregistrement paresseux de CLI de plugin
- `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 de plugin
Si vous voulez quune commande de plugin reste chargée paresseusement dans le chemin CLI racine normal,
fournissez des `descriptors` couvrant chaque racine de commande de premier niveau exposée par ce
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 premier niveau exposée par ce
registrar.
```typescript
@ -368,7 +366,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,
},
],
@ -376,135 +374,133 @@ api.registerCli(
);
```
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
despaces réservés adossés à des descripteurs pour le chargement paresseux au moment de lanalyse.
Utilisez `commands` seul uniquement lorsque vous n'avez pas besoin de l'enregistrement paresseux de la CLI racine.
Ce chemin de compatibilité eager reste pris en charge, mais il n'installe pas
d'espaces réservés adossés à des descripteurs pour le chargement paresseux à l'analyse.
### Enregistrement de backend CLI
`api.registerCliBackend(...)` permet à un plugin de posséder la configuration par défaut dun
`api.registerCliBackend(...)` permet à un plugin de posséder la config par défaut d'un
backend CLI IA local tel que `codex-cli`.
- Le backend `id` devient le préfixe de fournisseur dans des références de modèle comme `codex-cli/gpt-5`.
- Le backend `config` utilise la même forme que `agents.defaults.cliBackends.<id>`.
- La configuration 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 la fusion
(par exemple pour normaliser danciennes formes de drapeaux).
- Le `id` du backend devient le préfixe du 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 a toujours priorité. OpenClaw fusionne `agents.defaults.cliBackends.<id>` par-dessus 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 pour normaliser d'anciennes formes de drapeaux).
### Emplacements exclusifs
| Méthode | Ce quelle enregistre |
| ----------------------------------------- | ----------------------------------- |
| `api.registerContextEngine(id, factory)` | Moteur de contexte (un seul actif à la fois) |
| `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 dexécution mémoire |
| 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 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 |
### Adaptateurs dembeddings mémoire
### Adaptateurs d'embedding mémoire
| Méthode | Ce quelle enregistre |
| --------------------------------------------- | --------------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Adaptateur dembeddings mémoire pour le plugin actif |
| Méthode | Ce qu'elle enregistre |
| ---------------------------------------------- | --------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Adaptateur d'embedding mémoire pour le plugin actif |
- `registerMemoryCapability` est lAPI préférée de plugin mémoire exclusif.
- `registerMemoryCapability` peut également exposer `publicArtifacts.listArtifacts(...)`
- `registerMemoryCapability` est l'API exclusive privilégiée pour les plugins mémoire.
- `registerMemoryCapability` peut aussi exposer `publicArtifacts.listArtifacts(...)`
afin que des plugins compagnons puissent consommer des artefacts mémoire exportés via
`openclaw/plugin-sdk/memory-host-core` au lieu datteindre lagencement privé
dun plugin mémoire spécifique.
`openclaw/plugin-sdk/memory-host-core` au lieu d'accéder à la disposition privée d'un
plugin mémoire spécifique.
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` et
`registerMemoryRuntime` sont des API héritées compatibles de plugin mémoire exclusif.
- `registerMemoryEmbeddingProvider` permet au plugin mémoire actif denregistrer un
ou plusieurs identifiants dadaptateur dembeddings (par exemple `openai`, `gemini` ou un identifiant
personnalisé défini par le plugin).
- La configuration utilisateur telle que `agents.defaults.memorySearch.provider` et
`agents.defaults.memorySearch.fallback` se résout par rapport à ces identifiants
dadaptateur enregistrés.
`registerMemoryRuntime` sont des API exclusives de plugin mémoire compatibles avec l'héritage.
- `registerMemoryEmbeddingProvider` permet au plugin mémoire actif d'enregistrer un
ou plusieurs identifiants d'adaptateur d'embedding (par exemple `openai`, `gemini` ou un identifiant personnalisé défini par plugin).
- La config utilisateur telle que `agents.defaults.memorySearch.provider` et
`agents.defaults.memorySearch.fallback` se résout à partir de ces identifiants d'adaptateur enregistrés.
### Événements et cycle de vie
| Méthode | Ce quelle fait |
| ------------------------------------------- | ---------------------------- |
| `api.on(hookName, handler, opts?)` | Hook de cycle de vie typé |
| `api.onConversationBindingResolved(handler)`| Callback de liaison de conversation |
| Méthode | Ce qu'elle fait |
| -------------------------------------------- | ---------------------------- |
| `api.on(hookName, handler, opts?)` | Hook de cycle de vie typé |
| `api.onConversationBindingResolved(handler)` | Callback de liaison de conversation |
### Sémantique des décisions de hook
### Sémantique de décision des hooks
- `before_tool_call` : renvoyer `{ block: true }` est terminal. Dès quun 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 substitution.
- `before_install` : renvoyer `{ block: true }` est terminal. Dès quun 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 substitution.
- `reply_dispatch` : renvoyer `{ handled: true, ... }` est terminal. Dès quun gestionnaire revendique la distribution, les gestionnaires de priorité inférieure et le chemin de distribution du modèle par défaut sont ignorés.
- `message_sending` : renvoyer `{ cancel: true }` est terminal. Dès quun 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 substitution.
- `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), et non 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), et non comme une surcharge.
- `reply_dispatch` : renvoyer `{ handled: true, ... }` est terminal. Dès qu'un gestionnaire revendique l'envoi, les gestionnaires de priorité inférieure et le chemin d'envoi du 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), et non comme une surcharge.
### Champs de lobjet API
### Champs de l'objet API
| Champ | Type | Description |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | ID du plugin |
| `api.name` | `string` | Nom daffichage |
| `api.version` | `string?` | Version du plugin (facultative) |
| `api.description` | `string?` | Description du plugin (facultative) |
| `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é actuel de configuration (instantané actif en mémoire à lexécution lorsquil est disponible) |
| `api.pluginConfig` | `Record<string, unknown>` | Configuration spécifique au plugin depuis `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Helpers dexécution](/fr/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger limité (`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 lentrée complète |
| `api.config` | `OpenClawConfig` | Instantané de config actuel (instantané d'exécution en mémoire actif lorsqu'il est disponible) |
| `api.pluginConfig` | `Record<string, unknown>` | Config spécifique au plugin provenant de `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Helpers d'exécution](/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 l'entrée complète |
| `api.resolvePath(input)` | `(string) => string` | Résoudre un chemin relatif à la racine du plugin |
## Convention de module interne
À lintérieur de votre plugin, utilisez des fichiers barils locaux pour les imports internes :
Dans votre plugin, utilisez des fichiers barrel locaux pour les imports internes :
```
my-plugin/
api.ts # Exports publics pour les consommateurs externes
runtime-api.ts # Exports dexécution internes uniquement
index.ts # Point dentrée du plugin
setup-entry.ts # Entrée légère de configuration uniquement (facultative)
api.ts # Exportations publiques pour les consommateurs externes
runtime-api.ts # Exportations 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)
```
<Warning>
Nimportez jamais votre propre plugin via `openclaw/plugin-sdk/<your-plugin>`
dans le code de production. Faites passer les imports internes par `./api.ts` ou
`./runtime-api.ts`. Le chemin SDK est uniquement le contrat externe.
N'importez jamais votre propre plugin via `openclaw/plugin-sdk/<your-plugin>`
depuis le code de production. Faites passer les imports internes par `./api.ts` ou
`./runtime-api.ts`. Le chemin SDK n'est que le contrat externe.
</Warning>
Les surfaces publiques de plugins inclus 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 configuration dexécution lorsquOpenClaw fonctionne déjà. Si aucun instantané
dexécution nexiste encore, elles se rabattent sur le fichier de configuration résolu sur disque.
Les surfaces publiques de plugin fourni chargées via façade (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` et fichiers d'entrée publics similaires) préfèrent désormais l'instantané
de config d'exécution actif lorsque OpenClaw est déjà en cours d'exécution. Si aucun instantané
d'exécution n'existe encore, elles reviennent à la config résolue sur le disque.
Les plugins de fournisseur peuvent également exposer un baril de contrat local au plugin et ciblé lorsquun
helper est intentionnellement spécifique au fournisseur et na pas encore sa place dans un sous-chemin SDK
générique. Exemple inclus actuel : le fournisseur Anthropic conserve ses
helpers de flux Claude dans son propre point dentrée public `api.ts` / `contract-api.ts` au lieu de
promouvoir la logique den-tête bêta Anthropic et `service_tier` dans un contrat
Les plugins de fournisseur peuvent également exposer un barrel de contrat local au plugin et étroit lorsqu'un
helper est volontairement spécifique au fournisseur et n'a pas encore sa place dans un sous-chemin SDK générique.
Exemple fourni actuel : le fournisseur Anthropic conserve ses helpers de flux Claude
dans son propre point d'entrée public `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/*`.
Autres exemples inclus actuels :
Autres exemples fournis actuels :
- `@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 donboarding/configuration
des helpers d'intégration/de config
<Warning>
Le code de production dextension doit également éviter les imports `openclaw/plugin-sdk/<other-plugin>`.
Si un helper est réellement partagé, faites-le remonter vers un sous-chemin SDK neutre
Le code de production des extensions doit également éviter les imports `openclaw/plugin-sdk/<other-plugin>`.
Si un helper est réellement partagé, faites-le évoluer 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.
surface orientée capacité au lieu de coupler deux plugins entre eux.
</Warning>
## Associé
## Liens connexes
- [Points dentrée](/fr/plugins/sdk-entrypoints) — options `definePluginEntry` et `defineChannelPluginEntry`
- [Helpers dexécution](/fr/plugins/sdk-runtime) — référence complète de lespace de noms `api.runtime`
- [Configuration et config](/fr/plugins/sdk-setup) — packaging, manifestes, schémas de configuration
- [Tests](/fr/plugins/sdk-testing) — utilitaires de test et règles de lint
- [Migration 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
- [Entry Points](/fr/plugins/sdk-entrypoints) — options de `definePluginEntry` et `defineChannelPluginEntry`
- [Runtime Helpers](/fr/plugins/sdk-runtime) — référence complète de l'espace de noms `api.runtime`
- [Setup and Config](/fr/plugins/sdk-setup) — packaging, manifestes, schémas de config
- [Testing](/fr/plugins/sdk-testing) — utilitaires de test et règles de lint
- [SDK Migration](/fr/plugins/sdk-migration) — migration depuis des surfaces obsolètes
- [Plugin Internals](/fr/plugins/architecture) — architecture approfondie et modèle de capacité

View File

@ -2,26 +2,24 @@
read_when:
- Vous souhaitez utiliser les modèles Google Gemini avec OpenClaw
- Vous avez besoin du flux dauthentification par clé API ou OAuth
summary: Configuration de Google Gemini (clé API + OAuth, génération dimages, compréhension des médias, recherche web)
summary: Configuration de Google Gemini (clé API + OAuth, génération dimages, compréhension des médias, recherche Web)
title: Google (Gemini)
x-i18n:
generated_at: "2026-04-08T02:17:25Z"
generated_at: "2026-04-08T06:51:01Z"
model: gpt-5.4
provider: openai
source_hash: e9e558f5ce35c853e0240350be9a1890460c5f7f7fd30b05813a656497dee516
source_hash: fad2ff68987301bd86145fa6e10de8c7b38d5bd5dbcd13db9c883f7f5b9a4e01
source_path: providers/google.md
workflow: 15
---
# Google (Gemini)
Le plugin Google donne accès aux modèles Gemini via Google AI Studio, ainsi quà la
génération dimages, à la compréhension des médias (image/audio/vidéo) et à la recherche web via
Gemini Grounding.
Le plugin Google fournit laccès aux modèles Gemini via Google AI Studio, ainsi que la génération dimages, la compréhension des médias (image/audio/vidéo) et la recherche Web via Gemini Grounding.
- Fournisseur : `google`
- Auth : `GEMINI_API_KEY` ou `GOOGLE_API_KEY`
- API : Google Gemini API
- Authentification : `GEMINI_API_KEY` ou `GOOGLE_API_KEY`
- API : API Google Gemini
- Fournisseur alternatif : `google-gemini-cli` (OAuth)
## Démarrage rapide
@ -55,13 +53,11 @@ openclaw onboard --non-interactive \
## OAuth (Gemini CLI)
Un fournisseur alternatif, `google-gemini-cli`, utilise OAuth PKCE au lieu dune
clé API. Il sagit dune intégration non officielle ; certains utilisateurs signalent des
restrictions de compte. Utilisez-la à vos propres risques.
Un fournisseur alternatif `google-gemini-cli` utilise OAuth PKCE au lieu dune clé API. Il sagit dune intégration non officielle ; certains utilisateurs signalent des restrictions de compte. Utilisez-la à vos propres risques.
- Modèle par défaut : `google-gemini-cli/gemini-3-flash-preview`
- Alias : `gemini-cli`
- Prérequis dinstallation : Gemini CLI disponible localement sous le nom `gemini`
- Prérequis dinstallation : la Gemini CLI locale doit être disponible sous le nom `gemini`
- Homebrew : `brew install gemini-cli`
- npm : `npm install -g @google/gemini-cli`
- Connexion :
@ -75,48 +71,44 @@ Variables denvironnement :
- `OPENCLAW_GEMINI_OAUTH_CLIENT_ID`
- `OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET`
(ou les variantes `GEMINI_CLI_*`).
(Ou les variantes `GEMINI_CLI_*`.)
Si les requêtes OAuth de Gemini CLI échouent après la connexion, définissez
`GOOGLE_CLOUD_PROJECT` ou `GOOGLE_CLOUD_PROJECT_ID` sur lhôte de la passerelle et
réessayez.
Si les requêtes OAuth de Gemini CLI échouent après la connexion, définissez `GOOGLE_CLOUD_PROJECT` ou `GOOGLE_CLOUD_PROJECT_ID` sur lhôte de la passerelle, puis réessayez.
Si la connexion échoue avant le démarrage du flux du navigateur, assurez-vous que la commande locale `gemini`
est installée et présente dans le `PATH`. OpenClaw prend en charge les installations Homebrew
et les installations npm globales, y compris les dispositions Windows/npm courantes.
Si la connexion échoue avant le démarrage du flux dans le navigateur, assurez-vous que la commande locale `gemini` est installée et présente dans le `PATH`. OpenClaw prend en charge les installations Homebrew et les installations npm globales, y compris les dispositions Windows/npm courantes.
Notes sur lutilisation du JSON de Gemini CLI :
Remarques sur lutilisation du JSON de Gemini CLI :
- Le texte de réponse provient du champ JSON `response` du CLI.
- Lutilisation bascule sur `stats` lorsque le CLI laisse `usage` vide.
- `stats.cached` est normalisé en `cacheRead` OpenClaw.
- Si `stats.input` est absent, OpenClaw dérive les jetons dentrée à partir de
`stats.input_tokens - stats.cached`.
- Le texte de réponse provient du champ JSON `response` de la CLI.
- Lutilisation se rabat sur `stats` lorsque la CLI laisse `usage` vide.
- `stats.cached` est normalisé en `cacheRead` dans OpenClaw.
- Si `stats.input` est absent, OpenClaw dérive les jetons dentrée à partir de `stats.input_tokens - stats.cached`.
## Capacités
| Capacité | Pris en charge |
| ------------------------ | ------------------ |
| Complétions de chat | Oui |
| Génération dimages | Oui |
| Génération musicale | Oui |
| Compréhension dimages | Oui |
| Transcription audio | Oui |
| Compréhension vidéo | Oui |
| Recherche web (Grounding) | Oui |
| Thinking/reasoning | Oui (Gemini 3.1+) |
| Capacité | Pris en charge |
| ----------------------- | ----------------- |
| Complétions de chat | Oui |
| Génération dimages | Oui |
| Génération de musique | Oui |
| Compréhension dimages | Oui |
| Transcription audio | Oui |
| Compréhension vidéo | Oui |
| Recherche Web (Grounding) | Oui |
| Thinking/reasoning | Oui (Gemini 3.1+) |
| Modèles Gemma 4 | Oui |
Les modèles Gemma 4 (par exemple `gemma-4-26b-a4b-it`) prennent en charge le mode thinking. OpenClaw réécrit `thinkingBudget` vers un `thinkingLevel` Google pris en charge pour Gemma 4. Définir thinking sur `off` conserve la désactivation de thinking au lieu dun mappage vers `MINIMAL`.
## Réutilisation directe du cache Gemini
Pour les exécutions directes de lAPI Gemini (`api: "google-generative-ai"`), OpenClaw
transmet désormais un handle `cachedContent` configuré aux requêtes Gemini.
Pour les exécutions directes de lAPI Gemini (`api: "google-generative-ai"`), OpenClaw transmet désormais un handle `cachedContent` configuré aux requêtes Gemini.
- Configurez des paramètres par modèle ou globaux avec
`cachedContent` ou lancien `cached_content`
- Si les deux sont présents, `cachedContent` est prioritaire
- Exemple de valeur : `cachedContents/prebuilt-context`
- Lutilisation dun accès au cache Gemini est normalisée dans `cacheRead` OpenClaw à partir de
`cachedContentTokenCount` en amont
- Lutilisation en cas de réussite du cache Gemini est normalisée en `cacheRead` dans OpenClaw à partir de `cachedContentTokenCount` en amont
Exemple :
@ -138,17 +130,14 @@ Exemple :
## Génération dimages
Le fournisseur groupé de génération dimages `google` utilise par défaut
`google/gemini-3.1-flash-image-preview`.
Le fournisseur de génération dimages `google` inclus utilise par défaut `google/gemini-3.1-flash-image-preview`.
- Prend aussi en charge `google/gemini-3-pro-image-preview`
- Génération : jusquà 4 images par requête
- Mode édition : activé, jusquà 5 images dentrée
- Contrôles de géométrie : `size`, `aspectRatio` et `resolution`
Le fournisseur `google-gemini-cli`, limité à OAuth, constitue une surface distincte
dinférence de texte. La génération dimages, la compréhension des médias et Gemini Grounding restent sur
lidentifiant de fournisseur `google`.
Le fournisseur `google-gemini-cli`, uniquement OAuth, constitue une surface dinférence de texte distincte. La génération dimages, la compréhension des médias et Gemini Grounding restent associées à lidentifiant de fournisseur `google`.
Pour utiliser Google comme fournisseur dimages par défaut :
@ -164,18 +153,16 @@ Pour utiliser Google comme fournisseur dimages par défaut :
}
```
Voir [Génération dimages](/fr/tools/image-generation) pour les paramètres partagés de loutil,
la sélection du fournisseur et le comportement de basculement.
Consultez [Image Generation](/fr/tools/image-generation) pour les paramètres doutil partagés, la sélection du fournisseur et le comportement de basculement.
## Génération de vidéo
Le plugin groupé `google` enregistre aussi la génération vidéo via loutil partagé
`video_generate`.
Le plugin `google` inclus enregistre également la génération de vidéo via loutil partagé `video_generate`.
- Modèle vidéo par défaut : `google/veo-3.1-fast-generate-preview`
- Modes : texte vers vidéo, image vers vidéo et flux de référence à vidéo unique
- Modes : texte vers vidéo, image vers vidéo et flux à référence vidéo unique
- Prend en charge `aspectRatio`, `resolution` et `audio`
- Limite actuelle de durée : **4 à 8 secondes**
- Limitation actuelle de durée : **4 à 8 secondes**
Pour utiliser Google comme fournisseur vidéo par défaut :
@ -191,20 +178,18 @@ Pour utiliser Google comme fournisseur vidéo par défaut :
}
```
Voir [Génération de vidéo](/fr/tools/video-generation) pour les paramètres partagés de loutil,
la sélection du fournisseur et le comportement de basculement.
Consultez [Video Generation](/fr/tools/video-generation) pour les paramètres doutil partagés, la sélection du fournisseur et le comportement de basculement.
## Génération musicale
## Génération de musique
Le plugin groupé `google` enregistre aussi la génération musicale via loutil partagé
`music_generate`.
Le plugin `google` inclus enregistre également la génération de musique via loutil partagé `music_generate`.
- Modèle musical par défaut : `google/lyria-3-clip-preview`
- Prend aussi en charge `google/lyria-3-pro-preview`
- Contrôles du prompt : `lyrics` et `instrumental`
- Format de sortie : `mp3` par défaut, plus `wav` sur `google/lyria-3-pro-preview`
- Contrôles dinvite : `lyrics` et `instrumental`
- Format de sortie : `mp3` par défaut, ainsi que `wav` sur `google/lyria-3-pro-preview`
- Entrées de référence : jusquà 10 images
- Les exécutions appuyées sur une session se détachent via le flux partagé tâche/état, y compris `action: "status"`
- Les exécutions avec session se détachent via le flux partagé de tâche/statut, y compris `action: "status"`
Pour utiliser Google comme fournisseur musical par défaut :
@ -220,11 +205,8 @@ Pour utiliser Google comme fournisseur musical par défaut :
}
```
Voir [Génération musicale](/fr/tools/music-generation) pour les paramètres partagés de loutil,
la sélection du fournisseur et le comportement de basculement.
Consultez [Music Generation](/fr/tools/music-generation) pour les paramètres doutil partagés, la sélection du fournisseur et le comportement de basculement.
## Remarque sur lenvironnement
Si la passerelle sexécute comme daemon (launchd/systemd), assurez-vous que `GEMINI_API_KEY`
est disponible pour ce processus (par exemple dans `~/.openclaw/.env` ou via
`env.shellEnv`).
Si la passerelle sexécute en tant que démon (launchd/systemd), assurez-vous que `GEMINI_API_KEY` est disponible pour ce processus (par exemple dans `~/.openclaw/.env` ou via `env.shellEnv`).

View File

@ -1,43 +1,43 @@
---
read_when:
- Vous souhaitez exécuter OpenClaw avec des modèles cloud ou locaux via Ollama
- Vous avez besoin dinstructions de configuration et de mise en place pour Ollama
- Vous avez besoin d'instructions pour l'installation et la configuration d'Ollama
summary: Exécuter OpenClaw avec Ollama (modèles cloud et locaux)
title: Ollama
x-i18n:
generated_at: "2026-04-08T02:18:12Z"
generated_at: "2026-04-08T06:51:18Z"
model: gpt-5.4
provider: openai
source_hash: 222ec68f7d4bb29cc7796559ddef1d5059f5159e7a51e2baa3a271ddb3abb716
source_hash: d3295a7c879d3636a2ffdec05aea6e670e54a990ef52bd9b0cae253bc24aa3f7
source_path: providers/ollama.md
workflow: 15
---
# Ollama
Ollama est un runtime LLM local qui permet dexécuter facilement des modèles open source sur votre machine. OpenClaw sintègre à lAPI native dOllama (`/api/chat`), prend en charge le streaming et lappel doutils, et peut découvrir automatiquement les modèles Ollama locaux lorsque vous activez cette option avec `OLLAMA_API_KEY` (ou un profil dauthentification) et que vous ne définissez pas dentrée explicite `models.providers.ollama`.
Ollama est un environnement d'exécution LLM local qui facilite l'exécution de modèles open source sur votre machine. OpenClaw s'intègre à l'API native d'Ollama (`/api/chat`), prend en charge le streaming et l'appel d'outils, et peut détecter automatiquement les modèles Ollama locaux lorsque vous activez `OLLAMA_API_KEY` (ou un profil d'authentification) et que vous ne définissez pas d'entrée `models.providers.ollama` explicite.
<Warning>
**Utilisateurs dOllama distant** : nutilisez pas lURL `/v1` compatible OpenAI (`http://host:11434/v1`) avec OpenClaw. Cela casse lappel doutils et les modèles peuvent produire du JSON doutil brut comme texte brut. Utilisez à la place lURL de lAPI native Ollama : `baseUrl: "http://host:11434"` (sans `/v1`).
**Utilisateurs d'Ollama à distance** : N'utilisez pas l'URL compatible OpenAI `/v1` (`http://host:11434/v1`) avec OpenClaw. Cela casse l'appel d'outils et les modèles peuvent produire le JSON brut des outils sous forme de texte brut. Utilisez à la place l'URL de l'API native d'Ollama : `baseUrl: "http://host:11434"` (sans `/v1`).
</Warning>
## Démarrage rapide
### Onboarding (recommandé)
### Intégration guidée (recommandée)
Le moyen le plus rapide de configurer Ollama est de passer par lonboarding :
Le moyen le plus rapide de configurer Ollama consiste à passer par l'intégration guidée :
```bash
openclaw onboard
```
Sélectionnez **Ollama** dans la liste des fournisseurs. Lonboarding va :
Sélectionnez **Ollama** dans la liste des fournisseurs. L'intégration guidée va :
1. Demander lURL de base Ollama où votre instance est accessible (par défaut `http://127.0.0.1:11434`).
2. Vous permettre de choisir **Cloud + Local** (modèles cloud et locaux) ou **Local** (modèles locaux uniquement).
3. Ouvrir un flux de connexion dans le navigateur si vous choisissez **Cloud + Local** et que vous nêtes pas connecté à ollama.com.
4. Découvrir les modèles disponibles et suggérer des valeurs par défaut.
5. Télécharger automatiquement le modèle sélectionné sil nest pas disponible localement.
1. Demander l'URL de base Ollama à laquelle votre instance est accessible (par défaut `http://127.0.0.1:11434`).
2. Vous permettre de choisir **Cloud + Local** (modèles cloud et modèles locaux) ou **Local** (modèles locaux uniquement).
3. Ouvrir un flux de connexion dans le navigateur si vous choisissez **Cloud + Local** et que vous n'êtes pas connecté à ollama.com.
4. Détecter les modèles disponibles et suggérer des valeurs par défaut.
5. Télécharger automatiquement le modèle sélectionné s'il n'est pas disponible localement.
Le mode non interactif est également pris en charge :
@ -47,7 +47,7 @@ openclaw onboard --non-interactive \
--accept-risk
```
Vous pouvez éventuellement spécifier une URL de base ou un modèle personnalisé :
Vous pouvez éventuellement spécifier une URL de base ou un modèle personnalisés :
```bash
openclaw onboard --non-interactive \
@ -77,7 +77,7 @@ ollama pull llama3.3
ollama signin
```
4. Lancez lonboarding et choisissez `Ollama` :
4. Exécutez l'intégration guidée et choisissez `Ollama` :
```bash
openclaw onboard
@ -85,17 +85,17 @@ openclaw onboard
- `Local` : modèles locaux uniquement
- `Cloud + Local` : modèles locaux plus modèles cloud
- Les modèles cloud comme `kimi-k2.5:cloud`, `minimax-m2.7:cloud` et `glm-5.1:cloud` ne nécessitent **pas** de `ollama pull` local
- Les modèles cloud tels que `kimi-k2.5:cloud`, `minimax-m2.7:cloud` et `glm-5.1:cloud` ne nécessitent **pas** de `ollama pull` local
OpenClaw suggère actuellement :
- valeur par défaut locale : `gemma4`
- valeurs par défaut cloud : `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`
5. Si vous préférez une configuration manuelle, activez directement Ollama pour OpenClaw (nimporte quelle valeur fonctionne ; Ollama nexige pas de vraie clé) :
5. Si vous préférez une configuration manuelle, activez directement Ollama pour OpenClaw (n'importe quelle valeur convient ; Ollama n'exige pas de vraie clé) :
```bash
# Définir la variable denvironnement
# Définir la variable d'environnement
export OLLAMA_API_KEY="ollama-local"
# Ou configurer dans votre fichier de configuration
@ -121,17 +121,18 @@ openclaw models set ollama/gemma4
}
```
## Découverte de modèles (fournisseur implicite)
## Détection des modèles (fournisseur implicite)
Lorsque vous définissez `OLLAMA_API_KEY` (ou un profil dauthentification) et que vous **ne** définissez **pas** `models.providers.ollama`, OpenClaw découvre les modèles à partir de linstance Ollama locale sur `http://127.0.0.1:11434` :
Lorsque vous définissez `OLLAMA_API_KEY` (ou un profil d'authentification) et que vous **ne** définissez **pas** `models.providers.ollama`, OpenClaw détecte les modèles depuis l'instance Ollama locale à l'adresse `http://127.0.0.1:11434` :
- interroge `/api/tags`
- utilise des recherches `/api/show` au mieux pour lire `contextWindow` lorsquil est disponible
- marque `reasoning` avec une heuristique sur le nom du modèle (`r1`, `reasoning`, `think`)
- définit `maxTokens` sur la limite maximale de jetons Ollama par défaut utilisée par OpenClaw
- définit tous les coûts à `0`
- Interroge `/api/tags`
- Utilise des recherches `/api/show` en mode best effort pour lire `contextWindow` et détecter les capacités (y compris la vision) lorsque disponibles
- Les modèles avec une capacité `vision` signalée par `/api/show` sont marqués comme compatibles avec les images (`input: ["text", "image"]`), afin qu'OpenClaw injecte automatiquement les images dans l'invite pour ces modèles
- Marque `reasoning` à l'aide d'une heuristique basée sur le nom du modèle (`r1`, `reasoning`, `think`)
- Définit `maxTokens` sur le plafond de jetons maximum Ollama par défaut utilisé par OpenClaw
- Définit tous les coûts à `0`
Cela évite les entrées manuelles de modèle tout en gardant le catalogue aligné sur linstance Ollama locale.
Cela évite les entrées de modèles manuelles tout en conservant un catalogue aligné sur l'instance Ollama locale.
Pour voir quels modèles sont disponibles :
@ -140,21 +141,21 @@ ollama list
openclaw models list
```
Pour ajouter un nouveau modèle, il suffit de le télécharger avec Ollama :
Pour ajouter un nouveau modèle, téléchargez-le simplement avec Ollama :
```bash
ollama pull mistral
```
Le nouveau modèle sera automatiquement découvert et disponible à lutilisation.
Le nouveau modèle sera automatiquement détecté et disponible à l'utilisation.
Si vous définissez explicitement `models.providers.ollama`, la découverte automatique est ignorée et vous devez définir les modèles manuellement (voir ci-dessous).
Si vous définissez explicitement `models.providers.ollama`, la détection automatique est ignorée et vous devez définir les modèles manuellement (voir ci-dessous).
## Configuration
### Configuration de base (découverte implicite)
### Configuration de base (détection implicite)
La façon la plus simple dactiver Ollama est via une variable denvironnement :
Le moyen le plus simple d'activer Ollama consiste à utiliser une variable d'environnement :
```bash
export OLLAMA_API_KEY="ollama-local"
@ -164,9 +165,9 @@ export OLLAMA_API_KEY="ollama-local"
Utilisez une configuration explicite lorsque :
- Ollama sexécute sur un autre hôte/port.
- Ollama s'exécute sur un autre hôte/port.
- Vous souhaitez imposer des fenêtres de contexte ou des listes de modèles spécifiques.
- Vous souhaitez des définitions de modèle entièrement manuelles.
- Vous souhaitez des définitions de modèles entièrement manuelles.
```json5
{
@ -193,11 +194,11 @@ Utilisez une configuration explicite lorsque :
}
```
Si `OLLAMA_API_KEY` est défini, vous pouvez omettre `apiKey` dans lentrée du fournisseur et OpenClaw le renseignera pour les vérifications de disponibilité.
Si `OLLAMA_API_KEY` est défini, vous pouvez omettre `apiKey` dans l'entrée du fournisseur et OpenClaw le renseignera pour les vérifications de disponibilité.
### URL de base personnalisée (configuration explicite)
Si Ollama sexécute sur un hôte ou un port différent (la configuration explicite désactive la découverte automatique, donc définissez les modèles manuellement) :
Si Ollama s'exécute sur un hôte ou un port différent (la configuration explicite désactive la détection automatique, vous devez donc définir les modèles manuellement) :
```json5
{
@ -205,8 +206,8 @@ Si Ollama sexécute sur un hôte ou un port différent (la configuration expl
providers: {
ollama: {
apiKey: "ollama-local",
baseUrl: "http://ollama-host:11434", // Pas de /v1 - utilisez lURL de lAPI native Ollama
api: "ollama", // Définissez explicitement pour garantir le comportement natif dappel doutils
baseUrl: "http://ollama-host:11434", // Pas de /v1 - utilisez l'URL de l'API native d'Ollama
api: "ollama", // Définissez explicitement pour garantir le comportement natif d'appel d'outils
},
},
},
@ -214,10 +215,10 @@ Si Ollama sexécute sur un hôte ou un port différent (la configuration expl
```
<Warning>
Najoutez pas `/v1` à lURL. Le chemin `/v1` utilise le mode compatible OpenAI, où lappel doutils nest pas fiable. Utilisez lURL de base Ollama sans suffixe de chemin.
N'ajoutez pas `/v1` à l'URL. Le chemin `/v1` utilise le mode compatible OpenAI, dans lequel l'appel d'outils n'est pas fiable. Utilisez l'URL de base d'Ollama sans suffixe de chemin.
</Warning>
### Sélection de modèle
### Sélection du modèle
Une fois configurés, tous vos modèles Ollama sont disponibles :
@ -236,21 +237,19 @@ Une fois configurés, tous vos modèles Ollama sont disponibles :
## Modèles cloud
Les modèles cloud vous permettent dexécuter des modèles hébergés dans le cloud (par exemple `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) en parallèle de vos modèles locaux.
Les modèles cloud vous permettent d'exécuter des modèles hébergés dans le cloud (par exemple `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) en parallèle de vos modèles locaux.
Pour utiliser les modèles cloud, sélectionnez le mode **Cloud + Local** pendant la configuration. Lassistant vérifie si vous êtes connecté et ouvre un flux de connexion dans le navigateur si nécessaire. Si lauthentification ne peut pas être vérifiée, lassistant bascule vers les valeurs par défaut des modèles locaux.
Pour utiliser les modèles cloud, sélectionnez le mode **Cloud + Local** pendant la configuration. L'assistant vérifie si vous êtes connecté et ouvre un flux de connexion dans le navigateur si nécessaire. Si l'authentification ne peut pas être vérifiée, l'assistant revient aux valeurs par défaut des modèles locaux.
Vous pouvez aussi vous connecter directement sur [ollama.com/signin](https://ollama.com/signin).
Vous pouvez également vous connecter directement sur [ollama.com/signin](https://ollama.com/signin).
## Recherche Web Ollama
## Ollama Web Search
OpenClaw prend également en charge **Ollama Web Search** comme fournisseur groupé
`web_search`.
OpenClaw prend également en charge **Ollama Web Search** comme fournisseur `web_search` intégré.
- Il utilise lhôte Ollama configuré (`models.providers.ollama.baseUrl` lorsquil
est défini, sinon `http://127.0.0.1:11434`).
- Il ne nécessite pas de clé.
- Il nécessite quOllama soit en cours dexécution et connecté avec `ollama signin`.
- Il utilise votre hôte Ollama configuré (`models.providers.ollama.baseUrl` lorsqu'il est défini, sinon `http://127.0.0.1:11434`).
- Il ne nécessite aucune clé.
- Ollama doit être en cours d'exécution et connecté avec `ollama signin`.
Choisissez **Ollama Web Search** pendant `openclaw onboard` ou
`openclaw configure --section web`, ou définissez :
@ -267,13 +266,13 @@ Choisissez **Ollama Web Search** pendant `openclaw onboard` ou
}
```
Pour la configuration complète et le détail du comportement, voir [Ollama Web Search](/fr/tools/ollama-search).
Pour la configuration complète et le détail du comportement, consultez [Ollama Web Search](/fr/tools/ollama-search).
## Avancé
### Modèles de raisonnement
OpenClaw traite par défaut comme capables de raisonnement les modèles dont le nom contient `deepseek-r1`, `reasoning` ou `think` :
OpenClaw traite par défaut les modèles dont le nom contient `deepseek-r1`, `reasoning` ou `think` comme capables de raisonnement :
```bash
ollama pull deepseek-r1:32b
@ -281,19 +280,19 @@ ollama pull deepseek-r1:32b
### Coûts des modèles
Ollama est gratuit et sexécute localement, donc tous les coûts de modèle sont définis à $0.
Ollama est gratuit et s'exécute localement, donc tous les coûts des modèles sont définis à 0 $.
### Configuration du streaming
Lintégration Ollama dOpenClaw utilise par défaut l**API native Ollama** (`/api/chat`), qui prend pleinement en charge simultanément le streaming et lappel doutils. Aucune configuration particulière nest nécessaire.
L'intégration Ollama d'OpenClaw utilise par défaut l'**API native d'Ollama** (`/api/chat`), qui prend entièrement en charge le streaming et l'appel d'outils simultanément. Aucune configuration particulière n'est nécessaire.
#### Ancien mode compatible OpenAI
<Warning>
**Lappel doutils nest pas fiable en mode compatible OpenAI.** Utilisez ce mode uniquement si vous avez besoin du format OpenAI pour un proxy et que vous ne dépendez pas du comportement natif dappel doutils.
**L'appel d'outils n'est pas fiable en mode compatible OpenAI.** Utilisez ce mode uniquement si vous avez besoin du format OpenAI pour un proxy et que vous ne dépendez pas du comportement natif d'appel d'outils.
</Warning>
Si vous devez utiliser à la place lendpoint compatible OpenAI (par ex. derrière un proxy qui ne prend en charge que le format OpenAI), définissez explicitement `api: "openai-completions"` :
Si vous devez utiliser à la place le point de terminaison compatible OpenAI (par exemple derrière un proxy qui ne prend en charge que le format OpenAI), définissez explicitement `api: "openai-completions"` :
```json5
{
@ -302,7 +301,7 @@ Si vous devez utiliser à la place lendpoint compatible OpenAI (par ex. derri
ollama: {
baseUrl: "http://ollama-host:11434/v1",
api: "openai-completions",
injectNumCtxForOpenAICompat: true, // valeur par défaut : true
injectNumCtxForOpenAICompat: true, // par défaut : true
apiKey: "ollama-local",
models: [...]
}
@ -311,9 +310,9 @@ Si vous devez utiliser à la place lendpoint compatible OpenAI (par ex. derri
}
```
Ce mode peut ne pas prendre en charge simultanément le streaming et lappel doutils. Vous devrez peut-être désactiver le streaming avec `params: { streaming: false }` dans la configuration du modèle.
Ce mode peut ne pas prendre en charge simultanément le streaming et l'appel d'outils. Vous devrez peut-être désactiver le streaming avec `params: { streaming: false }` dans la configuration du modèle.
Lorsque `api: "openai-completions"` est utilisé avec Ollama, OpenClaw injecte `options.num_ctx` par défaut afin quOllama ne revienne pas silencieusement à une fenêtre de contexte de 4096. Si votre proxy/amont rejette les champs `options` inconnus, désactivez ce comportement :
Lorsque `api: "openai-completions"` est utilisé avec Ollama, OpenClaw injecte `options.num_ctx` par défaut afin qu'Ollama ne revienne pas silencieusement à une fenêtre de contexte de 4096. Si votre proxy/amont rejette les champs `options` inconnus, désactivez ce comportement :
```json5
{
@ -333,19 +332,19 @@ Lorsque `api: "openai-completions"` est utilisé avec Ollama, OpenClaw injecte `
### Fenêtres de contexte
Pour les modèles découverts automatiquement, OpenClaw utilise la fenêtre de contexte signalée par Ollama lorsquelle est disponible ; sinon, il revient à la fenêtre de contexte Ollama par défaut utilisée par OpenClaw. Vous pouvez remplacer `contextWindow` et `maxTokens` dans la configuration explicite du fournisseur.
Pour les modèles détectés automatiquement, OpenClaw utilise la fenêtre de contexte signalée par Ollama lorsqu'elle est disponible ; sinon, il revient à la fenêtre de contexte Ollama par défaut utilisée par OpenClaw. Vous pouvez remplacer `contextWindow` et `maxTokens` dans la configuration explicite du fournisseur.
## Dépannage
### Ollama non détecté
Assurez-vous quOllama est en cours dexécution, que vous avez défini `OLLAMA_API_KEY` (ou un profil dauthentification) et que vous **navez pas** défini dentrée explicite `models.providers.ollama` :
Assurez-vous qu'Ollama est en cours d'exécution, que vous avez défini `OLLAMA_API_KEY` (ou un profil d'authentification) et que vous n'avez **pas** défini d'entrée `models.providers.ollama` explicite :
```bash
ollama serve
```
Et que lAPI est accessible :
Et que l'API est accessible :
```bash
curl http://localhost:11434/api/tags
@ -353,10 +352,10 @@ curl http://localhost:11434/api/tags
### Aucun modèle disponible
Si votre modèle nest pas listé, soit :
Si votre modèle n'est pas répertorié, soit :
- téléchargez le modèle localement, soit
- définissez explicitement le modèle dans `models.providers.ollama`.
- téléchargez le modèle localement, ou
- définissez le modèle explicitement dans `models.providers.ollama`.
Pour ajouter des modèles :
@ -369,10 +368,10 @@ ollama pull llama3.3 # Ou un autre modèle
### Connexion refusée
Vérifiez quOllama sexécute sur le bon port :
Vérifiez qu'Ollama s'exécute sur le bon port :
```bash
# Vérifier si Ollama est en cours dexécution
# Vérifier si Ollama est en cours d'exécution
ps aux | grep ollama
# Ou redémarrer Ollama
@ -381,6 +380,6 @@ ollama serve
## Voir aussi
- [Fournisseurs de modèles](/fr/concepts/model-providers) - Vue densemble de tous les fournisseurs
- [Sélection de modèle](/fr/concepts/models) - Comment choisir les modèles
- [Configuration](/fr/gateway/configuration) - Référence complète de configuration
- [Fournisseurs de modèles](/fr/concepts/model-providers) - Vue d'ensemble de tous les fournisseurs
- [Sélection des modèles](/fr/concepts/models) - Comment choisir des modèles
- [Configuration](/fr/gateway/configuration) - Référence complète de la configuration