MavenCoder: Competitive Code Generation via Model Adaptive Planning Strategies and Multi-Perspective Verification Enhancement
Idea
MavenCoder 根据当前模型对题目的推理 confidence 选择 direct plan、reflection 或 tree decomposition,并在写完整程序之前检查 plan 的中间步骤。它将模型能力相关的规划预算与执行反馈结合,减少简单题过度推理和困难题规划过浅两种失效。
Research Problem
现有 planning–coding–debugging 多 agent 系统常采用固定流程,同一问题对不同模型却可能有不同难度;只在最终程序上调试,也容易让早期错误规划传到后续实现。单靠语言 verifier 或未经筛选的 token confidence,可能受模板文本高概率影响,无法可靠定位真正的算法推理问题。
Insight
难度应相对于执行模型估计,而中间计划的可信度需要同时参考模型自身分数、实际运行证据与步骤位置。对可疑的早期推理先修正,再让 coding agent 实现,能够缩短错误传播链;但是公开样例和模型生成的局部规格覆盖有限,因此该验证是启发式筛查,并非程序正确性证明。
Method
- 从初始推理的 top-k token log probabilities 计算内部 confidence score;用规则排除 Markdown、开场语等 template tokens,经滑动窗口与 k-means 聚类得到高低 confidence 比例,分配 Easy/Medium/Hard。无内部概率访问时改用指令分类。
- Easy 直接生成计划,Medium 结合样例与算法知识自反思,Hard 用 iterative deepening 构建子问题树;保存子问题 embedding 和解答,通过相似度排除重复分解,再将树线性化为保留层次的计划。
- 对每个 plan step 合并三个信号:相对 confidence、由该步骤生成 modular function 并执行 public tests 的反馈、Beta density 构造的位置权重;低于阈值时定位最早可疑步骤,结合 traces 进行多轮修正。
- coding agent 根据验证后的计划生成程序,在 public tests 上运行;debugging agent 汇总错误位置、原因和修复指令,携带历史代码与错误继续迭代。hidden tests 仅用于最终评价,六个 benchmark 覆盖函数级和竞赛编程。
Sources & Reading Scope
阅读依据:官方 PDF 正文。核读页码按 PDF 页序计数,可能与 proceedings 页码不同。
核读章节:3.1 Problem Modeling · 3.2 Model-Adaptive Difficulty Assessment · 3.3 Adaptive Planning Strategies · 3.4 Multi-Perspective Verification Module · 3.5 Code Synthesis and Debugging · 4.1 Benchmarks
已核读 confidence、三类规划、步骤验证及修复循环。正文对负平均 log probability 的分数方向与 certainty 的解释存在不易直接对应之处;笔记保留其内部评分用途,不声称该值具有统计 calibration 保证。步骤运行反馈还依赖模型声明的语义,不能视作独立完备规格。