

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

 As [habilidades do agente](https://strandsagents.com/docs/user-guide/concepts/plugins/skills/) são pacotes de markdown e scripts que fornecem ao agente conhecimento de domínio sob demanda. Cada habilidade segue o [AgentSkills.io](https://agentskills.io/specification)padrão aberto: um `SKILL.md` arquivo com o frontmatter YAML (nome, descrição) e instruções de markdown, além de diretórios opcionais `scripts/` e. `references/` `assets/`

As habilidades usam a divulgação progressiva: os metadados são injetados antecipadamente no prompt do sistema (aproximadamente 100 tokens) e as instruções completas são carregadas sob demanda por meio de uma chamada de ferramenta. Isso evita inundar a janela de contexto com instruções que o agente talvez não precise.

O arnês suporta quatro fontes de habilidades:


| Fonte | Description | Quando usar | 
| --- | --- | --- | 
|  ** AWS Habilidades**  | Pre-built habilidades para AWS serviços do [AWS Agent Toolkit](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills). Habilite com padrões globais. | Você quer AWS experiência pronta com configuração zero. | 
|  **Git (HTTPS)**  | Clone uma habilidade de qualquer repositório Git público ou privado. Suporta subdiretórios. | Você deseja referenciar habilidades de GitHub, GitLab, ou de qualquer host git sem fazer o upload para o S3. | 
|  **Amazon S3**  | Obtenha uma habilidade de um bucket S3 de propriedade do cliente usando a função de execução. | Você quer controle total sobre controle de versão, criptografia e governança de acesso. | 
|  **Caminho (sistema de arquivos)**  | Faça referência a uma habilidade já presente no sistema de arquivos harness (incorporada à imagem do contêiner ou instalada via). `InvokeAgentRuntimeCommand` | A habilidade faz parte da imagem do seu contêiner ou foi instalada no início da sessão. | 

As habilidades são obtidas uma vez por sessão na primeira invocação. Em uma sessão, as habilidades persistem no disco em várias invocações. Quando a VM expira e uma nova sessão é iniciada, as habilidades são recuperadas para garantir a atualização.

Você pode definir `skills` como padrão o chicote (via `CreateHarness` ou`UpdateHarness`) ou substituir por invocação. Invoke-time as habilidades são acrescentadas após as habilidades de criação; se ambas definirem uma habilidade com o mesmo nome, a versão de tempo de invocação vencerá.

**nota**  
**Para adicionar uma habilidade a um arnês de forma interativa, execute `agentcore` para abrir o TUI, selecione **adicionar**, escolha **Arnês**, avance para **as configurações avançadas** e ative Habilidades.** O assistente então solicita a fonte da habilidade. Consulte a guia **Interativo** em [Git](#harness-skills-git) e [Amazon S3](#harness-skills-s3) abaixo para ver as etapas por fonte.

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

 AWS habilidades são habilidades pré-criadas que permitem que seus agentes interajam com os AWS serviços. Eles são organizados hierarquicamente e selecionados por meio de padrões globais. Veja sua fonte em [GitHub](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills).


| Categoria | Padrão | Habilidades típicas | 
| --- | --- | --- | 
| Habilidades essenciais |  `core-skills/*`  | Operações do EC2, S3, Lambda, DynamoDB, IAM. CloudWatch | 
| Habilidades analíticas |  `specialized-skills/analytics-skills/*`  | Athena, Glue QuickSight, operações de data lake. | 
| Habilidades operacionais |  `specialized-skills/operations-skills/*`  | Solução de problemas, diagnósticos, análise de registros. | 
| Habilidades de armazenamento |  `specialized-skills/storage-skills/*`  | S3, EFS, FSx, operações de backup. | 

### Habilitar tudo 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": {}}]'
```
Ou no momento da invocação:  

```
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 habilidades por categoria
<a name="_enable_skills_by_category"></a>

Use padrões globais para habilitar categorias 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/*"]}}]'
```

### Habilite uma única habilidade 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."}]}],
)
```

### Combine vários padrões
<a name="_combine_multiple_patterns"></a>

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

**nota**  
Os caminhos devem ser relativos (sem início `/` ou`..`). Os caminhos absolutos e a travessia de caminhos são rejeitados.
Se um padrão global não corresponder a nenhuma habilidade, a invocação falhará com um erro descritivo.
Várias `awsSkills` entradas na mesma carga útil são mescladas.

## Competências em Git (HTTPS)
<a name="harness-skills-git"></a>

Clone uma habilidade de qualquer repositório Git público ou privado. Suporta subdiretórios em monorepos usando checkout esparso.

**Example**  
Repositório 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."}]}],
)
```
Repositório privado (requer um token de acesso pessoal armazenado no [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"
            },
        }
    }
]
```
Anexe uma habilidade de um repositório Git público com. `agentcore add skill` Use `--git-path` para extrair uma única habilidade de um subdiretório:  

```
agentcore add skill --harness my-harness \
  --git https://github.com/anthropics/skills \
  --git-path skills/docx
agentcore deploy
```
Para um repositório privado, passe `--credential` com o nome de uma credencial de chave de API em seu projeto que contém um token de acesso pessoal (`--username`é opcional, padrão`oauth2`):  

```
agentcore add skill --harness my-harness \
  --git https://github.com/my-org/internal-skills \
  --git-path excel \
  --credential my-github-pat
agentcore deploy
```
Remova uma habilidade `agentcore remove skill` usando as mesmas bandeiras de origem. Para substituir as habilidades de uma única chamada sem alterar o equipamento, use `agentcore invoke --skills <sources>` (caminhos separados por vírgula, URIs ou URLs do Git); a autenticação do `https://` Git não `s3://` é suportada na substituição de invocação.
****Na TUI, adicione uma habilidade Git a um arnês por meio do assistente de adição → Arnês.****  

1. Avance para **Configurações avançadas**, vá até **Habilidades**, pressione **Espaço** para ativá-la e pressione **Enter**.  
![Configurações avançadas com o Skills ativado](http://docs.aws.amazon.com/pt_br/bedrock-agentcore/latest/devguide/images/tui/harness-skills-01-advanced.png)

1. Selecione **Git como fonte** de habilidades.  
![Tipo de fonte de habilidade: Path, S3 ou Git](http://docs.aws.amazon.com/pt_br/bedrock-agentcore/latest/devguide/images/tui/harness-skills-02-source-type.png)

1. Insira o URL do repositório HTTPS. Em seguida, o assistente solicita um caminho de subdiretório opcional, uma credencial opcional para repositórios privados e um nome de usuário opcional.  
![Insira a URL do repositório Git](http://docs.aws.amazon.com/pt_br/bedrock-agentcore/latest/devguide/images/tui/harness-skills-05-git-url.png)
Confirme o assistente e, em seguida, execute `agentcore deploy` para se inscrever.
+  `url`(obrigatório) - URL HTTPS do repositório Git.
+  `path`(opcional) - subdiretório dentro do repositório que contém a habilidade. Se for omitida, a raiz do repositório será usada.
+  `auth.credentialArn`(opcional) - ARN de um provedor de credenciais de chave de API com um token de acesso pessoal para repositórios privados.
+  `auth.username`(opcional) - nome de usuário do git, o padrão é. `oauth2`

O Git fetch deve ser concluído em 60 segundos. Se o repositório exigir saída da Internet, certifique-se de que sua VPC tenha um gateway NAT (o mesmo requisito dos servidores MCP remotos e das retiradas personalizadas de contêineres).

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

Obtenha uma habilidade em um bucket S3 de propriedade do cliente. Usa as credenciais da função de execução do harness.

**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."}]}],
)
```
Anexe uma habilidade do S3 com`agentcore add skill --s3`:  

```
agentcore add skill --harness my-harness \
  --s3 s3://my-skills-bucket/skills/company-style/
agentcore deploy
```
As necessidades da função de execução `s3:GetObject` e `s3:ListBucket` no bucket. Consulte [Segurança e controles de acesso](harness-security.md).
**No TUI, adicione uma habilidade S3 a um arnês por meio do assistente de **adição** → Arnês.** Vá para **as configurações avançadas**, ative o **Skills** with **Space** e escolha o **S3** como fonte (consulte a guia [Git](#harness-skills-git) Interactive para ver as etapas compartilhadas).  

1. Insira o URI do S3 do diretório de habilidades.  
![Insira o URI do S3 para a habilidade](http://docs.aws.amazon.com/pt_br/bedrock-agentcore/latest/devguide/images/tui/harness-skills-04-s3-uri.png)
Confirme o assistente e, em seguida, execute `agentcore deploy` para se inscrever.
+  `uri`(obrigatório) - URI do S3 apontando para o diretório de habilidades (por exemplo,`s3://bucket/prefix/`).
+ A função de execução deve ter `s3:ListBucket` permissões `s3:GetObject` e permissões no bucket. Consulte [Segurança e controles de acesso](harness-security.md).
+ Cada habilidade do S3 deve ter 1 GB ou menos.
+ As fontes do S3 funcionam com endpoints VPC do S3 (não é necessário um gateway NAT).

## Habilidades de caminho do sistema de arquivos
<a name="harness-skills-path"></a>

Faça referência a uma habilidade que já está no sistema de arquivos harness - incorporada à imagem do contêiner ou instalada no início da sessão 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."}]}],
)
```

### Asse na imagem do recipiente
<a name="_bake_into_the_container_image"></a>

Inclua o diretório de habilidades em sua imagem personalizada:

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

### Instalar no início da sessão
<a name="_install_at_session_start"></a>

Use `InvokeAgentRuntimeCommand` antes da primeira invocação do 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 várias fontes de habilidades
<a name="harness-skills-combine"></a>

Todos os quatro tipos de fonte podem coexistir em uma única 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."}]}],
)
```

## Tratamento de erros
<a name="harness-skills-errors"></a>

Todas as falhas de busca falham na invocação com um erro descritivo. As habilidades nunca são ignoradas silenciosamente.


| Falha | Mensagem de erro | 
| --- | --- | 
| Acesso negado ao S3 |  `Failed to fetch skill: AccessDeniedException. Ensure execution role has s3:GetObject permission.`  | 
| Objeto do S3 não encontrado |  `Skill source not found: s3://…​`  | 
| Falha no clone do Git (rede) |  `Failed to clone skill: could not resolve host`  | 
| Autenticação do Git negada |  `Failed to clone skill: authentication failed`  | 
| Caminho Git não encontrado no repositório |  `Skill path 'x' not found in repository`  | 
| Tempo limite do Git (60s) |  `Failed to clone skill: operation timed out after 60s`  | 
| A habilidade excede o limite de 1 GB |  `Skill exceeds 1GB size limit`  | 
|  AWS o caminho de habilidade não corresponde a nada |  `AWS skill path 'x' matched no skills`  | 
| Percurso percorrido () `..` |  `Invalid AWS skill path: must be a relative path without '..'`  | 
|  AWS pacote de habilidades ausente |  `AWS Skills are not available in this runtime (missing directory: /opt/amazon/skills)`  | 

### Tópicos relacionados
<a name="_related_topics"></a>
+  [Ferramentas](harness-tools.md)- conecte servidores MCP, gateway, navegador e interpretador de código
+  [Ambiente e sistema de arquivos](harness-environment.md)- imagens de contêiner personalizadas e configuração do ambiente
+  [Memória](harness-memory.md)- mantenha as conversas em todas as sessões
+  [Segurança e controles de acesso](harness-security.md)- políticas de funções de execução para fontes de habilidades
+  [Documentação de API](harness-get-started.md#api-documentation) 