跳到主要内容

技能系统

CountBot 的技能系统是一套可热加载的能力目录。技能既可以是内置能力,也可以是工作空间里的自定义能力。

目录结构

技能统一从工作空间加载:

workspace/
├── .skills_config.json
└── skills/
├── agent-browser/
├── agent-team-manager/
├── baidu-search/
├── cron-manager/
├── email/
├── find-skills/
├── image-analysis/
├── image-gen/
├── map/
├── news/
├── skill-creator/
├── terminal-session/
├── weather/
└── web-design/

每个技能目录包含:

  • SKILL.md — 技能说明与操作规范(必需)
  • scripts/ — 辅助脚本(可选)
  • assets/ — 模板、静态资源(可选)
  • references/ — 参考资料(可选)

技能生效方式

1. 启动时加载索引

SkillsLoader 扫描 workspace/skills/,读取每个技能的 SKILL.md 和 frontmatter,建立索引,同时结合 .skills_config.json 判断哪些技能被禁用。

2. 系统提示词注入

  • 自动加载技能(always=true): 完整内容注入系统提示词
  • 普通技能: 只放摘要,需要时再读取 SKILL.md

3. 运行时按需读取

模型决定使用某个技能时,通过文件工具读取该技能目录下的说明文档、脚本或参考资料。

SKILL.md 结构

---
name: my-skill
description: 这个技能解决什么问题
metadata:
CountBot:
always: false
requires:
bins: []
---

# 技能标题

## 适用场景
说明什么时候使用该技能。

## 操作步骤
写清楚模型应该读哪些文件、执行哪些脚本、怎样解释结果。

常用字段:

字段说明
name技能唯一名称
description技能简介
metadata.CountBot.always是否自动注入系统提示词
metadata.CountBot.requires.bins依赖的命令行程序

技能管理 API

基础管理

方法路径说明
GET/api/skills获取技能列表
POST/api/skills创建技能
POST/api/skills/reload重载技能目录
GET/api/skills/{name}获取技能详情
PUT/api/skills/{name}更新技能
DELETE/api/skills/{name}删除技能
POST/api/skills/{name}/toggle启用或禁用

配置管理

方法路径说明
GET/api/skills/{name}/config/schema获取配置 schema
GET/api/skills/{name}/config获取当前配置
PUT/api/skills/{name}/config保存配置
GET/api/skills/{name}/config/status获取配置状态
POST/api/skills/{name}/config/fix自动修复缺失字段
GET/api/skills/{name}/config/help获取配置帮助

启用状态

保存在 workspace/.skills_config.json:

{
"disabled_skills": ["news", "map"]
}

内置技能

技能作用常见依赖
agent-browser浏览器自动化需要 agent-browser CLI
agent-team-manager管理团队配置无额外配置
baidu-search百度搜索scripts/config.json
cron-manager定时任务管理无额外配置
emailQQ/163 邮箱收发scripts/config.json
find-skills腾讯 SkillHub 搜索安装无额外配置
image-analysisOCR、图片分析scripts/config.json
image-gen文生图scripts/config.json
map地图、路线检索scripts/config.json
news新闻聚合无额外配置
skill-creator生成、评估技能无额外配置
terminal-session终端会话辅助无额外配置
weather天气查询无额外配置
web-design页面生成与部署scripts/config.json

自定义技能

最小可用技能

workspace/skills/my-skill/
└── SKILL.md

带脚本的技能

workspace/skills/my-skill/
├── SKILL.md
└── scripts/
└── main.py

带配置的技能

workspace/skills/my-skill/
├── SKILL.md
└── scripts/
├── config.json
└── config.json.example

常见问题

技能目录已创建但页面看不到

  • 目录名是否合法
  • 是否存在 SKILL.md
  • frontmatter 是否可解析
  • 调用 POST /api/skills/reload 刷新

技能列表有但模型不使用

  • description 是否写清触发场景
  • 是否被禁用
  • 是否需要让模型按需读取脚本

相关文件