हिन्दी
दस्तावेज़
एजेंट स्किल्स

एजेंट स्किल्स

एजेंट स्किल्स OpenCode को आपके रिपॉज़िटरी या होम डायरेक्टरी से पुन: प्रयोज्य निर्देश खोजने में सक्षम बनाती हैं। स्किल्स नेटिव skill टूल के माध्यम से ऑन-डिमांड लोड होती हैं - एजेंट्स उपलब्ध स्किल्स देख सकते हैं और जरूरत पड़ने पर पूरा कंटेंट लोड कर सकते हैं।

फाइलें रखें

प्रत्येक स्किल नाम के लिए एक फोल्डर बनाएं और उसमें SKILL.md रखें। OpenCode इन लोकेशंस में खोजता है:

  • प्रोजेक्ट कॉन्फ़िग: .opencode/skills/<name>/SKILL.md
  • ग्लोबल कॉन्फ़िग: ~/.config/opencode/skills/<name>/SKILL.md
  • प्रोजेक्ट Claude-कम्पैटिबल: .claude/skills/<name>/SKILL.md
  • ग्लोबल Claude-कम्पैटिबल: ~/.claude/skills/<name>/SKILL.md
  • प्रोजेक्ट agent-कम्पैटिबल: .agents/skills/<name>/SKILL.md
  • ग्लोबल agent-कम्पैटिबल: ~/.agents/skills/<name>/SKILL.md

डिस्कवरी को समझें

प्रोजेक्ट-लोकल पाथ्स के लिए, OpenCode आपकी वर्तमान वर्किंग डायरेक्टरी से git worktree तक ऊपर की ओर चलता है। यह .opencode/ में मैचिंग skills/*/SKILL.md और रास्ते में मैचिंग .claude/skills/*/SKILL.md या .agents/skills/*/SKILL.md लोड करता है।

ग्लोबल डेफिनिशंस भी ~/.config/opencode/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md और ~/.agents/skills/*/SKILL.md से लोड होती हैं।

Frontmatter लिखें

प्रत्येक SKILL.md को YAML frontmatter से शुरू होना चाहिए। केवल ये फील्ड्स पहचाने जाते हैं:

  • name (आवश्यक)
  • description (आवश्यक)
  • license (वैकल्पिक)
  • compatibility (वैकल्पिक)
  • metadata (वैकल्पिक, स्ट्रिंग-टू-स्ट्रिंग मैप)

अज्ञात frontmatter फील्ड्स को अनदेखा किया जाता है।

नाम वैलिडेट करें

name में होना चाहिए:

  • 1-64 कैरेक्टर्स
  • लोअरकेस अल्फ़ान्यूमेरिक सिंगल हाइफन सेपरेटर्स के साथ
  • - से शुरू या खत्म नहीं
  • लगातार -- नहीं
  • SKILL.md वाली डायरेक्टरी के नाम से मैच करे

समतुल्य regex:

^[a-z0-9]+(-[a-z0-9]+)*$

लंबाई नियमों का पालन करें

description 1-1024 कैरेक्टर्स का होना चाहिए। इसे इतना विशिष्ट रखें कि एजेंट सही चुनाव कर सके।

एक उदाहरण का उपयोग करें

.opencode/skills/git-release/SKILL.md इस तरह बनाएं:

---
name: git-release
description: Create consistent releases and changelogs
license: MIT
compatibility: opencode
metadata:
  audience: maintainers
  workflow: github
---
 
## What I do
 
- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command
 
## When to use me
 
Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.

टूल डिस्क्रिप्शन पहचानें

OpenCode skill टूल डिस्क्रिप्शन में उपलब्ध स्किल्स सूचीबद्ध करता है। प्रत्येक एंट्री में स्किल नाम और डिस्क्रिप्शन शामिल है:

<available_skills>
<skill>
  <name>git-release</name>
  <description>Create consistent releases and changelogs</description>
</skill>
</available_skills>

एजेंट टूल को कॉल करके स्किल लोड करता है:

skill({ name: "git-release" })

परमिशंस कॉन्फ़िगर करें

opencode.json में पैटर्न-बेस्ड परमिशंस का उपयोग करके नियंत्रित करें कि एजेंट्स किन स्किल्स को एक्सेस कर सकते हैं:

{
  "permission": {
    "skill": {
      "*": "allow",
      "pr-review": "allow",
      "internal-*": "deny",
      "experimental-*": "ask"
    }
  }
}
परमिशनव्यवहार
allowस्किल तुरंत लोड होती है
denyस्किल एजेंट से छिपी, एक्सेस अस्वीकृत
askलोड करने से पहले यूज़र से अप्रूवल मांगी जाती है

पैटर्न वाइल्डकार्ड सपोर्ट करते हैं: internal-* internal-docs, internal-tools आदि से मैच करता है।

प्रति एजेंट ओवरराइड करें

विशिष्ट एजेंट्स को ग्लोबल डिफॉल्ट्स से अलग परमिशंस दें।

कस्टम एजेंट्स के लिए (एजेंट frontmatter में):

---
permission:
  skill:
    "documents-*": "allow"
---

बिल्ट-इन एजेंट्स के लिए (opencode.json में):

{
  "agent": {
    "plan": {
      "permission": {
        "skill": {
          "internal-*": "allow"
        }
      }
    }
  }
}

स्किल टूल डिसेबल करें

उन एजेंट्स के लिए स्किल्स पूरी तरह डिसेबल करें जिन्हें इनका उपयोग नहीं करना चाहिए:

कस्टम एजेंट्स के लिए:

---
tools:
  skill: false
---

बिल्ट-इन एजेंट्स के लिए:

{
  "agent": {
    "plan": {
      "tools": {
        "skill": false
      }
    }
  }
}

डिसेबल होने पर, <available_skills> सेक्शन पूरी तरह छोड़ दिया जाता है।

लोडिंग ट्रबलशूट करें

अगर कोई स्किल नहीं दिखती:

  • वेरिफाई करें कि SKILL.md सभी कैप्स में है
  • चेक करें कि frontmatter में name और description शामिल है
  • सुनिश्चित करें कि स्किल नाम सभी लोकेशंस में यूनिक हैं
  • परमिशंस चेक करें - deny वाली स्किल्स एजेंट्स से छिपी होती हैं