chore(i18n): refresh fr translations
This commit is contained in:
parent
c297b7038e
commit
09a558d9e4
@ -1,74 +1,74 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous souhaitez que la promotion de la mémoire s’exécute automatiquement
|
||||
- Vous voulez comprendre ce que fait chaque phase de Dreaming
|
||||
- Vous voulez 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, plus un journal de rêves
|
||||
title: Dreaming (expérimental)
|
||||
- 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 qu’un journal des rêves
|
||||
title: Dreaming
|
||||
x-i18n:
|
||||
generated_at: "2026-04-15T06:56:37Z"
|
||||
generated_at: "2026-04-15T14:40:40Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 5882a5068f2eabe54ca9893184e5385330a432b921870c38626399ce11c31e25
|
||||
source_hash: a5bcaec80f62e7611ed533094ef1917bd72c885f57252824db910e1f0496adc6
|
||||
source_path: concepts/dreaming.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Dreaming (expérimental)
|
||||
# Dreaming
|
||||
|
||||
Dreaming est le système de consolidation de la mémoire en arrière-plan dans `memory-core`.
|
||||
Il aide OpenClaw à déplacer les signaux forts à court terme vers une mémoire durable tout en
|
||||
Il aide OpenClaw à déplacer les signaux forts de mémoire à court terme vers une mémoire durable tout en
|
||||
gardant le processus explicable et révisable.
|
||||
|
||||
Dreaming est **optionnel** et désactivé par défaut.
|
||||
|
||||
## Ce que Dreaming écrit
|
||||
|
||||
Dreaming conserve deux types de sortie :
|
||||
Dreaming conserve deux types de sortie :
|
||||
|
||||
- **État machine** dans `memory/.dreams/` (magasin de rappel, signaux de phase, points de contrôle d’ingestion, verrous).
|
||||
- **Sortie lisible par des humains** dans `DREAMS.md` (ou `dreams.md` existant) et des fichiers de rapport de phase facultatifs sous `memory/dreaming/<phase>/YYYY-MM-DD.md`.
|
||||
- **Sortie lisible par des humains** dans `DREAMS.md` (ou le `dreams.md` existant) et des 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`.
|
||||
|
||||
## Modèle de phase
|
||||
|
||||
Dreaming utilise trois phases coopératives :
|
||||
Dreaming utilise trois phases coopératives :
|
||||
|
||||
| Phase | Objectif | Écriture durable |
|
||||
| ----- | ----------------------------------------- | ----------------- |
|
||||
| Light | Trier et préparer le matériel récent à court terme | Non |
|
||||
| Light | Trier et préparer le contenu récent à court terme | Non |
|
||||
| Deep | É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 d’implémentation internes, et non des « modes »
|
||||
distincts configurés par l’utilisateur.
|
||||
Ces phases sont des détails d’implémentation internes, pas des « modes »
|
||||
séparés configurés par l’utilisateur.
|
||||
|
||||
### Phase Light
|
||||
|
||||
La phase Light ingère les signaux récents de mémoire quotidienne et les traces de rappel, les déduplique,
|
||||
et prépare les lignes candidates.
|
||||
et prépare des lignes candidates.
|
||||
|
||||
- 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.
|
||||
- Lit l’état de rappel à court terme, les fichiers récents de mémoire quotidienne et les transcriptions de session expurgées lorsque disponibles.
|
||||
- Écrit un bloc géré `## Light Sleep` lorsque le stockage inclut une sortie en ligne.
|
||||
- Enregistre des signaux de renforcement pour le classement Deep ultérieur.
|
||||
- N’écrit jamais dans `MEMORY.md`.
|
||||
|
||||
### Phase Deep
|
||||
|
||||
La phase Deep décide de ce qui devient une mémoire à long terme.
|
||||
La phase Deep décide de ce qui devient de la mémoire à long terme.
|
||||
|
||||
- Classe les candidats à l’aide d’un score pondéré et de seuils de validation.
|
||||
- Exige que `minScore`, `minRecallCount` et `minUniqueQueries` soient atteints.
|
||||
- Réhydrate les extraits à partir des fichiers quotidiens actifs avant l’écriture, de sorte que les extraits obsolètes ou supprimés soient ignorés.
|
||||
- Réhydrate les extraits à partir des fichiers quotidiens actifs avant l’écriture, afin que les extraits obsolètes/supprimés soient ignoré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 peut éventuellement écrire `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.
|
||||
- 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 en ligne.
|
||||
- Enregistre des signaux de renforcement REM utilisés par le classement Deep.
|
||||
- N’écrit jamais dans `MEMORY.md`.
|
||||
@ -76,58 +76,56 @@ La phase REM extrait des motifs et des signaux réflexifs.
|
||||
## 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 Light en plus des signaux de
|
||||
mémoire quotidienne et des traces de rappel. Le contenu personnel et sensible est expurgé
|
||||
avant l’ingestion.
|
||||
des transcriptions sont disponibles, elles sont injectées dans la phase Light avec les signaux de mémoire quotidienne
|
||||
et les traces de rappel. Le contenu personnel et sensible est expurgé
|
||||
avant ingestion.
|
||||
|
||||
## Journal des rêves
|
||||
|
||||
Dreaming conserve aussi un **journal des rêves** narratif dans `DREAMS.md`.
|
||||
Après que chaque phase a accumulé suffisamment de matière, `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 au journal.
|
||||
Dreaming conserve également un **journal des rêves** narratif dans `DREAMS.md`.
|
||||
Après que chaque phase dispose de suffisamment de matière, `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 l’interface 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.
|
||||
Les artefacts de journal/rapport générés par Dreaming sont exclus de la
|
||||
promotion à court terme. Seuls les extraits de mémoire ancrés dans les faits peuvent être promus dans
|
||||
promotion à court terme. Seuls les extraits de mémoire fondés peuvent être promus dans
|
||||
`MEMORY.md`.
|
||||
|
||||
Il existe aussi un circuit de remplissage historique ancré dans les faits pour les travaux de révision et de récupération :
|
||||
Il existe également une voie de remplissage historique fondée pour les travaux de révision et de récupération :
|
||||
|
||||
- `memory rem-harness --path ... --grounded` prévisualise la sortie du journal ancré dans les faits à partir des notes historiques `YYYY-MM-DD.md`.
|
||||
- `memory rem-backfill --path ...` écrit des entrées réversibles de journal ancré dans les faits dans `DREAMS.md`.
|
||||
- `memory rem-backfill --path ... --stage-short-term` prépare des candidats durables ancrés dans les faits dans le même magasin de preuves à court terme que la phase Deep normale utilise déjà.
|
||||
- `memory rem-backfill --rollback` et `--rollback-short-term` suppriment ces artefacts de remplissage préparés sans toucher aux entrées ordinaires du journal ni au rappel actif à court terme.
|
||||
- `memory rem-harness --path ... --grounded` prévisualise une sortie de journal fondée à partir de notes historiques `YYYY-MM-DD.md`.
|
||||
- `memory rem-backfill --path ...` écrit des entrées de journal fondées réversibles dans `DREAMS.md`.
|
||||
- `memory rem-backfill --path ... --stage-short-term` prépare des candidats durables fondés dans le même magasin de preuves à court terme que celui déjà utilisé par la phase Deep normale.
|
||||
- `memory rem-backfill --rollback` et `--rollback-short-term` suppriment ces artefacts de remplissage préparés sans toucher aux entrées de journal ordinaires ni au rappel actif à court terme.
|
||||
|
||||
L’interface Control expose le même flux de remplissage/réinitialisation du journal afin que vous puissiez inspecter
|
||||
les résultats dans la scène Dreams avant de décider si les candidats ancrés dans les faits
|
||||
méritent une promotion. La scène affiche aussi une voie ancrée distincte pour que vous puissiez voir
|
||||
quelles entrées préparées à court terme proviennent d’une relecture historique, quels éléments promus
|
||||
ont été guidés par des données ancrées dans les faits, et effacer uniquement les entrées préparées ancrées
|
||||
les résultats dans la scène Dreams avant de décider si les candidats fondés
|
||||
méritent une promotion. La scène affiche également une voie fondée distincte pour que vous puissiez voir
|
||||
quelles entrées préparées à court terme proviennent de la relecture historique, quels éléments promus
|
||||
ont été guidés par du contenu fondé, et effacer uniquement les entrées préparées fondées
|
||||
sans toucher à l’état ordinaire actif à court terme.
|
||||
|
||||
## Signaux de classement Deep
|
||||
|
||||
Le classement Deep utilise six signaux de base pondérés plus le renforcement de phase :
|
||||
Le classement Deep utilise six signaux de base pondérés ainsi qu’un renforcement par phase :
|
||||
|
||||
| Signal | Poids | Description |
|
||||
| ------------------- | ----- | ------------------------------------------------- |
|
||||
| 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 de requête/jour qui l’ont fait apparaître |
|
||||
| Diversité des requêtes | 0.15 | Contextes distincts de requête/jour qui l’ont fait émerger |
|
||||
| Récence | 0.15 | Score de fraîcheur décroissant avec le temps |
|
||||
| Consolidation | 0.10 | Force de récurrence sur plusieurs jours |
|
||||
| Richesse conceptuelle | 0.06 | Densité des balises de concept à partir de l’extrait/du chemin |
|
||||
|
||||
Les occurrences des phases Light et REM ajoutent un petit bonus décroissant avec le temps à partir de
|
||||
Les occurrences des phases Light et REM ajoutent un faible bonus décroissant avec le temps à partir de
|
||||
`memory/.dreams/phase-signals.json`.
|
||||
|
||||
## Planification
|
||||
|
||||
Lorsqu’il est activé, `memory-core` gère automatiquement une tâche Cron pour un cycle complet
|
||||
de Dreaming. Chaque cycle exécute les phases dans l’ordre : light -> REM -> deep.
|
||||
Lorsqu’il est activé, `memory-core` gère automatiquement une tâche Cron pour un balayage Dreaming complet. Chaque balayage exécute les phases dans l’ordre : light -> REM -> deep.
|
||||
|
||||
Comportement de cadence par défaut :
|
||||
Comportement de cadence par défaut :
|
||||
|
||||
| Paramètre | Par défaut |
|
||||
| -------------------- | ---------- |
|
||||
@ -135,7 +133,7 @@ Comportement de cadence par défaut :
|
||||
|
||||
## Démarrage rapide
|
||||
|
||||
Activer Dreaming :
|
||||
Activer Dreaming :
|
||||
|
||||
```json
|
||||
{
|
||||
@ -153,7 +151,7 @@ Activer Dreaming :
|
||||
}
|
||||
```
|
||||
|
||||
Activer Dreaming avec une cadence de cycle personnalisée :
|
||||
Activer Dreaming avec une cadence de balayage personnalisée :
|
||||
|
||||
```json
|
||||
{
|
||||
@ -184,7 +182,7 @@ Activer Dreaming avec une cadence de cycle personnalisée :
|
||||
|
||||
## Flux de travail CLI
|
||||
|
||||
Utilisez la promotion CLI pour prévisualiser ou appliquer manuellement :
|
||||
Utilisez la promotion CLI pour prévisualiser ou appliquer manuellement :
|
||||
|
||||
```bash
|
||||
openclaw memory promote
|
||||
@ -193,10 +191,10 @@ openclaw memory promote --limit 5
|
||||
openclaw memory status --deep
|
||||
```
|
||||
|
||||
La commande manuelle `memory promote` utilise par défaut les seuils de la phase Deep, sauf en cas de remplacement
|
||||
La commande manuelle `memory promote` utilise par défaut les seuils de la phase Deep, sauf remplacement
|
||||
par des indicateurs CLI.
|
||||
|
||||
Expliquer pourquoi un candidat spécifique serait ou ne serait pas promu :
|
||||
Expliquer pourquoi un candidat spécifique serait ou ne serait pas promu :
|
||||
|
||||
```bash
|
||||
openclaw memory promote-explain "router vlan"
|
||||
@ -204,7 +202,7 @@ openclaw memory promote-explain "router vlan" --json
|
||||
```
|
||||
|
||||
Prévisualiser les réflexions REM, les vérités candidates et la sortie de promotion Deep sans
|
||||
rien écrire :
|
||||
rien écrire :
|
||||
|
||||
```bash
|
||||
openclaw memory rem-harness
|
||||
@ -220,26 +218,26 @@ Tous les paramètres se trouvent sous `plugins.entries.memory-core.config.dreami
|
||||
| `enabled` | `false` |
|
||||
| `frequency` | `0 3 * * *` |
|
||||
|
||||
La politique des phases, les seuils et le comportement de stockage sont des détails
|
||||
d’implémentation internes (et non une configuration destinée aux utilisateurs).
|
||||
La politique de phase, les seuils et le comportement de stockage sont des détails d’implémentation
|
||||
internes (pas une configuration destinée à l’utilisateur).
|
||||
|
||||
Voir la [référence de configuration Memory](/fr/reference/memory-config#dreaming-experimental)
|
||||
Voir la [référence de configuration de la mémoire](/fr/reference/memory-config#dreaming)
|
||||
pour la liste complète des clés.
|
||||
|
||||
## Interface Dreams
|
||||
|
||||
Lorsqu’il est activé, l’onglet **Dreams** du Gateway affiche :
|
||||
Lorsqu’il est activé, l’onglet **Dreams** de Gateway affiche :
|
||||
|
||||
- l’état actuel d’activation de Dreaming
|
||||
- le statut au niveau des phases et la présence d’un cycle géré
|
||||
- les nombres d’éléments à court terme, ancrés dans les faits, de signaux et promus aujourd’hui
|
||||
- l’état au niveau des phases et la présence d’un balayage géré
|
||||
- les nombres d’éléments à court terme, fondés, de signaux et promus aujourd’hui
|
||||
- l’heure de la prochaine exécution planifiée
|
||||
- une voie ancrée distincte dans la scène pour les entrées préparées issues d’une relecture historique
|
||||
- une voie de scène fondée distincte pour les entrées de relecture historique préparées
|
||||
- un lecteur de journal des rêves extensible alimenté par `doctor.memory.dreamDiary`
|
||||
|
||||
## Lié
|
||||
## Liens associés
|
||||
|
||||
- [Memory](/fr/concepts/memory)
|
||||
- [Recherche Memory](/fr/concepts/memory-search)
|
||||
- [Mémoire](/fr/concepts/memory)
|
||||
- [Recherche en mémoire](/fr/concepts/memory-search)
|
||||
- [CLI memory](/cli/memory)
|
||||
- [Référence de configuration Memory](/fr/reference/memory-config)
|
||||
- [Référence de configuration de la mémoire](/fr/reference/memory-config)
|
||||
|
||||
54
docs/fr/concepts/experimental-features.md
Normal file
54
docs/fr/concepts/experimental-features.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous voyez une clé de configuration `.experimental` et vous voulez savoir si elle est stable.
|
||||
- Vous voulez essayer des fonctionnalités d’exécution en préversion sans les confondre avec les valeurs par défaut normales.
|
||||
- Vous voulez un endroit unique pour trouver les indicateurs expérimentaux actuellement documentés.
|
||||
summary: Que signifient les indicateurs expérimentaux dans OpenClaw et lesquels sont actuellement documentés ?
|
||||
title: Fonctionnalités expérimentales
|
||||
x-i18n:
|
||||
generated_at: "2026-04-15T14:40:32Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2d1c7b3d4cd56ef8a0bdab1deb9918e9b2c9a33f956d63193246087f8633dcf3
|
||||
source_path: concepts/experimental-features.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Fonctionnalités expérimentales
|
||||
|
||||
Les fonctionnalités expérimentales dans OpenClaw sont des **surfaces de préversion activées explicitement**. Elles sont
|
||||
placées derrière des indicateurs explicites parce qu’elles ont encore besoin d’une utilisation réelle avant de
|
||||
mériter une valeur par défaut stable ou un contrat public durable.
|
||||
|
||||
Traitez-les différemment d’une configuration normale :
|
||||
|
||||
- Laissez-les **désactivées par défaut** à moins que la documentation associée ne vous dise d’en essayer une.
|
||||
- Attendez-vous à ce que leur **structure et leur comportement changent** plus rapidement que pour une configuration stable.
|
||||
- Privilégiez d’abord la voie stable lorsqu’elle existe déjà.
|
||||
- Si vous déployez OpenClaw à grande échelle, testez les indicateurs expérimentaux dans un environnement plus restreint
|
||||
avant de les intégrer dans une base de référence partagée.
|
||||
|
||||
## Indicateurs actuellement documentés
|
||||
|
||||
| Surface | Key | Use it when | More |
|
||||
| ------------------------ | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||
| Environnement d’exécution des modèles locaux | `agents.defaults.experimental.localModelLean` | Un backend local plus petit ou plus strict a du mal avec la surface complète des outils par défaut d’OpenClaw | [Modèles locaux](/fr/gateway/local-models) |
|
||||
| Recherche en mémoire | `agents.defaults.memorySearch.experimental.sessionMemory` | Vous voulez que `memory_search` indexe les transcriptions des sessions précédentes et acceptez le coût supplémentaire de stockage et d’indexation | [Référence de configuration de la mémoire](/fr/reference/memory-config#session-memory-search-experimental) |
|
||||
| Outil de planification structurée | `tools.experimental.planTool` | Vous voulez que l’outil structuré `update_plan` soit exposé pour le suivi de travaux en plusieurs étapes dans les environnements d’exécution et interfaces compatibles | [Référence de configuration de la Gateway](/fr/gateway/configuration-reference#toolsexperimental) |
|
||||
|
||||
## Mode allégé pour modèles locaux
|
||||
|
||||
`agents.defaults.experimental.localModelLean: true` est une soupape de sécurité
|
||||
pour les configurations de modèles locaux plus faibles. Il réduit les outils par défaut lourds comme
|
||||
`browser`, `cron` et `message` afin que la structure du prompt soit plus petite et moins fragile
|
||||
pour les backends compatibles OpenAI à petit contexte ou plus stricts.
|
||||
|
||||
Ce n’est intentionnellement **pas** la voie normale. Si votre backend gère correctement l’environnement d’exécution
|
||||
complet, laissez cette option désactivée.
|
||||
|
||||
## Expérimental ne veut pas dire caché
|
||||
|
||||
Si une fonctionnalité est expérimentale, OpenClaw doit l’indiquer clairement dans la documentation et dans le
|
||||
chemin de configuration lui-même. En revanche, il ne doit **pas** glisser un comportement de préversion dans un
|
||||
paramètre qui semble stable et prétendre que c’est normal. C’est comme ça que les surfaces de configuration
|
||||
deviennent désordonnées.
|
||||
@ -3,31 +3,31 @@ read_when:
|
||||
- Vous voulez comprendre comment fonctionne `memory_search`
|
||||
- Vous voulez choisir un fournisseur d’embeddings
|
||||
- Vous voulez ajuster la qualité de la recherche
|
||||
summary: Comment la recherche en mémoire trouve des notes pertinentes à l’aide des embeddings et de la récupération hybride
|
||||
title: Recherche en mémoire
|
||||
summary: Comment la recherche mémoire trouve des notes pertinentes à l’aide d’embeddings et d’une récupération hybride
|
||||
title: Recherche mémoire
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T23:28:10Z"
|
||||
generated_at: "2026-04-15T14:40:31Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 71fde251b7d2dc455574aa458e7e09136f30613609ad8dafeafd53b2729a0310
|
||||
source_hash: f5757aa8fe8f7fec30ef5c826f72230f591ce4cad591d81a091189d50d4262ed
|
||||
source_path: concepts/memory-search.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Recherche en mémoire
|
||||
# Recherche mémoire
|
||||
|
||||
`memory_search` trouve des notes pertinentes à partir de vos fichiers mémoire, même lorsque la formulation diffère du texte d’origine. Elle fonctionne en indexant la mémoire en petits fragments et en les recherchant à l’aide des embeddings, de mots-clés, ou des deux.
|
||||
`memory_search` trouve des notes pertinentes à partir de vos fichiers mémoire, même lorsque la formulation diffère du texte d’origine. Il fonctionne en indexant la mémoire en petits segments et en les recherchant à l’aide d’embeddings, de mots-clés, ou des deux.
|
||||
|
||||
## Démarrage rapide
|
||||
|
||||
Si vous avez une clé API OpenAI, Gemini, Voyage ou Mistral configurée, la recherche en mémoire fonctionne automatiquement. Pour définir explicitement un fournisseur :
|
||||
Si vous avez un abonnement GitHub Copilot, ou une clé API OpenAI, Gemini, Voyage ou Mistral configurée, la recherche mémoire fonctionne automatiquement. Pour définir explicitement un fournisseur :
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
defaults: {
|
||||
memorySearch: {
|
||||
provider: "openai", // or "gemini", "local", "ollama", etc.
|
||||
provider: "openai", // ou "gemini", "local", "ollama", etc.
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -38,19 +38,20 @@ Pour des embeddings locaux sans clé API, utilisez `provider: "local"` (nécessi
|
||||
|
||||
## Fournisseurs pris en charge
|
||||
|
||||
| Fournisseur | ID | Nécessite une clé API | Remarques |
|
||||
| ----------- | --------- | --------------------- | --------------------------------------------------- |
|
||||
| OpenAI | `openai` | Oui | Détecté automatiquement, rapide |
|
||||
| Gemini | `gemini` | Oui | Prend en charge l’indexation d’images et d’audio |
|
||||
| Voyage | `voyage` | Oui | Détecté automatiquement |
|
||||
| Mistral | `mistral` | Oui | Détecté automatiquement |
|
||||
| Bedrock | `bedrock` | Non | Détecté automatiquement lorsque la chaîne d’identifiants AWS est résolue |
|
||||
| Ollama | `ollama` | Non | Local, doit être défini explicitement |
|
||||
| Local | `local` | Non | Modèle GGUF, téléchargement d’environ 0,6 Go |
|
||||
| Fournisseur | ID | Nécessite une clé API | Notes |
|
||||
| -------------- | ---------------- | --------------------- | ----------------------------------------------------- |
|
||||
| Bedrock | `bedrock` | Non | Détecté automatiquement lorsque la chaîne d’identifiants AWS est résolue |
|
||||
| Gemini | `gemini` | Oui | Prend en charge l’indexation d’images et d’audio |
|
||||
| GitHub Copilot | `github-copilot` | Non | Détecté automatiquement, utilise l’abonnement Copilot |
|
||||
| Local | `local` | Non | Modèle GGUF, téléchargement d’environ 0,6 Go |
|
||||
| Mistral | `mistral` | Oui | Détecté automatiquement |
|
||||
| Ollama | `ollama` | Non | Local, doit être défini explicitement |
|
||||
| OpenAI | `openai` | Oui | Détecté automatiquement, rapide |
|
||||
| Voyage | `voyage` | Oui | Détecté automatiquement |
|
||||
|
||||
## Fonctionnement de la recherche
|
||||
|
||||
OpenClaw exécute deux chemins de récupération en parallèle et fusionne les résultats :
|
||||
OpenClaw exécute deux chemins de récupération en parallèle et fusionne les résultats :
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@ -63,21 +64,20 @@ flowchart LR
|
||||
M --> R["Top Results"]
|
||||
```
|
||||
|
||||
- **La recherche vectorielle** trouve des notes au sens similaire (« gateway host » correspond à « la machine qui exécute OpenClaw »).
|
||||
- **La recherche vectorielle** trouve des notes au sens similaire ("gateway host" correspond à "the machine running OpenClaw").
|
||||
- **La recherche par mots-clés BM25** trouve les correspondances exactes (ID, chaînes d’erreur, clés de configuration).
|
||||
|
||||
Si un seul chemin est disponible (pas d’embeddings ou pas de FTS), l’autre s’exécute seul.
|
||||
|
||||
Lorsque les embeddings ne sont pas disponibles, OpenClaw utilise tout de même un classement lexical sur les résultats FTS au lieu de revenir uniquement à un ordre brut par correspondance exacte. Ce mode dégradé favorise les fragments avec une meilleure couverture des termes de la requête et des chemins de fichiers pertinents, ce qui maintient un bon rappel même sans `sqlite-vec` ni fournisseur d’embeddings.
|
||||
Lorsque les embeddings ne sont pas disponibles, OpenClaw utilise tout de même un classement lexical sur les résultats FTS au lieu de revenir uniquement à un tri brut par correspondance exacte. Ce mode dégradé met en avant les segments avec une meilleure couverture des termes de la requête et des chemins de fichiers pertinents, ce qui permet de conserver un bon rappel même sans `sqlite-vec` ni fournisseur d’embeddings.
|
||||
|
||||
## Améliorer la qualité de la recherche
|
||||
|
||||
Deux fonctionnalités optionnelles aident lorsque vous avez un long historique de notes :
|
||||
Deux fonctionnalités optionnelles aident lorsque vous avez un historique de notes volumineux :
|
||||
|
||||
### Décroissance temporelle
|
||||
|
||||
Les anciennes notes perdent progressivement du poids dans le classement afin que les informations récentes remontent en premier.
|
||||
Avec la demi-vie par défaut de 30 jours, une note du mois dernier obtient 50 % de son poids d’origine. Les fichiers persistants comme `MEMORY.md` ne sont jamais affectés par cette décroissance.
|
||||
Les anciennes notes perdent progressivement du poids dans le classement afin que les informations récentes remontent en premier. Avec la demi-vie par défaut de 30 jours, une note du mois dernier obtient un score égal à 50 % de son poids d’origine. Les fichiers pérennes comme `MEMORY.md` ne sont jamais affectés par cette décroissance.
|
||||
|
||||
<Tip>
|
||||
Activez la décroissance temporelle si votre agent a plusieurs mois de notes quotidiennes et que des informations obsolètes continuent de dépasser le contexte récent dans le classement.
|
||||
@ -85,10 +85,10 @@ Activez la décroissance temporelle si votre agent a plusieurs mois de notes quo
|
||||
|
||||
### MMR (diversité)
|
||||
|
||||
Réduit les résultats redondants. Si cinq notes mentionnent toutes la même configuration de routeur, MMR garantit que les premiers résultats couvrent différents sujets au lieu de se répéter.
|
||||
Réduit les résultats redondants. Si cinq notes mentionnent toutes la même configuration de routeur, MMR veille à ce que les premiers résultats couvrent différents sujets au lieu de se répéter.
|
||||
|
||||
<Tip>
|
||||
Activez MMR si `memory_search` continue de renvoyer des extraits presque dupliqués provenant de différentes notes quotidiennes.
|
||||
Activez MMR si `memory_search` continue de renvoyer des extraits quasi identiques provenant de différentes notes quotidiennes.
|
||||
</Tip>
|
||||
|
||||
### Activer les deux
|
||||
@ -112,21 +112,21 @@ Activez MMR si `memory_search` continue de renvoyer des extraits presque dupliqu
|
||||
|
||||
## Mémoire multimodale
|
||||
|
||||
Avec Gemini Embedding 2, vous pouvez indexer des images et des fichiers audio en plus du Markdown. Les requêtes de recherche restent textuelles, mais elles correspondent aussi au contenu visuel et audio. Consultez la [référence de configuration de la mémoire](/fr/reference/memory-config) pour la configuration.
|
||||
Avec Gemini Embedding 2, vous pouvez indexer des images et des fichiers audio en plus du Markdown. Les requêtes de recherche restent textuelles, mais elles correspondent à du contenu visuel et audio. Consultez la [référence de configuration de la mémoire](/fr/reference/memory-config) pour la configuration.
|
||||
|
||||
## Recherche dans la mémoire de session
|
||||
|
||||
Vous pouvez éventuellement indexer les transcriptions de session afin que `memory_search` puisse rappeler des conversations précédentes. Cette fonctionnalité est activée sur opt-in via `memorySearch.experimental.sessionMemory`. Consultez la [référence de configuration](/fr/reference/memory-config) pour plus de détails.
|
||||
Vous pouvez éventuellement indexer les transcriptions de session afin que `memory_search` puisse se souvenir de conversations antérieures. Cette fonctionnalité est optionnelle via `memorySearch.experimental.sessionMemory`. Consultez la [référence de configuration](/fr/reference/memory-config) pour plus de détails.
|
||||
|
||||
## Dépannage
|
||||
|
||||
**Aucun résultat ?** Exécutez `openclaw memory status` pour vérifier l’index. S’il est vide, exécutez `openclaw memory index --force`.
|
||||
**Aucun résultat ?** Exécutez `openclaw memory status` pour vérifier l’index. S’il est vide, exécutez `openclaw memory index --force`.
|
||||
|
||||
**Seulement des correspondances par mots-clés ?** Il se peut que votre fournisseur d’embeddings ne soit pas configuré. Vérifiez avec `openclaw memory status --deep`.
|
||||
**Uniquement des correspondances par mot-clé ?** Il se peut que votre fournisseur d’embeddings ne soit pas configuré. Vérifiez avec `openclaw memory status --deep`.
|
||||
|
||||
**Le texte CJK est introuvable ?** Reconstruisez l’index FTS avec `openclaw memory index --force`.
|
||||
**Texte CJK introuvable ?** Reconstruisez l’index FTS avec `openclaw memory index --force`.
|
||||
|
||||
## Pour aller plus loin
|
||||
## Lectures complémentaires
|
||||
|
||||
- [Active Memory](/fr/concepts/active-memory) -- mémoire de sous-agent pour les sessions de chat interactives
|
||||
- [Mémoire](/fr/concepts/memory) -- disposition des fichiers, backends, outils
|
||||
|
||||
@ -2,82 +2,82 @@
|
||||
read_when:
|
||||
- Vous voulez comprendre comment fonctionne la mémoire
|
||||
- Vous voulez savoir quels fichiers de mémoire écrire
|
||||
summary: Comment OpenClaw se souvient des choses d'une session à l'autre
|
||||
title: Vue d'ensemble de la mémoire
|
||||
summary: Comment OpenClaw se souvient des choses d’une session à l’autre
|
||||
title: Vue d’ensemble de la mémoire
|
||||
x-i18n:
|
||||
generated_at: "2026-04-09T01:27:50Z"
|
||||
generated_at: "2026-04-15T14:40:30Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2fe47910f5bf1c44be379e971c605f1cb3a29befcf2a7ee11fb3833cbe3b9059
|
||||
source_hash: ad1adafe1d81f1703d24f48a9c9da2b25a0ebbd4aad4f65d8bde5df78195d55b
|
||||
source_path: concepts/memory.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Vue d'ensemble de la mémoire
|
||||
# Vue d’ensemble de la mémoire
|
||||
|
||||
OpenClaw se souvient des choses en écrivant des **fichiers Markdown simples** dans l'espace de travail de votre agent. Le modèle ne « se souvient » que de ce qui est enregistré sur le disque -- il n'y a pas d'état caché.
|
||||
OpenClaw se souvient des choses en écrivant des **fichiers Markdown simples** dans l’espace de travail de votre agent. Le modèle ne « se souvient » que de ce qui est enregistré sur le disque — il n’y a pas d’état caché.
|
||||
|
||||
## Fonctionnement
|
||||
|
||||
Votre agent dispose de trois fichiers liés à la mémoire :
|
||||
|
||||
- **`MEMORY.md`** -- mémoire à long terme. Faits durables, préférences et décisions. Chargé au début de chaque session de message direct.
|
||||
- **`memory/YYYY-MM-DD.md`** -- notes quotidiennes. Contexte courant et observations. Les notes d'aujourd'hui et d'hier sont chargées automatiquement.
|
||||
- **`DREAMS.md`** (expérimental, facultatif) -- journal des rêves et résumés des passes de rêverie pour relecture humaine, y compris des entrées de rétrospective historique fondée.
|
||||
- **`MEMORY.md`** — mémoire à long terme. Faits durables, préférences et décisions. Chargé au début de chaque session de message privé.
|
||||
- **`memory/YYYY-MM-DD.md`** — notes quotidiennes. Contexte courant et observations. Les notes d’aujourd’hui et d’hier sont chargées automatiquement.
|
||||
- **`DREAMS.md`** (optionnel) — journal des rêves et résumés des phases de Dreaming pour relecture humaine, y compris les entrées de remplissage rétrospectif ancrées dans l’historique.
|
||||
|
||||
Ces fichiers se trouvent dans l'espace de travail de l'agent (par défaut `~/.openclaw/workspace`).
|
||||
Ces fichiers se trouvent dans l’espace de travail de l’agent (par défaut `~/.openclaw/workspace`).
|
||||
|
||||
<Tip>
|
||||
Si vous voulez que votre agent se souvienne de quelque chose, demandez-le-lui simplement : « Souviens-toi que je préfère TypeScript. » Il l'écrira dans le fichier approprié.
|
||||
Si vous voulez que votre agent se souvienne de quelque chose, demandez-le-lui simplement : « Souviens-toi que je préfère TypeScript. » Il l’écrira dans le fichier approprié.
|
||||
</Tip>
|
||||
|
||||
## Outils de mémoire
|
||||
|
||||
L'agent dispose de deux outils pour travailler avec la mémoire :
|
||||
L’agent dispose de deux outils pour travailler avec la mémoire :
|
||||
|
||||
- **`memory_search`** -- trouve les notes pertinentes à l'aide de la recherche sémantique, même lorsque la formulation diffère de l'original.
|
||||
- **`memory_get`** -- lit un fichier de mémoire spécifique ou une plage de lignes.
|
||||
- **`memory_search`** — trouve des notes pertinentes à l’aide de la recherche sémantique, même lorsque la formulation diffère de l’original.
|
||||
- **`memory_get`** — lit un fichier de mémoire spécifique ou une plage de lignes.
|
||||
|
||||
Les deux outils sont fournis par le plugin de mémoire actif (par défaut : `memory-core`).
|
||||
Ces deux outils sont fournis par le Plugin de mémoire actif (par défaut : `memory-core`).
|
||||
|
||||
## Plugin compagnon Memory Wiki
|
||||
|
||||
Si vous voulez que la mémoire durable se comporte davantage comme une base de connaissances entretenue que comme de simples notes brutes, utilisez le plugin intégré `memory-wiki`.
|
||||
Si vous voulez que la mémoire durable se comporte davantage comme une base de connaissances maintenue que comme de simples notes brutes, utilisez le Plugin intégré `memory-wiki`.
|
||||
|
||||
`memory-wiki` compile les connaissances durables dans un coffre wiki avec :
|
||||
|
||||
- une structure de page déterministe
|
||||
- une structure de pages déterministe
|
||||
- des affirmations et preuves structurées
|
||||
- le suivi des contradictions et de la fraîcheur
|
||||
- des tableaux de bord générés
|
||||
- des synthèses compilées pour les consommateurs agent/runtime
|
||||
- des condensés compilés pour les consommateurs agent/runtime
|
||||
- des outils natifs du wiki comme `wiki_search`, `wiki_get`, `wiki_apply` et `wiki_lint`
|
||||
|
||||
Il ne remplace pas le plugin de mémoire actif. Le plugin de mémoire actif reste responsable du rappel, de la promotion et de la rêverie. `memory-wiki` ajoute à côté une couche de connaissances riche en provenance.
|
||||
Il ne remplace pas le Plugin de mémoire actif. Le Plugin de mémoire actif reste responsable du rappel, de la promotion et de Dreaming. `memory-wiki` ajoute à côté une couche de connaissances riche en provenance.
|
||||
|
||||
Voir [Memory Wiki](/fr/plugins/memory-wiki).
|
||||
|
||||
## Recherche dans la mémoire
|
||||
## Recherche mémoire
|
||||
|
||||
Lorsqu'un fournisseur d'embeddings est configuré, `memory_search` utilise une **recherche hybride** -- combinant la similarité vectorielle (sens sémantique) avec la correspondance par mots-clés (termes exacts comme les identifiants et les symboles de code). Cela fonctionne immédiatement dès que vous avez une clé API pour n'importe quel fournisseur pris en charge.
|
||||
Lorsqu’un fournisseur d’embeddings est configuré, `memory_search` utilise une **recherche hybride** — en combinant similarité vectorielle (sens sémantique) et correspondance par mots-clés (termes exacts comme les ID et les symboles de code). Cela fonctionne immédiatement dès que vous avez une clé API pour n’importe quel fournisseur pris en charge.
|
||||
|
||||
<Info>
|
||||
OpenClaw détecte automatiquement votre fournisseur d'embeddings à partir des clés API disponibles. Si vous avez configuré une clé OpenAI, Gemini, Voyage ou Mistral, la recherche dans la mémoire est activée automatiquement.
|
||||
OpenClaw détecte automatiquement votre fournisseur d’embeddings à partir des clés API disponibles. Si vous avez configuré une clé OpenAI, Gemini, Voyage ou Mistral, la recherche mémoire est activée automatiquement.
|
||||
</Info>
|
||||
|
||||
Pour plus de détails sur le fonctionnement de la recherche, les options de réglage et la configuration du fournisseur, voir [Memory Search](/fr/concepts/memory-search).
|
||||
|
||||
## Backends de mémoire
|
||||
## Backends mémoire
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Intégré (par défaut)" icon="database" href="/fr/concepts/memory-builtin">
|
||||
Basé sur SQLite. Fonctionne immédiatement avec la recherche par mots-clés, la similarité vectorielle et la recherche hybride. Aucune dépendance supplémentaire.
|
||||
</Card>
|
||||
<Card title="QMD" icon="search" href="/fr/concepts/memory-qmd">
|
||||
Sidecar local-first avec reranking, expansion de requête et capacité d'indexer des répertoires en dehors de l'espace de travail.
|
||||
Sidecar local-first avec reranking, expansion de requête et possibilité d’indexer des répertoires en dehors de l’espace de travail.
|
||||
</Card>
|
||||
<Card title="Honcho" icon="brain" href="/fr/concepts/memory-honcho">
|
||||
Mémoire intersession native IA avec modélisation utilisateur, recherche sémantique et prise en compte de plusieurs agents. Installation par plugin.
|
||||
Mémoire intersession native IA avec modélisation utilisateur, recherche sémantique et conscience multi-agent. Installation par Plugin.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -85,53 +85,53 @@ Mémoire intersession native IA avec modélisation utilisateur, recherche séman
|
||||
|
||||
<CardGroup cols={1}>
|
||||
<Card title="Memory Wiki" icon="book" href="/fr/plugins/memory-wiki">
|
||||
Compile la mémoire durable dans un coffre wiki riche en provenance avec affirmations, tableaux de bord, mode pont et workflows compatibles avec Obsidian.
|
||||
Compile la mémoire durable dans un coffre wiki riche en provenance avec affirmations, tableaux de bord, mode bridge et workflows compatibles avec Obsidian.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Flush automatique de la mémoire
|
||||
## Vidage automatique de la mémoire
|
||||
|
||||
Avant que la [compaction](/fr/concepts/compaction) résume votre conversation, OpenClaw exécute un tour silencieux qui rappelle à l'agent d'enregistrer le contexte important dans les fichiers de mémoire. Cette option est activée par défaut -- vous n'avez rien à configurer.
|
||||
Avant que la [Compaction](/fr/concepts/compaction) ne résume votre conversation, OpenClaw exécute un tour silencieux qui rappelle à l’agent d’enregistrer le contexte important dans les fichiers de mémoire. Cette fonctionnalité est activée par défaut — vous n’avez rien à configurer.
|
||||
|
||||
<Tip>
|
||||
Le flush de la mémoire évite la perte de contexte pendant la compaction. Si votre agent a dans la conversation des faits importants qui ne sont pas encore écrits dans un fichier, ils seront enregistrés automatiquement avant que le résumé n'ait lieu.
|
||||
Le vidage de la mémoire évite la perte de contexte pendant la compaction. Si votre agent a dans la conversation des faits importants qui ne sont pas encore écrits dans un fichier, ils seront enregistrés automatiquement avant que le résumé n’ait lieu.
|
||||
</Tip>
|
||||
|
||||
## Rêverie (expérimental)
|
||||
## Dreaming
|
||||
|
||||
La rêverie est une passe de consolidation en arrière-plan facultative pour la mémoire. Elle collecte des signaux à court terme, évalue les candidats et ne promeut que les éléments qualifiés dans la mémoire à long terme (`MEMORY.md`).
|
||||
Dreaming est une passe optionnelle de consolidation en arrière-plan pour la mémoire. Elle collecte les signaux à court terme, évalue les candidats et ne promeut dans la mémoire à long terme (`MEMORY.md`) que les éléments qualifiés.
|
||||
|
||||
Elle est conçue pour maintenir un signal élevé dans la mémoire à long terme :
|
||||
|
||||
- **Option d'activation** : désactivée par défaut.
|
||||
- **Planifiée** : lorsqu'elle est activée, `memory-core` gère automatiquement une tâche cron récurrente pour une passe complète de rêverie.
|
||||
- **Avec seuils** : les promotions doivent franchir des seuils de score, de fréquence de rappel et de diversité des requêtes.
|
||||
- **Opt-in** : désactivée par défaut.
|
||||
- **Planifiée** : lorsqu’elle est activée, `memory-core` gère automatiquement une tâche Cron récurrente pour une phase complète de Dreaming.
|
||||
- **À seuil** : les promotions doivent franchir des seuils de score, de fréquence de rappel et de diversité des requêtes.
|
||||
- **Révisable** : les résumés de phase et les entrées du journal sont écrits dans `DREAMS.md` pour relecture humaine.
|
||||
|
||||
Pour le comportement des phases, les signaux de score et les détails du journal des rêves, voir [Dreaming (experimental)](/fr/concepts/dreaming).
|
||||
Pour le comportement des phases, les signaux de score et les détails du journal des rêves, voir [Dreaming](/fr/concepts/dreaming).
|
||||
|
||||
## Rétrospective fondée et promotion en direct
|
||||
## Remplissage rétrospectif ancré dans l’historique et promotion en direct
|
||||
|
||||
Le système de rêverie possède désormais deux voies de relecture étroitement liées :
|
||||
Le système de Dreaming dispose désormais de deux voies de relecture étroitement liées :
|
||||
|
||||
- **La rêverie en direct** fonctionne à partir du stockage de rêverie à court terme sous `memory/.dreams/` et c'est ce que la phase profonde normale utilise pour décider ce qui peut être promu dans `MEMORY.md`.
|
||||
- **La rétrospective fondée** lit les notes historiques `memory/YYYY-MM-DD.md` comme des fichiers de jour autonomes et écrit une sortie de relecture structurée dans `DREAMS.md`.
|
||||
- **Le Dreaming en direct** fonctionne à partir du magasin de Dreaming à court terme situé dans `memory/.dreams/` et correspond à ce que la phase profonde normale utilise pour décider de ce qui peut être promu dans `MEMORY.md`.
|
||||
- **Le remplissage rétrospectif ancré dans l’historique** lit les anciennes notes `memory/YYYY-MM-DD.md` comme des fichiers journaliers autonomes et écrit une sortie de relecture structurée dans `DREAMS.md`.
|
||||
|
||||
La rétrospective fondée est utile lorsque vous voulez rejouer d'anciennes notes et examiner ce que le système considère comme durable sans modifier manuellement `MEMORY.md`.
|
||||
Le remplissage rétrospectif ancré dans l’historique est utile lorsque vous voulez rejouer d’anciennes notes et examiner ce que le système considère comme durable sans modifier manuellement `MEMORY.md`.
|
||||
|
||||
Lorsque vous utilisez :
|
||||
Quand vous utilisez :
|
||||
|
||||
```bash
|
||||
openclaw memory rem-backfill --path ./memory --stage-short-term
|
||||
```
|
||||
|
||||
les candidats durables fondés ne sont pas promus directement. Ils sont préparés dans le même stockage de rêverie à court terme que la phase profonde normale utilise déjà. Cela signifie :
|
||||
les candidats durables ancrés dans l’historique ne sont pas promus directement. Ils sont placés dans le même magasin de Dreaming à court terme que celui déjà utilisé par la phase profonde normale. Cela signifie que :
|
||||
|
||||
- `DREAMS.md` reste la surface de relecture humaine.
|
||||
- le stockage à court terme reste la surface de classement orientée machine.
|
||||
- `MEMORY.md` n'est toujours écrit que par la promotion profonde.
|
||||
- le magasin à court terme reste la surface de classement orientée machine.
|
||||
- `MEMORY.md` n’est toujours écrit que par la promotion profonde.
|
||||
|
||||
Si vous décidez que la relecture n'était pas utile, vous pouvez supprimer les artefacts préparés sans toucher aux entrées de journal ordinaires ni à l'état normal de rappel :
|
||||
Si vous décidez que la relecture n’était pas utile, vous pouvez supprimer les artefacts mis en attente sans toucher aux entrées ordinaires du journal ni à l’état normal de rappel :
|
||||
|
||||
```bash
|
||||
openclaw memory rem-backfill --rollback
|
||||
@ -141,19 +141,19 @@ openclaw memory rem-backfill --rollback-short-term
|
||||
## CLI
|
||||
|
||||
```bash
|
||||
openclaw memory status # Vérifier l'état de l'index et le fournisseur
|
||||
openclaw memory status # Vérifier l’état de l’index et le fournisseur
|
||||
openclaw memory search "query" # Rechercher depuis la ligne de commande
|
||||
openclaw memory index --force # Reconstruire l'index
|
||||
openclaw memory index --force # Reconstruire l’index
|
||||
```
|
||||
|
||||
## Pour aller plus loin
|
||||
|
||||
- [Builtin Memory Engine](/fr/concepts/memory-builtin) -- backend SQLite par défaut
|
||||
- [QMD Memory Engine](/fr/concepts/memory-qmd) -- sidecar local-first avancé
|
||||
- [Honcho Memory](/fr/concepts/memory-honcho) -- mémoire intersession native IA
|
||||
- [Memory Wiki](/fr/plugins/memory-wiki) -- coffre de connaissances compilé et outils natifs du wiki
|
||||
- [Memory Search](/fr/concepts/memory-search) -- pipeline de recherche, fournisseurs et réglages
|
||||
- [Dreaming (experimental)](/fr/concepts/dreaming) -- promotion en arrière-plan
|
||||
- [Builtin Memory Engine](/fr/concepts/memory-builtin) — backend SQLite par défaut
|
||||
- [QMD Memory Engine](/fr/concepts/memory-qmd) — sidecar avancé local-first
|
||||
- [Honcho Memory](/fr/concepts/memory-honcho) — mémoire intersession native IA
|
||||
- [Memory Wiki](/fr/plugins/memory-wiki) — coffre de connaissances compilé et outils natifs du wiki
|
||||
- [Memory Search](/fr/concepts/memory-search) — pipeline de recherche, fournisseurs et réglages
|
||||
- [Dreaming](/fr/concepts/dreaming) — promotion en arrière-plan
|
||||
du rappel à court terme vers la mémoire à long terme
|
||||
- [Référence de configuration de la mémoire](/fr/reference/memory-config) -- tous les paramètres de configuration
|
||||
- [Compaction](/fr/concepts/compaction) -- comment la compaction interagit avec la mémoire
|
||||
- [Référence de configuration de la mémoire](/fr/reference/memory-config) — tous les paramètres de configuration
|
||||
- [Compaction](/fr/concepts/compaction) — comment la compaction interagit avec la mémoire
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,28 +1,28 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous voulez servir des modèles depuis votre propre machine GPU
|
||||
- Vous souhaitez servir des modèles depuis votre propre machine GPU
|
||||
- Vous configurez LM Studio ou un proxy compatible OpenAI
|
||||
- Vous avez besoin des conseils les plus sûrs pour les modèles locaux
|
||||
summary: Exécuter OpenClaw sur des LLM locaux (LM Studio, vLLM, LiteLLM, points de terminaison OpenAI personnalisés)
|
||||
- Vous avez besoin des recommandations les plus sûres pour les modèles locaux
|
||||
summary: Exécutez OpenClaw sur des LLM locaux (LM Studio, vLLM, LiteLLM, points de terminaison OpenAI personnalisés)
|
||||
title: Modèles locaux
|
||||
x-i18n:
|
||||
generated_at: "2026-04-15T06:56:33Z"
|
||||
generated_at: "2026-04-15T14:40:31Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 8778cc1c623a356ff3cf306c494c046887f9417a70ec71e659e4a8aae912a780
|
||||
source_hash: 7a506ff83e4c2870d3878339f646c906584454a156ecd618c360f592cf3b0011
|
||||
source_path: gateway/local-models.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Modèles locaux
|
||||
|
||||
Le local est possible, mais OpenClaw attend une grande fenêtre de contexte ainsi que de solides défenses contre l’injection de prompt. Les petites cartes tronquent le contexte et affaiblissent la sécurité. Visez haut : **≥2 Mac Studio au maximum ou une machine GPU équivalente (~30 k$+)**. Un seul GPU de **24 Go** ne fonctionne que pour des prompts plus légers, avec une latence plus élevée. Utilisez la **variante de modèle la plus grande / pleine taille que vous puissiez exécuter** ; les checkpoints fortement quantifiés ou « petits » augmentent le risque d’injection de prompt (voir [Sécurité](/fr/gateway/security)).
|
||||
Le local est possible, mais OpenClaw attend un grand contexte ainsi que de solides défenses contre l’injection de prompt. Les petites cartes tronquent le contexte et dégradent la sécurité. Visez haut : **≥2 Mac Studio au maximum de leur configuration ou un rig GPU équivalent (~30 k$+)**. Un seul GPU de **24 Go** ne fonctionne que pour des prompts plus légers, avec une latence plus élevée. Utilisez la **variante de modèle la plus grande / en taille complète que vous pouvez exécuter** ; les checkpoints fortement quantifiés ou « small » augmentent le risque d’injection de prompt (voir [Security](/fr/gateway/security)).
|
||||
|
||||
Si vous voulez la configuration locale la plus simple, commencez par [LM Studio](/fr/providers/lmstudio) ou [Ollama](/fr/providers/ollama) et `openclaw onboard`. Cette page est le guide prescriptif pour les piles locales plus haut de gamme et les serveurs locaux personnalisés compatibles OpenAI.
|
||||
Si vous voulez la configuration locale avec le moins de friction, commencez par [LM Studio](/fr/providers/lmstudio) ou [Ollama](/fr/providers/ollama) puis lancez `openclaw onboard`. Cette page est le guide prescriptif pour des piles locales haut de gamme et des serveurs locaux personnalisés compatibles OpenAI.
|
||||
|
||||
## Recommandé : LM Studio + grand modèle local (API Responses)
|
||||
|
||||
La meilleure pile locale actuelle. Chargez un grand modèle dans LM Studio (par exemple, une version pleine taille de Qwen, DeepSeek ou Llama), activez le serveur local (par défaut `http://127.0.0.1:1234`), et utilisez l’API Responses pour séparer le raisonnement du texte final.
|
||||
La meilleure pile locale actuelle. Chargez un grand modèle dans LM Studio (par exemple, une version complète de Qwen, DeepSeek ou Llama), activez le serveur local (par défaut `http://127.0.0.1:1234`), et utilisez l’API Responses pour séparer le raisonnement du texte final.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -45,7 +45,7 @@ La meilleure pile locale actuelle. Chargez un grand modèle dans LM Studio (par
|
||||
models: [
|
||||
{
|
||||
id: “my-local-model”,
|
||||
name: “Local Model”,
|
||||
name: “Modèle local”,
|
||||
reasoning: false,
|
||||
input: [“text”],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@ -59,16 +59,16 @@ La meilleure pile locale actuelle. Chargez un grand modèle dans LM Studio (par
|
||||
}
|
||||
```
|
||||
|
||||
**Liste de vérification de configuration**
|
||||
**Checklist de configuration**
|
||||
|
||||
- Installez LM Studio : [https://lmstudio.ai](https://lmstudio.ai)
|
||||
- Dans LM Studio, téléchargez la **plus grande version de modèle disponible** (évitez les variantes « small » / fortement quantifiées), démarrez le serveur et confirmez que `http://127.0.0.1:1234/v1/models` le liste.
|
||||
- Dans LM Studio, téléchargez la **plus grande version de modèle disponible** (évitez les variantes « small » / fortement quantifiées), démarrez le serveur, puis vérifiez que `http://127.0.0.1:1234/v1/models` l’affiche.
|
||||
- Remplacez `my-local-model` par l’ID réel du modèle affiché dans LM Studio.
|
||||
- Gardez le modèle chargé ; le chargement à froid ajoute de la latence au démarrage.
|
||||
- Gardez le modèle chargé ; un chargement à froid ajoute de la latence au démarrage.
|
||||
- Ajustez `contextWindow` / `maxTokens` si votre version de LM Studio diffère.
|
||||
- Pour WhatsApp, restez sur l’API Responses afin que seul le texte final soit envoyé.
|
||||
|
||||
Conservez aussi des modèles hébergés configurés même lorsque vous exécutez en local ; utilisez `models.mode: "merge"` pour garder des solutions de repli disponibles.
|
||||
Gardez aussi les modèles hébergés configurés même quand vous exécutez du local ; utilisez `models.mode: "merge"` afin que les solutions de repli restent disponibles.
|
||||
|
||||
### Configuration hybride : primaire hébergé, repli local
|
||||
|
||||
@ -97,7 +97,7 @@ Conservez aussi des modèles hébergés configurés même lorsque vous exécutez
|
||||
models: [
|
||||
{
|
||||
id: "my-local-model",
|
||||
name: "Local Model",
|
||||
name: "Modèle local",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@ -113,16 +113,16 @@ Conservez aussi des modèles hébergés configurés même lorsque vous exécutez
|
||||
|
||||
### Priorité au local avec filet de sécurité hébergé
|
||||
|
||||
Inversez l’ordre du primaire et des fallbacks ; conservez le même bloc `providers` et `models.mode: "merge"` afin de pouvoir revenir sur Sonnet ou Opus lorsque la machine locale est indisponible.
|
||||
Inversez l’ordre entre primaire et fallback ; conservez le même bloc providers et `models.mode: "merge"` afin de pouvoir basculer vers Sonnet ou Opus quand la machine locale est indisponible.
|
||||
|
||||
### Hébergement régional / routage des données
|
||||
|
||||
- Des variantes MiniMax/Kimi/GLM hébergées existent aussi sur OpenRouter avec des points de terminaison épinglés par région (par exemple, hébergés aux États-Unis). Choisissez-y la variante régionale pour conserver le trafic dans la juridiction de votre choix tout en utilisant `models.mode: "merge"` pour les fallbacks Anthropic/OpenAI.
|
||||
- Le tout-local reste la meilleure option pour la confidentialité ; le routage régional hébergé est l’entre-deux lorsque vous avez besoin de fonctionnalités fournisseur tout en gardant le contrôle du flux de données.
|
||||
- Le local uniquement reste la voie la plus protectrice pour la confidentialité ; le routage régional hébergé est l’option intermédiaire lorsque vous avez besoin de fonctionnalités du fournisseur tout en gardant le contrôle du flux de données.
|
||||
|
||||
## Autres proxys locaux compatibles OpenAI
|
||||
|
||||
vLLM, LiteLLM, OAI-proxy ou des Gateway personnalisés fonctionnent s’ils exposent un point de terminaison `/v1` de style OpenAI. Remplacez le bloc fournisseur ci-dessus par votre point de terminaison et l’ID de modèle :
|
||||
vLLM, LiteLLM, OAI-proxy ou des passerelles personnalisées fonctionnent s’ils exposent un point de terminaison `/v1` de style OpenAI. Remplacez le bloc provider ci-dessus par votre point de terminaison et votre ID de modèle :
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -136,7 +136,7 @@ vLLM, LiteLLM, OAI-proxy ou des Gateway personnalisés fonctionnent s’ils expo
|
||||
models: [
|
||||
{
|
||||
id: "my-local-model",
|
||||
name: "Local Model",
|
||||
name: "Modèle local",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@ -150,30 +150,30 @@ vLLM, LiteLLM, OAI-proxy ou des Gateway personnalisés fonctionnent s’ils expo
|
||||
}
|
||||
```
|
||||
|
||||
Conservez `models.mode: "merge"` afin que les modèles hébergés restent disponibles comme solutions de repli.
|
||||
Conservez `models.mode: "merge"` pour que les modèles hébergés restent disponibles en fallback.
|
||||
|
||||
Remarque de comportement pour les backends `/v1` locaux/proxifiés :
|
||||
Remarque de comportement pour les backends locaux / proxifiés `/v1` :
|
||||
|
||||
- OpenClaw les traite comme des routes compatibles OpenAI de type proxy, et non comme des points de terminaison OpenAI natifs
|
||||
- la mise en forme des requêtes propre à OpenAI natif ne s’applique pas ici : pas de `service_tier`, pas de `store` Responses, pas de mise en forme de payload de compatibilité de raisonnement OpenAI, et pas d’indices de cache de prompt
|
||||
- les en-têtes d’attribution OpenClaw cachés (`originator`, `version`, `User-Agent`) ne sont pas injectés sur ces URL de proxy personnalisées
|
||||
- le façonnage de requête réservé à OpenAI natif ne s’applique pas ici : pas de `service_tier`, pas de `store` Responses, pas de façonnage de payload de compatibilité de raisonnement OpenAI, et pas d’indices de cache de prompt
|
||||
- les en-têtes d’attribution OpenClaw masqués (`originator`, `version`, `User-Agent`) ne sont pas injectés sur ces URL de proxy personnalisées
|
||||
|
||||
Notes de compatibilité pour les backends compatibles OpenAI plus stricts :
|
||||
|
||||
- Certains serveurs n’acceptent que `messages[].content` sous forme de chaîne sur Chat Completions, et non des tableaux structurés de parties de contenu. Définissez `models.providers.<provider>.models[].compat.requiresStringContent: true` pour ces points de terminaison.
|
||||
- Certains backends locaux plus petits ou plus stricts sont instables avec la forme complète du prompt de l’environnement d’exécution agent d’OpenClaw, en particulier lorsque des schémas d’outils sont inclus. Si le backend fonctionne pour de petits appels directs `/v1/chat/completions` mais échoue sur des tours agent OpenClaw normaux, essayez d’abord `agents.defaults.localModelMode: "lean"` pour supprimer les outils par défaut lourds comme `browser`, `cron` et `message` ; si cela échoue encore, essayez `models.providers.<provider>.models[].compat.supportsTools: false`.
|
||||
- Si le backend échoue encore uniquement sur des exécutions OpenClaw plus importantes, le problème restant est généralement lié à la capacité du modèle/serveur en amont ou à un bug du backend, pas à la couche de transport d’OpenClaw.
|
||||
- Certains backends locaux plus petits ou plus stricts sont instables avec la forme complète des prompts du runtime d’agent d’OpenClaw, en particulier lorsque des schémas d’outils sont inclus. Si le backend fonctionne pour de petits appels directs à `/v1/chat/completions` mais échoue sur des tours d’agent OpenClaw normaux, essayez d’abord `agents.defaults.experimental.localModelLean: true` pour retirer les outils par défaut les plus lourds comme `browser`, `cron` et `message` ; il s’agit d’un indicateur expérimental, pas d’un réglage stable du mode par défaut. Voir [Experimental Features](/fr/concepts/experimental-features). Si cela échoue encore, essayez `models.providers.<provider>.models[].compat.supportsTools: false`.
|
||||
- Si le backend échoue encore uniquement sur des exécutions OpenClaw plus importantes, le problème restant est généralement une limite de capacité du modèle/serveur en amont ou un bug du backend, et non la couche de transport d’OpenClaw.
|
||||
|
||||
## Dépannage
|
||||
|
||||
- Le Gateway peut-il atteindre le proxy ? `curl http://127.0.0.1:1234/v1/models`.
|
||||
- Modèle LM Studio déchargé ? Rechargez-le ; un démarrage à froid est une cause fréquente de « blocage ».
|
||||
- OpenClaw avertit lorsque la fenêtre de contexte détectée est inférieure à **32k** et bloque en dessous de **16k**. Si vous atteignez ce précontrôle, augmentez la limite de contexte du serveur/modèle ou choisissez un modèle plus grand.
|
||||
- Le Gateway peut atteindre le proxy ? `curl http://127.0.0.1:1234/v1/models`.
|
||||
- Le modèle LM Studio est déchargé ? Rechargez-le ; le démarrage à froid est une cause fréquente de « blocage ».
|
||||
- OpenClaw avertit lorsque la fenêtre de contexte détectée est inférieure à **32k** et bloque en dessous de **16k**. Si vous atteignez cette vérification préalable, augmentez la limite de contexte du serveur/modèle ou choisissez un modèle plus grand.
|
||||
- Erreurs de contexte ? Réduisez `contextWindow` ou augmentez la limite de votre serveur.
|
||||
- Le serveur compatible OpenAI renvoie `messages[].content ... expected a string` ?
|
||||
Ajoutez `compat.requiresStringContent: true` sur cette entrée de modèle.
|
||||
- Les petits appels directs `/v1/chat/completions` fonctionnent, mais `openclaw infer model run`
|
||||
- Les petits appels directs à `/v1/chat/completions` fonctionnent, mais `openclaw infer model run`
|
||||
échoue sur Gemma ou un autre modèle local ? Désactivez d’abord les schémas d’outils avec
|
||||
`compat.supportsTools: false`, puis testez à nouveau. Si le serveur plante encore uniquement
|
||||
sur des prompts OpenClaw plus volumineux, considérez cela comme une limitation du serveur/modèle en amont.
|
||||
- Sécurité : les modèles locaux contournent les filtres côté fournisseur ; gardez des agents limités et laissez Compaction activé pour limiter le rayon d’impact de l’injection de prompt.
|
||||
`compat.supportsTools: false`, puis retestez. Si le serveur plante encore uniquement
|
||||
sur de plus gros prompts OpenClaw, considérez cela comme une limite du serveur/modèle en amont.
|
||||
- Sécurité : les modèles locaux contournent les filtres côté fournisseur ; gardez les agents limités et Compaction activé pour limiter le rayon d’impact d’une injection de prompt.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,27 +1,27 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous voulez utiliser GitHub Copilot comme fournisseur de modèles
|
||||
- Vous avez besoin du flux `openclaw models auth login-github-copilot`
|
||||
summary: Connectez-vous à GitHub Copilot depuis OpenClaw à l’aide du flux d’appareil
|
||||
- Vous souhaitez utiliser GitHub Copilot comme fournisseur de modèles
|
||||
- Vous avez besoin du flux `openclaw models auth login-github-copilot`.
|
||||
summary: Connectez-vous à GitHub Copilot depuis OpenClaw en utilisant le flux d’appareil
|
||||
title: GitHub Copilot
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T23:30:51Z"
|
||||
generated_at: "2026-04-15T14:40:31Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 51fee006e7d4e78e37b0c29356b0090b132de727d99b603441767d3fb642140b
|
||||
source_hash: b8258fecff22fb73b057de878462941f6eb86d0c5f775c5eac4840e95ba5eccf
|
||||
source_path: providers/github-copilot.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# GitHub Copilot
|
||||
|
||||
GitHub Copilot est l’assistant de codage IA de GitHub. Il donne accès aux modèles Copilot pour votre compte GitHub et votre forfait. OpenClaw peut utiliser Copilot comme fournisseur de modèles de deux façons différentes.
|
||||
GitHub Copilot est l’assistant de programmation par IA de GitHub. Il fournit un accès aux modèles Copilot pour votre compte et votre forfait GitHub. OpenClaw peut utiliser Copilot comme fournisseur de modèles de deux façons différentes.
|
||||
|
||||
## Deux façons d’utiliser Copilot dans OpenClaw
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Fournisseur intégré (github-copilot)">
|
||||
Utilisez le flux natif de connexion par appareil pour obtenir un jeton GitHub, puis l’échanger contre des jetons d’API Copilot lorsque OpenClaw s’exécute. C’est le chemin **par défaut** et le plus simple, car il ne nécessite pas VS Code.
|
||||
Utilisez le flux natif de connexion par appareil pour obtenir un jeton GitHub, puis l’échanger contre des jetons d’API Copilot lors de l’exécution d’OpenClaw. Il s’agit du chemin **par défaut** et du plus simple, car il ne nécessite pas VS Code.
|
||||
|
||||
<Steps>
|
||||
<Step title="Exécuter la commande de connexion">
|
||||
@ -29,7 +29,7 @@ GitHub Copilot est l’assistant de codage IA de GitHub. Il donne accès aux mod
|
||||
openclaw models auth login-github-copilot
|
||||
```
|
||||
|
||||
Il vous sera demandé de visiter une URL et de saisir un code à usage unique. Gardez le terminal ouvert jusqu’à la fin du processus.
|
||||
Il vous sera demandé de visiter une URL et de saisir un code à usage unique. Gardez le terminal ouvert jusqu’à la fin de l’opération.
|
||||
</Step>
|
||||
<Step title="Définir un modèle par défaut">
|
||||
```bash
|
||||
@ -52,17 +52,17 @@ GitHub Copilot est l’assistant de codage IA de GitHub. Il donne accès aux mod
|
||||
Utilisez l’extension VS Code **Copilot Proxy** comme pont local. OpenClaw communique avec le point de terminaison `/v1` du proxy et utilise la liste de modèles que vous y configurez.
|
||||
|
||||
<Note>
|
||||
Choisissez cette option si vous utilisez déjà Copilot Proxy dans VS Code ou si vous devez passer par lui. Vous devez activer le Plugin et garder l’extension VS Code en cours d’exécution.
|
||||
Choisissez cette option si vous utilisez déjà Copilot Proxy dans VS Code ou si vous devez passer par lui. Vous devez activer le Plugin et laisser l’extension VS Code en cours d’exécution.
|
||||
</Note>
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Drapeaux facultatifs
|
||||
## Indicateurs facultatifs
|
||||
|
||||
| Drapeau | Description |
|
||||
| ------------- | ---------------------------------------------------------- |
|
||||
| `--yes` | Ignorer la demande de confirmation |
|
||||
| Flag | Description |
|
||||
| --------------- | --------------------------------------------------- |
|
||||
| `--yes` | Ignorer l’invite de confirmation |
|
||||
| `--set-default` | Appliquer également le modèle par défaut recommandé du fournisseur |
|
||||
|
||||
```bash
|
||||
@ -75,47 +75,87 @@ openclaw models auth login --provider github-copilot --method device --set-defau
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="TTY interactif requis">
|
||||
Le flux de connexion par appareil nécessite un TTY interactif. Exécutez-le directement dans un terminal, pas dans un script non interactif ni dans un pipeline CI.
|
||||
Le flux de connexion par appareil nécessite un TTY interactif. Exécutez-le directement dans un terminal, et non dans un script non interactif ou un pipeline CI.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="La disponibilité des modèles dépend de votre forfait">
|
||||
La disponibilité des modèles Copilot dépend de votre forfait GitHub. Si un modèle est refusé, essayez un autre ID (par exemple `github-copilot/gpt-4.1`).
|
||||
La disponibilité des modèles Copilot dépend de votre forfait GitHub. Si un modèle est refusé, essayez un autre identifiant (par exemple `github-copilot/gpt-4.1`).
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Sélection du transport">
|
||||
Les ID de modèles Claude utilisent automatiquement le transport Anthropic Messages. Les modèles GPT, série o et Gemini conservent le transport OpenAI Responses. OpenClaw sélectionne le transport correct en fonction de la référence du modèle.
|
||||
Les identifiants de modèles Claude utilisent automatiquement le transport Anthropic Messages. Les modèles GPT, de série o et Gemini conservent le transport OpenAI Responses. OpenClaw sélectionne le transport correct en fonction de la référence du modèle.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Ordre de résolution des variables d’environnement">
|
||||
OpenClaw résout l’authentification Copilot à partir des variables d’environnement selon l’ordre de priorité suivant :
|
||||
OpenClaw résout l’authentification Copilot à partir des variables d’environnement dans l’ordre de priorité suivant :
|
||||
|
||||
| Priorité | Variable | Remarques |
|
||||
| -------- | ---------------------- | -------------------------------------- |
|
||||
| Priority | Variable | Notes |
|
||||
| -------- | --------------------- | -------------------------------- |
|
||||
| 1 | `COPILOT_GITHUB_TOKEN` | Priorité la plus élevée, spécifique à Copilot |
|
||||
| 2 | `GH_TOKEN` | Jeton GitHub CLI (secours) |
|
||||
| 3 | `GITHUB_TOKEN` | Jeton GitHub standard (priorité la plus basse) |
|
||||
| 2 | `GH_TOKEN` | Jeton GitHub CLI (repli) |
|
||||
| 3 | `GITHUB_TOKEN` | Jeton GitHub standard (priorité la plus basse) |
|
||||
|
||||
Lorsque plusieurs variables sont définies, OpenClaw utilise celle ayant la priorité la plus élevée.
|
||||
Le flux de connexion par appareil (`openclaw models auth login-github-copilot`) stocke son jeton dans le magasin de profils d’authentification et a priorité sur toutes les variables d’environnement.
|
||||
Le flux de connexion par appareil (`openclaw models auth login-github-copilot`) stocke
|
||||
son jeton dans le magasin de profils d’authentification et a priorité sur toutes les variables d’environnement.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Stockage du jeton">
|
||||
La connexion stocke un jeton GitHub dans le magasin de profils d’authentification et l’échange contre un jeton d’API Copilot lorsque OpenClaw s’exécute. Vous n’avez pas besoin de gérer le jeton manuellement.
|
||||
La connexion stocke un jeton GitHub dans le magasin de profils d’authentification et l’échange contre un jeton d’API Copilot lors de l’exécution d’OpenClaw. Vous n’avez pas besoin de gérer le jeton manuellement.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
<Warning>
|
||||
Nécessite un TTY interactif. Exécutez la commande de connexion directement dans un terminal, pas dans un script sans interface ni dans une tâche CI.
|
||||
Nécessite un TTY interactif. Exécutez la commande de connexion directement dans un terminal, et non dans un script sans interface ou une tâche CI.
|
||||
</Warning>
|
||||
|
||||
## Liens associés
|
||||
## Intégrations de recherche en mémoire
|
||||
|
||||
GitHub Copilot peut également servir de fournisseur d’intégrations pour la
|
||||
[recherche en mémoire](/fr/concepts/memory-search). Si vous avez un abonnement Copilot et
|
||||
vous êtes connecté, OpenClaw peut l’utiliser pour les intégrations sans clé d’API distincte.
|
||||
|
||||
### Détection automatique
|
||||
|
||||
Lorsque `memorySearch.provider` vaut `"auto"` (par défaut), GitHub Copilot est essayé
|
||||
avec une priorité de 15 -- après les intégrations locales mais avant OpenAI et les autres fournisseurs payants. Si un jeton GitHub est disponible, OpenClaw découvre les modèles
|
||||
d’intégration disponibles via l’API Copilot et sélectionne automatiquement le meilleur.
|
||||
|
||||
### Configuration explicite
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
defaults: {
|
||||
memorySearch: {
|
||||
provider: "github-copilot",
|
||||
// Facultatif : remplacer le modèle détecté automatiquement
|
||||
model: "text-embedding-3-small",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### Fonctionnement
|
||||
|
||||
1. OpenClaw résout votre jeton GitHub (à partir des variables d’environnement ou du profil d’authentification).
|
||||
2. L’échange contre un jeton d’API Copilot de courte durée.
|
||||
3. Interroge le point de terminaison Copilot `/models` pour découvrir les modèles d’intégration disponibles.
|
||||
4. Sélectionne le meilleur modèle (préfère `text-embedding-3-small`).
|
||||
5. Envoie les requêtes d’intégration au point de terminaison Copilot `/embeddings`.
|
||||
|
||||
La disponibilité des modèles dépend de votre forfait GitHub. Si aucun modèle d’intégration n’est
|
||||
disponible, OpenClaw ignore Copilot et essaie le fournisseur suivant.
|
||||
|
||||
## Associé
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Sélection du modèle" href="/fr/concepts/model-providers" icon="layers">
|
||||
Choisir les fournisseurs, les références de modèles et le comportement de basculement.
|
||||
</Card>
|
||||
<Card title="OAuth et authentification" href="/fr/gateway/authentication" icon="key">
|
||||
Détails d’authentification et règles de réutilisation des identifiants.
|
||||
Détails sur l’authentification et règles de réutilisation des identifiants.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -1,36 +1,36 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous souhaitez exécuter OpenClaw avec des modèles cloud ou locaux via Ollama
|
||||
- Vous avez besoin d'instructions de configuration et de paramétrage pour Ollama
|
||||
- Vous voulez exécuter OpenClaw avec des modèles cloud ou locaux via Ollama
|
||||
- Vous avez besoin d’un guide de configuration et de paramétrage pour Ollama
|
||||
summary: Exécuter OpenClaw avec Ollama (modèles cloud et locaux)
|
||||
title: Ollama
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T23:31:49Z"
|
||||
generated_at: "2026-04-15T14:41:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ec796241b884ca16ec7077df4f3f1910e2850487bb3ea94f8fdb37c77e02b219
|
||||
source_hash: 098e083e0fc484bddb5270eb630c55d7832039b462d1710372b6afece5cefcdf
|
||||
source_path: providers/ollama.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Ollama
|
||||
|
||||
Ollama est un runtime 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écouvrir automatiquement les modèles Ollama locaux lorsque vous activez cette option avec `OLLAMA_API_KEY` (ou un profil d'authentification) et que vous ne définissez pas d'entrée explicite `models.providers.ollama`.
|
||||
OpenClaw s’intègre à l’API native d’Ollama (`/api/chat`) pour les modèles cloud hébergés et les serveurs Ollama locaux/autohébergés. Vous pouvez utiliser Ollama selon trois modes : `Cloud + Local` via un hôte Ollama accessible, `Cloud only` sur `https://ollama.com`, ou `Local only` via un hôte Ollama accessible.
|
||||
|
||||
<Warning>
|
||||
**Utilisateurs d'Ollama distant** : 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 du JSON d'outil brut en texte brut. Utilisez plutôt l'URL de l'API 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 du JSON d’outil brut sous forme de texte brut. Utilisez plutôt l’URL de l’API native d’Ollama : `baseUrl: "http://host:11434"` (sans `/v1`).
|
||||
</Warning>
|
||||
|
||||
## Prise en main
|
||||
## Premiers pas
|
||||
|
||||
Choisissez votre méthode de configuration et votre mode préférés.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Onboarding (recommandé)">
|
||||
**Idéal pour :** le chemin le plus rapide vers une configuration Ollama fonctionnelle avec découverte automatique des modèles.
|
||||
<Tab title="Intégration guidée (recommandée)">
|
||||
**Idéal pour :** le chemin le plus rapide vers une configuration Ollama cloud ou locale fonctionnelle.
|
||||
|
||||
<Steps>
|
||||
<Step title="Lancer l'onboarding">
|
||||
<Step title="Lancer l’intégration guidée">
|
||||
```bash
|
||||
openclaw onboard
|
||||
```
|
||||
@ -38,13 +38,12 @@ Choisissez votre méthode de configuration et votre mode préférés.
|
||||
Sélectionnez **Ollama** dans la liste des fournisseurs.
|
||||
</Step>
|
||||
<Step title="Choisir votre mode">
|
||||
- **Cloud + Local** — modèles hébergés dans le cloud et modèles locaux ensemble
|
||||
- **Local** — modèles locaux uniquement
|
||||
|
||||
Si vous choisissez **Cloud + Local** et que vous n'êtes pas connecté à ollama.com, l'onboarding ouvre un flux de connexion dans le navigateur.
|
||||
- **Cloud + Local** — hôte Ollama local plus modèles cloud routés via cet hôte
|
||||
- **Cloud only** — modèles Ollama hébergés via `https://ollama.com`
|
||||
- **Local only** — modèles locaux uniquement
|
||||
</Step>
|
||||
<Step title="Sélectionner un modèle">
|
||||
L'onboarding découvre les modèles disponibles et suggère des valeurs par défaut. Il télécharge automatiquement le modèle sélectionné s'il n'est pas disponible localement.
|
||||
`Cloud only` demande `OLLAMA_API_KEY` et suggère des valeurs par défaut cloud hébergées. `Cloud + Local` et `Local only` demandent une URL de base Ollama, découvrent les modèles disponibles et téléchargent automatiquement le modèle local sélectionné s’il n’est pas encore disponible. `Cloud + Local` vérifie aussi si cet hôte Ollama est connecté pour l’accès cloud.
|
||||
</Step>
|
||||
<Step title="Vérifier que le modèle est disponible">
|
||||
```bash
|
||||
@ -61,7 +60,7 @@ Choisissez votre méthode de configuration et votre mode préférés.
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
Vous pouvez aussi spécifier une URL de base ou un modèle personnalisés :
|
||||
Vous pouvez éventuellement indiquer une URL de base ou un modèle personnalisé :
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -74,13 +73,15 @@ Choisissez votre méthode de configuration et votre mode préférés.
|
||||
</Tab>
|
||||
|
||||
<Tab title="Configuration manuelle">
|
||||
**Idéal pour :** un contrôle total de l'installation, du téléchargement des modèles et de la configuration.
|
||||
**Idéal pour :** un contrôle complet de la configuration cloud ou locale.
|
||||
|
||||
<Steps>
|
||||
<Step title="Installer Ollama">
|
||||
Téléchargez-le depuis [ollama.com/download](https://ollama.com/download).
|
||||
<Step title="Choisir cloud ou local">
|
||||
- **Cloud + Local** : installez Ollama, connectez-vous avec `ollama signin` et acheminez les requêtes cloud via cet hôte
|
||||
- **Cloud only** : utilisez `https://ollama.com` avec une `OLLAMA_API_KEY`
|
||||
- **Local only** : installez Ollama depuis [ollama.com/download](https://ollama.com/download)
|
||||
</Step>
|
||||
<Step title="Télécharger un modèle local">
|
||||
<Step title="Télécharger un modèle local (local only)">
|
||||
```bash
|
||||
ollama pull gemma4
|
||||
# ou
|
||||
@ -89,22 +90,18 @@ Choisissez votre méthode de configuration et votre mode préférés.
|
||||
ollama pull llama3.3
|
||||
```
|
||||
</Step>
|
||||
<Step title="Se connecter pour les modèles cloud (facultatif)">
|
||||
Si vous souhaitez aussi les modèles cloud :
|
||||
|
||||
```bash
|
||||
ollama signin
|
||||
```
|
||||
</Step>
|
||||
<Step title="Activer Ollama pour OpenClaw">
|
||||
Définissez n'importe quelle valeur pour la clé API (Ollama n'exige pas de vraie clé) :
|
||||
Pour `Cloud only`, utilisez votre vraie `OLLAMA_API_KEY`. Pour les configurations reposant sur un hôte, n’importe quelle valeur fictive fonctionne :
|
||||
|
||||
```bash
|
||||
# Définir la variable d'environnement
|
||||
# Cloud
|
||||
export OLLAMA_API_KEY="your-ollama-api-key"
|
||||
|
||||
# Local-only
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
# Ou configurer dans votre fichier de configuration
|
||||
openclaw config set models.providers.ollama.apiKey "ollama-local"
|
||||
openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
|
||||
```
|
||||
</Step>
|
||||
<Step title="Inspecter et définir votre modèle">
|
||||
@ -134,38 +131,43 @@ Choisissez votre méthode de configuration et votre mode préférés.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Cloud + Local">
|
||||
Les modèles cloud vous permettent d'exécuter des modèles hébergés dans le cloud en parallèle de vos modèles locaux. Exemples : `kimi-k2.5:cloud`, `minimax-m2.7:cloud` et `glm-5.1:cloud` -- ceux-ci **n'exigent pas** de `ollama pull` local.
|
||||
`Cloud + Local` utilise un hôte Ollama accessible comme point de contrôle pour les modèles locaux et cloud. Il s’agit du flux hybride recommandé par Ollama.
|
||||
|
||||
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 modèles locaux par défaut.
|
||||
Utilisez **Cloud + Local** pendant la configuration. OpenClaw demande l’URL de base Ollama, découvre les modèles locaux sur cet hôte et vérifie si l’hôte est connecté pour l’accès cloud avec `ollama signin`. Lorsque l’hôte est connecté, OpenClaw suggère aussi des valeurs par défaut cloud hébergées comme `kimi-k2.5:cloud`, `minimax-m2.7:cloud` et `glm-5.1:cloud`.
|
||||
|
||||
Vous pouvez aussi vous connecter directement sur [ollama.com/signin](https://ollama.com/signin).
|
||||
|
||||
OpenClaw suggère actuellement ces valeurs cloud par défaut : `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`.
|
||||
Si l’hôte n’est pas encore connecté, OpenClaw conserve une configuration locale uniquement jusqu’à ce que vous exécutiez `ollama signin`.
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Local uniquement">
|
||||
En mode local uniquement, OpenClaw découvre les modèles depuis l'instance Ollama locale. Aucune connexion cloud n'est nécessaire.
|
||||
<Tab title="Cloud only">
|
||||
`Cloud only` s’exécute sur l’API hébergée d’Ollama à l’adresse `https://ollama.com`.
|
||||
|
||||
OpenClaw suggère actuellement `gemma4` comme modèle local par défaut.
|
||||
Utilisez **Cloud only** pendant la configuration. OpenClaw demande `OLLAMA_API_KEY`, définit `baseUrl: "https://ollama.com"` et initialise la liste des modèles cloud hébergés. Ce chemin **n’exige pas** de serveur Ollama local ni `ollama signin`.
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Local only">
|
||||
En mode local uniquement, OpenClaw découvre les modèles à partir de l’instance Ollama configurée. Ce chemin est destiné aux serveurs Ollama locaux ou autohébergés.
|
||||
|
||||
OpenClaw suggère actuellement `gemma4` comme valeur locale par défaut.
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Découverte de modèles (fournisseur implicite)
|
||||
## Découverte des modèles (fournisseur implicite)
|
||||
|
||||
Lorsque vous définissez `OLLAMA_API_KEY` (ou un profil d'authentification) et que vous **ne** définissez **pas** `models.providers.ollama`, OpenClaw découvre les modèles depuis l'instance Ollama locale à l'adresse `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écouvre les modèles à partir de l’instance Ollama locale à l’adresse `http://127.0.0.1:11434`.
|
||||
|
||||
| Comportement | Détail |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Requête de catalogue | Interroge `/api/tags` |
|
||||
| Détection des capacités | Utilise des consultations `/api/show` au mieux pour lire `contextWindow` et détecter les capacités (y compris la vision) |
|
||||
| Modèles de vision | Les modèles avec une capacité `vision` signalée par `/api/show` sont marqués comme compatibles image (`input: ["text", "image"]`), OpenClaw injecte donc automatiquement les images dans l'invite |
|
||||
| Détection du raisonnement | Marque `reasoning` avec une heuristique sur le nom du modèle (`r1`, `reasoning`, `think`) |
|
||||
| Limites de jetons | Définit `maxTokens` sur la limite maximale de jetons Ollama par défaut utilisée par OpenClaw |
|
||||
| Coûts | Définit tous les coûts sur `0` |
|
||||
| Comportement | Détail |
|
||||
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Requête du catalogue | Interroge `/api/tags` |
|
||||
| Détection des capacités | Utilise des recherches `/api/show` au mieux pour lire `contextWindow` et détecter les capacités (y compris la vision) |
|
||||
| Modèles avec vision | Les modèles avec une capacité `vision` signalée par `/api/show` sont marqués comme compatibles image (`input: ["text", "image"]`), afin qu’OpenClaw injecte automatiquement les images dans le prompt |
|
||||
| Détection du raisonnement | Marque `reasoning` avec une heuristique basée sur le nom du modèle (`r1`, `reasoning`, `think`) |
|
||||
| Limites de jetons | Définit `maxTokens` sur la limite maximale de jetons Ollama par défaut utilisée par OpenClaw |
|
||||
| Coûts | Définit tous les coûts à `0` |
|
||||
|
||||
Cela évite les entrées de modèle manuelles tout en gardant le catalogue aligné avec l'instance Ollama locale.
|
||||
Cela évite les entrées de modèle manuelles tout en gardant le catalogue aligné sur l’instance Ollama locale.
|
||||
|
||||
```bash
|
||||
# Voir quels modèles sont disponibles
|
||||
@ -173,54 +175,54 @@ ollama list
|
||||
openclaw models list
|
||||
```
|
||||
|
||||
Pour ajouter un nouveau modèle, téléchargez-le simplement avec Ollama :
|
||||
Pour ajouter un nouveau modèle, il suffit de le télécharger avec Ollama :
|
||||
|
||||
```bash
|
||||
ollama pull mistral
|
||||
```
|
||||
|
||||
Le nouveau modèle sera automatiquement découvert et disponible à l'utilisation.
|
||||
Le nouveau modèle sera automatiquement découvert et disponible à l’utilisation.
|
||||
|
||||
<Note>
|
||||
Si vous définissez explicitement `models.providers.ollama`, la découverte automatique est ignorée et vous devez définir les modèles manuellement. Consultez la section de configuration explicite ci-dessous.
|
||||
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 la section de configuration explicite ci-dessous.
|
||||
</Note>
|
||||
|
||||
## Configuration
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Basique (découverte implicite)">
|
||||
Le moyen le plus simple d'activer Ollama est via une variable d'environnement :
|
||||
Le chemin le plus simple pour activer le mode local uniquement passe par une variable d’environnement :
|
||||
|
||||
```bash
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
```
|
||||
|
||||
<Tip>
|
||||
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é.
|
||||
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é.
|
||||
</Tip>
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Explicite (modèles manuels)">
|
||||
Utilisez une configuration explicite lorsque Ollama s'exécute sur un autre hôte/port, que vous souhaitez forcer des fenêtres de contexte ou des listes de modèles spécifiques, ou que vous voulez des définitions de modèles entièrement manuelles.
|
||||
Utilisez une configuration explicite si vous voulez une configuration cloud hébergée, si Ollama s’exécute sur un autre hôte/port, si vous voulez forcer des fenêtres de contexte ou des listes de modèles spécifiques, ou si vous voulez des définitions de modèles entièrement manuelles.
|
||||
|
||||
```json5
|
||||
{
|
||||
models: {
|
||||
providers: {
|
||||
ollama: {
|
||||
baseUrl: "http://ollama-host:11434",
|
||||
apiKey: "ollama-local",
|
||||
baseUrl: "https://ollama.com",
|
||||
apiKey: "OLLAMA_API_KEY",
|
||||
api: "ollama",
|
||||
models: [
|
||||
{
|
||||
id: "gpt-oss:20b",
|
||||
name: "GPT-OSS 20B",
|
||||
id: "kimi-k2.5:cloud",
|
||||
name: "kimi-k2.5:cloud",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
input: ["text", "image"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
contextWindow: 8192,
|
||||
maxTokens: 8192 * 10
|
||||
contextWindow: 128000,
|
||||
maxTokens: 8192
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -232,7 +234,7 @@ Si vous définissez explicitement `models.providers.ollama`, la découverte auto
|
||||
</Tab>
|
||||
|
||||
<Tab title="URL de base personnalisée">
|
||||
Si Ollama s'exécute sur un autre hôte ou port (la configuration explicite désactive la découverte automatique, définissez donc les modèles manuellement) :
|
||||
Si Ollama s’exécute sur un autre hôte ou port (la configuration explicite désactive la découverte automatique, définissez donc les modèles manuellement) :
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -240,8 +242,8 @@ Si vous définissez explicitement `models.providers.ollama`, la découverte auto
|
||||
providers: {
|
||||
ollama: {
|
||||
apiKey: "ollama-local",
|
||||
baseUrl: "http://ollama-host:11434", // Pas de /v1 - utilisez l'URL de l'API native Ollama
|
||||
api: "ollama", // Définissez-le explicitement pour garantir le comportement natif d'appel d'outils
|
||||
baseUrl: "http://ollama-host:11434", // Pas de /v1 - utilisez l’URL de l’API native Ollama
|
||||
api: "ollama", // Définissez-la explicitement pour garantir le comportement natif d’appel d’outils
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -249,7 +251,7 @@ Si vous définissez explicitement `models.providers.ollama`, la découverte auto
|
||||
```
|
||||
|
||||
<Warning>
|
||||
N'ajoutez pas `/v1` à l'URL. Le chemin `/v1` utilise le mode compatible OpenAI, où l'appel d'outils n'est pas fiable. Utilisez l'URL 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 Ollama sans suffixe de chemin.
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
@ -276,11 +278,11 @@ Une fois configurés, tous vos modèles Ollama sont disponibles :
|
||||
|
||||
OpenClaw prend en charge **Ollama Web Search** comme fournisseur `web_search` intégré.
|
||||
|
||||
| Propriété | Détail |
|
||||
| Propriété | Détail |
|
||||
| ----------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| Hôte | Utilise votre hôte Ollama configuré (`models.providers.ollama.baseUrl` lorsqu'il est défini, sinon `http://127.0.0.1:11434`) |
|
||||
| Authentification | Sans clé |
|
||||
| Condition requise | Ollama doit être en cours d'exécution et connecté avec `ollama signin` |
|
||||
| Hôte | Utilise votre hôte Ollama configuré (`models.providers.ollama.baseUrl` lorsqu’il est défini, sinon `http://127.0.0.1:11434`) |
|
||||
| Authentification | Sans clé |
|
||||
| Condition requise | 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 :
|
||||
|
||||
@ -297,7 +299,7 @@ Choisissez **Ollama Web Search** pendant `openclaw onboard` ou `openclaw configu
|
||||
```
|
||||
|
||||
<Note>
|
||||
Pour la configuration complète et les détails de comportement, consultez [Ollama Web Search](/fr/tools/ollama-search).
|
||||
Pour tous les détails de configuration et de comportement, voir [Ollama Web Search](/fr/tools/ollama-search).
|
||||
</Note>
|
||||
|
||||
## Configuration avancée
|
||||
@ -305,7 +307,7 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
<AccordionGroup>
|
||||
<Accordion title="Mode hérité compatible OpenAI">
|
||||
<Warning>
|
||||
**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.
|
||||
**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 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"` :
|
||||
@ -326,9 +328,9 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
}
|
||||
```
|
||||
|
||||
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.
|
||||
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 qu'Ollama ne revienne pas silencieusement à une fenêtre de contexte de 4096. Si votre proxy/upstream 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
|
||||
{
|
||||
@ -349,7 +351,7 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Fenêtres de contexte">
|
||||
Pour les modèles découverts 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.
|
||||
Pour les modèles découverts 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 :
|
||||
|
||||
@ -374,31 +376,31 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Modèles de raisonnement">
|
||||
OpenClaw traite par défaut comme compatibles avec le raisonnement les modèles dont le nom contient `deepseek-r1`, `reasoning` ou `think`.
|
||||
OpenClaw considère par défaut que les modèles portant des noms comme `deepseek-r1`, `reasoning` ou `think` sont capables de raisonnement.
|
||||
|
||||
```bash
|
||||
ollama pull deepseek-r1:32b
|
||||
```
|
||||
|
||||
Aucune configuration supplémentaire n'est nécessaire -- OpenClaw les marque automatiquement.
|
||||
Aucune configuration supplémentaire n’est nécessaire -- OpenClaw les marque automatiquement.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Coûts des modèles">
|
||||
Ollama est gratuit et s'exécute en local, donc tous les coûts de modèle sont définis à $0. Cela s'applique aussi bien aux modèles découverts automatiquement qu'aux modèles définis manuellement.
|
||||
Ollama est gratuit et s’exécute localement, donc tous les coûts des modèles sont définis à 0 $. Cela s’applique aussi bien aux modèles découverts automatiquement qu’aux modèles définis manuellement.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Embeddings de mémoire">
|
||||
Le Plugin Ollama intégré enregistre un fournisseur d'embeddings de mémoire pour
|
||||
la [recherche mémoire](/fr/concepts/memory). Il utilise l'URL de base Ollama
|
||||
Le Plugin Ollama intégré enregistre un fournisseur d’embeddings de mémoire pour la
|
||||
[recherche en mémoire](/fr/concepts/memory). Il utilise l’URL de base Ollama
|
||||
et la clé API configurées.
|
||||
|
||||
| Propriété | Valeur |
|
||||
| Property | Value |
|
||||
| ------------- | ------------------- |
|
||||
| Modèle par défaut | `nomic-embed-text` |
|
||||
| Téléchargement automatique | Oui — le modèle d'embedding est téléchargé automatiquement s'il n'est pas présent localement |
|
||||
| Téléchargement automatique | Oui — le modèle d’embedding est téléchargé automatiquement s’il n’est pas présent localement |
|
||||
|
||||
Pour sélectionner Ollama comme fournisseur d'embeddings pour la recherche mémoire :
|
||||
Pour sélectionner Ollama comme fournisseur d’embeddings pour la recherche en mémoire :
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -413,10 +415,10 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Configuration du streaming">
|
||||
L'intégration Ollama d'OpenClaw utilise par défaut l'**API native Ollama** (`/api/chat`), qui prend entièrement en charge simultanément le streaming et l'appel d'outils. Aucune configuration particulière n'est 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 simultanément le streaming et l’appel d’outils. Aucune configuration particulière n’est nécessaire.
|
||||
|
||||
<Tip>
|
||||
Si vous devez utiliser le point de terminaison compatible OpenAI, consultez la section « Mode hérité compatible OpenAI » ci-dessus. Le streaming et l'appel d'outils peuvent ne pas fonctionner simultanément dans ce mode.
|
||||
Si vous devez utiliser le point de terminaison compatible OpenAI, consultez la section « Mode hérité compatible OpenAI » ci-dessus. Le streaming et l’appel d’outils peuvent ne pas fonctionner simultanément dans ce mode.
|
||||
</Tip>
|
||||
|
||||
</Accordion>
|
||||
@ -426,13 +428,13 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Ollama non détecté">
|
||||
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 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
|
||||
```
|
||||
|
||||
Vérifiez que l'API est accessible :
|
||||
Vérifiez que l’API est accessible :
|
||||
|
||||
```bash
|
||||
curl http://localhost:11434/api/tags
|
||||
@ -441,7 +443,7 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Aucun modèle disponible">
|
||||
Si votre modèle n'est pas listé, téléchargez-le localement ou définissez-le explicitement dans `models.providers.ollama`.
|
||||
Si votre modèle n’apparaît pas dans la liste, téléchargez-le localement ou définissez-le explicitement dans `models.providers.ollama`.
|
||||
|
||||
```bash
|
||||
ollama list # Voir ce qui est installé
|
||||
@ -453,10 +455,10 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Connexion refusée">
|
||||
Vérifiez qu'Ollama fonctionne sur le bon port :
|
||||
Vérifiez qu’Ollama s’exécute sur le bon port :
|
||||
|
||||
```bash
|
||||
# Vérifier si Ollama est en cours d'exécution
|
||||
# Vérifier si Ollama est en cours d’exécution
|
||||
ps aux | grep ollama
|
||||
|
||||
# Ou redémarrer Ollama
|
||||
@ -467,20 +469,20 @@ Pour la configuration complète et les détails de comportement, consultez [Olla
|
||||
</AccordionGroup>
|
||||
|
||||
<Note>
|
||||
Aide supplémentaire : [Dépannage](/fr/help/troubleshooting) et [FAQ](/fr/help/faq).
|
||||
Plus d’aide : [Dépannage](/fr/help/troubleshooting) et [FAQ](/fr/help/faq).
|
||||
</Note>
|
||||
|
||||
## Voir aussi
|
||||
## En lien
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Fournisseurs de modèles" href="/fr/concepts/model-providers" icon="layers">
|
||||
Vue d'ensemble de tous les fournisseurs, des références de modèles et du comportement de basculement.
|
||||
Vue d’ensemble de tous les fournisseurs, des références de modèles et du comportement de basculement.
|
||||
</Card>
|
||||
<Card title="Sélection de modèle" href="/fr/concepts/models" icon="brain">
|
||||
Comment choisir et configurer les modèles.
|
||||
</Card>
|
||||
<Card title="Ollama Web Search" href="/fr/tools/ollama-search" icon="magnifying-glass">
|
||||
Configuration complète et détails de comportement pour la recherche web alimentée par Ollama.
|
||||
Détails complets de configuration et de comportement pour la recherche web alimentée par Ollama.
|
||||
</Card>
|
||||
<Card title="Configuration" href="/fr/gateway/configuration" icon="gear">
|
||||
Référence complète de configuration.
|
||||
|
||||
@ -1,96 +1,92 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous souhaitez configurer des fournisseurs de recherche mémoire ou des modèles d’embeddings
|
||||
- Vous souhaitez configurer les fournisseurs de recherche en mémoire ou les modèles d’intégration
|
||||
- Vous souhaitez configurer le backend QMD
|
||||
- Vous souhaitez ajuster la recherche hybride, MMR ou la décroissance temporelle
|
||||
- Vous souhaitez activer l’indexation mémoire multimodale
|
||||
summary: Tous les réglages de configuration pour la recherche mémoire, les fournisseurs d’embeddings, QMD, la recherche hybride et l’indexation multimodale
|
||||
- Vous souhaitez ajuster la recherche hybride, le MMR ou la décroissance temporelle
|
||||
- Vous souhaitez activer l’indexation de mémoire multimodale
|
||||
summary: Tous les paramètres de configuration pour la recherche en mémoire, les fournisseurs d’intégrations, QMD, la recherche hybride et l’indexation multimodale
|
||||
title: Référence de configuration de la mémoire
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T23:33:24Z"
|
||||
generated_at: "2026-04-15T14:40:55Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 299ca9b69eea292ea557a2841232c637f5c1daf2bc0f73c0a42f7c0d8d566ce2
|
||||
source_hash: 334c3c4dac08e864487047d3822c75f96e9e7a97c38be4b4e0cd9e63c4489a53
|
||||
source_path: reference/memory-config.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Référence de configuration de la mémoire
|
||||
|
||||
Cette page liste tous les réglages de configuration pour la recherche mémoire d’OpenClaw. Pour
|
||||
les vues d’ensemble conceptuelles, voir :
|
||||
Cette page répertorie tous les paramètres de configuration de la recherche en mémoire d’OpenClaw. Pour des vues d’ensemble conceptuelles, voir :
|
||||
|
||||
- [Memory Overview](/fr/concepts/memory) -- comment fonctionne la mémoire
|
||||
- [Builtin Engine](/fr/concepts/memory-builtin) -- backend SQLite par défaut
|
||||
- [QMD Engine](/fr/concepts/memory-qmd) -- sidecar local-first
|
||||
- [Memory Search](/fr/concepts/memory-search) -- pipeline de recherche et réglages
|
||||
- [Active Memory](/fr/concepts/active-memory) -- activation du sous-agent mémoire pour les sessions interactives
|
||||
- [Vue d’ensemble de la mémoire](/fr/concepts/memory) -- fonctionnement de la mémoire
|
||||
- [Moteur intégré](/fr/concepts/memory-builtin) -- backend SQLite par défaut
|
||||
- [Moteur QMD](/fr/concepts/memory-qmd) -- sidecar local-first
|
||||
- [Recherche en mémoire](/fr/concepts/memory-search) -- pipeline de recherche et réglage
|
||||
- [Active Memory](/fr/concepts/active-memory) -- activation du sous-agent de mémoire pour les sessions interactives
|
||||
|
||||
Tous les paramètres de recherche mémoire se trouvent sous `agents.defaults.memorySearch` dans
|
||||
`openclaw.json`, sauf indication contraire.
|
||||
Tous les paramètres de recherche en mémoire se trouvent sous `agents.defaults.memorySearch` dans `openclaw.json`, sauf indication contraire.
|
||||
|
||||
Si vous recherchez le bouton de fonctionnalité **Active Memory** et la configuration du sous-agent,
|
||||
cela se trouve sous `plugins.entries.active-memory` plutôt que sous `memorySearch`.
|
||||
Si vous recherchez le bouton de fonctionnalité **Active Memory** et la configuration du sous-agent, ils se trouvent sous `plugins.entries.active-memory` plutôt que sous `memorySearch`.
|
||||
|
||||
Active Memory utilise un modèle à deux conditions :
|
||||
Active Memory utilise un modèle à deux conditions :
|
||||
|
||||
1. le plugin doit être activé et cibler l’id d’agent actuel
|
||||
2. la requête doit être une session de chat persistante interactive admissible
|
||||
1. le Plugin doit être activé et cibler l’identifiant d’agent actuel
|
||||
2. la requête doit correspondre à une session de chat persistante interactive admissible
|
||||
|
||||
Voir [Active Memory](/fr/concepts/active-memory) pour le modèle d’activation,
|
||||
la configuration gérée par le Plugin, la persistance des transcriptions et le modèle de déploiement sécurisé.
|
||||
Voir [Active Memory](/fr/concepts/active-memory) pour le modèle d’activation, la configuration détenue par le Plugin, la persistance des transcriptions et le modèle de déploiement sûr.
|
||||
|
||||
---
|
||||
|
||||
## Sélection du fournisseur
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `provider` | `string` | détection automatique | ID d’adaptateur d’embeddings : `openai`, `gemini`, `voyage`, `mistral`, `bedrock`, `ollama`, `local` |
|
||||
| `model` | `string` | valeur par défaut du fournisseur | Nom du modèle d’embeddings |
|
||||
| `fallback` | `string` | `"none"` | ID d’adaptateur de repli lorsque le principal échoue |
|
||||
| `enabled` | `boolean` | `true` | Activer ou désactiver la recherche mémoire |
|
||||
| Key | Type | Default | Description |
|
||||
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | `string` | détecté automatiquement | ID de l’adaptateur d’intégration : `bedrock`, `gemini`, `github-copilot`, `local`, `mistral`, `ollama`, `openai`, `voyage` |
|
||||
| `model` | `string` | valeur par défaut du fournisseur | Nom du modèle d’intégration |
|
||||
| `fallback` | `string` | `"none"` | ID de l’adaptateur de secours en cas d’échec du principal |
|
||||
| `enabled` | `boolean` | `true` | Activer ou désactiver la recherche en mémoire |
|
||||
|
||||
### Ordre de détection automatique
|
||||
|
||||
Lorsque `provider` n’est pas défini, OpenClaw sélectionne le premier disponible :
|
||||
Lorsque `provider` n’est pas défini, OpenClaw sélectionne le premier disponible :
|
||||
|
||||
1. `local` -- si `memorySearch.local.modelPath` est configuré et que le fichier existe.
|
||||
2. `openai` -- si une clé OpenAI peut être résolue.
|
||||
3. `gemini` -- si une clé Gemini peut être résolue.
|
||||
4. `voyage` -- si une clé Voyage peut être résolue.
|
||||
5. `mistral` -- si une clé Mistral peut être résolue.
|
||||
6. `bedrock` -- si la chaîne d’identifiants AWS SDK peut être résolue (rôle d’instance, clés d’accès, profil, SSO, identité web ou configuration partagée).
|
||||
2. `github-copilot` -- si un jeton GitHub Copilot peut être résolu (variable d’environnement ou profil d’authentification).
|
||||
3. `openai` -- si une clé OpenAI peut être résolue.
|
||||
4. `gemini` -- si une clé Gemini peut être résolue.
|
||||
5. `voyage` -- si une clé Voyage peut être résolue.
|
||||
6. `mistral` -- si une clé Mistral peut être résolue.
|
||||
7. `bedrock` -- si la chaîne d’identifiants AWS SDK est résolue (rôle d’instance, clés d’accès, profil, SSO, identité web ou configuration partagée).
|
||||
|
||||
`ollama` est pris en charge mais n’est pas détecté automatiquement (définissez-le explicitement).
|
||||
`ollama` est pris en charge, mais n’est pas détecté automatiquement (définissez-le explicitement).
|
||||
|
||||
### Résolution des clés API
|
||||
### Résolution des clés d’API
|
||||
|
||||
Les embeddings distants nécessitent une clé API. Bedrock utilise à la place la
|
||||
chaîne d’identifiants par défaut AWS SDK (rôles d’instance, SSO, clés d’accès).
|
||||
Les intégrations distantes nécessitent une clé d’API. Bedrock utilise à la place la chaîne d’identifiants par défaut de l’AWS SDK (rôles d’instance, SSO, clés d’accès).
|
||||
|
||||
| Fournisseur | Variable d’environnement | Clé de configuration |
|
||||
| ----------- | ----------------------------- | ---------------------------------- |
|
||||
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
|
||||
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
|
||||
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
|
||||
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
|
||||
| Bedrock | chaîne d’identifiants AWS | Aucune clé API nécessaire |
|
||||
| Ollama | `OLLAMA_API_KEY` (espace réservé) | -- |
|
||||
| Provider | Env var | Config key |
|
||||
| -------------- | -------------------------------------------------- | --------------------------------- |
|
||||
| Bedrock | chaîne d’identifiants AWS | Aucune clé d’API requise |
|
||||
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
|
||||
| GitHub Copilot | `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN` | Profil d’authentification via connexion par appareil |
|
||||
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
|
||||
| Ollama | `OLLAMA_API_KEY` (espace réservé) | -- |
|
||||
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
|
||||
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
|
||||
|
||||
Codex OAuth couvre uniquement le chat/les complétions et ne satisfait pas les
|
||||
requêtes d’embeddings.
|
||||
L’authentification OAuth Codex couvre uniquement le chat/les complétions et ne satisfait pas les requêtes d’intégration.
|
||||
|
||||
---
|
||||
|
||||
## Configuration du point de terminaison distant
|
||||
## Configuration des points de terminaison distants
|
||||
|
||||
Pour des points de terminaison compatibles OpenAI personnalisés ou pour remplacer les valeurs par défaut du fournisseur :
|
||||
Pour les points de terminaison personnalisés compatibles OpenAI ou le remplacement des valeurs par défaut du fournisseur :
|
||||
|
||||
| Clé | Type | Description |
|
||||
| ---------------- | -------- | ------------------------------------------------ |
|
||||
| `remote.baseUrl` | `string` | URL de base API personnalisée |
|
||||
| `remote.apiKey` | `string` | Remplacer la clé API |
|
||||
| Key | Type | Description |
|
||||
| ---------------- | -------- | -------------------------------------------------- |
|
||||
| `remote.baseUrl` | `string` | URL de base d’API personnalisée |
|
||||
| `remote.apiKey` | `string` | Remplacer la clé d’API |
|
||||
| `remote.headers` | `object` | En-têtes HTTP supplémentaires (fusionnés avec les valeurs par défaut du fournisseur) |
|
||||
|
||||
```json5
|
||||
@ -114,22 +110,21 @@ Pour des points de terminaison compatibles OpenAI personnalisés ou pour remplac
|
||||
|
||||
## Configuration spécifique à Gemini
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------- | -------- | ---------------------- | ------------------------------------------ |
|
||||
| `model` | `string` | `gemini-embedding-001` | Prend aussi en charge `gemini-embedding-2-preview` |
|
||||
| `outputDimensionality` | `number` | `3072` | Pour Embedding 2 : 768, 1536 ou 3072 |
|
||||
| `model` | `string` | `gemini-embedding-001` | Prend également en charge `gemini-embedding-2-preview` |
|
||||
| `outputDimensionality` | `number` | `3072` | Pour Embedding 2 : 768, 1536 ou 3072 |
|
||||
|
||||
<Warning>
|
||||
Modifier le modèle ou `outputDimensionality` déclenche une réindexation complète automatique.
|
||||
La modification du modèle ou de `outputDimensionality` déclenche une réindexation complète automatique.
|
||||
</Warning>
|
||||
|
||||
---
|
||||
|
||||
## Configuration des embeddings Bedrock
|
||||
## Configuration des intégrations Bedrock
|
||||
|
||||
Bedrock utilise la chaîne d’identifiants par défaut AWS SDK -- aucune clé API n’est nécessaire.
|
||||
Si OpenClaw s’exécute sur EC2 avec un rôle d’instance activé pour Bedrock, définissez simplement le
|
||||
fournisseur et le modèle :
|
||||
Bedrock utilise la chaîne d’identifiants par défaut de l’AWS SDK -- aucune clé d’API requise.
|
||||
Si OpenClaw s’exécute sur EC2 avec un rôle d’instance activé pour Bedrock, définissez simplement le fournisseur et le modèle :
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -144,48 +139,45 @@ fournisseur et le modèle :
|
||||
}
|
||||
```
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ---------------------- | -------- | ------------------------------ | ------------------------------------ |
|
||||
| `model` | `string` | `amazon.titan-embed-text-v2:0` | Tout ID de modèle d’embeddings Bedrock |
|
||||
| `outputDimensionality` | `number` | valeur par défaut du modèle | Pour Titan V2 : 256, 512 ou 1024 |
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------- | -------- | ------------------------------ | ------------------------------- |
|
||||
| `model` | `string` | `amazon.titan-embed-text-v2:0` | Tout ID de modèle d’intégration Bedrock |
|
||||
| `outputDimensionality` | `number` | valeur par défaut du modèle | Pour Titan V2 : 256, 512 ou 1024 |
|
||||
|
||||
### Modèles pris en charge
|
||||
|
||||
Les modèles suivants sont pris en charge (avec détection de famille et dimensions
|
||||
par défaut) :
|
||||
Les modèles suivants sont pris en charge (avec détection de famille et dimensions par défaut) :
|
||||
|
||||
| ID du modèle | Fournisseur | Dimensions par défaut | Dimensions configurables |
|
||||
| ------------------------------------------ | ----------- | --------------------- | ------------------------ |
|
||||
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 |
|
||||
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-image-v1` | Amazon | 1024 | -- |
|
||||
| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 |
|
||||
| `cohere.embed-english-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-multilingual-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 |
|
||||
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
|
||||
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
|
||||
| Model ID | Provider | Default Dims | Configurable Dims |
|
||||
| ------------------------------------------ | ---------- | ------------ | -------------------- |
|
||||
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 |
|
||||
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-image-v1` | Amazon | 1024 | -- |
|
||||
| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 |
|
||||
| `cohere.embed-english-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-multilingual-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 |
|
||||
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
|
||||
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
|
||||
|
||||
Les variantes suffixées par débit (par exemple `amazon.titan-embed-text-v1:2:8k`) héritent
|
||||
de la configuration du modèle de base.
|
||||
Les variantes suffixées par débit (par exemple `amazon.titan-embed-text-v1:2:8k`) héritent de la configuration du modèle de base.
|
||||
|
||||
### Auth
|
||||
### Authentification
|
||||
|
||||
L’auth Bedrock utilise l’ordre standard de résolution des identifiants AWS SDK :
|
||||
L’authentification Bedrock utilise l’ordre standard de résolution des identifiants de l’AWS SDK :
|
||||
|
||||
1. Variables d’environnement (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`)
|
||||
2. Cache de jetons SSO
|
||||
3. Identifiants par jeton d’identité web
|
||||
3. Identifiants de jeton d’identité web
|
||||
4. Fichiers partagés d’identifiants et de configuration
|
||||
5. Identifiants de métadonnées ECS ou EC2
|
||||
|
||||
La région est résolue à partir de `AWS_REGION`, `AWS_DEFAULT_REGION`, du
|
||||
`baseUrl` du fournisseur `amazon-bedrock`, ou utilise par défaut `us-east-1`.
|
||||
La région est résolue à partir de `AWS_REGION`, `AWS_DEFAULT_REGION`, du `baseUrl` du fournisseur `amazon-bedrock`, ou prend par défaut `us-east-1`.
|
||||
|
||||
### Permissions IAM
|
||||
### Autorisations IAM
|
||||
|
||||
Le rôle ou l’utilisateur IAM doit disposer de :
|
||||
Le rôle ou l’utilisateur IAM doit disposer de :
|
||||
|
||||
```json
|
||||
{
|
||||
@ -195,7 +187,7 @@ Le rôle ou l’utilisateur IAM doit disposer de :
|
||||
}
|
||||
```
|
||||
|
||||
Pour le moindre privilège, limitez `InvokeModel` au modèle spécifique :
|
||||
Pour le principe du moindre privilège, limitez `InvokeModel` au modèle spécifique :
|
||||
|
||||
```
|
||||
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
@ -203,44 +195,44 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
|
||||
---
|
||||
|
||||
## Configuration des embeddings locaux
|
||||
## Configuration des intégrations locales
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| --------------------- | -------- | ---------------------- | ------------------------------------ |
|
||||
| `local.modelPath` | `string` | téléchargé automatiquement | Chemin vers le fichier de modèle GGUF |
|
||||
| `local.modelCacheDir` | `string` | valeur par défaut node-llama-cpp | Répertoire de cache pour les modèles téléchargés |
|
||||
| Key | Type | Default | Description |
|
||||
| --------------------- | -------- | ---------------------- | ------------------------------- |
|
||||
| `local.modelPath` | `string` | téléchargé automatiquement | Chemin vers le fichier de modèle GGUF |
|
||||
| `local.modelCacheDir` | `string` | valeur par défaut de node-llama-cpp | Répertoire de cache pour les modèles téléchargés |
|
||||
|
||||
Modèle par défaut : `embeddinggemma-300m-qat-Q8_0.gguf` (~0,6 Go, téléchargé automatiquement).
|
||||
Nécessite une build native : `pnpm approve-builds` puis `pnpm rebuild node-llama-cpp`.
|
||||
Modèle par défaut : `embeddinggemma-300m-qat-Q8_0.gguf` (~0,6 Go, téléchargé automatiquement).
|
||||
Nécessite une build native : `pnpm approve-builds` puis `pnpm rebuild node-llama-cpp`.
|
||||
|
||||
---
|
||||
|
||||
## Configuration de la recherche hybride
|
||||
|
||||
Tous sous `memorySearch.query.hybrid` :
|
||||
Tout se trouve sous `memorySearch.query.hybrid` :
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| --------------------- | --------- | ---------- | ---------------------------------------- |
|
||||
| `enabled` | `boolean` | `true` | Activer la recherche hybride BM25 + vecteur |
|
||||
| `vectorWeight` | `number` | `0.7` | Poids des scores vectoriels (0-1) |
|
||||
| `textWeight` | `number` | `0.3` | Poids des scores BM25 (0-1) |
|
||||
| `candidateMultiplier` | `number` | `4` | Multiplicateur de taille du vivier de candidats |
|
||||
| Key | Type | Default | Description |
|
||||
| --------------------- | --------- | ------- | ---------------------------------- |
|
||||
| `enabled` | `boolean` | `true` | Activer la recherche hybride BM25 + vectorielle |
|
||||
| `vectorWeight` | `number` | `0.7` | Poids des scores vectoriels (0-1) |
|
||||
| `textWeight` | `number` | `0.3` | Poids des scores BM25 (0-1) |
|
||||
| `candidateMultiplier` | `number` | `4` | Multiplicateur de taille du groupe de candidats |
|
||||
|
||||
### MMR (diversité)
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ------------- | --------- | ---------- | -------------------------------------------- |
|
||||
| `mmr.enabled` | `boolean` | `false` | Activer le reclassement MMR |
|
||||
| `mmr.lambda` | `number` | `0.7` | 0 = diversité maximale, 1 = pertinence maximale |
|
||||
| Key | Type | Default | Description |
|
||||
| ------------- | --------- | ------- | ------------------------------------ |
|
||||
| `mmr.enabled` | `boolean` | `false` | Activer le reranking MMR |
|
||||
| `mmr.lambda` | `number` | `0.7` | 0 = diversité maximale, 1 = pertinence maximale |
|
||||
|
||||
### Décroissance temporelle (récence)
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ---------------------------- | --------- | ---------- | ------------------------------------ |
|
||||
| `temporalDecay.enabled` | `boolean` | `false` | Activer le boost de récence |
|
||||
| `temporalDecay.halfLifeDays` | `number` | `30` | Le score est divisé par deux tous les N jours |
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------------- | --------- | ------- | ------------------------- |
|
||||
| `temporalDecay.enabled` | `boolean` | `false` | Activer le boost de récence |
|
||||
| `temporalDecay.halfLifeDays` | `number` | `30` | Le score est divisé par deux tous les N jours |
|
||||
|
||||
Les fichiers persistants (`MEMORY.md`, fichiers non datés dans `memory/`) ne subissent jamais de décroissance.
|
||||
Les fichiers pérennes (`MEMORY.md`, fichiers non datés dans `memory/`) ne sont jamais affectés par la décroissance.
|
||||
|
||||
### Exemple complet
|
||||
|
||||
@ -265,10 +257,10 @@ Les fichiers persistants (`MEMORY.md`, fichiers non datés dans `memory/`) ne su
|
||||
|
||||
---
|
||||
|
||||
## Chemins mémoire supplémentaires
|
||||
## Chemins de mémoire supplémentaires
|
||||
|
||||
| Clé | Type | Description |
|
||||
| ------------ | ---------- | -------------------------------------------- |
|
||||
| Key | Type | Description |
|
||||
| ------------ | ---------- | ---------------------------------------- |
|
||||
| `extraPaths` | `string[]` | Répertoires ou fichiers supplémentaires à indexer |
|
||||
|
||||
```json5
|
||||
@ -283,15 +275,12 @@ Les fichiers persistants (`MEMORY.md`, fichiers non datés dans `memory/`) ne su
|
||||
}
|
||||
```
|
||||
|
||||
Les chemins peuvent être absolus ou relatifs à l’espace de travail. Les répertoires sont analysés
|
||||
récursivement à la recherche de fichiers `.md`. La gestion des liens symboliques dépend du backend actif :
|
||||
le moteur intégré ignore les liens symboliques, tandis que QMD suit le comportement du scanner QMD
|
||||
sous-jacent.
|
||||
Les chemins peuvent être absolus ou relatifs à l’espace de travail. Les répertoires sont analysés récursivement à la recherche de fichiers `.md`. La gestion des liens symboliques dépend du backend actif : le moteur intégré ignore les liens symboliques, tandis que QMD suit le comportement du scanner QMD sous-jacent.
|
||||
|
||||
Pour la recherche de transcriptions inter-agents à portée d’agent, utilisez
|
||||
`agents.list[].memorySearch.qmd.extraCollections` au lieu de `memory.qmd.paths`.
|
||||
Ces collections supplémentaires suivent la même forme `{ path, name, pattern? }`, mais
|
||||
elles sont fusionnées par agent et peuvent conserver des noms partagés explicites lorsque le chemin
|
||||
elles sont fusionnées par agent et peuvent préserver des noms partagés explicites lorsque le chemin
|
||||
pointe en dehors de l’espace de travail actuel.
|
||||
Si le même chemin résolu apparaît à la fois dans `memory.qmd.paths` et
|
||||
`memorySearch.qmd.extraCollections`, QMD conserve la première entrée et ignore le doublon.
|
||||
@ -300,135 +289,135 @@ Si le même chemin résolu apparaît à la fois dans `memory.qmd.paths` et
|
||||
|
||||
## Mémoire multimodale (Gemini)
|
||||
|
||||
Indexez des images et de l’audio en plus du Markdown à l’aide de Gemini Embedding 2 :
|
||||
Indexez des images et de l’audio en plus du Markdown à l’aide de Gemini Embedding 2 :
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ------------------------- | ---------- | ---------- | ---------------------------------------- |
|
||||
| `multimodal.enabled` | `boolean` | `false` | Activer l’indexation multimodale |
|
||||
| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]` ou `["all"]` |
|
||||
| `multimodal.maxFileBytes` | `number` | `10000000` | Taille maximale des fichiers à indexer |
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------- | ---------- | ---------- | -------------------------------------- |
|
||||
| `multimodal.enabled` | `boolean` | `false` | Activer l’indexation multimodale |
|
||||
| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]` ou `["all"]` |
|
||||
| `multimodal.maxFileBytes` | `number` | `10000000` | Taille maximale des fichiers pour l’indexation |
|
||||
|
||||
S’applique uniquement aux fichiers de `extraPaths`. Les racines mémoire par défaut restent limitées au Markdown.
|
||||
S’applique uniquement aux fichiers dans `extraPaths`. Les racines de mémoire par défaut restent limitées au Markdown.
|
||||
Nécessite `gemini-embedding-2-preview`. `fallback` doit être `"none"`.
|
||||
|
||||
Formats pris en charge : `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif`
|
||||
(images) ; `.mp3`, `.wav`, `.ogg`, `.opus`, `.m4a`, `.aac`, `.flac` (audio).
|
||||
Formats pris en charge : `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif`
|
||||
(images) ; `.mp3`, `.wav`, `.ogg`, `.opus`, `.m4a`, `.aac`, `.flac` (audio).
|
||||
|
||||
---
|
||||
|
||||
## Cache des embeddings
|
||||
## Cache d’intégration
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ------------------ | --------- | ---------- | ------------------------------------- |
|
||||
| `cache.enabled` | `boolean` | `false` | Mettre en cache les embeddings de segments dans SQLite |
|
||||
| `cache.maxEntries` | `number` | `50000` | Nombre maximal d’embeddings en cache |
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------ | --------- | ------- | -------------------------------- |
|
||||
| `cache.enabled` | `boolean` | `false` | Mettre en cache les intégrations de segments dans SQLite |
|
||||
| `cache.maxEntries` | `number` | `50000` | Nombre maximal d’intégrations en cache |
|
||||
|
||||
Évite de recalculer les embeddings d’un texte inchangé lors d’une réindexation ou de mises à jour de transcription.
|
||||
Empêche de recalculer les intégrations d’un texte inchangé lors de la réindexation ou des mises à jour de transcription.
|
||||
|
||||
---
|
||||
|
||||
## Indexation par lots
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ----------------------------- | --------- | ---------- | -------------------------------- |
|
||||
| `remote.batch.enabled` | `boolean` | `false` | Activer l’API d’embeddings par lots |
|
||||
| `remote.batch.concurrency` | `number` | `2` | Tâches par lots en parallèle |
|
||||
| `remote.batch.wait` | `boolean` | `true` | Attendre la fin du lot |
|
||||
| `remote.batch.pollIntervalMs` | `number` | -- | Intervalle d’interrogation |
|
||||
| `remote.batch.timeoutMinutes` | `number` | -- | Délai maximal du lot |
|
||||
| Key | Type | Default | Description |
|
||||
| ----------------------------- | --------- | ------- | -------------------------- |
|
||||
| `remote.batch.enabled` | `boolean` | `false` | Activer l’API d’intégration par lots |
|
||||
| `remote.batch.concurrency` | `number` | `2` | Tâches par lots parallèles |
|
||||
| `remote.batch.wait` | `boolean` | `true` | Attendre la fin des lots |
|
||||
| `remote.batch.pollIntervalMs` | `number` | -- | Intervalle d’interrogation |
|
||||
| `remote.batch.timeoutMinutes` | `number` | -- | Délai d’expiration des lots |
|
||||
|
||||
Disponible pour `openai`, `gemini` et `voyage`. Le traitement par lots OpenAI est généralement
|
||||
le plus rapide et le moins coûteux pour les grands remplissages initiaux.
|
||||
Disponible pour `openai`, `gemini` et `voyage`. L’indexation par lots OpenAI est généralement
|
||||
la plus rapide et la moins coûteuse pour les gros remplissages initiaux.
|
||||
|
||||
---
|
||||
|
||||
## Recherche mémoire de session (expérimental)
|
||||
## Recherche en mémoire de session (expérimental)
|
||||
|
||||
Indexez les transcriptions de session et exposez-les via `memory_search` :
|
||||
Indexez les transcriptions de session et exposez-les via `memory_search` :
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ----------------------------- | ---------- | ------------- | --------------------------------------------- |
|
||||
| `experimental.sessionMemory` | `boolean` | `false` | Activer l’indexation des sessions |
|
||||
| `sources` | `string[]` | `["memory"]` | Ajouter `"sessions"` pour inclure les transcriptions |
|
||||
| `sync.sessions.deltaBytes` | `number` | `100000` | Seuil en octets pour la réindexation |
|
||||
| `sync.sessions.deltaMessages` | `number` | `50` | Seuil en nombre de messages pour la réindexation |
|
||||
| Key | Type | Default | Description |
|
||||
| ----------------------------- | ---------- | ------------ | --------------------------------------- |
|
||||
| `experimental.sessionMemory` | `boolean` | `false` | Activer l’indexation des sessions |
|
||||
| `sources` | `string[]` | `["memory"]` | Ajouter `"sessions"` pour inclure les transcriptions |
|
||||
| `sync.sessions.deltaBytes` | `number` | `100000` | Seuil en octets pour la réindexation |
|
||||
| `sync.sessions.deltaMessages` | `number` | `50` | Seuil en messages pour la réindexation |
|
||||
|
||||
L’indexation des sessions est facultative et s’exécute de manière asynchrone. Les résultats peuvent être légèrement
|
||||
obsolètes. Les journaux de session résident sur le disque ; considérez donc l’accès au système de fichiers comme la frontière de confiance.
|
||||
L’indexation des sessions est optionnelle et s’exécute de manière asynchrone. Les résultats peuvent être légèrement
|
||||
obsolètes. Les journaux de session sont stockés sur disque ; considérez donc l’accès au système de fichiers comme la
|
||||
limite de confiance.
|
||||
|
||||
---
|
||||
|
||||
## Accélération vectorielle SQLite (`sqlite-vec`)
|
||||
## Accélération vectorielle SQLite (sqlite-vec)
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ---------------------------- | --------- | ---------- | ---------------------------------------- |
|
||||
| `store.vector.enabled` | `boolean` | `true` | Utiliser `sqlite-vec` pour les requêtes vectorielles |
|
||||
| `store.vector.extensionPath` | `string` | intégré | Remplacer le chemin de `sqlite-vec` |
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------------- | --------- | ------- | --------------------------------- |
|
||||
| `store.vector.enabled` | `boolean` | `true` | Utiliser sqlite-vec pour les requêtes vectorielles |
|
||||
| `store.vector.extensionPath` | `string` | bundled | Remplacer le chemin de sqlite-vec |
|
||||
|
||||
Lorsque `sqlite-vec` n’est pas disponible, OpenClaw se replie automatiquement sur une
|
||||
similarité cosinus en processus.
|
||||
Lorsque sqlite-vec n’est pas disponible, OpenClaw revient automatiquement à la similarité cosinus en mémoire de processus.
|
||||
|
||||
---
|
||||
|
||||
## Stockage de l’index
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| --------------------- | -------- | ------------------------------------ | -------------------------------------------- |
|
||||
| Key | Type | Default | Description |
|
||||
| --------------------- | -------- | ------------------------------------- | ------------------------------------------- |
|
||||
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | Emplacement de l’index (prend en charge le jeton `{agentId}`) |
|
||||
| `store.fts.tokenizer` | `string` | `unicode61` | Tokenizer FTS5 (`unicode61` ou `trigram`) |
|
||||
| `store.fts.tokenizer` | `string` | `unicode61` | Tokenizer FTS5 (`unicode61` ou `trigram`) |
|
||||
|
||||
---
|
||||
|
||||
## Configuration du backend QMD
|
||||
|
||||
Définissez `memory.backend = "qmd"` pour l’activer. Tous les paramètres QMD se trouvent sous
|
||||
`memory.qmd` :
|
||||
`memory.qmd` :
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ------------------------ | --------- | ---------- | -------------------------------------------- |
|
||||
| `command` | `string` | `qmd` | Chemin de l’exécutable QMD |
|
||||
| `searchMode` | `string` | `search` | Commande de recherche : `search`, `vsearch`, `query` |
|
||||
| `includeDefaultMemory` | `boolean` | `true` | Indexer automatiquement `MEMORY.md` + `memory/**/*.md` |
|
||||
| `paths[]` | `array` | -- | Chemins supplémentaires : `{ name, path, pattern? }` |
|
||||
| `sessions.enabled` | `boolean` | `false` | Indexer les transcriptions de session |
|
||||
| `sessions.retentionDays` | `number` | -- | Rétention des transcriptions |
|
||||
| `sessions.exportDir` | `string` | -- | Répertoire d’export |
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------ | --------- | -------- | -------------------------------------------- |
|
||||
| `command` | `string` | `qmd` | Chemin de l’exécutable QMD |
|
||||
| `searchMode` | `string` | `search` | Commande de recherche : `search`, `vsearch`, `query` |
|
||||
| `includeDefaultMemory` | `boolean` | `true` | Indexer automatiquement `MEMORY.md` + `memory/**/*.md` |
|
||||
| `paths[]` | `array` | -- | Chemins supplémentaires : `{ name, path, pattern? }` |
|
||||
| `sessions.enabled` | `boolean` | `false` | Indexer les transcriptions de session |
|
||||
| `sessions.retentionDays` | `number` | -- | Rétention des transcriptions |
|
||||
| `sessions.exportDir` | `string` | -- | Répertoire d’exportation |
|
||||
|
||||
OpenClaw privilégie les formes actuelles de collection QMD et de requête MCP, mais conserve
|
||||
la compatibilité avec les anciennes versions de QMD en se repliant sur les drapeaux de collection
|
||||
hérités `--mask` et sur les anciens noms d’outils MCP lorsque nécessaire.
|
||||
OpenClaw privilégie les formes actuelles de collection QMD et de requête MCP, mais maintient
|
||||
la compatibilité avec les anciennes versions de QMD en revenant aux indicateurs de collection hérités `--mask`
|
||||
et aux anciens noms d’outils MCP lorsque nécessaire.
|
||||
|
||||
Les remplacements de modèles QMD restent du côté QMD, et non dans la configuration OpenClaw. Si vous devez
|
||||
Les remplacements de modèle QMD restent du côté de QMD, et non dans la configuration d’OpenClaw. Si vous devez
|
||||
remplacer globalement les modèles de QMD, définissez des variables d’environnement telles que
|
||||
`QMD_EMBED_MODEL`, `QMD_RERANK_MODEL` et `QMD_GENERATE_MODEL` dans l’environnement
|
||||
runtime de la gateway.
|
||||
`QMD_EMBED_MODEL`, `QMD_RERANK_MODEL` et `QMD_GENERATE_MODEL` dans l’environnement d’exécution
|
||||
de la Gateway.
|
||||
|
||||
### Planification des mises à jour
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ------------------------- | --------- | ---------- | -------------------------------------------- |
|
||||
| `update.interval` | `string` | `5m` | Intervalle d’actualisation |
|
||||
| `update.debounceMs` | `number` | `15000` | Anti-rebond des changements de fichiers |
|
||||
| `update.onBoot` | `boolean` | `true` | Actualiser au démarrage |
|
||||
| `update.waitForBootSync` | `boolean` | `false` | Bloquer le démarrage jusqu’à la fin de l’actualisation |
|
||||
| `update.embedInterval` | `string` | -- | Cadence distincte pour les embeddings |
|
||||
| `update.commandTimeoutMs` | `number` | -- | Délai maximal pour les commandes QMD |
|
||||
| `update.updateTimeoutMs` | `number` | -- | Délai maximal pour les opérations de mise à jour QMD |
|
||||
| `update.embedTimeoutMs` | `number` | -- | Délai maximal pour les opérations d’embeddings QMD |
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------- | --------- | ------- | ------------------------------------- |
|
||||
| `update.interval` | `string` | `5m` | Intervalle de rafraîchissement |
|
||||
| `update.debounceMs` | `number` | `15000` | Anti-rebond des modifications de fichiers |
|
||||
| `update.onBoot` | `boolean` | `true` | Rafraîchir au démarrage |
|
||||
| `update.waitForBootSync` | `boolean` | `false` | Bloquer le démarrage jusqu’à la fin du rafraîchissement |
|
||||
| `update.embedInterval` | `string` | -- | Cadence d’intégration distincte |
|
||||
| `update.commandTimeoutMs` | `number` | -- | Délai d’expiration pour les commandes QMD |
|
||||
| `update.updateTimeoutMs` | `number` | -- | Délai d’expiration pour les opérations de mise à jour QMD |
|
||||
| `update.embedTimeoutMs` | `number` | -- | Délai d’expiration pour les opérations d’intégration QMD |
|
||||
|
||||
### Limites
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ------------------------- | -------- | ---------- | ---------------------------------- |
|
||||
| `limits.maxResults` | `number` | `6` | Nombre maximal de résultats de recherche |
|
||||
| `limits.maxSnippetChars` | `number` | -- | Limiter la longueur des extraits |
|
||||
| `limits.maxInjectedChars` | `number` | -- | Limiter le nombre total de caractères injectés |
|
||||
| `limits.timeoutMs` | `number` | `4000` | Délai maximal de recherche |
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------- | -------- | ------- | -------------------------- |
|
||||
| `limits.maxResults` | `number` | `6` | Nombre maximal de résultats de recherche |
|
||||
| `limits.maxSnippetChars` | `number` | -- | Limiter la longueur des extraits |
|
||||
| `limits.maxInjectedChars` | `number` | -- | Limiter le nombre total de caractères injectés |
|
||||
| `limits.timeoutMs` | `number` | `4000` | Délai d’expiration de la recherche |
|
||||
|
||||
### Portée
|
||||
|
||||
Contrôle quelles sessions peuvent recevoir des résultats de recherche QMD. Même schéma que
|
||||
[`session.sendPolicy`](/fr/gateway/configuration-reference#session) :
|
||||
Contrôle quelles sessions peuvent recevoir les résultats de recherche QMD. Même schéma que
|
||||
[`session.sendPolicy`](/fr/gateway/configuration-reference#session) :
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -443,23 +432,23 @@ Contrôle quelles sessions peuvent recevoir des résultats de recherche QMD. Mê
|
||||
}
|
||||
```
|
||||
|
||||
La valeur par défaut fournie autorise les sessions directes et en canal, tout en refusant
|
||||
toujours les groupes.
|
||||
La valeur par défaut fournie autorise les sessions directes et de canal, tout en refusant
|
||||
les groupes.
|
||||
|
||||
La valeur par défaut est limitée aux MP. `match.keyPrefix` correspond à la clé de session normalisée ;
|
||||
La valeur par défaut est DM-only. `match.keyPrefix` correspond à la clé de session normalisée ;
|
||||
`match.rawKeyPrefix` correspond à la clé brute, y compris `agent:<id>:`.
|
||||
|
||||
### Citations
|
||||
|
||||
`memory.citations` s’applique à tous les backends :
|
||||
`memory.citations` s’applique à tous les backends :
|
||||
|
||||
| Valeur | Comportement |
|
||||
| ---------------- | ---------------------------------------------------- |
|
||||
| `auto` (par défaut) | Inclure un pied de page `Source: <path#line>` dans les extraits |
|
||||
| `on` | Toujours inclure le pied de page |
|
||||
| `off` | Omettre le pied de page (le chemin est tout de même transmis à l’agent en interne) |
|
||||
| Value | Behavior |
|
||||
| ---------------- | --------------------------------------------------- |
|
||||
| `auto` (par défaut) | Inclure le pied de page `Source: <path#line>` dans les extraits |
|
||||
| `on` | Toujours inclure le pied de page |
|
||||
| `off` | Omettre le pied de page (le chemin est toujours transmis à l’agent en interne) |
|
||||
|
||||
### Exemple QMD complet
|
||||
### Exemple complet QMD
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -482,9 +471,9 @@ La valeur par défaut est limitée aux MP. `match.keyPrefix` correspond à la cl
|
||||
|
||||
---
|
||||
|
||||
## Dreaming (expérimental)
|
||||
## Dreaming
|
||||
|
||||
Dreaming est configuré sous `plugins.entries.memory-core.config.dreaming`,
|
||||
Dreaming se configure sous `plugins.entries.memory-core.config.dreaming`,
|
||||
et non sous `agents.defaults.memorySearch`.
|
||||
|
||||
Dreaming s’exécute comme un balayage planifié unique et utilise en interne des phases light/deep/REM comme
|
||||
@ -494,10 +483,10 @@ Pour le comportement conceptuel et les commandes slash, voir [Dreaming](/fr/conc
|
||||
|
||||
### Paramètres utilisateur
|
||||
|
||||
| Clé | Type | Par défaut | Description |
|
||||
| ----------- | --------- | ------------ | -------------------------------------------------- |
|
||||
| `enabled` | `boolean` | `false` | Activer ou désactiver complètement Dreaming |
|
||||
| `frequency` | `string` | `0 3 * * *` | Cadence Cron facultative pour le balayage complet de Dreaming |
|
||||
| Key | Type | Default | Description |
|
||||
| ----------- | --------- | ----------- | ------------------------------------------------- |
|
||||
| `enabled` | `boolean` | `false` | Activer ou désactiver complètement Dreaming |
|
||||
| `frequency` | `string` | `0 3 * * *` | Cadence Cron facultative pour le balayage complet de Dreaming |
|
||||
|
||||
### Exemple
|
||||
|
||||
@ -518,8 +507,8 @@ Pour le comportement conceptuel et les commandes slash, voir [Dreaming](/fr/conc
|
||||
}
|
||||
```
|
||||
|
||||
Remarques :
|
||||
Remarques :
|
||||
|
||||
- Dreaming écrit l’état machine dans `memory/.dreams/`.
|
||||
- Dreaming écrit la sortie narrative lisible par un humain dans `DREAMS.md` (ou dans `dreams.md` existant).
|
||||
- La politique de phases light/deep/REM et les seuils sont des comportements internes, pas une configuration destinée à l’utilisateur.
|
||||
- Dreaming écrit son état machine dans `memory/.dreams/`.
|
||||
- Dreaming écrit une sortie narrative lisible par des humains dans `DREAMS.md` (ou `dreams.md` existant).
|
||||
- La stratégie de phases light/deep/REM et les seuils sont un comportement interne, et non une configuration destinée à l’utilisateur.
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
---
|
||||
read_when:
|
||||
- Rechercher une étape ou un drapeau d’onboarding spécifique
|
||||
- Recherche d’une étape ou d’un drapeau d’onboarding spécifique
|
||||
- Automatiser l’onboarding avec le mode non interactif
|
||||
- Déboguer le comportement de l’onboarding
|
||||
sidebarTitle: Onboarding Reference
|
||||
summary: 'Référence complète pour l’onboarding CLI : chaque étape, drapeau et champ de configuration'
|
||||
title: Référence de l’onboarding
|
||||
summary: 'Référence complète pour l’onboarding de la CLI : chaque étape, drapeau et champ de configuration'
|
||||
title: Référence d’onboarding
|
||||
x-i18n:
|
||||
generated_at: "2026-04-07T06:55:19Z"
|
||||
generated_at: "2026-04-15T14:40:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: a142b9ec4323fabb9982d05b64375d2b4a4007dffc910acbee3a38ff871a7236
|
||||
source_hash: 1db3ff789422617634e6624f9d12c18b6a6c573721226b9c0fa6f6b7956ef33d
|
||||
source_path: reference/wizard.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Référence de l’onboarding
|
||||
# Référence d’onboarding
|
||||
|
||||
Ceci est la référence complète pour `openclaw onboard`.
|
||||
Pour une vue d’ensemble de haut niveau, voir [Onboarding (CLI)](/fr/start/wizard).
|
||||
Voici la référence complète de `openclaw onboard`.
|
||||
Pour une vue d’ensemble de haut niveau, consultez [Onboarding (CLI)](/fr/start/wizard).
|
||||
|
||||
## Détails du flux (mode local)
|
||||
|
||||
<Steps>
|
||||
<Step title="Détection de configuration existante">
|
||||
<Step title="Détection de la configuration existante">
|
||||
- Si `~/.openclaw/openclaw.json` existe, choisissez **Conserver / Modifier / Réinitialiser**.
|
||||
- Relancer l’onboarding **n’efface rien** sauf si vous choisissez explicitement **Réinitialiser**
|
||||
(ou passez `--reset`).
|
||||
- La CLI `--reset` utilise par défaut `config+creds+sessions` ; utilisez `--reset-scope full`
|
||||
pour supprimer aussi l’espace de travail.
|
||||
- Relancer l’onboarding n’efface **rien** à moins que vous choisissiez explicitement **Réinitialiser**
|
||||
(ou que vous passiez `--reset`).
|
||||
- Le drapeau CLI `--reset` utilise par défaut `config+creds+sessions` ; utilisez `--reset-scope full`
|
||||
pour supprimer également l’espace de travail.
|
||||
- Si la configuration est invalide ou contient des clés héritées, l’assistant s’arrête et vous demande
|
||||
d’exécuter `openclaw doctor` avant de continuer.
|
||||
- La réinitialisation utilise `trash` (jamais `rm`) et propose les portées suivantes :
|
||||
@ -38,28 +38,28 @@ Pour une vue d’ensemble de haut niveau, voir [Onboarding (CLI)](/fr/start/wiza
|
||||
</Step>
|
||||
<Step title="Modèle/Auth">
|
||||
- **Clé API Anthropic** : utilise `ANTHROPIC_API_KEY` si présent ou demande une clé, puis l’enregistre pour l’utilisation du daemon.
|
||||
- **Clé API Anthropic** : choix d’assistant Anthropic préféré dans onboarding/configure.
|
||||
- **Jeton de configuration Anthropic** : toujours disponible dans onboarding/configure, même si OpenClaw préfère maintenant réutiliser Claude CLI quand c’est possible.
|
||||
- **Abonnement OpenAI Code (Codex) (Codex CLI)** : si `~/.codex/auth.json` existe, l’onboarding peut le réutiliser. Les identifiants Codex CLI réutilisés restent gérés par Codex CLI ; à expiration, OpenClaw relit d’abord cette source et, lorsque le provider peut les rafraîchir, réécrit l’identifiant rafraîchi dans le stockage Codex au lieu d’en prendre lui-même la gestion.
|
||||
- **Clé API Anthropic** : choix d’assistant Anthropic privilégié dans l’onboarding/configuration.
|
||||
- **Jeton de configuration Anthropic** : toujours disponible dans l’onboarding/configuration, bien qu’OpenClaw préfère désormais la réutilisation de Claude CLI lorsqu’elle est disponible.
|
||||
- **Abonnement OpenAI Code (Codex) (Codex CLI)** : si `~/.codex/auth.json` existe, l’onboarding peut le réutiliser. Les identifiants Codex CLI réutilisés restent gérés par Codex CLI ; à l’expiration, OpenClaw relit d’abord cette source et, lorsque le fournisseur peut les actualiser, écrit l’identifiant actualisé dans le stockage Codex au lieu d’en prendre lui-même la gestion.
|
||||
- **Abonnement OpenAI Code (Codex) (OAuth)** : flux navigateur ; collez le `code#state`.
|
||||
- Définit `agents.defaults.model` sur `openai-codex/gpt-5.4` lorsque le modèle n’est pas défini ou correspond à `openai/*`.
|
||||
- Définit `agents.defaults.model` sur `openai-codex/gpt-5.4` lorsque le modèle n’est pas défini ou vaut `openai/*`.
|
||||
- **Clé API OpenAI** : utilise `OPENAI_API_KEY` si présent ou demande une clé, puis la stocke dans les profils d’authentification.
|
||||
- Définit `agents.defaults.model` sur `openai/gpt-5.4` lorsque le modèle n’est pas défini, correspond à `openai/*` ou à `openai-codex/*`.
|
||||
- **Clé API xAI (Grok)** : demande `XAI_API_KEY` et configure xAI comme provider de modèle.
|
||||
- **OpenCode** : demande `OPENCODE_API_KEY` (ou `OPENCODE_ZEN_API_KEY`, à obtenir sur https://opencode.ai/auth) et vous laisse choisir le catalogue Zen ou Go.
|
||||
- **Ollama** : demande l’URL de base Ollama, propose le mode **Cloud + Local** ou **Local**, découvre les modèles disponibles et récupère automatiquement le modèle local sélectionné si nécessaire.
|
||||
- Définit `agents.defaults.model` sur `openai/gpt-5.4` lorsque le modèle n’est pas défini, vaut `openai/*` ou `openai-codex/*`.
|
||||
- **Clé API xAI (Grok)** : demande `XAI_API_KEY` et configure xAI comme fournisseur de modèle.
|
||||
- **OpenCode** : demande `OPENCODE_API_KEY` (ou `OPENCODE_ZEN_API_KEY`, à obtenir sur https://opencode.ai/auth) et vous permet de choisir le catalogue Zen ou Go.
|
||||
- **Ollama** : propose d’abord **Cloud + Local**, **Cloud only** ou **Local only**. `Cloud only` demande `OLLAMA_API_KEY` et utilise `https://ollama.com` ; les modes adossés à l’hôte demandent l’URL de base Ollama, détectent les modèles disponibles et récupèrent automatiquement le modèle local sélectionné si nécessaire ; `Cloud + Local` vérifie aussi si cet hôte Ollama est connecté pour l’accès cloud.
|
||||
- Plus de détails : [Ollama](/fr/providers/ollama)
|
||||
- **Clé API** : stocke la clé pour vous.
|
||||
- **Vercel AI Gateway (proxy multi-modèles)** : demande `AI_GATEWAY_API_KEY`.
|
||||
- Plus de détails : [Vercel AI Gateway](/fr/providers/vercel-ai-gateway)
|
||||
- **Cloudflare AI Gateway** : demande l’ID de compte, l’ID Gateway et `CLOUDFLARE_AI_GATEWAY_API_KEY`.
|
||||
- Plus de détails : [Cloudflare AI Gateway](/fr/providers/cloudflare-ai-gateway)
|
||||
- **MiniMax** : la configuration est écrite automatiquement ; la valeur hébergée par défaut est `MiniMax-M2.7`.
|
||||
- **MiniMax** : la configuration est écrite automatiquement ; le modèle hébergé par défaut est `MiniMax-M2.7`.
|
||||
La configuration par clé API utilise `minimax/...`, et la configuration OAuth utilise
|
||||
`minimax-portal/...`.
|
||||
- Plus de détails : [MiniMax](/fr/providers/minimax)
|
||||
- **StepFun** : la configuration est écrite automatiquement pour StepFun standard ou Step Plan sur les endpoints Chine ou globaux.
|
||||
- Standard inclut actuellement `step-3.5-flash`, et Step Plan inclut aussi `step-3.5-flash-2603`.
|
||||
- **StepFun** : la configuration est écrite automatiquement pour StepFun standard ou Step Plan sur les points de terminaison Chine ou globaux.
|
||||
- La version standard inclut actuellement `step-3.5-flash`, et Step Plan inclut également `step-3.5-flash-2603`.
|
||||
- Plus de détails : [StepFun](/fr/providers/stepfun)
|
||||
- **Synthetic (compatible Anthropic)** : demande `SYNTHETIC_API_KEY`.
|
||||
- Plus de détails : [Synthetic](/fr/providers/synthetic)
|
||||
@ -67,89 +67,89 @@ Pour une vue d’ensemble de haut niveau, voir [Onboarding (CLI)](/fr/start/wiza
|
||||
- **Kimi Coding** : la configuration est écrite automatiquement.
|
||||
- Plus de détails : [Moonshot AI (Kimi + Kimi Coding)](/fr/providers/moonshot)
|
||||
- **Ignorer** : aucune authentification n’est encore configurée.
|
||||
- Choisissez un modèle par défaut parmi les options détectées (ou saisissez manuellement provider/model). Pour une meilleure qualité et un risque plus faible d’injection de prompt, choisissez le modèle de dernière génération le plus robuste disponible dans votre pile de providers.
|
||||
- L’onboarding exécute une vérification du modèle et avertit si le modèle configuré est inconnu ou si l’authentification est manquante.
|
||||
- Le mode de stockage des clés API utilise par défaut des valeurs de profil d’authentification en clair. Utilisez `--secret-input-mode ref` pour stocker à la place des références adossées à des variables d’environnement (par exemple `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
|
||||
- Les profils d’authentification se trouvent dans `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (clés API + OAuth). `~/.openclaw/credentials/oauth.json` est une source héritée réservée à l’importation.
|
||||
- Choisissez un modèle par défaut parmi les options détectées (ou saisissez manuellement provider/model). Pour une qualité optimale et un risque plus faible d’injection de prompt, choisissez le modèle le plus puissant et de dernière génération disponible dans votre pile de fournisseurs.
|
||||
- L’onboarding exécute une vérification du modèle et affiche un avertissement si le modèle configuré est inconnu ou si l’authentification manque.
|
||||
- Le mode de stockage des clés API utilise par défaut des valeurs de profils d’authentification en texte brut. Utilisez `--secret-input-mode ref` pour stocker à la place des références adossées à l’environnement (par exemple `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
|
||||
- Les profils d’authentification se trouvent dans `~/.openclaw/agents/<agentId>/agent/auth-profiles.json` (clés API + OAuth). `~/.openclaw/credentials/oauth.json` est un mécanisme hérité réservé à l’importation.
|
||||
- Plus de détails : [/concepts/oauth](/fr/concepts/oauth)
|
||||
<Note>
|
||||
Astuce pour environnement headless/serveur : terminez OAuth sur une machine avec navigateur, puis copiez
|
||||
Astuce pour les environnements headless/serveur : terminez OAuth sur une machine disposant d’un navigateur, puis copiez
|
||||
le `auth-profiles.json` de cet agent (par exemple
|
||||
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, ou le chemin correspondant
|
||||
`$OPENCLAW_STATE_DIR/...`) vers l’hôte Gateway. `credentials/oauth.json`
|
||||
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, ou le chemin
|
||||
correspondant sous `$OPENCLAW_STATE_DIR/...`) vers l’hôte Gateway. `credentials/oauth.json`
|
||||
n’est qu’une source d’importation héritée.
|
||||
</Note>
|
||||
</Step>
|
||||
<Step title="Espace de travail">
|
||||
- Valeur par défaut `~/.openclaw/workspace` (configurable).
|
||||
- Initialise les fichiers d’espace de travail nécessaires au rituel d’amorçage de l’agent.
|
||||
- Valeur par défaut : `~/.openclaw/workspace` (configurable).
|
||||
- Initialise les fichiers d’espace de travail nécessaires au rituel de bootstrap de l’agent.
|
||||
- Disposition complète de l’espace de travail + guide de sauvegarde : [Espace de travail de l’agent](/fr/concepts/agent-workspace)
|
||||
</Step>
|
||||
<Step title="Gateway">
|
||||
- Port, mode de liaison, mode d’authentification, exposition Tailscale.
|
||||
- Port, bind, mode d’authentification, exposition Tailscale.
|
||||
- Recommandation d’authentification : conservez **Token** même pour loopback afin que les clients WS locaux doivent s’authentifier.
|
||||
- En mode token, la configuration interactive propose :
|
||||
- **Générer/stocker un token en clair** (par défaut)
|
||||
- **Utiliser SecretRef** (opt-in)
|
||||
- Le démarrage rapide réutilise les SecretRef `gateway.auth.token` existants via les providers `env`, `file` et `exec` pour la sonde d’onboarding/l’amorçage du tableau de bord.
|
||||
- Si ce SecretRef est configuré mais ne peut pas être résolu, l’onboarding échoue tôt avec un message de correction clair au lieu de dégrader silencieusement l’authentification d’exécution.
|
||||
- En mode mot de passe, la configuration interactive prend également en charge le stockage en clair ou SecretRef.
|
||||
- Chemin SecretRef pour token en mode non interactif : `--gateway-token-ref-env <ENV_VAR>`.
|
||||
- **Générer/stocker un token en texte brut** (par défaut)
|
||||
- **Utiliser SecretRef** (optionnel)
|
||||
- Quickstart réutilise les SecretRef `gateway.auth.token` existants sur les fournisseurs `env`, `file` et `exec` pour le bootstrap de la sonde d’onboarding/du tableau de bord.
|
||||
- Si ce SecretRef est configuré mais ne peut pas être résolu, l’onboarding échoue tôt avec un message de correction clair au lieu de dégrader silencieusement l’authentification à l’exécution.
|
||||
- En mode mot de passe, la configuration interactive prend également en charge le stockage en texte brut ou via SecretRef.
|
||||
- Chemin SecretRef de token non interactif : `--gateway-token-ref-env <ENV_VAR>`.
|
||||
- Nécessite une variable d’environnement non vide dans l’environnement du processus d’onboarding.
|
||||
- Ne peut pas être combiné avec `--gateway-token`.
|
||||
- Désactivez l’authentification uniquement si vous faites totalement confiance à chaque processus local.
|
||||
- Les liaisons hors loopback nécessitent toujours une authentification.
|
||||
- Désactivez l’authentification uniquement si vous faites entièrement confiance à chaque processus local.
|
||||
- Les binds non loopback exigent toujours une authentification.
|
||||
</Step>
|
||||
<Step title="Canaux">
|
||||
- [WhatsApp](/fr/channels/whatsapp) : connexion QR facultative.
|
||||
- [WhatsApp](/fr/channels/whatsapp) : connexion par QR facultative.
|
||||
- [Telegram](/fr/channels/telegram) : token de bot.
|
||||
- [Discord](/fr/channels/discord) : token de bot.
|
||||
- [Google Chat](/fr/channels/googlechat) : JSON de compte de service + audience webhook.
|
||||
- [Mattermost](/fr/channels/mattermost) (plugin) : token de bot + URL de base.
|
||||
- [Google Chat](/fr/channels/googlechat) : JSON de compte de service + audience Webhook.
|
||||
- [Mattermost](/fr/channels/mattermost) (Plugin) : token de bot + URL de base.
|
||||
- [Signal](/fr/channels/signal) : installation facultative de `signal-cli` + configuration du compte.
|
||||
- [BlueBubbles](/fr/channels/bluebubbles) : **recommandé pour iMessage** ; URL du serveur + mot de passe + webhook.
|
||||
- [iMessage](/fr/channels/imessage) : chemin CLI `imsg` hérité + accès à la base de données.
|
||||
- Sécurité des messages privés : le mode par défaut est l’appairage. Le premier message privé envoie un code ; approuvez-le via `openclaw pairing approve <channel> <code>` ou utilisez des listes d’autorisation.
|
||||
- Sécurité des DM : l’appairage est le mode par défaut. Le premier DM envoie un code ; approuvez-le via `openclaw pairing approve <channel> <code>` ou utilisez des listes d’autorisation.
|
||||
</Step>
|
||||
<Step title="Recherche web">
|
||||
- Choisissez un provider pris en charge tel que Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG ou Tavily (ou ignorez cette étape).
|
||||
- Les providers adossés à une API peuvent utiliser des variables d’environnement ou une configuration existante pour une configuration rapide ; les providers sans clé utilisent à la place leurs prérequis spécifiques.
|
||||
- Choisissez un fournisseur pris en charge comme Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG ou Tavily (ou ignorez cette étape).
|
||||
- Les fournisseurs adossés à une API peuvent utiliser des variables d’environnement ou une configuration existante pour une configuration rapide ; les fournisseurs sans clé utilisent à la place leurs prérequis spécifiques.
|
||||
- Ignorez avec `--skip-search`.
|
||||
- Configurez plus tard : `openclaw configure --section web`.
|
||||
</Step>
|
||||
<Step title="Installation du daemon">
|
||||
- macOS : LaunchAgent
|
||||
- Nécessite une session utilisateur connectée ; pour un environnement headless, utilisez un LaunchDaemon personnalisé (non fourni).
|
||||
- Linux (et Windows via WSL2) : unité systemd utilisateur
|
||||
- L’onboarding tente d’activer le lingering via `loginctl enable-linger <user>` afin que la Gateway reste active après déconnexion.
|
||||
- Peut demander sudo (écrit dans `/var/lib/systemd/linger`) ; il essaie d’abord sans sudo.
|
||||
- **Sélection du runtime :** Node (recommandé ; requis pour WhatsApp/Telegram). Bun est **non recommandé**.
|
||||
- Si l’authentification par token nécessite un token et que `gateway.auth.token` est géré par SecretRef, l’installation du daemon le valide mais ne conserve pas les valeurs de token en clair résolues dans les métadonnées d’environnement du service supervisé.
|
||||
- Si l’authentification par token nécessite un token et que le SecretRef de token configuré n’est pas résolu, l’installation du daemon est bloquée avec des indications exploitables.
|
||||
- Si `gateway.auth.token` et `gateway.auth.password` sont tous deux configurés et que `gateway.auth.mode` n’est pas défini, l’installation du daemon est bloquée jusqu’à ce que le mode soit défini explicitement.
|
||||
- Linux (et Windows via WSL2) : unité utilisateur systemd
|
||||
- L’onboarding tente d’activer le lingering via `loginctl enable-linger <user>` afin que la Gateway reste active après la déconnexion.
|
||||
- Peut demander sudo (écriture dans `/var/lib/systemd/linger`) ; il essaie d’abord sans sudo.
|
||||
- **Sélection du runtime :** Node (recommandé ; requis pour WhatsApp/Telegram). Bun est **déconseillé**.
|
||||
- Si l’authentification par token exige un token et que `gateway.auth.token` est géré par SecretRef, l’installation du daemon le valide mais ne persiste pas les valeurs de token en texte brut résolues dans les métadonnées d’environnement du service superviseur.
|
||||
- Si l’authentification par token exige un token et que le SecretRef de token configuré n’est pas résolu, l’installation du daemon est bloquée avec des instructions exploitables.
|
||||
- Si `gateway.auth.token` et `gateway.auth.password` sont tous deux configurés et que `gateway.auth.mode` n’est pas défini, l’installation du daemon est bloquée jusqu’à ce que le mode soit explicitement défini.
|
||||
</Step>
|
||||
<Step title="Vérification de l’état de santé">
|
||||
- Démarre la Gateway (si nécessaire) et exécute `openclaw health`.
|
||||
- Astuce : `openclaw status --deep` ajoute la sonde de santé Gateway en direct à la sortie d’état, y compris les sondes de canal lorsqu’elles sont prises en charge (nécessite une Gateway joignable).
|
||||
- Astuce : `openclaw status --deep` ajoute la sonde d’état de santé de la Gateway en direct à la sortie d’état, y compris les sondes de canaux lorsque prises en charge (nécessite une Gateway accessible).
|
||||
</Step>
|
||||
<Step title="Skills (recommandé)">
|
||||
- Lit les Skills disponibles et vérifie les exigences.
|
||||
- Vous permet de choisir un gestionnaire de nœuds : **npm / pnpm** (bun non recommandé).
|
||||
- Lit les Skills disponibles et vérifie les prérequis.
|
||||
- Vous permet de choisir un gestionnaire Node : **npm / pnpm** (bun est déconseillé).
|
||||
- Installe les dépendances facultatives (certaines utilisent Homebrew sur macOS).
|
||||
</Step>
|
||||
<Step title="Fin">
|
||||
- Résumé + étapes suivantes, y compris les applications iOS/Android/macOS pour des fonctionnalités supplémentaires.
|
||||
- Résumé + prochaines étapes, y compris les applications iOS/Android/macOS pour des fonctionnalités supplémentaires.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Note>
|
||||
Si aucune interface graphique n’est détectée, l’onboarding affiche les instructions de redirection de port SSH pour l’interface de contrôle au lieu d’ouvrir un navigateur.
|
||||
Si les assets de l’interface de contrôle sont absents, l’onboarding tente de les construire ; la solution de repli est `pnpm ui:build` (installe automatiquement les dépendances UI).
|
||||
Si aucune interface graphique n’est détectée, l’onboarding affiche des instructions de redirection de port SSH pour l’interface de contrôle au lieu d’ouvrir un navigateur.
|
||||
Si les ressources de l’interface de contrôle sont absentes, l’onboarding tente de les construire ; la solution de repli est `pnpm ui:build` (installe automatiquement les dépendances de l’interface).
|
||||
</Note>
|
||||
|
||||
## Mode non interactif
|
||||
|
||||
Utilisez `--non-interactive` pour automatiser ou script l’onboarding :
|
||||
Utilisez `--non-interactive` pour automatiser ou scriptiser l’onboarding :
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -163,7 +163,7 @@ openclaw onboard --non-interactive \
|
||||
--skip-skills
|
||||
```
|
||||
|
||||
Ajoutez `--json` pour un résumé lisible par machine.
|
||||
Ajoutez `--json` pour obtenir un résumé lisible par machine.
|
||||
|
||||
Token Gateway SecretRef en mode non interactif :
|
||||
|
||||
@ -176,13 +176,13 @@ openclaw onboard --non-interactive \
|
||||
--gateway-token-ref-env OPENCLAW_GATEWAY_TOKEN
|
||||
```
|
||||
|
||||
`--gateway-token` et `--gateway-token-ref-env` sont mutuellement exclusifs.
|
||||
`--gateway-token` et `--gateway-token-ref-env` s’excluent mutuellement.
|
||||
|
||||
<Note>
|
||||
`--json` **n’implique pas** le mode non interactif. Utilisez `--non-interactive` (et `--workspace`) pour les scripts.
|
||||
`--json` n’implique **pas** le mode non interactif. Utilisez `--non-interactive` (et `--workspace`) pour les scripts.
|
||||
</Note>
|
||||
|
||||
Des exemples de commandes spécifiques aux providers sont disponibles dans [Automatisation CLI](/fr/start/wizard-cli-automation#provider-specific-examples).
|
||||
Des exemples de commandes spécifiques aux fournisseurs se trouvent dans [Automatisation CLI](/fr/start/wizard-cli-automation#provider-specific-examples).
|
||||
Utilisez cette page de référence pour la sémantique des drapeaux et l’ordre des étapes.
|
||||
|
||||
### Ajouter un agent (mode non interactif)
|
||||
@ -201,18 +201,18 @@ openclaw agents add work \
|
||||
La Gateway expose le flux d’onboarding via RPC (`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`).
|
||||
Les clients (application macOS, interface de contrôle) peuvent afficher les étapes sans réimplémenter la logique d’onboarding.
|
||||
|
||||
## Configuration Signal (`signal-cli`)
|
||||
## Configuration de Signal (`signal-cli`)
|
||||
|
||||
L’onboarding peut installer `signal-cli` depuis les releases GitHub :
|
||||
|
||||
- Télécharge l’asset de release approprié.
|
||||
- Le stocke sous `~/.openclaw/tools/signal-cli/<version>/`.
|
||||
- Télécharge la ressource de release appropriée.
|
||||
- La stocke sous `~/.openclaw/tools/signal-cli/<version>/`.
|
||||
- Écrit `channels.signal.cliPath` dans votre configuration.
|
||||
|
||||
Remarques :
|
||||
|
||||
- Les builds JVM nécessitent **Java 21**.
|
||||
- Les builds natifs sont utilisés lorsqu’ils sont disponibles.
|
||||
- Les builds natives sont utilisées lorsqu’elles sont disponibles.
|
||||
- Windows utilise WSL2 ; l’installation de signal-cli suit le flux Linux à l’intérieur de WSL.
|
||||
|
||||
## Ce que l’assistant écrit
|
||||
@ -220,12 +220,12 @@ Remarques :
|
||||
Champs typiques dans `~/.openclaw/openclaw.json` :
|
||||
|
||||
- `agents.defaults.workspace`
|
||||
- `agents.defaults.model` / `models.providers` (si Minimax est choisi)
|
||||
- `tools.profile` (l’onboarding local utilise par défaut `"coding"` lorsqu’il n’est pas défini ; les valeurs explicites existantes sont préservées)
|
||||
- `gateway.*` (mode, liaison, authentification, Tailscale)
|
||||
- `agents.defaults.model` / `models.providers` (si MiniMax est choisi)
|
||||
- `tools.profile` (l’onboarding local utilise par défaut `"coding"` lorsqu’il n’est pas défini ; les valeurs explicites existantes sont conservées)
|
||||
- `gateway.*` (mode, bind, auth, tailscale)
|
||||
- `session.dmScope` (détails du comportement : [Référence de configuration CLI](/fr/start/wizard-cli-reference#outputs-and-internals))
|
||||
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
|
||||
- Listes d’autorisation de canal (Slack/Discord/Matrix/Microsoft Teams) lorsque vous activez cette option pendant les invites (les noms sont résolus vers des identifiants lorsque c’est possible).
|
||||
- Listes d’autorisation de canaux (Slack/Discord/Matrix/Microsoft Teams) lorsque vous activez cette option pendant les invites (les noms sont résolus en ID lorsque c’est possible).
|
||||
- `skills.install.nodeManager`
|
||||
- `setup --node-manager` accepte `npm`, `pnpm` ou `bun`.
|
||||
- La configuration manuelle peut toujours utiliser `yarn` en définissant directement `skills.install.nodeManager`.
|
||||
@ -235,18 +235,18 @@ Champs typiques dans `~/.openclaw/openclaw.json` :
|
||||
- `wizard.lastRunCommand`
|
||||
- `wizard.lastRunMode`
|
||||
|
||||
`openclaw agents add` écrit `agents.list[]` et éventuellement `bindings`.
|
||||
`openclaw agents add` écrit dans `agents.list[]` et `bindings` en option.
|
||||
|
||||
Les identifiants WhatsApp sont stockés sous `~/.openclaw/credentials/whatsapp/<accountId>/`.
|
||||
Les sessions sont stockées sous `~/.openclaw/agents/<agentId>/sessions/`.
|
||||
|
||||
Certains canaux sont fournis sous forme de plugins. Lorsque vous en choisissez un pendant la configuration, l’onboarding
|
||||
vous demandera de l’installer (npm ou chemin local) avant de pouvoir le configurer.
|
||||
vous invitera à l’installer (npm ou un chemin local) avant qu’il puisse être configuré.
|
||||
|
||||
## Documentation associée
|
||||
|
||||
- Vue d’ensemble de l’onboarding : [Onboarding (CLI)](/fr/start/wizard)
|
||||
- Onboarding de l’application macOS : [Onboarding](/fr/start/onboarding)
|
||||
- Référence de configuration : [Configuration Gateway](/fr/gateway/configuration)
|
||||
- Providers : [WhatsApp](/fr/channels/whatsapp), [Telegram](/fr/channels/telegram), [Discord](/fr/channels/discord), [Google Chat](/fr/channels/googlechat), [Signal](/fr/channels/signal), [BlueBubbles](/fr/channels/bluebubbles) (iMessage), [iMessage](/fr/channels/imessage) (hérité)
|
||||
- Skills : [Skills](/fr/tools/skills), [Configuration Skills](/fr/tools/skills-config)
|
||||
- Référence de configuration : [Configuration de la Gateway](/fr/gateway/configuration)
|
||||
- Fournisseurs : [WhatsApp](/fr/channels/whatsapp), [Telegram](/fr/channels/telegram), [Discord](/fr/channels/discord), [Google Chat](/fr/channels/googlechat), [Signal](/fr/channels/signal), [BlueBubbles](/fr/channels/bluebubbles) (iMessage), [iMessage](/fr/channels/imessage) (hérité)
|
||||
- Skills : [Skills](/fr/tools/skills), [Configuration des Skills](/fr/tools/skills-config)
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous avez besoin du comportement détaillé de `openclaw onboard`
|
||||
- Vous déboguez les résultats d'onboarding ou intégrez des clients d'onboarding
|
||||
- Vous déboguez les résultats de l’onboarding ou intégrez des clients d’onboarding
|
||||
sidebarTitle: CLI reference
|
||||
summary: Référence complète du flux de configuration de la CLI, de la configuration de l'authentification et des modèles, des sorties et des éléments internes
|
||||
summary: Référence complète du flux de configuration de la CLI, de la configuration d’authentification/modèle, des sorties et des éléments internes
|
||||
title: Référence de configuration de la CLI
|
||||
x-i18n:
|
||||
generated_at: "2026-04-06T03:13:18Z"
|
||||
generated_at: "2026-04-15T14:40:59Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 92f379b34a2b48c68335dae4f759117c770f018ec51b275f4f40421c6b3abb23
|
||||
source_hash: 61ca679caca3b43fa02388294007f89db22d343e49e10b61d8d118cd8fbb7369
|
||||
source_path: start/wizard-cli-reference.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,83 +17,83 @@ x-i18n:
|
||||
# Référence de configuration de la CLI
|
||||
|
||||
Cette page est la référence complète pour `openclaw onboard`.
|
||||
Pour le guide rapide, consultez [Onboarding (CLI)](/fr/start/wizard).
|
||||
Pour le guide rapide, voir [Onboarding (CLI)](/fr/start/wizard).
|
||||
|
||||
## Ce que fait l'assistant
|
||||
## Ce que fait l’assistant
|
||||
|
||||
Le mode local (par défaut) vous guide à travers :
|
||||
|
||||
- La configuration du modèle et de l'authentification (abonnement OpenAI Code OAuth, Anthropic Claude CLI ou clé API, ainsi que les options MiniMax, GLM, Ollama, Moonshot, StepFun et AI Gateway)
|
||||
- L'emplacement de l'espace de travail et les fichiers d'initialisation
|
||||
- Les paramètres de la passerelle (port, liaison, authentification, tailscale)
|
||||
- Les canaux et les fournisseurs (Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles et d'autres plugins de canal intégrés)
|
||||
- L'installation du daemon (LaunchAgent, unité utilisateur systemd ou tâche planifiée Windows native avec solution de secours via le dossier Startup)
|
||||
- La vérification d'état
|
||||
- La configuration des Skills
|
||||
- la configuration du modèle et de l’authentification (OAuth de l’abonnement OpenAI Code, Anthropic Claude CLI ou clé API, ainsi que les options MiniMax, GLM, Ollama, Moonshot, StepFun et AI Gateway)
|
||||
- l’emplacement de l’espace de travail et les fichiers d’initialisation
|
||||
- les paramètres du Gateway (port, bind, authentification, tailscale)
|
||||
- les canaux et fournisseurs (Telegram, WhatsApp, Discord, Google Chat, Mattermost, Signal, BlueBubbles et autres Plugins de canal intégrés)
|
||||
- l’installation du daemon (LaunchAgent, unité utilisateur systemd ou tâche planifiée Windows native avec solution de repli via le dossier Startup)
|
||||
- la vérification de santé
|
||||
- la configuration des Skills
|
||||
|
||||
Le mode distant configure cette machine pour se connecter à une passerelle située ailleurs.
|
||||
Il n'installe ni ne modifie quoi que ce soit sur l'hôte distant.
|
||||
Le mode distant configure cette machine pour qu’elle se connecte à un Gateway situé ailleurs.
|
||||
Il n’installe ni ne modifie quoi que ce soit sur l’hôte distant.
|
||||
|
||||
## Détails du flux local
|
||||
|
||||
<Steps>
|
||||
<Step title="Détection de la configuration existante">
|
||||
- Si `~/.openclaw/openclaw.json` existe, choisissez Conserver, Modifier ou Réinitialiser.
|
||||
- Réexécuter l'assistant n'efface rien à moins de choisir explicitement Réinitialiser (ou de passer `--reset`).
|
||||
- La CLI `--reset` utilise par défaut `config+creds+sessions` ; utilisez `--reset-scope full` pour supprimer aussi l'espace de travail.
|
||||
- Si la configuration est invalide ou contient des clés héritées, l'assistant s'arrête et vous demande d'exécuter `openclaw doctor` avant de continuer.
|
||||
- La réinitialisation utilise `trash` et propose plusieurs périmètres :
|
||||
- Relancer l’assistant n’efface rien sauf si vous choisissez explicitement Réinitialiser (ou passez `--reset`).
|
||||
- L’option CLI `--reset` utilise par défaut `config+creds+sessions` ; utilisez `--reset-scope full` pour supprimer aussi l’espace de travail.
|
||||
- Si la configuration est invalide ou contient des clés héritées, l’assistant s’arrête et vous demande d’exécuter `openclaw doctor` avant de continuer.
|
||||
- La réinitialisation utilise `trash` et propose les portées suivantes :
|
||||
- Configuration uniquement
|
||||
- Configuration + identifiants + sessions
|
||||
- Réinitialisation complète (supprime aussi l'espace de travail)
|
||||
- Configuration + informations d’authentification + sessions
|
||||
- Réinitialisation complète (supprime aussi l’espace de travail)
|
||||
</Step>
|
||||
<Step title="Modèle et authentification">
|
||||
- La matrice complète des options figure dans [Options d'authentification et de modèle](#options-dauthentification-et-de-modele).
|
||||
- La matrice complète des options se trouve dans [Options d’authentification et de modèle](#options-dauthentification-et-de-modèle).
|
||||
</Step>
|
||||
<Step title="Espace de travail">
|
||||
- Par défaut `~/.openclaw/workspace` (configurable).
|
||||
- Initialise les fichiers de l'espace de travail nécessaires au rituel d'amorçage du premier démarrage.
|
||||
- Structure de l'espace de travail : [Espace de travail de l'agent](/fr/concepts/agent-workspace).
|
||||
- Initialise les fichiers d’espace de travail nécessaires au rituel de bootstrap du premier lancement.
|
||||
- Structure de l’espace de travail : [Espace de travail de l’agent](/fr/concepts/agent-workspace).
|
||||
</Step>
|
||||
<Step title="Passerelle">
|
||||
- Demande le port, la liaison, le mode d'authentification et l'exposition tailscale.
|
||||
- Recommandé : garder l'authentification par jeton activée même pour loopback afin que les clients WS locaux doivent s'authentifier.
|
||||
<Step title="Gateway">
|
||||
- Demande le port, le bind, le mode d’authentification et l’exposition tailscale.
|
||||
- Recommandé : conserver l’authentification par jeton activée même pour le loopback afin que les clients WS locaux doivent s’authentifier.
|
||||
- En mode jeton, la configuration interactive propose :
|
||||
- **Générer/stocker un jeton en clair** (par défaut)
|
||||
- **Utiliser SecretRef** (option)
|
||||
- En mode mot de passe, la configuration interactive prend aussi en charge le stockage en clair ou SecretRef.
|
||||
- Chemin SecretRef pour jeton en mode non interactif : `--gateway-token-ref-env <ENV_VAR>`.
|
||||
- Nécessite une variable d'environnement non vide dans l'environnement du processus d'onboarding.
|
||||
- **Utiliser SecretRef** (optionnel)
|
||||
- En mode mot de passe, la configuration interactive prend également en charge le stockage en clair ou SecretRef.
|
||||
- Chemin SecretRef non interactif pour le jeton : `--gateway-token-ref-env <ENV_VAR>`.
|
||||
- Nécessite une variable d’environnement non vide dans l’environnement du processus d’onboarding.
|
||||
- Ne peut pas être combiné avec `--gateway-token`.
|
||||
- Désactivez l'authentification uniquement si vous faites entièrement confiance à chaque processus local.
|
||||
- Les liaisons non-loopback exigent toujours une authentification.
|
||||
- Désactivez l’authentification uniquement si vous faites entièrement confiance à tous les processus locaux.
|
||||
- Les binds non loopback exigent toujours une authentification.
|
||||
</Step>
|
||||
<Step title="Canaux">
|
||||
- [WhatsApp](/fr/channels/whatsapp) : connexion QR facultative
|
||||
- [Telegram](/fr/channels/telegram) : jeton de bot
|
||||
- [Discord](/fr/channels/discord) : jeton de bot
|
||||
- [Google Chat](/fr/channels/googlechat) : JSON de compte de service + audience webhook
|
||||
- [Google Chat](/fr/channels/googlechat) : JSON de compte de service + audience du Webhook
|
||||
- [Mattermost](/fr/channels/mattermost) : jeton de bot + URL de base
|
||||
- [Signal](/fr/channels/signal) : installation facultative de `signal-cli` + configuration du compte
|
||||
- [BlueBubbles](/fr/channels/bluebubbles) : recommandé pour iMessage ; URL du serveur + mot de passe + webhook
|
||||
- [iMessage](/fr/channels/imessage) : chemin CLI hérité `imsg` + accès à la base de données
|
||||
- Sécurité des messages privés : l'appairage est utilisé par défaut. Le premier message privé envoie un code ; approuvez-le via
|
||||
`openclaw pairing approve <channel> <code>` ou utilisez des listes d'autorisation.
|
||||
- [BlueBubbles](/fr/channels/bluebubbles) : recommandé pour iMessage ; URL du serveur + mot de passe + Webhook
|
||||
- [iMessage](/fr/channels/imessage) : chemin CLI `imsg` hérité + accès à la base de données
|
||||
- Sécurité des messages privés : le mode par défaut est l’appairage. Le premier message privé envoie un code ; approuvez-le via
|
||||
`openclaw pairing approve <channel> <code>` ou utilisez des listes d’autorisation.
|
||||
</Step>
|
||||
<Step title="Installation du daemon">
|
||||
- macOS : LaunchAgent
|
||||
- Nécessite une session utilisateur connectée ; pour un environnement headless, utilisez un LaunchDaemon personnalisé (non fourni).
|
||||
- Nécessite une session utilisateur connectée ; pour un mode headless, utilisez un LaunchDaemon personnalisé (non fourni).
|
||||
- Linux et Windows via WSL2 : unité utilisateur systemd
|
||||
- L'assistant tente `loginctl enable-linger <user>` afin que la passerelle reste active après la déconnexion.
|
||||
- Peut demander sudo (écrit dans `/var/lib/systemd/linger`) ; il essaie d'abord sans sudo.
|
||||
- L’assistant tente `loginctl enable-linger <user>` afin que le Gateway reste actif après la déconnexion.
|
||||
- Peut demander sudo (écrit dans `/var/lib/systemd/linger`) ; il essaie d’abord sans sudo.
|
||||
- Windows natif : tâche planifiée en priorité
|
||||
- Si la création de la tâche est refusée, OpenClaw bascule vers un élément de connexion par utilisateur dans le dossier Startup et démarre immédiatement la passerelle.
|
||||
- Les tâches planifiées restent préférées car elles fournissent un meilleur état du superviseur.
|
||||
- Sélection de l'environnement d'exécution : Node (recommandé ; requis pour WhatsApp et Telegram). Bun n'est pas recommandé.
|
||||
- Si la création de la tâche est refusée, OpenClaw revient à un élément de connexion par utilisateur dans le dossier Startup et démarre immédiatement le Gateway.
|
||||
- Les tâches planifiées restent préférées car elles offrent un meilleur statut de supervision.
|
||||
- Sélection de l’environnement d’exécution : Node (recommandé ; requis pour WhatsApp et Telegram). Bun n’est pas recommandé.
|
||||
</Step>
|
||||
<Step title="Vérification d'état">
|
||||
- Démarre la passerelle (si nécessaire) et exécute `openclaw health`.
|
||||
- `openclaw status --deep` ajoute la sonde d'état en direct de la passerelle à la sortie de statut, y compris les sondes de canaux lorsqu'elles sont prises en charge.
|
||||
<Step title="Vérification de santé">
|
||||
- Démarre le Gateway (si nécessaire) et exécute `openclaw health`.
|
||||
- `openclaw status --deep` ajoute la sonde de santé du Gateway en direct à la sortie d’état, y compris les sondes de canal lorsqu’elles sont prises en charge.
|
||||
</Step>
|
||||
<Step title="Skills">
|
||||
- Lit les Skills disponibles et vérifie les prérequis.
|
||||
@ -101,58 +101,57 @@ Il n'installe ni ne modifie quoi que ce soit sur l'hôte distant.
|
||||
- Installe les dépendances facultatives (certaines utilisent Homebrew sur macOS).
|
||||
</Step>
|
||||
<Step title="Fin">
|
||||
- Résumé et étapes suivantes, y compris les options d'application iOS, Android et macOS.
|
||||
- Résumé et étapes suivantes, y compris les options d’application iOS, Android et macOS.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<Note>
|
||||
Si aucune interface graphique n'est détectée, l'assistant affiche les instructions de transfert de port SSH pour l'interface de contrôle au lieu d'ouvrir un navigateur.
|
||||
Si les ressources de l'interface de contrôle sont absentes, l'assistant tente de les construire ; la solution de secours est `pnpm ui:build` (installe automatiquement les dépendances de l'interface).
|
||||
Si aucune interface graphique n’est détectée, l’assistant affiche des instructions de redirection de port SSH pour l’UI de contrôle au lieu d’ouvrir un navigateur.
|
||||
Si les ressources de l’UI de contrôle sont absentes, l’assistant tente de les construire ; la solution de repli est `pnpm ui:build` (installe automatiquement les dépendances UI).
|
||||
</Note>
|
||||
|
||||
## Détails du mode distant
|
||||
|
||||
Le mode distant configure cette machine pour se connecter à une passerelle située ailleurs.
|
||||
Le mode distant configure cette machine pour qu’elle se connecte à un Gateway situé ailleurs.
|
||||
|
||||
<Info>
|
||||
Le mode distant n'installe ni ne modifie quoi que ce soit sur l'hôte distant.
|
||||
Le mode distant n’installe ni ne modifie quoi que ce soit sur l’hôte distant.
|
||||
</Info>
|
||||
|
||||
Ce que vous définissez :
|
||||
Ce que vous configurez :
|
||||
|
||||
- URL de la passerelle distante (`ws://...`)
|
||||
- Jeton si l'authentification de la passerelle distante est requise (recommandé)
|
||||
- URL du Gateway distant (`ws://...`)
|
||||
- Jeton si l’authentification du Gateway distant est requise (recommandé)
|
||||
|
||||
<Note>
|
||||
- Si la passerelle est limitée à loopback, utilisez un tunnel SSH ou un tailnet.
|
||||
- Indices de découverte :
|
||||
- Si le Gateway n’est accessible qu’en loopback, utilisez un tunnel SSH ou un tailnet.
|
||||
- Indications de découverte :
|
||||
- macOS : Bonjour (`dns-sd`)
|
||||
- Linux : Avahi (`avahi-browse`)
|
||||
</Note>
|
||||
|
||||
## Options d'authentification et de modèle
|
||||
## Options d’authentification et de modèle
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Clé API Anthropic">
|
||||
Utilise `ANTHROPIC_API_KEY` si elle est présente ou demande une clé, puis l'enregistre pour l'utilisation par le daemon.
|
||||
Utilise `ANTHROPIC_API_KEY` si elle est présente ou demande une clé, puis l’enregistre pour l’utilisation par le daemon.
|
||||
</Accordion>
|
||||
<Accordion title="Abonnement OpenAI Code (réutilisation de Codex CLI)">
|
||||
Si `~/.codex/auth.json` existe, l'assistant peut le réutiliser.
|
||||
Les identifiants Codex CLI réutilisés restent gérés par Codex CLI ; à l'expiration, OpenClaw
|
||||
relit d'abord cette source et, lorsque le fournisseur peut l'actualiser, écrit
|
||||
l'identifiant actualisé dans le stockage Codex au lieu d'en prendre lui-même
|
||||
la gestion.
|
||||
Si `~/.codex/auth.json` existe, l’assistant peut le réutiliser.
|
||||
Les identifiants Codex CLI réutilisés restent gérés par Codex CLI ; à expiration, OpenClaw
|
||||
relit d’abord cette source et, lorsque le fournisseur peut la rafraîchir, écrit
|
||||
l’identifiant rafraîchi dans le stockage Codex au lieu d’en prendre lui-même la gestion.
|
||||
</Accordion>
|
||||
<Accordion title="Abonnement OpenAI Code (OAuth)">
|
||||
Flux navigateur ; collez `code#state`.
|
||||
|
||||
Définit `agents.defaults.model` sur `openai-codex/gpt-5.4` lorsque le modèle n'est pas défini ou vaut `openai/*`.
|
||||
Définit `agents.defaults.model` sur `openai-codex/gpt-5.4` lorsque le modèle n’est pas défini ou vaut `openai/*`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Clé API OpenAI">
|
||||
Utilise `OPENAI_API_KEY` si elle est présente ou demande une clé, puis stocke l'identifiant dans les profils d'authentification.
|
||||
Utilise `OPENAI_API_KEY` si elle est présente ou demande une clé, puis stocke l’identifiant dans les profils d’authentification.
|
||||
|
||||
Définit `agents.defaults.model` sur `openai/gpt-5.4` lorsque le modèle n'est pas défini, vaut `openai/*` ou `openai-codex/*`.
|
||||
Définit `agents.defaults.model` sur `openai/gpt-5.4` lorsque le modèle n’est pas défini, vaut `openai/*` ou `openai-codex/*`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Clé API xAI (Grok)">
|
||||
@ -170,7 +169,7 @@ Ce que vous définissez :
|
||||
Plus de détails : [Vercel AI Gateway](/fr/providers/vercel-ai-gateway).
|
||||
</Accordion>
|
||||
<Accordion title="Cloudflare AI Gateway">
|
||||
Demande l'ID de compte, l'ID de passerelle et `CLOUDFLARE_AI_GATEWAY_API_KEY`.
|
||||
Demande l’ID de compte, l’ID de Gateway et `CLOUDFLARE_AI_GATEWAY_API_KEY`.
|
||||
Plus de détails : [Cloudflare AI Gateway](/fr/providers/cloudflare-ai-gateway).
|
||||
</Accordion>
|
||||
<Accordion title="MiniMax">
|
||||
@ -179,8 +178,8 @@ Ce que vous définissez :
|
||||
Plus de détails : [MiniMax](/fr/providers/minimax).
|
||||
</Accordion>
|
||||
<Accordion title="StepFun">
|
||||
La configuration est écrite automatiquement pour StepFun standard ou Step Plan sur des points de terminaison chinois ou globaux.
|
||||
Standard inclut actuellement `step-3.5-flash`, et Step Plan inclut aussi `step-3.5-flash-2603`.
|
||||
La configuration est écrite automatiquement pour StepFun standard ou Step Plan sur des points de terminaison Chine ou globaux.
|
||||
La version standard inclut actuellement `step-3.5-flash`, et Step Plan inclut également `step-3.5-flash-2603`.
|
||||
Plus de détails : [StepFun](/fr/providers/stepfun).
|
||||
</Accordion>
|
||||
<Accordion title="Synthetic (compatible Anthropic)">
|
||||
@ -188,8 +187,10 @@ Ce que vous définissez :
|
||||
Plus de détails : [Synthetic](/fr/providers/synthetic).
|
||||
</Accordion>
|
||||
<Accordion title="Ollama (Cloud et modèles ouverts locaux)">
|
||||
Demande l'URL de base (par défaut `http://127.0.0.1:11434`), puis propose le mode Cloud + local ou local.
|
||||
Détecte les modèles disponibles et suggère des valeurs par défaut.
|
||||
Demande d’abord `Cloud + Local`, `Cloud only` ou `Local only`.
|
||||
`Cloud only` utilise `OLLAMA_API_KEY` avec `https://ollama.com`.
|
||||
Les modes adossés à l’hôte demandent l’URL de base (par défaut `http://127.0.0.1:11434`), découvrent les modèles disponibles et suggèrent des valeurs par défaut.
|
||||
`Cloud + Local` vérifie également si cet hôte Ollama est connecté pour l’accès cloud.
|
||||
Plus de détails : [Ollama](/fr/providers/ollama).
|
||||
</Accordion>
|
||||
<Accordion title="Moonshot et Kimi Coding">
|
||||
@ -197,70 +198,69 @@ Ce que vous définissez :
|
||||
Plus de détails : [Moonshot AI (Kimi + Kimi Coding)](/fr/providers/moonshot).
|
||||
</Accordion>
|
||||
<Accordion title="Fournisseur personnalisé">
|
||||
Fonctionne avec des points de terminaison compatibles OpenAI et compatibles Anthropic.
|
||||
Fonctionne avec les points de terminaison compatibles OpenAI et compatibles Anthropic.
|
||||
|
||||
L'onboarding interactif prend en charge les mêmes choix de stockage de clé API que les autres flux de clé API de fournisseur :
|
||||
- **Coller la clé API maintenant** (en clair)
|
||||
- **Utiliser une référence secrète** (référence d'environnement ou référence de fournisseur configurée, avec validation préalable)
|
||||
L’onboarding interactif prend en charge les mêmes choix de stockage de clé API que les autres flux de clé API de fournisseur :
|
||||
- **Coller une clé API maintenant** (en clair)
|
||||
- **Utiliser une référence de secret** (référence env ou référence de fournisseur configuré, avec validation préliminaire)
|
||||
|
||||
Indicateurs non interactifs :
|
||||
- `--auth-choice custom-api-key`
|
||||
- `--custom-base-url`
|
||||
- `--custom-model-id`
|
||||
- `--custom-api-key` (facultatif ; revient à `CUSTOM_API_KEY`)
|
||||
- `--custom-provider-id` (facultatif)
|
||||
- `--custom-compatibility <openai|anthropic>` (facultatif ; `openai` par défaut)
|
||||
- `--custom-api-key` (optionnel ; revient à `CUSTOM_API_KEY`)
|
||||
- `--custom-provider-id` (optionnel)
|
||||
- `--custom-compatibility <openai|anthropic>` (optionnel ; `openai` par défaut)
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Ignorer">
|
||||
Laisse l'authentification non configurée.
|
||||
Laisse l’authentification non configurée.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Comportement du modèle :
|
||||
|
||||
- Choisissez le modèle par défaut parmi les options détectées, ou saisissez manuellement le fournisseur et le modèle.
|
||||
- Lorsque l'onboarding démarre à partir d'un choix d'authentification de fournisseur, le sélecteur de modèle privilégie
|
||||
- Lorsque l’onboarding démarre à partir d’un choix d’authentification de fournisseur, le sélecteur de modèle privilégie
|
||||
automatiquement ce fournisseur. Pour Volcengine et BytePlus, cette même préférence
|
||||
correspond aussi à leurs variantes coding-plan (`volcengine-plan/*`,
|
||||
correspond aussi à leurs variantes de plan de codage (`volcengine-plan/*`,
|
||||
`byteplus-plan/*`).
|
||||
- Si ce filtre de fournisseur préféré serait vide, le sélecteur revient
|
||||
au catalogue complet au lieu de n'afficher aucun modèle.
|
||||
- L'assistant exécute une vérification du modèle et avertit si le modèle configuré est inconnu ou si l'authentification est manquante.
|
||||
au catalogue complet au lieu de n’afficher aucun modèle.
|
||||
- L’assistant exécute une vérification du modèle et avertit si le modèle configuré est inconnu ou si l’authentification manque.
|
||||
|
||||
Chemins des identifiants et des profils :
|
||||
|
||||
- Profils d'authentification (clés API + OAuth) : `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
|
||||
- Profils d’authentification (clés API + OAuth) : `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
|
||||
- Import OAuth hérité : `~/.openclaw/credentials/oauth.json`
|
||||
|
||||
Mode de stockage des identifiants :
|
||||
|
||||
- Le comportement par défaut de l'onboarding conserve les clés API sous forme de valeurs en clair dans les profils d'authentification.
|
||||
- `--secret-input-mode ref` active le mode référence à la place du stockage de clé en clair.
|
||||
En configuration interactive, vous pouvez choisir l'un des deux :
|
||||
- référence de variable d'environnement (par exemple `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`)
|
||||
- Le comportement par défaut de l’onboarding conserve les clés API comme valeurs en clair dans les profils d’authentification.
|
||||
- `--secret-input-mode ref` active le mode référence au lieu du stockage en clair des clés.
|
||||
Dans la configuration interactive, vous pouvez choisir l’une des options suivantes :
|
||||
- référence de variable d’environnement (par exemple `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`)
|
||||
- référence de fournisseur configuré (`file` ou `exec`) avec alias de fournisseur + id
|
||||
- Le mode référence interactif exécute une validation préalable rapide avant l'enregistrement.
|
||||
- Références d'environnement : valide le nom de la variable + la valeur non vide dans l'environnement d'onboarding courant.
|
||||
- Références de fournisseur : valide la configuration du fournisseur et résout l'id demandé.
|
||||
- Si la validation préalable échoue, l'onboarding affiche l'erreur et vous permet de réessayer.
|
||||
- En mode non interactif, `--secret-input-mode ref` ne prend en charge que l'environnement.
|
||||
- Définissez la variable d'environnement du fournisseur dans l'environnement du processus d'onboarding.
|
||||
- Les indicateurs de clé en ligne (par exemple `--openai-api-key`) exigent que cette variable d'environnement soit définie ; sinon l'onboarding échoue immédiatement.
|
||||
- Pour les fournisseurs personnalisés, le mode `ref` non interactif stocke `models.providers.<id>.apiKey` sous la forme `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`.
|
||||
- Dans ce cas de fournisseur personnalisé, `--custom-api-key` exige que `CUSTOM_API_KEY` soit défini ; sinon l'onboarding échoue immédiatement.
|
||||
- Les identifiants d'authentification de la passerelle prennent en charge les choix en clair et SecretRef en configuration interactive :
|
||||
- Le mode référence interactif exécute une validation préliminaire rapide avant l’enregistrement.
|
||||
- Références env : valide le nom de la variable + une valeur non vide dans l’environnement actuel d’onboarding.
|
||||
- Références fournisseur : valide la configuration du fournisseur et résout l’id demandé.
|
||||
- Si la validation préliminaire échoue, l’onboarding affiche l’erreur et vous permet de réessayer.
|
||||
- En mode non interactif, `--secret-input-mode ref` est uniquement adossé aux variables d’environnement.
|
||||
- Définissez la variable d’environnement du fournisseur dans l’environnement du processus d’onboarding.
|
||||
- Les indicateurs de clé inline (par exemple `--openai-api-key`) exigent que cette variable d’environnement soit définie ; sinon l’onboarding échoue immédiatement.
|
||||
- Pour les fournisseurs personnalisés, le mode `ref` non interactif stocke `models.providers.<id>.apiKey` comme `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`.
|
||||
- Dans ce cas de fournisseur personnalisé, `--custom-api-key` exige que `CUSTOM_API_KEY` soit définie ; sinon l’onboarding échoue immédiatement.
|
||||
- Les identifiants d’authentification du Gateway prennent en charge les choix en clair et SecretRef dans la configuration interactive :
|
||||
- Mode jeton : **Générer/stocker un jeton en clair** (par défaut) ou **Utiliser SecretRef**.
|
||||
- Mode mot de passe : en clair ou SecretRef.
|
||||
- Chemin SecretRef pour jeton en mode non interactif : `--gateway-token-ref-env <ENV_VAR>`.
|
||||
- Chemin SecretRef non interactif pour le jeton : `--gateway-token-ref-env <ENV_VAR>`.
|
||||
- Les configurations existantes en clair continuent de fonctionner sans changement.
|
||||
|
||||
<Note>
|
||||
Conseil pour les environnements headless et serveur : terminez OAuth sur une machine disposant d'un navigateur, puis copiez
|
||||
le `auth-profiles.json` de cet agent (par exemple
|
||||
Conseil pour les environnements headless et serveur : terminez OAuth sur une machine équipée d’un navigateur, puis copiez le `auth-profiles.json` de cet agent (par exemple
|
||||
`~/.openclaw/agents/<agentId>/agent/auth-profiles.json`, ou le chemin correspondant
|
||||
`$OPENCLAW_STATE_DIR/...`) vers l'hôte de la passerelle. `credentials/oauth.json`
|
||||
n'est qu'une source d'import héritée.
|
||||
`$OPENCLAW_STATE_DIR/...`) vers l’hôte Gateway. `credentials/oauth.json`
|
||||
n’est qu’une source d’importation héritée.
|
||||
</Note>
|
||||
|
||||
## Sorties et éléments internes
|
||||
@ -268,51 +268,51 @@ n'est qu'une source d'import héritée.
|
||||
Champs typiques dans `~/.openclaw/openclaw.json` :
|
||||
|
||||
- `agents.defaults.workspace`
|
||||
- `agents.defaults.model` / `models.providers` (si Minimax est choisi)
|
||||
- `tools.profile` (l'onboarding local utilise par défaut `"coding"` lorsqu'il n'est pas défini ; les valeurs explicites existantes sont conservées)
|
||||
- `gateway.*` (mode, liaison, authentification, tailscale)
|
||||
- `session.dmScope` (l'onboarding local définit par défaut cette valeur sur `per-channel-peer` lorsqu'elle n'est pas définie ; les valeurs explicites existantes sont conservées)
|
||||
- `agents.defaults.model` / `models.providers` (si MiniMax est choisi)
|
||||
- `tools.profile` (l’onboarding local utilise par défaut `"coding"` lorsqu’il n’est pas défini ; les valeurs explicites existantes sont conservées)
|
||||
- `gateway.*` (mode, bind, auth, tailscale)
|
||||
- `session.dmScope` (l’onboarding local utilise par défaut `per-channel-peer` lorsqu’il n’est pas défini ; les valeurs explicites existantes sont conservées)
|
||||
- `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
|
||||
- Listes d'autorisation de canaux (Slack, Discord, Matrix, Microsoft Teams) lorsque vous activez l'option pendant les invites (les noms sont résolus en ID lorsque c'est possible)
|
||||
- Listes d’autorisation de canaux (Slack, Discord, Matrix, Microsoft Teams) lorsque vous choisissez cette option pendant les invites (les noms sont résolus en ID lorsque c’est possible)
|
||||
- `skills.install.nodeManager`
|
||||
- L'indicateur `setup --node-manager` accepte `npm`, `pnpm` ou `bun`.
|
||||
- La configuration manuelle peut toujours définir ultérieurement `skills.install.nodeManager: "yarn"`.
|
||||
- L’indicateur `setup --node-manager` accepte `npm`, `pnpm` ou `bun`.
|
||||
- Une configuration manuelle peut toujours définir ensuite `skills.install.nodeManager: "yarn"`.
|
||||
- `wizard.lastRunAt`
|
||||
- `wizard.lastRunVersion`
|
||||
- `wizard.lastRunCommit`
|
||||
- `wizard.lastRunCommand`
|
||||
- `wizard.lastRunMode`
|
||||
|
||||
`openclaw agents add` écrit `agents.list[]` et des `bindings` facultatifs.
|
||||
`openclaw agents add` écrit dans `agents.list[]` et dans `bindings` si nécessaire.
|
||||
|
||||
Les identifiants WhatsApp sont stockés sous `~/.openclaw/credentials/whatsapp/<accountId>/`.
|
||||
Les identifiants WhatsApp sont placés sous `~/.openclaw/credentials/whatsapp/<accountId>/`.
|
||||
Les sessions sont stockées sous `~/.openclaw/agents/<agentId>/sessions/`.
|
||||
|
||||
<Note>
|
||||
Certains canaux sont fournis sous forme de plugins. Lorsqu'ils sont sélectionnés pendant la configuration, l'assistant
|
||||
demande d'installer le plugin (npm ou chemin local) avant la configuration du canal.
|
||||
Certains canaux sont fournis sous forme de plugins. Lorsqu’ils sont sélectionnés pendant la configuration, l’assistant
|
||||
demande d’installer le plugin (npm ou chemin local) avant la configuration du canal.
|
||||
</Note>
|
||||
|
||||
RPC de l'assistant de passerelle :
|
||||
RPC de l’assistant Gateway :
|
||||
|
||||
- `wizard.start`
|
||||
- `wizard.next`
|
||||
- `wizard.cancel`
|
||||
- `wizard.status`
|
||||
|
||||
Les clients (application macOS et interface de contrôle) peuvent afficher les étapes sans réimplémenter la logique d'onboarding.
|
||||
Les clients (application macOS et UI de contrôle) peuvent afficher les étapes sans réimplémenter la logique d’onboarding.
|
||||
|
||||
Comportement de la configuration Signal :
|
||||
Comportement de la configuration de Signal :
|
||||
|
||||
- Télécharge la ressource de version appropriée
|
||||
- La stocke sous `~/.openclaw/tools/signal-cli/<version>/`
|
||||
- Écrit `channels.signal.cliPath` dans la configuration
|
||||
- Les builds JVM exigent Java 21
|
||||
- Les builds natifs sont utilisés lorsqu'ils sont disponibles
|
||||
- Windows utilise WSL2 et suit le flux Linux signal-cli à l'intérieur de WSL
|
||||
- Les builds JVM nécessitent Java 21
|
||||
- Les builds natifs sont utilisés lorsqu’ils sont disponibles
|
||||
- Windows utilise WSL2 et suit le flux Linux `signal-cli` à l’intérieur de WSL
|
||||
|
||||
## Documentation associée
|
||||
|
||||
- Hub d'onboarding : [Onboarding (CLI)](/fr/start/wizard)
|
||||
- Hub d’onboarding : [Onboarding (CLI)](/fr/start/wizard)
|
||||
- Automatisation et scripts : [Automatisation de la CLI](/fr/start/wizard-cli-automation)
|
||||
- Référence de commande : [`openclaw onboard`](/cli/onboard)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user