2026年Minion Skills:Claude Code Skills的开源实现

Minion Skills:Claude Code Skills的开源实现Claude Code 最近推出了一个令人兴奋的特性 Skills 系统 它让 AI Agent 能够动态加载专业能力 按需 学习 处理 PDF Excel PPT 等专业文档的技能 作为一个开源爱好者 我立刻意识到这个设计的价值 并在 Minion 框架中实现了完整的开源版本 本文将介绍 Skills 的设计理念 以及我的开源实现细节 在开发 AI Agent 的过程中

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



Claude Code最近推出了一个令人兴奋的特性——Skills系统。它让AI Agent能够动态加载专业能力,按需”学习”处理PDF、Excel、PPT等专业文档的技能。

作为一个开源爱好者,我立刻意识到这个设计的价值,并在Minion框架中实现了完整的开源版本。本文将介绍Skills的设计理念,以及我的开源实现细节。

在开发AI Agent的过程中,有一个核心矛盾:

Context Window的有限性 vs 能力需求的无限性

传统做法是把所有工具、所有指令都塞进system prompt:

System Prompt = 基础指令 + 所有工具描述 + 所有专业知识
            = 50K+ tokens
            = 高延迟 + 高成本 + 低效率














更糟的是,大多数时候用户只需要其中一小部分能力。当用户问”帮我处理这个PDF”时,系统却加载了处理Excel、数据库、代码等所有能力的上下文。

Claude Code的Skills设计灵感来自一个简单的类比:

人类专家不是把所有知识都装在脑子里,而是在需要时查阅手册、调用专业知识。

Skills系统让AI Agent也具备这种能力:

用户请求 → Agent识别需要PDF技能 → 动态加载PDF处理指令
                                 → 执行专业任务
                                 → 返回结果














看到Claude Code的Skills设计后,我决定在Minion框架中实现一个完全兼容的开源版本,让更多开发者能够使用这一特性。

每个Skill就是一个包含SKILL.md文件的目录:

.minion/skills/
├── pdf/
│   ├── SKILL.md          # 技能定义和指令
│   ├── references/       # 参考资料
│   ├── scripts/          # 辅助脚本
│   └── assets/           # 资源文件
├── xlsx/
│   └── SKILL.md
└── docx/
    └── SKILL.md































































SKILL.md采用YAML frontmatter + Markdown body的格式:


name: pdf
description: PDF文档处理技能,支持文本提取、表格解析、表单填写等
license: MIT



当使用此技能时


你现在具备了专业的PDF处理能力…


文本提取
使用pypdf2库进行文本提取:



表格识别
使用tabula-py进行表格提取:













































































































































Skill Loader会在多个位置搜索可用技能:

class SkillLoader:
    SKILL_DIRS = [
        “.claude/skills”,   # 兼容Claude Code
        “.minion/skills”,   # Minion原生
    ]


    def get_search_paths(self):
        paths = []
        # 项目级优先
        for skill_dir in self.SKILL_DIRS:
            paths.append((self.project_root / skill_dir, “project”))
        # 用户级次之
        for skill_dir in self.SKILL_DIRS:
            paths.append((self.home_dir / skill_dir, “user”))
        return paths









































































































这种分层设计带来了灵活性:

  • 项目级Skills:针对特定项目的专业能力
  • 用户级Skills:跨项目的通用能力
  • 优先级机制:项目级覆盖用户级,允许定制化
  • 兼容性:同时支持.claude/skills.minion/skills路径
  • class SkillRegistry:
        def register(self, skill: Skill) -> bool:
            “”“注册技能,高优先级覆盖低优先级”“”
            existing = self._skills.get(skill.name)
            if existing:
                priority = {“project”: 0, “user”: 1, “managed”: 2}
                if priority[skill.location] >= priority[existing.location]:
                    return False  # 已有更高优先级的同名技能


            self._skills[skill.name] = skill
            return True


        def generate_skills_prompt(self, char_budget=10000):
            “”“生成可用技能列表,控制context消耗”“”
            # 智能截断,确保不超预算
            …























































































































    class SkillTool(BaseTool):
        name = “Skill”
        description = “动态加载并执行专业技能”


        def execute_skill(self, skill: str) -> Dict[str, Any]:
            skill_obj = self.registry.get(skill)


            if skill_obj is None:
                return {
                    “success”: False,
                    “error”: f”Unknown skill: {skill}“,
                    “available_skills”: self.registry.list_all()[:10]
                }


            # 获取技能的完整指令
            prompt = skill_obj.get_prompt()


            return {
                “success”: True,
                “skill_name”: skill_obj.name,
                “prompt”: prompt,  # 注入到对话上下文
            }















































































































































































    用户:帮我分析这份财务报告 report.pdf,提取所有表格数据


    Agent:
    1. 识别需要PDF处理能力
    2. 调用 Skill(“pdf”) 加载PDF技能
    3. 获得专业的PDF处理指令
    4. 使用pypdf2提取文本
    5. 使用tabula-py提取表格
    6. 返回结构化数据































































    用户:把这10个Excel文件合并,并生成汇总统计


    Agent:
    1. 调用 Skill(“xlsx”) 加载Excel技能
    2. 获得pandas、openpyxl等库的专业用法
    3. 批量读取文件
    4. 合并数据、计算统计
    5. 生成新的Excel报告
























































    指标传统方式Skills方式基础Context50K tokens10K tokensPDF任务Context50K tokens10K + 3K tokens首次响应延迟较长较短专业任务质量一般更精准

    技能通过Markdown定义,非技术人员也能创建和维护:


    name: data-analysis
    description: 数据分析技能



    数据清洗步骤
    1. 检查缺失值
    2. 处理异常值
































































    技能可以带有参考资料、脚本等资源:

    skill_obj.get_prompt()
    # 返回:
    # Loading: pdf
    # Base directory: /Users/xxx/.minion/skills/pdf
    #
    # [技能内容,可以引用 references/api_doc.md 等]



































    @dataclass
    class Skill:
        name: str
        description: str
        content: str
        path: Path
        location: str  # project, user, managed
        license: Optional[str]
        metadata: Dict[str, Any]
























































    Claude Code的Skills是一个出色的设计,但它是闭源的、与Claude生态绑定的。我实现开源版本的原因:

  • LLM无关性:Minion支持多种LLM后端(Claude、GPT-4、开源模型),Skills能力不应被锁定在单一供应商
  • 可定制性:开源实现允许深度定制,满足特殊需求
  • 社区贡献:开源让更多人能够贡献Skills,形成技能生态
  • 学习价值:通过实现,深入理解这一架构的设计精髓
  • 想象一个Skills Marketplace,开发者可以发布、分享专业技能:

    minion skill install data-science-toolkit
    minion skill install legal-document-analysis







    根据用户历史和当前任务,自动推荐相关技能:

    def recommend_skills(user_request, history):
        # 分析请求内容
        # 匹配最相关的技能
        # 预加载可能需要的技能
        …




























    多个技能协同工作:

    # 分析PDF中的数据,生成Excel报告
    skills_used = [“pdf”, “xlsx”, “data-visualization”]







    Agent在完成复杂任务后,自动生成新技能供未来使用:

    async def learn_skill_from_session(session_log):
        # 分析成功的任务执行过程
        # 提取可复用的模式和指令
        # 生成新的SKILL.md
        …




























    Claude Code的Skills系统体现了一个核心设计哲学:

    不要试图让AI什么都懂,而是让它知道在需要时去哪里找到答案。

    这种”专家系统”思维,让AI Agent从”通才”进化为”能快速变身专家的通才”。

    通过Minion的开源实现,这一能力现在可以被更广泛的开发者使用,不受限于特定的LLM供应商或闭源生态。

    欢迎试用和贡献:

  • GitHub: https://github.com/femto/minion
  • 文档: https://github.com/femto/minion/blob/main/docs/skills.md
  • 让我们一起构建更开放、更智能的AI Agent生态。


    关于作者:郑炳南,毕业于复旦大学物理系。拥有20多年软件开发经验,是开源社区的活跃贡献者,参与贡献metagpt、smolagents、mem0等项目,为ICLR 2025 oral paper《AFlow: Automating Agentic Workflow Generation》的作者之一。

    往期文章

  • 《Minion框架早已实现PTC:超越传统Tool Calling的Agent架构》
  • 小讯
    上一篇 2026-04-22 15:36
    下一篇 2026-04-22 15:34

    相关推荐

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
    如需转载请保留出处:https://51itzy.com/kjqy/278064.html