技能进化驱动师
任务目标
-
本 Skill 用于:驱动技能进行自我进化,随着项目过程推进持续优化
-
能力包含:
-
监控skill-manager存储的数据,识别技能优化机会
-
在空闲时提醒用户潜在的优化建议
-
维护技能优化任务清单
-
执行技能更新流程(备份、更新、测试、还原)
-
管理技能版本号
-
触发条件:以下任一情况触发
-
用户直接需求:"优化技能"、"改进技能"、"技能需要更新"、"技能升级"、"修复技能问题"
-
自动监控触发:监控到skill-manager存储的技能数据中有待优化的任务(如:status=pending的优化任务、日志中的错误和警告、缺失的必要字段)
-
版本相关:"技能版本号需要更新"、"需要记录技能变更"
-
质量相关:"技能格式不正确"、"需要检查技能质量"、"技能测试不通过"
优化识别
数据来源
从skill-manager存储的技能数据中分析优化机会:
-
缺失信息:技能配置中缺乏必要字段(如version)
-
格式问题:数据格式不符合规范
-
重复信息:存在冗余或重复的内容
-
使用模式:根据访问频率和方式识别改进点
-
错误日志:从日志中识别常见错误或警告
-
跨技能协作问题:从其他技能的日志中识别对当前技能的依赖问题或改进建议
优化类型
-
format_improvement:格式改进
-
content_optimization:内容优化
-
version_update:版本号更新
-
bug_fix:Bug修复
-
feature_enhancement:功能增强
进化流程
步骤1:提醒用户
自动监控触发
智能体定期检查 skill-manager 存储的数据,识别优化机会:
检查工具:调用 scripts/check_optimization_opportunities.py
检查所有技能
python scripts/check_optimization_opportunities.py
检查特定技能
python scripts/check_optimization_opportunities.py --skill-name dev-observability
检查内容:
-
待处理任务:检查 skill-evolution-driver 自身存储的优化任务(status=pending)
-
缺失字段:检查技能配置是否缺少必要字段(如 version、deploy_mode、manual_path)
-
错误日志:检查技能日志中的 ERROR/WARNING/CRITICAL 日志
-
目录问题:检查技能目录结构是否符合规范
提醒格式:
检测到潜在优化机会:
- 技能:skill-name
- 优化类型:format_improvement
- 描述:SKILL.md缺少version字段
- 是否开始优化?(y/n)
用户主动触发
当用户表达以下需求时,直接提醒用户:
-
"优化技能"、"改进技能"
-
"技能需要更新"、"技能升级"
-
"修复技能问题"
-
"技能版本号需要更新"
-
"技能格式不正确"、"需要检查技能质量"
步骤2:维护任务清单
若用户同意,调用skill-manager存储优化任务:
{ "task_id": "OPT-001", "skill_name": "skill-name", "optimization_type": "format_improvement", "description": "SKILL.md缺少version字段", "status": "pending", "feasibility": "pending", "backup_path": "", "old_version": "", "new_version": "", "test_result": "", "notes": "", "created_at": "2024-01-22 12:00:00", "updated_at": "2024-01-22 12:00:00" }
存储方式:更新 skill-evolution-driver 在 skill-manager 中的配置
import sys sys.path.insert(0, '/workspace/projects/skill-manager/scripts') from skill_manager import SkillStorage
storage = SkillStorage(data_path="/workspace/projects/skill-data.json") existing_config = storage.get_config("skill-evolution-driver") or {} existing_config["optimization_tasks"] = [task_dict] # 任务列表 storage.save_config("skill-evolution-driver", existing_config)
步骤3:分析可行性
分析该技能的优化可行性:
可行性评估标准:
-
技能目录结构完整
-
SKILL.md格式正确
-
脚本语法正确
-
依赖关系清晰
-
优化内容明确
不可行情况:
-
技能目录不存在或损坏
-
SKILL.md格式错误,无法解析
-
优化内容不明确或过于复杂
-
优化可能破坏现有功能
更新任务状态:
-
可行:feasibility: "feasible"
-
不可行:feasibility: "not_feasible" ,并在notes 中说明原因
步骤4:备份技能
调用 scripts/backup_skill.py 备份技能:
python scripts/backup_skill.py --skill-dir /workspace/projects/skill-name
备份文件格式:skill-name.backup.<timestamp>.skill
更新任务:
- backup_path: "/workspace/projects/skill-name.backup.<timestamp>.skill"
步骤5:更新技能
执行具体的优化操作,并更新版本号:
-
执行优化:根据优化类型修改技能内容
-
更新版本号:调用 scripts/update_version.py
python scripts/update_version.py --skill-dir /workspace/projects/skill-name --type patch
版本号类型:
-
patch :修订版本(v1.0.0 -> v1.0.1)
-
minor :次版本(v1.0.0 -> v1.1.0)
-
major :主版本(v1.0.0 -> v2.0.0)
更新任务:
-
old_version: "v1.0.0"
-
new_version: "v1.0.1"
步骤6:进行测试
对更新后的技能进行测试验证:
测试内容:
-
SKILL.md格式验证(YAML前言区)
-
脚本语法检查(Python语法)
-
目录结构验证(符合固定结构)
-
依赖完整性检查(dependency字段)
测试脚本:
python scripts/backup_skill.py --validate-only --skill-dir /workspace/projects/skill-name
步骤7:处理测试结果
测试不通过:
-
调用 scripts/restore_skill.py 还原技能
-
使用 manage_optimization_tasks.py 更新任务状态
还原技能
python scripts/restore_skill.py --backup-file <备份路径> --skill-dir /workspace/projects/skill-name
更新任务状态
python scripts/manage_optimization_tasks.py update
--task-id OPT-001
--status failed
--test-result failed
--notes "测试失败:SKILL.md格式错误"
测试通过:
-
使用 manage_optimization_tasks.py 更新任务状态
-
打包新的.skill文件
-
告知用户更新内容
-
提醒用户重新加载技能
更新任务状态
python scripts/manage_optimization_tasks.py update
--task-id OPT-001
--status completed
--test-result passed
--notes "优化成功:已添加version字段"
--new-version v1.0.1
--backup-path /workspace/projects/skill-name.backup.20260122120000.skill
重要:必须更新任务状态为 completed ,避免下次检查时重复提醒相同的优化机会。
步骤8:通知用户
根据测试结果通知用户:
测试通过:
✓ 技能优化成功
- 技能:skill-name
- 版本:v1.0.0 -> v1.0.1
- 更新内容:添加version字段
- 备份:skill-name.backup.<timestamp>.skill
请重新加载AI交互界面以使用更新后的技能。
测试不通过:
✗ 技能优化失败
- 技能:skill-name
- 原因:测试失败
- 详情:SKILL.md格式错误
- 技能已还原
核心功能说明
智能体可处理的功能
-
监控skill-manager数据,识别优化机会
-
在空闲时提醒用户优化建议
-
维护技能优化任务清单
-
分析优化可行性
-
执行优化操作
-
进行测试验证
-
处理测试结果
-
通知用户
脚本实现的功能
-
检查优化机会:scripts/check_optimization_opportunities.py 扫描skill-manager数据,自动识别优化机会(过滤已完成的任务)
-
管理优化任务:scripts/manage_optimization_tasks.py 提供优化任务的增删改查功能(add/update/list)
-
备份技能:scripts/backup_skill.py 备份整个skill目录
-
还原技能:scripts/restore_skill.py 从备份还原技能
-
更新版本号:scripts/update_version.py 增加SKILL.md中的version字段
-
测试验证:scripts/backup_skill.py --validate-only 验证技能格式
资源索引
-
优化机会检查工具:见 scripts/check_optimization_opportunities.py(自动扫描skill-manager数据,识别优化机会,过滤已完成的任务)
-
优化任务管理工具:见 scripts/manage_optimization_tasks.py(优化任务的增删改查)
-
备份工具:见 scripts/backup_skill.py(备份技能目录)
-
还原工具:见 scripts/restore_skill.py(从备份还原技能)
-
版本管理:见 scripts/update_version.py(更新版本号)
-
优化指南:见 references/optimization_guide.md(优化类型、测试标准、最佳实践)
注意事项
-
优化前必须备份技能
-
优化过程中保持task状态同步更新
-
测试不通过必须还原技能
-
版本号遵循语义化版本规范
-
重大变更需用户明确确认
-
优化完成后必须更新任务状态为 completed ,避免重复提醒
-
优化后需提醒用户重新加载技能
最佳实践
-
定期监控skill-manager数据,识别优化机会
-
优先处理高价值、低风险的优化
-
优化前充分分析可行性
-
保持详细的优化日志
-
定期清理过期的备份文件
-
向用户提供清晰的优化说明
使用示例
示例1:添加version字段
检测到skill-name的SKILL.md缺少version字段。
-
提醒用户
-
用户同意后,创建优化任务
-
分析可行性:可行
-
备份技能:skill-name.backup.20240122120000.skill
-
更新SKILL.md,添加version: v1.0.0
-
测试验证:通过
-
更新任务状态:completed
-
通知用户:优化成功
示例2:格式改进
检测到skill-name的SKILL.md格式不符合规范。
-
提醒用户
-
用户同意后,创建优化任务
-
分析可行性:可行
-
备份技能
-
修正SKILL.md格式
-
测试验证:通过
-
更新任务状态:completed
-
通知用户:优化成功
示例3:不可行的优化
检测到skill-name的优化内容过于复杂。
-
提醒用户
-
用户同意后,创建优化任务
-
分析可行性:不可行
-
更新任务状态:failed
-
更新备注:优化内容过于复杂,需要人工介入
-
通知用户:优化不可行,需人工处理