1. 项目概述一个让AI技能与代码库自我进化的“锻造炉”如果你正在使用Claude Cowork这类AI协作平台或者手头有一个需要持续优化的代码项目你肯定体会过反复手动调整、测试、评估的繁琐。每次修改都像是一次赌博你无法确定这次调整是让效果提升了还是引入了新的问题。Skill Forge v2 就是为了终结这种低效循环而生的。它本质上是一个自主实验循环系统像一个不知疲倦的“锻造师”能自动分析你技能或代码的弱点提出修改假设执行测试并根据客观指标决定保留改进还是回退。你可以把它看作一个专为AI技能和通用代码库设计的“自动驾驶”优化引擎。这个项目的核心价值在于将主观、模糊的“优化”过程转变为客观、可重复、可度量的科学实验。无论是优化一个Claude Skill的指令文档SKILL.md还是提升一个Python脚本的性能指标Skill Forge都能通过其严谨的“假设-实验-评估”循环在无人值守的情况下比如你睡觉时持续寻找更优解。它深受Andrej Karpathy的“autoresearch”理念启发但将应用场景从机器学习训练代码扩展到了更广泛的自然语言指令和通用代码优化领域。2. 核心架构与双模式设计解析Skill Forge v2的架构清晰地区分了两种核心工作模式这决定了它能处理什么类型的问题以及如何进行处理。理解这两种模式是有效使用它的前提。2.1 技能模式专为Claude Cowork技能优化而生技能模式是Skill Forge的“原生”模式专门针对Claude Cowork的Skill进行优化。它的优化对象是一个名为SKILL.md的文件这是定义Claude技能行为的核心指令文档。核心工作流分析 → 提出假设 → 修改SKILL.md → 评估 → 评分 → 保留/回退 → 重复在这个模式下评估的依据是一组预先定义的“评估断言”。这些断言本质上是一系列测试用例每个用例包含一个输入提示和一个期望的输出标准。例如对于一个“文章润色”技能一个评估断言可能是“输入‘这个产品很好用’输出应包含更丰富的形容词和具体的使用场景描述。” Skill Forge会运行这些断言检查技能的实际输出是否符合预期并计算一个通过率。为什么选择技能模式当你需要提升的是一个AI智能体的“软技能”——即它理解指令、遵循流程、输出特定格式内容的能力时技能模式是最佳选择。它优化的不是代码的执行效率而是自然语言指令的清晰度、完备性和引导效果。这种优化非常微妙通常需要大量的人工试错而Skill Forge自动化了这个过程。2.2 通用模式将任何文件与任何指标挂钩通用模式极大地扩展了Skill Forge的适用范围。它不再局限于SKILL.md和评估断言而是允许你指定任何文件作为优化目标并指定任何能返回一个数字的Shell命令作为评估指标。核心工作流分析 → 提出假设 → 修改目标文件 → 运行度量命令 → 评分 → 保留/回退 → 重复这意味着你可以优化一个Python脚本train.py用python train.py --eval命令的输出来衡量模型准确率可以优化一个Web服务器的配置文件nginx.conf用ab -n 100 -c 10 http://localhost/命令的“每秒请求数”作为指标甚至可以优化一个Markdown文档用一个自定义脚本检查其可读性分数例如Flesch-Kincaid指数。模式选择的实操要点自动检测Skill Forge通常能根据目标路径是否包含SKILL.md来自动选择模式。但明确指定模式可以避免意外。指标命令的设计是关键在通用模式下你提供的Shell命令必须满足两个条件1) 执行成功退出码为02) 输出中包含一个可解析的数字整数或浮点数。这个数字就是优化的“北极星”。你需要确保这个命令稳定、可重复并且其输出的数字变化能真实反映你关心的质量维度。方向性你必须明确告诉系统这个数字是“越高越好”例如准确率、吞吐量还是“越低越好”例如错误率、延迟。这通过metric_direction参数设置。3. 深入核心三大智能体与实验循环Skill Forge的自动化能力并非来自一个单一的、模糊的AI而是由三个职责分明的“智能体”协同工作实现的。这种模块化设计使得每个环节都清晰可控也便于未来扩展或替换某个组件。3.1 假设智能体扮演“科学家”的分析师假设智能体是整个循环的“大脑”。它的任务不是直接修改文件而是分析现状诊断问题并提出一个可验证的科学假设。输入它接收当前版本的SKILL.md或目标文件、上一轮实验的评分结果、完整的实验历史记录以及一个关键的“覆盖矩阵”。覆盖矩阵记录了哪些类型的修改已经被尝试过例如“改进了工作流程描述”、“增加了边界案例处理”、“优化了输出格式”。工作流程失败分析仔细审查那些未通过的评估断言或较低的指标分数尝试归纳失败的模式。是某个步骤的指令模糊是缺少对特定输入类型的处理还是效率低下查阅历史避免重复劳动。检查覆盖矩阵看看针对当前诊断出的问题类型是否已有成功的修改方案可以借鉴或者哪些类型的修改还未被充分探索。提出假设基于以上分析形成一个具体的、可操作的假设。例如“假设在SKILL.md的‘校对’步骤中增加一个关于‘处理中文引号与英文引号混用’的具体子步骤将能提高对混合排版文本的处理通过率。”生成修改提案将假设转化为对“外科医生”突变智能体的明确指令指出应该在文件的哪个部分、以何种方式进行修改。实操心得假设的质量决定上限假设智能体的输出是整个实验的起点。一个模糊的假设如“让指令更清晰”会导致后续修改漫无目的。而一个具体、可证伪的假设如“在第三步增加一个检查列表明确要求核对日期、金额、人名三项”能引导突变智能体做出精准的修改。在“引导模式”下你可以在此环节介入审核并修正假设这能显著提升实验效率。3.2 突变智能体扮演“外科医生”的执行者突变智能体是“双手”。它接收假设智能体发来的、带有具体修改提案的指令然后对目标文件进行一次且仅一次聚焦的修改。核心原则最小化变更它的设计哲学是“一次只改变一件事”。这源于科学实验的“控制变量法”。如果一次修改同时调整了多个部分当评分结果变化时你将无法确定是哪个改动起了作用或是引起了问题。因此突变智能体会严格遵循提案可能只是增加一个句子、修改一个参数或者调整一段代码的逻辑。输出它会产生两个关键输出修改后的文件这是实验的对象。修改文档详细记录了修改的位置、修改前的原文、修改后的文本以及修改意图。这份文档对于回溯实验过程和理解每次改变的贡献至关重要。注意事项避免“手术事故”尽管是AI执行但修改也可能引入语法错误、格式混乱或逻辑冲突。Skill Forge v2通过“预运行验证门”来提前发现这类问题。在正式进入评估循环前系统会用修改后的文件运行一次最基本的检查例如对于技能模式运行一个最简单的评估对于通用模式执行一次度量命令。如果连这个检查都无法通过命令崩溃或报错系统会中止本次实验避免在明显错误的状态下进行无意义的评估。3.3 评分智能体与决策逻辑在技能模式下评分智能体扮演“法官”。它使用那部分从未在假设生成阶段使用过的、被“留出”的测试评估集通常占40%对修改后技能的输出进行盲审打分。分数是0到1之间的标准化值。复合分数计算 默认的复合分数公式是复合分数 断言通过率 × 0.80 效率分数 × 0.20。断言通过率权重80%这是核心质量指标衡量技能是否满足了功能要求。效率分数权重20%这可能衡量响应速度、输出简洁度等。这个权重分配强调了“功能正确”优先于“形式优美”。更高级的评判LLM作为法官对于输出质量难以用简单规则判断的场景如文章创意性、语气友好度可以启用use_comparator选项。此时评分智能体会让一个LLM如Claude对修改前和修改后的输出进行“盲比”不知道哪个是哪个判断哪个更好。此时分数公式变为复合分数 断言通过率 × 0.50 LLM评判分 × 0.30 效率分 × 0.20。这引入了人类偏好的主观衡量但成本更高。保留/回退决策 决策并非只看分数高低而是看相对于“基线”当前最佳版本的变化。保留如果新分数 基线分数 0.02improvement_threshold。这是一个明确的、显著的进步。回退如果新分数 基线分数 - 0.05regression_threshold。这是一个明显的退步必须丢弃。中性/保留如果分数变化在[-0.05, 0.02]之间。系统会倾向于保留新版本因为这可能包含了虽未显著提升但可能有潜在价值的微调为后续优化奠定了基础。这个决策机制非常稳健它防止了由于随机波动导致的频繁来回切换只接受确切的进步并果断拒绝退步。4. 实战部署与操作指南理解了原理我们来一步步看看如何实际使用Skill Forge v2。我将以优化一个虚构的“技术博客助手”Claude技能为例贯穿整个流程。4.1 环境准备与技能安装首先你需要一个运行Claude Cowork的环境。Skill Forge本身也是一个Claude Skill因此安装方式与普通技能无异。定位技能目录在你的机器上找到Claude Cowork的技能存放目录。通常路径是~/.skills/skills/。克隆或复制将整个skill-forge项目文件夹复制到上述技能目录中。最终路径应类似于~/.skills/skills/skill-forge/。验证安装打开Claude Cowork你应该能在技能列表中找到或通过提及的方式调用skill-forge。注意确保你的Claude Cowork环境具有执行Shell命令的权限因为Skill Forge在通用模式下需要调用你定义的度量命令在技能模式下也可能需要调用外部脚本进行评估。4.2 交互式设置向导详解Skill Forge v2一个非常用户友好的改进是引入了6步交互式设置向导。这个向导会引导你完成所有必要配置并在每一步进行验证确保配置正确无误。第1步选择执行模式与目标内容系统会询问你希望运行在自动模式还是引导模式。对于初次使用或非常重要的技能强烈建议从引导模式开始。然后你需要指定要优化的目标例如“我的blog-helper技能”。验证门系统会检查目标是否存在。如果选择引导模式后续会在5个关键检查点暂停等待你的确认。第2步定义优化范围技能模式系统自动在目标技能目录中寻找SKILL.md文件。通用模式你需要提供一个文件匹配模式如src/*.py系统会检查是否至少匹配到一个文件。实操技巧在通用模式下尽量使用具体的文件路径而非模糊的通配符以避免意外优化无关文件。第3步定义评估指标核心步骤这是最关键的一步决定了优化的方向。技能模式你需要提供至少3个评估断言。系统会自动将它们按64的比例分为“训练集”用于生成假设和“测试集”用于最终评分。例如[ { input: 写一段关于Python装饰器的简介面向初学者。, assertions: [输出中包含‘’符号的用法示例, 输出避免使用‘元编程’等高级术语, 字数在200-300字之间] }, { input: 帮我润色这段产品发布邮件新品上线功能强大快来购买。, assertions: [输出语气更正式、有说服力, 包含具体的产品功能点, 有明确的行动号召] } ]通用模式你需要提供一个能输出数字的Shell命令。例如如果你优化的是一个API响应时间命令可能是curl -o /dev/null -s -w %{time_total}\n http://localhost:8080/api/test。验证门系统会立即运行一次你定义的评估或度量命令确保其能成功执行并返回一个可解析的数字。如果失败向导会中止并给出错误提示让你修正。第4步设置优化方向内容明确告诉系统对于上一步得到的数字是希望它越高越好higher_is_better还是越低越好lower_is_better。例如准确率是越高越好错误率是越低越好。验证这是一个简单的确认步骤防止方向设置错误导致优化南辕北辙。第5步预运行验证内容这是正式实验前的最后一次“彩排”。系统会用当前的基线文件完整运行一遍评估流程技能模式跑所有评估通用模式执行度量命令。验证门必须成功运行且输出合规。这个步骤能提前发现环境依赖缺失、脚本路径错误、API密钥无效等基础问题。如果失败向导会给出详细的错误信息并允许你返回上一步修改配置。第6步确认配置内容系统会展示一份完整的配置摘要包括模式、目标、评估指标、参数最大实验次数、时间预算等供你最终审核。操作确认后实验循环才真正开始。这个向导设计极大地降低了使用门槛通过层层验证保证了实验启动时处于一个健康的状态。4.3 运行实验与监控配置完成后实验循环就自动开始了。你可以通过几种方式监控进展实时TSV日志在项目生成的专属工作空间目录如blog-helper-skill-forge/下会有一个experiment-log.tsv文件。这是一个制表符分隔的平面文件每行记录一次实验的核心信息。你可以用tail -f experiment-log.tsv命令在终端实时滚动查看。timestamp experiment hypothesis_summary before after delta decision 2023-10-27T14:30 exp-001 增加对“代码示例”格式的明确要求 0.72 0.75 0.03 KEEP 2023-10-27T14:45 exp-002 尝试简化开篇引导句 0.75 0.71 -0.04 REVERT这种格式非常适合机器处理和快速人眼扫描是v2版本一个非常实用的改进。覆盖矩阵工作空间下的coverage-matrix.json文件或通过生成的晨报查看会动态更新。它告诉你系统正在探索哪些改进方向以及哪些方向已经饱和。这能让你直观感受到优化的进程避免系统在原地打转。详细实验记录每个实验都有一个独立的文件夹如experiments/exp-001/里面保存了假设、修改内容、评分详情和每次评估运行的原始输出。这是进行深度分析和调试的宝库。设置无人值守运行 真正的威力在于无人值守。你可以通过Claude Cowork的调度任务功能或简单的系统Cron Job让Skill Forge在夜间运行。# 一个简化的Cron Job示例每天凌晨2点运行最多10次实验时间预算2小时 0 2 * * * cd /path/to/your/project claude-cowork 使用skill-forge技能以自动模式优化我的‘blog-helper’技能最大实验次数10时间预算120分钟第二天早上一份完整的morning-report.md报告就会等着你告诉你技能经过一夜“锻造”后性能提升了多少以及具体发生了哪些变化。5. 高级策略与核心机制剖析Skill Forge不仅仅是一个简单的自动化脚本它内部集成了一系列确保优化有效、避免陷阱的智能策略。5.1 探索与利用的平衡策略这是模仿强化学习的一个关键思想。系统不会盲目地只盯着当前最有效的修改类型。早期阶段第1-3轮实验探索优先。系统会查看覆盖矩阵优先尝试那些还从未被尝试过的改进类别例如从未触及过的“格式化”类别。这有助于广泛搜索潜在的优化空间。中期阶段第4-7轮实验混合策略。系统开始平衡探索新类别和深化已有成功类别利用。它会参考不同类别下的历史最佳改进分数Best Delta。后期阶段第8轮及以后利用优先。当实验次数接近上限时系统会集中火力在那些已经证明能带来最大提升的改进类别上力求将性能推到极限。这个策略有效防止了系统过早收敛于一个局部最优解鼓励了创新性的探索。5.2 严防过拟合的多重保障过拟合是优化中的大敌即修改只对用于评估的特定例子有效却损害了整体的泛化能力。Skill Forge设计了四道防线训练/测试集分离这是最重要的防线。用于给假设智能体分析问题的“训练集”评估和用于最终打分的“测试集”评估是完全分开的。任何修改必须能在未参与分析的测试集上也能提升分数才算真正有效。泛化性解释要求假设智能体在提出修改建议时必须附带说明“为什么这个修改能普遍提升技能而不仅仅是针对当前失败的例子”。这迫使思考停留在原则层面。评估轮换在技能模式下每进行5次实验系统会要求LLM生成一批全新的评估查询保持相同的断言标准。这相当于引入了新的“考题”防止技能死记硬背旧题。覆盖矩阵多样性通过追踪不同类别的修改系统会主动避免在单一类别上过度实验鼓励多样化的改进这本身也有助于泛化。5.3 健壮的崩溃处理机制在长时间的自动化运行中什么事情都可能发生API调用超时、评估脚本有Bug、甚至系统资源不足。Skill Forge的崩溃处理机制确保了单点故障不会导致整个任务崩溃。错误分类当一次评估运行崩溃时系统会首先尝试解析错误信息将其分类为目标技能脚本错误、基础设施错误如网络超时、还是评估逻辑本身错误。差异化处理技能脚本错误如果崩溃是因为修改后的SKILL.md导致技能本身无法运行这是一个严重信号。系统会将本次实验的该评估项分数记为0相当于一次重大失败并继续其他评估。基础设施错误如果是网络等问题系统会重试一次。如果仍然失败则跳过该评估项不影响其他项进行。评估逻辑错误如果评估脚本自身有Bug系统会将其从本次评分中排除并记录日志。连续崩溃熔断如果连续3次实验都在一开始就崩溃例如每次的修改都导致技能完全无法执行系统会主动暂停并生成警报报告。这通常意味着假设智能体提出了破坏性极强的修改需要人工干预。跳过与继续处理完一个评估项的崩溃后循环会继续处理下一个评估项或进行下一个实验。一次崩溃不会“杀死”整个运行任务。6. 配置参数详解与调优建议Skill Forge提供了丰富的配置参数让你可以精细控制优化过程。以下是一些关键参数及其调优建议参数默认值描述与调优建议max_experiments10最大实验次数。这是最重要的停止条件之一。对于小型技能或简单优化5-10次可能就够了。对于复杂项目可以设为20-30。建议初次运行时设置一个较小值如5进行试跑。improvement_threshold0.02改进阈值。分数需超过基线多少才被认定为“显著改进”并保留。值设得越小系统越“敏感”会保留更多细微改进但也可能保留噪声。值设得越大系统越“保守”只接受明显进步。通常0.02-0.05是合理范围。regression_threshold0.05回退阈值。分数低于基线多少会被认定为“明显退步”并回滚。这个值通常比改进阈值大因为我们对退步的容忍度更低。保持默认值0.05通常很安全。time_budget_minutes120时间预算分钟。另一个停止条件。对于每次评估都调用LLM的技能模式实验可能较慢几分钟一次。需根据评估复杂度和max_experiments来估算。设置时间预算可以防止任务失控。eval_split0.6/0.4训练/测试集分割比例。用于技能模式。0.6/0.4是一个经典比例。如果你的评估用例很少如只有5个可以考虑调整为0.5/0.5以确保测试集有足够统计意义。如果用例很多20保持默认即可。use_comparatorfalse启用LLM盲比法官。当启用时评分会加入LLM的主观质量判断。这会显著增加成本和运行时间因为每次评分都需要额外调用一次LLM。仅在对输出风格、创意性等主观质量有要求时开启。max_crashes3最大连续崩溃次数。触发熔断机制的阈值。如果系统连续提出3个导致技能完全无法运行的破坏性修改就应该暂停检查了。一般无需修改。个人调优经验对于全新的、定义模糊的技能建议先用guided引导模式跑2-3轮人工审核假设和修改帮助系统理解什么是“好”的修改方向。在技能模式下评估断言的质量至关重要。断言要具体、可验证例如“输出必须包含‘步骤一、步骤二’这样的列表”而不是“输出要有条理”。宁可用5个精确的断言也不用20个模糊的断言。在通用模式下度量命令的稳定性和低方差是关键。确保每次运行命令在输入不变的情况下输出数字波动很小。如果方差太大优化过程会充满噪声难以收敛。7. 真实案例与效果评估项目文档中提到了三个内部测试案例这些案例很好地展示了Skill Forge在不同场景下的能力humanizer文本人性化技能问题技能旨在将生硬的AI文本改写得更像人类但效果不稳定。过程经过3轮自主实验。结果复合分数从0.74提升至0.90提升21.6%。关键改进假设智能体发现原指令对“人格化”的描述模糊。它提出的获胜修改是将“添加人格”作为一个独立的工作流程步骤并给出了具体的、可操作的人格特征检查列表例如“检查是否使用了口语化词汇”、“是否加入了个人观点或感叹”。这使得技能的输出一致性大幅提高。fachbuch-lektorat德语技术书籍编辑技能问题技能在处理德语中正式“wir”我们与个人“ich”我的混用时表现不佳。过程3轮实验。结果评估断言通过率从87%提升至100%。关键改进系统在SKILL.md中增加了一个具体的工作示例清晰地展示了当一段文本混合使用“wir”和“ich”时应如何统一为其中一种风格。通过实例教学极大地提升了技能处理此类边缘案例的能力。was-bisher-geschahAI新闻简报技能问题技能生成的新闻摘要有时会超过LinkedIn的字符限制且行动号召不明确。过程仅1轮实验。结果通过率从93%提升至100%。关键改进突变智能体在指令中明确加入了LinkedIn帖文的字符数限制提醒并在总结每个新闻条目后强制插入一个明确的行动提示模板如“点击链接阅读全文”。这个简单的修改直接解决了两个明确的评估失败点。从这些案例可以看出Skill Forge最擅长解决的是指令模糊、缺失具体约束或缺少处理范例所导致的问题。它能将人类“只可意会”的优化点转化为对指令文档具体、可衡量的增删改。8. 项目结构与工作空间管理清晰的目录结构是项目可维护性的基础。Skill Forge自身和它运行时生成的工作空间都遵循良好的组织规范。技能本体结构 (skill-forge/)SKILL.md核心技能指令文件定义了Skill Forge如何与用户交互、调用各个智能体。agents/存放三个核心智能体假设、突变、评分的详细指令文件。这是技能逻辑的核心。scripts/composite_score.py一个独立的Python脚本/库负责计算复合分数、管理TSV日志和覆盖矩阵。这种设计意味着评分逻辑可以脱离Claude环境独立运行或测试。templates/morning_report.md晨报生成模板。你可以自定义这个模板来改变报告格式。references/包含架构说明和定时任务模板等深度文档。examples/存放真实的实验日志示例供用户参考。运行时工作空间结构 (target-skill-forge/) 每次运行都会生成一个独立的工作空间这是实验可重复性的关键。所有状态都保存在这里。config.json完整保存了本次运行的所有配置参数。凭这个文件可以精确复现实验。evals.json保存了使用的所有评估断言及其训练/测试划分。experiment-log.tsv和coverage-matrix.json实时监控文件。snapshots/保存每个实验轮次后的文件版本v0是基线v1是第一次修改后以此类推。你可以随时回滚到任何版本。experiments/exp-001/每个实验的详细档案包含假设、修改、评分等所有中间数据。history.json分数随时间变化的序列可用于绘制学习曲线。morning-report.md实验结束后生成的人类可读总结报告。管理建议定期清理旧的工作空间。每个工作空间可能包含大量评估运行记录占用空间。将重要的config.json和最终优化的SKILL.md或目标文件备份到版本控制系统如Git中。利用snapshots/目录进行差异比较理解每次修改的具体内容。9. 局限性与适用边界尽管Skill Forge非常强大但它并非万能。清楚它的边界能帮助你更好地应用它。依赖于可量化的评估指标这是最根本的限制。如果你无法将你的优化目标转化为一个或一组可自动执行并输出数字的测试那么Skill Forge就无法工作。例如“让文章更有文采”是一个模糊目标除非你能定义“文采”的自动化度量标准如通过某个文本风格模型打分。局部搜索非全局重构它基于当前版本进行小步、迭代的修改。它无法进行大刀阔斧的重构或架构变更。如果技能或代码存在根本性的设计缺陷可能需要人工先进行一轮大的调整再用Skill Forge做精细优化。计算与成本每次实验都需要运行全部评估可能调用LLM或执行外部命令。在技能模式下如果评估很多且复杂运行成本API调用和时间会显著增加。需要合理设置max_experiments和time_budget。评估集的质量决定天花板“垃圾进垃圾出”。如果评估断言设计得不好不能代表真实场景那么优化出来的技能可能只是“应试”高手在实际使用中表现不佳。评估集需要精心设计和维护。创意与突破性创新当前的机制更擅长“优化”而非“发明”。它可以在给定的框架内找到更好的参数或表述但很难无中生有地创造出全新的工作流程或解决范式。最适合的场景优化已有Claude技能的指令清晰度、完备性和边界案例处理。微调代码脚本的性能参数如超参数、配置选项。在拥有稳定自动化测试套件的前提下改进代码库的局部实现。探索不同提示词或配置对某个固定评估指标的影响。Skill Forge v2代表了一种强大的范式将软件工程中的持续集成/测试理念与AI驱动的自动化探索相结合。它不是一个完全取代人类工程师的“银弹”而是一个不知疲倦、严格遵循实验方法的“超级助手”。通过将优化过程形式化、自动化它把人类从重复的试错中解放出来让我们能更专注于定义问题、设计评估标准和解读最终结果——这些更需要创造力和判断力的工作。