SSD Nodes Learn 🎉 VPS dari $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Dikemas kini 2026-08-13

Apa itu kemahiran ejen (agent skills) sebenarnya?

Kemahiran ejen ialah folder dengan fail SKILL.md yang dimuatkan mengikut permintaan. Ketahui mengapa pendekatan ini lebih baik daripada satu prompt gergasi dan beza MCP.

Apakah kemahiran ejen sebenarnya

Kemahiran ejen ialah folder pada cakera yang mengandungi fail bernama SKILL.md di dalamnya. Fail tersebut menyimpan nama, penerangan ringkas, dan arahan yang ditulis dalam format markdown biasa. Ejen memuatkan penerangan tersebut semasa permulaan, dan ia hanya membaca arahan apabila permintaan anda sepadan dengan penerangan itu. Hampir semua perkara lain mengenai kemahiran berpunca daripada dua ayat tersebut.

Folder tersebut boleh mengandungi lebih daripada satu fail. Spesifikasi Agent Skills menamakan tiga direktori pilihan: scripts/ untuk kod yang dijalankan oleh ejen, references/ untuk dokumen yang dibaca apabila diperlukan, dan assets/ untuk templat serta data. Tiada satu pun daripadanya diwajibkan. Folder yang hanya mengandungi SKILL.md sudah dikira sebagai kemahiran yang lengkap.

restore-drill/
  SKILL.md
  references/retention-policy.md
  scripts/verify_snapshot.sh

Penerangan adalah bahagian yang sering dipandang remeh oleh pengguna. Ia merupakan satu-satunya teks yang dilihat oleh ejen sebelum ia memutuskan sama ada untuk membuka kemahiran tersebut atau tidak. Oleh itu, ia mesti menyatakan fungsi kemahiran dan waktu untuk menggunakannya, menggunakan perkataan yang benar-benar akan ditaip oleh seseorang.

Mengapa sesuatu kemahiran hampir tidak menelan kos sehingga ia digunakan

Ini adalah hujah yang menjadikan format ini berbaloi untuk difahami, dan ia adalah mengenai konteks, bukan ciri-ciri. Pemuatan berlaku secara berperingkat, yang mana spesifikasi tersebut panggil sebagai pendedahan progresif (progressive disclosure).

Semasa permulaan, ejen memuatkan name dan description bagi setiap kemahiran yang dipasang dan tiada yang lain. Spesifikasi Agent Skills menetapkan jumlah itu pada kira-kira 100 token bagi setiap kemahiran (panduan yang diterbitkan, setakat Ogos 2026). Pasang sedozen kemahiran dan anda telah menggunakan kira-kira konteks satu perenggan panjang.

Apabila sesuatu permintaan sepadan dengan penerangan, ejen membaca badan bagi satu SKILL.md tersebut. Spesifikasi mengesyorkan agar badan tersebut dikekalkan di bawah 5,000 token dan fail di bawah 500 baris. Fail dalam references/ dan scripts/ masih tidak menelan sebarang kos pada tahap ini. Fail rujukan hanya dimuatkan jika arahan menghantar ejen kepadanya. Skrip yang dibundel pula berbeza: ejen menjalankannya melalui shell, jadi sumber skrip tidak pernah memasuki tetingkap konteks dan hanya keluarannya sahaja yang masuk.

Sekarang bandingkan perkara itu dengan apa yang orang capai terlebih dahulu, iaitu satu prompt yang sangat besar. Setiap baris dalam prompt sistem atau fail arahan yang sentiasa aktif dibayar pada setiap permintaan, dalam setiap sesi, sama ada tugasan itu memerlukannya atau tidak, dan ia bersaing untuk mendapatkan perhatian dengan soalan sebenar. Sepuluh ribu token arahan tetap adalah bil yang anda bayar walaupun hanya untuk bertanya pukul berapa sekarang. Sedozen kemahiran menelan kos sekitar 1,200 token semasa melahu dan hanya berkembang untuk satu tugasan yang memerlukannya. Itulah keseluruhan hujah bagi kemahiran, dan itulah sebabnya pustaka kecil lebih baik daripada prompt yang lebih panjang.

Satu peringatan yang sering memerangkap orang ramai. Sebaik sahaja sesuatu kemahiran dimuatkan, badannya kekal dalam konteks sepanjang sesi tersebut, jadi SKILL.md yang panjang adalah kos berulang dan bukan kos sekali sahaja. Memindahkan perincian ke dalam references/ bukanlah sekadar merapikan. Ia adalah mekanisme yang berfungsi seperti yang direka bentuk.

Kemahiran ejen bukanlah panggilan alat

Alat, yang juga dipanggil sebagai panggilan fungsi, ialah sesuatu yang boleh dipanggil oleh model. Perisian sokongan (harness) menghantar skema kepada model: nama, penerangan, dan bentuk argumen. Model mengeluarkan panggilan, kod anda melaksanakannya, dan hasilnya kembali sebagai mesej. Alat melakukan sesuatu.

Kemahiran tidak melaksanakan apa-apa dengan sendirinya. Ejen membacanya, kemudian bertindak menggunakan alat yang sudah sedia ada. Model tidak boleh menghantar argumen kepada kemahiran seperti cara ia menghantar argumen kepada alat. Apa yang boleh dilakukan oleh kemahiran adalah memberitahu model alat mana yang perlu digunakan, dalam urutan apa, dan apa yang perlu diperiksa selepas itu.

Versi ringkasnya: alat memberikan keupayaan baharu kepada ejen, dan kemahiran memberikan pertimbangan tentang keupayaan yang sudah sedia ada. Jika sesuatu langkah mesti menghasilkan keputusan yang tepat dan disahkan setiap kali, anda perlukan alat atau skrip. Jika sesuatu langkah memerlukan pemikiran yang sama digunakan secara konsisten, anda perlukan kemahiran. Kemahiran boleh jadi sekadar pertimbangan dan masih menjadi pilihan utama anda, seperti yang ditunjukkan oleh Ponytail, yang mendorong ejen pengekodan untuk membuat perubahan terkecil yang berkesan: ia tidak menambah keupayaan baharu dan hanya mengubah cara ejen menggunakan keupayaan yang sudah sedia ada.

Kemahiran ejen bukanlah pelayan MCP

MCP (model context protocol) ialah protokol untuk menyambungkan ejen kepada sistem luar. Pelayan MCP ialah proses yang berjalan, menggunakan protokol tersebut, dan mendedahkan alatan kepada ejen. Ia biasanya memerlukan konfigurasi, kelayakan, dan sama ada arahan setempat atau titik akhir rangkaian. Kemahiran pula ialah folder yang mengandungi fail markdown. Tiada proses, tiada port, dan tiada protokol yang terlibat.

Kos konteks juga berbeza dengan cara yang sama. Setiap alat yang didedahkan oleh pelayan MCP membawa nama, penerangan, dan skema argumen, dan secara lalai ia kekal dalam permintaan untuk keseluruhan sesi, sama ada digunakan atau tidak. Sesetengah klien telah mula mengambil skema alat atas permintaan, tetapi memuatkannya lebih awal masih menjadi kebiasaan. Kemahiran yang tidak aktif hanyalah sebaris teks.

Kedua-duanya adalah pelengkap, dan persediaan yang paling mantap menjalankan kedua-duanya. Pelayan MCP menyediakan akses. Kemahiran menyediakan prosedur: alat mana yang perlu dipanggil untuk aliran kerja sebenar pasukan anda, dalam urutan apa, dan bagaimana hasil yang baik kelihatan. Jika anda mengehoskan pelayan anda sendiri, menjalankan pelayan MCP pada VPS merangkumi bahagian tersebut.

Kemahiran ejen bukanlah prompt sistem atau AGENTS.md

Kedua-duanya merupakan arahan dalam format markdown, jadi kekeliruan ini adalah wajar. Perbezaannya terletak pada waktu ia dimuatkan. AGENTS.md, CLAUDE.md dan prompt sistem sentiasa aktif. Sesuatu kemahiran hanya diaktifkan apabila diminta.

Ujiannya adalah satu soalan: adakah mengabaikan perenggan ini satu kesalahan bagi tugasan yang tidak berkaitan dengannya? Gaya penulisan, arahan binaan (build command) dan peraturan penamaan cawangan (branch naming) terpakai untuk setiap tugasan, jadi ia perlu diletakkan dalam fail yang sentiasa aktif, di mana ia dimuatkan setiap kali diperlukan. Senarai semak keluaran (release checklist) yang anda jalankan dua kali sebulan tidak terpakai untuk setiap tugasan, jadi ia perlu diletakkan dalam kemahiran. Apabila satu bahagian dalam fail yang sentiasa aktif anda telah berkembang menjadi prosedur bernombor, itu adalah petanda untuk memindahkannya.

Fail-fail tersebut mempunyai konvensyen tersendiri yang perlu dipatuhi. Lihat apa yang perlu diletakkan dalam AGENTS.md dan apa yang perlu diletakkan dalam fail manusia dan fail design.md yang menerangkan bentuk pangkalan kod untuk dua konvensyen yang kami gunakan.

Rupa kemahiran minimum

Dalam Claude Code, kemahiran peribadi disimpan di dalam ~/.claude/skills/<name>/SKILL.md dan terpakai untuk semua projek anda. Kemahiran projek pula disimpan di dalam .claude/skills/<name>/SKILL.md dan dilakukan commit ke dalam git, supaya setiap orang dan setiap ejen yang bekerja dalam repositori tersebut memilikinya. GitHub Copilot dan VS Code membaca kemahiran ruang kerja daripada .github/skills/ sebaliknya. Fail di dalamnya adalah fail yang sama.

mkdir -p ~/.claude/skills/restore-drill
---
name: restore-drill
description: Run a restic restore drill and report what was recovered. Use when the user asks to test backups, verify a restore, or check that a snapshot is readable.
---

# Restore drill

1. Run `restic snapshots` and pick the newest snapshot for the host in question.
2. Restore it into a scratch directory under `/tmp`, never over live data.
3. Compare the restored file count and total size against the snapshot summary.
4. Report the snapshot ID and anything that failed to restore.

If `restic snapshots` prints `Fatal: unable to open config file`, the repository path or the password is wrong. Stop and report that instead of guessing.

Itu adalah kemahiran yang lengkap. Nama direktori menjadi arahan yang anda taip, jadi yang ini ialah /restore-drill. Dalam Claude Code, menu /skills menyenaraikan apa yang dipasang, yang merupakan cara terpantas untuk mengesahkan fail tersebut telah dikesan. Jika ia tiada dalam menu tersebut, namanya salah: fail itu mesti dinamakan SKILL.md, dan nama direktori mestilah terdiri daripada huruf kecil, digit dan tanda sempang tunggal. Prosedur yang sama yang ditulis sebagai langkah yang boleh dijalankan semula oleh ejen anda merupakan pelengkap semula jadi kepada sandaran restic berjadual pada VPS, di mana proses menjalankan sandaran tidak sama dengan proses memulihkan sandaran.

Bilakah kemahiran perlu dijadikan skrip

Setiap langkah yang mempunyai satu jawapan tepat pada setiap masa harus dijadikan skrip, dengan kemahiran tersebut diringkaskan kepada beberapa baris yang menyatakan bila untuk menjalankannya dan cara membaca outputnya. Terdapat dua sebab, dan kedua-duanya bersifat praktikal.

Pertama, sumber skrip tidak pernah memasuki tetingkap konteks. Penganalisis (parser) sepanjang 300 baris hanya memakan kos outputnya sahaja, manakala logik yang sama jika ditulis sebagai arahan markdown akan memakan kos sepanjang panjang penuhnya setiap kali kemahiran itu dimuatkan.

Kedua, skrip memberikan jawapan yang sama dua kali. Model yang diminta untuk menerbitkan semula peraturan penghuraian log yang sama pada setiap pelaksanaan akan memberikan hasil yang sedikit berbeza pada hari yang tidak baik, dan anda tidak akan menyedarinya sehingga dua nombor tidak sepadan.

Oleh itu, bahagikan kerja mengikut jenis. "Huraikan CSV dan cetak setiap baris di mana jumlahnya tidak sepadan dengan item baris" adalah skrip. "Lihat baris yang dicetak oleh skrip dan jelaskan baris mana yang kelihatan seperti kesilapan kemasukan data" adalah arahan kemahiran. Mengekalkan pertimbangan dalam markdown dan determinisme dalam kod adalah disiplin yang sama seperti membina gelung yang boleh dijalankan oleh ejen tanpa pengawasan anda.

Mengapa kemahiran saya tidak pernah dicetuskan?

Kerana description anda menyatakan perkara yang dilakukan oleh kemahiran tersebut dan tidak pernah menyatakan bila untuk menggunakannya. Baris tunggal itu adalah satu-satunya perkara yang digunakan oleh ejen untuk memadankan permintaan anda. "Membantu kerja pangkalan data" tidak memadankan apa-apa secara khusus. "Menjalankan migrasi skema terhadap pangkalan data staging. Gunakan apabila pengguna meminta untuk memigrasi jadual, menambah lajur, atau menukar skema" mengandungi perkataan yang sebenarnya ditaip oleh seseorang, jadi ia akan dicetuskan.

Kegagalan yang bertentangan ialah kemahiran yang dicetuskan secara berterusan. Penerangan seperti "Gunakan untuk sebarang perubahan kod dalam repositori ini" memadankan segala-galanya, jadi badan kemahiran dimuatkan pada setiap tugas dan kemudian kekal dalam konteks untuk sepanjang sesi tersebut. Sempitkan penerangan kepada kes yang anda maksudkan. Dalam Claude Code, anda juga boleh menetapkan disable-model-invocation: true dalam frontmatter, yang menghentikan pemuatan automatik dan memastikan kemahiran tersedia apabila anda menaip namanya.

Kegagalan ketiga ialah kemahiran yang menduplikasi alat. Arahan yang memberitahu ejen untuk curl API yang pelayan MCP-nya sudah didedahkan, atau untuk melakukan grep melalui fail apabila harness mempunyai alat carian, memberikan anda laluan yang lebih perlahan serta dua set arahan yang boleh bercanggah. Padamkan pendua tersebut dan terangkan niatnya sebaliknya.

Jangan meneka yang mana satu daripada tiga masalah tersebut yang anda hadapi. Jalankan prompt yang sama dua kali dalam sesi baharu, sekali dengan kemahiran tersedia dan sekali dengan kemahiran dimatikan, kemudian bandingkan jawapannya. Sesi baharu adalah penting, kerana sesi di mana anda menulis kemahiran tersebut sudah mengandungi semua yang dinyatakan oleh kemahiran itu, yang menyembunyikan jurang dalam versi bertulis. Pemalam skill-creator daripada Anthropic mengautomasikan perbandingan tersebut di dalam Claude Code, termasuk menjana prompt yang sepatutnya dan tidak sepatutnya mencetuskan kemahiran serta mengukur kekerapan setiap satu daripadanya dicetuskan.

Adakah ini format satu vendor atau satu standard?

Anthropic menerbitkan format ini pada lewat 2025, kemudian mengeluarkannya sebagai standard terbuka yang dihoskan di agentskills.io. Setakat Ogos 2026, spesifikasi tersebut mentakrifkan medan name dan description yang wajib, medan license, compatibility, metadata dan allowed-tools yang pilihan, tiga direktori pilihan, serta gelagat pemuatan berperingkat. Ia juga menyertakan validator rujukan, jadi skills-ref validate ./my-skill menyemak folder berbanding spesifikasi sebelum anda berkongsinya.

Senarai klien adalah petunjuk sebenar. Folder yang sama dibaca oleh Claude Code, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot, VS Code, Goose, OpenHands dan opencode, antara lain. Microsoft menerbitkan kemahiran mereka sendiri dalam format tersebut di github.com/microsoft/skills, dan menyertakan alat desktop bernama Skill Recorder yang memerhati anda melakukan sesuatu tugas sekali, membina semulanya sebagai niat berserta langkah-langkah tersusun, dan menulis hasilnya sebagai satu kemahiran. Vendor yang membina perakam yang format keluarannya tergolong dalam spesifikasi orang lain merupakan petanda baik bahawa format tersebut telah berhenti menjadi ciri satu produk sahaja.

Perkara yang perlu ditulis dahulu

Jangan merancang sebuah pustaka. Tunggu sehingga anda mendapati diri anda menampal arahan yang sama ke dalam sembang buat kali ketiga, kemudian pindahkan teks tersebut ke dalam SKILL.md dan padamkan tampalan tersebut. Pengulangan yang telah anda rasai adalah satu-satunya pencetus yang boleh dipercayai untuk kemahiran yang berbaloi untuk disimpan. Prosedur carian adalah kemahiran pertama yang baik, dan kemahiran carian yang disokong oleh instans SearXNG anda sendiri menunjukkan bentuknya.

Dua tabiat memastikan pustaka kekal sihat. Baca setiap kemahiran yang bukan anda tulis sebelum anda memasangnya, termasuk skrip, kerana kemahiran ialah arahan yang akan diikuti oleh ejen anda dan kod yang mungkin dijalankannya: anggap ia seperti memasang perisian daripada orang yang tidak dikenali. Dan jauhkan kelayakan (credentials) daripada folder tersebut, kerana kemahiran ialah fail teks yang akan di-commit dan dikongsi. Menjauhkan rahsia daripada ejen anda merangkumi tempat nilai tersebut sepatutnya berada, dan peta jalan untuk mempelajari ejen tahun ini menyusun kemahiran mengikut urutan bersama-sama dengan persediaan yang lain.

FAQ

Apakah perbezaan antara skill ejen dan pelayan MCP?

Pelayan MCP (model context protocol) ialah proses yang sedang berjalan yang mendedahkan alatan kepada ejen melalui protokol. Oleh itu, ia memerlukan konfigurasi dan kelayakan, dan definisi alatan biasanya mengambil ruang konteks untuk keseluruhan sesi sama ada ia digunakan atau tidak. Skill ejen ialah folder yang mengandungi fail SKILL.md, tanpa proses dan tanpa protokol, serta memakan sekitar 100 token sehingga ejen membuat keputusan untuk membacanya. Gunakan pelayan MCP untuk memberikan ejen akses kepada sistem. Gunakan skill untuk memberitahu ejen prosedur bagi menggunakan akses tersebut dengan baik. Banyak persediaan menjalankan kedua-duanya.

Adakah skill ejen hanya berfungsi dengan Claude Code?

Tidak. Anthropic membangunkan format tersebut dan kemudian mengeluarkannya sebagai standard terbuka di agentskills.io. Folder yang sama boleh dibaca oleh Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot, VS Code, Goose, OpenHands dan klien lain. Perbezaannya terletak pada lokasi yang dicari oleh setiap klien dan medan frontmatter tambahan yang difahaminya. Claude Code membaca ~/.claude/skills/ dan .claude/skills/, manakala GitHub Copilot dan VS Code membaca .github/skills/ di dalam repositori. Fail SKILL.md itu sendiri boleh dipindahkan antara klien tanpa sebarang perubahan.

Berapa banyak skill yang boleh saya pasang sebelum ia melambatkan sistem?

Kekangan utamanya ialah bajet permulaan, bukannya jumlah skill. Setiap skill yang dipasang menyumbang nama dan penerangannya, kira-kira 100 token mengikut panduan spesifikasi yang diterbitkan. Jadi, tiga puluh skill akan memakan kira-kira 3,000 token sebelum mana-mana daripadanya digunakan. Perkara yang terjejas dahulu ialah pemadanan, bukannya kelajuan: terlalu banyak skill dengan penerangan yang bertindih menyukarkan model untuk memilih skill yang tepat. Tulis penerangan yang tidak bertindih, dan padamkan skill yang tidak lagi anda gunakan.

Patutkah arahan ini diletakkan dalam skill atau dalam AGENTS.md?

Tanya diri anda sama ada arahan tersebut terpakai untuk setiap tugasan dalam repositori. Perintah binaan, gaya penulisan dan peraturan penamaan terpakai untuk semua tugasan, jadi ia perlu diletakkan dalam fail yang sentiasa aktif, di mana pemuatan setiap kali adalah tujuannya. Prosedur yang anda jalankan sekali-sekala, seperti senarai semak keluaran (release checklist) atau latihan pemulihan, sepatutnya menjadi skill supaya ia tidak memakan kos pada tugasan yang tidak memerlukannya. Bahagian dalam AGENTS.md yang telah berkembang menjadi langkah-langkah bernombor biasanya merupakan skill yang menunggu untuk dipindahkan.