Install
openclaw skills install improvement-generator当需要为目标 skill 生成改进候选、把上次失败信息注入下一轮生成、或分析历史记忆模式来避免重复失败时使用。支持 --trace 注入失败上下文。不用于打分(用 improvement-discriminator)或评估(用 improvement-learner)。
openclaw skills install improvement-generatorProduces ranked improvement candidates from target analysis, feedback signals, and failure traces.
improvement-discriminatorimprovement-learnerimprovement-orchestratorimprovement-executorimprovement-gate问题: 没有 trace 注入时,LLM 每次都从零开始生成候选。如果上一轮在 accuracy 维度失败了,下一轮很可能再次生成相同类别的候选 — 因为 LLM 不知道上次失败了。实测中无 trace 重试的重复失败率高达 60-70%。
Tradeoff: trace 注入增加了 prompt 长度(约 200-500 tokens),但大幅降低了重复失败率。Because trace 包含失败维度、失败原因、已尝试策略三个关键信号,generator 可以在生成阶段就避开已知死路,而不是等到 discriminator 打分后才发现。这比 "生成 → 打分 → 发现重复 → 重新生成" 的循环节省 1-2 轮迭代。
Previous failure on "accuracy" dimension
→ deprioritize candidates of the same category as the failed one
→ prioritize other dimensions' improvements instead
→ if same category failed ≥2 times, skip entirely and try adjacent dimensions
<example>
正确: 第一次失败后注入 trace 重试
$ python3 scripts/propose.py --target /path/to/skill --trace failure_trace.json --output candidates.json
→ 生成的候选会自动避开上次失败的 accuracy 维度策略
</example>
<anti-example>
错误: 失败后不注入 trace 直接重试
→ 没有 trace 信息,generator 无法降低失败类别的优先级,容易重复生成同类候选
→ 失败 ≥3 次的自动跳过逻辑在 improvement-learner 中,不在 generator
</anti-example>
trace 文件记录上一轮失败的完整上下文,generator 解析后调整候选优先级:
{
"iteration": 2,
"failed_dimension": "accuracy",
"failed_category": "add_code_examples",
"failure_reason": "code example added but not syntactically valid",
"attempted_strategies": ["append_bash_example", "append_python_snippet"],
"scores_before": {"accuracy": 0.67, "coverage": 0.85},
"scores_after": {"accuracy": 0.63, "coverage": 0.85}
}
generator 收到这个 trace 后会:(1) 把 add_code_examples 类别的优先级降到最低,(2) 从 coverage/trigger_quality 等未失败维度寻找候选,(3) 如果 accuracy 下的其他类别(如 add_output_artifacts)未尝试过则仍可生成。
# Basic generation
python3 scripts/propose.py --target /path/to/skill --output candidates.json
# With failure trace (retry loop)
python3 scripts/propose.py --target /path/to/skill --trace failure.json --output candidates.json
# With memory/feedback sources
python3 scripts/propose.py --target /path/to/skill --source memory.json --output candidates.json
| Request | Deliverable |
|---|---|
| Generate | JSON array of ranked candidates with category, risk_level, execution_plan |
| With trace | Same format, priorities adjusted based on failure analysis |
| With memory | Candidates informed by historical patterns and past successes |
| With feedback | Candidates prioritized by user correction hotspots |
每个候选的 JSON 结构包含 category(改进类别)、risk_level(low/medium/high)、execution_plan(具体修改步骤)、priority_score(0-1 综合优先级)、trace_adjusted(是否被 trace 调整过优先级)。