个人技能库。
💡: 部分技能已作为元技能被RemindAI作为底层绑定
SkillServer/
├── SKILLS/ # 已安装的技能定义
│ ├── schedule-skill/ # 任务规划与防遗忘技能
│ ├── toolshell/ # 受控文件操作、Shell 执行与记忆技能
│ ├── skill_router/ # 技能元系统(路由、注入、注册表)
│ ├── system_detection/ # 系统检测技能
│ └── gurobi-expert/ # Gurobi Optimizer 13.0 专家技能
└── readme.md # 本文件
防止任务在长对话中被遗忘。维护一个持久化的 SCHEDULE.md 文件,采用 P0/P1/P2 优先级分层。会话开始时自动加载计划,跟踪任务完成情况,并在关键里程碑触发进度报告。
核心功能:
- ✅ 自动加载和创建 SCHEDULE.md
- ✅ P0/P1/P2 三级优先级管理
- ✅ 任务添加、完成、更新、归档
- ✅ 进度报告和智能建议
- ✅ 防遗忘检查机制
基于 memory.json 配置授予大模型操作权限,并提供长期记忆能力(可选 Qdrant 向量检索)。
核心功能:
- ✅ 受控文件读写(边界检查、路径验证)
- ✅ Shell 命令执行(超时控制、输出截断)
- ✅ 记忆存储与召回(SQLite + 可选 Embedding)
- ✅ 操作审计日志
- ✅ normal/auto 两种模式(手动确认 vs 全自动)
提供技能的自动路由、按需注入、注册管理能力。这是一个元技能,为其他技能提供基础设施。
三大核心组件:
-
SkillRouter(技能路由器)
- 关键词匹配:技能名直接匹配 +0.5 分,双向关键词匹配
- 语义相似度:可选 Embedding 余弦相似度(≥0.2 阈值)
- Pinned Skills:已使用技能自动保持注入
- 中英文分词:支持 bigram、停用词过滤
-
SkillInjector(技能注入器)
- 统一注入 API:从技能池按相关性筛选
- 加载 SKILL.md 和 tools.json
- 拼装 system prompt 和 tools 列表
- Prompt 缓存机制(避免重复磁盘 IO)
-
SkillRegistry(技能注册表)
- 从 ZIP 和目录导入技能
- 全局技能 vs 项目级临时技能
- 工具定义归一化(兼容多种格式)
- 元数据管理(排序、激活状态)
性能优化:
- 最多注入 10 个技能
- Prompt 缓存
- Pin 机制避免重复匹配
- 延迟加载
自动检测运行环境的操作系统、架构、Python 版本、可用工具等信息,为跨平台适配提供支持。
核心功能:
- ✅ 操作系统检测(Windows/Linux/macOS,版本,架构,WSL)
- ✅ Python 环境检测(版本,虚拟环境,pip)
- ✅ 常用工具检测(git, npm, docker, pip, cargo 等 30+ 工具)
- ✅ 环境变量读取(支持脱敏)
- ✅ 网络连通性测试(并发测试,DNS 检查)
- ✅ 智能命令推荐(根据系统和可用工具)
使用场景:
- 跨平台命令适配(Windows 用
dir,Linux 用ls) - 依赖安装引导(检测 pip/conda/poetry)
- 环境问题诊断(收集完整信息)
- 智能命令建议(自动适配系统)
Gurobi Optimizer 13.0 的深度知识助手。涵盖 LP、MIP、QP、NLP、多目标优化、分解方法和经典 OR 问题(TSP、VRP、排程等)。包含参考文档和代码模板。
每个技能目录必须包含:
<skill-name>/
├── SKILL.md # 必需:技能描述和指令
├── tools.json # 可选:工具定义
├── .skill_meta.json # 自动生成:元数据
└── runtime/ # 可选:运行时代码
├── __init__.py
└── executor.py
支持三种格式,自动归一化:
格式 1:标准数组
[
{
"type": "function",
"function": {
"name": "tool_name",
"description": "工具描述",
"parameters": {...}
}
}
]格式 2:对象包裹
{
"tools": [...]
}格式 3:扁平格式
[
{
"name": "tool_name",
"description": "工具描述",
"parameters": {...}
}
]from SKILLS.skill_router import SkillRegistry, SkillInjector
# 初始化
registry = SkillRegistry(skills_path='./SKILLS')
injector = SkillInjector(registry=registry)
# 每轮对话
all_skills = registry.list_installed()
active_skills = [s.to_dict() for s in all_skills if s.is_active]
injection = injector.inject(
user_input=user_message,
skill_pool=active_skills,
context=recent_context,
)
# 合并到 LLM 请求
system_prompt += injection.system_prompt
tools.extend(injection.tools)此目录在每个会话开始时由 CherryClaw Agent 自动加载。技能通过 Agent SDK 管理的符号链接被发现。记忆文件由 Agent 使用专用工具读写 — 不要手动编辑 JOURNAL.jsonl。
要添加新技能,使用技能管理工具 (mcp__skills__skills) 的 init 和 register 操作,或从市场使用 install 安装。
本仓库的三个元技能(skill_router)从 RemindAI(Dart/Flutter)移植到 Python:
-
SkillRouter - 基于关键词和语义的相关性匹配
- 中英文分词(bigram、停用词)
- 三层匹配策略(关键词 + 语义 + Pin)
- 相关性评分算法
-
SkillInjector - 按需注入和缓存管理
- Prompt 缓存机制
- 工具来源映射
- 跨轮次状态维护
-
SkillRegistry - 技能生命周期管理
- ZIP/目录导入
- 全局/项目级技能
- 工具定义归一化
- ✅ 类型提示(Type Hints)
- ✅ Dataclass 数据模型
- ✅ 健壮的错误处理
- ✅ 跨平台兼容(Windows/Linux/macOS)
- ✅ 无外部依赖(仅标准库)