

# Compétences
<a name="harness-skills"></a>

 Les [compétences des agents](https://strandsagents.com/docs/user-guide/concepts/plugins/skills/) sont des ensembles de markdown et de scripts qui fournissent à l'agent des connaissances du domaine à la demande. Chaque compétence suit le [AgentSkills.io](https://agentskills.io/specification)standard ouvert : un `SKILL.md` fichier avec une base YAML (nom, description) et des instructions de balisage, ainsi que des répertoires facultatifs`scripts/`. `references/` `assets/`

Les compétences utilisent la divulgation progressive : les métadonnées sont injectées dans l'invite du système dès le départ (environ 100 jetons), et les instructions complètes sont chargées à la demande via un appel d'outil. Cela évite d'inonder la fenêtre contextuelle d'instructions dont l'agent n'a peut-être pas besoin.

Le harnais prend en charge quatre sources de compétences :


| Source | Description | Quand l’utiliser | 
| --- | --- | --- | 
|  ** AWS Compétences**  | Pre-built compétences pour les AWS services de l'[AWS Agent Toolkit](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills). Activez avec des modèles globulaires. | Vous voulez une AWS expertise prête à l'emploi, sans aucune configuration. | 
|  **Git (HTTPS)**  | Clonez une compétence depuis n'importe quel dépôt Git public ou privé. Supporte les sous-répertoires. | Vous souhaitez référencer les compétences de GitHub ou de n'importe quel hôte git sans les télécharger vers S3. GitLab | 
|  **Amazon S3**  | Récupérez une compétence depuis un compartiment S3 appartenant au client à l'aide du rôle d'exécution. | Vous souhaitez avoir un contrôle total sur le contrôle des versions, le chiffrement et la gouvernance des accès. | 
|  **Chemin (système de fichiers)**  | Faites référence à une compétence déjà présente sur le système de fichiers du harnais (intégrée à l'image du conteneur ou installée via`InvokeAgentRuntimeCommand`). | La compétence fait partie de l'image de votre conteneur ou a été installée au début de la session. | 

Les compétences sont récupérées une fois par session lors de la première invocation. Au cours d'une session, les compétences persistent sur le disque après plusieurs invocations. Lorsque la machine virtuelle expire et qu'une nouvelle session démarre, les compétences sont récupérées à nouveau pour garantir leur fraîcheur.

Vous pouvez `skills` le définir par défaut sur le harnais (via `CreateHarness` ou`UpdateHarness`), ou le remplacer par appel. Invoke-time les compétences sont ajoutées après les compétences au moment de la création ; si les deux définissent une compétence portant le même nom, la version au moment de l'invocation gagne.

**Note**  
**Pour ajouter une compétence à un harnais de manière interactive, lancez le TUI `agentcore` pour ouvrir le TUI, sélectionnez **Ajouter**, choisissez **Harness**, passez aux **paramètres avancés** et activez Skills.** Le magicien demande ensuite la source de compétence. Consultez l'onglet **Interactif** sous [Git](#harness-skills-git) et [Amazon S3](#harness-skills-s3) ci-dessous pour les étapes par source.

## AWS Compétences
<a name="harness-aws-skills"></a>

 AWS les compétences sont des compétences prédéfinies qui permettent à vos agents d'interagir avec les AWS services. Ils sont organisés hiérarchiquement et sélectionnés via des modèles globaux. Consultez leur source sur [GitHub](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills).


| Catégorie | Modèle | Compétences typiques | 
| --- | --- | --- | 
| Compétences de base |  `core-skills/*`  | Opérations EC2, S3, Lambda, DynamoDB et CloudWatch IAM. | 
| Compétences analytiques |  `specialized-skills/analytics-skills/*`  | Athena, Glue, opérations sur QuickSight les lacs de données. | 
| Compétences opérationnelles |  `specialized-skills/operations-skills/*`  | Dépannage, diagnostic, analyse des journaux. | 
| Compétences en stockage |  `specialized-skills/storage-skills/*`  | S3, EFS, FSx, opérations de sauvegarde. | 

### Tout activer AWS compétences
<a name="enable_all_shared_aws_skills"></a>

**Example**  

```
aws bedrock-agentcore-control create-harness \
  --harness-name "MyHarness" \
  --execution-role-arn "${ROLE_ARN}" \
  --skills '[{"awsSkills": {}}]'
```
Ou au moment de l'invocation :  

```
response = client.invoke_harness(
    harnessArn=HARNESS_ARN,
    runtimeSessionId=SESSION_ID,
    skills=[{"awsSkills": {}}],
    messages=[{"role": "user", "content": [{"text": "List my EC2 instances and their status."}]}],
)
```

### Activez les compétences par catégorie
<a name="_enable_skills_by_category"></a>

Utilisez des modèles globaux pour activer des catégories de compétences spécifiques :

**Example**  

```
aws bedrock-agentcore-control create-harness \
  --harness-name "MyHarness" \
  --execution-role-arn "${ROLE_ARN}" \
  --skills '[{"awsSkills": {"paths": ["core-skills/*", "specialized-skills/operations-skills/*"]}}]'
```

### Activez une seule compétence spécifique
<a name="_enable_a_single_specific_skill"></a>

```
response = client.invoke_harness(
    harnessArn=HARNESS_ARN,
    runtimeSessionId=SESSION_ID,
    skills=[{"awsSkills": {"paths": ["core-skills/aws-cdk"]}}],
    messages=[{"role": "user", "content": [{"text": "Create a CDK stack for a Lambda function."}]}],
)
```

### Combinez plusieurs modèles
<a name="_combine_multiple_patterns"></a>

```
skills=[{"awsSkills": {"paths": ["core-skills/aws-cdk", "core-skills/aws-serverless", "specialized-skills/storage-skills/*"]}}]
```

**Note**  
Les chemins doivent être relatifs (pas de début `/` ou`..`). Les chemins absolus et la traversée des chemins sont rejetés.
Si un schéma global ne correspond à aucune compétence, l'invocation échoue avec une erreur descriptive.
Plusieurs `awsSkills` entrées d'une même charge utile sont fusionnées.

## Compétences Git (HTTPS)
<a name="harness-skills-git"></a>

Clonez une compétence depuis n'importe quel dépôt Git public ou privé. Supporte les sous-répertoires au sein de monorepos en utilisant Sparse Checkout.

**Example**  
Référentiel public :  

```
response = client.invoke_harness(
    harnessArn=HARNESS_ARN,
    runtimeSessionId=SESSION_ID,
    skills=[
        {"git": {"url": "https://github.com/anthropics/skills", "path": "skills/docx"}},
    ],
    messages=[{"role": "user", "content": [{"text": "Summarize the attached DOCX file."}]}],
)
```
Référentiel privé (nécessite un jeton d'accès personnel stocké dans [AgentCore Identity](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity.html)) :  

```
skills=[
    {
        "git": {
            "url": "https://github.com/my-org/internal-skills",
            "path": "excel",
            "auth": {
                "credentialArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-github-pat"
            },
        }
    }
]
```
Attachez une compétence depuis un dépôt Git public avec`agentcore add skill`. `--git-path`À utiliser pour extraire une seule compétence d'un sous-répertoire :  

```
agentcore add skill --harness my-harness \
  --git https://github.com/anthropics/skills \
  --git-path skills/docx
agentcore deploy
```
Pour un dépôt privé, transmettez `--credential` le nom d'une clé d'API de votre projet contenant un jeton d'accès personnel (`--username`facultatif, par défaut`oauth2`) :  

```
agentcore add skill --harness my-harness \
  --git https://github.com/my-org/internal-skills \
  --git-path excel \
  --credential my-github-pat
agentcore deploy
```
Supprimez une compétence en `agentcore remove skill` utilisant les mêmes indicateurs de source. Pour remplacer les compétences d'un seul appel sans modifier le harnais, utilisez `agentcore invoke --skills <sources>` (chemins séparés par des virgules`s3://`, URI ou URL Git) ; l'authentification `https://` Git n'est pas prise en charge lors de la substitution d'appel.
Dans le TUI, ajoutez une compétence Git à un harnais via l'assistant d'**ajout** → **Harness**.  

1. Passez aux **paramètres avancés**, passez à **Compétences**, appuyez sur **Espace pour l'**activer, puis appuyez sur **Entrée**.  
![Paramètres avancés avec compétences activées](http://docs.aws.amazon.com/fr_fr/bedrock-agentcore/latest/devguide/images/tui/harness-skills-01-advanced.png)

1. Sélectionnez **Git** comme source de compétences.  
![Type de source de compétence : Path, S3 ou Git](http://docs.aws.amazon.com/fr_fr/bedrock-agentcore/latest/devguide/images/tui/harness-skills-02-source-type.png)

1. Entrez l'URL du référentiel HTTPS. L'assistant demande ensuite un chemin de sous-répertoire facultatif, des informations d'identification facultatives pour les référentiels privés et un nom d'utilisateur facultatif.  
![Entrez l'URL du dépôt Git](http://docs.aws.amazon.com/fr_fr/bedrock-agentcore/latest/devguide/images/tui/harness-skills-05-git-url.png)
Confirmez l'assistant, puis exécutez `agentcore deploy` pour appliquer.
+  `url`(obligatoire) - URL HTTPS du dépôt Git.
+  `path`(facultatif) - sous-répertoire du dépôt contenant la compétence. En cas d'omission, la racine du dépôt est utilisée.
+  `auth.credentialArn`(facultatif) - ARN d'un fournisseur d'informations d'identification de clé d'API détenant un jeton d'accès personnel pour les dépôts privés.
+  `auth.username`(facultatif) - git username, la valeur par défaut est. `oauth2`

Git fetch doit être terminé dans les 60 secondes. Si le référentiel nécessite une sortie Internet, assurez-vous que votre VPC dispose d'une passerelle NAT (même exigence que les serveurs MCP distants et les extractions de conteneurs personnalisées).

## Compétences Amazon S3
<a name="harness-skills-s3"></a>

Récupérez une compétence dans un compartiment S3 appartenant au client. Utilise les informations d'identification du rôle d'exécution du harnais.

**Example**  

```
response = client.invoke_harness(
    harnessArn=HARNESS_ARN,
    runtimeSessionId=SESSION_ID,
    skills=[
        {"s3": {"uri": "s3://my-skills-bucket/skills/company-style/"}},
    ],
    messages=[{"role": "user", "content": [{"text": "Draft a summary following our style guide."}]}],
)
```
Associez une compétence issue de S3 avec `agentcore add skill --s3` :  

```
agentcore add skill --harness my-harness \
  --s3 s3://my-skills-bucket/skills/company-style/
agentcore deploy
```
Le rôle d'exécution a besoin `s3:GetObject` et `s3:ListBucket` se trouve dans le compartiment. Consultez [Sécurité et contrôles d'accès](harness-security.md).
Dans le TUI, ajoutez une compétence S3 à un harnais via l'assistant d'**ajout** → **Harnais**. Accédez aux **paramètres avancés**, activez **Skills** with **Space** et choisissez **S3** comme source (voir l'onglet [Git](#harness-skills-git) Interactive pour ces étapes partagées).  

1. Entrez l'URI S3 du répertoire de compétences.  
![Entrez l'URI S3 pour la compétence](http://docs.aws.amazon.com/fr_fr/bedrock-agentcore/latest/devguide/images/tui/harness-skills-04-s3-uri.png)
Confirmez l'assistant, puis exécutez `agentcore deploy` pour appliquer.
+  `uri`(obligatoire) - URI S3 pointant vers le répertoire des compétences (par exemple,`s3://bucket/prefix/`).
+ Le rôle d'exécution doit disposer `s3:GetObject` d'`s3:ListBucket`autorisations sur le compartiment. Consultez [Sécurité et contrôles d'accès](harness-security.md).
+ Chaque compétence S3 doit être inférieure ou égale à 1 Go.
+ Les sources S3 fonctionnent avec les points de terminaison VPC S3 (aucune passerelle NAT n'est requise).

## Compétences relatives aux chemins du système de fichiers
<a name="harness-skills-path"></a>

Référencez une compétence déjà présente sur le système de fichiers du harnais, intégrée à l'image du conteneur ou installée au démarrage de la session via`InvokeAgentRuntimeCommand`.

**Example**  

```
response = client.invoke_harness(
    harnessArn=HARNESS_ARN,
    runtimeSessionId=SESSION_ID,
    skills=[{"path": ".agents/skills/xlsx"}],
    messages=[{"role": "user", "content": [{"text": "Find errors in the Excel files."}]}],
)
```

### Faire cuire dans le récipient (image)
<a name="_bake_into_the_container_image"></a>

Incluez le répertoire des compétences dans votre image personnalisée :

```
COPY skills/xlsx .agents/skills/xlsx
```

### Installation au début de la session
<a name="_install_at_session_start"></a>

À utiliser `InvokeAgentRuntimeCommand` avant la première invocation de l'agent :

```
agentcore invoke --exec --harness my-agent --session-id "$SESSION" \
  "git clone --depth 1 https://github.com/anthropics/skills /tmp/skills && cp -r /tmp/skills/skills/xlsx .agents/skills/xlsx"
```

## Combinez plusieurs sources de compétences
<a name="harness-skills-combine"></a>

Les quatre types de sources peuvent coexister dans une même charge utile :

```
response = client.invoke_harness(
    harnessArn=HARNESS_ARN,
    runtimeSessionId=SESSION_ID,
    skills=[
        {"awsSkills": {"paths": ["core-skills/aws-cdk"]}},
        {"git": {"url": "https://github.com/anthropics/skills", "path": "skills/docx"}},
        {"s3": {"uri": "s3://my-bucket/skills/company-style/"}},
        {"path": ".agents/skills/xlsx"},
    ],
    messages=[{"role": "user", "content": [{"text": "Help me with this project."}]}],
)
```

## Gestion des erreurs
<a name="harness-skills-errors"></a>

Tous les échecs de récupération échouent à l'invocation avec une erreur descriptive. Les compétences ne sont jamais ignorées en silence.


| Échec | Message d’erreur | 
| --- | --- | 
| Accès S3 refusé |  `Failed to fetch skill: AccessDeniedException. Ensure execution role has s3:GetObject permission.`  | 
| Objet S3 introuvable |  `Skill source not found: s3://…​`  | 
| Le clone de Git échoue (réseau) |  `Failed to clone skill: could not resolve host`  | 
| Authentification Git refusée |  `Failed to clone skill: authentication failed`  | 
| Le chemin Git est introuvable dans le dépôt |  `Skill path 'x' not found in repository`  | 
| Délai d'expiration de Git (60 s) |  `Failed to clone skill: operation timed out after 60s`  | 
| La compétence dépasse la limite de 1 Go |  `Skill exceeds 1GB size limit`  | 
|  AWS le chemin de compétence ne correspond à rien |  `AWS skill path 'x' matched no skills`  | 
| Traversée du chemin () `..` |  `Invalid AWS skill path: must be a relative path without '..'`  | 
|  AWS bundle de compétences manquant |  `AWS Skills are not available in this runtime (missing directory: /opt/amazon/skills)`  | 

### Rubriques en relation
<a name="_related_topics"></a>
+  [Outils](harness-tools.md)- connectez les serveurs MCP, la passerelle, le navigateur et l'interpréteur de code
+  [Environnement et système de fichiers](harness-environment.md)- images de conteneurs personnalisées et configuration de l'environnement
+  [Mémoire](harness-memory.md)- poursuivre les conversations d'une session à l'autre
+  [Sécurité et contrôles d'accès](harness-security.md)- politiques relatives aux rôles d'exécution pour les sources de compétences
+  [Documentation sur les API](harness-get-started.md#api-documentation) 