# Ce que SkillKit vous offre

> Choisir un outil SkillKit selon votre objectif, de ce que la compétence doit faire à l'appel qui le fait et à la page qui l'explique.

Source: https://docs.thalovant.com/fr/developers/skillkit-capabilities/

---
{/* Last Edit: Codex - 2026-10-05 - Motive: Align the French SkillKit guides with the tested 0.24.2 tutorial and public helpers. */}

SkillKit est une petite bibliothèque qui permet d'écrire des compétences Thalovant sans recopier la plomberie dont chaque compétence a besoin. OVOS reste responsable de l'acheminement des intentions, de la parole, des sessions et de la planification; SkillKit fournit à votre code les pièces qui les entourent. Cette page sert de carte. Choisissez ce que vous voulez faire : elle nomme l'outil et la page qui le montre en action.

## Répondre

| Vous voulez | Utilisez | Montré dans |
| --- | --- | --- |
| Répondre à une commande parlée | `ThalovantSkill` avec `@intent_handler` et un fichier `.intent` | [Choisir la bonne classe de base](/fr/developers/writing-a-skill/#choisir-la-bonne-classe-de-base) |
| Répondre sur un sujet que rien d'autre n'a revendiqué | `ThalovantFallbackSkill` avec `can_answer`, `reply` et `FALLBACK_PRIORITY` | [Choisir une priorité de repli](/fr/developers/writing-a-skill/#choisir-une-priorité-de-repli) |
| Poursuivre une conversation | `ThalovantConversationalSkill` avec `can_converse` et `converse` | [Leçon 3 du quiz](/fr/developers/skillkit-tutorial/#leçon-3--créer-le-jeu) |
| Faire les deux, ou faire jouer des médias | `ThalovantConversationalFallbackSkill`, `ThalovantCommonPlaySkill` | [Choisir la bonne classe de base](/fr/developers/writing-a-skill/#choisir-la-bonne-classe-de-base) |
| Parler à la pièce qui a demandé, dans sa langue | `self.speak_to(message, text)` | [Leçon 2 du quiz](/fr/developers/skillkit-tutorial/#leçon-2--lui-donner-deux-langues) |
| Afficher une réponse sans la prononcer | `preview_reply` | [Leçon 1 du quiz](/fr/developers/skillkit-tutorial/#leçon-1--le-faire-parler) |

## Comprendre ce qui a été dit

| Vous voulez | Utilisez | Montré dans |
| --- | --- | --- |
| Lire les mots, la langue ou la localisation | `self.utterance`, `self.lang_of`, `self.location_of` | [Ce que vous pouvez appeler](/fr/developers/writing-a-skill/#ce-que-vous-pouvez-appeler) |
| Reconnaître un mot-clé que les gens fléchissent (« logs », « logging ») | `self.mentions`, `self.mentioned_term` | [Ce que vous pouvez appeler](/fr/developers/writing-a-skill/#ce-que-vous-pouvez-appeler) |
| Comparer une phrase entière à un fichier d'intention | `locale_resources.matches_literal_intent` | [Leçon 2 du quiz](/fr/developers/skillkit-tutorial/#leçon-2--lui-donner-deux-langues) |
| Lire les autres transcriptions | `message.utterances` | [Lire les autres transcriptions](/fr/developers/writing-a-skill/#lire-les-autres-transcriptions) |
| Écrire des phrases facultatives et des emplacements | Gabarits `.intent` et `thalovant-skillkit check` | [Écrire des intentions](/fr/developers/writing-a-skill/#écrire-des-intentions-lisibles-par-ovos) |
| Comparer du texte comme on compare les fichiers de vocabulaire | `fold`, `fold_words`, `strip_accents` | [Ce que vous pouvez appeler](/fr/developers/writing-a-skill/#ce-que-vous-pouvez-appeler) |

## Le dire avec les bons mots

| Vous voulez | Utilisez | Montré dans |
| --- | --- | --- |
| Choisir une ligne traduite, avec des espaces réservés | `self.dialog("name", lang, data)` | [Leçon 2 du quiz](/fr/developers/skillkit-tutorial/#leçon-2--lui-donner-deux-langues) |
| Ajouter des pauses ou guider la prononciation | `self.dialog`, fichiers jumeaux `.ssml`, `ssml.say`, `ssml.digits` | [Ajouter des pauses](/fr/developers/writing-a-skill/#ajouter-des-pauses-et-guider-la-prononciation) |
| Varier les réponses sans répétition | `self.speak_varied_dialog` | [Trouver les sons une fois](/fr/developers/skillkit-runtime/#trouver-les-sons-une-fois-puis-choisir-vite) |
| Servir une variante régionale sans deuxième traduction | `locale/regional.json` et `thalovant-skillkit locales --write` | [Prendre en charge les variantes régionales](/fr/developers/writing-a-skill/#prendre-en-charge-les-variantes-régionales) |
| Dire une date, une heure ou une durée pour l'oreille et pour un écran | `moments.date_text`, `time_text`, `duration_text`, `speak_with_written` | [Dire une date ou une heure des deux façons](/fr/developers/writing-a-skill/#dire-une-date-ou-une-heure-des-deux-façons) |
| Lire un réglage de la compétence de façon sûre | `self.setting("key", default)` | [Ce que vous pouvez appeler](/fr/developers/writing-a-skill/#ce-que-vous-pouvez-appeler) |

## Mémoriser et récupérer

| Vous voulez | Utilisez | Montré dans |
| --- | --- | --- |
| Garder une partie ou un état par joueur | `SessionStateStore` | [Garder une partie par joueur](/fr/developers/skillkit-runtime/#garder-une-partie-par-joueur) |
| Appeler un service Web avec un budget de temps | `JsonServiceClient`, `RequestBudget` | [Donner un budget de temps au travail en ligne](/fr/developers/skillkit-runtime/#donner-un-budget-de-temps-au-travail-en-ligne) |
| Interroger le service de connaissances Thalovant | `knowledge.knowledge_reply` | [Interroger le service de connaissances](/fr/developers/writing-a-skill/#interroger-le-service-de-connaissances) |
| Livrer de nombreux sons et choisir sans répétition | `bundled_files`, `ShuffleBagPool` | [Trouver les sons une fois](/fr/developers/skillkit-runtime/#trouver-les-sons-une-fois-puis-choisir-vite) |
| Actualiser un catalogue en arrière-plan | `PeriodicWorker` | [Actualiser loin de la réponse](/fr/developers/skillkit-runtime/#actualiser-loin-de-la-réponse) |
| Garder un état partagé facultatif dans Redis ou PostgreSQL | `JsonStateStore` | [Sauvegarder l'état sans recopier le code du serveur de stockage](/fr/developers/skillkit-runtime/#sauvegarder-létat-sans-recopier-le-code-du-serveur-de-stockage) |
| Récupérer votre propre réponse sur un sujet de bus partagé | `bus.wait_for_response` | [Rendre les réponses du bus partagé à leur demandeur](/fr/developers/writing-a-skill/#rendre-les-réponses-du-bus-partagé-à-leur-demandeur) |

## Tester et livrer

| Vous voulez | Utilisez | Montré dans |
| --- | --- | --- |
| Tester sans assistant en cours d’exécution | `testing.message`, `testing.FakeBus`, `preview_reply` | [Le tester](/fr/developers/writing-a-skill/#le-tester) |
| Tester avec le vrai bus OVOS | `skill_harness`, `managed_minicroft`, `capture_turn` | [Solliciter le vrai bus OVOS](/fr/developers/writing-a-skill/#solliciter-le-vrai-bus-ovos) |
| Démarrer un projet | `thalovant-skillkit new` | [Partir d'une compétence fonctionnelle](/fr/developers/writing-a-skill/#partir-dune-compétence-fonctionnelle) |
| Vérifier les ressources, et qu'aucune autre compétence ne revendique vos phrases | `thalovant-skillkit check` | [Le livrer](/fr/developers/skillkit-tutorial/#le-publier) |
| Vérifier que le paquet construit contient ses fichiers | `thalovant-skillkit check-artifacts` | [Vérifier ce que vous avez construit](/fr/developers/writing-a-skill/#vérifier-ce-que-vous-avez-construit) |

## Ce que SkillKit laisse à OVOS

Reconnaître à quelle compétence appartient une phrase, transformer du texte en parole, maintenir une session active et exécuter les minuteries et les alarmes sont les tâches d'OVOS. `self.speak`, `self.speak_dialog`, `self.play_audio`, les décorateurs d'intentions et le planificateur continuent tous de fonctionner exactement comme dans n'importe quelle compétence OVOS.

La [référence SkillKit](https://github.com/thalovant/thalovant-skillkit/blob/main/docs/reference.md) donne chaque signature et chaque valeur de retour.
