

# Habilidades
<a name="harness-skills"></a>

 Las [habilidades de agente](https://strandsagents.com/docs/user-guide/concepts/plugins/skills/) son paquetes de anotaciones y scripts que proporcionan al agente conocimientos sobre el dominio bajo demanda. Cada habilidad sigue un [AgentSkills.io](https://agentskills.io/specification)estándar abierto: un `SKILL.md` archivo con instrucciones preliminares (nombre, descripción) y markdown en YAML, además de directorios y carpetas opcionales`scripts/`. `references/` `assets/`

Las habilidades se divulgan progresivamente: los metadatos se introducen en el sistema desde el principio (aproximadamente 100 fichas) y las instrucciones completas se cargan a pedido mediante una llamada a una herramienta. Esto evita inundar la ventana de contexto con instrucciones que el agente tal vez no necesite.

El arnés admite cuatro fuentes de habilidades:


| origen | Description (Descripción) | Cuándo se debe usar | 
| --- | --- | --- | 
|  ** AWS Habilidades**  | Pre-built habilidades para AWS los servicios del [kit de herramientas para AWS agentes](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills). Habilite con patrones globales. | Lo que necesita es una AWS experiencia práctica y sin necesidad de configuración. | 
|  **Git (HTTPS)**  | Clona una habilidad de cualquier repositorio Git público o privado. Soporta subdirectorios. | Quieres hacer referencia a las habilidades de GitHub GitLab, o de cualquier host de git, sin necesidad de subirlas a S3. | 
|  **Amazon S3**  | Obtén una habilidad de un bucket de S3 propiedad de un cliente mediante la función de ejecución. | Desea tener el control total sobre el control de versiones, el cifrado y el acceso. | 
|  **Ruta (sistema de archivos)**  | Haga referencia a una habilidad que ya esté presente en el sistema de archivos del arnés (integrada en la imagen del contenedor o instalada a través de ella). `InvokeAgentRuntimeCommand` | La habilidad forma parte de la imagen del contenedor o se instaló al inicio de la sesión. | 

Las habilidades se obtienen una vez por sesión en la primera invocación. En una sesión, las habilidades permanecen en el disco tras varias invocaciones. Cuando la máquina virtual caduca y se inicia una nueva sesión, las habilidades se vuelven a recuperar para garantizar su actualización.

Puede configurarlo `skills` como predeterminado en el arnés (mediante `CreateHarness` o`UpdateHarness`) o anularlo por invocación. Invoke-time las habilidades se añaden después de las habilidades de tiempo de creación; si ambas definen una habilidad con el mismo nombre, gana la versión de tiempo de invocación.

**nota**  
****Para añadir una habilidad a un arnés de forma interactiva, corre `agentcore` hasta abrir la TUI, selecciona **añadir**, elige **Arnés**, accede a la configuración avanzada y activa las habilidades.**** A continuación, el asistente solicitará la fuente de la habilidad. Consulte la pestaña **Interactiva** en [Git](#harness-skills-git) y [Amazon S3](#harness-skills-s3) a continuación para ver los pasos por fuente.

## AWS Habilidades
<a name="harness-aws-skills"></a>

 AWS las habilidades son habilidades prediseñadas que permiten a sus agentes interactuar con AWS los servicios. Se organizan jerárquicamente y se seleccionan mediante patrones globales. Vea su fuente en. [GitHub](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills)


| Categoría | Patrón | Habilidades típicas | 
| --- | --- | --- | 
| Habilidades básicas |  `core-skills/*`  | Operaciones de EC2, S3, Lambda, DynamoDB e IAM. CloudWatch | 
| Habilidades analíticas |  `specialized-skills/analytics-skills/*`  | Athena, Glue QuickSight, operaciones de lagos de datos. | 
| Habilidades operativas |  `specialized-skills/operations-skills/*`  | Solución de problemas, diagnóstico, análisis de registros. | 
| Habilidades de almacenamiento |  `specialized-skills/storage-skills/*`  | S3, EFS, FSx, operaciones de Backup. | 

### Habilite todas AWS Habilidades
<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": {}}]'
```
O en el momento de la invocación:  

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

### Habilite las habilidades por categoría
<a name="_enable_skills_by_category"></a>

Usa patrones globales para habilitar categorías de habilidades específicas:

**Example**  

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

### Habilita una sola habilidad específica
<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."}]}],
)
```

### Combina varios patrones
<a name="_combine_multiple_patterns"></a>

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

**nota**  
Las rutas deben ser relativas (sin `/` direcciones`..`). Se rechazan las rutas absolutas y el recorrido de las rutas.
Si un patrón global no coincide con ninguna habilidad, la invocación falla y se produce un error descriptivo.
Se fusionan varias `awsSkills` entradas de la misma carga útil.

## Habilidades de Git (HTTPS)
<a name="harness-skills-git"></a>

Clona una habilidad de cualquier repositorio Git público o privado. Admite subdirectorios dentro de monorepos mediante un proceso de pago disperso.

**Example**  
Repositorio público:  

```
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."}]}],
)
```
Repositorio privado (requiere un token de acceso personal almacenado en [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"
            },
        }
    }
]
```
Adjunta una habilidad de un repositorio Git público con`agentcore add skill`. Se usa `--git-path` para extraer una sola habilidad de un subdirectorio:  

```
agentcore add skill --harness my-harness \
  --git https://github.com/anthropics/skills \
  --git-path skills/docx
agentcore deploy
```
En el caso de un repositorio privado, `--credential` introduce el nombre de una credencial de clave de API de tu proyecto que contenga un token de acceso personal (`--username`es opcional, predeterminado`oauth2`):  

```
agentcore add skill --harness my-harness \
  --git https://github.com/my-org/internal-skills \
  --git-path excel \
  --credential my-github-pat
agentcore deploy
```
Elimine una habilidad `agentcore remove skill` utilizando los mismos indicadores de origen. Para anular las habilidades de una sola llamada sin cambiar el arnés, usa `agentcore invoke --skills <sources>` (rutas separadas por comas`s3://`, URI o URL de Git); la autenticación de `https://` Git no se admite en la anulación de invocación.
En la TUI, añada una habilidad de Git a un arnés mediante el asistente **Agregar** → **Arnés**.  

1. Ve a la **configuración avanzada**, ve a **Habilidades** y pulsa la barra **espaciadora** para activarla y, a continuación, pulsa **Entrar**.  
![Ajustes avanzados con las habilidades activadas](http://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/images/tui/harness-skills-01-advanced.png)

1. Selecciona **Git** como fuente de habilidades.  
![Tipo de fuente de habilidad: Path, S3 o Git](http://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/images/tui/harness-skills-02-source-type.png)

1. Introduce la URL del repositorio HTTPS. A continuación, el asistente solicita una ruta de subdirectorio opcional, una credencial opcional para los repositorios privados y un nombre de usuario opcional.  
![Introduce la URL del repositorio de Git](http://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/images/tui/harness-skills-05-git-url.png)
Confirme el asistente y, a continuación, ejecútelo `agentcore deploy` para aplicarlo.
+  `url`(obligatorio): URL HTTPS del repositorio de Git.
+  `path`(opcional): subdirectorio dentro del repositorio que contiene la habilidad. Si se omite, se utiliza la raíz del repositorio.
+  `auth.credentialArn`(opcional): ARN de un proveedor de credenciales de clave API que posea un token de acceso personal para repositorios privados.
+  `auth.username`(opcional): nombre de usuario de git, el valor predeterminado es. `oauth2`

La recuperación de Git debe completarse en 60 segundos. Si el repositorio requiere la salida de Internet, asegúrese de que su VPC tenga una puerta de enlace NAT (el mismo requisito que los servidores MCP remotos y las extracciones de contenedores personalizadas).

## Habilidades de Amazon S3
<a name="harness-skills-s3"></a>

Obtenga una habilidad de un bucket de S3 propiedad de un cliente. Utiliza las credenciales de la función de ejecución de arneses.

**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."}]}],
)
```
Adjunta una habilidad de S3 con`agentcore add skill --s3`:  

```
agentcore add skill --harness my-harness \
  --s3 s3://my-skills-bucket/skills/company-style/
agentcore deploy
```
La función de ejecución necesita `s3:GetObject` y `s3:ListBucket` está lista para usar. Consulte [Seguridad y controles de acceso](harness-security.md).
En la TUI, añada una habilidad S3 a un arnés mediante el asistente **Agregar** → **Arnés**. Ve a la **configuración avanzada**, activa **Skills** with **Space** y elige **S3** como fuente (consulta la pestaña [Git](#harness-skills-git) Interactive para ver los pasos compartidos).  

1. Introduce el URI de S3 del directorio de habilidades.  
![Introduzca el URI de S3 para la habilidad](http://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/images/tui/harness-skills-04-s3-uri.png)
Confirme el asistente y, `agentcore deploy` a continuación, ejecute la solicitud.
+  `uri`(obligatorio): URI de S3 que apunta al directorio de habilidades (por ejemplo,`s3://bucket/prefix/`).
+ El rol de ejecución debe tener `s3:GetObject` `s3:ListBucket` permisos en el bucket. Consulte [Seguridad y controles de acceso](harness-security.md).
+ Cada habilidad de S3 debe tener 1 GB o menos.
+ Las fuentes de S3 funcionan con los puntos finales de VPC de S3 (no se requiere una puerta de enlace NAT).

## Conocimientos sobre la ruta del sistema de archivos
<a name="harness-skills-path"></a>

Haga referencia a una habilidad que ya esté incluida en el sistema de archivos del arnés, integrada en la imagen del contenedor o instalada al inicio de la sesión mediante ella. `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."}]}],
)
```

### Hornea en el recipiente (imagen)
<a name="_bake_into_the_container_image"></a>

Incluye el directorio de habilidades en tu imagen personalizada:

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

### Instálelo al inicio de la sesión
<a name="_install_at_session_start"></a>

Úselo `InvokeAgentRuntimeCommand` antes de la primera invocación del agente:

```
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"
```

## Combine varias fuentes de habilidades
<a name="harness-skills-combine"></a>

Los cuatro tipos de fuentes pueden coexistir en una sola carga útil:

```
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."}]}],
)
```

## Gestión de errores
<a name="harness-skills-errors"></a>

Todos los errores de recuperación fallan en la invocación y se produce un error descriptivo. Las habilidades nunca se omiten silenciosamente.


| Failure | Mensaje de error | 
| --- | --- | 
| Acceso denegado a S3 |  `Failed to fetch skill: AccessDeniedException. Ensure execution role has s3:GetObject permission.`  | 
| No se ha encontrado el objeto S3 |  `Skill source not found: s3://…​`  | 
| El clon de Git falla (red) |  `Failed to clone skill: could not resolve host`  | 
| Autenticación de Git denegada |  `Failed to clone skill: authentication failed`  | 
| No se encontró la ruta de Git en el repositorio |  `Skill path 'x' not found in repository`  | 
| Tiempo de espera de Git (60 s) |  `Failed to clone skill: operation timed out after 60s`  | 
| La habilidad supera el límite de 1 GB |  `Skill exceeds 1GB size limit`  | 
|  AWS la trayectoria de habilidad no coincide con nada |  `AWS skill path 'x' matched no skills`  | 
| Recorrido de ruta () `..` |  `Invalid AWS skill path: must be a relative path without '..'`  | 
|  AWS falta el paquete de habilidades |  `AWS Skills are not available in this runtime (missing directory: /opt/amazon/skills)`  | 

### Temas relacionados
<a name="_related_topics"></a>
+  [Tools (Herramientas)](harness-tools.md)- conecte los servidores MCP, la puerta de enlace, el navegador y el intérprete de código
+  [Entorno y sistema de archivos](harness-environment.md)- imágenes de contenedores personalizadas y configuración del entorno
+  [Memoria](harness-memory.md)- mantener las conversaciones en todas las sesiones
+  [Seguridad y controles de acceso](harness-security.md)- políticas de roles de ejecución para fuentes de habilidades
+  [Documentación de la API](harness-get-started.md#api-documentation) 