Débogage des compétences

Après avoir écrit un Skill, vous rencontrez souvent des problèmes tels que « non déclenché », « erreur d'exécution » ou « sortie incorrecte ».

Cet article présente les approches et méthodes de base pour dépanner ces problèmes.


Trois types courants de problèmes de débogage

Type de problème Symptôme Vérification prioritaire
Non déclenché Claude n'utilise pas du tout le Skill formulation de la description, complexité de la tâche
Déclenché mais erreur d'exécution La compétence est lue, mais le script ne s'exécute pas Chemin du script, dépendances, format des paramètres
Déclenché et exécuté, mais le résultat ne correspond pas aux attentes Le contenu de sortie diffère des attentes Clarté des instructions dans SKILL.md

Problème de débogage 1 : Compétence non déclenchée

C'est le problème le plus courant. Les étapes de dépannage sont les suivantes :

Étape 1 : Confirmez que le fichier de compétence est chargé correctement

Exemple

# Vérifiez si la structure du répertoire de compétence est correcte
ls -la my-skill/

# Confirmer que SKILL.md existe et n'est pas vide
wc -l my-skill/SKILL.md
-rw-r--r-- 1 user user  842 May 18 10:00 SKILL.md

Étape 2 : Vérifier le format du frontmatter YAML

Un formatage incorrect du frontmatter peut empêcher la compétence d'être reconnue.

---
name: my-skill
description: 这是一个示例 Skill,处理用户上传的文本文件。
---

# My Skill
...

frontmatter doit---commencer et se terminer par,nameetdescriptionLes noms de champs ne doivent pas contenir d'espaces supplémentaires, et il doit y avoir un espace après le deux-points.

Étape 3 : Utiliser des prompts de test plus complexes

Les tâches simples (comme « lire ce fichier ») peuvent ne pas déclencher la compétence.

Remplacez le prompt de test par une requête complexe comportant plusieurs étapes et des exigences claires de format de sortie.

Prompts moins susceptibles de déclencher Prompts plus susceptibles de déclencher
"Analyser ce fichier" "Analysez ce fichier CSV de données de ventes, identifiez les tendances de croissance mensuelles et générez un tableau récapitulatif statistique"
"Générer un PPT" "À partir de ce rapport, créez une présentation d'introduction produit de 10 pages avec des graphiques et un résumé"

Problème de débogage 2 : Erreurs d'exécution de script

Lorsqu'un script échoue, le message d'erreur apparaît dans la sortie de la ligne de commande.

Dans une session Claude, vous pouvez demander directement à Claude d'exécuter le script et d'afficher la sortie :

Exemple

# Exécuter le script manuellement et vérifier la sortie d'erreur
python scripts/process.py /mnt/user-data/uploads/test.csv

# Ajouter le paramètre -v (verbose) pour afficher les journaux détaillés (si le script le prend en charge)
python scripts/process.py /mnt/user-data/uploads/test.csv --verbose

Types d'erreurs courantes et corrections

Message d'erreur Cause Corriger
ModuleNotFoundError: No module named 'pandas' Dépendance non installée Exécutezpip install pandas --break-system-packages
FileNotFoundError: [Errno 2] Chemin de fichier incorrect Vérifiez si le fichier se trouve dans/mnt/user-data/uploads/
PermissionError: [Errno 13] Aucune permission d'écriture Modifiez la cible de sortie vers/mnt/user-data/outputs/
SyntaxError Erreur de syntaxe du script usepython -m py_compile 脚本名.pyVérifier

Vérification rapide de la syntaxe

Exemple

# Vérifier la syntaxe d'un script Python (ne l'exécute pas, valide uniquement la syntaxe)
python -m py_compile scripts/process.py && echo "La syntaxe est correcte" || echo "Erreur de syntaxe"

# Vérifier la syntaxe d'un script Shell
bash -n scripts/run.sh && echo "La syntaxe est correcte" || echo "Erreur de syntaxe"
Grammatically correct.

Problème de débogage 3 : la sortie ne correspond pas aux attentes

Ce type de problème provient généralement d'instructions peu claires ou ambiguës dans SKILL.md.

Méthode de dépannage : isoler le problème étape par étape

Ajoutez temporairement des instructions de sortie de débogage à SKILL.md pour observer la compréhension de Claude à chaque étape :

## 调试模式(开发时使用,发布前删除)

执行前,先输出以下信息供确认:
1. 识别到的输入文件路径
2. 用户期望的输出格式
3. 计划执行的步骤列表

等待用户确认后再继续执行。

Problèmes courants d'ambiguïté des instructions

Formulation vague Formulation claire
"Affichez les résultats une fois le traitement terminé" "Enregistrez les résultats dans le répertoire /mnt/user-data/outputs/ et affichez le chemin du fichier dans la conversation"
"Analysez les données" "Calculez la moyenne, la médiane et l'écart type de chaque colonne, puis affichez-les dans un tableau au format Markdown"
"Générez un rapport" "Générer un fichier HTML contenant un paragraphe de résumé, un tableau de données et une conclusion, et l'enregistrer dans le répertoire de sortie"

Utilisation de print pour le débogage dans le script

Ajouter des instructions print à des points clés du script est le moyen le plus direct de résoudre les problèmes de flux d'exécution.

Exemple

# Chemin du fichier : scripts/debug_example.py
import sys

def process_file(file_path: str):
    print(f"[DEBUG] Début du traitement du fichier : {file_path}")  # Point de débogage 1

    with open(file_path, "r", encoding="utf-8") as f:
        content = f.read()

    print(f"[DEBUG] Fichier lu avec succès, taille : {len(content)} bytes")  # Point de débogage 2

    lines = content.split("\n")
    print(f"[DEBUG] Nombre total de lignes : {len(lines)}")  # Point de débogage 3

    # Logique de traitement réelle
    result = [line.strip() for line in lines if line.strip()]
    print(f"[DEBUG] Lignes valides après traitement : {len(result)}")  # Point de débogage 4

    return result

if __name__ == "__main__":
    output = process_file(sys.argv[1])
    print("\n"--- Résultat du traitement ---")
    for line in output[:5]:  # Afficher uniquement les 5 premières lignes
        print(line)
[DEBUG] 开始处理文件:/mnt/user-data/uploads/sample.txt
[DEBUG] 文件读取成功,大小:1024 字节
[DEBUG] 总行数:32
[DEBUG] 处理后有效行数:28

--- 处理结果 ---
第一行内容
第二行内容
...

Une fois le débogage terminé, n'oubliez pas de supprimer[DEBUG]les instructions print commençant par [DEBUG], afin d'éviter que les informations de débogage ne soient mélangées à la sortie formelle.

Autres extensions