[嵌入式AI从0开始到入土]23_jiuwenclaw+cannskills,让小艺辅助ascendc开发
如何通过jiuwenclaw平台集成CANN Skills技能库(14个Ascend开发相关技能模块)和智能代理,帮助开发者提升NPU开发效率。提供了docker和pip两种安装方式,并演示了模型服务化配置方法。该系列适合昇腾NPU平台开发者,可实现"动嘴指挥AI助手完成算子开发"的高效工作模式。
[嵌入式AI从0开始到入土]嵌入式AI系列教程
注:等我摸完鱼再把链接补上
可以关注我的B站号工具人呵呵的个人空间,后期会考虑出视频教程,务必催更,以防我变身鸽王。
第1期 昇腾Altas 200 DK上手
第2期 下载昇腾案例并运行
第3期 官方模型适配工具使用
第4期 炼丹炉的搭建(基于Ubuntu23.04 Desktop)
第5期 炼丹炉的搭建(基于wsl2_Ubuntu22.04)
第6期 Ubuntu远程桌面配置
第7期 下载yolo源码及样例运行验证
第8期 在线Gpu环境训练(基于启智ai协作平台)
第9期 转化为昇腾支持的om离线模型
第10期 jupyter lab的使用
第11期 yolov5在昇腾上推理
第12期 yolov5在昇腾上应用
第13期_orangepi aipro开箱测评
第14期 orangepi_aipro小修补含yolov7多线程案例
第15期 orangepi_aipro欢迎界面、ATC bug修复、镜像导出备份
第16期 ffmpeg_ascend编译安装及性能测试
第17期 Ascend C算子开发
第18期 Ascend C算子开发环境(S5赛季)
第19期 vllm Ascend初体验
第20期 在Ascend上使用ComfyUI部署SD模型
第21期 基于昇腾310P RC模式的Pi0模型部署实践
第22期 基于昇腾310P RC模式的ACT模型部署实践
第23期 jiuwenclaw+cannskills,让小艺辅助ascendc开发
未完待续…
文章目录
前言
openJiuwen作为开源Agent平台,致力于提供灵活、强大且易用的AI Agent开发与运行能力。基于该平台,开发者可快速构建处理各类简单或复杂任务的AI Agent,实现多Agent协同交互,高效开发生产级可靠AI Agent;并助力企业与个人快速搭建AI Agent系统或平台,推动商用级Agentic AI技术广泛应用与落地。
小艺开放平台依托HarmonyOS生态,为开发者打造全链路智能体开发解决方案,平台配备端到端工具链,覆盖从智能体开发、多端调试(手机/平板/车机/PC/手表等)到部署上架的全生命周期。
CANN Skills 为 CANN 社区提供可复用的 Agent 技能模块。目前已实现 Ascend C 算子开发全流程覆盖(14 个 Skills),并成功应用于 Agent 实践 CANNBot。未来将拓展至 CANN 更多技术领域。
如果你是以下之一,我觉得你非常需要本文,毕竟无缝接入华为设备,动动嘴指挥小艺帮你写算子,查api还是很舒服的。
- CANN 社区开发者
- 昇腾 NPU 平台 AI 应用开发者
- Ascend C 算子开发者
一、CANN Skills包含的主要内容
1.1 Skills 技能库
| Skill | 功能 |
|---|---|
| ascendc-kernel-develop-workflow | 7 阶段工作流:环境准备 → 需求分析 → 算子实现 → 测试 → 问题处理 → 总结 → 文档 |
| ascendc-api-best-practices | API 使用最佳实践、参数限制 |
| ascendc-npu-arch | NPU 架构知识、芯片型号映射 |
| ascendc-docs-search | API 文档索引 + 在线搜索 |
| ascendc-env-check | NPU 设备查询、CANN 环境验证 |
| ascendc-tiling-design | Tiling 设计方法论,按算子类别分类 |
| ascendc-precision-debug | 精度调试,症状-原因速查、常见陷阱 |
| ascendc-runtime-debug | 运行时错误调试,错误码解析、Kernel 挂起排查 |
| ascendc-ut-develop | UT 开发与覆盖率增强 |
| ascendc-st-design | aclnn 接口测试用例设计、L0/L1 用例生成 |
| ascendc-code-review | 代码检视方法论、5 大类别规范 |
| ascendc-task-focus | 任务聚焦,解决长任务"迷失在中间"问题 |
| ascendc-whitebox-design | 白盒测试用例生成 |
| ascendc-custom-op-to-kernel-launch | 自定义算子转 <<<>>> kernel 直调 |
1.2 Agents 智能代理
| Agent | 功能 |
|---|---|
| ascendc-ops-architect | 算子架构师,支持需求分析和方案设计两种场景 |
| ascendc-ops-reviewer | 代码检视专家,支持快速检视和全功能检视两种模式 |
二、jiuwenclaw安装
注:openclaw也可以,步骤差不多。但是jiuwenclaw的界面相对来说简洁很多。
2.1 docker
- 这里我已经全部打包好了,直接在终端中执行下面的命令即可。
docker run --name jiuwenclaw -it -d --net=host \
-v /tmp:/tmp \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
swr.cn-north-4.myhuaweicloud.com/toolsmanhehe/jiuwen:0.1.7-py310-ubuntu22.04
- 然后使用浏览器访问
http://localhost:5173,局域网使用http://{ip}:5173。
2.2 pip安装
如果不想用容器的话,按照下面的步骤执行也可以。
# 确认python:>=3.11,<3.14
python3 --version
# 安装 JiuwenClaw
pip install jiuwenclaw
# 初始化 JiuwenClaw (首次启动)
jiuwenclaw-init
# 启动 JiuwenClaw
jiuwenclaw-start
# 如需远程访问需要在两个终端中分别执行下面的命令
jiuwenclaw-app
jiuwenclaw-web --host 0.0.0.0 --port 5173
三、CANN Skills安装
- 在jiuwenclaw的web页面上找到技能页面,点击源管理。

- 源名称可以自己取,这里我用的是
cannskills,git仓库地址写https://gitcode.com/cann/skills.git,然后点击添加并启用这个源。
- 关闭源管理界面后,就可以在技能页面看到刚刚添加的技能了。我们可以按需启用技能。

四、模型配置
- 这里我在本地Ascend310P上用mindie跑了一个模型。服务化配置如下:
"ipAddress" : "0.0.0.0",
"allowAllZeroIpListening" : true,
"httpsEnabled" : false,
"npuDeviceIds" : [[0,1]],
"maxSeqLen" : 32768,
"maxInputTokenLen" : 65535,
"truncation" : true,
"modelName" : "Qwen3-30B-A3B-w8a8",
"modelWeightPath" : "/models/Qwen3-30B-A3B-w8a8",
"worldSize" : 2,
"trustRemoteCode" : true,
"maxPrefillTokens" : 65536,
"maxIterTimes" : 65536,
- 在jiuwenclaw的配置信息中进行模型配置。别忘了点保存。

五、对话测试
这里我使用的测试问题是使用ascendc-api-best-practices这个技能,帮我查询一下datacopy的使用方法
六、小艺连接
-
访问小艺开放平台,点击立即体验。

-
点击创建

-
选择openclaw模式,下面的名字和描述自己填写就好了。

-
第一次进来这里会提示还没有凭证,我们根据提示创建,key和安全密钥务必保存好,下面要用。创建后回来智能体编辑界面是这样的。

-
进行一些其他的配置,然后上架这个智能体。

-
回到jiuwenclaw的配置界面,在频道中配置小艺。


-
打开手机的小艺app界面,在对话页面就会出现刚刚创建的智能体。

-
我们进行对话测试,我使用的问题是
搜索 asc-devkit 中 Exp API 的使用示例
七、总结
笔者走完整个流程大概花了2个小时,大部分时间被jiuwenclaw安装卡了。。。
cann skills的安装和使用倒是没遇到什么大问题,不过可能是没有针对opencalw这种模式优化,在使用的时候有概率不调用安装的skill,但是我们通过指定技能的方式能够实现正确的调用。当然,也有可能是因为笔者刚开始调教我的"油闷大虾"哈。
笔者按照cann skill的说明测试了下面几个场景,模型回答的还是比较准确的,基本没什么错误。在调用skill失败的时候,jiuwenclaw也会降级到websearch,就是多消耗亿点token罢了。
| Skill | 功能 |
|---|---|
| ascendc-api-best-practices | API 使用最佳实践、参数限制 |
| ascendc-npu-arch | NPU 架构知识、芯片型号映射 |
| ascendc-docs-search | API 文档索引 + 在线搜索 |
| ascendc-env-check | NPU 设备查询、CANN 环境验证 |
| ascendc-runtime-debug | 运行时错误调试,错误码解析、Kernel 挂起排查 |
最后,还是建议大家在使用的时候,直接指定技能名称,这样可以有效降低token消耗。
更多推荐




所有评论(0)