Claude Skills API tersedia secara umum mulai 20 Agustus 2026. Anda kini dapat membuat, membuat versi, dan mengelola skill kustom melalui https://api.anthropic.com/v1/skills dengan header standar—tanpa flag beta—lalu menjalankannya dalam sandbox kode Claude tanpa menghosting infrastruktur sendiri. Dalam pengumuman GA, Anthropic menempatkan Skills API bersama computer use, alat browser, dan Files API sebagai fondasi produksi untuk membangun agen di Claude Platform.
Jika konsep skill masih baru, baca panduan Claude Skills terlebih dahulu. Artikel ini berfokus pada implementasi API: endpoint, versioning, cara memuat skill ke Messages API, serta hal-hal penting seperti snapshot versioning dan isolasi workspace. Karena seluruh alurnya berbasis HTTP, Anda dapat menyimpan dan menguji setiap request di Apidog.
Penyegaran 30 detik: apa itu skill?
Skill adalah folder yang berisi:
-
SKILL.mddi level teratas, termasuk frontmatter YAML. - Skrip, template, dan file referensi yang dibutuhkan skill.
- Instruksi yang dimuat Claude hanya ketika relevan dengan permintaan pengguna.
Ketika sebuah request memuat skill, Claude menjalankan skrip yang dibundel di lingkungan code-execution sandbox.
Contoh struktur minimal:
brand-report/
├── SKILL.md
├── templates/
│ └── report.html
└── scripts/
└── build_report.py
SKILL.md harus memiliki frontmatter yang valid:
---
name: brand-report
description: "Generates the weekly brand performance report as a formatted HTML document from a CSV of metrics. Use when asked for a brand report, weekly summary deck, or performance writeup."
---
Aturan validasi yang perlu diperhatikan:
-
namemaksimal 64 karakter dan hanya boleh memakai huruf kecil, angka, serta tanda hubung. -
nametidak boleh mengandung tag XML atau kata yang dicadangkan sepertianthropicdanclaude. -
descriptionwajib diisi dan maksimal 1.024 karakter. -
display_namebersifat opsional, lebih ramah dibaca manusia, dan maksimal 255 karakter. - Total file yang diunggah harus kurang dari 30 MB sebelum kompresi.
Ada dua jenis skill:
| Jenis | Contoh | Kepemilikan |
|---|---|---|
anthropic |
pptx, xlsx, docx, pdf
|
Dikelola Anthropic |
custom |
skill_01AbCdEfGhIjKlMnOpQrStUv |
Dibuat dan dimiliki workspace Anda |
Skill Anthropic menggunakan versi berbasis tanggal, misalnya 20251013. Skill kustom menggunakan ID skill dan ID versi seperti skver_*.
Apa yang berubah pada GA?
Mulai 20 Agustus 2026, ada tiga perubahan utama:
Tidak memerlukan header beta
Skills API dapat digunakan denganx-api-keydananthropic-version: 2023-06-01.Upload dan versioning lebih sederhana
Skill kustom dapat diunggah dan diberi versi melalui endpoint khusus. Setiap versi adalah resource terpisah.Tersedia di lebih banyak platform
Skills API tersedia melalui Claude API dan Microsoft Foundry. Eksekusi skill tetap berjalan dalam sandbox yang dikelola Claude.
Skills juga terhubung langsung dengan Files API. Jika skill menghasilkan presentasi, spreadsheet, atau dokumen, hasilnya dikembalikan sebagai file yang dapat diambil melalui Files API.
Endpoint yang perlu Anda simpan
Semua endpoint berada di bawah /v1/skills.
| Operasi | Endpoint |
|---|---|
| Buat skill | POST /v1/skills |
| Daftar skill | GET /v1/skills |
| Ambil detail skill | GET /v1/skills/{skill_id} |
| Hapus skill | DELETE /v1/skills/{skill_id} |
| Buat versi baru | POST /v1/skills/{skill_id}/versions |
| Daftar versi | GET /v1/skills/{skill_id}/versions |
Untuk workflow tim, buat satu folder request di Apidog yang berisi keenam endpoint tersebut. Simpan {{skill_id}} dan {{skill_version}} sebagai environment variable agar perpindahan antara development dan production cukup dilakukan dengan mengganti environment, bukan mengedit request.
Mengunggah skill kustom
Skill kustom diunggah sebagai multipart form data. Misalnya, untuk folder brand-report/:
curl -X POST https://api.anthropic.com/v1/skills \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-F 'files[]=@brand-report/SKILL.md;filename=brand-report/SKILL.md' \
-F 'files[]=@brand-report/templates/report.html;filename=brand-report/templates/report.html' \
-F 'files[]=@brand-report/scripts/build_report.py;filename=brand-report/scripts/build_report.py'
Respons akan mengembalikan:
-
skill_iduntuk memuat skill dalam request Messages. - ID versi awal
skver_*untuk pinning dan rollback.
Simpan keduanya di environment Anda. Verifikasi nama field multipart terhadap referensi Skills API, terutama jika Anda memakai SDK karena helper SDK dapat membungkus request HTTP secara berbeda.
Tulis description sebagai aturan routing
Claude menggunakan description untuk menentukan apakah sebuah skill relevan. Karena itu, jangan menulis deskripsi seperti teks pemasaran.
Kurang baik:
description: A powerful reporting skill.
Lebih baik:
description: Generates weekly brand-performance reports from CSV metrics. Use for requests about brand reports, weekly summaries, performance writeups, and reporting decks.
Sertakan istilah yang benar-benar digunakan pengguna agar skill lebih mudah dipilih.
Memuat skill dalam request Messages
Skill berjalan melalui alat code execution. Karena itu, deklarasikan container.skills dan aktifkan tool code_execution.
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
container={
"skills": [
{"type": "anthropic", "skill_id": "pptx", "version": "latest"},
{
"type": "custom",
"skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
"version": "latest",
},
]
},
messages=[
{
"role": "user",
"content": "Build the Q3 revenue deck from the attached numbers",
}
],
tools=[
{
"type": "code_execution_20250825",
"name": "code_execution",
}
],
)
Perhatikan aturan berikut:
- Aktifkan code execution. Skill dieksekusi di sandbox tersebut. Periksa kompatibilitas model untuk code execution.
- Maksimal 20 skill per request. Claude membaca deskripsi setiap skill dan hanya memuat skill yang diperlukan.
-
Pilih strategi version pinning.
Gunakan
"latest"saat development untuk menguji versi terbaru. Gunakan IDskver_*di production untuk membekukan perilaku.
Contoh production dengan versi yang dipin:
container = {
"skills": [
{
"type": "custom",
"skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
"version": "skver_01XyZaBcDeFgHiJkLmNoPqRs",
}
]
}
Ambil file hasil skill melalui Files API
Jika skill menghasilkan dokumen, responsnya akan menyertakan file_id. Ambil konten file dengan:
GET /v1/files/{file_id}/content
Alur produksinya menjadi:
- Kirim request Messages dengan
container.skills. - Skill menghasilkan file.
- Ambil
file_iddari respons. - Unduh konten melalui Files API.
- Simpan, kirim, atau proses file di aplikasi Anda.
Skills API menghasilkan file; Files API mengambil hasilnya.
Versioning: snapshot, bukan diff
Kesalahan umum saat pertama kali menggunakan Skills API adalah menganggap versi baru hanya perlu mengunggah file yang berubah. Itu tidak benar.
Saat memanggil:
POST /v1/skills/{skill_id}/versions
Anda harus mengunggah ulang seluruh kumpulan file skill. File yang tidak disertakan tidak akan diwariskan dari versi sebelumnya.
Selain itu, nilai name di SKILL.md versi baru harus tetap sama dengan nama skill yang sudah ada.
Praktik yang disarankan:
- Simpan source skill di repository.
- Validasi struktur dan ukuran file di CI.
- Bungkus seluruh folder skill saat membuat versi.
- Simpan ID
skver_*hasil deploy. - Pin versi tersebut di production.
- Rollback dengan mengganti satu ID versi jika terjadi insiden.
Dengan pendekatan ini, skill diperlakukan seperti artefak deployable lainnya.
Isolasi workspace untuk aplikasi multi-tenant
Skill kustom dapat diakses oleh seluruh workspace. Skill tidak dibatasi per pengguna akhir, percakapan, atau sesi. Semua API key dalam workspace yang sama dapat mengakses skill tersebut.
Untuk produk multi-tenant, jangan menaruh skill milik semua tenant dalam satu workspace. Itu berisiko membuka akses data lintas tenant.
Gunakan satu workspace per tenant:
Tenant A → Workspace A → API key, Files, Skills A
Tenant B → Workspace B → API key, Files, Skills B
Workspace adalah batas isolasi untuk key, file, dan skill. Setiap organisasi dapat memiliki hingga 100 workspace sebelum perlu berbicara dengan tim akun.
Menangani eksekusi panjang dengan pause_turn
Eksekusi skill dapat berlangsung lebih dari satu giliran model. Gunakan pause_turn untuk melanjutkan proses dari sandbox yang sama.
Jika respons berhenti dengan:
{
"stop_reason": "pause_turn"
}
Lakukan langkah berikut:
- Tambahkan konten respons asisten ke riwayat percakapan.
- Gunakan kembali
container.iddari respons sebelumnya. - Kirim request Messages berikutnya.
Konsepnya:
next_response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
container={
"id": previous_response.container.id,
},
messages=conversation_history,
tools=[
{
"type": "code_execution_20250825",
"name": "code_execution",
}
],
)
Penggunaan ulang container mempertahankan file yang terinstal dan state sandbox di seluruh percakapan. Sebagai contoh, skill dapat membuat spreadsheet pada giliran pertama lalu memperbaruinya pada giliran ketiga tanpa membangun ulang file dari awal.
Ini cocok dijadikan skenario regression test:
- Request pertama memverifikasi
stop_reason. - Script test menyimpan
container.id. - Request berikutnya menggunakan kembali
container.id. - Test terakhir memastikan
file_idberhasil diunduh.
Anda dapat menjalankan skenario tersebut di CI menggunakan Apidog CLI. Untuk perbandingan dengan integrasi vendor lain, lihat ulasan skill Claude Postman.
Tempat skill dijalankan
Pada GA, Skills API tersedia melalui Claude API dan Microsoft Foundry. Namun, skill tetap berjalan di sandbox Anthropic.
Artinya, deployment skill hanya berupa upload. Anda tidak perlu mengelola:
- Image container.
- Runtime patching.
- Autoscaling.
- Infrastruktur sandbox.
Tetap perhatikan kompatibilitas model dengan code execution. Contoh dalam artikel ini menggunakan claude-opus-5. Jika Anda baru mulai menggunakan model tersebut, baca panduan Claude Opus 5 API.
FAQ
Apakah saya masih memerlukan header beta untuk Skills API?
Tidak. Sejak 20 Agustus 2026, /v1/skills dan container.skills dapat digunakan dengan header standar Claude API. Hapus flag beta yang sebelumnya tertanam saat Anda memperbarui SDK.
Dapatkah skill memanggil API eksternal?
Skill berjalan dalam sandbox code execution dengan batasan jaringan dari tool tersebut. Bundel dependensi yang diperlukan ke dalam folder skill dan tempatkan logika pemanggilan API eksternal di lapisan aplikasi Anda, tempat logika tersebut dapat diuji dan dikendalikan dengan lebih baik.
Berapa banyak skill yang dapat dimuat dalam satu request?
Maksimal 20 skill. Karena Claude menggunakan description untuk memilih skill, tulis deskripsi sebagai aturan routing, bukan sebagai copy pemasaran.
Apa bedanya dengan skill Claude Code?
Konsepnya sama, tetapi runtime-nya berbeda. Claude Code menemukan folder skill dari file system lokal, sedangkan Skills API menghosting skill di sisi server dan memberi Anda versioning untuk request Messages API.
Format folder dan frontmatter SKILL.md tetap sama, sehingga skill yang dibuat untuk Claude Code biasanya dapat dipindahkan dengan sedikit perubahan.
Ringkasan
Skills API GA menjadikan skill sebagai bagian operasional dari aplikasi agen: enam endpoint, versioning berbasis snapshot, isolasi workspace, dan integrasi dengan Files API untuk output.
Agar siap digunakan di production:
- Simpan source skill di repository.
- Unggah seluruh folder untuk setiap versi.
- Pin
skver_*di production. - Gunakan
"latest"hanya untuk development. - Pisahkan workspace untuk setiap tenant.
- Uji
pause_turn, reuse container, dan unduhan file secara otomatis.
Modelkan keenam endpoint di Apidog, hubungkan upgrade skill ke skenario test CI, dan deteksi regresi sebelum generator dokumen Anda sampai ke pengguna. Unduh Apidog secara gratis untuk mulai membangun harness pengujian Anda.
Top comments (0)