Skills 技能系统
JeikCode 提供了开箱即用的 Agent Skills 技能库机制。通过编写结构化的技能包,你可以将专有业务规范、领域工作流、API 封装或特定的 Prompt 模版固化为可复用的工程模块。
1. 什么是 Agent Skill?
与简单的单行 Prompt 提示词不同,Skill 是一个包含触发规则、使用说明与工作流模板的独立功能单元。 当用户的任务与某个 Skill 的能力描述相匹配时,Agent 可以自主激活该技能,按预设的最佳工作流展开分析与执行;用户也可以在输入框或斜杠命令中显式调用指定技能。
2. 存储目录与加载优先级
JeikCode 按以下层级扫描并加载 Skills:
- 工作区项目级:
<workspace>/.skills/<skill-name>/SKILL.md(最高优先级,支持随 Git 仓库团队协同); - 全局用户级:
~/.jeikcode/skills/<skill-name>/SKILL.md(全局共享,所有项目均可访问)。
同名技能存在时,项目级配置自动覆盖全局技能。
3. WebUI 界面交互与快捷调用
在图形化 WebUI 界面中,你可以极其方便地发现和使用 Skills:
- 侧栏「技能」面板:点击侧边栏的“技能”图标,可直观查看当前所有已加载的技能列表及其核心功能介绍;
- 输入框
+快捷菜单:在对话输入框左侧点击+按钮,选择“插入技能”,即可一键将技能(如/<skill-name>)快速填入输入框; - 终端速查:在终端 TUI 中输入
/skills,亦可实时列出所有已激活的技能目录。
4. SKILL.md 标准格式与规范
每个技能是一个独立目录,其核心入口文件必须命名为 SKILL.md,并在顶部包含 YAML Frontmatter 元数据:
markdown
---
name: code-review-expert
description: 对提交的代码进行深度安全与性能审计,检查空指针、并发竞态与资源泄露。
---
# 代码审计专家指南
你现在扮演核心架构师角色,针对用户提供的代码执行以下严格维度的审查:
1. **并发与竞态条件**:锁粒度是否合理?是否存在死锁或竞态风险?
2. **内存与资源泄露**:打开的文件句柄、网络连接、通道是否保证安全回收?
3. **安全隐患**:SQL 注入、反序列化漏洞、明文敏感凭据。
4. **性能瓶颈**:是否存在不必要的昂贵对象克隆或 O(N^2) 嵌套循环?
## 执行规范
- 优先指出严重级别最高的隐患;
- 每条发现均需附带行号说明与修复前后的 Diff 示例。5. 推荐最佳实践:渐进式子目录设计
为了防止单个 SKILL.md 堆砌海量参考资料导致冷启动过量消耗模型 Token 上下文,强烈推荐采用渐进式分层目录设计:
text
.skills/my-feature-expert/
├── SKILL.md # 核心流程与触发描述(保持精简,约 100~300 tokens)
├── references/ # 放置详细技术文档、API 契约,供 Agent 按需使用 read_file 调阅
│ └── api-spec.md
└── scripts/ # 放置辅助脚本、脚手架或测试模板
└── verify.sh6. 参数插值与即时生效
- 动态参数插值:在技能模板中可以使用
$ARGUMENTS或$0接收用户调用该技能时传入的实际参数; - 保存即时生效:新建或编辑
SKILL.md后,在 WebUI 侧栏中点击刷新按钮或在终端执行/reload,底层即会自动重载,新技能在下一轮对话中即刻生效,无需重启进程。