常用 Prompt 每次都要重贴?WES Code 技能系统(Skills)怎么用

目录


用 AI 写代码久了,总有几套做法要反复交代:review 时看哪几个维度,提交信息按什么格式写,改数据库要成对写迁移。

每次都贴一大段提示词,很烦。全写进规则文件里,又太长,每一轮都在占上下文。

WES Code 的技能(Skill)就是为这个准备的:把一类任务的做法写成一份 SKILL.md。平时系统提示词里只放一份技能索引,真正用到时才加载全文。这篇讲技能长什么样、预装了哪些、怎么加载、怎么调用、怎么写自己的,以及它做不到的地方。


一、一个技能长什么样

技能就是一份 Markdown 操作手册,告诉 AI 某一类任务该怎么做。它不增加新工具,只规定做法。

下面是预装技能 code-review 文件开头的 frontmatter,原样照搬:

yaml 复制代码
---
name: code-review
version: "1.0.0"
min_engine: "1.0.0"
description: "Review diffs for correctness, security, maintainability with graded findings. Use when reviewing PRs or code changes."
operators:
  - read
  - exec
capabilities:
  - cap.reviewer.methodology
metadata:
  enabled: true
  execution_mode: guided
  tags: [code-review, defect-detection, quality, best-practices]
---

几个字段里,最要紧的是 description。它会出现在技能索引里,AI 靠它判断这个任务该不该用这个技能。所以预装技能的描述都写成「做什么 + 什么时候用」(Use when reviewing PRs or code changes)。

frontmatter 下面才是正文:具体步骤、检查项、要避开的坑。


二、预装的 26 个技能

WES Code 预装了 26 个编程技能,按用途分成几组:

分组 技能 什么时候用
产品增量 wescode-retrieval、wescode-execution 检索代码、执行验证命令时,和引擎的基础技能一起生效
产品增量 issue-investigation 你报了一个 bug
产品增量 context-calibration 第一次接触一个工作区
重度方法论 performance-optimization 做性能优化,先测再改
重度方法论 refactoring 大规模重命名、迁移,逐步改、逐步编译
重度方法论 integration-audit、legacy-navigation、code-audit-discipline 审查接线、读遗留代码、大范围审计
标准编程 test-engineering 写测试,红绿重构
标准编程 security-audit 安全审计
标准编程 code-review、code-review-dispatch 审查 diff 和 PR
标准编程 debug-methodology 运行时崩溃、下断点
标准编程 documentation-engineering、pattern-consistency、autonomous-workflow 写文档、对齐同包写法、自主推进任务
轻量参考 database-design、clean-code、ui-engineering、cicd-deployment、git-workflow、system-design、requirements-analysis 改表结构、实现和重构、写前端组件、配 CI、Git 操作、架构设计、需求分析
平台能力 split-changes、pr-guardian 拆分大变更、守护 PR(冲突、评论、CI)

另外还有 7 个引擎内置的基础技能,比如检索、执行、记忆策略、计划。这几个是只读的,不能改,也不能卸。

在 WES Code 左侧的「技能」里打开技能管理页,「已安装」里能看到全部技能,每个都能单独启用或禁用。


三、技能是怎么加载的

常驻的只有索引

系统提示词里只有一份 <available_skills> 索引,每个技能一条:名字、来源、位置和描述。没写描述的,取正文开头 250 个字符。

索引的格式是这样的(channel、location 的值随安装位置不同,这里省略):

xml 复制代码
<available_skills>
  <skill name="code-review" channel="..." location="...">
    Review diffs for correctness, security, maintainability with graded findings. Use when reviewing PRs or code changes.
  </skill>
  <!-- 其余技能,每个一条 -->
</available_skills>

索引最后跟着一句固定的提示:

Before using a skill, call skill(action="view", name="<skill-name>") to load its full instructions.

也就是说,AI 决定要用某个技能时,先调用 skill 工具把全文读进来,再照着做。这次调用的参数是:

json 复制代码
{
  "action": "view",
  "name": "code-review"
}

skill 工具一共四个动作:view 读全文,search 按关键词找技能,edit 改技能的正文或描述,disable 停用。比如找和测试有关的技能:

json 复制代码
{
  "action": "search",
  "query": "test"
}

索引也有上限

索引默认预算 20000 token,超过 15000 会换成精简写法,最多列 100 个技能。装得再多,也不会把系统提示词撑爆。

为什么这样设计

全文不常驻,没用到的技能就不占上下文。索引放在系统提示词里、轮与轮之间基本不变,对提示词缓存也友好。


四、在对话里调用技能

让 AI 自己判断

大多数时候不用管。你说「帮我 review 一下这次改动」,AI 看到索引里 code-review 的描述,就会去加载它。

用 /技能名 直接点名

想指定用哪个技能,就在消息里写 /技能名:

text 复制代码
/code-review 看一下 internal/order 这次的改动,按严重程度列出问题

WES Code 会把你这条消息里的 /code-review 展开成这个技能的全文,跟着这条消息一起发给模型,不改动系统提示词。一条消息里写多个 /技能名 也行,重复的只算一次。


五、写一个自己的技能

在技能工作台里新建

在技能管理页点「新建技能」,会打开「技能工作台」(创建和编辑自定义技能),写完点「保存」。

每个技能是一个目录,里面必须有一份 SKILL.md,还可以放技能要用到的脚本:

text 复制代码
team-commit/
├── SKILL.md      # 必须有:frontmatter + 正文
└── scripts/      # 可选:技能里要调用的脚本

照着预装技能的格式写就行。比如把团队的提交规范写成一个技能:

markdown 复制代码
---
name: team-commit
version: "1.0.0"
min_engine: "1.0.0"
description: "按团队规范写提交信息。用户要求提交代码或生成 commit message 时使用。"
metadata:
  enabled: true
  tags: [git, commit]
---

# 团队提交规范

- 标题格式:<type>(<scope>): <summary>,type 只用 feat / fix / refactor / docs / test / chore
- summary 用中文,不超过 50 个字,结尾不加句号
- 改了表结构的提交,正文第一行写清迁移文件名
- 一个提交只做一件事,顺手改的格式和重命名单独提交

之后说「把这次改动提交了」,或者直接写 /team-commit,AI 就会按这份规范来。

规矩多、步骤多的场景,更适合写成技能。比如数据库迁移:

markdown 复制代码
---
name: db-migration
version: "1.0.0"
min_engine: "1.0.0"
description: "写数据库迁移时的检查规则。新增或修改表结构、编写迁移文件时使用。"
metadata:
  enabled: true
  tags: [database, migration]
---

# 数据库迁移规则

1. 迁移文件成对写:每个 up 都要有对应的 down,down 要能把 up 完全撤回
2. 加列默认允许为空,或者给默认值;不在大表上一次性加非空列
3. 删列分两步:先发一个版本停止读写这一列,下一个版本再删
4. 写完在本地依次跑 up、down、up,三次都成功才算完成

写好描述

描述决定 AI 什么时候想起它。写成「做什么 + 什么时候用」,比只写一个名词管用得多。

按项目隔离

自定义技能存在本机数据目录下这个工作区自己的目录里。A 项目里写的技能,B 项目里没有。


六、它做不到的地方

  • 不增加工具:技能只能教 AI 怎么用已有的工具,不能给它新能力
  • 引擎内置的 7 个只读:不能改,也不能卸
  • 全文不常驻:AI 没加载的技能就不生效。描述写得含糊,它可能想不起来用
  • 索引有上限:技能太多时,索引会换成精简写法
  • 不跨项目:每个工作区的技能是分开的

小结

  1. 技能是一份 SKILL.md,写的是一类任务的做法
  2. 系统提示词里只放索引,用到时才加载全文;索引默认预算 20000 token,最多列 100 个
  3. 让 AI 自己判断,或者用 /技能名 直接点名
  4. 在技能工作台里新建,描述写成「做什么 + 什么时候用」

文中的技能系统是 WES Code 里的功能,官网是 weisyn.com。你们团队最想写成技能的是哪一套做法,欢迎评论区聊聊。

觉得有用的朋友,欢迎点赞、收藏、关注,后面会继续分享 AI 编程的实战经验。

相关推荐
言乐61 小时前
Python根据关联词搜索模型
开发语言·人工智能·python·机器学习·django
段一凡-华北理工大学1 小时前
高炉炼铁机器视觉与智能识别十八讲~系列文章01:机器视觉如何重塑炼铁智能化
大数据·人工智能·机器视觉·工业智能化·高炉炼铁智能化·工业智能识别
橡木3621 小时前
人脸敏感信息时代:AI 形象工具的安全设计逻辑与风险应对
人工智能·安全
蜗牛互联网1 小时前
Java 17调用gpt-transcribe实现会议录音转写与术语提示
java·人工智能·后端
勤劳X码农1 小时前
2026年AI配音做教育视频怎么选?
人工智能·游戏·音视频
Darren&Joe1 小时前
信息检索与获取:AI Prompting 入门到高阶
人工智能
7yewh1 小时前
SLAM 非线性优化(5)
人工智能·机器学习
draracle1 小时前
AI正在批量制造屎山:Vibe Coding的认识论批判
人工智能·深度学习
鲜于言悠9051 小时前
地质RAG实战:TXT/Word/PDF/网页四类文档清洗全流水线
人工智能