algorithm-iteration-lab
用模型推理与本地仿真闭环迭代竞技算法、游戏 bot 或可重复评测的策略。适用于已有算法的败局分析、提出候选、官方引擎回放、双边回归、性能预算和本地并行评测;特别适合 CodeCombat 类竞技场。不用于普通问答、直接提交线上比赛或没有评测目标的盲目参数搜索。
ソース情報
- リポジトリ
- JacksonTai2007/codequest-2026
- ソースの最終更新活動
- 2026年10月26日 00:35
- 検出された SKILL.md の言語
- 中国語
- スター
- 0
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
ファイルエクスプローラー
7 ファイルSKILL.md を表示中
SKILL.md
ソースの指示 · 読み取り専用プレビュー- name
- algorithm-iteration-lab
- description
- 用模型推理与本地仿真闭环迭代竞技算法、游戏 bot 或可重复评测的策略。适用于已有算法的败局分析、提出候选、官方引擎回放、双边回归、性能预算和本地并行评测;特别适合 CodeCombat 类竞技场。不用于普通问答、直接提交线上比赛或没有评测目标的盲目参数搜索。
# Algorithm Iteration Lab
把模型当研究员,把本地执行器当实验台,把可信评测当裁判。交付的是有比较证据的候选,不是“改过了”或一张排行榜截图。
## 职责分工
- **模型**:阅读规则与代码,解释败局,提出可证伪的假设,设计观测点,写最小改动,分析失败原因。
- **本地 CPU / 内存**:转译、运行模拟、回放事件、批量对战、统计结果。默认不把 GPU 当瓶颈;只有执行器明确使用 GPU 或模型在本地推理时才分析它。
- **评测系统**:固定输入与版本,执行真正的胜负/预算判据,区分结果差、程序崩溃与工具失败。
- **人**:确定目标、发布/提交范围和资源预算。沿用已有信息,不反复问已经回答过的字段。
提升吞吐不能补救错误裁判;更强模型也不能代替运行候选。远程模型的推理不是在这台电脑上完成的,本地升级主要影响工具执行阶段。只解释当前瓶颈,不凭核数或显卡型号许诺加速。
## 先绑定本轮实验
在已有 checkpoint 中记一小段:
`goal / baseline / runtime / input snapshot / success oracle / compute budget / evidence / next action`
至少明确:
- 要改哪份算法,哪份是已部署版;保留原件,候选写新文件。
- 实际引擎/关卡/解析器版本和运行入口;哪些输入已经给出,哪些还缺。
- 目标指标及不可退化项:例如目标对局改善、已有关键胜局不丢、双方均无运行错误、解释器预算不过限。
- 比较集:已知败局、关键守门对局、必要的旧版与自镜像,以及独立验收集。对手更新后不能把旧数据称为最新。
- 超时、最大候选数、最大对局数、并发和磁盘预算。未给出时先做小规模测量,不启动无限循环。
如果文件和本地入口已经具备,先读入口并执行最小基线,不用方向菜单代替行动。新抓取、部署、外部发布不是“本地评测”的自动延伸。
## 迭代闭环
### 1. 建立可信基线
先区分源代码语法检查、游戏转译成功、完整对局、判胜正确这四件事。脚本退出 0 不等于赢了一场,CPython 可编译不等于游戏兼容。
优先使用真实引擎。自制模拟器可筛掉差候选,但用它得出的好结果只能标为近似,不能越过最终判据。真实引擎不可用时继续能做的静态/单元验证,最终标 `NOT_RUN`,不把代理测试升级为官方验证。
重放最有解释力的失败。检查运行异常、超预算、双方代码日期、胜负规则及观测点,再决定是否改战术。当前对手源码与历史比赛时版本不同,明确历史败局可能不可精确复现。
### 2. 用证据选改动
一个候选对应一个主要假设。写清“为什么会失败 → 改哪个决策 → 预计哪个观测会变 → 什么结果否定假设”。先修确定的异常、索引错误或接口误用,再讨论它是否改善胜率;正确性修复与竞技晋级是两个门槛。
不同代理可并行做规则审计、败局分析、候选设计和独立评审。每个写入者使用独立候选/结果目录;主代理决定合并顺序。不要让多个代理覆盖同一基线。
不要无依据地扫数百个参数。确实需要搜索时先固定搜索空间、预算与独立验证集;记录试了多少候选,防止把反复调优的对局当成未见过的证据。
### 3. 关键门槛先行
用相同的引擎、双方输入、边、种子与超时比较 baseline / candidate。改变输入后,仅复用仍然有效的证据。已经通过且输入未变的全量测试不重复运行。
先做关键回归。只要不可退化项失败、异常未解释或结果未知,停止晋级,不浪费预算跑全量。回到对应失败假设;同一路线最多依据真实输出修两轮,然后改变分解或观测方式。两次结构性调整仍无进展,就交付现有证据与具体阻塞,不暗改 oracle。
红蓝或先后手都可能影响结果,自镜像用来测量而不是推定席位偏置。确定性需要在当前输入下验证;不能把“旧场景 seed 0 足够”推广到新关卡。随机引擎使用配对种子,并报告样本量及不确定性。
不要把不同样本量、不同对手版本的汇总胜率直接作为晋级依据;对比以固定条件的配对结果为准。
### 4. 有边界的全量验收
只有关键门槛通过,才扩到验收集。它应覆盖目标实际会遇到的策略与边界,不必永远要求所有历史版本全胜。是否允许某种退化必须事先由目标定义,不能事后为当前候选放宽。
批处理只采用经过验证的结果解析器。平局加赛、活跃度或 fans 决胜按当前规则处理;缺字段、超时、解析失败、线程死亡不能填成 0:0 或默认胜利。分别记录 `PASS`、`REGRESSION`、`ERROR`、`TIMEOUT`、`NOT_RUN`。
### 5. 交付与停止
输出候选代码、最小 diff、相关测试证据和复现命令;只说明已观察的改善与未测限制。已有逻辑缺陷未修复就明确保留。没有重新对战的旧胜率不能贴给新文件。
保存紧凑 checkpoint,不每个工具调用都生成报告。样本身份或精确重放依赖校验和时才计算一次;普通文档不算哈希。发布、安装、线上提交只在用户请求的范围内执行,绝不因为本地全绿就自动替换线上版本。
## 计算预算与工具
先读 [references/compute-budget.md](references/compute-budget.md),仅在要确定并发或定位耗时时使用。
可用本 Skill 的只读探测器;`SKILL_DIR` 指本文件所在目录。运行 `--help` 查看当前参数。无参数仅报告资源,不跑模型或游戏:
```sh
python "SKILL_DIR/scripts/resource_probe.py"
```
测量真实对局时间和进程峰值内存后再给参数计算建议。探测器的估时不是比赛测试结果。Python 3 标准库即可;没有 Python 时直接使用宿主资源工具,不为读取本技能强制安装依赖。
CodeCombat 任务再读 [references/codecombat.md](references/codecombat.md)。它保留本项目有效的排错方法,但不把旧版本常量或旧战绩当作当前事实。
## 输出口径
简短报告:`改动 / 基线与候选结果 / 运行错误与预算 / 已知限制 / 制品路径 / 下一步`。
若用户只问“瓶颈在哪”,回答基于测量的瓶颈和下一次最小测量;不要因此启动完整竞技优化或替用户更换模型。
GitHubで見る