免费POC, 零成本试错
AI知识库

AI知识库

学习大模型的前沿技术与行业落地应用


收藏

灵码+Qwen3-Coder——使用Skill机制实现代码审核

发布日期:2026-02-12 10:03:34 浏览次数: 3214
作者:阿里云开发者

微信搜一搜,关注“阿里云开发者”

推荐语

探索灵码如何巧妙集成Claude Skills机制,为代码审核带来智能升级!

核心内容:
1. Claude Skills的核心原理与动态上下文注入机制
2. 详细解析Skill的文件结构与调用流程设计
3. 灵码通过openskills实现代码审核功能的具体实践方案

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

一、背景

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-skilldescription: 清晰描述技能功能和触发场景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-reviewerdescription: 这个 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能力模块化、业务流程自动化、系统集成标准化"的落地目标。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅