一键导入
loop
自动迭代策略闭环,通过本地评估持续改进并逼近最优解
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
自动迭代策略闭环,通过本地评估持续改进并逼近最优解
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
本地评估 AutoSolver 候选策略,计算 data/*.txt 的平均 Penalty、逐 case 结果、合法性和耗时
AutoSolver 总入口 skill,统筹 loop、strategies、evaluate 三个分 skill,用于理解项目结构、自主迭代候选求解器、选择策略方向并执行本地评估。
AutoSolver 策略方向目录,基于本地基线结果选择、组合和扩展候选求解策略
基于 SOC 职业分类
| name | loop |
| user-invocable | true |
| description | 自动迭代策略闭环,通过本地评估持续改进并逼近最优解 |
| allowed-tools | ["Read","Write","Bash","Glob","Grep","Agent"] |
执行“策略提出 → 实现 → 本地评估 → 记录决策 → 改进”的循环。迭代阶段只评估 AutoSolver 项目根目录下的 candidate_solvers/solver_<strategy_name>.py,只使用项目根目录下的 data/*.txt 本地评估数据集;达到终止条件后,才将当前最优策略整理为项目根目录 solver.py。
本 skill 可以放在 OpenClaw workspace 的公共 skills 目录,例如:
/root/.openclaw/workspace/skills/loop/SKILL.md
AutoSolver 项目可以独立放在:
/root/.openclaw/workspace/AutoSolver
执行任何读写、创建文件或评估前,先确定 PROJECT_ROOT。优先级如下:
data/、candidate_solvers/ 和 tools/recovered_objective.py。AutoSolver/ 子目录。/root/.openclaw/workspace/AutoSolver。/root/projects/AutoSolver。以下所有相对路径都以 PROJECT_ROOT 为基准;运行命令前先 cd "$PROJECT_ROOT"。不要在 /root/.openclaw/workspace/skills 下创建候选策略、日志或最终 solver.py。
${PROJECT_ROOT}/candidate_solvers/solver_<strategy_name>.py,并定义 solve(input_text: str) -> list。${PROJECT_ROOT}/solver.py。${PROJECT_ROOT}/data/*.txt 每个 case 的 Penalty 简单平均值,同时记录每个 case 的具体 Penalty。${PROJECT_ROOT}/data/*.txt 和同一个 ${PROJECT_ROOT}/tools/recovered_objective.py 评估函数比较。courier_id 在所有输出分组中最多出现一次。task_id_list_str 需要多个备选骑手,必须合并到同一个输出项的 courier_ids 列表中。(task_id_list_str, courier_id) 必须精确存在于输入候选池;score 和 willingness 只能使用该完整 task_id_list_str 对应的候选行,不能在单单和合单之间混用。task_id_list_str 下放多个不同骑手作为备选,但不得重复使用同一骑手。${PROJECT_ROOT}/solver.py 必须自包含,不能从项目内其他文件导入函数,只能依赖 Python 标准库。读取 ${PROJECT_ROOT}/logs/solver_log.md,确认:
如果 ${PROJECT_ROOT}/logs/solver_log.md 不存在,先创建基本结构:
# AutoSolver 迭代记录
## 当前最优
- 策略文件: <candidate_solvers/solver_xxx.py>
- 平均 Penalty: <mean_penalty>
- 更新时间: <timestamp>
## 迭代历史
| # | 策略文件 | 平均 Penalty | 与最优差 | 状态 | 备注 |
|---|----------|--------------|----------|------|------|
## 逐 case 结果
### 轮次 <#>: <strategy_name>
| Case | Penalty | Covered | Time(s) |
|---|---:|---:|---:|
## 失败方向总结
查看 /strategies skill 的策略目录,并结合 ${PROJECT_ROOT}/logs/solver_log.md 选择下一轮方向。/strategies 是优先候选目录,不是硬边界;当目录内相邻改进、组合和高级策略都连续失败时,必须基于失败日志提出目录外的新假设,并在日志中说明它突破了哪个既有假设:
避免重复实现已经在日志中证明无效且没有新变量的方向。
在 ${PROJECT_ROOT}/candidate_solvers/ 下创建或更新候选策略文件,例如:
candidate_solvers/solver_ev_multi_k3.py
实现要求:
solve(input_text: str) -> list。${PROJECT_ROOT}/tools/strategy.py 的输入解析和 ${PROJECT_ROOT}/tools/recovered_objective.py 的本地评估思路。solver.py 时必须移除项目内导入。对当前候选策略运行 ${PROJECT_ROOT}/data/*.txt 全量本地评估。统一使用项目脚本,不要复制或改写另一套评估逻辑:
python tools\evaluate_solver.py candidate_solvers\solver_<strategy_name>.py
最终提交文件可直接评估:
python tools\evaluate_solver.py solver.py
需要验证官方相似合成集时:
python tools\evaluate_solver.py solver.py --cases data\official_like_tight\*.txt
平均 Penalty 是本轮决策主指标;同时必须检查每个 case 的 Penalty、覆盖数、耗时和 Status。任何 format_error、runtime_error 或超时结果都不能更新当前最优。
将 Step 4 的输出写入 ${PROJECT_ROOT}/logs/solver_log.md。每轮记录必须包含:
${PROJECT_ROOT}/data/*.txt case 的具体 Penaltybest、improved、fail、timeout、runtime_error、format_error推荐记录格式:先在“迭代历史”表新增一行汇总,再在“逐 case 结果”下为同一轮次新增一个明细小节。
## 迭代历史
| # | 策略文件 | 平均 Penalty | 与最优差 | 状态 | 备注 |
|---|----------|--------------|----------|------|------|
| <#> | candidate_solvers/solver_<strategy_name>.py | <mean_penalty> | <delta> | <best/improved/fail/timeout/runtime_error/format_error> | <summary> |
## 逐 case 结果
### 轮次 <#>: candidate_solvers/solver_<strategy_name>.py
- 平均 Penalty: <mean_penalty>
- 与当前最优差: <delta>
- 状态: <best/improved/fail/timeout/runtime_error/format_error>
- 参数: <key parameters>
- 判断: <why it improved or failed>
| Case | Penalty | Covered | Time(s) |
|------|---------|---------|---------|
| tiny_seed42.txt | <penalty> | <covered>/<total> | <seconds> |
| small_seed100.txt | <penalty> | <covered>/<total> | <seconds> |
/strategies A-G 的地方,并只保留能在逐 case 上解释失败原因的方向。满足以下任一条件时终止迭代:
终止后,将当前最优 ${PROJECT_ROOT}/candidate_solvers/solver_<strategy_name>.py 整理为 ${PROJECT_ROOT}/solver.py,并再次确认 solver.py 自包含、可运行、只依赖标准库。
| 文件 | 用途 |
|---|---|
${PROJECT_ROOT}/data/*.txt | 本地评估数据集 |
${PROJECT_ROOT}/candidate_solvers/solver_<strategy_name>.py | 迭代阶段的策略实现与评估对象 |
${PROJECT_ROOT}/tools/recovered_objective.py | 本地 Penalty 评估函数来源 |
${PROJECT_ROOT}/tools/strategy.py | 已有策略和输入解析参考 |
${PROJECT_ROOT}/logs/solver_log.md | 本地评估结果、逐 case 明细、决策和最终输出记录 |
${PROJECT_ROOT}/solver.py | 终止后生成的最终单文件求解器 |