ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

鸿蒙 CodeGenie 技能(Skills)配置:SKILL.md 骨架与 DevEco Studio 验证

鸿蒙 CodeGenie 技能(Skills)配置:SKILL.md 骨架与 DevEco Studio 验证 1. 鸿蒙 CodeGenie 的 Skills 到底解决什么问题如果你在 DevEco Studio 里用 CodeGenie 写过鸿蒙应用大概率遇到过这种场景每次让它帮忙构建 HAP、生成 ArkTS 页面骨架、或者按团队规范写注释都得把要求重新描述一遍。今天说“用 Stage 模型”明天说“entry 模块要带 build-profile 配置”后天又忘了提醒它别用已废弃的 API。重复输入格式要求、偏好和操作流程既耗时又容易漏掉关键细节。CodeGenie 的 Skills 功能就是冲着这个痛点来的。它把一套标准化的操作教程固化成一个文件夹文件夹里放一个区分大小写的SKILL.md用自然语言写清楚技能名称、触发条件和执行步骤。定义一次之后CodeGenie 在后续对话里能自动识别并应用这套流程。你可以把它理解成给 CodeGenie 装了一个“岗位操作手册”——它不再每次从零理解你的意图而是照着手册干活。这套机制适合谁一是团队里需要统一代码风格和构建流程的鸿蒙开发者二是经常重复同类任务、想把经验沉淀下来的个人三是正在用 DevEco Studio 6.1.0 Release6.1.0.830及以上版本、想尝鲜 Agent 能力的同学。本文会从 SKILL.md 骨架写起一路走到 DevEco Studio 内的导入、触发和验证中间顺带把 TaoToken 的统一 Key 通道接进来让技能调用走一条稳定的 API 路径。2. 前置准备TaoToken 通道与 DevEco Studio 环境在动手写 SKILL.md 之前先把两件事理清楚CodeGenie 的版本门槛以及模型调用的通道。版本方面Skills 从 DevEco Studio 6.1.0 Release6.1.0.830开始支持低于这个版本在设置里找不到 Skills 入口。你可以打开 DevEco Studio点右上角设置按钮看菜单里有没有 Skills 选项来确认。通道方面CodeGenie 背后要调用大模型能力。如果你希望团队里多个项目、多个成员共用一套 Key 和配额而不是每人各自申请、各自管理可以走 TaoToken 的统一 API 通道。它的 API 地址是https://taotoken.net/api官网入口在https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。统一通道的好处是Key 集中管理模型切换不用改代码配额和用量也能在一个地方看。需要提前准备的清单DevEco Studio 6.1.0 Release 或更高版本一个可用的 TaoToken API Key在控制台的 API Keys 页面创建一个鸿蒙工程用来放 Project Skills 做验证文本编辑器用来写 SKILL.mdDevEco Studio 自带的也行注意SKILL.md 的文件名必须严格区分大小写写成skill.md或Skill.md都不会被识别。这是导入失败最常见的原因之一。拿到 Key 之后先别急着写技能建议用一次模型对话确认通道是通的。打开模型对话页面发一条简单消息能正常返回就说明 Key 和网络都没问题。这一步花两分钟能省掉后面排查“到底是技能写错了还是 Key 没配好”的麻烦。3. 可复制的 SKILL.md 骨架与配置模板SKILL.md 的写作规范是业界通用的 YAML Frontmatter元数据 Markdown Body正文结构。Frontmatter 放在文件最顶部用三条短横线包起来里面写name和description正文部分用 Markdown 写触发条件、执行步骤和注意事项。先看一个最小可用的骨架--- name: openharmony-build description: 鸿蒙应用构建指南当用户提到构建、编译、打包 HAP 时使用 --- ## 触发条件 当用户提到构建、编译、打包、生成 HAP时触发本技能。 ## 执行步骤 1. 检查工程根目录是否存在 build-profile.json5 2. 确认 entry 模块的 module.json5 中 abilities 配置完整 3. 执行编译命令并捕获输出 4. 将构建产物路径和结果反馈给用户 ## 注意事项 - 确保 hvigor 环境变量已配置 - 检查签名配置是否完整未签名会导致安装失败 - 构建失败时优先看第一条 error不要被后续连锁报错带偏这个骨架里name的命名有硬性约束不超过 64 字符只能用小写字母、数字和中划线不能以中划线开头或结尾也不能出现连续的中划线并且要和文件夹命名保持一致。description不超过 1024 字符正文指令不超过 32768 字符整个文件夹不超过 100MB。如果你想让技能在调用模型时走 TaoToken 通道可以在正文里把接口约定写清楚让 CodeGenie 按固定格式发起请求。下面是一个带 API 通道说明的模板--- name: harmony-code-review description: 鸿蒙 ArkTS 代码审查技能检查 API 使用规范与性能隐患 --- ## 触发条件 当用户提到代码审查、review、检查 ArkTS时触发。 ## 执行步骤 1. 读取用户指定的 .ets 文件内容 2. 按以下维度逐项检查 - 是否使用了 Deprecated 标记的 API - 状态管理变量是否合理使用 State/Prop/Link - 是否存在在 build 函数中执行耗时操作 3. 输出问题列表每条包含文件、行号、问题描述、修改建议 ## 模型调用约定 - 接口地址https://taotoken.net/api - 请求方式POSTContent-Type 为 application/json - 鉴权在 Header 中携带 Authorization: Bearer 你的Key - 模型名按控制台当前可用列表填写 ## 注意事项 - 审查结果只做建议不自动改代码 - 涉及分布式能力的代码要额外提示权限声明这里把接口地址写成https://taotoken.net/api注意 API 地址不带查询参数。Key 不要硬编码进 SKILL.md尤其是 Project Skills 会跟着工程进版本库。更稳妥的做法是把 Key 放在本地环境变量或 DevEco Studio 的配置里SKILL.md 里只写引用方式。Skills 分两种类型选择哪种取决于你的使用范围类型适用范围是否跨设备同步Global Skills全局技能当前用户在本地所有项目不可跨设备同步Project Skills项目技能仅当前项目跟随工程团队协作场景建议用 Project Skills把 SKILL.md 放进工程目录一起提交新成员拉下来就能用。个人跨项目复用的工具类技能放 Global Skills。4. 在 DevEco Studio 中导入并触发技能写完 SKILL.md 只是第一步接下来要在 DevEco Studio 里把它导进去。4.1 进入 Skills 配置页面打开 DevEco Studio点击界面右上方的设置按钮在菜单里选择 Skills进入配置页面。页面里会分成 Global Skills 和 Project Skills 两个区域。4.2 导入技能文件在对应区域下点 Import 按钮选择你准备好的文件夹。导入规则有两种情况如果选择的文件夹里直接存在 SKILL.md就把它作为单个 skill 导入如果选择的文件夹里没有 SKILL.md会遍历它的下一级文件夹检查是否包含 SKILL.md找到的作为 skill 导入支持批量这里有个容易踩的坑只支持遍历所选文件夹的下一级不支持更深层级。也就是说如果你的目录结构是skills/group-a/build/SKILL.md而你选的是skills文件夹它只会看group-a这一层找不到build里的 SKILL.md。正确做法是直接选到build那一层或者把 SKILL.md 往上提一层。4.3 管理已导入的技能导入成功后Global Skills 和 Project Skills 列表里会显示技能信息包括技能名称、description 里的描述信息、启用状态。鼠标悬浮在技能信息上会出现操作按钮编辑会在代码编辑区打开 SKILL.md 文件删除则移除该技能。如果发现技能没生效先看这里的启用状态是不是被关掉了。4.4 在对话框中触发回到 CodeGenie 对话框调用技能时需要在输入内容里带上技能的name。比如你的技能 name 是openharmony-build就输入类似“用 openharmony-build 帮我构建当前工程”这样的话。CodeGenie 识别到 name 后会按 SKILL.md 里定义的步骤执行。触发时有个细节name 要写完整、写准确。写成openharmony build空格或者OpenHarmony-Build大写都可能匹配不上因为 name 的命名规则本身就不允许大写和空格。5. 验证配置生效与常见报错排查技能导入后怎么确认它真的生效了最直接的办法是发一条触发消息观察 CodeGenie 的回复是否遵循了 SKILL.md 里的步骤结构。比如你的技能定义了“先检查工程结构再执行编译最后输出结果”如果回复里出现了这三段式说明技能被正确加载了。再进一步可以故意在 SKILL.md 里加一条独特的注意事项比如“输出结果时用表格呈现”然后触发技能看回复里有没有表格。有就说明配置生效。下面是我实测中遇到过的几类问题按排查顺序列出来导入后列表里没有出现技能。先确认文件夹里 SKILL.md 的大小写是否正确再确认你选的文件夹层级对不对。如果 SKILL.md 藏在两层以下导入时是扫不到的。技能出现在列表里但触发没反应。检查对话框输入里有没有带上准确的 name。另外确认技能处于启用状态被禁用的技能不会响应。触发后回复不符合 SKILL.md 的步骤。大概率是正文指令写得太模糊。CodeGenie 按自然语言理解正文如果步骤之间没有明确顺序词先、再、最后它可能自由发挥。把步骤写成有序列表每条以动词开头效果会稳定很多。调用模型时报鉴权失败。检查 Key 是否有效、是否过期以及请求头里的 Authorization 格式是不是Bearer Key。如果走的是 TaoToken 通道确认接口地址写的是https://taotoken.net/api不要多加路径或参数。构建类技能执行到一半失败。这类问题多半不在技能本身而在工程环境。先确认 hvigor 和签名配置再看构建日志的第一条 error。技能只是把流程固化环境问题还得从环境解决。提示调试 SKILL.md 时可以先用一个极简技能只有触发条件和一条步骤验证链路通不通再逐步加内容。这样出问题时容易定位是技能写法问题还是环境问题。如果你在排障过程中需要重新生成或管理 Key可以到 API Keys 页面操作接入细节和参数说明可以对照接入文档。这两个入口配合使用基本能覆盖通道层面的所有问题。6. 把技能沉淀成团队资产Skills 真正的价值不在单次使用而在沉淀。一个写好的 SKILL.md 放进工程仓库就成了团队共享的操作规范。新同学不用再问“构建命令是什么”“注释怎么写”CodeGenie 会照着技能文件给出符合团队习惯的答案。我的建议是先从 Project Skills 起步把团队最高频的两三个任务写成技能比如构建、代码审查、页面骨架生成。跑顺之后再把跨项目通用的部分抽到 Global Skills。技能文件本身也要进版本管理改动走 review这样技能库才会越来越准。如果你还在用零散的提示词应付日常任务不妨挑一个最烦的重复劳动花二十分钟写个 SKILL.md。长期编码和 Agent 场景如果调用量大可以了解 Coding Plan 的配额方式把通道成本也一并管起来。技能定义好、通道接稳剩下的就是让 CodeGenie 按手册干活了。
返回列表