algorithm-iteration-lab
用模型推理与本地仿真闭环迭代竞技算法、游戏 bot 或可重复评测的策略。适用于已有算法的败局分析、提出候选、官方引擎回放、双边回归、性能预算和本地并行评测;特别适合 CodeCombat 类竞技场。不用于普通问答、直接提交线上比赛或没有评测目标的盲目参数搜索。
معلومات المصدر
- المستودع
- JacksonTai2007/codequest-2026
- آخر نشاط في المصدر
- ٢٦ أكتوبر ٢٠٢٦ في ٠٠:٣٥
- لغة SKILL.md المكتشفة
- الصينية
- النجوم
- ٠
- التفرعات
- ٠
خيارات التثبيت
يُحدَّد 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