介绍
CANNWork(CANNLab-WorkAgent)作为CANN一站式AI开发客户端,支持昇腾算子开发、调试、优化、文档等,轻量零门槛,提升算子开发效率。
软件架构
软件由前端交互层与后端服务层组成。
前端交互层嵌入主流代码编辑器,如 Visual Studio Code 等,以插件形式存在,用户可在熟悉的编码环境中使用助手功能。通过展示代码续写建议、以及侧边栏的对话文本框,旨在方便用户使用并探索助手提供的各种功能。
后端服务层采用基于神经网络的代码生成模型,提供代码补全、对话问答等代码辅助开发功能。通过后端服务的持续能力提升,不断提高前端交互层的用户体验。
1. 插件登录
插件登录后才提供完整问答、续写等模型服务,使用 GitCode 账户进行登录。
- 勾选方框,点击登录按键,允许使用 GitCode 登录并打开外部网站。


- 跳转至外部网站进行GitCode账户授权,并重定向回VSCode。


2. 插件配置
- 点击右上⻆⼩⻮轮后,选中打开 CANNWork的权限设置。

- 点击右上⻆⼩⻮轮后,选中打开 CANNWork的文档质检设置。

使用说明
1. 模型配置
CANNWork 支持两类模型:由 CANN 网关统一接入的内置模型,以及用户自行接入的自定义模型。模型选择器位于聊天界面底部,会话中可随时切换,切换后的选择会被自动记住,下次启动默认恢复。
1.1 内置模型
内置模型由 CANN 网关统一管理和接入,无需用户配置任何 API Key。
- 内置公共模型:平台提供的公共模型(如 Qwen、DeepSeek 系列),所有登录用户可用;
- api网关模型:与用户账号绑定的专属模型,需要使用公司购买的 Key 才能调用。
使用前提:需完成 CANN 账号登录。登录后扩展会自动申请模型访问凭证(VK)并注入请求鉴权,首次发放或凭证更新后模型列表会自动刷新。
使用方式:点击聊天界面底部的模型选择器,从内置模型 /CANNLab-WorkAgent模型分组中选择目标模型即可。切换后的选择会被自动记住,下次启动时恢复。


1.2 自定义模型
如需使用 CANN 网关之外的第三方模型,可添加自定义模型,请求直连厂商 API,不经过 CANN 网关。
添加步骤:
- 点击模型选择器底部的添加模型,打开连接 Provider对话框;
- 在厂商列表中选择「自定义」;
- 填写配置表单:
- 提交后工具自动测试连接:向该 API 地址发送一次探测请求,验证地址可达性与密钥有效性;测试通过后模型自动添加,测试失败则提示具体错误(如 HTTP 状态码、连接超时等),不写入配置;
- 添加成功后,新模型出现在模型选择器的自定义模型分组中,与内置模型 / CANNLab-WorkAgent 模型并列,可像其他模型一样选用。
管理:
- 删除:鼠标悬停模型选择器中的自定义模型条目,点击 × 即可删除;
- 更新:重复添加相同 API 地址 + 模型名称的模型视为更新,新配置覆盖旧配置并替换旧密钥。

2. Plan和Build模式
CANNWork 提供 Plan 和 Build 两种工作模式,决定智能体在会话中的行为边界与工具权限。模式可在聊天输入框区域一键切换。
2.1 Plan模式
Plan 模式面向方案分析与设计场景,智能体以只读探索 + 方案输出的方式工作,不会直接改动代码。

适用场景:接手陌生代码库需要先摸清结构;改动前希望评估方案与风险;只做代码解读、问题定位而不希望 AI 动代码。
2.2 Build模式
Build 模式面向实际开发执行场景,智能体在权限规则允许的范围内直接执行改动。

适用场景:方案已确定进入编码实现;Bug 修复与重构;日常脚本编写、工程配置修改等直接动手的开发任务。
3. Skill配置
Skill 是扩展智能体能力的领域知识包:每个 Skill 是一个包含 SKILL.md 的文件夹,SKILL.md 使用 YAML 前置数据声明名称与描述,正文编写指令、规范或操作流程。会话中智能体可根据任务自动匹配 Skill,也可由用户手动指定。
Skill 按作用域分为全局 Skill 和项目级 Skill 两级,两者同名时项目级优先生效。

3.1 添加全局Skill
全局 Skill 存放在用户主目录下,所有项目、所有会话均可使用,适合放置与具体工程无关的通用能力(如编码规范、通用调试流程)。
添加方式:
- 点击输入框区域的Skills按钮(或输入 /skills)打开 Skill 选择器,点击导入;
- 安装位置选择全局,导入方式选择ZIP 压缩包或文件夹;
- zip 包内 SKILL.md 须位于根目录或唯一一级子目录下,否则提示导入失败;Skill 名称取自包内包含 SKILL.md 的目录名(位于根目录时取 zip 文件名),名称须含字母或数字;
- 导入同名 Skill 时直接覆盖旧版本。
3.2 添加项目级Skill
项目级 Skill 存放在当前项目目录下,仅该项目、该目录下的会话可用,适合放置与工程强绑定的能力(如该工程的编译命令、算子开发流程、目录结构说明)。
添加方式:
与全局 Skill 相同(导入时安装位置选项目级),或直接将文件夹放入 <项目>/.opencode/skills/。Team 模式下,Team 工作区的 .opencode/skills/ 也会作为 Team 级 Skill 加载,且优先级最高。也可将包含 SKILL.md 的 Skill 文件夹直接放入上述任一目录;列表有约 30 秒缓存,稍候或重开选择器即可看到。

4 MCP配置
MCP(Model Context Protocol)是扩展智能体工具能力的标准协议。接入 MCP 服务器后,智能体可在对话中调用其提供的工具(如联网搜索、数据库查询等)。MCP 配置同样分为全局和项目级两个层级。
4.1 添加全局MCP
添加步骤:
- 点击聊天界面底部状态栏的 MCP 按钮,打开MCP 服务器面板;

- 点击添加,在弹出的配置对话框中填写参数;

- 点击添加,配置写入配置文件并自动连接服务器(启用此服务器关闭时仅保存不连接),连接状态实时显示。MCP 配置变更在下次对话时生效,当前进行中的对话不会自动应用。
4.2 添加项目级MCP
添加步骤:
与全局 MCP相同,仅在保存位置中选择项目配置。
4.3 连接状态与管理:
MCP 面板实时显示每个服务器的连接状态(已连接 / 连接中 / 连接错误 / 未连接 / 已禁用 / 需要认证 / 需要客户端注册)及可用工具数量,连接失败时同时显示错误信息,并支持:
- 重新连接:非已连接状态下手动重试(先断开再重连);
- 编辑 / 删除:编辑配置——包括「启用此服务器」开关,可用于临时禁用某服务器而不删除配置;删除会从配置文件中移除服务器,不可撤销,删除前会二次确认;
- 刷新:从配置文件重新加载全部服务器,并自动连接所有已启用的服务器。
5. 权限配置
智能体在会话中的每一步工具调用(读写文件、执行命令等)都受权限规则约束。CANNWork提供默认权限和完全访问两档权限,可在设置页全局配置(作为所有新会话的默认值),也可在单个会话内通过工具栏开关单独切换;会话内的显式设置优先于全局设置。
5.1 默认权限
默认权限是最严格的档位:所有工具调用都需要用户确认,包括只读操作。智能体每次需要执行操作时,会弹出权限请求对话框,展示要使用的工具及输入内容,由用户逐项把关;同时存在多个待处理请求时,将按顺序逐个呈现。
适用场景:初次使用、不熟悉智能体行为;在重要工程目录中工作;希望对每一步操作保持完全掌控。
5.2 完全访问
完全访问是面向效率的档位:开启后,日常操作(文件读写、常规命令执行等)自动放行,无需逐项确认;仅敏感、危险操作仍会弹出审批。
无论从设置页还是会话内工具栏开启,均会弹出风险确认对话框,需勾选确认后方可启用。
会话级完全访问(会话内工具栏开关)
- 入口:会话输入框上方工具栏的权限按钮(显示「默认权限」或「完全访问」),点击展开下拉后打开「允许完全访问」开关;
- 生效范围:仅当前会话,随时切换,互不影响其他会话;
- 生效时机:立即生效;切换时该会话内已积累的「始终允许」记录一并重置;
- 优先级:会话级设置优先于全局开关,单独设置后该会话按会话级档位执行,不受全局开关影响;但全局开关每次切换都会清除会话级设置;
- 持久化:按会话保存,窗口重载后恢复该会话的设置。


全局完全访问(设置页开关)
- 入口:设置页的权限开关;
- 生效范围:作为所有会话的默认权限档位,新建会话默认跟随该开关;
- 生效时机:切换后立即对所有运行中的会话生效,包括正在问答中的会话;
- 切换影响:切换全局开关会清除所有会话的单独权限设置(各会话统一重置为全局值),同时清除各会话已积累的「始终允许」记录;此后仍可在单个会话内重新单独设置;
- 持久化:全局保存,重启后仍然有效。

开关层级:
设置页全局开关:控制所有新会话的默认权限档位;切换后立即对所有运行中的会话生效(包括正在问答中的会话),并清除各会话的单独设置;
会话内工具栏开关:仅影响当前会话,随时切换,互不影响其他会话。
适用场景:可信任务的全自动执行(如批量重构、长时间运行的构建修复),减少逐项确认的打断;配合危险操作拦截,兼顾效率与安全。
业务Agent功能介绍
1. 算子文档开发
1.1 功能介绍
针对文档开发场景,本工具目前提供如下能力:
文档生成
针对CANN领域中可结构化的文档,工具提供基于模型AI的辅助学习能力,能够同步生成与软件实现一致的文档,从而提升文档写作效率。
注意:目前仅支持生成算子对应的aclnn API文档,其他组件文档生成能力正在建设中。
文档质检
针对markdown格式的文档,提供静态检查(StaticCheck)、基础语义检查(AICheck)、领域规则检查(DomainCheck)等能力,希望能提高文档质量。
1.2 工具配置
工具辅助文档写作或质检过程中,支持自行配置相关能力。以文档质检配置为例,可设置检查模式和对应的检查项:

4.1.3 功能使用
4.1.2 功能使用
1. 进入算子文档生成流程
使用步骤:
- 在资源管理器中右键算子工程目录
- 选择 CANNWork → Ascend C API 文档生成

- 工具自动打开聊天面板,新建会话并切换到 DocAgent 模式,同时开始扫描目录下的算子与接口
- 扫描完成后,输入框上方弹出向导卡片,进入第 1 页(选择生成范围)
2. 选择生成范围与生成模式(向导)
使用步骤:
- 在「请选择 xx 中需要生成算子文档的代码文件」页中勾选需要生成文档的接口,扫描结果默认全选,可点击「全选」批量切换,页头显示共 N 篇文档

- 点击「确定」进入第 2 页(生成模式)
- 选择生成模式:全量生成(基于完整代码从零开始生成文档)

- 选择全量生成后点击「确定」,任务立即开始
3. 增量生成:选择变更范围与对比版本
使用步骤:
- 在变更范围页选择基线:仅根据本次修改更新算子文档(以本地修改为基线),或使用本地最新代码更新算子文档(以代码仓为基线)

- 点击发送,工具新建增量任务会话,自动完成环境准备与基线快照


- 快照完成后,对话流末尾出现版本选择块,点击版本按钮,或在输入框直接输入版本号

- 工具开始变更检测与文档生成,输入框上方的任务面板实时显示逐文件进度
- 完成后任务面板显示变更文件清单,每个文件标注新增 / 删除行数
- 点击接受全部应用全部变更,或点击「撤销变更」整体回退
4. 文档质检(按配置全量质检)
使用步骤:
- 在资源管理器中右键待质检的文档文件
- 选择 CANNWork → 文档质检

- 开启确认提醒时,聊天区显示质检配置卡片:设置启用AI质检开关、基础检查模式(全量检查 / 门禁模式(必检项最小集) / 自定义)和领域规则(无 / AscendC 领域 / Aclnn 领域)


- 可勾选「以后不再手动确认,直接开始质检」
- 点击「开始质检」,工具新建质检会话并执行检查,各检查项进度实时显示
- 完成后显示质检统计(质检策略、开始时间、耗时、检查文件数)与质检报告卡片
说明:勾选不再提醒后,之后右键质检将跳过配置直接开始;可在设置页的文档质检页签中重新开启提醒。
5. 文档质检(目录单项检查)
使用步骤:
- 在资源管理器中右键文档目录
- 选择 CANNWork → 文档质检(选择检查项)

- 在弹出的选择框中选择一个检查项,如 markdown语法检查、Link有效性检查、资源有效性检查、单词拼写检查、Html标签闭合检查、合规检查、文件名检查、标点符号检查

- 工具对该目录下的文档批量执行所选检查,批量文件清单与进度实时显示
- 得到质检报告

2.算子接口检索
2.1 功能介绍
针对算子接口检索场景,本工具提供 APIAgent 问答模式:基于指定版本号的 CANN 官方文档,以自然语言完成 Ascend C、aclnn 等算子接口的查询、行为验证与选型对比,帮助开发者快速获取准确的接口信息。
版本化检索
检索基于选定版本的 CANN 官方文档进行。进入 APIAgent 模式后,输入框上方提供当前检索文档版本选择器,版本列表从服务端实时拉取,最新版本带最新标识;选定版本后,问答将针对该版本文档作答,避免跨版本信息混淆。
自然语言接口查询
无需记忆接口名称,直接描述诉求即可定位接口。
接口行为与约束咨询
针对接口的实际行为、数值表现与平台约束进行验证型问答,例如:数据类型转换的取整行为(Cast 接口 bf16 转 fp32 时 RoundMode::CAST_RINT 输出全 0 的原因)、特定芯片上的行为限制(310P 上 printf 缓冲区大小)、多精度类型适配(算子同时支持 half 和 float)等。
等效方案对比选型
对完成同一目标的多种接口/指令方案进行对比分析(如 for+muls 与 brcb+mul 的取舍),辅助开发者在性能与实现复杂度之间做出选择。
免打扰问答
APIAgent 会话内的工具调用权限请求自动放行,优先级高于普通会话的权限规则,全程无权限弹窗打断。
快捷提问
空会话时随机展示常见问题卡片,点击卡片即把问题填入输入框,可直接发送或修改后发送。
2.2 功能使用
- 进入 APIAgent 问答模式
使用步骤:
- 在聊天面板底部找到输入框上方的 Agent 选择器(显示当前 Agent 名称的按钮)
- 点击展开 Agent 列表,选择 APIAgent;悬浮选项右侧的 ? 图标可查看该模式的说明
- 若当前处于 Build/Plan 等普通模式,切换后会自动新建一个空白会话进入 APIAgent 模式;若在算子开发 Team会话中切换,会先弹出退出 Team 确认框
- 进入后,空会话页面显示 APIAgent 标题与快捷提问卡片

说明:Agent 选择按会话记忆,切换到其他会话不会影响该会话的模式。
- 选择检索文档版本
使用步骤:
- 进入 APIAgent 模式后,输入框上方自动显示「当前检索文档版本」栏
- 版本列表自动从服务端拉取,拉取期间显示「版本加载中...」
- 拉取完成后默认选中商用版最新版本(带「最新」标识)
- 点击版本号展开下拉列表,可切换到其他版本

说明:每次提问都以当前所选版本为检索范围;「最新」标识固定标记商用版最新版本,与当前所选版本无关;版本拉取失败时
显示「版本获取失败,点击重试」,点击后重新拉取。
3. 算子编程开发
3.1 功能介绍
针对算子编程开发场景,本工具内置多个业务 Team。每个 Team 是一组经过编排的智能体(含专属 Agent 人设、领域技能与命令),按端到端工作流完成算子的开发、编译、调试与调优;开发者以自然语言下达任务,Team 自动拆解阶段并逐步执行,过程全程可视化。
能力说明
- 端到端编排:Team 按「代码生成 → 编译 → 精度调试 → 性能分析」的阶段化工作流推进任务,复杂任务自动建立任务清单,进度实时渲染在任务面板;
- 环境自动准备:进入 Team 时自动拉取团队配置并初始化独立的团队工作目录,团队技能、命令随目录就绪,与本地工程隔离;
- 会话绑定:Team 会话与团队工作目录绑定,多 Team 并行开发互不干扰,切换会话自动路由回对应目录;
- 权限可控:Team 执行中的写操作仍受权限规则管控(见 3.5 权限配置),关键改动由用户把关。
3.2 功能使用
- 进入算子开发 Team
使用步骤:
- 打开 CANNWork 聊天界面,确认已连接服务;
- 点击输入框工具栏的智能体选择器,在下拉列表中选择OPSAgent;

- 工具栏出现选择算子类型入口,点击打开 Team 列表;
- 选择目标 Team(如「Ascend C 自定义算子开发 Team」);
- 等待团队配置拉取与工作目录初始化,完成后进入 Team 欢迎页。

- 下发开发任务
使用步骤:
在欢迎页点击预设任务卡片,任务描述自动填入输入框;也可跳过此步,直接输入自然语言任务;
按需修改任务描述,如补充算子名称、输入输出数据类型、性能要求等;
按 Enter 发送,Team 自动拆解任务阶段并开始执行。
跟踪任务执行
使用步骤:
观察输入框上方的任务面板:任务清单实时更新,每项显示待处理 /进行中 / 已完成状态;
在对话流中查看工具卡片:每一步命令执行、文件读写以卡片形式展示,可展开查看命令内容与执行结果;
如需查看代码改动,点击代码审查按钮打开右侧面板:按文件汇总本次会话的改动(增删行数、差异对比),点击文件可展开查看明细。
切换 Team
使用步骤:
点击工具栏的算子类型选择器(当前 Team 名称处);
在列表中选择另一个 Team;
系统自动创建新会话并绑定新团队目录,原 Team 会话保留在历史列表中。
切回历史 Team 会话
使用步骤:
点击顶部的会话历史按钮;
点击目标 Team 会话卡片;
会话自动恢复,并路由回该会话绑定的团队目录继续工作。
退出 Team 模式
使用步骤(二选一):
- 方式一:点击算子类型选择器,选择退出 Team 模式;
- 方式二:将智能体切换为其他类型,在弹出的确认框中确认退出。
- 多 Team 并行开发
使用步骤:
- 保持当前 Team 会话任务执行(无需等待完成);
- 点击新建会话;
- 在新会话中按第 1 项步骤进入另一个 Team;
License
CANNLab-WorkAgent(CANNWork) LICENSE (EN) © 2026 Huawei Technologies Co., Ltd. | 中文版.