Agent skill क्या है और यह कैसे काम करती है?
Agent skill एक फोल्डर है जिसमें SKILL.md फाइल होती है। यह एक विशाल प्रॉम्प्ट के बजाय केवल जरूरत पड़ने पर निर्देश लोड करती है। जानें कि यह MCP से कैसे अलग है और क्यों यह अधिक कुशल है।
Agent skill वास्तव में क्या है
Agent skill डिस्क पर स्थित एक फोल्डर है जिसके अंदर SKILL.md नाम की एक फाइल होती है। उस फाइल में एक नाम, एक संक्षिप्त विवरण और plain markdown में लिखे गए निर्देश होते हैं। Agent स्टार्टअप के समय विवरण को लोड करता है, और वह निर्देशों को केवल तभी पढ़ता है जब आपका अनुरोध उस विवरण से मेल खाता है। Skills के बारे में लगभग बाकी सब कुछ इन्हीं दो वाक्यों से स्पष्ट हो जाता है।
फोल्डर में उस एक फाइल से अधिक सामग्री हो सकती है। Agent Skills specification तीन वैकल्पिक डायरेक्टरीज़ के नाम बताता है: scripts/ उस कोड के लिए जिसे agent चलाता है, references/ उन दस्तावेजों के लिए जिन्हें जरूरत पड़ने पर agent पढ़ता है, और assets/ टेम्प्लेट और डेटा के लिए। इनमें से कोई भी अनिवार्य नहीं है। एक फोल्डर जिसमें SKILL.md के अलावा कुछ न हो, वह भी एक पूर्ण skill है।
restore-drill/
SKILL.md
references/retention-policy.md
scripts/verify_snapshot.shविवरण वह हिस्सा है जिसे लोग कम आंकते हैं। यह एकमात्र ऐसा टेक्स्ट है जिसे agent यह तय करने से पहले देखता है कि skill को खोलना है या नहीं, इसलिए इसमें यह स्पष्ट होना चाहिए कि skill क्या करती है और इसका उपयोग कब करना है, उन शब्दों में जिन्हें एक व्यक्ति वास्तव में टाइप करेगा।
जब तक किसी skill का उपयोग न हो, तब तक उसकी लागत लगभग शून्य क्यों होती है
यह वह तर्क है जो इस format को समझने योग्य बनाता है, और यह features के बारे में नहीं, बल्कि context के बारे में है। Loading चरणों में होती है, जिसे specification में progressive disclosure कहा गया है।
Startup पर, agent हर installed skill के name और description को load करता है, और कुछ भी नहीं। Agent Skills specification के अनुसार, यह प्रति skill लगभग 100 tokens है (अगस्त 2026 तक प्रकाशित मार्गदर्शन)। एक दर्जन skills install करें और आपने एक लंबे paragraph के बराबर context खर्च किया है।
जब कोई request किसी description से मेल खाती है, तो agent उस एक SKILL.md की body को पढ़ता है। Spec यह सुझाव देता है कि body को 5,000 tokens से कम और file को 500 lines से कम रखा जाए। references/ और scripts/ में मौजूद files इस बिंदु पर भी कोई लागत नहीं लेती हैं। एक reference file तभी load होती है जब instructions agent को उस तक भेजते हैं। एक bundled script अलग तरह से काम करती है: agent इसे shell के माध्यम से चलाता है, इसलिए script का source कभी भी context window में नहीं आता और केवल उसका output ही आता है।
अब इसकी तुलना उस चीज़ से करें जिसे लोग सबसे पहले चुनते हैं, जो कि एक विशाल prompt है। System prompt या always-on instructions file की हर line का भुगतान हर request पर, हर session में किया जाता है, चाहे task को उसकी आवश्यकता हो या न हो, और यह वास्तविक प्रश्न के साथ ध्यान आकर्षित करने के लिए प्रतिस्पर्धा करती है। दस हजार tokens के स्थायी निर्देश एक ऐसा बिल है जिसे आप समय पूछने के लिए भी चुकाते हैं। एक दर्जन skills की लागत स्थिर अवस्था में लगभग 1,200 tokens होती है और वे केवल उसी एक task के लिए expand होती हैं जिसे उनकी आवश्यकता होती है। यही skills के पक्ष में पूरा तर्क है, और यही कारण है कि एक छोटी library एक लंबे prompt से बेहतर होती है।
एक चेतावनी लोगों को अक्सर उलझा देती है। एक बार जब कोई skill load हो जाती है, तो उसकी body session के बाकी हिस्से के लिए context में बनी रहती है, इसलिए एक लंबी SKILL.md एक आवर्ती लागत (recurring cost) है, न कि एक बार की लागत। विवरण को references/ में ले जाना केवल सफाई नहीं है। यह वह mechanism है जो अपनी design के अनुसार काम कर रहा है।
Agent skill एक tool call नहीं है
Tool, जिसे function call भी कहा जाता है, वह है जिसे model invoke कर सकता है। Harness model को एक schema भेजता है: एक नाम, एक विवरण और arguments का आकार। Model एक call emit करता है, आपका code उसे run करता है, और परिणाम एक message के रूप में वापस आता है। Tools काम करते हैं।
Skill अपने आप में कुछ भी execute नहीं करती है। Agent इसे पढ़ता है, फिर उन tools का उपयोग करके कार्य करता है जो उसके पास पहले से थे। Model किसी skill को उस तरह arguments पास नहीं कर सकता जैसे वह किसी tool को arguments पास करता है। Skill यह कर सकती है कि वह model को बताए कि किन tools का उपयोग करना है, किस क्रम में करना है, और बाद में क्या जाँच करनी है।
संक्षेप में: tool एक agent को एक नई क्षमता देता है, और skill उसे उस क्षमता के बारे में निर्णय लेने की शक्ति देती है जो उसके पास पहले से है। यदि किसी step को हर बार एक सटीक, validated परिणाम देना है, तो आपको एक tool या script की आवश्यकता है। यदि किसी step को एक ही तरह की सोच को लगातार लागू करने की आवश्यकता है, तो आपको एक skill की आवश्यकता है।
Agent skill एक MCP server नहीं है
MCP (model context protocol) एक ऐसा protocol है जो एक agent को बाहरी system से जोड़ता है। एक MCP server एक ऐसी process है जो चलती है, उस protocol का पालन करती है, और agent के लिए tools उपलब्ध कराती है। इसे आमतौर पर configuration, credentials, और या तो एक local command या एक network endpoint की आवश्यकता होती है। एक skill केवल एक folder है जिसमें एक markdown file होती है। इसमें कोई process, कोई port और कोई protocol नहीं होता।
Context cost में भी इसी तरह का अंतर है। एक MCP server द्वारा उपलब्ध कराया गया प्रत्येक tool एक नाम, एक विवरण और एक argument schema के साथ आता है, और डिफ़ॉल्ट रूप से ये पूरे session के दौरान request में बने रहते हैं, चाहे उनका उपयोग हो या न हो। कुछ clients ने मांग पर tool schemas को fetch करना शुरू कर दिया है, लेकिन उन्हें पहले से load करना अभी भी सामान्य प्रक्रिया है। एक skill जब उपयोग में नहीं होती, तो वह केवल text की एक पंक्ति होती है।
ये दोनों एक-दूसरे के पूरक हैं, और सबसे प्रभावी setups में दोनों का उपयोग किया जाता है। MCP server access प्रदान करता है। Skill प्रक्रिया प्रदान करती है: आपकी टीम के वास्तविक workflow के लिए उन tools में से किसे call करना है, किस क्रम में करना है, और एक अच्छा परिणाम कैसा दिखता है। यदि आप अपना स्वयं का server host करते हैं, तो running MCP servers on a VPS इस विषय के उस पहलू को कवर करता है।
Agent skill, system prompt या AGENTS.md नहीं है
ये दोनों markdown में दिए गए निर्देश हैं, इसलिए यह भ्रम होना स्वाभाविक है। इनका अंतर इनके लोड होने के समय में है। AGENTS.md, CLAUDE.md और system prompt हमेशा active रहते हैं। एक skill की आवश्यकता केवल मांग पर होती है।
इसकी जाँच का एक ही प्रश्न है: क्या किसी ऐसे कार्य में इस पैराग्राफ को अनदेखा करना गलत होगा जिसका इससे कोई लेना-देना नहीं है? House style, build command और branch naming rule हर कार्य पर लागू होते हैं, इसलिए वे always-on file में होने चाहिए, जहाँ हर बार लोड होना ही उनका उद्देश्य है। आप महीने में दो बार जो release checklist चलाते हैं, वह हर कार्य पर लागू नहीं होती, इसलिए वह एक skill में होनी चाहिए। जब आपकी always-on file का कोई भाग एक क्रमिक प्रक्रिया (numbered procedure) बन जाए, तो उसे स्थानांतरित करने का यही संकेत है।
इन फाइलों के अपने नियम हैं जिन्हें सही रखना आवश्यक है। AGENTS.md में क्या होना चाहिए और human file में क्या और एक design.md जो codebase की संरचना को समझाती है देखें, ये वे दो फाइलें हैं जिनका हम उपयोग करते हैं।
न्यूनतम skill कैसी दिखती है
Claude Code में, व्यक्तिगत skills ~/.claude/skills/<name>/SKILL.md में रहती हैं और आपके सभी projects पर लागू होती हैं। Project skills .claude/skills/<name>/SKILL.md में रहती हैं और git में commit की जाती हैं, इसलिए उस repository पर काम करने वाले प्रत्येक व्यक्ति और प्रत्येक agent के पास वे उपलब्ध होती हैं। GitHub Copilot और VS Code इसके बजाय .github/skills/ से workspace skills पढ़ते हैं। इसके अंदर की file वही file होती है।
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.यह एक पूर्ण skill है। directory का नाम वह command बन जाता है जिसे आप type करते हैं, इसलिए यह /restore-drill है। Claude Code में /skills menu यह सूची दिखाता है कि क्या install है, जो यह पुष्टि करने का सबसे तेज़ तरीका है कि file को पहचान लिया गया है। यदि यह उस menu में नहीं है, तो नाम गलत है: file का नाम SKILL.md होना चाहिए, और directory का नाम lowercase अक्षरों, अंकों और single hyphens में होना चाहिए। वही प्रक्रिया जिसे एक procedure के रूप में लिखा गया है जिसे आपका agent दोबारा चला सके, VPS पर scheduled restic backups के साथ एक स्वाभाविक साथी है, जहाँ backup चलना और backup restore करना एक ही बात नहीं है।
कब किसी skill को script होना चाहिए
कोई भी चरण जिसका हर बार एक ही सही उत्तर हो, उसे एक script होना चाहिए। इसमें skill को केवल कुछ पंक्तियों तक सीमित रखें जो यह बताएं कि इसे कब चलाना है और output को कैसे पढ़ना है। इसके दो कारण हैं, और दोनों ही व्यावहारिक हैं।
पहला, script का source कभी भी context window में नहीं जाता है। 300 पंक्तियों का parser केवल अपना output देता है और कुछ नहीं, जबकि markdown निर्देशों के रूप में लिखी गई वही logic हर बार skill लोड होने पर अपनी पूरी लंबाई के बराबर जगह लेती है।
दूसरा, एक script दो बार एक ही उत्तर देती है। यदि किसी model से हर बार log parsing के नियम को फिर से बनाने के लिए कहा जाए, तो खराब दिन होने पर वह इसमें थोड़ा बदलाव कर सकता है, और आपको तब तक पता नहीं चलेगा जब तक दो संख्याएं आपस में मेल न खाएं।
इसलिए काम को उसके प्रकार के आधार पर विभाजित करें। "CSV को parse करें और हर उस row को print करें जहाँ total, line items से मेल नहीं खाता" एक script है। "script द्वारा print की गई rows को देखें और बताएं कि उनमें से कौन सी data entry की गलती लगती है" एक skill instruction है। निर्णय लेने की प्रक्रिया को markdown में और determinism को code में रखना, एक ऐसा loop बनाने जैसा ही अनुशासन है जिसे एक agent आपके देखे बिना चला सकता है।
मेरा skill कभी trigger क्यों नहीं होता?
इसका कारण यह है कि आपका description केवल यह बताता है कि skill क्या करता है, लेकिन यह कभी नहीं बताता कि उसे कब इस्तेमाल करना है। वह एक पंक्ति ही एकमात्र आधार है जिससे agent आपके अनुरोध का मिलान करता है। "Helps with database work" किसी विशेष चीज़ से मेल नहीं खाता है। "Runs a schema migration against the staging database. Use when the user asks to migrate a table, add a column, or change a schema" में वे शब्द शामिल हैं जिन्हें एक व्यक्ति वास्तव में टाइप करता है, इसलिए यह सक्रिय हो जाता है।
इसके विपरीत, एक ऐसी विफलता भी होती है जहाँ skill लगातार trigger होता रहता है। "Use for any code changes in this repository" जैसा विवरण हर चीज़ से मेल खाता है, इसलिए body हर task पर load हो जाती है और फिर session के बाकी समय के लिए context में बनी रहती है। विवरण को केवल उस स्थिति तक सीमित करें जिसके लिए आपने इसे बनाया है। Claude Code में आप frontmatter में disable-model-invocation: true भी set कर सकते हैं, जो automatic loading को रोकता है और जब आप skill का नाम टाइप करते हैं, तब उसे उपलब्ध रखता है।
तीसरी विफलता वह skill है जो किसी tool की नकल करती है। agent को किसी ऐसे API को curl करने के निर्देश देना जिसे उसका MCP server पहले से ही expose करता है, या जब harness में search tool मौजूद हो तब files को grep करना, आपको एक धीमा रास्ता देता है और साथ ही निर्देशों के दो ऐसे सेट देता है जो आपस में विरोधाभासी हो सकते हैं। duplicate को हटा दें और इसके बजाय अपने उद्देश्य का वर्णन करें।
यह अनुमान न लगाएँ कि आप इन तीन में से किस समस्या का सामना कर रहे हैं। एक नए session में एक ही prompt को दो बार चलाएँ, एक बार skill को उपलब्ध रखकर और एक बार उसे बंद करके, फिर उत्तरों की तुलना करें। नया session महत्वपूर्ण है, क्योंकि जिस session में आपने skill लिखा था, उसमें पहले से ही वह सब कुछ शामिल होता है जो skill कहता है, जिससे लिखित संस्करण में मौजूद कमियाँ छिप जाती हैं। Anthropic का skill-creator plugin Claude Code के भीतर उस तुलना को automate करता है, जिसमें ऐसे prompts तैयार करना शामिल है जिन्हें skill को trigger करना चाहिए और जिन्हें नहीं करना चाहिए, साथ ही यह मापना कि प्रत्येक कितनी बार trigger होता है।
क्या यह किसी एक वेंडर का फॉर्मेट है या एक मानक?
Anthropic ने 2025 के अंत में इस फॉर्मेट को प्रकाशित किया, और फिर इसे agentskills.io पर होस्ट किए गए एक ओपन स्टैंडर्ड के रूप में जारी किया। अगस्त 2026 तक, वह स्पेसिफिकेशन आवश्यक name और description फील्ड्स, वैकल्पिक license, compatibility, metadata और allowed-tools फील्ड्स, तीन वैकल्पिक डायरेक्टरीज, और स्टेज्ड लोडिंग व्यवहार को परिभाषित करता है। यह एक रेफरेंस वैलिडेटर भी प्रदान करता है, इसलिए साझा करने से पहले skills-ref validate ./my-skill किसी फोल्डर को स्पेसिफिकेशन के अनुसार चेक करता है।
क्लाइंट लिस्ट ही असली संकेत है। एक ही फोल्डर को Claude Code, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot, VS Code, Goose, OpenHands और opencode आदि द्वारा पढ़ा जाता है। Microsoft अपने स्वयं के स्किल्स को github.com/microsoft/skills पर इसी फॉर्मेट में प्रकाशित करता है, और Skill Recorder नामक एक डेस्कटॉप टूल प्रदान करता है जो आपके द्वारा एक बार कार्य करने की प्रक्रिया को देखता है, उसे एक इंटेंट और क्रमिक स्टेप्स के रूप में पुनर्गठित करता है, और परिणाम को एक स्किल के रूप में लिखता है। यदि कोई वेंडर ऐसा रिकॉर्डर बना रहा है जिसका आउटपुट फॉर्मेट किसी और के स्पेसिफिकेशन का हिस्सा है, तो यह एक अच्छा संकेत है कि यह फॉर्मेट अब किसी एक प्रोडक्ट का फीचर नहीं रह गया है।
सबसे पहले क्या लिखें
Library की योजना न बनाएं। तब तक प्रतीक्षा करें जब तक आप खुद को तीसरी बार किसी चैट में वही निर्देश पेस्ट करते हुए न पाएं, फिर उस टेक्स्ट को एक SKILL.md में ले जाएं और पेस्ट को हटा दें। जो दोहराव आप पहले ही महसूस कर चुके हैं, वही किसी ऐसे कौशल को सहेजने का एकमात्र विश्वसनीय कारण है जो रखने योग्य है। एक सर्च प्रक्रिया पहला अच्छा कदम है, और आपके अपने SearXNG instance द्वारा समर्थित सर्च कौशल इसका स्वरूप दर्शाता है।
दो आदतें library को व्यवस्थित रखती हैं। किसी भी ऐसे कौशल को install करने से पहले उसे पढ़ें जिसे आपने नहीं लिखा है, जिसमें scripts भी शामिल हैं, क्योंकि कौशल वे निर्देश हैं जिनका आपका agent पालन करेगा और वह कोड जिसे वह चला सकता है: इसे किसी अजनबी से software install करने जैसा समझें। और credentials को folder से बाहर रखें, क्योंकि कौशल एक text file है जिसे commit और share किया जाता है। अपने agents से secrets को दूर रखना बताता है कि वे मान (values) कहाँ होने चाहिए, और इस वर्ष agents सीखने का रोड मैप कौशल को बाकी setup के साथ क्रम में रखता है।
FAQ
Agent skill और MCP server के बीच क्या अंतर है?
MCP (model context protocol) server एक चल रही process है जो एक protocol के माध्यम से agent को tools उपलब्ध कराती है। इसके लिए configuration और credentials की आवश्यकता होती है, और इसके tool definitions सामान्यतः पूरे session के दौरान context का उपयोग करते हैं, चाहे उनका उपयोग हो या न हो। Agent skill एक folder है जिसमें SKILL.md file होती है। इसमें कोई process या protocol नहीं होता, और जब तक agent इसे पढ़ने का निर्णय नहीं लेता, यह लगभग 100 tokens की लागत लेता है। किसी system तक agent की पहुँच बनाने के लिए MCP server का उपयोग करें। उस पहुँच का सही ढंग से उपयोग करने की प्रक्रिया agent को बताने के लिए skill का उपयोग करें। कई setups में दोनों का उपयोग किया जाता है।
क्या agent skills केवल Claude Code के साथ काम करती हैं?
नहीं। Anthropic ने इस format को विकसित किया और फिर इसे agentskills.io पर एक open standard के रूप में जारी किया। इसी folder को Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot, VS Code, Goose, OpenHands और अन्य clients द्वारा पढ़ा जाता है। अंतर केवल यह है कि प्रत्येक client कहाँ देखता है और कौन से अतिरिक्त frontmatter fields को समझता है। Claude Code ~/.claude/skills/ और .claude/skills/ को पढ़ता है, जबकि GitHub Copilot और VS Code repository में .github/skills/ को पढ़ते हैं। SKILL.md file स्वयं उनके बीच बिना किसी बदलाव के काम करती है।
गति धीमी होने से पहले मैं कितनी skills install कर सकता हूँ?
सीमा संख्या के बजाय startup budget है। प्रत्येक installed skill अपने नाम और विवरण के साथ योगदान देती है, जो specification के प्रकाशित मार्गदर्शन के अनुसार लगभग 100 tokens है। इसलिए, तीस skills की लागत लगभग 3,000 tokens होती है, इससे पहले कि उनमें से किसी का उपयोग किया जाए। जो सबसे पहले प्रभावित होता है वह matching है, गति नहीं: समान विवरण वाली कई skills के कारण model के लिए सही skill चुनना कठिन हो जाता है। ऐसे विवरण लिखें जो एक-दूसरे से न मिलते हों, और जिन skills का उपयोग आपने बंद कर दिया है, उन्हें delete कर दें।
क्या यह निर्देश skill में होना चाहिए या AGENTS.md में?
स्वयं से पूछें कि क्या यह repository के हर कार्य पर लागू होता है। Build commands, house style और naming rules सभी पर लागू होते हैं, इसलिए वे हमेशा active रहने वाली file में होने चाहिए, जहाँ हर बार load होना ही मुख्य उद्देश्य है। कोई ऐसी प्रक्रिया जिसे आप कभी-कभार चलाते हैं, जैसे कि release checklist या restore drill, उसे एक skill होना चाहिए, ताकि उन कार्यों पर इसकी कोई लागत न आए जिन्हें इसकी आवश्यकता नहीं है। AGENTS.md का कोई हिस्सा जो बढ़कर numbered steps में बदल गया है, वह आमतौर पर एक ऐसी skill है जिसे अलग कर देना चाहिए।