Skills

Skills कॉन्फ़िगरेशन

अधिकांश Skills कॉन्फ़िगरेशन ~/.openclaw/openclaw.json में skills के अंतर्गत होता है। एजेंट-विशिष्ट दृश्यता agents.defaults.skills और agents.entries.*.skills के अंतर्गत होती है।

json5
{  skills: {    allowBundled: ["gemini", "peekaboo"],    load: {      extraDirs: ["~/Projects/agent-scripts/skills"],      allowSymlinkTargets: ["~/Projects/manager/skills"],      watch: true,    },    install: {      preferBrew: true,      nodeManager: "npm",      allowUploadedArchives: false,    },    workshop: {      autonomous: { enabled: false },      allowSymlinkTargetWrites: false,      approvalPolicy: "auto",      maxPending: 50,      maxSkillBytes: 40000,    },    entries: {      "image-lab": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },        env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },      },      peekaboo: { enabled: true },      sag: { enabled: false },    },  },}

लोडिंग (skills.load)

skills.load.extraDirsstring[]

स्कैन की जाने वाली अतिरिक्त Skill डायरेक्टरियाँ, सबसे कम प्राथमिकता पर (बंडल और Plugin Skills से नीचे)। पाथ ~ समर्थन के साथ विस्तृत किए जाते हैं।

skills.load.allowSymlinkTargetsstring[]

विश्वसनीय वास्तविक लक्ष्य डायरेक्टरियाँ, जिनमें सिमलिंक की गई Skill डायरेक्टरियाँ रिज़ॉल्व हो सकती हैं, भले ही सिमलिंक कॉन्फ़िगर किए गए रूट से बाहर हो। इसका उपयोग जानबूझकर बनाए गए सिबलिंग-रिपॉज़िटरी लेआउट के लिए करें, जैसे <workspace>/skills/manager -> ~/Projects/manager/skills। इस सूची को सीमित रखें—इसे ~ या ~/Projects जैसे व्यापक रूट की ओर इंगित न करें।

skills.load.watchbooleandefault: true

Skill फ़ोल्डरों पर नज़र रखें और SKILL.md फ़ाइलें बदलने पर Skills स्नैपशॉट को रीफ़्रेश करें। समूहबद्ध Skill रूट के अंतर्गत नेस्टेड फ़ाइलें भी शामिल हैं।

इंस्टॉल (skills.install)

skills.install.preferBrewbooleandefault: true

brew उपलब्ध होने पर Homebrew इंस्टॉलर को प्राथमिकता दें।

skills.install.nodeManager"npm" | "pnpm" | "yarn" | "bun"default: "npm"

Skill इंस्टॉल के लिए Node पैकेज मैनेजर की प्राथमिकता। यह केवल Skill इंस्टॉल को प्रभावित करता है—OpenClaw CLI और Gateway रनटाइम को Node की आवश्यकता होती है, क्योंकि कैनोनिकल स्टेट स्टोर node:sqlite का उपयोग करता है। openclaw setup --node-manager और openclaw onboard --node-manager, npm, pnpm, या bun स्वीकार करते हैं; Yarn-आधारित Skill इंस्टॉल के लिए कॉन्फ़िगरेशन में सीधे "yarn" सेट करें।

skills.install.allowUploadedArchivesbooleandefault: false

विश्वसनीय operator.admin Gateway क्लाइंट को skills.upload.* के माध्यम से स्टेज किए गए निजी zip आर्काइव इंस्टॉल करने दें। सामान्य ClawHub इंस्टॉल के लिए इस सेटिंग की आवश्यकता नहीं होती।

ऑपरेटर इंस्टॉल नीति (security.installPolicy)

जब ऑपरेटरों को होस्ट-विशिष्ट नीति के साथ Skill और Plugin इंस्टॉल को स्वीकृत या अवरुद्ध करने के लिए किसी विश्वसनीय स्थानीय कमांड की आवश्यकता हो, तो security.installPolicy का उपयोग करें। यह नीति OpenClaw द्वारा स्रोत सामग्री स्टेज किए जाने के बाद और इंस्टॉल या अपडेट जारी रहने से पहले चलती है। यह ClawHub Skills, अपलोड किए गए Skills, Git/स्थानीय Skills, Skill निर्भरता इंस्टॉलर और Plugin इंस्टॉल/अपडेट स्रोतों पर लागू होती है।

json5
{  security: {    installPolicy: {      enabled: true,      // Omit targets to cover every supported target.      targets: ["skill", "plugin"],      exec: {        source: "exec",        command: "/usr/local/bin/openclaw-install-policy",        args: ["--json"],        timeoutMs: 10000,        noOutputTimeoutMs: 10000,        maxOutputBytes: 1048576,        passEnv: ["OPENCLAW_STATE_DIR", "PATH"],        env: { POLICY_MODE: "strict" },        trustedDirs: ["/usr/local/bin"],      },    },  },}
security.installPolicy.enabledbooleandefault: false

ऑपरेटर-स्वामित्व वाली इंस्टॉल नीति को सक्षम करता है। किसी मान्य exec कमांड के बिना सक्षम होने पर इंस्टॉल बंद स्थिति में विफल होते हैं।

security.installPolicy.targets("skill" | "plugin")[]

वैकल्पिक लक्ष्य फ़िल्टर। इसे छोड़ने पर नीति प्रत्येक समर्थित लक्ष्य पर लागू होती है, ताकि नए इंस्टॉल अनपेक्षित रूप से खुली स्थिति में विफल न हों।

security.installPolicy.exec.commandstring

विश्वसनीय नीति एक्ज़िक्यूटेबल का निरपेक्ष पाथ। OpenClaw इसे शेल के बिना चलाता है और उपयोग से पहले पाथ को सत्यापित करता है।

security.installPolicy.exec.argsstring[]

command के बाद पास किए जाने वाले स्थिर आर्ग्युमेंट।

security.installPolicy.exec.timeoutMsnumberdefault: 10000

एक नीति निर्णय के लिए अधिकतम वॉल-क्लॉक रनटाइम।

security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMs

नीति के बंद स्थिति में विफल होने से पहले stdout या stderr आउटपुट के बिना अधिकतम समय।

security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576

नीति प्रक्रिया से स्वीकार किए जाने वाले संयुक्त stdout और stderr बाइट की अधिकतम संख्या।

security.installPolicy.exec.env"Record<string,
security.installPolicy.exec.passEnvstring[]

OpenClaw प्रक्रिया से नीति प्रक्रिया में कॉपी किए जाने वाले एनवायरनमेंट वेरिएबल के नाम। केवल नामित वेरिएबल पास किए जाते हैं।

security.installPolicy.exec.trustedDirsstring[]

उन डायरेक्टरियों की वैकल्पिक अनुमति-सूची जिनमें नीति एक्ज़िक्यूटेबल हो सकता है।

security.installPolicy.exec.allowInsecurePathbooleandefault: false

कमांड पाथ के स्वामित्व और अनुमति जाँच को बायपास करता है। इसका उपयोग केवल तब करें जब पाथ किसी अन्य तंत्र द्वारा सुरक्षित हो।

security.installPolicy.exec.allowSymlinkCommandbooleandefault: false

कॉन्फ़िगर किए गए कमांड पाथ को सिमलिंक होने देता है। रिज़ॉल्व किए गए लक्ष्य को फिर भी अन्य पाथ जाँच पूरी करनी होंगी। इंटरप्रेटर स्क्रिप्ट आर्ग्युमेंट सीधे नियमित फ़ाइलें होने चाहिए, सिमलिंक नहीं।

नीति को stdin पर protocolVersion: 1, openclawVersion, targetType, targetName, sourcePath, sourcePathKind, वैकल्पिक संरचित source, संरचित origin, और request वाला एक JSON ऑब्जेक्ट मिलता है। इसे stdout पर एक JSON ऑब्जेक्ट लिखना होगा: { "protocolVersion": 1, "decision": "allow" } या { "protocolVersion": 1, "decision": "block", "reason": "..." }। गैर-शून्य एक्ज़िट, टाइमआउट, विकृत JSON, अनुपस्थित फ़ील्ड या असमर्थित प्रोटोकॉल संस्करण बंद स्थिति में विफल होते हैं।

OpenClaw सामान्य Gateway स्टार्टअप के दौरान इंस्टॉल नीति निष्पादित नहीं करता। नीति सक्षम लेकिन अनुपलब्ध होने पर इंस्टॉल और अपडेट बंद स्थिति में विफल होते हैं। openclaw doctor स्थिर सत्यापन करता है; openclaw doctor --deep कॉन्फ़िगर किए गए कमांड के विरुद्ध एक कृत्रिम इंस्टॉल प्रोब निष्पादित करता है।

बल्क अपडेट प्रत्येक लक्ष्य पर अलग-अलग नीति लागू करते हैं: अवरुद्ध Skill या Plugin अपडेट उस लक्ष्य के लिए विफल होता है, लेकिन नीति को अक्षम नहीं करता और न ही बैच में बाद के लक्ष्यों को छोड़ता है।

stdin का उदाहरण:

json
{  "protocolVersion": 1,  "openclawVersion": "2026.6.1",  "targetType": "skill",  "targetName": "weather",  "sourcePath": "/var/folders/.../openclaw-skill-clawhub/root",  "sourcePathKind": "directory",  "source": {    "kind": "clawhub",    "authority": "openclaw",    "mutable": false,    "network": true  },  "origin": {    "type": "clawhub",    "registry": "https://clawhub.openclaw.ai",    "slug": "weather",    "version": "1.0.0"  },  "request": {    "kind": "skill-install",    "mode": "install",    "requestedSpecifier": "clawhub:weather@1.0.0"  },  "skill": {    "installId": "clawhub"  }}

न्यूनतम नीति कमांड:

js
#!/usr/bin/env node let input = "";process.stdin.setEncoding("utf8");process.stdin.on("data", (chunk) => {  input += chunk;});process.stdin.on("end", () => {  const request = JSON.parse(input);  if (request.targetType === "plugin" && request.source?.kind === "local-path") {    process.stdout.write(      JSON.stringify({        protocolVersion: 1,        decision: "block",        reason: "इस होस्ट पर स्थानीय Plugin पाथ स्वीकृत नहीं हैं",      }),    );    return;  }  process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));});

बंडल किए गए Skill की अनुमति-सूची

skills.allowBundledstring[]

केवल बंडल किए गए Skills के लिए वैकल्पिक अनुमति-सूची। सेट होने पर, केवल सूची में मौजूद बंडल किए गए Skills पात्र होते हैं। प्रबंधित, एजेंट-स्तरीय और कार्यस्थान Skills अप्रभावित रहते हैं।

प्रति-Skill प्रविष्टियाँ (skills.entries)

entries के अंतर्गत कुंजियाँ डिफ़ॉल्ट रूप से Skill name से मेल खाती हैं। यदि कोई Skill metadata.openclaw.skillKey परिभाषित करता है, तो उसके बजाय उस कुंजी का उपयोग करें। हाइफ़न वाले नामों को उद्धरण चिह्नों में रखें (JSON5 उद्धृत कुंजियों की अनुमति देता है)।

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk .enabled" type="boolean"> false बंडल या इंस्टॉल होने पर भी Skill को अक्षम करता है। coding-agent बंडल किया गया Skill ऑप्ट-इन है—इसे true पर सेट करें और सुनिश्चित करें कि claude, codex, opencode, या कोई अन्य समर्थित CLI इंस्टॉल और प्रमाणीकृत हो।

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk .apiKey" type='string | { source, provider, id }'> metadata.openclaw.primaryEnv घोषित करने वाले Skills के लिए सुविधा फ़ील्ड। सादे टेक्स्ट स्ट्रिंग या SecretRef का समर्थन करता है: { source: "env", provider: "default", id: "VAR_NAME" }

"skills.entries.<key�����r�
"skills.entries.<key�w₫��ܩ

एजेंट अनुमति-सूचियाँ (agents)

जब एक ही मशीन/कार्यस्थान के Skill रूट रखते हुए प्रत्येक एजेंट के लिए अलग दृश्यमान Skill सेट चाहिए, तो एजेंट कॉन्फ़िगरेशन का उपयोग करें।

json5
{  agents: {    defaults: {      skills: ["github", "weather"], // shared baseline    },    list: [      { id: "writer" }, // inherits github, weather      { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely      { id: "locked-down", skills: [] }, // no skills    ],  },}
agents.defaults.skillsstring[]

agents.entries.*.skills छोड़ने वाले एजेंटों द्वारा विरासत में ली जाने वाली साझा आधारभूत अनुमति-सूची। Skills को डिफ़ॉल्ट रूप से अप्रतिबंधित रखने के लिए इसे पूरी तरह छोड़ दें।

agents.entries.*.skillsstring[]

उस एजेंट के लिए स्पष्ट अंतिम Skill सेट। स्पष्ट सूचियाँ विरासत में मिले डिफ़ॉल्ट को प्रतिस्थापित करती हैं—वे मर्ज नहीं होतीं। उस एजेंट के लिए कोई Skill प्रदर्शित न करने हेतु इसे [] पर सेट करें।

Workshop (skills.workshop)

skills.workshop.autonomous.enabledbooleandefault: false

जब true हो, तब OpenClaw स्थायी सुधारों से लंबित प्रस्ताव बना सकता है और सिस्टम के निष्क्रिय होने के बाद सफलतापूर्वक पूर्ण किए गए महत्वपूर्ण कार्य की समीक्षा कर सकता है। इससे पात्र चरणों के बाद पृष्ठभूमि में एक मॉडल रन जुड़ सकता है। उपयोगकर्ता द्वारा आरंभ किया गया स्किल निर्माण और /learn, सेटिंग के false होने पर भी काम करते रहते हैं।

पात्रता, गोपनीयता, लागत, केवल-प्रस्ताव अनुमतियों और समस्या निवारण के लिए स्वयं सीखना देखें।

skills.workshop.approvalPolicy"pending" | "auto"default: "auto"

auto बिना किसी अतिरिक्त अनुमोदन संकेत के एजेंट द्वारा आरंभ किए गए लागू करने, अस्वीकार करने या क्वारंटीन करने की अनुमति देता है। pending के लिए ऑपरेटर की स्वीकृति आवश्यक है।

skills.workshop.allowSymlinkTargetWritesbooleandefault: false

Skill Workshop को ऐसे वर्कस्पेस स्किल सिमलिंक के माध्यम से लिखने की अनुमति दें, जिनका वास्तविक लक्ष्य पहले से ही skills.load.allowSymlinkTargets द्वारा विश्वसनीय है। इसे तब तक अक्षम रखें, जब तक जनरेट किए गए प्रस्ताव को लागू करने की प्रक्रिया को उस साझा स्किल रूट में बदलाव नहीं करना चाहिए।

skills.workshop.maxPendingnumberdefault: 50

प्रति वर्कस्पेस बनाए रखे जाने वाले लंबित और क्वारंटीन किए गए प्रस्तावों की अधिकतम संख्या (अनुमत सीमा: 1-200)।

skills.workshop.maxSkillBytesnumberdefault: 40000

प्रस्ताव के मुख्य भाग का अधिकतम आकार बाइट में (अनुमत सीमा: 1024-200000)। प्रस्ताव विवरणों पर अलग से 160 बाइट की कठोर सीमा है, क्योंकि वे खोज और सूचीकरण आउटपुट में दिखाई देते हैं।

यह कॉन्फ़िग जिन प्रस्ताव जीवनचक्र, CLI कमांड, एजेंट टूल पैरामीटर और Gateway विधियों को नियंत्रित करता है, उनके लिए Skill Workshop देखें।

सिमलिंक किए गए स्किल रूट

डिफ़ॉल्ट रूप से, वर्कस्पेस, प्रोजेक्ट-एजेंट, अतिरिक्त-डायरेक्टरी और बंडल किए गए स्किल रूट कंटेनमेंट सीमाएँ हैं। <workspace>/skills के अंतर्गत ऐसा सिमलिंक किया गया स्किल फ़ोल्डर, जो रूट के बाहर रिज़ॉल्व होता है, लॉग संदेश के साथ छोड़ दिया जाता है।

किसी अभिप्रेत सिमलिंक लेआउट की अनुमति देने के लिए, विश्वसनीय लक्ष्य घोषित करें:

json5
{  skills: {    load: {      extraDirs: ["~/Projects/manager/skills"],      allowSymlinkTargets: ["~/Projects/manager/skills"],    },  },}

इस कॉन्फ़िग के साथ, वास्तविक पथ रिज़ॉल्यूशन के बाद <workspace>/skills/manager -> ~/Projects/manager/skills स्वीकार किया जाता है। extraDirs सीधे सहोदर रिपॉज़िटरी को स्कैन करता है; allowSymlinkTargets मौजूदा लेआउट के लिए सिमलिंक किया गया पथ बनाए रखता है।

Skill Workshop का लागू करना डिफ़ॉल्ट रूप से उन सिमलिंक के माध्यम से नहीं लिखता। Workshop द्वारा पहले से विश्वसनीय सिमलिंक लक्ष्यों के अंतर्गत स्किल में बदलाव की अनुमति देने के लिए, अलग से ऑप्ट इन करें:

json5
{  skills: {    load: {      allowSymlinkTargets: ["~/Projects/manager/skills"],    },    workshop: {      allowSymlinkTargetWrites: true,    },  },}

प्रबंधित ~/.openclaw/skills और व्यक्तिगत ~/.agents/skills डायरेक्टरी पहले से ही स्किल-डायरेक्टरी सिमलिंक को बिना शर्त स्वीकार करती हैं (प्रति-स्किल SKILL.md कंटेनमेंट फिर भी लागू होता है) — allowSymlinkTargets केवल वर्कस्पेस, अतिरिक्त-डायरेक्टरी और प्रोजेक्ट-एजेंट (<workspace>/.agents/skills) रूट के लिए आवश्यक है।

सैंडबॉक्स किए गए स्किल और एनवायरनमेंट वैरिएबल

Docker सैंडबॉक्स में सीक्रेट इस प्रकार पास करें:

json5
{  agents: {    defaults: {      sandbox: {        docker: {          env: { GEMINI_API_KEY: "your-key-here" },        },      },    },  },}

लोडिंग क्रम का स्मरण

text
workspace/skills      (सर्वोच्च)workspace/.agents/skills~/.agents/skills~/.openclaw/skillsबंडल किए गए स्किलskills.load.extraDirs (न्यूनतम)

वॉचर सक्षम होने पर स्किल और कॉन्फ़िग में किए गए बदलाव अगले नए सत्र में, या वॉचर द्वारा बदलाव का पता लगाए जाने पर एजेंट के अगले चरण में प्रभावी होते हैं।

संबंधित

Was this useful?
On this page

On this page