Hacker News Best

Memdoor: A team of 5 Qwen3.8-27B models beats Fable 5 on LiveCodeBench Hard

8.5内容质量

TL;DR · AI 摘要

Memdoor项目通过五种Qwen3.8-27B模型协作,在编程问题解决上达到与Fable 5相当的水平,但成本显著高于单模型方案。

核心要点

  • 五模型协作在LiveCodeBench Hard前10题中平均得分9.8,接近Fable 5的9.6
  • 单次运行成本$0.39,50次运行总成本$35.79
  • 协作流程通过YAML配置实现,无需编写模型代码

结构提纲

按章节快速跳转。

  1. 介绍Memdoor项目通过多模型协作解决编程问题的核心方法。

  2. 五种角色模型(planner, ideators等)通过文件交互实现协作。

  3. 在10个问题上五模型协作得分9.8,与Fable 5接近但成本更高。

  4. 单次运行耗时40分钟,成本$0.39,50次运行总成本$35.79。

  5. 实验样本量较小,可能存在训练数据污染风险。

  6. 提供curl安装命令和GitHub代码克隆流程实现本地部署。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Memdoor多模型协作
    • 协作架构
      • 五角色模型交互
      • YAML配置
    • 实验结果
      • 得分对比
      • 成本分析
    • 方法局限
      • 样本量限制
      • 数据污染风险

金句 / Highlights

值得收藏与分享的关键句。

#Memdoor#Qwen3.8-27B#模型协作#LiveCodeBench#AI编程
打开原文

memdoor/examples/workflows/team-solve at main · guregodevo/memdoor · GitHub

team-solve

Five small models solve a programming problem together: a planner, two ideators, a solver and a manager, plus a repair worker. Each starts from a fresh context and talks only through files on disk. A script that runs the samples decides success, not a model. It is the method of GVS5H (Lee, 2026), written as a Memdoor workflow: eight YAML files, no code, no model named.

The result

The authors' harness rebuilt on the same model, Qwen3.8-27B, with their prompts, loop and 128K reply cap. The first ten problems of their LiveCodeBench Hard list, five passes each, graded on every hidden test with their corrected grader:

pass

this workflow

authors' harness

Fable 5, one call

1

10

/ 10

9

7

2

8

3

4

5

mean

9.8

9.6

8.0

The authors' two columns are the regraded result files in their repository, the numbers in their paper. Our column is bench/results/parity-5pass/ : all 50 runs, each with every request and reply, the program, the grader's output and the cost. A run took a median of 40 minutes and $0.39; the 50 cost $35.79.

What this does and does not show:

  • Ten problems, five passes, not the authors' 100. On a sample this small, 9.8 and 9.6 are the same number. The claim is parity with their harness, not a gain on it.
  • The contests date from spring 2025 and the model may have seen them in training. Contamination cannot be ruled out, for any column.
  • Fable 5's column is one call per problem, from the authors' files. It was not run in this harness.
  • On these ten, the authors' own five-pass data put Fable 5 at 80 and their harness at 96; the workflow's 98 reproduces that gap. Across their full 100, harness and Fable are 92.4 and 90.4 (their patched_verdicts.json ).
  • The loop sees only the public samples; the score is the hidden tests.
  • The one lost problem: the manager invented a wrong counterexample and the team rewrote a correct program. Twice elsewhere a correct program was overwritten and then recovered. Both gaps are the authors' loop, kept as is.

The parity check (every request byte for byte against their code), the hosts, the changes it took and the first run's findings are in NOTES.md . The same result, on one page: memdoor.ai/docs/team-solve .

Run it

code
curl -fsSL https://memdoor.ai/install.sh | bash
memdoor connect openrouter        # or anthropic, openai, gemini, chatgpt
# or no key: memdoor connect local   (Ollama, llama.cpp, vLLM, LM Studio; Ollama needs a 32K window, not its 4K default)
git clone --depth 1 https://github.com/guregodevo/memdoor

mkdir -p ~/.memdoor/workflows
cp -r memdoor/examples/workflows/team-solve ~/.memdoor/workflows/
mkdir my-problem && cd my-problem
cp -r ../memdoor/examples/workflows/team-solve/sample/* .    # task.md + tests/1.in … 5.out
memdoor workflow run team-solve --wait   # exit 0 when every sample passes

For your own problem, replace task.md and put paired tests/N.in / tests/N.out beside it. The program is solution.py , read from stdin, compared to the samples with diff ; it needs Python 3 and bash. /workflow in memdoor tui draws the run live.

The steps name no model: whatever /model is pinned to answers, a local one included ( how to connect one ). To change a role, change its prompt in steps/ .

How it works

code
plan ──┬── ideate-a ──┬── solve ── test ── review ── repair ── verify
       └── ideate-b ──┘

step

kind

reads

writes

code
plan

agent

code
task.md
code
plan.md

,

code
notes.md
code
ideate-a
code
ideate-b

agent, in parallel

the plan

a proposal each: the most direct provable algorithm, and one from another family

code
solve

both proposals

code
solution.py

, the decision in

code
test

command

code
tests/
code
test-output.log

(never fails the run)

code
review

the test output

repair instructions in

code
repair

the instructions

a fixed

, or nothing

code
verify

the verdict: a nonzero exit fails the run

Every agent prompt says "fresh context, read the files, do not rely on chat". The paper credits that ledger discipline for the gain. Each step is one YAML file in steps/ , in the format of mario , the engine underneath; requires: is the DAG.