一、背景
Claude Skills是Anthropic推出的一套基于提示词的模块化能力扩展系统,它通过"渐进式披露"机制让AI在需要时动态加载特定领域的专业知识,实现从通用助手到领域专家的无缝切换,受到很多客户的追捧。目前很多很多AI编程产品都开始支持,灵码产品官方还没有支持,本文主要探索如何在灵码内使用Skill能力,用作提供客户做技术方案参考。
二、Skill实现机制
Claude Skills的本质不是可执行代码,而是基于提示词的动态上下文注入与元工具架构。与传统观念不同,Skill并非让模型调用外部函数,而是将领域特定的指令、工作流和知识"展开"并"注入"到对话上下文中。
1.文件结构
每个Skill都是一个包含以下核心组件的文件夹:
my-skill/ ├── SKILL.md # 核心提示模板 ├── scripts/ # 可执行Python/Bash脚本 │ ├── validator.py │ └── processor.sh ├── references/ # 参考文档 │ ├── terminology.md │ └── examples.md └── assets/ # 模板和静态资源 ├── template.docx └── config.json
SKILL.md文件结构:
--- name: my-skill description: 清晰描述技能功能和触发场景 allowed-tools: "Read,Write,Bash" --- # 技能详细指令 ## 工作流程 1. 第一步说明 2. 第二步说明 3. 第三步说明 ## 输出规范 - 格式要求 - 质量要求 - 示例输出
2.调用流程
Claude使用"纯LLM推理"进行Skill选择,没有使用算法匹配、向量嵌入或分类器。系统在Skill工具的描述中提供格式化的可用Skills列表,Claude根据description中的关键词和使用场景描述,判断是否匹配当前任务。
调用流程:
1.搜索匹配:Claude回顾所有Skills的元数据和描述,判断哪些技能与当前任务相关;
2.加载技能说明:若匹配到某技能,Claude使用bash命令读取该技能文件夹下的SKILL.md;
3.执行内部流程:根据SKILL.md的说明,按需读取额外的文档或运行代码脚本;
4.串联复用:如果一个任务需要多个技能协作,Claude可以依序调用它们;
三、灵码实现方案
在搞清楚skill实现机制以后,我们就开始探索如何在灵码内使用skill。本次主要使用的是openskills方案。
1. 环境配置
1.1 安装openskills
npm i -g openskills
1.2 初始化skill
openskills install anthropics/skills
完成后可以看到在.claude下已经生成好相关的skill库能力。
1.3 同步skill
openskills sync
同步后会在当前项目根目录 agent.md下生成相关skill指令。
2. 灵码适配
熟悉AI编程的大伙应该不陌生,上面生成的文件,就是Rule,只不过在不同的AI编程工具里有不同的叫法,比如Claude Code中叫claude.md,Codex 中叫AGENTS.md,灵码中其实就对应 project_rules.md。在Rule中,详细的定义了每个Skill的功能描述以及调用时机。我们要做的就是把AGENTS.md文件中的提示词,粘贴到project_rules.md就然后做些改造可以了,如下图所示,然后配置成一直生效的project_rules即可。
以openskills内置的docx技能为例,可以实现docx文档生成,我们在灵码内测试使用效果如下,验证可以正常解析skill,生成doc文档:
四、代码审核Skill
我们也可以实现自己的Skill,以代码审核场景为例,实现举例如下:
1. 添加skill元信息
<skill> <name>code-reviewer</name> <description>这个 Skills 帮助进行代码审查,提供代码质量分析/在线报告预览、最佳实践建议和潜在问题识别。</description> <location>project</location> </skill>
2. 生成SKILL.md
--- name: code-reviewer description: 这个 Skills 帮助进行代码审查,提供代码质量分析/报告生成、最佳实践建议和潜在问题识别。 --- # 代码审查专家 Skills 你是一个经验丰富的代码审查者,遵循业界最佳实践,提供专业的代码评估和改进建议。 ## 审查重点 1. **代码质量** - 命名规范 - 代码复杂度 - 重复代码 2. **安全性** - SQL 注入风险 - XSS 漏洞 - 认证授权问题 3. **性能** - 算法效率 - 资源使用 - 缓存策略 4. **可维护性** - 代码注释 - 模块化设计 - 测试覆盖 ## 审查流程 1. 理解代码变更的目的 2. 检查代码风格和规范 3. 分析潜在的 Bug 和性能问题 4. 验证安全性 5. 提供建设性的改进建议 ## 输出格式 ### 文本报告格式 - ✅ **优点**:列出做得好的地方 - ⚠️ **问题**:指出需要改进的地方(按严重程度分类) - 🔴 严重:需要立即修复的问题 - 🟡 中等:建议修复的问题 - 🟢 轻微:可选的改进建议 - 💡 **建议**:提供具体的改进方案和示例代码 - 📊 **总体评分**:1-10 分 ### HTML 报告生成(必选) 当用户要求审查代码时,**自动生成 HTML 报告**: #### 报告生成步骤 1. **创建 HTML 报告文件**,包含以下内容: - 页面标题和审查时间 - 审查摘要和总体评分(大号显示,带进度条) - 四个维度的评分卡片: * 代码质量(Code Quality) * 安全性(Security) * 性能(Performance) * 可维护性(Maintainability) - 问题列表(按严重程度分类): * 🔴 严重问题(Critical)- 红色标识 * 🟡 中等问题(Medium)- 黄色标识 * 🟢 轻微问题(Minor)- 绿色标识 - 改进建议和代码示例(带语法高亮) - 优点列表 2. **样式要求**: - 使用现代化的 CSS 设计(渐变背景、卡片阴影、圆角) - 响应式布局,适配不同屏幕尺寸 - 使用专业的配色方案 - 代码块使用等宽字体和语法高亮 - 添加图标和视觉元素提升可读性 3. **保存和预览**: - 文件名格式:`code-review-report-{timestamp}.html` - 保存到工作区根目录 #### HTML 模板结构 ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>代码审查报告</title> <style> /* 现代化样式 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 20px; line-height: 1.6; } .container { max-width: 1200px; margin: 0auto; background: white; border-radius: 20px; padding: 40px; box-shadow: 020px 60px rgba(0,0,0,0.3); } .header { text-align: center; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 3px solid #667eea; } .score-circle { width: 150px; height: 150px; border-radius: 50%; background: conic-gradient(#667eea 0% var(--score), #e0e0e0 var(--score) 100%); display: flex; align-items: center; justify-content: center; margin: 20px auto; position: relative; } .score-inner { width: 120px; height: 120px; border-radius: 50%; background: white; display: flex; align-items: center; justify-content: center; font-size: 48px; font-weight: bold; color: #667eea; } .metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin: 30px 0; } .metric-card { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); padding: 20px; border-radius: 15px; box-shadow: 04px 6px rgba(0,0,0,0.1); } .issue { margin: 15px 0; padding: 15px; border-left: 4px solid; border-radius: 8px; background: #f9f9f9; } .critical { border-color: #e74c3c; background: #fee; } .medium { border-color: #f39c12; background: #ffeaa7; } .minor { border-color: #27ae60; background: #d5f4e6; } pre { background: #2d2d2d; color: #f8f8f2; padding: 15px; border-radius: 8px; overflow-x: auto; margin: 10px 0; } code { font-family: 'Courier New', monospace; } </style> </head> <body> <!-- 报告内容 --> </body> </html> ``` ## 审查示例 ### 命名规范检查 ```python # ❌ 不好的命名 def f(x, y): return x + y # ✅ 好的命名 def calculate_total_price(base_price: float, tax_rate: float) -> float: return base_price * (1 + tax_rate) ``` ### 安全性检查 ```python # ❌ SQL 注入风险 query = f"SELECT * FROM users WHERE id = {user_id}" # ✅ 使用参数化查询 query = "SELECT * FROM users WHERE id = ?" cursor.execute(query, (user_id,)) ``` ### 性能优化检查 ```javascript // ❌ 低效的循环 for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length; j++) { // O(n²) 复杂度 } } // ✅ 使用 Map 优化 constmap = new Map(); arr.forEach(item => map.set(item.id, item)); // O(n) ``` ## 评分标准 ### 总体评分(1-10分) - **9-10分**:优秀,代码质量高,几乎没有问题 - **7-8分**:良好,有少量改进空间 - **5-6分**:中等,存在一些需要修复的问题 - **3-4分**:较差,有较多问题需要解决 - **1-2分**:很差,存在严重问题 ### 各维度评分 每个维度(代码质量、安全性、性能、可维护性)独立评分: - **优秀(8-10)**:符合最佳实践 - **良好(6-7)**:基本合格,有改进空间 - **需改进(4-5)**:存在明显问题 - **差(1-3)**:有严重缺陷 ## 使用示例 当用户说"帮我审查这段代码"或"review 这个文件"时: 1. 仔细分析代码 2. 识别问题和优点 3. 生成详细的 HTML 报告 4. 告知用户报告已生成并可以查看
3. 生成效果
五、总结
Claude Skills通过"渐进式披露+元工具架构"的设计,实现了AI能力的模块化封装和按需加载。它解决了传统提示词工程的三大痛点:重复劳动、上下文浪费、知识无法沉淀。适用以下场景:
1. 高频重复任务:每周都要写的周报、固定格式的PRD、定期发的newsletter;
2. 团队标准化:确保多个团队成员输出格式统一;
3. 复杂工作流:需要多步骤、多工具协同的自动化任务;
4. 知识沉淀:将专家经验封装为可复用的能力包。
同时Skills和MCP处于不同层级,形成互补架构,使用MCP连接外部数据源,使用Skills定义处理流程,形成"数据输入-任务处理-结果输出"的完整闭环。未来,随着开发者生态的完善,Skills可能会形成"垂直领域技能市场",而MCP则作为"集成中枢",最终实现"AI能力模块化、业务流程自动化、系统集成标准化"的落地目标。
来源 | 阿里云开发者公众号
作者 | 荣阳