返回顶部
i

iterative-code-evolution迭代代码演化

Systematically improve code through structured analysis-mutation-evaluation loops. Adapted from ALMA (Automated meta-Learning of Memory designs for Agentic systems). Use when iterating on code quality, optimizing implementations, debugging persistent issues, or evolving a design through multiple improvement cycles. Replaces ad-hoc "try and fix" with disciplined reflection, variant tracking, and principled selection of what to change next.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
839
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

iterative-code-evolution

迭代式代码演化

一种通过严格的反思→变异→验证→评分循环来改进代码的结构化方法论,改编自用于元学习代码设计的ALMA研究框架。

何时使用此技能

  • - 对运行效果不佳的代码进行迭代(性能、正确性、设计)
  • 通过多轮变更优化实现方案
  • 调试简单修复持续失败的持久性或反复性问题
  • 通过结构化实验演进系统设计
  • 任何已尝试2种以上方法且需要纪律性决定下一步尝试方向的任务
  • 构建或改进提示词、流水线、智能体或任何受益于迭代优化的程序

何时不应使用此技能

  • - 简单的一次性代码生成(直接编写即可)
  • 有明确解决方案的机械性任务(重构、格式化、迁移)
  • 用户已明确指定需要更改的内容时

核心概念

演化循环

每个改进周期遵循以下序列:

┌─────────────────────────────────────────────────────┐
│ 1. 分析 — 对当前代码进行结构化诊断 │
│ 2. 规划 — 确定优先级的具体变更 │
│ 3. 变异 — 实施变更 │
│ 4. 验证 — 运行代码,检查错误 │
│ 5. 评分 — 衡量与基准线的改进程度 │
│ 6. 归档 — 记录尝试内容和结果 │
│ │
│ 带着新知识循环回到第1步 │
└─────────────────────────────────────────────────────┘

演化日志

在项目根目录的.evolution/log.json中跟踪所有迭代。这是使每个周期都比上一个更智能的记忆。

json
{
baseline: {
description: 演化开始前的初始实现,
score: 0.0,
timestamp: 2025-01-15T10:00:00Z
},
variants: {
v001: {
parent: baseline,
description: 添加了输入验证和错误处理,
changes_made: [
{
what: 在所有公共方法上添加了类型检查,
why: 3/10的测试用例因格式错误的输入导致运行时崩溃,
priority: High
}
],
score: 0.6,
delta: +0.6 vs parent,
timestamp: 2025-01-15T10:30:00Z,
learned: 输入验证是主要的失败模式——大多数其他逻辑是健全的
},
v002: {
parent: v001,
description: 重构了解析逻辑以处理边界情况,
changes_made: [
{
what: 将parse_input()重写为使用状态机而非正则表达式,
why: 正则表达式方法在嵌套结构上失败(见于测试用例7、8),
priority: High
}
],
score: 0.85,
delta: +0.25 vs parent,
timestamp: 2025-01-15T11:00:00Z,
learned: 对于此语法,状态机方法比正则表达式具有更好的泛化能力
}
},
principles_learned: [
输入验证修复能带来最大的早期收益,
基于正则表达式的解析在递归结构上会失效——优先使用状态机,
小范围针对性变更比大规模重写得分更高
]
}

详细流程

阶段1:分析——结构化诊断

在做出任何更改之前,对当前代码及其输出进行结构化分析。这是最重要的阶段——它可以防止无效的变异。

步骤1——从过往编辑中学习(首次迭代跳过)

审查演化日志。对于每次之前的变更:

  • - 得分是提高了还是降低了?
  • 是什么模式导致了成功或失败?
  • 提取2-3条要采纳的原则和2-3个要避免的陷阱

步骤2——组件级评估

对于每个有意义的组件(函数、类、模块、流水线阶段),进行标记:

标签含义
正常产生正确输出,未观察到问题
脆弱
在正常路径上工作,但在边界情况或特定输入上失败 |
| 损坏 | 产生错误输出或报错 |
| 冗余 | 重复其他地方已有的逻辑,增加复杂性而无价值 |
| 缺失 | 尚不存在的必要组件 |

对于每个标签,写一行解释原因——关联到特定的测试输出或观察到的行为。

步骤3——质量和一致性检查

寻找跨领域问题:

  • - 数据流:组件之间是否传递结构化数据,还是依赖隐式状态?
  • 错误处理:错误是否被捕获并处理,还是被静默忽略?
  • 重复:相同逻辑是否在多个地方重复?
  • 硬编码:是否存在魔法数字、硬编码路径或特定环境的假设?
  • 泛化能力:哪些部分能处理新输入,哪些过度拟合于测试用例?

步骤4——生成优先级建议

基于步骤1-3,生成具体的变更。每个建议必须包含:

  • - 优先级:高 | 中 | 低
  • 内容:变更的精确描述(代码级别,而非模糊描述)
  • 原因:关联到步骤1-3中的具体观察
  • 风险:如果此变更实施不当可能出现的问题

规则:每个建议必须关联到一个观察。 不允许这可能会有帮助的建议——只有基于你在代码或输出中实际看到的内容的变更。

规则:每个周期最多3个建议。 一次超过3个变更会使得无法将改进或退化归因于特定变更。

阶段2:规划——选择要更改的内容

从分析中选择1-3个建议。选择原则:

  • - 高优先级优先——先修复损坏的内容,再优化正常的内容
  • 每个周期一个主题——不要混合不相关的变更(例如,不要在同一个变异中既修复解析又重构错误处理)
  • 优先针对性而非全面性——对一个函数进行精确修改胜过重写三个模块
  • 卡住时探索——如果过去2个以上周期在同一个组件上显示出收益递减,选择不同的组件进行修改(这是ALMA访问惩罚原则——不要在同一件事上持续消耗精力)

阶段3:变异——实施变更

编写新代码。关键纪律:

  • - 只更改计划中指定的内容。 抵制顺便再修一个东西的冲动。
  • 保留接口。 除非计划明确要求,否则不要更改函数签名或返回类型。
  • 注释理由。 在每个变更附近添加简短注释,引用演化周期(例如,# evo-v003: 根据边界情况失败切换到状态机)

阶段4:验证——运行和检查

对用于评分的相同输入/测试执行修改后的代码。

如果崩溃(最多重试3次):

使用反思-修复协议:

  1. 1. 阅读完整的错误回溯
  2. 识别根本原因(而非症状)
  3. 只修复根本原因——不要做不相关的改进
  4. 重新运行

3次重试失败后,回退到父变体并记录失败:
json
{
attempted: 尝试内容的描述,
failure_mode: 无法解决的错误,
learned: 此方法不起作用的原因
}

这些失败数据很有价值——它防止重新尝试相同的错误方法。

如果运行但产生错误输出:

不要立即重试。带着新输出回到阶段1(分析)。错误输出是诊断数据。

阶段5:评分——衡量改进

将新变体的性能与其父变体(而不仅仅是基准线)进行比较。评分取决于上下文:

上下文评分方法
存在测试通过率:testspassed / totaltests
性能优化
指标变化(延迟、吞吐量、内存) |
| 代码质量 | 加权检查清单(正确性、边界情况、可读性) |
| 用户反馈 | 二元:更好/更差/相同(根据用户判断) |
| LLM/提示词输出质量 | 根据标准对样本输出进行评分 |

始终计算与父变体的差异。 这是你了解哪些变更有帮助或有害的方式。

阶段6:归档——记录和学习

更新.evolution/log.json:

  1. 1. 记录新变体,包含父变体、描述、变更、得分、差异
  2. 编写learned字段:一句话说明此周期教会了你什么
  3. 如果得分提高,将基本原则添加到principleslearned
  4. 如果得分降低,将失败模式作为陷阱添加到principleslearned

变体管理

何时分支与修改

  • - 原地修改(同一文件,新版本):当变更明显是增量式的(修复bug、添加检查、调整参数)
  • 分支(复制到新文件):当尝试根本不同的方法时(不同算法、不同架构、不同策略)

将分支保存在.evolution/variants/中,使用描述

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 iterative-code-evolution-1776420060 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 iterative-code-evolution-1776420060 技能

通过命令行安装

skillhub install iterative-code-evolution-1776420060

下载

⬇ 下载 iterative-code-evolution v1.0.0(免费)

文件大小: 7.61 KB | 发布时间: 2026-4-17 18:55

v1.0.0 最新 2026-4-17 18:55
Iterative Code Evolution v1.0.0

- Introduces a structured methodology for improving code using analyze → plan → mutate → verify → score → archive cycles.
- Adapts principles from ALMA (Automated meta-Learning of Memory designs for Agentic systems) to code optimization and debugging.
- Provides clear guidelines on when and when not to use the skill.
- Establishes an evolution log format for disciplined variant tracking and learned principles.
- Details step-by-step instructions for each phase in the evolution process to promote disciplined code iteration and improvement.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部