From e5e3bd6c029207464176757339e711bc9d2d5966 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 19 Jan 2026 13:24:36 +0800 Subject: [PATCH] bugfix --- README.md | 2 ++ skillagent/skillkit_wrapper.py | 36 ++++++++++++++++++++++++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1ca805c..d248e0b 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ This module provides a general-purpose Agent framework that integrates with Skil - Parameter schema validation and multi-turn resume - Unified Skillkit invocation interface +## loadable skills +[Anthropic's implementation of skills](https://github.com/anthropics/skills/tree/main/skills) ## Usage ```python diff --git a/skillagent/skillkit_wrapper.py b/skillagent/skillkit_wrapper.py index bdcd19b..b8f7f8a 100644 --- a/skillagent/skillkit_wrapper.py +++ b/skillagent/skillkit_wrapper.py @@ -1,7 +1,31 @@ -class SkillkitWrapper: - def __init__(self, skillkit_client): - self.client = skillkit_client +from skillkit import SkillManager + +class SkillkitWrapper: + def __init__(self, user_skillsroot, sys_skillsroot): + + self.client = SkillManager(project_skill_dir=skillroot, + anthropic_config_dir=sys_skillsroot) + self.client.discover() + + def list_skills(self): + return self.client.list_skills() + + def invoke_skill(self, skill: str, script: str, params: dict): + print(f"Invoking skill={skill}, script={script}, params={params}") + return self.client.invoke_skill(skill, params) + + def parse_skill_md(self, skill_name: str) -> List[Dict]: + md_path = os.path.join(self.skillspath, skill_name, "skill.md") + if not os.path.exists(md_path): + return [] + scripts = [] + md_text = open(md_path, encoding="utf-8").read() + script_blocks = re.findall(r"### (.+?)\n- 功能: (.+?)\n- 参数: (.+)", md_text) + for name, desc, params in script_blocks: + scripts.append({ + "name": name.strip(), + "description": desc.strip(), + "params": [p.strip() for p in params.split(",")] + }) + return scripts - def invoke_skill(self, skill: str, script: str, params: dict): - print(f"Invoking skill={skill}, script={script}, params={params}") - return self.client.invoke_skill(skill, params)