Skill Self-Optimizer(技能自进化引擎)
概述
本 Skill 是一个后台自适应进化运维助手:监控所有已启用 Skill 在运行过程中的卡顿、超时、报错、
异常卡住、迭代失败、响应缓慢、输出不符预期等问题;自动记录故障场景、排查过程、解决方案、成功经验,
沉淀为私有故障经验知识库;并在同一类故障累计出现 ≥2 次时,对对应 Skill 进行容错增强型升级
(保留原有业务功能,自动备份可回滚),实现「越用越好用」的自迭代效果。
本 Skill 不替代被监控的 Skill,只做容错增强、卡顿修复、BUG 规避,不改变任何 Skill 原本的
业务目标与输出方向。
何时使用(触发条件)
在以下任一信号出现时,主动加载本 Skill 并执行对应流程:
- 运行异常信号(由本会话的 Agent 在 Skill 执行后自动识别):
- 工具返回错误(error / exception / 非零退出码)。
- 单次 Skill 运行耗时远超正常预估(Agent 依据任务复杂度主观判断,或同一步骤重复重试 ≥3 次)。
- 长时间无有效输出、循环卡死、逻辑跑偏。
- 输出为空 / 格式错误 / 明显不符合用户要求。 - 用户主动上报:用户说「XX skill 又卡了 / 报错了 / 上次那个 BUG 又出现了」。
- 人工解决复盘:用户手动解决了一个 Skill 卡顿 / BUG,需要把本次经验纳入知识库。
> 说明(能力与边界):本环境没有独立的后台守护进程,所谓「实时监测」由 Agent 在 Skill 执行
> 结束后(或收到用户上报时)即时触发本 Skill 完成,而非常驻监听。若需周期性扫描,可配合
> WorkBuddy 的 automation(定时任务)调用本 Skill 的 analyze_kb.py 做健康巡检。
数据存储
- 知识库(故障经验):
<skill-dir>/data/knowledge_base.json - 升级变更日志:
<skill-dir>/data/changelog.json - 被升级 Skill 的备份:
<目标 skill 目录>/backups/SKILL.md.bak.<时间戳>
首次运行脚本时自动创建 data/ 目录与文件,无需手动初始化。
一、运行异常实时监测
Agent 在每次 Skill 执行结束后,检查上述「触发条件」信号:
- 若工具结果含 error / 异常栈 / 超时提示 → 记为异常。
- 若同一 Skill 在相同步骤反复重试且无进展 → 记为「反复重试耗时过长」。
- 若输出为空或与任务目标严重偏离 → 记为「输出不符合预期」。
- 若耗时显著超出同类型任务常态 → 立刻进入「自动故障排查流程」,无需用户干预。
无异常时不打扰用户,静默继续。
二、自动故障排查流程
触发异常后,按 references/diagnosis_playbook.md 的决策树顺序排查:
- 检查当前 Skill 的提示词 / 指令是否存在歧义、逻辑漏洞、步骤缺失、约束冲突。
- 检查执行步骤顺序是否合理、是否存在多余循环。
- 检查参数输入格式、边界条件、上下文信息是否缺失。
- 归类本次问题为以下之一:
-transient(临时偶发问题)
-design-defect(Skill 本身设计缺陷)
-input-adapt(输入场景适配不足)
-env(外部环境问题,如网络 / 依赖缺失) - 自动尝试修复或绕过故障点,优先保证本次任务继续完成。
- 调用
scripts/record_incident.py保存完整故障日志(触发场景、用户输入、卡顿现象、耗时、
排查路径、最终方案、修复结果)。
三、经验沉淀 & 问题知识库自动积累
record_incident.py 按 (skill_id + signature) 聚合成「问题组」,自动累计 recurrence(出现次数):
- 每条经验存储:问题特征标签(signature)、触发条件、复现场景、根因分析、最优修复方案、优化建议。
- 偶发(出现 1 次)只记录不修改 Skill 本体;仅当同一类问题 recurrence ≥2 才进入升级流程。
- 用户手动解决一个 Skill BUG 时,主动调用本流程,将
--source user-fix的经验纳入知识库并复用。 - 用户可将某次卡顿标记为「无需优化,偶发问题」(见第五节),系统不再以此为依据升级。
四、自动升级优化对应 Skill(核心自进化)
当同一问题组 recurrence ≥2 且未被标记 one-off 时,启动迭代升级:
- 读取
references/diagnosis_playbook.md的「容错增强模板」,结合历史经验,仅针对缺陷点
起草对目标 Skill 的最小改动(优化提示词、补充分支、增加超时/重试/异常拦截规则)。 - 先备份:调用
scripts/patch_skill.py --backup生成SKILL.md.bak.<时间戳>。 - 再编辑:用 Edit 工具把容错内容插入目标 SKILL.md(追加「异常处理 / 容错兜底」小节或
修补对应步骤),不重写原有业务逻辑。 - 记录变更:调用
scripts/patch_skill.py --record-change写入升级日志(修复了什么、
改了哪些规则、预期改善效果)。 - 生成《Skill 迭代升级报告》,展示优化明细,请用户确认生效或撤销(见第五节)。
- 升级只做缺陷修补与容错增强,保留目标 Skill 全部业务功能不变。
五、人机交互规则
- 后台静默运行,无异常不打扰。
- 检测并修复卡顿后,简短告知:「本次检测到【XXX 卡顿】,已自动修复并沉淀经验。」
- 完成一次升级后,主动输出《Skill 迭代升级报告》(含:优化前问题、修改的规则、预期效果、
备份路径),并询问用户确认生效 / 撤销本次升级。 - 用户可随时查看:故障经验知识库、历史卡顿记录、所有 Skill 优化变更记录——
调用scripts/analyze_kb.py(list-incidents / list-groups / show-group / changelog / stats)。 - 用户可标记某次卡顿为「无需优化,偶发问题」:
record_incident.py --dismiss-group <group_key>,
系统不再以此组为依据升级。
六、安全约束边界(重要,防止过度修改)
- 只做容错增强、卡顿修复、BUG 规避;不得更改其他 Skill 原本的业务目标、输出内容方向。
- 所有自动升级均可回滚:升级前已自动备份,撤销时调用
patch_skill.py --rollback恢复上一版本。 - 没有可沉淀的故障经验时,不做任何改动。
- 遇到无法自动解决的严重卡死,停止自动修改,提示用户人工介入排查,并照常记录故障日志。
脚本用法
所有脚本位于 scripts/,使用 managed Python 执行:
python scripts/<name>.py <args>(Windows 下用 WorkBuddy managed Python 绝对路径)。
record_incident.py—— 记录 / 标记故障- 新增:
--skill <id> --signature <分组标签> --feature --symptom --trigger --duration --root-cause --solution --category {transient|design-defect|input-adapt|env} --severity {low|med|high} [--oneoff] [--source {auto|user-fix|manual}] - 标记偶发:
--dismiss-group <group_key> - 输出 JSON:含
recurrence与eligible_for_upgrade(≥2 且未标记 one-off 为 true)。 analyze_kb.py—— 查询知识库list-incidents [--skill X] [--category Y]list-groups [--threshold 2]show-group --group-key Xchangelog/statspatch_skill.py—— 安全升级与回滚- 备份:
backup [--skill-id X | --skill-path P]→ 返回备份路径 - 回滚:
rollback [--skill-id X | --skill-path P] [--backup-path P](缺省回滚到最新备份) - 记录:
record-change --issues-fixed --changes --expected-impact --backup-path(须在 Edit 之后调用)
参考
references/diagnosis_playbook.md:异常信号清单、根因决策树、容错增强模板、升级补丁范本、
知识库 JSON 结构说明。