CangjieSkills 正式开源:为仓颉 AI 编程打造的“技能增强“方案,实测降低 60% 费用
降低 60% 费用,提升代码质量
—— 基于 OpenCode + GLM5 的对比验证
🎉 正式开源
CangjieSkills 现已正式开源!
作为 Cangjie-SIG 推出的仓颉语言 AI 编程增强方案,我们向社区开放完整的技能库体系和构建工具,帮助开发者在 AI 辅助编程场景下显著降低成本、提升代码质量。
📦 开源地址:
-
CangjieSkills(技能库):https://gitcode.com/Cangjie-SIG/CangjieSkills
-
DocFlow(知识蒸馏工具):https://gitcode.com/Cangjie-SIG/DocFlow
🤔 背景:AI 编程的痛点
当前基于大模型的代码生成方案普遍面临两个核心问题:
1️⃣ 成本高昂
直接检索原始文档导致 Token 消耗巨大,长文档场景尤为明显。
2️⃣ 质量不稳
模型被海量原始文本干扰,难以精准捕捉关键 API 和最佳实践。
CangjieSkills 正是为解决这些问题而生。它通过结构化的"技能知识库"替代原始文档检索,在保持代码质量的同时显著降低调用成本。
🏗️ 核心架构:从"文档检索"到"技能注入"
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 原始文档源 │────▶│ DocFlow 知识蒸馏 │────▶│ 结构化技能库 │
│ (仓颉官方文档等) │ │ (三阶段提取) │ │ (CangjieSkills) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
┌───────────────────────────┘
▼
┌─────────────────┐
│ OpenCode / │
│ GLM5 等模型 │
│ + Skills 注入 │
└─────────────────┘
│
▼
┌─────────────────┐
│ 高质量仓颉代码 │
│ (低成本、高可用) │
└─────────────────┘
CangjieSkills 与 DocFlow 形成完整闭环:
-
DocFlow:负责将原始技术文档蒸馏为结构化知识点(RAG-Docs-Writer 系统)
-
CangjieSkills:提供经过验证的、可直接注入模型的技能单元
📊 实测数据:OpenCode + GLM5 对比测试
我们在 完全相同的任务书 和 完全相同的测试用例 下,对比了两种方案:
| 对比维度 | 原始文档检索方案 | CangjieSkills 方案 | 提升幅度 |
|---|---|---|---|
| 平均 Token 消耗 | 基准值 | 降低 60% | ⬇️ 成本大幅优化 |
| 代码一次通过率 | 基准值 | 显著提升 | ✅ 质量更优 |
| API 使用准确性 | 偶有幻觉 | 精准匹配 | 🎯 更可靠 |
💡 测试条件:全程无人工干预,基于 OpenCode 和 GLM5 模型,每组任务使用相同 Prompt 和测试用例。
🧪 测试任务详解:四个真实开发场景
1️⃣ JsonParser(JSON 解析器)
任务描述:实现一个完整的 JSON 解析库,支持对象、数组、字符串、数字、布尔值、null 的解析与序列化。
技术难点:
-
递归下降解析器的错误恢复机制
-
Unicode 转义字符处理(
\uXXXX) -
数字精度控制(整数 vs 浮点数)
Skills 优势:
-
✅ 直接注入仓颉字符串处理最佳实践
-
✅ 提供
Int64/Float64精确转换模式 -
✅ 避免模型在原始文档中"迷失"于标准库细节
2️⃣ KalmanFilter(卡尔曼滤波器)
任务描述:实现一维和二维卡尔曼滤波算法,用于传感器数据降噪。
技术难点:
-
矩阵运算的仓颉实现(无原生矩阵库)
-
数值稳定性处理(协方差矩阵对称性保持)
-
预测-更新循环的正确时序
Skills 优势:
-
✅ 直接提供仓颉数学运算优化技巧
-
✅ 明确
Array<T>与向量化操作的性能权衡 -
✅ 避免模型生成不存在的矩阵运算 API
3️⃣ AIChat(AI 对话客户端)
任务描述:实现一个支持流式输出的 AI 对话客户端,支持历史记录管理。
技术难点:
-
异步流式响应处理(
AsyncSequence正确使用) -
HTTP 长连接管理
-
对话状态的持久化存储
Skills 优势:
-
✅ 精准提供仓颉异步编程模式(
async/await) -
✅ 明确网络库(
httppackage)的正确用法 -
✅ 避免模型混淆仓颉与 Kotlin/Swift 的异步语法差异
4️⃣ Cangjie 简单子集解释器(基于 LuaVM)
任务描述:实现一个 Cangjie 语言子集的解释器,可嵌入 LuaVM 执行。
技术难点:
-
词法分析器(Lexer)的状态机设计
-
语法树(AST)的仓颉类型建模
-
与 LuaVM 的 C 接口绑定(
foreign函数)
Skills 优势:
-
✅ 直接注入仓颉
foreign接口绑定规范 -
✅ 提供代数数据类型(ADT)建模 AST 的最佳实践
-
✅ 避免模型在 FFI(外部函数接口)调用上产生幻觉
🔬 技术原理:为什么 Skills 更有效?
📈 信息密度优化
| 方案 | 信息形式 | 信噪比 | 模型负担 |
|---|---|---|---|
| 原始文档检索 | 完整 Markdown/HTML | 低 | 高(需自行提取关键信息) |
| CangjieSkills | 结构化知识点 | 高 | 低(直接注入可用信息) |
DocFlow 三阶段提取确保 Skills 质量:
-
🔥 主提取:识别核心 API、配置项、重要概念
-
🔄 补充提取:挖掘边界限制、性能暗示、异常契约
-
🛡️ 幻觉审核:事实核查、准确性验证、错误清洗
🗜️ 上下文压缩
原始文档可能包含:
-
版本历史
-
平台差异说明
-
不相关的示例代码
-
冗余的描述性文字
Skills 只保留:
-
API 签名与约束
-
关键使用模式
-
常见错误规避
-
性能优化提示
🎯 模型适配优化
针对不同模型(OpenCode、GLM5 等),Skills 提供:
-
精确的上下文窗口适配:确保关键信息不超出模型上下文限制
-
Prompt 优化模板:针对代码生成任务调优的指令格式
-
Few-shot 示例:经过验证的仓颉代码模式
🚀 使用方式
方式一:直接集成(推荐)
CangjieSkills 仓库:
https://gitcode.com/Cangjie-SIG/CangjieSkills
提供:
-
📦 预构建的仓颉语言技能库(JSON 格式)
-
📋 技能库版本与仓颉编译器版本对应表
-
📖 快速集成指南(OpenCode / GLM5 / 其他模型)
方式二:自定义蒸馏
使用 DocFlow 构建自定义 Skills:
https://gitcode.com/Cangjie-SIG/DocFlow
支持:
-
📝 自定义文档源(Git 仓库、本地目录)
-
🤖 多模型蒸馏(DeepSeek、Qwen 等)
-
⚙️ 质量控制(密度阈值、幻觉审核档位可调)
🎯 适用场景
| 场景 | 推荐方案 | 说明 |
|---|---|---|
| 🛠️ 通用仓颉开发 | CangjieSkills 预构建库 | 开箱即用,覆盖标准库和常见模式 |
| 📱 特定领域开发(如鸿蒙应用) | DocFlow 自定义蒸馏 | 基于官方文档生成领域专属 Skills |
| 🏢 私有框架开发 | DocFlow + CangjieSkills | 先蒸馏私有文档,再合并公共 Skills |
| 🎓 教学/培训 | CangjieSkills 精简版 | 针对初学者优化,减少认知负担 |
🔮 未来规划
-
技能库版本化:与仓颉编译器版本严格对应
-
IDE 插件:VS Code / DevEco Studio 集成
-
更多模型适配:Claude、GPT-4、文心一言等
-
社区贡献体系:开放 Skills 贡献与审核流程
👇 立即体验
📦 开源地址:
-
CangjieSkills(技能库):https://gitcode.com/Cangjie-SIG/CangjieSkills
-
DocFlow(知识蒸馏工具):https://gitcode.com/Cangjie-SIG/DocFlow
降低 60% 成本,提升代码质量
CangjieSkills —— 让 AI 更懂仓颉
⭐ Star 关注 | 🐛 提交 Issue | 🔧 发起 PR
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)