降低 60% 费用,提升代码质量

—— 基于 OpenCode + GLM5 的对比验证


🎉 正式开源

CangjieSkills 现已正式开源!

作为 Cangjie-SIG 推出的仓颉语言 AI 编程增强方案,我们向社区开放完整的技能库体系和构建工具,帮助开发者在 AI 辅助编程场景下显著降低成本、提升代码质量。

📦 开源地址:


🤔 背景:AI 编程的痛点

当前基于大模型的代码生成方案普遍面临两个核心问题:

1️⃣ 成本高昂

直接检索原始文档导致 Token 消耗巨大,长文档场景尤为明显。

2️⃣ 质量不稳

模型被海量原始文本干扰,难以精准捕捉关键 API 和最佳实践。

CangjieSkills 正是为解决这些问题而生。它通过结构化的"技能知识库"替代原始文档检索,在保持代码质量的同时显著降低调用成本。


🏗️ 核心架构:从"文档检索"到"技能注入"

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   原始文档源     │────▶│  DocFlow 知识蒸馏 │────▶│ 结构化技能库    │
│ (仓颉官方文档等) │     │  (三阶段提取)     │     │ (CangjieSkills) │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                                          │
                              ┌───────────────────────────┘
                              ▼
                    ┌─────────────────┐
                    │   OpenCode /    │
                    │   GLM5 等模型    │
                    │  + Skills 注入   │
                    └─────────────────┘
                              │
                              ▼
                    ┌─────────────────┐
                    │   高质量仓颉代码  │
                    │  (低成本、高可用) │
                    └─────────────────┘

CangjieSkillsDocFlow 形成完整闭环:

  • 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

  • ✅ 明确网络库(http package)的正确用法

  • ✅ 避免模型混淆仓颉与 Kotlin/Swift 的异步语法差异


4️⃣ Cangjie 简单子集解释器(基于 LuaVM)

任务描述:实现一个 Cangjie 语言子集的解释器,可嵌入 LuaVM 执行。

技术难点

  • 词法分析器(Lexer)的状态机设计

  • 语法树(AST)的仓颉类型建模

  • 与 LuaVM 的 C 接口绑定(foreign 函数)

Skills 优势

  • ✅ 直接注入仓颉 foreign 接口绑定规范

  • ✅ 提供代数数据类型(ADT)建模 AST 的最佳实践

  • ✅ 避免模型在 FFI(外部函数接口)调用上产生幻觉


🔬 技术原理:为什么 Skills 更有效?

📈 信息密度优化

方案 信息形式 信噪比 模型负担
原始文档检索 完整 Markdown/HTML 高(需自行提取关键信息)
CangjieSkills 结构化知识点 低(直接注入可用信息)

DocFlow 三阶段提取确保 Skills 质量:

  1. 🔥 主提取:识别核心 API、配置项、重要概念

  2. 🔄 补充提取:挖掘边界限制、性能暗示、异常契约

  3. 🛡️ 幻觉审核:事实核查、准确性验证、错误清洗


🗜️ 上下文压缩

原始文档可能包含:

  • 版本历史

  • 平台差异说明

  • 不相关的示例代码

  • 冗余的描述性文字

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 贡献与审核流程


👇 立即体验

📦 开源地址:

降低 60% 成本,提升代码质量

CangjieSkills —— 让 AI 更懂仓颉

Star 关注 | 🐛 提交 Issue | 🔧 发起 PR

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐