Agent skill क्या है और यह कैसे काम करती है?
Agent skill एक फोल्डर है जिसमें SKILL.md फाइल होती है। यह एक विशाल प्रॉम्प्ट के बजाय केवल जरूरत पड़ने पर निर्देश लोड करती है। जानें कि यह MCP से कैसे अलग है और क्यों यह अधिक कुशल है।
Agent skill वास्तव में क्या है
Agent skill डिस्क पर स्थित एक फोल्डर है जिसके अंदर SKILL.md नाम की एक फाइल होती है। उस फाइल में एक नाम, एक संक्षिप्त विवरण और सादे markdown में लिखे गए निर्देश होते हैं। Agent स्टार्टअप के समय विवरण को लोड करता है, और यह निर्देशों को केवल तभी पढ़ता है जब आपका अनुरोध उस विवरण से मेल खाता है। Skills के बारे में लगभग बाकी सब कुछ इन दो वाक्यों से ही स्पष्ट हो जाता है।
फोल्डर में उस एक फाइल से अधिक चीजें हो सकती हैं। Agent Skills विनिर्देश तीन वैकल्पिक निर्देशिकाओं (directories) का नाम बताता है: 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 के अनुसार काम कर रहा है।
एजेंट स्किल एक टूल कॉल नहीं है
Tool, जिसे function call भी कहा जाता है, ऐसी चीज़ है जिसे model invoke कर सकता है। Harness model को एक schema भेजता है: name, description और arguments का shape। Model एक call emit करता है, आपका code उसे run करता है और result message के रूप में वापस आता है। Tools काम करते हैं। इस exchange के दोनों हिस्से harness, यानी model के आसपास loop चलाने वाले program के अंतर्गत आते हैं। यही वह component भी है जो startup पर आपकी skill descriptions पढ़ता है और तय करता है कि किसी skill को कब open करना है।
एक स्किल अपने आप में कुछ भी निष्पादित (execute) नहीं करती है। एजेंट इसे पढ़ता है, फिर उन टूल्स का उपयोग करके कार्य करता है जो उसके पास पहले से थे। मॉडल एक स्किल को उस तरह से आर्गुमेंट्स नहीं भेज सकता जैसे वह एक टूल को भेजता है। एक स्किल यह कर सकती है कि वह मॉडल को बताए कि कौन से टूल्स का उपयोग करना है, किस क्रम में करना है, और बाद में क्या जाँच करनी है। किसी दूसरे एजेंट को काम सौंपना इसका सबसे स्पष्ट उदाहरण है: एक Claude Code सेशन पहले से ही दूसरे को मैसेज भेज सकता है, और स्किल वह जगह है जहाँ आप लिखते हैं कि ऐसा करना कब उचित है और क्या भेजना है।
संक्षेप में: एक टूल एजेंट को एक नई क्षमता देता है, और एक स्किल उसे उस क्षमता के बारे में निर्णय लेने की शक्ति देती है जो उसके पास पहले से है। यदि किसी चरण को हर बार एक सटीक, मान्य परिणाम देना है, तो आपको एक टूल या स्क्रिप्ट की आवश्यकता होती है। यदि किसी चरण को लगातार एक ही तरह की सोच लागू करने की आवश्यकता है, तो आपको एक स्किल की आवश्यकता होती है। एक स्किल केवल निर्णय लेने तक सीमित हो सकती है और फिर भी वह हो सकती है जिसका आप सबसे अधिक उपयोग करते हैं, जैसा कि Ponytail, जो एक कोडिंग एजेंट को सबसे छोटा बदलाव करने के लिए प्रेरित करता है जो काम करता है दिखाता है: यह कोई नई क्षमता नहीं जोड़ती है और केवल यह बदलती है कि एजेंट उन क्षमताओं का उपयोग कैसे करता है जो उसके पास पहले से हैं। वह निर्णय दूसरी दिशा में भी इशारा कर सकता है, और the unlazy skill, जो एजेंट को काम जल्दी पूरा घोषित करने से रोकने के लिए Depth Tree का उपयोग करती है वही ट्रिक है जिसका उद्देश्य संयम के बजाय पूर्णता है।
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 हमेशा सक्रिय रहते हैं। कोई skill आवश्यकता होने पर सक्रिय होता है। Claude Code की output styles हमेशा सक्रिय रहने वाले निर्देशों के सबसे सुदूर स्तर पर होती हैं, क्योंकि किसी एक का चयन करने पर system prompt स्वयं संपादित हो जाता है, इसलिए वह session के हर उत्तर को प्रभावित करती है, उन उत्तरों को भी जिन पर कोई skill कभी लागू नहीं होती।
इसकी जाँच के लिए एक ही प्रश्न पर्याप्त है: क्या किसी ऐसे कार्य के दौरान इस पैराग्राफ को अनदेखा करना गलत होगा जिसका इससे कोई लेना-देना नहीं है? House style, build command और branch naming rule हर कार्य पर लागू होते हैं, इसलिए वे always-on फाइल में होने चाहिए, जहाँ हर बार लोड होना ही उनका उद्देश्य है। महीने में दो बार चलने वाली release checklist हर कार्य पर लागू नहीं होती, इसलिए वह एक skill में होनी चाहिए। जब आपकी always-on फाइल का कोई भाग एक क्रमिक प्रक्रिया (numbered procedure) का रूप ले ले, तो उसे वहाँ से हटाने का यही संकेत है।
इन फाइलों के अपने नियम हैं जिनका सही पालन करना आवश्यक है। हमारे द्वारा उपयोग की जाने वाली दो फाइलों के लिए AGENTS.md में क्या शामिल करें और human file में क्या रखें और codebase की संरचना समझाने वाली design.md देखें।
न्यूनतम 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 वही होती है।
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 देता है और कुछ नहीं, जबकि वही logic यदि markdown निर्देशों के रूप में लिखी जाए, तो हर बार skill लोड होने पर उसकी पूरी लंबाई का खर्च पड़ता है।
दूसरा, एक script दो बार एक ही उत्तर देती है। यदि किसी model से हर बार log parsing के नियम को फिर से बनाने के लिए कहा जाए, तो खराब दिन होने पर वह इसमें थोड़ा बदलाव कर सकता है, और आपको तब तक पता नहीं चलेगा जब तक कि दो संख्याएं आपस में मेल न खाएं।
इसलिए काम को उसके प्रकार के आधार पर विभाजित करें। "CSV को parse करें और हर उस row को print करें जहाँ total, line items से मेल नहीं खाता" एक script है। "script द्वारा print की गई rows को देखें और बताएं कि उनमें से कौन सी data entry की गलती लगती है" एक skill instruction है। निर्णय को markdown में और determinism को code में रखना, बिना आपकी निगरानी के agent द्वारा चलाए जा सकने वाले loop को बनाने के समान ही अनुशासन है।
मेरा 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 को हटा दें और इसके बजाय उद्देश्य (intent) का वर्णन करें।
यह अनुमान न लगाएँ कि आप इनमें से किस समस्या का सामना कर रहे हैं। एक fresh session में एक ही prompt को दो बार चलाएँ, एक बार skill को उपलब्ध रखकर और एक बार इसे बंद करके, फिर उत्तरों की तुलना करें। fresh session महत्वपूर्ण है, क्योंकि जिस session में आपने skill लिखा था, उसमें पहले से ही वह सब कुछ शामिल है जो skill कहता है, जो लिखित संस्करण में मौजूद कमियों को छिपा देता है। Anthropic का skill-creator plugin Claude Code के भीतर उस तुलना को automate करता है, जिसमें ऐसे prompts तैयार करना शामिल है जो skill को trigger करने चाहिए और जो नहीं करने चाहिए, साथ ही यह मापना कि प्रत्येक कितनी बार ऐसा करता है। यदि skill load हो जाता है और फिर भी agent वह नहीं करता जो उसे करना चाहिए, तो विवरण आपकी समस्या नहीं है, और वे कारण कि क्यों एक agent उन निर्देशों को अनदेखा कर देता है जिन्हें वह पहले ही पढ़ चुका है वह जगह है जहाँ आपको आगे देखना चाहिए।
क्या यह किसी एक वेंडर का फॉर्मेट है या एक मानक?
Anthropic ने 2025 के अंत में इस फॉर्मेट को प्रकाशित किया, और फिर इसे agentskills.io पर होस्ट किए गए एक ओपन स्टैंडर्ड के रूप में जारी किया। अगस्त 2026 तक, वह स्पेसिफिकेशन आवश्यक name और description फील्ड्स, वैकल्पिक license, compatibility, metadata और allowed-tools फील्ड्स, तीन वैकल्पिक डायरेक्टरीज, और staged loading व्यवहार को परिभाषित करता है। यह एक रेफरेंस वैलिडेटर भी प्रदान करता है, इसलिए साझा करने से पहले 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 नामक एक डेस्कटॉप टूल प्रदान करता है जो आपके द्वारा एक कार्य को एक बार करने की प्रक्रिया को देखता है, उसे एक intent और क्रमिक चरणों के रूप में पुनर्गठित करता है, और परिणाम को एक स्किल के रूप में लिखता है। यदि कोई वेंडर ऐसा रिकॉर्डर बना रहा है जिसका आउटपुट फॉर्मेट किसी और की स्पेसिफिकेशन का हिस्सा है, तो यह एक अच्छा संकेत है कि यह फॉर्मेट अब केवल एक प्रोडक्ट का फीचर नहीं रह गया है।
सबसे पहले क्या लिखें
Library की योजना न बनाएं। तब तक प्रतीक्षा करें जब तक आप खुद को तीसरी बार चैट में वही निर्देश पेस्ट करते हुए न पाएं, फिर उस टेक्स्ट को एक SKILL.md में ले जाएं और पेस्ट को हटा दें। जिस दोहराव को आप पहले ही महसूस कर चुके हैं, वही किसी ऐसे कौशल को बनाए रखने का एकमात्र विश्वसनीय कारण है जो रखने योग्य है। एक search procedure पहला अच्छा कदम है, और आपके अपने SearXNG instance द्वारा समर्थित एक search skill इसका स्वरूप दर्शाती है।
दो आदतें library को स्वस्थ रखती हैं। किसी भी ऐसे कौशल को install करने से पहले उसे पढ़ें जिसे आपने नहीं लिखा है, इसमें scripts भी शामिल हैं, क्योंकि एक कौशल वे निर्देश हैं जिनका आपका agent पालन करेगा और वह code जिसे वह चला सकता है: इसे किसी अजनबी से software install करने जैसा समझें। और credentials को folder से बाहर रखें, क्योंकि एक कौशल एक text file है जिसे commit और share किया जाता है। अपने agents से secrets को दूर रखना इस बात को कवर करता है कि वे values कहाँ होनी चाहिए, और इस वर्ष agents सीखने के लिए road map कौशल को बाकी 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 नहीं होता, और यह लगभग 100 tokens का खर्च लेती है जब तक कि agent इसे पढ़ने का निर्णय नहीं लेता। किसी agent को system तक पहुँच प्रदान करने के लिए 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 कर सकता हूँ इससे पहले कि यह system को धीमा कर दे?
सीमा संख्या के बजाय 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 सभी कार्यों पर लागू होते हैं, इसलिए वे always-on file में होने चाहिए, जहाँ हर बार load होना ही मुख्य उद्देश्य है। कोई ऐसी प्रक्रिया जिसे आप कभी-कभार चलाते हैं, जैसे कि release checklist या restore drill, उसे एक skill होना चाहिए, ताकि उन कार्यों पर इसका कोई खर्च न हो जिन्हें इसकी आवश्यकता नहीं है। AGENTS.md का कोई भाग जो बढ़कर numbered steps में बदल गया है, वह आमतौर पर एक ऐसी skill है जिसे move करने की आवश्यकता है।