إنشاء المهارات
إنشاء المهارات
Section titled “إنشاء المهارات”توسّع المهاراتُ كاظمهَ بأدوات وسير عمل. فضّل شكل الأدوات الأصلية (native tools) الذي تستخدمه المهارات المدمجة تحت kazma-skills/kazma_skills/native/.
موصى به: مهارة الأدوات الأصلية
Section titled “موصى به: مهارة الأدوات الأصلية”البنية
Section titled “البنية”my_skill/ skill_manifest.yaml # name, tools: map tools.py # async callables named like the tools map keysالبيان (خريطة tools:)
Section titled “البيان (خريطة tools:)”name: my-example-skillversion: 0.1.0description: Example native skillauthor: your-namelicense: MIT
tools: example_echo: description: Echo a message back for testing. category: utility arabic_name: "مثال" prompt_chain: - "Echo the user's message"التنفيذ (tools.py)
Section titled “التنفيذ (tools.py)”from __future__ import annotations
async def example_echo(message: str = "") -> str: """Must match the tool name key in the manifest.""" return f"echo: {message}"مسار التحميل
Section titled “مسار التحميل”يكتشف NativeSkillLoader (kazma_skills/native_loader.py) كل مجلد أصلي، ويقرأ tools:، ويستورد tools.py، ويسجّل كل أداة عبر register_function في LocalToolRegistry. وما زالت الأدوات الخطرة تمرّ عبر HITL عند التنفيذ.
إطلاقها
Section titled “إطلاقها”# For a path skill package:kazma hub validate ./my_skillkazma hub sign ./my_skillkazma hub register ./my_skill
# Built-in natives under kazma-skills are auto-discovered at app start.طالع أمثلة حقيقية: secret_vault، git_github_manager، task_scheduler_cron تحت kazma-skills/kazma_skills/native/.
بديل: مهارة بنقطة دخول صنف
Section titled “بديل: مهارة بنقطة دخول صنف”تستخدم بعض حزم المركز entry_point: main:MySkill. هذا الشكل مدعوم في فحوص التحقق/الاعتماد، لكن الأدوات الأصلية هي النمط الذي تستخدمه المدمجات الإنتاجية. إن استخدمت صنفًا (class)، فنفّذ عقدًا واضحًا ووثّقه — لا تفترض وجود واجهة إطار عمل عامة موحّدة execute(context) تتجاوز ما يتوقعه مُحمِّلك.
الاختبار
Section titled “الاختبار”kazma hub validate ./my_skillpytest path/to/tests -v