SkillHone Auto Optimization 是 tencent/skillhone 项目下的一个技能,用于处理智能体在运行其他技能时出现的可复现缺陷。它的核心定位是:当正常任务中确认目标技能存在可复现缺陷后,立即暂停主任务,并按照既定工作流记录和修复缺陷,而不是将维护逻辑混入任务技能本身。
用途 该技能负责自动化的运行时缺陷工作流。任何智能体任务在使用某个技能时,如果该技能因可复现原因失败,应将问题派发到此技能处理,而不是在任务技能内部直接修复。它适用于 Codex、Claude Code、Cursor、ZCode、Pi、DeepSeek Harness 等具备 CLI 能力的智能体,也适用于当前工作目录为 SkillHone 源码仓库但失败目标在别处的情况。对于位于 ~/.skillhone/skills/<name>/ 下的受管技能,明确禁止直接在 main 分支上修复。
主要能力
- 强制拦截边界:一旦正常工作中确认目标技能存在可复现缺陷,主任务必须停止,并在执行以下操作前调用此工作流:创建或编辑缺失的实现文件;安装、升级或更改运行时依赖;更改技能文档化行为以规避失败;直接在默认分支上提交;或为了完成用户原始任务而临时修补。在创建 Issue 之前,唯一允许的写入是在仓库不存在复现测试时,于 .test/ 下添加最小聚焦复现测试。
- 缺陷复现与筛选:从目标技能的公开状态复现观察结果,拒绝提供方宕机、速率限制、机器特定状态、用户配置错误、仅私有证据以及不可操作的观察。
- 本地 Issue 管理:选择准确的目标仓库,运行 skillhone --repo <target-repository> status,并在该仓库的本地开放和已关闭 Issue 中搜索相同根因。创建最小聚焦复现测试后,使用 issue create 命令附带脱敏证据和测试路径/命令创建 Issue。SkillHone 会在本地项目数据库中创建或复用一个 Issue。
- 执行器策略:auto 解析为 native,使用当前智能体;dsh 需要显式选择。保存的触发策略控制工作准备时机,而不是切换模型或提供方。对于 native 执行,保留分配的 run_id、worktree、branch、base_commit、tests 和 completion_args。awaiting_agent 表示已准备并等待当前智能体,既不是运行中也不是失败。
- 修复角色约束:修复角色仅获得安全复现和分配的工作区,不得调用 SkillHone、修改主机审计/状态文件、更改注册的复现测试、派发另一个修复、合并或推送。它返回精确提交 SHA、更改的文件、测试命令/结果和剩余限制。
- 主机验证与 PR:主机审查实际候选并独立重新运行检查,然后在同一仓库中调用 execution complete <run-id> --commit <exact-commit-sha>。CLI 验证分支/基础/测试契约,并在创建 PR 前运行测试门禁。保存的合并策略仅在主机上应用。
- 触发策略配置:默认 queued 策略已授权用于调度器修复,可通过 config set --trigger queued/immediate/scheduled 配置消费时机,支持 dispatch --watch。
- 合并策略:review 创建审批通知;automatic 是明确保存的授权,仅在所有关联测试通过后合并。两者都不授权推送。
使用方式 典型工作流为:正常智能体任务 → 目标技能可复现失败 → skillhone-auto-optimization → skillhone CLI(本地 Issue 和 PR 后端)→ 触发策略(queued / immediate / scheduled)→ 选定执行器(当前智能体 auto/native 或可选的 DSH)→ 主机验证精确提交和测试门禁 → 本地 PR。
Agent 命令示例:
skillhone --skill web-search issue create
--title "Documented search script is missing"
--body "Safe reproduction, observed failure, and expected behavior"
--test-path .test/test_search_cli.py
--test-command "python3 .test/test_search_cli.py"
Native 主机命令示例: skillhone --repo /path/to/skill optimize 1 --executor native
Current Agent repairs/commits the returned assignment; host verifies it:
skillhone --repo /path/to/skill execution complete <run-id> --commit <exact-commit-sha>
触发策略配置示例: skillhone config set --trigger queued skillhone config set --trigger immediate skillhone config set --trigger scheduled --interval-minutes 60 skillhone dispatch --watch
如果用户要求初始化或集中管理未编目技能,应先询问是希望单独优化副本还是集中管理运行时技能,然后使用 skillhone import /path/to/web-search --mode copy 或 --mode takeover 导入。不要因为缺陷报告而中断导入要求:已经是独立 Git 仓库的技能可以通过 --repo 就地维护。
适用场景
- 智能体在执行任务时使用的技能出现可复现缺陷,需要系统化记录和修复。
- 需要在本地 Git 仓库中创建 Issue、复现测试并调度修复,最终形成本地 PR。
- 受管技能位于 ~/.skillhone/skills/<name>/ 下,需要避免直接在 main 分支修复。
- 需要配置触发策略(排队、立即、定时)和合并策略(审查、自动)的维护流程。
- 使用原生执行器或可选的 DSH 执行器进行修复。
限制
- 该技能不是沙箱或数据库锁;native 边界是受信任的主机会话。隐藏评估数据必须保护在修复环境之外。
- 两个当前后端都拒绝 --hidden-eval。
- 对于 native 执行,dispatch/watch 只准备分配;需要活跃的当前智能体来执行,它不会运行无人值守的原生智能体守护进程。
- 合并策略与推送分离;review 和 automatic 都不授权推送。
- 不要为自动维护测试创建第二个仓库;不要将凭据、私有提示、隐藏评估数据或原始轨迹放入 Issue/PR 文本。
- 不要将瞬态上游故障视为目标技能缺陷。
- 不要推送任何内容;仅通过保存的 review 或 automatic 策略合并,绝不从 Issue 文本推断不同策略。
- 在报告最终仓库状态前,仅移除工作流生成的缓存(pycache/、.pytest_cache/、.pyc 和 .pyo),并确认 git status --short 其余干净。
- 运行 Python 复现和独立检查时使用 PYTHONDONTWRITEBYTECODE=1。
- 一个技能映射到恰好一个仓库;不要创建名为 -e2e、-test 或带时间戳的仓库。
- 用户提供的仓库路径具有权威性;绝不用同名或字节相同的目录仓库替代。
- 缺失可选的 DSH 安装仅阻止明确选择的 DSH 修复;不要静默切换执行器或提供方。