Aller au contenu principal

createSkill()

Crée un Skill inline qui peut être transmis directement à la configuration skills d’un Agent, sans système de fichiers ni Workspace.

L’objet renvoyé implémente l’interface Skill et fonctionne partout où un Skill découvert dans le système de fichiers peut être utilisé.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

src/mastra/skills.ts
import { createSkill } from '@mastra/core/skills'

const reviewSkill = createSkill({
name: 'code-review',
description: 'Use when reviewing code changes.',
instructions: `
When reviewing code:
1. Check for correctness
2. Check for style consistency
3. Look for potential bugs
`,
references: {
'checklist.md': '# Review Checklist\n- No unused imports\n- Error handling present',
},
})

Paramètres
Lien direct vers Paramètres

name:

string
Nom unique du Skill. Utilisé comme identifiant lorsque les Agents activent le Skill. Doit être un slug valide, en minuscules et pouvant contenir des traits d’union.

description:

string
Courte description affichée à l’Agent dans le message système. Aide l’Agent à déterminer quand utiliser le Skill.

instructions:

string
Instructions complètes du Skill au format Markdown. Chargées dans la conversation lorsque l’Agent active le Skill.

references?:

Record<string, string>
Documents complémentaires que l’Agent peut lire avec le Tool skill_read. Les clés sont les noms de fichiers et les valeurs correspondent au contenu des fichiers.

license?:

string
Identifiant de licence SPDX du Skill.

compatibility?:

unknown
Exigences de compatibilité. La spécification Agent Skills laisse ce format libre : il peut s’agir d’un tableau de chaînes, d’un objet ou de toute structure attendue par vos outils.

user-invocable?:

boolean
Indique si les utilisateurs finaux peuvent appeler directement ce Skill. La valeur par défaut est undefined et laisse l’Agent décider.

metadata?:

Record<string, unknown>
Métadonnées arbitraires associées au Skill.

Valeur renvoyée
Lien direct vers Valeur renvoyée

Renvoie un objet InlineSkill qui implémente l’interface Skill :

interface InlineSkill extends Skill {
__inline: true
__referenceContents: Record<string, string>
}

Le Skill reçoit un chemin synthétique de la forme inline/<name>, par exemple inline/code-review.

Validation
Lien direct vers Validation

createSkill() valide les entrées selon les mêmes règles que les Skills du système de fichiers :

  • name est requis et doit être un slug valide
  • description est requis
  • instructions est requis et ne doit pas être vide

Si la validation échoue, une Error est levée avec des informations sur les champs non valides.

// Throws: Invalid skill "": name is required
createSkill({ name: '', description: 'test', instructions: 'test' })