
skillscript v0.39.1
Skillscript — एजेंट वर्कफ़्लो बनाने के लिए एक छोटी घोषणात्मक भाषा। रनटाइम, कंपाइलर और CLI।
एजेंटों द्वारा लिखी गई सुरक्षित, पुन: प्रयोज्य स्वचालन।
TL;DR —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard। त्वरित आरंभ देखें।
Skillscript क्या है?
Skillscript इस प्रश्न से उभरा: यदि Makefile को बाइनरी के बजाय कौशल बनाने के लिए बनाया जाए तो वह कैसा दिखेगा? इसका उत्तर एक सीमित भाषा है, जो Make से प्रेरित है, और एक रनटाइम है जो एक एजेंट के तर्क को स्थायी, निरीक्षणीय स्वचालन में बदल देता है। एजेंट कौशल लिखता है, आप अनुमोदन करते हैं कि वह क्या कर सकता है, और यह हर बार उसी तरह चलता है।
यह उन टीमों के लिए बनाया गया है जो चाहते हैं कि एजेंट बार-बार होने वाले वर्कफ़्लो बनाएं और चलाएं, बिना उन्हें असीमित शेल एक्सेस, मनमाना पैकेज इंस्टॉलेशन, या प्रोडक्शन क्रेडेंशियल्स पर सीधा नियंत्रण दिए।
एक एजेंट एक कौशल लिखता है। एक मानव उसकी समीक्षा और अनुमोदन करता है। रनटाइम कॉन्फ़िगर किए गए कनेक्टर्स, अनुमति सूचियों और सुरक्षा नीतियों के माध्यम से इसे निष्पादित करता है।
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
फिर अपने एजेंट को MCP से कनेक्ट करें: http://localhost:7878/rpc और इसे एक कौशल लिखने के लिए कहें।
इसका उपयोग क्यों करें?
एजेंट आमतौर पर नियमित कार्यों को शुरू से फिर से बनाते हैं। इससे लागत, विलंबता और व्यवहारिक विचलन बढ़ता है।
Skillscript एक एजेंट को सीखी गई प्रक्रिया को एक नामित, पुन: प्रयोज्य कलाकृति में क्रिस्टलीकृत करने देता है जिसे:
- पूरे कार्य की पुन: योजना बनाए बिना बार-बार निष्पादित किया जा सकता है
- मनुष्यों द्वारा निरीक्षण और संस्करणित किया जा सकता है
- स्वीकार किए जाने से पहले मान्य किया जा सकता है
- अनुमोदित उपकरणों, फ़ाइलों, कमांडों और क्रेडेंशियल्स तक सीमित किया जा सकता है
- अन्य कौशलों के साथ संयोजित किया जा सकता है
Skillscript केवल ऑर्केस्ट्रेशन है। गणना उपकरणों और कनेक्टर्स के अंदर रहती है; कौशल एक छोटे घोषणात्मक व्याकरण के माध्यम से उन क्षमताओं का समन्वय करते हैं। यह बार-बार होने वाले वर्कफ़्लो में फ्रंटियर-मॉडल टोकन उपयोग को सार्थक रूप से कम कर सकता है: तर्क लागत एक बार चुकाई जाती है जब कौशल लिखा जाता है, और उसके बाद प्रत्येक रन नियतात्मक रूप से निष्पादित होता है, नियमित उप-कार्यों को सस्ते स्थानीय मॉडलों को सौंपकर।
Python या Bash क्यों नहीं?
Python और Bash कार्यान्वयन कार्य के लिए उपयोगी बने हुए हैं। जोखिम यह है कि एजेंट-लिखित स्क्रिप्ट को होस्ट तक असीमित पहुंच के साथ बिना निगरानी के चलने दिया जाए।
Skillscript उस निष्पादन सतह को संकीर्ण करता है:
- कोई मनमाना आयात, पैकेज इंस्टॉलेशन,
eval, या सबप्रोसेस एस्केप नहीं - बाहरी सिस्टम तक कनेक्टर-मध्यस्थ पहुंच
- डिफ़ॉल्ट-अस्वीकार शेल और फ़ाइल सिस्टम अनुमति सूचियाँ
- निष्पादन से पहले स्थैतिक मान्यता
- प्रभावशाली कौशल के लिए वैकल्पिक ऑपरेटर हस्ताक्षर
- क्रेडेंशियल्स रनटाइम द्वारा रखे जाते हैं, कौशल में एम्बेडेड नहीं
लक्ष्य स्क्रिप्ट को बदलना नहीं है। यह स्क्रिप्ट और API को उन क्षमताओं के पीछे रखना है जिन्हें ऑपरेटर स्पष्ट रूप से उजागर करता है।
एक स्केलिंग कारण भी है। मनमाना कोड की समीक्षा करने का मतलब है कि वह सब कुछ ऑडिट करना जो वह कर सकता है, जिसके लिए एक कुशल पाठक की आवश्यकता होती है। एक skillscript अपना पूर्ण प्रभाव सतह पृष्ठ पर रखता है, इसलिए अनुमोदन तब भी संभालने योग्य रहता है जब एजेंट किसी के कोड पढ़ने की तुलना में तेज़ी से लिखते हैं, और ऑपरेटर जो जानता है कि उनके सिस्टम को क्या अनुमति देनी चाहिए, वह घोषित प्रभावों के आधार पर अनुमोदन कर सकता है, न कि तर्क को फिर से पढ़कर।
एक कौशल
एक कौशल एक प्रकार का, घोषणात्मक वर्कफ़्लो है जिसमें चर, संचालन, निर्भरताएँ और एक आउटपुट टेम्पलेट होता है।
# Skill: hello
# Status: Approved
# Description: किसी को नाम से नमस्कार करें।
# Vars: WHO=world
Hello, ${WHO}!
यह एक पूर्ण, चलने योग्य कौशल है। बॉडी को इसके आउटपुट के रूप में रेंडर किया जाता है।
कौशल कनेक्टर्स को कॉल कर सकते हैं, शाखा बना सकते हैं, लूप कर सकते हैं, अन्य कौशल चला सकते हैं, घटनाओं का जवाब दे सकते हैं, और शेड्यूल पर निष्पादित कर सकते हैं:
# Skill: daily-disk-check
# Status: Approved
# Triggers: cron:"0 6 * * *"
# Autonomous: true
Snapshot written for ${NOW}.
snapshot:
shell(command="df -h --output=source,pcent,target") -> USAGE
file_write(
path="/var/log/skillscript/disk-${EVENT.fired_at_unix}.txt",
content="${USAGE}"
)
default: snapshot
रनटाइम शेल कमांड और फ़ाइल लिखने से तब तक मना करेगा जब तक ऑपरेटर बाइनरी और पथ को अनुमति सूची में नहीं डालता।
यह कैसे काम करता है
- लेखन: एक MCP-कनेक्टेड एजेंट उपलब्ध उपकरणों की खोज करता है, एक कौशल लिखता है, और उसे लिंट करता है। सुरक्षित मोड में यह
Draftके रूप में आता है, जब तक आप इसे अनुमोदित नहीं करते, तब तक निष्क्रिय रहता है। - समीक्षा: एक मानव कौशल का निरीक्षण और अनुमोदन करता है। सुरक्षित मोड में, अनुमोदन स्वीकृत सामग्री पर ऑपरेटर-धारित कुंजी से हस्ताक्षर करता है।
- चलाएँ: कौशल CLI, MCP, cron, एक HTTP घटना, या किसी अन्य कौशल से निष्पादित होता है।
- निरीक्षण करें: रनटाइम ट्रेस, आउटपुट, विफलताएँ और अवरुद्ध संचालन रिकॉर्ड करता है।
कौशल तीन भूमिकाएँ निभा सकते हैं:
| प्रकार | उद्देश्य |
|---|---|
| हेडलेस | स्वायत्त रूप से चलता है और आउटपुट को सिस्टम या मानव को भेजता है |
| संवर्धन | फ्रंटियर एजेंट के लिए संदर्भ तैयार करता है |
| टेम्पलेट | एजेंट को पालन करने की एक पुन: प्रयोज्य प्रक्रिया देता है |
त्वरित आरंभ
1. रनटाइम स्थापित करें और प्रारंभ करें
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
http://localhost:7878 खोलें।
--host 0.0.0.0 का उपयोग केवल तब करें जब कोई अन्य कंटेनर या मशीन रनटाइम तक पहुँचे, और उजागर इनग्रेस को उचित रूप से सुरक्षित करें।
2. अपने एजेंट में MCP सर्वर जोड़ें
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
3. एजेंट से एक कौशल बनाने के लिए कहें
एक कौशल लिखें जो किसी को नाम से नमस्कार करता हो।
एजेंट MCP के माध्यम से कौशल लिखता है। डैशबोर्ड या CLI में इसे अनुमोदित करें:
skillfile approve hello
skillfile execute hello
कनेक्टर और सुरक्षा
कौशल सीधे क्रेडेंशियल्स के बजाय कॉन्फ़िगर किए गए कनेक्टरों के माध्यम से बाहरी सिस्टम तक पहुँचते हैं। कनेक्टर MCP उपकरणों, डेटा स्टोरों, स्थानीय मॉडलों, एजेंट डिलीवरी चैनलों, या कस्टम रनटाइम क्षमताओं को उजागर कर सकते हैं।
महत्वपूर्ण ऑपरेटर नियंत्रण:
| सेटिंग | डिफ़ॉल्ट |
|---|---|
SKILLSCRIPT_SHELL_ALLOWLIST | सभी बाइनरी अस्वीकार करें |
SKILLSCRIPT_FS_ALLOWLIST | सभी पथ अस्वीकार करें |
SKILLSCRIPT_SECURED_MODE | बंद |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | अनसेट (कोई सीमा नहीं) |
SKILLSCRIPT_SUPERVISOR_SKILL | अनसेट (बंद) |
SKILLSCRIPT_SECRET_<NAME> | अनसेट |
रहस्य रनटाइम द्वारा हल किए जाते हैं और केवल अनुमोदित सिंक को पास किए जाते हैं। कौशल उनके कच्चे मूल्यों को प्रिंट या निरीक्षण नहीं कर सकते।
कॉन्फ़िगरेशन गाइड और कनेक्टर संदर्भ देखें।
सामान्य कमांड
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
विकल्पों के लिए skillfile <command> --help चलाएँ।
दस्तावेज़ीकरण
- भाषा संदर्भ
- कॉन्फ़िगरेशन
- अपनाने वाला प्लेबुक
- अपनाने वाला एजेंट गाइड
- कनेक्टर अनुबंध
- अपग्रेड करना
- उदाहरण
- वेबसाइट पर अतिरिक्त उदाहरण skillscript.ai
स्थिति
Skillscript pre-1.0 चरण में है। मुख्य भाषा और कनेक्टर अनुबंध स्थिर हो रहे हैं; बाहरी अपनाने और वितरण कार्य जारी है।
योगदान
बग रिपोर्ट और फीचर अनुरोध Issues के माध्यम से स्वागत हैं। व्याकरण परिवर्तन प्रस्तावित करने से पहले एक Issue खोलें ताकि डिज़ाइन पर पहले चर्चा की जा सके।
लाइसेंस
MIT. LICENSE देखें।