

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

 [Keterampilan Agen](https://strandsagents.com/docs/user-guide/concepts/plugins/skills/) adalah bundel penurunan harga dan skrip yang memberikan pengetahuan domain agen sesuai permintaan. Setiap keterampilan mengikuti [AgentSkills.io](https://agentskills.io/specification)standar terbuka: `SKILL.md` file dengan frontmatter YAMM (nama, deskripsi) dan instruksi penurunan harga, ditambah opsional`scripts/`,, dan direktori. `references/` `assets/`

Keterampilan menggunakan pengungkapan progresif: metadata disuntikkan ke prompt sistem di muka (\~ 100 token), dan instruksi lengkap dimuat sesuai permintaan melalui panggilan alat. Ini menghindari membanjiri jendela konteks dengan instruksi yang mungkin tidak diperlukan agen.

Harness mendukung empat sumber keterampilan:


| Sumber | Deskripsi | Kapan harus digunakan | 
| --- | --- | --- | 
|  ** AWS Keterampilan**  | Pre-built keterampilan untuk AWS layanan dari [AWS Agen Toolkit](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills). Aktifkan dengan pola glob. | Anda menginginkan AWS keahlian siap pakai dengan pengaturan nol. | 
|  **Git (HTTPS)**  | Mengkloning keterampilan dari repositori Git publik atau pribadi apa pun. Mendukung subdirektori. | Anda ingin mereferensikan keterampilan dari GitHub, GitLab, atau host git apa pun tanpa mengunggah ke S3. | 
|  **Amazon S3**  | Ambil skill dari bucket S3 milik pelanggan menggunakan peran eksekusi. | Anda ingin kontrol penuh atas pembuatan versi, enkripsi, dan tata kelola akses. | 
|  **Jalur (sistem file)**  | Referensi keterampilan yang sudah ada pada sistem file harness (dipanggang ke dalam gambar wadah atau diinstal melalui). `InvokeAgentRuntimeCommand` | Keterampilan adalah bagian dari gambar kontainer Anda atau diinstal pada awal sesi. | 

Keterampilan diambil sekali per sesi pada doa pertama. Dalam satu sesi, keterampilan bertahan pada disk di beberapa pemanggilan. Ketika VM berakhir dan sesi baru dimulai, keterampilan diambil kembali untuk menjamin kesegaran.

Anda dapat mengatur `skills` sebagai default pada harness (via `CreateHarness` atau`UpdateHarness`), atau mengganti per pemanggilan. Invoke-time keterampilan ditambahkan setelah keterampilan create-time; jika keduanya mendefinisikan keterampilan dengan nama yang sama, versi waktu-panggilan menang.

**catatan**  
**Untuk menambahkan keterampilan ke harness secara interaktif, jalankan `agentcore` untuk membuka TUI, pilih **tambahkan**, pilih **Harness**, maju ke **pengaturan Lanjutan**, dan aktifkan Keterampilan.** Wizard kemudian meminta sumber keterampilan. Lihat tab **Interaktif** di bawah [Git](#harness-skills-git) dan [Amazon S3](#harness-skills-s3) di bawah ini untuk langkah-langkah per sumber.

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

 AWS Keterampilan adalah keterampilan pra-bangun yang memungkinkan agen Anda untuk berinteraksi dengan AWS layanan. Mereka diatur secara hierarkis dan dipilih melalui pola glob. Lihat sumbernya di [GitHub](https://github.com/aws/agent-toolkit-for-aws/tree/main/skills).


| Kategori | Pola | Keterampilan khas | 
| --- | --- | --- | 
| Keterampilan inti |  `core-skills/*`  | EC2, S3, Lambda, DynamoDB,, operasi IAM. CloudWatch | 
| Keterampilan analitik |  `specialized-skills/analytics-skills/*`  | Athena, Glue, QuickSight, operasi danau data. | 
| Keterampilan operasi |  `specialized-skills/operations-skills/*`  | Pemecahan masalah, diagnostik, analisis log. | 
| Keterampilan penyimpanan |  `specialized-skills/storage-skills/*`  | S3, EFS, FSx, Operasi Backup. | 

### Aktifkan semua AWS keterampilan
<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": {}}]'
```
Atau pada saat memanggil:  

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

### Aktifkan keterampilan berdasarkan kategori
<a name="_enable_skills_by_category"></a>

Gunakan pola glob untuk mengaktifkan kategori keterampilan tertentu:

**Example**  

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

### Aktifkan satu keterampilan khusus
<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."}]}],
)
```

### Gabungkan beberapa pola
<a name="_combine_multiple_patterns"></a>

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

**catatan**  
Jalur harus relatif (tidak memimpin `/` atau`..`). Jalur absolut dan traversal jalur ditolak.
Jika pola glob tidak cocok dengan keterampilan, pemanggilan gagal dengan kesalahan deskriptif.
Beberapa `awsSkills` entri dalam muatan yang sama digabungkan.

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

Mengkloning keterampilan dari repositori Git publik atau pribadi apa pun. Mendukung subdirektori dalam monorepos menggunakan checkout jarang.

**Example**  
Repositori publik:  

```
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."}]}],
)
```
Repositori pribadi (memerlukan token akses pribadi yang disimpan dalam [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"
            },
        }
    }
]
```
Lampirkan keterampilan dari repositori Git publik dengan. `agentcore add skill` Gunakan `--git-path` untuk menarik satu keterampilan dari subdirektori:  

```
agentcore add skill --harness my-harness \
  --git https://github.com/anthropics/skills \
  --git-path skills/docx
agentcore deploy
```
Untuk repositori pribadi, teruskan `--credential` dengan nama kredensyal kunci API di project Anda yang menyimpan token akses pribadi (`--username`bersifat opsional, default): `oauth2`  

```
agentcore add skill --harness my-harness \
  --git https://github.com/my-org/internal-skills \
  --git-path excel \
  --credential my-github-pat
agentcore deploy
```
Hapus keterampilan dengan `agentcore remove skill` menggunakan flag sumber yang sama. Untuk mengganti skill untuk satu panggilan tanpa mengubah harness, gunakan `agentcore invoke --skills <sources>` (jalur yang dipisahkan koma, URI, atau URL `https://` Git); Autentikasi Git tidak didukung pada penggantian pemanggilan. `s3://`
Di TUI, tambahkan skill Git ke harness melalui wizard **add** → **Harness**.  

1. Lanjutkan ke **Pengaturan lanjutan**, pindah ke **Keterampilan**, dan tekan **Spasi** untuk mengaktifkannya, lalu tekan **Enter**.  
![Pengaturan lanjutan dengan Keterampilan diaktifkan](http://docs.aws.amazon.com/id_id/bedrock-agentcore/latest/devguide/images/tui/harness-skills-01-advanced.png)

1. Pilih **Git** sebagai sumber keterampilan.  
![Jenis sumber keterampilan: Path, S3, atau Git](http://docs.aws.amazon.com/id_id/bedrock-agentcore/latest/devguide/images/tui/harness-skills-02-source-type.png)

1. Masukkan URL repositori HTTPS. Wizard kemudian meminta jalur subdirektori opsional, kredensyal opsional untuk repositori pribadi, dan nama pengguna opsional.  
![Masukkan URL repositori Git](http://docs.aws.amazon.com/id_id/bedrock-agentcore/latest/devguide/images/tui/harness-skills-05-git-url.png)
Konfirmasikan wizard, lalu jalankan `agentcore deploy` untuk menerapkan.
+  `url`(wajib) - URL HTTPS dari repositori Git.
+  `path`(opsional) - subdirektori dalam repo yang berisi keterampilan. Jika dihilangkan, root repositori digunakan.
+  `auth.credentialArn`(opsional) - ARN dari penyedia kredensi kunci API yang memegang token akses pribadi untuk repo pribadi.
+  `auth.username`(opsional) - git username, default ke. `oauth2`

Git fetch harus selesai dalam waktu 60 detik. Jika repositori memerlukan jalan keluar internet, pastikan VPC Anda memiliki gateway NAT (persyaratan yang sama dengan server MCP jarak jauh dan penarikan kontainer khusus).

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

Ambil skill dari bucket S3 milik pelanggan. Menggunakan kredensyal peran eksekusi 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."}]}],
)
```
Lampirkan keterampilan dari S3 dengan`agentcore add skill --s3`:  

```
agentcore add skill --harness my-harness \
  --s3 s3://my-skills-bucket/skills/company-style/
agentcore deploy
```
Kebutuhan peran eksekusi `s3:GetObject` dan `s3:ListBucket` di ember. Lihat [Kontrol keamanan dan akses](harness-security.md).
**Di TUI, tambahkan skill S3 ke harness melalui **add** → Harness wizard.** **Lanjutkan ke pengaturan Advanced**, aktifkan **Skills** with **Space**, dan pilih **S3** sebagai sumbernya (lihat tab [Git](#harness-skills-git) Interactive untuk langkah-langkah bersama tersebut).  

1. Masukkan URI S3 dari direktori keterampilan.  
![Masukkan URI S3 untuk keterampilan](http://docs.aws.amazon.com/id_id/bedrock-agentcore/latest/devguide/images/tui/harness-skills-04-s3-uri.png)
Konfirmasikan wizard, lalu jalankan `agentcore deploy` untuk menerapkan.
+  `uri`(wajib) - URI S3 menunjuk ke direktori keterampilan (misalnya,`s3://bucket/prefix/`).
+ Peran eksekusi harus memiliki `s3:GetObject` dan `s3:ListBucket` izin di bucket. Lihat [Kontrol keamanan dan akses](harness-security.md).
+ Setiap keterampilan S3 harus 1 GB atau lebih kecil.
+ Sumber S3 bekerja dengan titik akhir VPC S3 (tidak diperlukan gateway NAT).

## Keterampilan jalur sistem file
<a name="harness-skills-path"></a>

Referensikan keterampilan yang sudah ada di sistem file harness - dimasukkan ke dalam gambar wadah atau diinstal pada sesi mulai melalui. `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."}]}],
)
```

### Panggang ke dalam gambar wadah
<a name="_bake_into_the_container_image"></a>

Sertakan direktori keterampilan dalam gambar kustom Anda:

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

### Instal saat sesi dimulai
<a name="_install_at_session_start"></a>

Gunakan `InvokeAgentRuntimeCommand` sebelum pemanggilan agen pertama:

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

## Gabungkan berbagai sumber keterampilan
<a name="harness-skills-combine"></a>

Keempat jenis sumber dapat hidup berdampingan dalam satu muatan:

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

## Penanganan kesalahan
<a name="harness-skills-errors"></a>

Semua kegagalan pengambilan gagal dalam pemanggilan dengan kesalahan deskriptif. Keterampilan tidak pernah dilewati secara diam-diam.


| Kegagalan | Pesan kesalahan | 
| --- | --- | 
| Akses S3 ditolak |  `Failed to fetch skill: AccessDeniedException. Ensure execution role has s3:GetObject permission.`  | 
| Objek S3 tidak ditemukan |  `Skill source not found: s3://…​`  | 
| Klon Git gagal (jaringan) |  `Failed to clone skill: could not resolve host`  | 
| Git auth ditolak |  `Failed to clone skill: authentication failed`  | 
| Jalur Git tidak ditemukan di repo |  `Skill path 'x' not found in repository`  | 
| Batas waktu Git (60-an) |  `Failed to clone skill: operation timed out after 60s`  | 
| Keterampilan melebihi batas 1 GB |  `Skill exceeds 1GB size limit`  | 
|  AWS jalur keterampilan tidak cocok dengan apa pun |  `AWS skill path 'x' matched no skills`  | 
| Jalur traversal () `..` |  `Invalid AWS skill path: must be a relative path without '..'`  | 
|  AWS bundel keterampilan hilang |  `AWS Skills are not available in this runtime (missing directory: /opt/amazon/skills)`  | 

### Topik terkait
<a name="_related_topics"></a>
+  [Alat](harness-tools.md)- menghubungkan server MCP, Gateway, Browser, dan Penerjemah Kode
+  [Lingkungan dan sistem file](harness-environment.md)- Gambar kontainer kustom dan konfigurasi lingkungan
+  [Memori](harness-memory.md)- Pertahankan percakapan di seluruh sesi
+  [Kontrol keamanan dan akses](harness-security.md)- kebijakan peran eksekusi untuk sumber keterampilan
+  [Dokumentasi API](harness-get-started.md#api-documentation) 