mit einem Klick
loop
自动迭代策略闭环,通过本地评估持续改进并逼近最优解
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
自动迭代策略闭环,通过本地评估持续改进并逼近最优解
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
本地评估 AutoSolver 候选策略,计算 data/*.txt 的平均 Penalty、逐 case 结果、合法性和耗时
AutoSolver 总入口 skill,统筹 loop、strategies、evaluate 三个分 skill,用于理解项目结构、自主迭代候选求解器、选择策略方向并执行本地评估。
AutoSolver 策略方向目录,基于本地基线结果选择、组合和扩展候选求解策略
| 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 | 终止后生成的最终单文件求解器 |