chore(i18n): refresh fr translations
This commit is contained in:
parent
beb1a3c425
commit
aa426faafd
File diff suppressed because it is too large
Load Diff
174
docs/fr/help/gpt54-codex-agentic-parity-maintainers.md
Normal file
174
docs/fr/help/gpt54-codex-agentic-parity-maintainers.md
Normal file
@ -0,0 +1,174 @@
|
||||
---
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T15:15:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 910bcf7668becf182ef48185b43728bf2fa69629d6d50189d47d47b06f807a9e
|
||||
source_path: help/gpt54-codex-agentic-parity-maintainers.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Notes de maintenance sur la parité GPT-5.4 / Codex
|
||||
|
||||
Cette note explique comment examiner le programme de parité GPT-5.4 / Codex comme quatre unités de fusion sans perdre l’architecture originale en six contrats.
|
||||
|
||||
## Unités de fusion
|
||||
|
||||
### PR A : exécution agentique stricte
|
||||
|
||||
Possède :
|
||||
|
||||
- `executionContract`
|
||||
- suivi dans le même tour, d’abord GPT-5
|
||||
- `update_plan` comme suivi de progression non terminal
|
||||
- états bloqués explicites au lieu d’arrêts silencieux limités au plan
|
||||
|
||||
Ne possède pas :
|
||||
|
||||
- classification des échecs d’authentification/runtime
|
||||
- véracité des permissions
|
||||
- refonte du rejeu/de la continuation
|
||||
- benchmarking de parité
|
||||
|
||||
### PR B : véracité du runtime
|
||||
|
||||
Possède :
|
||||
|
||||
- exactitude des scopes OAuth Codex
|
||||
- classification typée des échecs provider/runtime
|
||||
- disponibilité véridique de `/elevated full` et raisons de blocage
|
||||
|
||||
Ne possède pas :
|
||||
|
||||
- normalisation du schéma des outils
|
||||
- état de rejeu/vivacité
|
||||
- contrôle du benchmark
|
||||
|
||||
### PR C : exactitude de l’exécution
|
||||
|
||||
Possède :
|
||||
|
||||
- compatibilité des outils OpenAI/Codex possédée par le provider
|
||||
- gestion stricte des schémas sans paramètres
|
||||
- exposition des rejeux invalides
|
||||
- visibilité des états de tâche longue en pause, bloquée et abandonnée
|
||||
|
||||
Ne possède pas :
|
||||
|
||||
- continuation auto-élue
|
||||
- comportement générique du dialecte Codex en dehors des hooks du provider
|
||||
- contrôle du benchmark
|
||||
|
||||
### PR D : harnais de parité
|
||||
|
||||
Possède :
|
||||
|
||||
- premier lot de scénarios GPT-5.4 vs Opus 4.6
|
||||
- documentation de la parité
|
||||
- rapport de parité et mécanismes de contrôle à la publication
|
||||
|
||||
Ne possède pas :
|
||||
|
||||
- changements de comportement du runtime en dehors de QA-lab
|
||||
- simulation auth/proxy/DNS dans le harnais
|
||||
|
||||
## Correspondance avec les six contrats d’origine
|
||||
|
||||
| Contrat d’origine | Unité de fusion |
|
||||
| --------------------------------------- | --------------- |
|
||||
| Exactitude du transport/auth provider | PR B |
|
||||
| Compatibilité contrat/schéma des outils | PR C |
|
||||
| Exécution dans le même tour | PR A |
|
||||
| Véracité des permissions | PR B |
|
||||
| Exactitude rejeu/continuation/vivacité | PR C |
|
||||
| Contrôle benchmark/publication | PR D |
|
||||
|
||||
## Ordre de revue
|
||||
|
||||
1. PR A
|
||||
2. PR B
|
||||
3. PR C
|
||||
4. PR D
|
||||
|
||||
PR D est la couche de preuve. Elle ne doit pas être la raison pour laquelle les PR de correction du runtime sont retardées.
|
||||
|
||||
## Points à vérifier
|
||||
|
||||
### PR A
|
||||
|
||||
- les exécutions GPT-5 agissent ou échouent de manière fermée au lieu de s’arrêter au commentaire
|
||||
- `update_plan` ne ressemble plus à lui seul à une progression
|
||||
- le comportement reste d’abord GPT-5 et limité au périmètre Pi embarqué
|
||||
|
||||
### PR B
|
||||
|
||||
- les échecs auth/proxy/runtime ne sont plus ramenés à une gestion générique de type « le modèle a échoué »
|
||||
- `/elevated full` n’est décrit comme disponible que lorsqu’il l’est réellement
|
||||
- les raisons de blocage sont visibles à la fois pour le modèle et pour le runtime exposé à l’utilisateur
|
||||
|
||||
### PR C
|
||||
|
||||
- l’enregistrement strict des outils OpenAI/Codex se comporte de manière prévisible
|
||||
- les outils sans paramètres n’échouent pas aux vérifications strictes du schéma
|
||||
- les résultats de rejeu et de compaction préservent un état de vivacité véridique
|
||||
|
||||
### PR D
|
||||
|
||||
- le lot de scénarios est compréhensible et reproductible
|
||||
- le lot inclut une voie mutante de sécurité de rejeu, pas seulement des flux en lecture seule
|
||||
- les rapports sont lisibles par les humains et par l’automatisation
|
||||
- les affirmations de parité sont étayées par des preuves, pas anecdotiques
|
||||
|
||||
Artéfacts attendus de PR D :
|
||||
|
||||
- `qa-suite-report.md` / `qa-suite-summary.json` pour chaque exécution de modèle
|
||||
- `qa-agentic-parity-report.md` avec comparaison agrégée et au niveau des scénarios
|
||||
- `qa-agentic-parity-summary.json` avec un verdict lisible par machine
|
||||
|
||||
## Contrôle de publication
|
||||
|
||||
Ne pas affirmer la parité ou la supériorité de GPT-5.4 sur Opus 4.6 tant que :
|
||||
|
||||
- PR A, PR B et PR C ne sont pas fusionnées
|
||||
- PR D n’exécute pas proprement le premier lot de parité
|
||||
- les suites de régression de véracité du runtime restent vertes
|
||||
- le rapport de parité ne montre aucun cas de faux succès et aucune régression du comportement d’arrêt
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["PR A-C fusionnées"] --> B["Exécuter le lot de parité GPT-5.4"]
|
||||
A --> C["Exécuter le lot de parité Opus 4.6"]
|
||||
B --> D["qa-suite-summary.json"]
|
||||
C --> E["qa-suite-summary.json"]
|
||||
D --> F["qa parity-report"]
|
||||
E --> F
|
||||
F --> G["Rapport Markdown + verdict JSON"]
|
||||
G --> H{"Réussite ?"}
|
||||
H -- "oui" --> I["Affirmation de parité autorisée"]
|
||||
H -- "non" --> J["Garder les correctifs runtime / la boucle de revue ouverte"]
|
||||
```
|
||||
|
||||
Le harnais de parité n’est pas la seule source de preuve. Gardez cette séparation explicite dans la revue :
|
||||
|
||||
- PR D possède la comparaison par scénarios entre GPT-5.4 et Opus 4.6
|
||||
- les suites déterministes de PR B possèdent toujours les preuves auth/proxy/DNS et de véracité d’accès complet
|
||||
|
||||
## Cartographie objectif-preuve
|
||||
|
||||
| Élément du critère d’achèvement | Propriétaire principal | Artéfact de revue |
|
||||
| ---------------------------------------- | ---------------------- | -------------------------------------------------------------------- |
|
||||
| Aucun blocage limité au plan | PR A | tests runtime agentiques stricts et `approval-turn-tool-followthrough` |
|
||||
| Aucun faux progrès ni fausse exécution d’outil | PR A + PR D | nombre de faux succès de parité plus détails du rapport au niveau des scénarios |
|
||||
| Aucun faux guidage `/elevated full` | PR B | suites déterministes de véracité du runtime |
|
||||
| Les échecs de rejeu/vivacité restent explicites | PR C + PR D | suites cycle de vie/rejeu plus `compaction-retry-mutating-tool` |
|
||||
| GPT-5.4 égale ou dépasse Opus 4.6 | PR D | `qa-agentic-parity-report.md` et `qa-agentic-parity-summary.json` |
|
||||
|
||||
## Abréviation pour les reviewers : avant vs après
|
||||
|
||||
| Problème visible par l’utilisateur avant | Signal de revue après |
|
||||
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| GPT-5.4 s’arrêtait après la planification | PR A montre un comportement agir-ou-bloquer au lieu d’une fin limitée au commentaire |
|
||||
| L’usage des outils semblait fragile avec les schémas stricts OpenAI/Codex | PR C garde un enregistrement des outils et une invocation sans paramètres prévisibles |
|
||||
| Les indications `/elevated full` étaient parfois trompeuses | PR B relie les indications à la capacité réelle du runtime et aux raisons de blocage |
|
||||
| Les tâches longues pouvaient disparaître dans l’ambiguïté du rejeu/de la compaction | PR C émet des états explicites : en pause, bloquée, abandonnée et rejeu invalide |
|
||||
| Les affirmations de parité étaient anecdotiques | PR D produit un rapport plus un verdict JSON avec la même couverture de scénarios sur les deux modèles |
|
||||
229
docs/fr/help/gpt54-codex-agentic-parity.md
Normal file
229
docs/fr/help/gpt54-codex-agentic-parity.md
Normal file
@ -0,0 +1,229 @@
|
||||
---
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T15:15:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 7ee6b925b8a0f8843693cea9d50b40544657b5fb8a9e0860e2ff5badb273acb6
|
||||
source_path: help/gpt54-codex-agentic-parity.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# GPT-5.4 / Parité agentique Codex dans OpenClaw
|
||||
|
||||
OpenClaw fonctionnait déjà bien avec les modèles de pointe utilisant des outils, mais les modèles de type GPT-5.4 et Codex restaient moins performants dans quelques cas pratiques :
|
||||
|
||||
- ils pouvaient s'arrêter après la planification au lieu d'effectuer le travail
|
||||
- ils pouvaient utiliser incorrectement les schémas d'outils stricts d'OpenAI/Codex
|
||||
- ils pouvaient demander `/elevated full` même lorsque l'accès complet était impossible
|
||||
- ils pouvaient perdre l'état des tâches longues pendant la relecture ou la compaction
|
||||
- les affirmations de parité avec Claude Opus 4.6 reposaient sur des anecdotes plutôt que sur des scénarios reproductibles
|
||||
|
||||
Ce programme de parité corrige ces lacunes en quatre volets révisables.
|
||||
|
||||
## Ce qui a changé
|
||||
|
||||
### PR A : exécution stricte agentique
|
||||
|
||||
Ce volet ajoute un contrat d'exécution `strict-agentic` optionnel pour les exécutions GPT-5 embarquées sur Pi.
|
||||
|
||||
Lorsqu'il est activé, OpenClaw n'accepte plus les tours de planification seule comme une complétion « suffisante ». Si le modèle dit seulement ce qu'il a l'intention de faire sans réellement utiliser d'outils ni progresser, OpenClaw réessaie avec une instruction de passage immédiat à l'action, puis échoue en mode fermé avec un état bloqué explicite au lieu de terminer silencieusement la tâche.
|
||||
|
||||
Cela améliore surtout l'expérience GPT-5.4 dans les cas suivants :
|
||||
|
||||
- courts suivis du type « ok fais-le »
|
||||
- tâches de code où la première étape est évidente
|
||||
- flux où `update_plan` doit servir au suivi de progression plutôt qu'à du texte de remplissage
|
||||
|
||||
### PR B : véracité de l'exécution
|
||||
|
||||
Ce volet fait en sorte qu'OpenClaw dise la vérité sur deux points :
|
||||
|
||||
- pourquoi l'appel au fournisseur/à l'environnement d'exécution a échoué
|
||||
- si `/elevated full` est réellement disponible
|
||||
|
||||
Cela signifie que GPT-5.4 reçoit de meilleurs signaux d'exécution pour les portées manquantes, les échecs de rafraîchissement d'authentification, les échecs d'authentification HTML 403, les problèmes de proxy, les échecs DNS ou de délai d'expiration, ainsi que les modes d'accès complet bloqués. Le modèle est moins susceptible d'halluciner une mauvaise remédiation ou de continuer à demander un mode d'autorisation que l'environnement d'exécution ne peut pas fournir.
|
||||
|
||||
### PR C : exactitude de l'exécution
|
||||
|
||||
Ce volet améliore deux types d'exactitude :
|
||||
|
||||
- la compatibilité des schémas d'outils OpenAI/Codex possédés par le fournisseur
|
||||
- l'exposition de la relecture et de la vivacité des tâches longues
|
||||
|
||||
Le travail de compatibilité des outils réduit les frictions de schéma pour l'enregistrement strict des outils OpenAI/Codex, en particulier autour des outils sans paramètres et des attentes strictes de racine objet. Le travail sur la relecture et la vivacité rend les tâches longues plus observables, de sorte que les états en pause, bloqués et abandonnés sont visibles au lieu de disparaître dans un texte d'échec générique.
|
||||
|
||||
### PR D : harnais de parité
|
||||
|
||||
Ce volet ajoute le premier pack de parité QA-lab afin que GPT-5.4 et Opus 4.6 puissent être exercés à travers les mêmes scénarios et comparés à l'aide d'éléments de preuve partagés.
|
||||
|
||||
Le pack de parité constitue la couche de preuve. Il ne modifie pas à lui seul le comportement d'exécution.
|
||||
|
||||
Après avoir obtenu deux artefacts `qa-suite-summary.json`, générez la comparaison de validation de release avec :
|
||||
|
||||
```bash
|
||||
pnpm openclaw qa parity-report \
|
||||
--repo-root . \
|
||||
--candidate-summary .artifacts/qa-e2e/gpt54/qa-suite-summary.json \
|
||||
--baseline-summary .artifacts/qa-e2e/opus46/qa-suite-summary.json \
|
||||
--output-dir .artifacts/qa-e2e/parity
|
||||
```
|
||||
|
||||
Cette commande écrit :
|
||||
|
||||
- un rapport Markdown lisible par des humains
|
||||
- un verdict JSON lisible par machine
|
||||
- un résultat de validation explicite `pass` / `fail`
|
||||
|
||||
## Pourquoi cela améliore GPT-5.4 en pratique
|
||||
|
||||
Avant ce travail, GPT-5.4 sur OpenClaw pouvait sembler moins agentique qu'Opus dans de vraies sessions de codage, car l'environnement d'exécution tolérait des comportements particulièrement nuisibles aux modèles de type GPT-5 :
|
||||
|
||||
- tours contenant uniquement des commentaires
|
||||
- friction de schéma autour des outils
|
||||
- retours vagues sur les autorisations
|
||||
- rupture silencieuse de la relecture ou de la compaction
|
||||
|
||||
L'objectif n'est pas de faire imiter Opus à GPT-5.4. L'objectif est de donner à GPT-5.4 un contrat d'exécution qui récompense les vrais progrès, fournit des sémantiques plus nettes pour les outils et les autorisations, et transforme les modes d'échec en états explicites lisibles à la fois par des machines et par des humains.
|
||||
|
||||
Cela fait passer l'expérience utilisateur de :
|
||||
|
||||
- « le modèle avait un bon plan mais s'est arrêté »
|
||||
|
||||
à :
|
||||
|
||||
- « le modèle a soit agi, soit OpenClaw a exposé la raison exacte pour laquelle il ne pouvait pas le faire »
|
||||
|
||||
## Avant / après pour les utilisateurs de GPT-5.4
|
||||
|
||||
| Avant ce programme | Après les PR A-D |
|
||||
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| GPT-5.4 pouvait s'arrêter après un plan raisonnable sans effectuer l'étape d'outil suivante | PR A transforme « plan uniquement » en « agir maintenant ou exposer un état bloqué » |
|
||||
| Les schémas d'outils stricts pouvaient rejeter les outils sans paramètres ou au format OpenAI/Codex de façon déroutante | PR C rend l'enregistrement et l'invocation des outils possédés par le fournisseur plus prévisibles |
|
||||
| Les indications sur `/elevated full` pouvaient être vagues ou incorrectes dans des environnements bloqués | PR B fournit à GPT-5.4 et à l'utilisateur des indications d'exécution et d'autorisation véridiques |
|
||||
| Les échecs de relecture ou de compaction pouvaient donner l'impression que la tâche avait silencieusement disparu | PR C expose explicitement les résultats en pause, bloqués, abandonnés et invalides pour relecture |
|
||||
| « GPT-5.4 semble moins bon qu'Opus » était surtout anecdotique | PR D transforme cela en un même pack de scénarios, les mêmes métriques et une validation dure de type pass/fail |
|
||||
|
||||
## Architecture
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["Demande utilisateur"] --> B["Environnement d'exécution Pi embarqué"]
|
||||
B --> C["Contrat d'exécution strict-agentic"]
|
||||
B --> D["Compatibilité des outils possédés par le fournisseur"]
|
||||
B --> E["Véracité de l'exécution"]
|
||||
B --> F["État de relecture et de vivacité"]
|
||||
C --> G["Appel d'outil ou état bloqué explicite"]
|
||||
D --> G
|
||||
E --> G
|
||||
F --> G
|
||||
G --> H["Pack de parité QA-lab"]
|
||||
H --> I["Rapport de scénario et validation de parité"]
|
||||
```
|
||||
|
||||
## Flux de release
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A["Volets d'exécution fusionnés (PR A-C)"] --> B["Exécuter le pack de parité GPT-5.4"]
|
||||
A --> C["Exécuter le pack de parité Opus 4.6"]
|
||||
B --> D["qa-suite-summary.json"]
|
||||
C --> E["qa-suite-summary.json"]
|
||||
D --> F["openclaw qa parity-report"]
|
||||
E --> F
|
||||
F --> G["qa-agentic-parity-report.md"]
|
||||
F --> H["qa-agentic-parity-summary.json"]
|
||||
H --> I{"Validation réussie ?"}
|
||||
I -- "oui" --> J["Affirmation de parité étayée par des preuves"]
|
||||
I -- "non" --> K["Maintenir ouverte la boucle d'exécution/de revue"]
|
||||
```
|
||||
|
||||
## Pack de scénarios
|
||||
|
||||
Le pack de parité de première vague couvre actuellement cinq scénarios :
|
||||
|
||||
### `approval-turn-tool-followthrough`
|
||||
|
||||
Vérifie que le modèle ne s'arrête pas à « Je vais le faire » après une approbation courte. Il doit entreprendre la première action concrète dans le même tour.
|
||||
|
||||
### `model-switch-tool-continuity`
|
||||
|
||||
Vérifie que le travail utilisant des outils reste cohérent à travers les limites de changement de modèle ou d'environnement d'exécution, au lieu de se réinitialiser en commentaire ou de perdre le contexte d'exécution.
|
||||
|
||||
### `source-docs-discovery-report`
|
||||
|
||||
Vérifie que le modèle peut lire le code source et la documentation, synthétiser ses constats et poursuivre la tâche de manière agentique plutôt que de produire un résumé mince et de s'arrêter prématurément.
|
||||
|
||||
### `image-understanding-attachment`
|
||||
|
||||
Vérifie que les tâches en mode mixte impliquant des pièces jointes restent actionnables et ne se réduisent pas à une narration vague.
|
||||
|
||||
### `compaction-retry-mutating-tool`
|
||||
|
||||
Vérifie qu'une tâche avec une véritable écriture mutante garde l'insécurité de relecture explicite au lieu de paraître silencieusement sûre à relire si l'exécution compacte, réessaie ou perd l'état de réponse sous pression.
|
||||
|
||||
## Matrice des scénarios
|
||||
|
||||
| Scénario | Ce qu'il teste | Bon comportement GPT-5.4 | Signal d'échec |
|
||||
| ---------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
|
||||
| `approval-turn-tool-followthrough` | Tours d'approbation courts après un plan | Démarre immédiatement la première action d'outil concrète au lieu de reformuler son intention | suivi en plan uniquement, aucune activité d'outil, ou tour bloqué sans vrai bloqueur |
|
||||
| `model-switch-tool-continuity` | Changement d'environnement/modèle sous utilisation d'outils | Préserve le contexte de la tâche et continue à agir de manière cohérente | se réinitialise en commentaire, perd le contexte d'outil, ou s'arrête après le changement |
|
||||
| `source-docs-discovery-report` | Lecture du code source + synthèse + action | Trouve les sources, utilise les outils et produit un rapport utile sans bloquer | résumé mince, travail d'outil manquant, ou arrêt en tour incomplet |
|
||||
| `image-understanding-attachment` | Travail agentique piloté par pièce jointe | Interprète la pièce jointe, la relie aux outils et poursuit la tâche | narration vague, pièce jointe ignorée, ou absence d'action concrète suivante |
|
||||
| `compaction-retry-mutating-tool` | Travail mutant sous pression de compaction | Effectue une vraie écriture et garde l'insécurité de relecture explicite après l'effet de bord | une écriture mutante a lieu mais la sûreté de relecture est implicite, absente ou contradictoire |
|
||||
|
||||
## Validation de release
|
||||
|
||||
GPT-5.4 ne peut être considéré à parité ou meilleur que lorsque l'environnement d'exécution fusionné réussit le pack de parité et les régressions de véracité de l'exécution en même temps.
|
||||
|
||||
Résultats requis :
|
||||
|
||||
- aucun blocage sur plan uniquement lorsque l'action d'outil suivante est claire
|
||||
- aucune fausse complétion sans exécution réelle
|
||||
- aucune indication incorrecte sur `/elevated full`
|
||||
- aucun abandon silencieux de relecture ou de compaction
|
||||
- des métriques du pack de parité au moins aussi solides que la référence Opus 4.6 convenue
|
||||
|
||||
Pour le harnais de première vague, la validation compare :
|
||||
|
||||
- le taux de complétion
|
||||
- le taux d'arrêts non intentionnels
|
||||
- le taux d'appels d'outil valides
|
||||
- le nombre de faux succès
|
||||
|
||||
Les preuves de parité sont délibérément réparties en deux couches :
|
||||
|
||||
- la PR D prouve le comportement GPT-5.4 vs Opus 4.6 sur les mêmes scénarios avec QA-lab
|
||||
- les suites déterministes de la PR B prouvent la véracité de l'authentification, du proxy, du DNS et de `/elevated full` en dehors du harnais
|
||||
|
||||
## Matrice objectif-preuve
|
||||
|
||||
| Élément de validation de complétion | PR responsable | Source de preuve | Signal de réussite |
|
||||
| -------------------------------------------------------- | -------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| GPT-5.4 ne bloque plus après la planification | PR A | `approval-turn-tool-followthrough` plus suites d'exécution PR A | les tours d'approbation déclenchent un vrai travail ou un état bloqué explicite |
|
||||
| GPT-5.4 ne simule plus des progrès ou une fausse complétion d'outil | PR A + PR D | résultats de scénarios du rapport de parité et nombre de faux succès | aucun résultat de réussite suspect et aucune complétion basée uniquement sur des commentaires |
|
||||
| GPT-5.4 ne donne plus de fausses indications sur `/elevated full` | PR B | suites déterministes de véracité | les raisons de blocage et les indications d'accès complet restent exactes vis-à-vis de l'environnement d'exécution |
|
||||
| Les échecs de relecture/vivacité restent explicites | PR C + PR D | suites de cycle de vie/relecture PR C plus `compaction-retry-mutating-tool` | le travail mutant garde l'insécurité de relecture explicite au lieu de disparaître silencieusement |
|
||||
| GPT-5.4 égale ou dépasse Opus 4.6 sur les métriques convenues | PR D | `qa-agentic-parity-report.md` et `qa-agentic-parity-summary.json` | même couverture de scénarios et aucune régression sur la complétion, le comportement d'arrêt ou l'utilisation valide des outils |
|
||||
|
||||
## Comment lire le verdict de parité
|
||||
|
||||
Utilisez le verdict dans `qa-agentic-parity-summary.json` comme décision finale lisible par machine pour le pack de parité de première vague.
|
||||
|
||||
- `pass` signifie que GPT-5.4 a couvert les mêmes scénarios qu'Opus 4.6 et n'a pas régressé sur les métriques agrégées convenues.
|
||||
- `fail` signifie qu'au moins une validation stricte a échoué : complétion plus faible, davantage d'arrêts non intentionnels, utilisation valide des outils plus faible, au moins un cas de faux succès, ou couverture de scénarios non concordante.
|
||||
- « shared/base CI issue » n'est pas en soi un résultat de parité. Si du bruit CI en dehors de la PR D bloque une exécution, le verdict doit attendre une exécution propre sur l'environnement d'exécution fusionné au lieu d'être déduit à partir de journaux d'époque de branche.
|
||||
- La véracité de l'authentification, du proxy, du DNS et de `/elevated full` continue de provenir des suites déterministes de la PR B, donc l'affirmation finale de release nécessite les deux : un verdict de parité PR D réussi et une couverture de véracité PR B au vert.
|
||||
|
||||
## Qui doit activer `strict-agentic`
|
||||
|
||||
Utilisez `strict-agentic` lorsque :
|
||||
|
||||
- l'agent est censé agir immédiatement lorsqu'une étape suivante est évidente
|
||||
- les modèles de la famille GPT-5.4 ou Codex constituent l'environnement d'exécution principal
|
||||
- vous préférez des états bloqués explicites à des réponses de récapitulatif uniquement « utiles »
|
||||
|
||||
Conservez le contrat par défaut lorsque :
|
||||
|
||||
- vous souhaitez conserver le comportement existant plus souple
|
||||
- vous n'utilisez pas de modèles de la famille GPT-5
|
||||
- vous testez des prompts plutôt que l'application des règles par l'environnement d'exécution
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,62 +1,73 @@
|
||||
---
|
||||
read_when:
|
||||
- Vous créez un plugin OpenClaw
|
||||
- Vous devez livrer un schéma de configuration de plugin ou déboguer des erreurs de validation du plugin
|
||||
summary: Manifeste du plugin + exigences du schéma JSON (validation stricte de la configuration)
|
||||
title: Manifeste du plugin
|
||||
- Vous devez fournir un schéma de configuration de plugin ou déboguer des erreurs de validation du plugin
|
||||
summary: Exigences du manifeste de plugin + schéma JSON (validation stricte de la configuration)
|
||||
title: Manifeste de plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T02:45:54Z"
|
||||
generated_at: "2026-04-11T15:16:01Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6b254c121d1eb5ea19adbd4148243cf47339c960442ab1ca0e0bfd52e0154c88
|
||||
source_hash: 42d454b560a8f6bf714c5d782f34216be1216d83d0a319d08d7349332c91a9e4
|
||||
source_path: plugins/manifest.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Manifeste du plugin (openclaw.plugin.json)
|
||||
# Manifeste de plugin (`openclaw.plugin.json`)
|
||||
|
||||
Cette page concerne uniquement le **manifeste de plugin natif OpenClaw**.
|
||||
|
||||
Pour les dispositions de bundles compatibles, voir [Bundles de plugins](/fr/plugins/bundles).
|
||||
|
||||
Les formats de bundle compatibles utilisent des fichiers manifeste différents :
|
||||
Les formats de bundle compatibles utilisent des fichiers de manifeste différents :
|
||||
|
||||
- Bundle Codex : `.codex-plugin/plugin.json`
|
||||
- Bundle Claude : `.claude-plugin/plugin.json` ou la disposition par défaut des composants Claude sans manifeste
|
||||
- Bundle Claude : `.claude-plugin/plugin.json` ou la disposition par défaut du composant Claude
|
||||
sans manifeste
|
||||
- Bundle Cursor : `.cursor-plugin/plugin.json`
|
||||
|
||||
OpenClaw détecte automatiquement aussi ces dispositions de bundle, mais elles ne sont pas validées par rapport au schéma `openclaw.plugin.json` décrit ici.
|
||||
OpenClaw détecte automatiquement ces dispositions de bundle également, mais elles ne sont pas validées
|
||||
par rapport au schéma `openclaw.plugin.json` décrit ici.
|
||||
|
||||
Pour les bundles compatibles, OpenClaw lit actuellement les métadonnées du bundle ainsi que les racines de Skills déclarées, les racines de commandes Claude, les valeurs par défaut `settings.json` du bundle Claude, les valeurs par défaut LSP du bundle Claude et les packs de hooks pris en charge lorsque la disposition correspond aux attentes du runtime OpenClaw.
|
||||
Pour les bundles compatibles, OpenClaw lit actuellement les métadonnées du bundle ainsi que les
|
||||
racines de compétences déclarées, les racines de commandes Claude, les valeurs par défaut de `settings.json` du bundle Claude,
|
||||
les valeurs par défaut LSP du bundle Claude, et les packs de hooks pris en charge lorsque la disposition correspond
|
||||
aux attentes d’exécution d’OpenClaw.
|
||||
|
||||
Chaque plugin natif OpenClaw **doit** fournir un fichier `openclaw.plugin.json` dans la **racine du plugin**. OpenClaw utilise ce manifeste pour valider la configuration **sans exécuter le code du plugin**. Les manifestes manquants ou invalides sont traités comme des erreurs de plugin et bloquent la validation de la configuration.
|
||||
Chaque plugin OpenClaw natif **doit** fournir un fichier `openclaw.plugin.json` dans la
|
||||
**racine du plugin**. OpenClaw utilise ce manifeste pour valider la configuration
|
||||
**sans exécuter le code du plugin**. Les manifestes manquants ou invalides sont traités comme des
|
||||
erreurs de plugin et bloquent la validation de la configuration.
|
||||
|
||||
Voir le guide complet du système de plugins : [Plugins](/fr/tools/plugin).
|
||||
Pour le modèle de capacités natif et les indications actuelles de compatibilité externe :
|
||||
Consultez le guide complet du système de plugins : [Plugins](/fr/tools/plugin).
|
||||
Pour le modèle de capacités natif et les recommandations actuelles de compatibilité externe :
|
||||
[Modèle de capacités](/fr/plugins/architecture#public-capability-model).
|
||||
|
||||
## À quoi sert ce fichier
|
||||
|
||||
`openclaw.plugin.json` est la métadonnée que OpenClaw lit avant de charger le code de votre plugin.
|
||||
`openclaw.plugin.json` contient les métadonnées qu’OpenClaw lit avant de charger le
|
||||
code de votre plugin.
|
||||
|
||||
Utilisez-le pour :
|
||||
|
||||
- l’identité du plugin
|
||||
- la validation de la configuration
|
||||
- les métadonnées d’authentification et d’onboarding qui doivent être disponibles sans démarrer le runtime du plugin
|
||||
- les métadonnées d’alias et d’activation automatique qui doivent être résolues avant le chargement du runtime du plugin
|
||||
- les métadonnées abrégées de propriété des familles de modèles qui doivent activer automatiquement le plugin avant le chargement du runtime
|
||||
- les instantanés statiques de propriété des capacités utilisés pour le câblage de compatibilité des bundles et la couverture des contrats
|
||||
- les métadonnées de configuration spécifiques aux canaux qui doivent être fusionnées dans le catalogue et les surfaces de validation sans charger le runtime
|
||||
- les indications pour l’UI de configuration
|
||||
- les métadonnées d’authentification et d’intégration qui doivent être disponibles sans démarrer l’exécution du plugin
|
||||
- les indices d’activation légers que les surfaces du plan de contrôle peuvent inspecter avant le chargement de l’exécution
|
||||
- les descripteurs de configuration légers que les surfaces de configuration/intégration peuvent inspecter avant le chargement de l’exécution
|
||||
- les métadonnées d’alias et d’activation automatique qui doivent être résolues avant le chargement de l’exécution du plugin
|
||||
- les métadonnées abrégées de propriété de famille de modèles qui doivent activer automatiquement le plugin avant le chargement de l’exécution
|
||||
- les instantanés statiques de propriété de capacités utilisés pour le câblage de compatibilité groupée et la couverture des contrats
|
||||
- les métadonnées de configuration spécifiques aux canaux qui doivent être fusionnées dans les surfaces de catalogue et de validation sans charger l’exécution
|
||||
- les indices d’interface pour la configuration
|
||||
|
||||
Ne l’utilisez pas pour :
|
||||
|
||||
- enregistrer le comportement du runtime
|
||||
- déclarer les points d’entrée du code
|
||||
- enregistrer le comportement d’exécution
|
||||
- déclarer des points d’entrée de code
|
||||
- les métadonnées d’installation npm
|
||||
|
||||
Ces éléments appartiennent à votre code de plugin et à `package.json`.
|
||||
Ces éléments appartiennent au code de votre plugin et à `package.json`.
|
||||
|
||||
## Exemple minimal
|
||||
|
||||
@ -77,7 +88,7 @@ Ces éléments appartiennent à votre code de plugin et à `package.json`.
|
||||
{
|
||||
"id": "openrouter",
|
||||
"name": "OpenRouter",
|
||||
"description": "Plugin provider OpenRouter",
|
||||
"description": "Plugin de fournisseur OpenRouter",
|
||||
"version": "1.0.0",
|
||||
"providers": ["openrouter"],
|
||||
"modelSupport": {
|
||||
@ -127,62 +138,64 @@ Ces éléments appartiennent à votre code de plugin et à `package.json`.
|
||||
}
|
||||
```
|
||||
|
||||
## Référence des champs de premier niveau
|
||||
## Référence des champs de niveau supérieur
|
||||
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `id` | Oui | `string` | ID canonique du plugin. C’est l’ID utilisé dans `plugins.entries.<id>`. |
|
||||
| `configSchema` | Oui | `object` | Schéma JSON inline pour la configuration de ce plugin. |
|
||||
| `enabledByDefault` | Non | `true` | Marque un plugin bundle comme activé par défaut. Omettez-le, ou définissez toute valeur autre que `true`, pour laisser le plugin désactivé par défaut. |
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | Oui | `string` | ID canonique du plugin. Il s’agit de l’ID utilisé dans `plugins.entries.<id>`. |
|
||||
| `configSchema` | Oui | `object` | Schéma JSON inline pour la configuration de ce plugin. |
|
||||
| `enabledByDefault` | Non | `true` | Marque un plugin groupé comme activé par défaut. Omettez-le, ou définissez toute valeur autre que `true`, pour laisser le plugin désactivé par défaut. |
|
||||
| `legacyPluginIds` | Non | `string[]` | IDs hérités qui sont normalisés vers cet ID canonique de plugin. |
|
||||
| `autoEnableWhenConfiguredProviders` | Non | `string[]` | IDs de provider qui doivent activer automatiquement ce plugin lorsque l’authentification, la configuration ou les références de modèles les mentionnent. |
|
||||
| `kind` | Non | `"memory"` \| `"context-engine"` | Déclare un type de plugin exclusif utilisé par `plugins.slots.*`. |
|
||||
| `channels` | Non | `string[]` | IDs de canaux possédés par ce plugin. Utilisés pour la découverte et la validation de la configuration. |
|
||||
| `providers` | Non | `string[]` | IDs de providers possédés par ce plugin. |
|
||||
| `modelSupport` | Non | `object` | Métadonnées abrégées des familles de modèles, détenues par le manifeste, utilisées pour charger automatiquement le plugin avant le runtime. |
|
||||
| `cliBackends` | Non | `string[]` | IDs de backends d’inférence CLI possédés par ce plugin. Utilisés pour l’activation automatique au démarrage à partir de références de configuration explicites. |
|
||||
| `commandAliases` | Non | `object[]` | Noms de commandes possédés par ce plugin qui doivent produire une configuration sensible au plugin et des diagnostics CLI avant le chargement du runtime. |
|
||||
| `providerAuthEnvVars` | Non | `Record<string, string[]>` | Métadonnées d’environnement d’authentification provider peu coûteuses que OpenClaw peut inspecter sans charger le code du plugin. |
|
||||
| `providerAuthAliases` | Non | `Record<string, string>` | IDs de provider qui doivent réutiliser un autre ID de provider pour la recherche d’authentification, par exemple un provider de code qui partage la clé API et les profils d’authentification du provider de base. |
|
||||
| `channelEnvVars` | Non | `Record<string, string[]>` | Métadonnées d’environnement de canal peu coûteuses que OpenClaw peut inspecter sans charger le code du plugin. Utilisez-les pour les surfaces d’installation de canal pilotées par l’environnement ou d’authentification que les assistants génériques de démarrage/configuration doivent voir. |
|
||||
| `providerAuthChoices` | Non | `object[]` | Métadonnées peu coûteuses de choix d’authentification pour les sélecteurs d’onboarding, la résolution des providers préférés et le câblage simple des options CLI. |
|
||||
| `contracts` | Non | `object` | Instantané statique des capacités bundle pour la parole, la transcription en temps réel, la voix en temps réel, la compréhension des médias, la génération d’images, la génération de musique, la génération de vidéo, la récupération web, la recherche web et la propriété des outils. |
|
||||
| `channelConfigs` | Non | `Record<string, object>` | Métadonnées de configuration de canal détenues par le manifeste, fusionnées dans les surfaces de découverte et de validation avant le chargement du runtime. |
|
||||
| `skills` | Non | `string[]` | Répertoires de Skills à charger, relatifs à la racine du plugin. |
|
||||
| `name` | Non | `string` | Nom lisible du plugin. |
|
||||
| `description` | Non | `string` | Résumé court affiché dans les surfaces du plugin. |
|
||||
| `version` | Non | `string` | Version informative du plugin. |
|
||||
| `uiHints` | Non | `Record<string, object>` | Libellés UI, placeholders et indications de sensibilité pour les champs de configuration. |
|
||||
| `autoEnableWhenConfiguredProviders` | Non | `string[]` | IDs de fournisseurs qui doivent activer automatiquement ce plugin lorsque l’authentification, la configuration ou les références de modèles les mentionnent. |
|
||||
| `kind` | Non | `"memory"` \| `"context-engine"` | Déclare un type exclusif de plugin utilisé par `plugins.slots.*`. |
|
||||
| `channels` | Non | `string[]` | IDs de canaux appartenant à ce plugin. Utilisés pour la découverte et la validation de la configuration. |
|
||||
| `providers` | Non | `string[]` | IDs de fournisseurs appartenant à ce plugin. |
|
||||
| `modelSupport` | Non | `object` | Métadonnées abrégées de famille de modèles possédées par le manifeste, utilisées pour charger automatiquement le plugin avant l’exécution. |
|
||||
| `cliBackends` | Non | `string[]` | IDs de backends d’inférence CLI appartenant à ce plugin. Utilisés pour l’auto-activation au démarrage à partir de références de configuration explicites. |
|
||||
| `commandAliases` | Non | `object[]` | Noms de commandes appartenant à ce plugin qui doivent produire une configuration sensible au plugin et des diagnostics CLI avant le chargement de l’exécution. |
|
||||
| `providerAuthEnvVars` | Non | `Record<string, string[]>` | Métadonnées légères de variables d’environnement d’authentification fournisseur qu’OpenClaw peut inspecter sans charger le code du plugin. |
|
||||
| `providerAuthAliases` | Non | `Record<string, string>` | IDs de fournisseurs qui doivent réutiliser un autre ID de fournisseur pour la recherche d’authentification, par exemple un fournisseur de code qui partage la clé API et les profils d’authentification du fournisseur de base. |
|
||||
| `channelEnvVars` | Non | `Record<string, string[]>` | Métadonnées légères de variables d’environnement de canal qu’OpenClaw peut inspecter sans charger le code du plugin. Utilisez-les pour les surfaces de configuration ou d’authentification de canaux pilotées par des variables d’environnement que les assistants génériques de démarrage/configuration doivent voir. |
|
||||
| `providerAuthChoices` | Non | `object[]` | Métadonnées légères de choix d’authentification pour les sélecteurs d’intégration, la résolution du fournisseur préféré et le câblage simple des options CLI. |
|
||||
| `activation` | Non | `object` | Indices d’activation légers pour le chargement déclenché par les fournisseurs, commandes, canaux, routes et capacités. Métadonnées uniquement ; l’exécution du plugin reste propriétaire du comportement réel. |
|
||||
| `setup` | Non | `object` | Descripteurs légers de configuration/intégration que les surfaces de découverte et de configuration peuvent inspecter sans charger l’exécution du plugin. |
|
||||
| `contracts` | Non | `object` | Instantané statique des capacités groupées pour la parole, la transcription en temps réel, la voix en temps réel, la compréhension des médias, la génération d’images, la génération de musique, la génération de vidéo, la récupération web, la recherche web et la propriété des outils. |
|
||||
| `channelConfigs` | Non | `Record<string, object>` | Métadonnées de configuration de canal possédées par le manifeste, fusionnées dans les surfaces de découverte et de validation avant le chargement de l’exécution. |
|
||||
| `skills` | Non | `string[]` | Répertoires Skills à charger, relatifs à la racine du plugin. |
|
||||
| `name` | Non | `string` | Nom lisible du plugin. |
|
||||
| `description` | Non | `string` | Résumé court affiché dans les surfaces de plugin. |
|
||||
| `version` | Non | `string` | Version informative du plugin. |
|
||||
| `uiHints` | Non | `Record<string, object>` | Libellés d’interface, espaces réservés et indices de sensibilité pour les champs de configuration. |
|
||||
|
||||
## Référence `providerAuthChoices`
|
||||
## Référence de `providerAuthChoices`
|
||||
|
||||
Chaque entrée `providerAuthChoices` décrit un choix d’onboarding ou d’authentification.
|
||||
OpenClaw lit cela avant le chargement du runtime du provider.
|
||||
Chaque entrée `providerAuthChoices` décrit un choix d’intégration ou d’authentification.
|
||||
OpenClaw lit ces informations avant le chargement de l’exécution du fournisseur.
|
||||
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| --------------------- | ----------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Oui | `string` | ID du provider auquel ce choix appartient. |
|
||||
| `method` | Oui | `string` | ID de la méthode d’authentification vers laquelle dispatcher. |
|
||||
| `choiceId` | Oui | `string` | ID stable de choix d’authentification utilisé par les flux d’onboarding et CLI. |
|
||||
| `choiceLabel` | Non | `string` | Libellé destiné à l’utilisateur. S’il est omis, OpenClaw revient à `choiceId`. |
|
||||
| `provider` | Oui | `string` | ID du fournisseur auquel appartient ce choix. |
|
||||
| `method` | Oui | `string` | ID de méthode d’authentification vers lequel dispatcher. |
|
||||
| `choiceId` | Oui | `string` | ID stable de choix d’authentification utilisé par les flux d’intégration et CLI. |
|
||||
| `choiceLabel` | Non | `string` | Libellé visible par l’utilisateur. S’il est omis, OpenClaw utilise `choiceId` comme repli. |
|
||||
| `choiceHint` | Non | `string` | Court texte d’aide pour le sélecteur. |
|
||||
| `assistantPriority` | Non | `number` | Les valeurs les plus faibles sont triées plus tôt dans les sélecteurs interactifs pilotés par l’assistant. |
|
||||
| `assistantVisibility` | Non | `"visible"` \| `"manual-only"` | Masque le choix dans les sélecteurs de l’assistant tout en autorisant la sélection manuelle via CLI. |
|
||||
| `deprecatedChoiceIds` | Non | `string[]` | IDs hérités de choix qui doivent rediriger les utilisateurs vers ce choix de remplacement. |
|
||||
| `assistantPriority` | Non | `number` | Les valeurs plus basses sont triées plus tôt dans les sélecteurs interactifs pilotés par l’assistant. |
|
||||
| `assistantVisibility` | Non | `"visible"` \| `"manual-only"` | Masque ce choix dans les sélecteurs de l’assistant tout en autorisant sa sélection manuelle via la CLI. |
|
||||
| `deprecatedChoiceIds` | Non | `string[]` | IDs de choix hérités qui doivent rediriger les utilisateurs vers ce choix de remplacement. |
|
||||
| `groupId` | Non | `string` | ID de groupe facultatif pour regrouper des choix liés. |
|
||||
| `groupLabel` | Non | `string` | Libellé destiné à l’utilisateur pour ce groupe. |
|
||||
| `groupLabel` | Non | `string` | Libellé visible par l’utilisateur pour ce groupe. |
|
||||
| `groupHint` | Non | `string` | Court texte d’aide pour le groupe. |
|
||||
| `optionKey` | Non | `string` | Clé d’option interne pour les flux d’authentification simples à un seul flag. |
|
||||
| `cliFlag` | Non | `string` | Nom du flag CLI, par exemple `--openrouter-api-key`. |
|
||||
| `optionKey` | Non | `string` | Clé d’option interne pour les flux d’authentification simples à un seul drapeau. |
|
||||
| `cliFlag` | Non | `string` | Nom du drapeau CLI, par exemple `--openrouter-api-key`. |
|
||||
| `cliOption` | Non | `string` | Forme complète de l’option CLI, par exemple `--openrouter-api-key <key>`. |
|
||||
| `cliDescription` | Non | `string` | Description utilisée dans l’aide CLI. |
|
||||
| `onboardingScopes` | Non | `Array<"text-inference" \| "image-generation">` | Sur quelles surfaces d’onboarding ce choix doit apparaître. S’il est omis, la valeur par défaut est `["text-inference"]`. |
|
||||
| `onboardingScopes` | Non | `Array<"text-inference" \| "image-generation">` | Sur quelles surfaces d’intégration ce choix doit apparaître. Si omis, la valeur par défaut est `["text-inference"]`. |
|
||||
|
||||
## Référence `commandAliases`
|
||||
## Référence de `commandAliases`
|
||||
|
||||
Utilisez `commandAliases` lorsqu’un plugin possède un nom de commande runtime que les utilisateurs peuvent
|
||||
par erreur mettre dans `plugins.allow` ou essayer d’exécuter comme commande CLI racine. OpenClaw
|
||||
utilise ces métadonnées pour les diagnostics sans importer le code runtime du plugin.
|
||||
Utilisez `commandAliases` lorsqu’un plugin possède un nom de commande d’exécution que les utilisateurs peuvent
|
||||
mettre par erreur dans `plugins.allow` ou essayer d’exécuter comme commande CLI racine. OpenClaw
|
||||
utilise ces métadonnées pour les diagnostics sans importer le code d’exécution du plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -196,22 +209,93 @@ utilise ces métadonnées pour les diagnostics sans importer le code runtime du
|
||||
}
|
||||
```
|
||||
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ------------ | ----------- | ----------------- | ----------------------------------------------------------------------------- |
|
||||
| `name` | Oui | `string` | Nom de commande qui appartient à ce plugin. |
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ------------ | ----------- | ----------------- | -------------------------------------------------------------------------- |
|
||||
| `name` | Oui | `string` | Nom de commande qui appartient à ce plugin. |
|
||||
| `kind` | Non | `"runtime-slash"` | Marque l’alias comme une commande slash de chat plutôt qu’une commande CLI racine. |
|
||||
| `cliCommand` | Non | `string` | Commande CLI racine liée à suggérer pour les opérations CLI, si elle existe. |
|
||||
| `cliCommand` | Non | `string` | Commande CLI racine associée à suggérer pour les opérations CLI, si elle existe. |
|
||||
|
||||
## Référence `uiHints`
|
||||
## Référence de `activation`
|
||||
|
||||
`uiHints` est une map des noms de champs de configuration vers de petites indications de rendu.
|
||||
Utilisez `activation` lorsque le plugin peut déclarer à faible coût quels événements du plan de contrôle
|
||||
doivent l’activer plus tard.
|
||||
|
||||
Ce bloc contient uniquement des métadonnées. Il n’enregistre pas de comportement d’exécution, et il
|
||||
ne remplace pas `register(...)`, `setupEntry` ou d’autres points d’entrée d’exécution/plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
"activation": {
|
||||
"onProviders": ["openai"],
|
||||
"onCommands": ["models"],
|
||||
"onChannels": ["web"],
|
||||
"onRoutes": ["gateway-webhook"],
|
||||
"onCapabilities": ["provider", "tool"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | ---------------------------------------------------------------- |
|
||||
| `onProviders` | Non | `string[]` | IDs de fournisseurs qui doivent activer ce plugin lorsqu’ils sont demandés. |
|
||||
| `onCommands` | Non | `string[]` | IDs de commandes qui doivent activer ce plugin. |
|
||||
| `onChannels` | Non | `string[]` | IDs de canaux qui doivent activer ce plugin. |
|
||||
| `onRoutes` | Non | `string[]` | Types de routes qui doivent activer ce plugin. |
|
||||
| `onCapabilities` | Non | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Indices généraux de capacités utilisés par la planification d’activation du plan de contrôle. |
|
||||
|
||||
## Référence de `setup`
|
||||
|
||||
Utilisez `setup` lorsque les surfaces de configuration et d’intégration ont besoin de métadonnées légères appartenant au plugin
|
||||
avant le chargement de l’exécution.
|
||||
|
||||
```json
|
||||
{
|
||||
"setup": {
|
||||
"providers": [
|
||||
{
|
||||
"id": "openai",
|
||||
"authMethods": ["api-key"],
|
||||
"envVars": ["OPENAI_API_KEY"]
|
||||
}
|
||||
],
|
||||
"cliBackends": ["openai-cli"],
|
||||
"configMigrations": ["legacy-openai-auth"],
|
||||
"requiresRuntime": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Le champ `cliBackends` de niveau supérieur reste valide et continue de décrire les
|
||||
backends d’inférence CLI. `setup.cliBackends` est la surface de descripteur spécifique à la configuration pour
|
||||
les flux du plan de contrôle/de configuration qui doivent rester purement basés sur des métadonnées.
|
||||
|
||||
### Référence de `setup.providers`
|
||||
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ------------- | ----------- | ---------- | --------------------------------------------------------------------------------- |
|
||||
| `id` | Oui | `string` | ID du fournisseur exposé pendant la configuration ou l’intégration. |
|
||||
| `authMethods` | Non | `string[]` | IDs de méthodes de configuration/authentification que ce fournisseur prend en charge sans charger l’exécution complète. |
|
||||
| `envVars` | Non | `string[]` | Variables d’environnement que les surfaces génériques de configuration/statut peuvent vérifier avant le chargement de l’exécution du plugin. |
|
||||
|
||||
### Champs de `setup`
|
||||
|
||||
| Champ | Obligatoire | Type | Signification |
|
||||
| ------------------ | ----------- | ---------- | -------------------------------------------------------------------------- |
|
||||
| `providers` | Non | `object[]` | Descripteurs de configuration de fournisseur exposés pendant la configuration et l’intégration. |
|
||||
| `cliBackends` | Non | `string[]` | IDs de backend disponibles au moment de la configuration sans activation complète de l’exécution. |
|
||||
| `configMigrations` | Non | `string[]` | IDs de migration de configuration appartenant à la surface de configuration de ce plugin. |
|
||||
| `requiresRuntime` | Non | `boolean` | Indique si la configuration nécessite encore l’exécution du plugin après la recherche du descripteur. |
|
||||
|
||||
## Référence de `uiHints`
|
||||
|
||||
`uiHints` est une map des noms de champs de configuration vers de petits indices de rendu.
|
||||
|
||||
```json
|
||||
{
|
||||
"uiHints": {
|
||||
"apiKey": {
|
||||
"label": "API key",
|
||||
"help": "Used for OpenRouter requests",
|
||||
"label": "Clé API",
|
||||
"help": "Utilisée pour les requêtes OpenRouter",
|
||||
"placeholder": "sk-or-v1-...",
|
||||
"sensitive": true
|
||||
}
|
||||
@ -219,21 +303,21 @@ utilise ces métadonnées pour les diagnostics sans importer le code runtime du
|
||||
}
|
||||
```
|
||||
|
||||
Chaque indication de champ peut inclure :
|
||||
Chaque indice de champ peut inclure :
|
||||
|
||||
| Champ | Type | Signification |
|
||||
| ------------- | ---------- | ------------------------------------------ |
|
||||
| `label` | `string` | Libellé du champ destiné à l’utilisateur. |
|
||||
| `help` | `string` | Court texte d’aide. |
|
||||
| `tags` | `string[]` | Tags UI facultatifs. |
|
||||
| `advanced` | `boolean` | Marque le champ comme avancé. |
|
||||
| `sensitive` | `boolean` | Marque le champ comme secret ou sensible. |
|
||||
| `placeholder` | `string` | Texte de placeholder pour les champs de formulaire. |
|
||||
| Champ | Type | Signification |
|
||||
| ------------- | ---------- | -------------------------------------- |
|
||||
| `label` | `string` | Libellé du champ visible par l’utilisateur. |
|
||||
| `help` | `string` | Court texte d’aide. |
|
||||
| `tags` | `string[]` | Étiquettes d’interface facultatives. |
|
||||
| `advanced` | `boolean` | Marque le champ comme avancé. |
|
||||
| `sensitive` | `boolean` | Marque le champ comme secret ou sensible. |
|
||||
| `placeholder` | `string` | Texte d’espace réservé pour les champs de formulaire. |
|
||||
|
||||
## Référence `contracts`
|
||||
## Référence de `contracts`
|
||||
|
||||
Utilisez `contracts` uniquement pour les métadonnées statiques de propriété des capacités que OpenClaw peut
|
||||
lire sans importer le runtime du plugin.
|
||||
Utilisez `contracts` uniquement pour les métadonnées statiques de propriété de capacités qu’OpenClaw peut
|
||||
lire sans importer l’exécution du plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -253,21 +337,22 @@ lire sans importer le runtime du plugin.
|
||||
|
||||
Chaque liste est facultative :
|
||||
|
||||
| Champ | Type | Signification |
|
||||
| -------------------------------- | ---------- | --------------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | IDs de providers vocaux possédés par ce plugin. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | IDs de providers de transcription en temps réel possédés par ce plugin. |
|
||||
| `realtimeVoiceProviders` | `string[]` | IDs de providers de voix en temps réel possédés par ce plugin. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | IDs de providers de compréhension des médias possédés par ce plugin. |
|
||||
| `imageGenerationProviders` | `string[]` | IDs de providers de génération d’images possédés par ce plugin. |
|
||||
| `videoGenerationProviders` | `string[]` | IDs de providers de génération de vidéo possédés par ce plugin. |
|
||||
| `webFetchProviders` | `string[]` | IDs de providers de récupération web possédés par ce plugin. |
|
||||
| `webSearchProviders` | `string[]` | IDs de providers de recherche web possédés par ce plugin. |
|
||||
| `tools` | `string[]` | Noms d’outils d’agent possédés par ce plugin pour les vérifications de contrat des bundles. |
|
||||
| Champ | Type | Signification |
|
||||
| -------------------------------- | ---------- | ------------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | IDs des fournisseurs de parole appartenant à ce plugin. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | IDs des fournisseurs de transcription en temps réel appartenant à ce plugin. |
|
||||
| `realtimeVoiceProviders` | `string[]` | IDs des fournisseurs de voix en temps réel appartenant à ce plugin. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | IDs des fournisseurs de compréhension des médias appartenant à ce plugin. |
|
||||
| `imageGenerationProviders` | `string[]` | IDs des fournisseurs de génération d’images appartenant à ce plugin. |
|
||||
| `videoGenerationProviders` | `string[]` | IDs des fournisseurs de génération de vidéo appartenant à ce plugin. |
|
||||
| `webFetchProviders` | `string[]` | IDs des fournisseurs de récupération web appartenant à ce plugin. |
|
||||
| `webSearchProviders` | `string[]` | IDs des fournisseurs de recherche web appartenant à ce plugin. |
|
||||
| `tools` | `string[]` | Noms d’outils d’agent appartenant à ce plugin pour les vérifications de contrats groupés. |
|
||||
|
||||
## Référence `channelConfigs`
|
||||
## Référence de `channelConfigs`
|
||||
|
||||
Utilisez `channelConfigs` lorsqu’un plugin de canal a besoin de métadonnées de configuration peu coûteuses avant le chargement du runtime.
|
||||
Utilisez `channelConfigs` lorsqu’un plugin de canal a besoin de métadonnées de configuration légères avant
|
||||
le chargement de l’exécution.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -282,12 +367,12 @@ Utilisez `channelConfigs` lorsqu’un plugin de canal a besoin de métadonnées
|
||||
},
|
||||
"uiHints": {
|
||||
"homeserverUrl": {
|
||||
"label": "Homeserver URL",
|
||||
"label": "URL du homeserver",
|
||||
"placeholder": "https://matrix.example.com"
|
||||
}
|
||||
},
|
||||
"label": "Matrix",
|
||||
"description": "Matrix homeserver connection",
|
||||
"description": "Connexion au homeserver Matrix",
|
||||
"preferOver": ["matrix-legacy"]
|
||||
}
|
||||
}
|
||||
@ -296,17 +381,18 @@ Utilisez `channelConfigs` lorsqu’un plugin de canal a besoin de métadonnées
|
||||
|
||||
Chaque entrée de canal peut inclure :
|
||||
|
||||
| Champ | Type | Signification |
|
||||
| ------------- | ------------------------ | ---------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | Schéma JSON pour `channels.<id>`. Obligatoire pour chaque entrée de configuration de canal déclarée. |
|
||||
| `uiHints` | `Record<string, object>` | Libellés UI/placeholders/indications de sensibilité facultatifs pour cette section de configuration de canal. |
|
||||
| `label` | `string` | Libellé du canal fusionné dans les surfaces de sélection et d’inspection lorsque les métadonnées runtime ne sont pas prêtes. |
|
||||
| `description` | `string` | Brève description du canal pour les surfaces d’inspection et de catalogue. |
|
||||
| `preferOver` | `string[]` | IDs de plugins hérités ou à priorité inférieure que ce canal doit dépasser dans les surfaces de sélection. |
|
||||
| Champ | Type | Signification |
|
||||
| ------------- | ------------------------ | -------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | Schéma JSON pour `channels.<id>`. Obligatoire pour chaque entrée déclarée de configuration de canal. |
|
||||
| `uiHints` | `Record<string, object>` | Libellés d’interface, espaces réservés et indices de sensibilité facultatifs pour cette section de configuration de canal. |
|
||||
| `label` | `string` | Libellé du canal fusionné dans les surfaces de sélecteur et d’inspection lorsque les métadonnées d’exécution ne sont pas prêtes. |
|
||||
| `description` | `string` | Brève description du canal pour les surfaces d’inspection et de catalogue. |
|
||||
| `preferOver` | `string[]` | IDs de plugins hérités ou de priorité inférieure que ce canal doit surpasser dans les surfaces de sélection. |
|
||||
|
||||
## Référence `modelSupport`
|
||||
## Référence de `modelSupport`
|
||||
|
||||
Utilisez `modelSupport` lorsque OpenClaw doit déduire votre plugin provider à partir d’IDs de modèles abrégés comme `gpt-5.4` ou `claude-sonnet-4.6` avant le chargement du runtime du plugin.
|
||||
Utilisez `modelSupport` lorsqu’OpenClaw doit déduire votre plugin fournisseur à partir
|
||||
d’IDs de modèles abrégés comme `gpt-5.4` ou `claude-sonnet-4.6` avant le chargement de l’exécution du plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -319,65 +405,74 @@ Utilisez `modelSupport` lorsque OpenClaw doit déduire votre plugin provider à
|
||||
|
||||
OpenClaw applique cet ordre de priorité :
|
||||
|
||||
- les références explicites `provider/model` utilisent les métadonnées de manifeste `providers` du propriétaire
|
||||
- `modelPatterns` est prioritaire sur `modelPrefixes`
|
||||
- si un plugin non bundle et un plugin bundle correspondent tous deux, le plugin non bundle l’emporte
|
||||
- l’ambiguïté restante est ignorée jusqu’à ce que l’utilisateur ou la configuration spécifie un provider
|
||||
- les références explicites `provider/model` utilisent les métadonnées `providers` du manifeste propriétaire
|
||||
- `modelPatterns` ont priorité sur `modelPrefixes`
|
||||
- si un plugin non groupé et un plugin groupé correspondent tous deux, le plugin non groupé
|
||||
l’emporte
|
||||
- les ambiguïtés restantes sont ignorées jusqu’à ce que l’utilisateur ou la configuration spécifie un fournisseur
|
||||
|
||||
Champs :
|
||||
|
||||
| Champ | Type | Signification |
|
||||
| --------------- | ---------- | --------------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Préfixes comparés avec `startsWith` aux IDs de modèles abrégés. |
|
||||
| Champ | Type | Signification |
|
||||
| --------------- | ---------- | ------------------------------------------------------------------------------ |
|
||||
| `modelPrefixes` | `string[]` | Préfixes comparés avec `startsWith` aux IDs de modèles abrégés. |
|
||||
| `modelPatterns` | `string[]` | Sources regex comparées aux IDs de modèles abrégés après suppression du suffixe de profil. |
|
||||
|
||||
Les clés héritées de capacités au niveau supérieur sont obsolètes. Utilisez `openclaw doctor --fix` pour
|
||||
Les clés de capacité héritées au niveau supérieur sont obsolètes. Utilisez `openclaw doctor --fix` pour
|
||||
déplacer `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
|
||||
`imageGenerationProviders`, `videoGenerationProviders`,
|
||||
`webFetchProviders` et `webSearchProviders` sous `contracts` ; le chargement normal
|
||||
du manifeste ne traite plus ces champs de premier niveau comme
|
||||
du manifeste ne traite plus ces champs de niveau supérieur comme de la
|
||||
propriété de capacités.
|
||||
|
||||
## Manifeste versus package.json
|
||||
|
||||
Les deux fichiers remplissent des rôles différents :
|
||||
Les deux fichiers ont des rôles différents :
|
||||
|
||||
| Fichier | Utilisation |
|
||||
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Découverte, validation de configuration, métadonnées de choix d’authentification et indications UI qui doivent exister avant l’exécution du code du plugin |
|
||||
| `package.json` | Métadonnées npm, installation des dépendances et bloc `openclaw` utilisé pour les points d’entrée, la validation d’installation, la configuration ou les métadonnées de catalogue |
|
||||
| Fichier | À utiliser pour |
|
||||
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | La découverte, la validation de la configuration, les métadonnées de choix d’authentification et les indices d’interface qui doivent exister avant l’exécution du code du plugin |
|
||||
| `package.json` | Les métadonnées npm, l’installation des dépendances, et le bloc `openclaw` utilisé pour les points d’entrée, le contrôle d’installation, la configuration ou les métadonnées de catalogue |
|
||||
|
||||
Si vous ne savez pas où placer une métadonnée, utilisez cette règle :
|
||||
|
||||
- si OpenClaw doit la connaître avant de charger le code du plugin, mettez-la dans `openclaw.plugin.json`
|
||||
- si elle concerne le packaging, les fichiers d’entrée ou le comportement d’installation npm, mettez-la dans `package.json`
|
||||
- si OpenClaw doit la connaître avant de charger le code du plugin, placez-la dans `openclaw.plugin.json`
|
||||
- si elle concerne le packaging, les fichiers de point d’entrée ou le comportement d’installation npm, placez-la dans `package.json`
|
||||
|
||||
### Champs `package.json` qui affectent la découverte
|
||||
### Champs de `package.json` qui affectent la découverte
|
||||
|
||||
Certaines métadonnées de plugin avant runtime vivent intentionnellement dans `package.json` sous le bloc
|
||||
Certaines métadonnées de plugin avant exécution vivent intentionnellement dans `package.json` sous le bloc
|
||||
`openclaw` plutôt que dans `openclaw.plugin.json`.
|
||||
|
||||
Exemples importants :
|
||||
|
||||
| Champ | Signification |
|
||||
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `openclaw.extensions` | Déclare les points d’entrée des plugins natifs. |
|
||||
| `openclaw.setupEntry` | Point d’entrée léger réservé à la configuration, utilisé pendant l’onboarding et le démarrage différé des canaux. |
|
||||
| `openclaw.channel` | Métadonnées légères du catalogue de canaux comme les libellés, chemins de documentation, alias et texte de sélection. |
|
||||
| `openclaw.channel.configuredState` | Métadonnées légères du vérificateur d’état configuré pouvant répondre à « une configuration uniquement par variables d’environnement existe-t-elle déjà ? » sans charger tout le runtime du canal. |
|
||||
| `openclaw.channel.persistedAuthState` | Métadonnées légères du vérificateur d’authentification persistée pouvant répondre à « y a-t-il déjà quelque chose de connecté ? » sans charger tout le runtime du canal. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Indications d’installation/mise à jour pour les plugins bundles et publiés en externe. |
|
||||
| `openclaw.install.defaultChoice` | Chemin d’installation préféré lorsque plusieurs sources d’installation sont disponibles. |
|
||||
| `openclaw.install.minHostVersion` | Version minimale prise en charge de l’hôte OpenClaw, en utilisant un plancher semver comme `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Autorise un chemin étroit de récupération par réinstallation de plugin bundle lorsque la configuration est invalide. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Permet aux surfaces de canal réservées à la configuration de se charger avant le plugin de canal complet au démarrage. |
|
||||
| Champ | Signification |
|
||||
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.extensions` | Déclare les points d’entrée de plugins natifs. |
|
||||
| `openclaw.setupEntry` | Point d’entrée léger réservé à la configuration utilisé pendant l’intégration et le démarrage différé des canaux. |
|
||||
| `openclaw.channel` | Métadonnées légères du catalogue de canaux comme les libellés, les chemins de documentation, les alias et le texte de sélection. |
|
||||
| `openclaw.channel.configuredState` | Métadonnées légères de vérification de l’état configuré qui peuvent répondre à « une configuration basée uniquement sur l’environnement existe-t-elle déjà ? » sans charger l’exécution complète du canal. |
|
||||
| `openclaw.channel.persistedAuthState` | Métadonnées légères de vérification d’authentification persistée qui peuvent répondre à « quelque chose est-il déjà connecté ? » sans charger l’exécution complète du canal. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Indices d’installation/mise à jour pour les plugins groupés et publiés en externe. |
|
||||
| `openclaw.install.defaultChoice` | Chemin d’installation préféré lorsque plusieurs sources d’installation sont disponibles. |
|
||||
| `openclaw.install.minHostVersion` | Version minimale prise en charge de l’hôte OpenClaw, en utilisant un plancher semver comme `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Autorise un chemin de récupération de réinstallation étroit pour les plugins groupés lorsque la configuration est invalide. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Permet aux surfaces de canal réservées à la configuration de se charger avant le plugin de canal complet pendant le démarrage. |
|
||||
|
||||
`openclaw.install.minHostVersion` est appliqué pendant l’installation et le chargement du registre de manifestes. Les valeurs invalides sont rejetées ; les valeurs plus récentes mais valides ignorent le plugin sur les hôtes plus anciens.
|
||||
`openclaw.install.minHostVersion` est appliqué pendant l’installation et lors du chargement du registre
|
||||
des manifestes. Les valeurs invalides sont rejetées ; les valeurs valides mais plus récentes ignorent le
|
||||
plugin sur les hôtes plus anciens.
|
||||
|
||||
`openclaw.install.allowInvalidConfigRecovery` est volontairement limité. Il ne rend pas installables des configurations arbitrairement cassées. Aujourd’hui, il permet seulement aux flux d’installation de se remettre de certains échecs hérités de mise à niveau de plugin bundle, comme un chemin de plugin bundle manquant ou une entrée `channels.<id>` obsolète pour ce même plugin bundle. Les erreurs de configuration non liées bloquent toujours l’installation et orientent les opérateurs vers `openclaw doctor --fix`.
|
||||
`openclaw.install.allowInvalidConfigRecovery` est volontairement limité. Il
|
||||
ne rend pas installables des configurations cassées arbitraires. Aujourd’hui, il permet seulement aux flux d’installation
|
||||
de récupérer de certains échecs obsolètes de mise à niveau de plugins groupés, comme un
|
||||
chemin de plugin groupé manquant ou une entrée `channels.<id>` obsolète pour ce même
|
||||
plugin groupé. Les erreurs de configuration sans rapport bloquent toujours l’installation et redirigent les opérateurs
|
||||
vers `openclaw doctor --fix`.
|
||||
|
||||
`openclaw.channel.persistedAuthState` est une métadonnée de package pour un minuscule module de vérification :
|
||||
`openclaw.channel.persistedAuthState` est une métadonnée de package pour un petit
|
||||
module de vérification :
|
||||
|
||||
```json
|
||||
{
|
||||
@ -393,9 +488,13 @@ Exemples importants :
|
||||
}
|
||||
```
|
||||
|
||||
Utilisez-le lorsque les flux de configuration, doctor ou d’état configuré ont besoin d’une sonde d’authentification oui/non peu coûteuse avant le chargement du plugin de canal complet. L’export cible doit être une petite fonction qui lit uniquement l’état persistant ; ne le faites pas passer par le barrel runtime complet du canal.
|
||||
Utilisez-le lorsque les flux de configuration, doctor ou d’état configuré ont besoin d’une
|
||||
vérification légère oui/non de l’authentification avant le chargement du plugin de canal complet. L’export ciblé doit être une petite
|
||||
fonction qui lit uniquement l’état persisté ; ne le faites pas passer par le barrel complet d’exécution du
|
||||
canal.
|
||||
|
||||
`openclaw.channel.configuredState` suit la même forme pour des vérifications légères d’état configuré uniquement par variables d’environnement :
|
||||
`openclaw.channel.configuredState` suit la même forme pour des vérifications légères de l’état
|
||||
configuré basées uniquement sur l’environnement :
|
||||
|
||||
```json
|
||||
{
|
||||
@ -411,43 +510,65 @@ Utilisez-le lorsque les flux de configuration, doctor ou d’état configuré on
|
||||
}
|
||||
```
|
||||
|
||||
Utilisez-le lorsqu’un canal peut répondre à l’état configuré à partir de variables d’environnement ou d’autres petites entrées non runtime. Si la vérification nécessite une résolution complète de la configuration ou le vrai runtime du canal, gardez cette logique dans le hook `config.hasConfiguredState` du plugin à la place.
|
||||
Utilisez-le lorsqu’un canal peut répondre à l’état configuré à partir de l’environnement ou d’autres petites
|
||||
entrées hors exécution. Si la vérification nécessite la résolution complète de la configuration ou la véritable
|
||||
exécution du canal, conservez cette logique dans le hook `config.hasConfiguredState`
|
||||
du plugin.
|
||||
|
||||
## Exigences du schéma JSON
|
||||
|
||||
- **Chaque plugin doit fournir un schéma JSON**, même s’il n’accepte aucune configuration.
|
||||
- Un schéma vide est acceptable (par exemple, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Les schémas sont validés au moment de la lecture/écriture de la configuration, pas au runtime.
|
||||
- Les schémas sont validés au moment de la lecture/écriture de la configuration, pas à l’exécution.
|
||||
|
||||
## Comportement de validation
|
||||
|
||||
- Les clés `channels.*` inconnues sont des **erreurs**, sauf si l’ID du canal est déclaré par un manifeste de plugin.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` et `plugins.slots.*` doivent référencer des IDs de plugin **découvrables**. Les IDs inconnus sont des **erreurs**.
|
||||
- Si un plugin est installé mais possède un manifeste ou un schéma cassé ou manquant, la validation échoue et Doctor signale l’erreur du plugin.
|
||||
- Si une configuration de plugin existe mais que le plugin est **désactivé**, la configuration est conservée et un **avertissement** est affiché dans Doctor + les logs.
|
||||
- Les clés inconnues `channels.*` sont des **erreurs**, sauf si l’ID du canal est déclaré par
|
||||
un manifeste de plugin.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` et `plugins.slots.*`
|
||||
doivent référencer des IDs de plugin **détectables**. Les IDs inconnus sont des **erreurs**.
|
||||
- Si un plugin est installé mais possède un manifeste ou un schéma manquant ou cassé,
|
||||
la validation échoue et Doctor signale l’erreur du plugin.
|
||||
- Si la configuration du plugin existe mais que le plugin est **désactivé**, la configuration est conservée et
|
||||
un **avertissement** est affiché dans Doctor + les journaux.
|
||||
|
||||
Voir [Référence de configuration](/fr/gateway/configuration) pour le schéma complet `plugins.*`.
|
||||
Consultez la [Référence de configuration](/fr/gateway/configuration) pour le schéma complet de `plugins.*`.
|
||||
|
||||
## Remarques
|
||||
|
||||
- Le manifeste est **obligatoire pour les plugins natifs OpenClaw**, y compris les chargements depuis le système de fichiers local.
|
||||
- Le runtime charge toujours le module du plugin séparément ; le manifeste sert uniquement à la découverte + validation.
|
||||
- Les manifestes natifs sont analysés avec JSON5, donc les commentaires, virgules terminales et clés non entre guillemets sont acceptés tant que la valeur finale reste un objet.
|
||||
- Seuls les champs documentés du manifeste sont lus par le chargeur de manifeste. Évitez d’ajouter ici des clés de premier niveau personnalisées.
|
||||
- `providerAuthEnvVars` est le chemin de métadonnées peu coûteux pour les sondes d’authentification, la validation des marqueurs d’environnement et les surfaces similaires d’authentification provider qui ne doivent pas démarrer le runtime du plugin uniquement pour inspecter les noms d’environnement.
|
||||
- `providerAuthAliases` permet à des variantes de provider de réutiliser les variables d’environnement d’authentification, profils d’authentification, authentification basée sur la configuration et choix d’onboarding par clé API d’un autre provider sans coder en dur cette relation dans le cœur.
|
||||
- `channelEnvVars` est le chemin de métadonnées peu coûteux pour le repli sur l’environnement shell, les invites de configuration et les surfaces de canal similaires qui ne doivent pas démarrer le runtime du plugin uniquement pour inspecter les noms d’environnement.
|
||||
- `providerAuthChoices` est le chemin de métadonnées peu coûteux pour les sélecteurs de choix d’authentification, la résolution `--auth-choice`, le mapping de provider préféré et l’enregistrement simple des flags CLI d’onboarding avant le chargement du runtime du provider. Pour les métadonnées d’assistant runtime qui nécessitent du code provider, voir [Hooks runtime provider](/fr/plugins/architecture#provider-runtime-hooks).
|
||||
- Les types de plugins exclusifs sont sélectionnés via `plugins.slots.*`.
|
||||
- Le manifeste est **obligatoire pour les plugins OpenClaw natifs**, y compris les chargements depuis le système de fichiers local.
|
||||
- L’exécution charge toujours séparément le module du plugin ; le manifeste sert uniquement à la
|
||||
découverte + validation.
|
||||
- Les manifestes natifs sont analysés avec JSON5, donc les commentaires, virgules finales et
|
||||
clés non entre guillemets sont acceptés tant que la valeur finale reste un objet.
|
||||
- Seuls les champs de manifeste documentés sont lus par le chargeur de manifeste. Évitez d’ajouter
|
||||
ici des clés personnalisées de niveau supérieur.
|
||||
- `providerAuthEnvVars` est le chemin léger de métadonnées pour les sondes d’authentification, la
|
||||
validation des marqueurs d’environnement, et des surfaces similaires d’authentification fournisseur qui ne doivent pas démarrer l’exécution du plugin
|
||||
simplement pour inspecter des noms de variables d’environnement.
|
||||
- `providerAuthAliases` permet aux variantes de fournisseurs de réutiliser les variables d’environnement d’authentification,
|
||||
les profils d’authentification, l’authentification fondée sur la configuration et le choix d’intégration par clé API d’un autre fournisseur
|
||||
sans coder en dur cette relation dans le cœur.
|
||||
- `channelEnvVars` est le chemin léger de métadonnées pour le repli sur les variables d’environnement du shell, les invites de configuration
|
||||
et des surfaces de canaux similaires qui ne doivent pas démarrer l’exécution du plugin
|
||||
simplement pour inspecter des noms de variables d’environnement.
|
||||
- `providerAuthChoices` est le chemin léger de métadonnées pour les sélecteurs de choix d’authentification,
|
||||
la résolution de `--auth-choice`, le mappage du fournisseur préféré et l’enregistrement simple des drapeaux CLI
|
||||
avant le chargement de l’exécution du fournisseur. Pour les métadonnées d’assistant d’exécution
|
||||
qui nécessitent le code du fournisseur, voir
|
||||
[Hooks d’exécution du fournisseur](/fr/plugins/architecture#provider-runtime-hooks).
|
||||
- Les types de plugin exclusifs sont sélectionnés via `plugins.slots.*`.
|
||||
- `kind: "memory"` est sélectionné par `plugins.slots.memory`.
|
||||
- `kind: "context-engine"` est sélectionné par `plugins.slots.contextEngine`
|
||||
(par défaut : `legacy` intégré).
|
||||
- `channels`, `providers`, `cliBackends` et `skills` peuvent être omis lorsqu’un plugin n’en a pas besoin.
|
||||
- Si votre plugin dépend de modules natifs, documentez les étapes de build et toute exigence d’allowlist du gestionnaire de paquets (par exemple, pnpm `allow-build-scripts`
|
||||
- `channels`, `providers`, `cliBackends` et `skills` peuvent être omis lorsqu’un
|
||||
plugin n’en a pas besoin.
|
||||
- Si votre plugin dépend de modules natifs, documentez les étapes de compilation et toute
|
||||
exigence de liste d’autorisation du gestionnaire de paquets (par exemple, pnpm `allow-build-scripts`
|
||||
- `pnpm rebuild <package>`).
|
||||
|
||||
## Liens associés
|
||||
## Liens connexes
|
||||
|
||||
- [Créer des plugins](/fr/plugins/building-plugins) — démarrer avec les plugins
|
||||
- [Créer des plugins](/fr/plugins/building-plugins) — bien démarrer avec les plugins
|
||||
- [Architecture des plugins](/fr/plugins/architecture) — architecture interne
|
||||
- [Vue d’ensemble du SDK](/fr/plugins/sdk-overview) — référence du SDK des plugins
|
||||
- [Vue d’ensemble du SDK](/fr/plugins/sdk-overview) — référence du SDK de plugin
|
||||
|
||||
60
docs/fr/reference/rich-output-protocol.md
Normal file
60
docs/fr/reference/rich-output-protocol.md
Normal file
@ -0,0 +1,60 @@
|
||||
---
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T15:15:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2a8884fc2c304bf96d4675f0c1d1ff781d6dc1ae8c49d92ce08040c9c7709035
|
||||
source_path: reference/rich-output-protocol.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Protocole de sortie enrichie
|
||||
|
||||
La sortie de l’assistant peut inclure un petit ensemble de directives de livraison/rendu :
|
||||
|
||||
- `MEDIA:` pour la livraison de pièces jointes
|
||||
- `[[audio_as_voice]]` pour les indications de présentation audio
|
||||
- `[[reply_to_current]]` / `[[reply_to:<id>]]` pour les métadonnées de réponse
|
||||
- `[embed ...]` pour le rendu enrichi dans l’interface de contrôle
|
||||
|
||||
Ces directives sont distinctes. `MEDIA:` et les balises de réponse/voix restent des métadonnées de livraison ; `[embed ...]` est le chemin de rendu enrichi réservé au web.
|
||||
|
||||
## `[embed ...]`
|
||||
|
||||
`[embed ...]` est la seule syntaxe de rendu enrichi destinée aux agents pour l’interface de contrôle.
|
||||
|
||||
Exemple autofermant :
|
||||
|
||||
```text
|
||||
[embed ref="cv_123" title="Status" /]
|
||||
```
|
||||
|
||||
Règles :
|
||||
|
||||
- `[view ...]` n’est plus valide pour les nouvelles sorties.
|
||||
- Les shortcodes embed s’affichent uniquement dans la surface de message de l’assistant.
|
||||
- Seuls les embeds adossés à une URL sont rendus. Utilisez `ref="..."` ou `url="..."`.
|
||||
- Les shortcodes embed en HTML inline sous forme de bloc ne sont pas rendus.
|
||||
- L’interface web supprime le shortcode du texte visible et rend l’embed en ligne.
|
||||
- `MEDIA:` n’est pas un alias d’embed et ne doit pas être utilisé pour le rendu enrichi d’embed.
|
||||
|
||||
## Forme de rendu stockée
|
||||
|
||||
Le bloc de contenu normalisé/stocké de l’assistant est un élément structuré `canvas` :
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "canvas",
|
||||
"preview": {
|
||||
"kind": "canvas",
|
||||
"surface": "assistant_message",
|
||||
"render": "url",
|
||||
"viewId": "cv_123",
|
||||
"url": "/__openclaw__/canvas/documents/cv_123/index.html",
|
||||
"title": "Status",
|
||||
"preferredHeight": 320
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Les blocs enrichis stockés/rendus utilisent directement cette forme `canvas`. `present_view` n’est pas reconnu.
|
||||
@ -1,35 +1,34 @@
|
||||
---
|
||||
read_when:
|
||||
- Générer des vidéos via l’agent
|
||||
- Configuration des fournisseurs et modèles de génération vidéo
|
||||
- Génération de vidéos via l’agent
|
||||
- Configuration des fournisseurs et des modèles de génération de vidéos
|
||||
- Comprendre les paramètres de l’outil `video_generate`
|
||||
summary: Générez des vidéos à partir de texte, d’images ou de vidéos existantes à l’aide de 12 backends de fournisseur
|
||||
title: Génération vidéo
|
||||
summary: Générez des vidéos à partir de texte, d’images ou de vidéos existantes à l’aide de 14 backends de fournisseur
|
||||
title: Génération de vidéos
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T02:48:15Z"
|
||||
generated_at: "2026-04-11T15:16:00Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6848d03ef578181902517d068e8d9fe2f845e572a90481bbdf7bd9f1c591f245
|
||||
source_hash: 0ec159a0bbb6b8a030e68828c0a8bcaf40c8538ecf98bc8ff609dab9d0068263
|
||||
source_path: tools/video-generation.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Génération vidéo
|
||||
# Génération de vidéos
|
||||
|
||||
Les agents OpenClaw peuvent générer des vidéos à partir d’invites textuelles, d’images de référence ou de vidéos existantes. Douze backends de fournisseur sont pris en charge, chacun avec différentes options de modèle, modes d’entrée et ensembles de fonctionnalités. L’agent choisit automatiquement le bon fournisseur selon votre configuration et les clés API disponibles.
|
||||
Les agents OpenClaw peuvent générer des vidéos à partir d’invites textuelles, d’images de référence ou de vidéos existantes. Quatorze backends de fournisseur sont pris en charge, chacun avec différentes options de modèle, modes d’entrée et ensembles de fonctionnalités. L’agent choisit automatiquement le bon fournisseur en fonction de votre configuration et des clés API disponibles.
|
||||
|
||||
<Note>
|
||||
L’outil `video_generate` n’apparaît que lorsqu’au moins un fournisseur de génération vidéo est disponible. Si vous ne le voyez pas dans les outils de votre agent, définissez une clé API de fournisseur ou configurez `agents.defaults.videoGenerationModel`.
|
||||
L’outil `video_generate` n’apparaît que lorsqu’au moins un fournisseur de génération de vidéos est disponible. Si vous ne le voyez pas dans les outils de votre agent, définissez une clé API de fournisseur ou configurez `agents.defaults.videoGenerationModel`.
|
||||
</Note>
|
||||
|
||||
OpenClaw traite la génération vidéo selon trois modes d’exécution :
|
||||
OpenClaw traite la génération de vidéos selon trois modes d’exécution :
|
||||
|
||||
- `generate` pour les requêtes texte-vers-vidéo sans média de référence
|
||||
- `imageToVideo` lorsque la requête inclut une ou plusieurs images de référence
|
||||
- `videoToVideo` lorsque la requête inclut une ou plusieurs vidéos de référence
|
||||
- `generate` pour les demandes de texte vers vidéo sans média de référence
|
||||
- `imageToVideo` lorsque la demande inclut une ou plusieurs images de référence
|
||||
- `videoToVideo` lorsque la demande inclut une ou plusieurs vidéos de référence
|
||||
|
||||
Les fournisseurs peuvent prendre en charge n’importe quel sous-ensemble de ces modes. L’outil valide le
|
||||
mode actif avant l’envoi et signale les modes pris en charge dans `action=list`.
|
||||
Les fournisseurs peuvent prendre en charge n’importe quel sous-ensemble de ces modes. L’outil valide le mode actif avant l’envoi et signale les modes pris en charge dans `action=list`.
|
||||
|
||||
## Démarrage rapide
|
||||
|
||||
@ -47,31 +46,31 @@ openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1
|
||||
|
||||
3. Demandez à l’agent :
|
||||
|
||||
> Générez une vidéo cinématique de 5 secondes d’un homard amical faisant du surf au coucher du soleil.
|
||||
> Générez une vidéo cinématographique de 5 secondes d’un homard sympathique faisant du surf au coucher du soleil.
|
||||
|
||||
L’agent appelle automatiquement `video_generate`. Aucune liste d’autorisation d’outils n’est nécessaire.
|
||||
|
||||
## Ce qui se passe lorsque vous générez une vidéo
|
||||
|
||||
La génération vidéo est asynchrone. Lorsque l’agent appelle `video_generate` dans une session :
|
||||
La génération de vidéos est asynchrone. Lorsque l’agent appelle `video_generate` dans une session :
|
||||
|
||||
1. OpenClaw soumet la requête au fournisseur et renvoie immédiatement un identifiant de tâche.
|
||||
2. Le fournisseur traite le travail en arrière-plan (généralement entre 30 secondes et 5 minutes selon le fournisseur et la résolution).
|
||||
3. Lorsque la vidéo est prête, OpenClaw réveille la même session avec un événement interne d’achèvement.
|
||||
4. L’agent republie la vidéo terminée dans la conversation d’origine.
|
||||
1. OpenClaw envoie la demande au fournisseur et renvoie immédiatement un ID de tâche.
|
||||
2. Le fournisseur traite le travail en arrière-plan (généralement de 30 secondes à 5 minutes selon le fournisseur et la résolution).
|
||||
3. Lorsque la vidéo est prête, OpenClaw réactive la même session avec un événement interne de fin.
|
||||
4. L’agent publie la vidéo terminée dans la conversation d’origine.
|
||||
|
||||
Pendant qu’une tâche est en cours, les appels `video_generate` en double dans la même session renvoient l’état actuel de la tâche au lieu de lancer une autre génération. Utilisez `openclaw tasks list` ou `openclaw tasks show <taskId>` pour vérifier la progression depuis la CLI.
|
||||
Pendant qu’une tâche est en cours, les appels `video_generate` en double dans la même session renvoient l’état actuel de la tâche au lieu de démarrer une autre génération. Utilisez `openclaw tasks list` ou `openclaw tasks show <taskId>` pour vérifier la progression depuis la CLI.
|
||||
|
||||
En dehors des exécutions d’agent adossées à une session (par exemple, les invocations directes d’outils), l’outil se replie sur une génération en ligne et renvoie le chemin final du média dans le même tour.
|
||||
En dehors des exécutions d’agent adossées à une session (par exemple, des invocations directes d’outils), l’outil revient à une génération en ligne et renvoie le chemin final du média dans le même tour.
|
||||
|
||||
### Cycle de vie de la tâche
|
||||
### Cycle de vie d’une tâche
|
||||
|
||||
Chaque requête `video_generate` passe par quatre états :
|
||||
Chaque demande `video_generate` passe par quatre états :
|
||||
|
||||
1. **queued** -- tâche créée, en attente que le fournisseur l’accepte.
|
||||
2. **running** -- le fournisseur traite la tâche (généralement entre 30 secondes et 5 minutes selon le fournisseur et la résolution).
|
||||
3. **succeeded** -- vidéo prête ; l’agent se réveille et la publie dans la conversation.
|
||||
4. **failed** -- erreur du fournisseur ou délai d’expiration ; l’agent se réveille avec les détails de l’erreur.
|
||||
2. **running** -- le fournisseur traite la demande (généralement de 30 secondes à 5 minutes selon le fournisseur et la résolution).
|
||||
3. **succeeded** -- vidéo prête ; l’agent se réactive et la publie dans la conversation.
|
||||
4. **failed** -- erreur du fournisseur ou expiration du délai ; l’agent se réactive avec les détails de l’erreur.
|
||||
|
||||
Vérifiez l’état depuis la CLI :
|
||||
|
||||
@ -81,49 +80,49 @@ openclaw tasks show <taskId>
|
||||
openclaw tasks cancel <taskId>
|
||||
```
|
||||
|
||||
Prévention des doublons : si une tâche vidéo est déjà `queued` ou `running` pour la session en cours, `video_generate` renvoie l’état de la tâche existante au lieu d’en démarrer une nouvelle. Utilisez `action: "status"` pour vérifier explicitement sans déclencher une nouvelle génération.
|
||||
Prévention des doublons : si une tâche vidéo est déjà `queued` ou `running` pour la session actuelle, `video_generate` renvoie l’état de la tâche existante au lieu d’en démarrer une nouvelle. Utilisez `action: "status"` pour vérifier explicitement sans déclencher une nouvelle génération.
|
||||
|
||||
## Fournisseurs pris en charge
|
||||
|
||||
| Fournisseur | Modèle par défaut | Texte | Réf image | Réf vidéo | Clé API |
|
||||
| ----------- | ------------------------------- | ----- | ----------------- | ---------------- | ----------------------------------------- |
|
||||
| Alibaba | `wan2.6-t2v` | Oui | Oui (URL distante) | Oui (URL distante) | `MODELSTUDIO_API_KEY` |
|
||||
| BytePlus | `seedance-1-0-lite-t2v-250428` | Oui | 1 image | Non | `BYTEPLUS_API_KEY` |
|
||||
| ComfyUI | `workflow` | Oui | 1 image | Non | `COMFY_API_KEY` ou `COMFY_CLOUD_API_KEY` |
|
||||
| fal | `fal-ai/minimax/video-01-live` | Oui | 1 image | Non | `FAL_KEY` |
|
||||
| Google | `veo-3.1-fast-generate-preview` | Oui | 1 image | 1 vidéo | `GEMINI_API_KEY` |
|
||||
| MiniMax | `MiniMax-Hailuo-2.3` | Oui | 1 image | Non | `MINIMAX_API_KEY` |
|
||||
| OpenAI | `sora-2` | Oui | 1 image | 1 vidéo | `OPENAI_API_KEY` |
|
||||
| Qwen | `wan2.6-t2v` | Oui | Oui (URL distante) | Oui (URL distante) | `QWEN_API_KEY` |
|
||||
| Runway | `gen4.5` | Oui | 1 image | 1 vidéo | `RUNWAYML_API_SECRET` |
|
||||
| Together | `Wan-AI/Wan2.2-T2V-A14B` | Oui | 1 image | Non | `TOGETHER_API_KEY` |
|
||||
| Vydra | `veo3` | Oui | 1 image (`kling`) | Non | `VYDRA_API_KEY` |
|
||||
| xAI | `grok-imagine-video` | Oui | 1 image | 1 vidéo | `XAI_API_KEY` |
|
||||
| Fournisseur | Modèle par défaut | Texte | Image de réf. | Vidéo de réf. | Clé API |
|
||||
| --------------------- | ------------------------------- | ----- | --------------------------------------------------- | ---------------- | ----------------------------------------- |
|
||||
| Alibaba | `wan2.6-t2v` | Oui | Oui (URL distante) | Oui (URL distante) | `MODELSTUDIO_API_KEY` |
|
||||
| BytePlus (1.0) | `seedance-1-0-pro-250528` | Oui | Jusqu’à 2 images (modèles I2V uniquement ; première + dernière image) | Non | `BYTEPLUS_API_KEY` |
|
||||
| BytePlus Seedance 1.5 | `seedance-1-5-pro-251215` | Oui | Jusqu’à 2 images (première + dernière image via rôle) | Non | `BYTEPLUS_API_KEY` |
|
||||
| BytePlus Seedance 2.0 | `dreamina-seedance-2-0-260128` | Oui | Jusqu’à 9 images de référence | Jusqu’à 3 vidéos | `BYTEPLUS_API_KEY` |
|
||||
| ComfyUI | `workflow` | Oui | 1 image | Non | `COMFY_API_KEY` ou `COMFY_CLOUD_API_KEY` |
|
||||
| fal | `fal-ai/minimax/video-01-live` | Oui | 1 image | Non | `FAL_KEY` |
|
||||
| Google | `veo-3.1-fast-generate-preview` | Oui | 1 image | 1 vidéo | `GEMINI_API_KEY` |
|
||||
| MiniMax | `MiniMax-Hailuo-2.3` | Oui | 1 image | Non | `MINIMAX_API_KEY` |
|
||||
| OpenAI | `sora-2` | Oui | 1 image | 1 vidéo | `OPENAI_API_KEY` |
|
||||
| Qwen | `wan2.6-t2v` | Oui | Oui (URL distante) | Oui (URL distante) | `QWEN_API_KEY` |
|
||||
| Runway | `gen4.5` | Oui | 1 image | 1 vidéo | `RUNWAYML_API_SECRET` |
|
||||
| Together | `Wan-AI/Wan2.2-T2V-A14B` | Oui | 1 image | Non | `TOGETHER_API_KEY` |
|
||||
| Vydra | `veo3` | Oui | 1 image (`kling`) | Non | `VYDRA_API_KEY` |
|
||||
| xAI | `grok-imagine-video` | Oui | 1 image | 1 vidéo | `XAI_API_KEY` |
|
||||
|
||||
Certains fournisseurs acceptent des variables d’environnement de clé API supplémentaires ou alternatives. Voir les [pages fournisseur](#related) individuelles pour plus de détails.
|
||||
Certains fournisseurs acceptent des variables d’environnement de clé API supplémentaires ou alternatives. Consultez les [pages des fournisseurs](#related) correspondantes pour plus de détails.
|
||||
|
||||
Exécutez `video_generate action=list` pour inspecter les fournisseurs, modèles et
|
||||
modes d’exécution disponibles à l’exécution.
|
||||
Exécutez `video_generate action=list` pour inspecter à l’exécution les fournisseurs, modèles et modes d’exécution disponibles.
|
||||
|
||||
### Matrice de capacités déclarée
|
||||
### Matrice des capacités déclarées
|
||||
|
||||
Il s’agit du contrat de mode explicite utilisé par `video_generate`, les tests de contrat
|
||||
et le balayage direct partagé.
|
||||
Il s’agit du contrat de mode explicite utilisé par `video_generate`, les tests de contrat et le balayage partagé en direct.
|
||||
|
||||
| Fournisseur | `generate` | `imageToVideo` | `videoToVideo` | Voies directes partagées aujourd’hui |
|
||||
| ----------- | ---------- | -------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alibaba | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` ignoré, car ce fournisseur nécessite des URL vidéo distantes `http(s)` |
|
||||
| BytePlus | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| ComfyUI | Oui | Oui | Non | Pas dans le balayage partagé ; la couverture spécifique aux workflows vit avec les tests Comfy |
|
||||
| fal | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| Google | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` partagé ignoré, car le balayage Gemini/Veo actuel adossé aux buffers n’accepte pas cette entrée |
|
||||
| MiniMax | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| Fournisseur | `generate` | `imageToVideo` | `videoToVideo` | Voies partagées en direct aujourd’hui |
|
||||
| ----------- | ---------- | -------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alibaba | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` ignoré, car ce fournisseur nécessite des URL vidéo distantes `http(s)` |
|
||||
| BytePlus | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| ComfyUI | Oui | Oui | Non | Pas dans le balayage partagé ; la couverture spécifique au workflow se trouve dans les tests ComfyUI |
|
||||
| fal | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| Google | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` partagé ignoré, car le balayage Gemini/Veo actuel adossé à un buffer n’accepte pas cette entrée |
|
||||
| MiniMax | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| OpenAI | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` partagé ignoré, car ce chemin org/entrée nécessite actuellement un accès inpaint/remix côté fournisseur |
|
||||
| Qwen | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` ignoré, car ce fournisseur nécessite des URL vidéo distantes `http(s)` |
|
||||
| Runway | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` s’exécute uniquement lorsque le modèle sélectionné est `runway/gen4_aleph` |
|
||||
| Together | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| Vydra | Oui | Oui | Non | `generate` ; `imageToVideo` partagé ignoré, car `veo3` intégré est texte seul et `kling` intégré nécessite une URL d’image distante |
|
||||
| xAI | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` ignoré, car ce fournisseur nécessite actuellement une URL MP4 distante |
|
||||
| Qwen | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` ignoré, car ce fournisseur nécessite des URL vidéo distantes `http(s)` |
|
||||
| Runway | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` s’exécute uniquement lorsque le modèle sélectionné est `runway/gen4_aleph` |
|
||||
| Together | Oui | Oui | Non | `generate`, `imageToVideo` |
|
||||
| Vydra | Oui | Oui | Non | `generate` ; `imageToVideo` partagé ignoré, car le `veo3` groupé est uniquement textuel et le `kling` groupé nécessite une URL d’image distante |
|
||||
| xAI | Oui | Oui | Oui | `generate`, `imageToVideo` ; `videoToVideo` ignoré, car ce fournisseur nécessite actuellement une URL MP4 distante |
|
||||
|
||||
## Paramètres de l’outil
|
||||
|
||||
@ -135,50 +134,71 @@ et le balayage direct partagé.
|
||||
|
||||
### Entrées de contenu
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| --------- | -------- | ------------------------------------------- |
|
||||
| `image` | string | Image de référence unique (chemin ou URL) |
|
||||
| `images` | string[] | Plusieurs images de référence (jusqu’à 5) |
|
||||
| `video` | string | Vidéo de référence unique (chemin ou URL) |
|
||||
| `videos` | string[] | Plusieurs vidéos de référence (jusqu’à 4) |
|
||||
| Paramètre | Type | Description |
|
||||
| ----------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `image` | string | Image de référence unique (chemin ou URL) |
|
||||
| `images` | string[] | Plusieurs images de référence (jusqu’à 9) |
|
||||
| `imageRoles`| string[] | Indications de rôle facultatives par position, parallèles à la liste d’images combinée. Valeurs canoniques : `first_frame`, `last_frame`, `reference_image` |
|
||||
| `video` | string | Vidéo de référence unique (chemin ou URL) |
|
||||
| `videos` | string[] | Plusieurs vidéos de référence (jusqu’à 4) |
|
||||
| `videoRoles`| string[] | Indications de rôle facultatives par position, parallèles à la liste de vidéos combinée. Valeur canonique : `reference_video` |
|
||||
| `audioRef` | string | Référence audio unique (chemin ou URL). Utilisée par exemple pour une musique de fond ou une référence vocale lorsque le fournisseur prend en charge les entrées audio |
|
||||
| `audioRefs` | string[] | Plusieurs références audio (jusqu’à 3) |
|
||||
| `audioRoles`| string[] | Indications de rôle facultatives par position, parallèles à la liste d’audios combinée. Valeur canonique : `reference_audio` |
|
||||
|
||||
Les indications de rôle sont transmises telles quelles au fournisseur. Les valeurs canoniques proviennent de l’union `VideoGenerationAssetRole`, mais les fournisseurs peuvent accepter des chaînes de rôle supplémentaires. Les tableaux `*Roles` ne doivent pas comporter plus d’entrées que la liste de références correspondante ; les erreurs de décalage d’une position échouent avec un message clair. Utilisez une chaîne vide pour laisser un emplacement non défini.
|
||||
|
||||
### Contrôles de style
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| ----------------- | ------- | ------------------------------------------------------------------------ |
|
||||
| `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
|
||||
| `resolution` | string | `480P`, `720P`, `768P` ou `1080P` |
|
||||
| `durationSeconds` | number | Durée cible en secondes (arrondie à la valeur prise en charge la plus proche par le fournisseur) |
|
||||
| `size` | string | Indication de taille lorsque le fournisseur la prend en charge |
|
||||
| `audio` | boolean | Activer l’audio généré lorsque c’est pris en charge |
|
||||
| `watermark` | boolean | Activer/désactiver le filigrane du fournisseur lorsque c’est pris en charge |
|
||||
| Paramètre | Type | Description |
|
||||
| ---------------- | ------- | -------------------------------------------------------------------------------------------- |
|
||||
| `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` ou `adaptive` |
|
||||
| `resolution` | string | `480P`, `720P`, `768P` ou `1080P` |
|
||||
| `durationSeconds`| number | Durée cible en secondes (arrondie à la valeur prise en charge la plus proche par le fournisseur) |
|
||||
| `size` | string | Indication de taille lorsque le fournisseur la prend en charge |
|
||||
| `audio` | boolean | Active l’audio généré dans la sortie lorsqu’il est pris en charge. Distinct de `audioRef*` (entrées) |
|
||||
| `watermark` | boolean | Active ou désactive le filigrane du fournisseur lorsqu’il est pris en charge |
|
||||
|
||||
`adaptive` est une valeur sentinelle spécifique au fournisseur : elle est transmise telle quelle aux fournisseurs qui déclarent `adaptive` dans leurs capacités (par exemple, BytePlus Seedance l’utilise pour détecter automatiquement le ratio à partir des dimensions de l’image d’entrée). Les fournisseurs qui ne la déclarent pas exposent la valeur via `details.ignoredOverrides` dans le résultat de l’outil afin que l’omission soit visible.
|
||||
|
||||
### Avancé
|
||||
|
||||
| Paramètre | Type | Description |
|
||||
| ---------- | ------ | ------------------------------------------------ |
|
||||
| `action` | string | `"generate"` (par défaut), `"status"` ou `"list"` |
|
||||
| `model` | string | Remplacement fournisseur/modèle (par exemple `runway/gen4.5`) |
|
||||
| `filename` | string | Indication de nom de fichier de sortie |
|
||||
| Paramètre | Type | Description |
|
||||
| ---------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `action` | string | `"generate"` (par défaut), `"status"` ou `"list"` |
|
||||
| `model` | string | Remplacement du fournisseur/modèle (par exemple `runway/gen4.5`) |
|
||||
| `filename` | string | Indication de nom de fichier de sortie |
|
||||
| `providerOptions`| object | Options spécifiques au fournisseur sous forme d’objet JSON (par exemple `{"seed": 42, "draft": true}`). Les fournisseurs qui déclarent un schéma typé valident les clés et les types ; les clés inconnues ou incompatibilités font ignorer le candidat pendant le fallback. Les fournisseurs sans schéma déclaré reçoivent les options telles quelles. Exécutez `video_generate action=list` pour voir ce que chaque fournisseur accepte |
|
||||
|
||||
Tous les fournisseurs ne prennent pas en charge tous les paramètres. OpenClaw normalise déjà la durée à la valeur la plus proche prise en charge par le fournisseur, et remappe aussi les indications de géométrie traduites comme la taille vers le ratio d’aspect lorsqu’un fournisseur de repli expose une surface de contrôle différente. Les remplacements réellement non pris en charge sont ignorés dans une logique de meilleur effort et signalés comme avertissements dans le résultat de l’outil. Les limites strictes de capacité (comme trop d’entrées de référence) échouent avant l’envoi.
|
||||
Tous les fournisseurs ne prennent pas en charge tous les paramètres. OpenClaw normalise déjà la durée à la valeur prise en charge la plus proche par le fournisseur, et remappe également les indications de géométrie traduites, comme size vers aspect ratio, lorsqu’un fournisseur de fallback expose une surface de contrôle différente. Les remplacements réellement non pris en charge sont ignorés dans la mesure du possible et signalés comme avertissements dans le résultat de l’outil. Les limites strictes de capacité (comme un trop grand nombre d’entrées de référence) échouent avant l’envoi.
|
||||
|
||||
Les résultats de l’outil indiquent les réglages appliqués. Lorsque OpenClaw remappe la durée ou la géométrie pendant le repli du fournisseur, les valeurs renvoyées `durationSeconds`, `size`, `aspectRatio` et `resolution` reflètent ce qui a été soumis, et `details.normalization` capture la traduction entre la valeur demandée et la valeur appliquée.
|
||||
Les résultats de l’outil signalent les paramètres appliqués. Lorsque OpenClaw remappe la durée ou la géométrie pendant le fallback du fournisseur, les valeurs renvoyées `durationSeconds`, `size`, `aspectRatio` et `resolution` reflètent ce qui a été envoyé, et `details.normalization` capture la traduction entre la demande et l’application.
|
||||
|
||||
Les entrées de référence sélectionnent aussi le mode d’exécution :
|
||||
Les entrées de référence sélectionnent également le mode d’exécution :
|
||||
|
||||
- Aucun média de référence : `generate`
|
||||
- Toute image de référence : `imageToVideo`
|
||||
- Toute vidéo de référence : `videoToVideo`
|
||||
- Les entrées audio de référence ne modifient pas le mode résolu ; elles s’appliquent par-dessus le mode sélectionné par les références d’image/vidéo, et ne fonctionnent qu’avec les fournisseurs qui déclarent `maxInputAudios`
|
||||
|
||||
Les références mixtes d’images et de vidéos ne constituent pas une surface de capacité partagée stable.
|
||||
Préférez un seul type de référence par requête.
|
||||
Les références d’image et de vidéo mixtes ne constituent pas une surface de capacité partagée stable.
|
||||
Préférez un seul type de référence par demande.
|
||||
|
||||
#### Fallback et options typées
|
||||
|
||||
Certaines vérifications de capacité sont appliquées au niveau du fallback plutôt qu’à la frontière de l’outil, afin qu’une demande qui dépasse les limites du fournisseur principal puisse tout de même s’exécuter sur un fournisseur de fallback compatible :
|
||||
|
||||
- Si le candidat actif ne déclare pas `maxInputAudios` (ou le déclare à `0`), il est ignoré lorsque la demande contient des références audio, et le candidat suivant est essayé.
|
||||
- Si `maxDurationSeconds` du candidat actif est inférieur à la valeur demandée dans `durationSeconds` et que le candidat ne déclare pas de liste `supportedDurationSeconds`, il est ignoré.
|
||||
- Si la demande contient `providerOptions` et que le candidat actif déclare explicitement un schéma typé `providerOptions`, le candidat est ignoré lorsque les clés fournies ne figurent pas dans le schéma ou que les types de valeur ne correspondent pas. Les fournisseurs qui n’ont pas encore déclaré de schéma reçoivent les options telles quelles (transmission compatible avec l’existant). Un fournisseur peut explicitement refuser toutes les options de fournisseur en déclarant un schéma vide (`capabilities.providerOptions: {}`), ce qui provoque le même comportement d’ignorance qu’une incompatibilité de type.
|
||||
|
||||
La première raison d’ignorance dans une demande est journalisée au niveau `warn` afin que les opérateurs voient quand leur fournisseur principal a été ignoré ; les ignorances suivantes sont journalisées au niveau `debug` pour éviter de surcharger les longues chaînes de fallback. Si tous les candidats sont ignorés, l’erreur agrégée inclut la raison d’ignorance de chacun.
|
||||
|
||||
## Actions
|
||||
|
||||
- **generate** (par défaut) -- créer une vidéo à partir de l’invite donnée et d’éventuelles entrées de référence.
|
||||
- **status** -- vérifier l’état de la tâche vidéo en cours pour la session actuelle sans démarrer une autre génération.
|
||||
- **list** -- afficher les fournisseurs, modèles et leurs capacités disponibles.
|
||||
- **generate** (par défaut) -- crée une vidéo à partir de l’invite donnée et des entrées de référence facultatives.
|
||||
- **status** -- vérifie l’état de la tâche vidéo en cours pour la session actuelle sans démarrer une autre génération.
|
||||
- **list** -- affiche les fournisseurs, modèles et capacités disponibles.
|
||||
|
||||
## Sélection du modèle
|
||||
|
||||
@ -187,12 +207,11 @@ Lors de la génération d’une vidéo, OpenClaw résout le modèle dans cet ord
|
||||
1. **Paramètre d’outil `model`** -- si l’agent en spécifie un dans l’appel.
|
||||
2. **`videoGenerationModel.primary`** -- depuis la configuration.
|
||||
3. **`videoGenerationModel.fallbacks`** -- essayés dans l’ordre.
|
||||
4. **Détection automatique** -- utilise les fournisseurs qui disposent d’une authentification valide, en commençant par le fournisseur par défaut actuel, puis les autres fournisseurs par ordre alphabétique.
|
||||
4. **Détection automatique** -- utilise les fournisseurs qui ont une authentification valide, en commençant par le fournisseur par défaut actuel, puis les fournisseurs restants par ordre alphabétique.
|
||||
|
||||
Si un fournisseur échoue, le candidat suivant est essayé automatiquement. Si tous les candidats échouent, l’erreur inclut les détails de chaque tentative.
|
||||
|
||||
Définissez `agents.defaults.mediaGenerationAutoProviderFallback: false` si vous voulez que
|
||||
la génération vidéo utilise uniquement les entrées explicites `model`, `primary` et `fallbacks`.
|
||||
Définissez `agents.defaults.mediaGenerationAutoProviderFallback: false` si vous souhaitez que la génération de vidéos utilise uniquement les entrées explicites `model`, `primary` et `fallbacks`.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -207,56 +226,28 @@ la génération vidéo utilise uniquement les entrées explicites `model`, `prim
|
||||
}
|
||||
```
|
||||
|
||||
HeyGen video-agent sur fal peut être épinglé avec :
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
defaults: {
|
||||
videoGenerationModel: {
|
||||
primary: "fal/fal-ai/heygen/v2/video-agent",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Seedance 2.0 sur fal peut être épinglé avec :
|
||||
|
||||
```json5
|
||||
{
|
||||
agents: {
|
||||
defaults: {
|
||||
videoGenerationModel: {
|
||||
primary: "fal/bytedance/seedance-2.0/fast/text-to-video",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Remarques sur les fournisseurs
|
||||
|
||||
| Fournisseur | Remarques |
|
||||
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alibaba | Utilise le point de terminaison asynchrone DashScope/Model Studio. Les images et vidéos de référence doivent être des URL distantes `http(s)`. |
|
||||
| BytePlus | Une seule image de référence. |
|
||||
| ComfyUI | Exécution locale ou cloud pilotée par workflow. Prend en charge le texte-vers-vidéo et l’image-vers-vidéo via le graphe configuré. |
|
||||
| fal | Utilise un flux adossé à une file d’attente pour les tâches longues. Une seule image de référence. Inclut les références de modèles HeyGen video-agent et Seedance 2.0 texte-vers-vidéo et image-vers-vidéo. |
|
||||
| Google | Utilise Gemini/Veo. Prend en charge une image de référence ou une vidéo de référence. |
|
||||
| MiniMax | Une seule image de référence. |
|
||||
| OpenAI | Seul le remplacement `size` est transmis. Les autres remplacements de style (`aspectRatio`, `resolution`, `audio`, `watermark`) sont ignorés avec un avertissement. |
|
||||
| Qwen | Même backend DashScope qu’Alibaba. Les entrées de référence doivent être des URL distantes `http(s)` ; les fichiers locaux sont rejetés dès le départ. |
|
||||
| Runway | Prend en charge les fichiers locaux via des URI de données. Le mode vidéo-vers-vidéo nécessite `runway/gen4_aleph`. Les exécutions texte seul exposent les ratios `16:9` et `9:16`. |
|
||||
| Together | Une seule image de référence. |
|
||||
| Vydra | Utilise `https://www.vydra.ai/api/v1` directement pour éviter les redirections qui perdent l’authentification. `veo3` est intégré comme texte-vers-vidéo uniquement ; `kling` nécessite une URL d’image distante. |
|
||||
| xAI | Prend en charge les flux texte-vers-vidéo, image-vers-vidéo et modification/extension de vidéo distante. |
|
||||
| Fournisseur | Remarques |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alibaba | Utilise le endpoint asynchrone DashScope/Model Studio. Les images et vidéos de référence doivent être des URL distantes `http(s)`. |
|
||||
| BytePlus (1.0) | ID du fournisseur `byteplus`. Modèles : `seedance-1-0-pro-250528` (par défaut), `seedance-1-0-pro-t2v-250528`, `seedance-1-0-pro-fast-251015`, `seedance-1-0-lite-t2v-250428`, `seedance-1-0-lite-i2v-250428`. Les modèles T2V (`*-t2v-*`) n’acceptent pas les entrées d’image ; les modèles I2V et les modèles généraux `*-pro-*` prennent en charge une seule image de référence (première image). Passez l’image de manière positionnelle ou définissez `role: "first_frame"`. Les ID de modèle T2V sont automatiquement basculés vers la variante I2V correspondante lorsqu’une image est fournie. Clés `providerOptions` prises en charge : `seed` (number), `draft` (boolean, force le 480p), `camera_fixed` (boolean). |
|
||||
| BytePlus Seedance 1.5 | Nécessite le plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark). ID du fournisseur `byteplus-seedance15`. Modèle : `seedance-1-5-pro-251215`. Utilise l’API unifiée `content[]`. Prend en charge au maximum 2 images d’entrée (first_frame + last_frame). Toutes les entrées doivent être des URL distantes `https://`. Définissez `role: "first_frame"` / `"last_frame"` sur chaque image, ou passez les images de manière positionnelle. `aspectRatio: "adaptive"` détecte automatiquement le ratio à partir de l’image d’entrée. `audio: true` est mappé à `generate_audio`. `providerOptions.seed` (number) est transmis. |
|
||||
| BytePlus Seedance 2.0 | Nécessite le plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark). ID du fournisseur `byteplus-seedance2`. Modèles : `dreamina-seedance-2-0-260128`, `dreamina-seedance-2-0-fast-260128`. Utilise l’API unifiée `content[]`. Prend en charge jusqu’à 9 images de référence, 3 vidéos de référence et 3 audios de référence. Toutes les entrées doivent être des URL distantes `https://`. Définissez `role` sur chaque ressource — valeurs prises en charge : `"first_frame"`, `"last_frame"`, `"reference_image"`, `"reference_video"`, `"reference_audio"`. `aspectRatio: "adaptive"` détecte automatiquement le ratio à partir de l’image d’entrée. `audio: true` est mappé à `generate_audio`. `providerOptions.seed` (number) est transmis. |
|
||||
| ComfyUI | Exécution locale ou cloud pilotée par workflow. Prend en charge le texte vers vidéo et l’image vers vidéo via le graphe configuré. |
|
||||
| fal | Utilise un flux adossé à une file d’attente pour les tâches longues. Une seule image de référence uniquement. |
|
||||
| Google | Utilise Gemini/Veo. Prend en charge une image ou une vidéo de référence. |
|
||||
| MiniMax | Une seule image de référence uniquement. |
|
||||
| OpenAI | Seul le remplacement `size` est transmis. Les autres remplacements de style (`aspectRatio`, `resolution`, `audio`, `watermark`) sont ignorés avec un avertissement. |
|
||||
| Qwen | Même backend DashScope qu’Alibaba. Les entrées de référence doivent être des URL distantes `http(s)` ; les fichiers locaux sont rejetés d’emblée. |
|
||||
| Runway | Prend en charge les fichiers locaux via des URI de données. Le mode vidéo vers vidéo nécessite `runway/gen4_aleph`. Les exécutions texte uniquement exposent les ratios `16:9` et `9:16`. |
|
||||
| Together | Une seule image de référence uniquement. |
|
||||
| Vydra | Utilise directement `https://www.vydra.ai/api/v1` pour éviter les redirections qui suppriment l’authentification. `veo3` est groupé uniquement comme texte vers vidéo ; `kling` nécessite une URL d’image distante. |
|
||||
| xAI | Prend en charge les flux texte vers vidéo, image vers vidéo, ainsi que les flux distants d’édition/extension de vidéo. |
|
||||
|
||||
## Modes de capacité des fournisseurs
|
||||
|
||||
Le contrat partagé de génération vidéo permet désormais aux fournisseurs de déclarer des
|
||||
capacités spécifiques au mode au lieu de se limiter à des limites agrégées plates. Les nouvelles implémentations
|
||||
de fournisseur doivent privilégier des blocs de mode explicites :
|
||||
Le contrat partagé de génération de vidéos permet désormais aux fournisseurs de déclarer des capacités spécifiques à chaque mode, au lieu de se limiter à des limites agrégées à plat. Les nouvelles implémentations de fournisseurs doivent privilégier des blocs de mode explicites :
|
||||
|
||||
```typescript
|
||||
capabilities: {
|
||||
@ -280,15 +271,11 @@ capabilities: {
|
||||
}
|
||||
```
|
||||
|
||||
Les champs agrégés plats tels que `maxInputImages` et `maxInputVideos` ne
|
||||
suffisent pas à annoncer la prise en charge des modes de transformation. Les fournisseurs doivent déclarer
|
||||
explicitement `generate`, `imageToVideo` et `videoToVideo` afin que les tests directs,
|
||||
les tests de contrat et l’outil partagé `video_generate` puissent valider la prise en charge des modes
|
||||
de manière déterministe.
|
||||
Les champs agrégés à plat tels que `maxInputImages` et `maxInputVideos` ne suffisent pas à annoncer la prise en charge des modes de transformation. Les fournisseurs doivent déclarer explicitement `generate`, `imageToVideo` et `videoToVideo` afin que les tests en direct, les tests de contrat et l’outil partagé `video_generate` puissent valider la prise en charge des modes de manière déterministe.
|
||||
|
||||
## Tests en direct
|
||||
|
||||
Couverture en direct activable pour les fournisseurs intégrés partagés :
|
||||
Couverture en direct sur activation pour les fournisseurs groupés partagés :
|
||||
|
||||
```bash
|
||||
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
|
||||
@ -300,22 +287,19 @@ Wrapper du dépôt :
|
||||
pnpm test:live:media video
|
||||
```
|
||||
|
||||
Ce fichier direct charge les variables d’environnement manquantes des fournisseurs depuis `~/.profile`, privilégie
|
||||
par défaut les clés API directes/d’environnement par rapport aux profils d’authentification stockés, et exécute les
|
||||
modes déclarés qu’il peut tester en toute sécurité avec des médias locaux :
|
||||
Ce fichier de test en direct charge les variables d’environnement de fournisseur manquantes depuis `~/.profile`, privilégie par défaut les clés API live/env par rapport aux profils d’authentification stockés, et exécute les modes déclarés qu’il peut tester en toute sécurité avec des médias locaux :
|
||||
|
||||
- `generate` pour chaque fournisseur du balayage
|
||||
- `imageToVideo` lorsque `capabilities.imageToVideo.enabled`
|
||||
- `videoToVideo` lorsque `capabilities.videoToVideo.enabled` et que le fournisseur/modèle
|
||||
accepte une entrée vidéo locale adossée à un buffer dans le balayage partagé
|
||||
- `videoToVideo` lorsque `capabilities.videoToVideo.enabled` et que le fournisseur/modèle accepte une entrée vidéo locale adossée à un buffer dans le balayage partagé
|
||||
|
||||
Aujourd’hui, la voie directe partagée `videoToVideo` couvre :
|
||||
Aujourd’hui, la voie en direct partagée `videoToVideo` couvre :
|
||||
|
||||
- `runway` uniquement lorsque vous sélectionnez `runway/gen4_aleph`
|
||||
|
||||
## Configuration
|
||||
|
||||
Définissez le modèle de génération vidéo par défaut dans votre configuration OpenClaw :
|
||||
Définissez le modèle de génération de vidéos par défaut dans votre configuration OpenClaw :
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -339,7 +323,7 @@ openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2
|
||||
## Liens connexes
|
||||
|
||||
- [Vue d’ensemble des outils](/fr/tools)
|
||||
- [Tâches en arrière-plan](/fr/automation/tasks) -- suivi des tâches pour la génération vidéo asynchrone
|
||||
- [Tâches en arrière-plan](/fr/automation/tasks) -- suivi des tâches pour la génération asynchrone de vidéos
|
||||
- [Alibaba Model Studio](/fr/providers/alibaba)
|
||||
- [BytePlus](/fr/concepts/model-providers#byteplus-international)
|
||||
- [ComfyUI](/fr/providers/comfy)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user