用途
autopilot-tuner 用于闭合 drupal-workflow 插件的反馈回路:读取真实会话数据,识别 autopilot 的哪些干预有效、哪些无效,并对策略、阈值、分类关键词和升级行为提出有针对性的修改建议。插件每次会话都会生成数据(干预日志、结果归档、状态快照),该技能把这些数据转化为可执行的改进,而不是让它们闲置。
主要能力
- 数据收集:运行诊断脚本汇总所有会话数据为单一报告,输出结构化 JSON,包含各干预类型的触发次数、接受率、平均升级级别,会话结果概况(平均漂移、有验证的比例、有计划的比例),任务分类分布及其结果质量,阈值分析(在何种编辑次数下代理实际遵守),以及带理由和置信度的具体修改提案。
- 代码审查:诊断脚本给出数字,但数字会遗漏结构性问题。技能要求先阅读监控脚本(干预触发位置、触发条件、检查的工具类型)、分类器脚本(关键词优先级顺序、默认回退情况),并检查是否存在重复或冲突的钩子。需关注数据无法反映的问题:干预时机(是否只在 Edit/Write 触发而错过探索阶段)、竞争钩子(多个钩子对同一问题反复提示导致代理脱敏)、关键词重叠(如 “add a config” 先匹配实现的 “add” 而非维护的 “config”)、死代码(脚本引用与 hooks.json 不一致)。广泛健康检查还可扫描插件缓存与源文件同步情况、文档准确性。
- 诊断分析:围绕五个问题给出高影响力发现:干预是否被遵循(接受率低于 30% 视为噪音,高于 70% 视为有效);升级是否有帮助(比较第 1 级提示与第 2 级命令的接受率);任务分类是否正确;计划是否真正有帮助;阈值是否校准合理。
- 提案生成:每条提案编号为 [P1]、[P2] 等,注明要改的确切文件与字段、旧值→新值、数据依据、可能风险、置信度(高/中/低)。可提议的类别包括策略阈值(scripts/policies/*.json)、分类关键词(scripts/task-classifier.sh)、升级行为与干预文本(scripts/autopilot-monitor.sh)、阶段预算、结构性调整(脚本与 hooks/hooks.json)、分类器逻辑。技能鼓励横向思考,例如让分类器更智能、改变干预触发的工作流位置、合并竞争钩子、新增任务类型。
- 批准后应用:每条提案以 diff 预览呈现,用平实语言解释理由,等待用户批准后再应用,绝不自动应用。应用后提醒:更改在下次会话生效(SessionStart 重新加载策略),约 5-10 个会话后再次运行本技能衡量影响,可用 analyze-replays.py --compare 查看前后对比。
- 变更记录:应用后向插件变更日志追加摘要,形成审计轨迹,便于后续调优了解此前尝试。
使用方式
先运行诊断脚本收集数据:python3 "${CLAUDE_PLUGIN_ROOT}/skills/autopilot-tuner/scripts/diagnose.py" --json;若已部署第二阶段,再运行对比模式:python3 "${CLAUDE_PLUGIN_ROOT}/scripts/session-analysis/analyze-replays.py" --compare --json。随后阅读监控、分类器等相关脚本,结合诊断输出与代码调查按优先级呈现发现,编号提出修改建议,逐条等待用户批准后应用,最后追加变更日志:echo "$(date -Iseconds) | autopilot-tuner | <summary of changes>" >> "${CLAUDE_PLUGIN_ROOT}/CHANGELOG.log"。
适用场景
autopilot 干预被忽略(接受率低)、干预过于激进或过于被动、任务被错误分类(如小型配置修复触发完整计划工作流)、部署插件更改后衡量前后影响、周期性健康检查(每周或约每 10 个会话后)、用户反馈 autopilot “太烦”或“没帮助”。
限制与注意事项
样本少于 5 个会话时,接受率不可靠、结果相关性无意义,只能关注明显问题(从不触发的类型、0% 接受率、日志中可见的分类不匹配),并应说明“数据不足以给出有把握的建议”。部分设置不应随数据调整:实现/重构任务的 require_verification 是质量关卡而非建议;敏感文件拦截不因便利性指标放松;升级抑制上限(MAX_FIRES_PER_TYPE=2)保持不变——同一类型提示超过 2 次没有益处。