
2026/11/01 7:46
Memdoor:Qwen3.8-27B モデル 5 つのチームが、LiveCodeBench Hard で Fable 5 を破る
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
サマリー:
「Memdoor」ワークフローを使用した専用マルチエージェントシステムは、LiveCodeBench Hard で最先端の性能を誇示し、Fable 5 のような高度なシステムと並ぶスコアを獲得しつつ、コストはその一小分程度で稼働しています。この成果の核心には、プランナー、2 つのアイデア創出担当者、ソルバー、マネージャー、そしてリペアワーカーという 5 つの異なる AI エージェント役割が存在し、チャットインターフェースではなくディスクファイルを介してのみ通信が行われています。システムは Qwen3.8-27B モデル(128K コンテキスト)を使用しており、テスト出力に基づく正確な評価を確保するために、モデルの主張だけに依存しないように修正された採点ツールが設定されています。OpenRouter ホスト(Modal、CoreWeave、Parasail、Wafer)上で FP8 モードで実行され、厳格な制約の下でベンチマーク問題 50 のうち 49 問を解決しました。これは LiveCodeBench Hard における 2025 年 3 月 29 日から 4 月 6 日の間に設定された 10 の問題を含むもので、これらの問題を用いてモデルが訓練された場合の汚染(コンタミネーション)を排除することはできません。以前欠落していたエージェント名やストリームのドロップなどの軽微な構成問題は、
max_retries: 1 を設定した修正や、--partition 再開を有効にする措置、直接アルゴリズムおよび代替手法ファミリーを要求するプロンプトの調整によって対処されました。具体的な失敗例には、abc399_e の Pass 5(マネージャーが誤った反例を発明)と arc196_c/d の Pass 4(マネージャーが完了をシグナルしなかった)があり、どちらも各々 3 ドル以上のコストを招きましたが、基礎的なメソッドを変更せずに修正可能でした。研究開発者にとって、これは困難な問題を解決するための検証済みで低コストのフレームワークを提供しており、総費用は約 35.79 ドル(または除外された試行を含む場合 38.77 ドル)程度です。基礎的なエンジンでは、YAML で定義されたステップを用いた DAG フォーマット(plan → ideate-a/b → solve → test → review → repair → verify)を採用し、各エージェントは新規コンテキスト上で動作し、ファイルのみを読み取ります。インストールには GitHub リポジトリのクローン作成、ワークフローディレクトリの作成、team-solve 例の複製、task.md とテストファイルの配置、そして memdoor workflow run team-solve --wait の実行が必要です。これは安定したパラメータ、ディスクベースの通信、ノート用のレジャーを使用してコーディングエージェントをテストするための再現可能な基準を設定し、最終検証が失敗した場合のみ終了します。本文
メムドア・ワークフロー分析:プログラミング問題向けマルチエージェント・ハネス
概要
- 実装形態: 「メムドア(Memdoor)ワークフロー」として実装された、プログラミング問題解決のためのマルチエージェント・システム。
- 構成要素: 5 つの役割(プランナー、2 つのアイデアーター、ソルバー、マネージャー)およびリペアワーカーで構成されています。
- 通信方式:
- 各コンポーネントは新鮮なコンテキストからスタートします。
- モデル間の通信はディスク上のファイルを通じてのみ行われます。
- シェルスクリプトがサンプルを実行し、その成否を判定します(モデルへの依存に留まらず)。
- 性能実績:
- GVS5H(Lee, 2026)手法に対応しており、5 つの
モデルを使用。Qwen3.8-27B
で「Fable 5」を凌駕しました。LiveCodeBench Hard- 再現性テスト: 著者のプロンプトと
を用いた再構築ループにおいて、Qwen3.8-27B
の最初の 10 問に対し、パス 5 平均でスコア 9.8/10を達成。LiveCodeBench Hard- 著者の元々ハネス(9.6)および Fable 5 単独(8.0)と比較して優れた結果です。
- GVS5H(Lee, 2026)手法に対応しており、5 つの
パフォーマンス比較表
| ラン | メムドア・ワークフロー (著者による 27B ハネス) | Fable 5 単独 |
|---|---|---|
| パス 1 | 10/10 | 9 |
| パス 2 | 10/10 | 10 |
| パス 3 | 10/10 | 10 |
| パス 4 | 10/10 | 9 |
| パス 5 | 9/10 | 7 |
| 平均値 | 9.8 | 9.6(著者のオリジナル) 8.0(Fable 5 単独)* |
*注:「著者」の列はリポジトリ内の再評価結果ファイル(
, q38_multiagent_pN
)を指します。平均値 9.6 は彼らのオリジナル・ハネスを示し、8.0 は Fable 5 単独の結果です。fable5_single_pN
実験設定と結果
構成
- モデル:
(出力トークン数上限 128K)。Qwen3.8-27B - 環境: 著者によるプロンプトおよびループロジック。
- データセット:
リストの最初の 10 問。LiveCodeBench Hard - 採点: 公開テストケースと非公開テストケースのすべてに対して、修正されたグラードーを用いて評価。
コストと効率性
- 総実行数: 50 ラン(10 問 × 各 5 パス)。
- ※著者の 100 ランではありません。
- 期間: コンテストは 2025 年 3 月 29 日から 4 月 6 日まで実施。
- モデルが訓練中にデータを学習した可能性があり、汚染を完全に排除することはできません。
- コスト内訳:
- スタンダードな実行(出力トークン数 1,530 万):$35.79。
- クロックにより中断された 16 回の試行を含む全費用:合計 $38.77。
- ランタイム: 中央値 40 分;最長 4 時間。
- ラン平均単価:$0.39。
- インフラ:
(ローカルマシンではありません)。OpenRouter
はその精度を公開していません。Modal - プロバイダー負荷:
- 発注した FP8 ホスト(Modal、CoreWeave、Parasail、Wafer)における呼び出し配分は以下の通りです:
- Modal: 203 回
- Wafer: 115 回
- CoreWeave: 27 回
- 実行中の中間ステップのすべてが保存されました(
を参照)。log/host-switch.txt
- 発注した FP8 ホスト(Modal、CoreWeave、Parasail、Wafer)における呼び出し配分は以下の通りです:
再現性
- データ整合性:
- ランスクリプト内のローカルパスでは
および<scratch>
に読み取りアクセスがあるのみで、他の変更はありませんでした。$HOME
- ランスクリプト内のローカルパスでは
- バイト単位の比較:
- 設定は著者側と完全に同一です。
はスクリプト化されたモデルに対して著者のlib/test_parity.py
を実行し、4 つのケースについてリクエストを比較します。multiagent_solve- パラメータ:温度(プランニング 0.3、アイディア生成 0.4、マネージャー/ワーカー 0.2)、top_p 0.95、top_k 20、最大 10 ラウンド。
- スコアリングロジック: ループは公開サンプルのみを見ており、スコアは非公開テストから派生します。
- Fable 5 比較: Fable 5 の列は著者のファイルからの各問題に対する単一呼び出しを表し、このハネス内で実行されませんでした。
エラー分析:失点箇所
パス 4 およびパス 5 において、著者のループにおける 2 つの特定の問題が特定されました:
- パス 5,
(非公開テストケース中 32/44)abc399_e- ラウンド 1 で正しいプログラムが生成されました。
- しかしマネージャーは期待値の誤った反例を発明しました。
- チームはコードを書き換えてサンプル通过了しましたが、特定のケースを網羅するに至りませんでした。
- パス 4,
およびarc196_carc196_d- 非公開テストケースをすべて通過したプログラムが、マネージャーが「完了」と言わなかったため、後のラウンドによって上書きされました。
- 正しいプログラムはループ終了前に回復できました(
でラウンド 8、arc196_d
で最終呼び出し)。arc196_c - コスト:$3.44(
)および $4.24(arc196_d
)が発生し、これら 2 ランは最も高価な実行でした。arc196_c
修正可能性
両方の問題はコア手法を変更せずにも解決可能です:
- マネージャーの反例を小規模入力に対するブルートフォース検証と比較する。
- サンプルを通過した最後のプログラムを維持する。
注: 上記の数値にはこれら 2 つの問題は含まれていません。
インストールと使用方法
ワークフローを実行するには以下の手順に従います:
# インストール curl -fsSL https://memdoor.ai/install.sh | bash # モデル接続(オプション: anthropic, openai, gemini, chatgpt など) memdoor connect openrouter # ソース取得 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 # ステータスは stderr に、すべてのサンプルが通過すると exit 0
ワークフローの動作原理
- メムドア TUI 内の
は同じ実行をライブで描画します。/workflow - カスタム問題の場合、
を置き換え、隣接にペアされたテストファイル(task.md
,tests/N.in
)を配置します。tests/N.out - 解決スクリプトは
で、stdin から読み取り、solution.py
と比較されます。diff
要件
- Python 3 および bash。
- ファイファイルを 1 つのリポジトリ内に保持するには、フォルダを
にコピーします。.memdoor/workflows/ - プロジェクト内のコピーが優先されます。
- モデルは
をピン留めされたものに基づいて応答します(例:Janis、Ollama、または llama-server 用の/model
)。memdoor connect local
アーキテクチャ図
graph TD Plan -->|Plan| Ideate_A Plan -->|Plan| Ideate_B Ideate_A -->|Proposal A| Solve Ideate_B -->|Proposal B| Solve Solve -->|Decision| Test Test -->|Result| Review Review -->|Feedback| Repair Repair -->|Fix or Done| Verify
ステップ定義(DAG)
| ステップ | 種類 | 読み取り | 書き込み |
|---|---|---|---|
| Plan | エージェント | | , リダジャー(各アイディアーター 1 つのアンカー) |
| Ideate-A/B | エージェント / 並列 | , , | 自らのアンカーへの提案:A(最も直接的な証明可能なアルゴリズム)、B(異なる技術家族) |
| Solve | エージェント | 両方の提案 | , に決定を記録 |
| Test | コマンド | | , (実行に失敗することはなく) |
| Review | エージェント | キャプチャーされたテスト出力(モデルの主張ではない) | , 修復指示を に記録 |
| Repair | エージェント | マネージャーの指示 | 修正された 、またはサンプルが通過すれば何もしない |
| Verify | コマンド | | ; 非ゼロの退出コードは実行を失敗と判定 |
実装メモ
- 各ステップは
内の YAML ファイル 1 つに相当します。steps/ - 基盤エンジンには mario が使用され、DAG は
で定義されます。requires: - 役割の変更はプロンプトの変更を意味します。
サンプルにおける発見
タスク:文字列中の等しい回数を有する部分文字列を数える
- 要件:
の文字列中の、各文字が等しい回数を有する部分文字列を数える(文字数は最大 200,000)。{a, b, c} - 環境: OpenRouter を介したデフォルト・ラダー。
- 結果: 8/8 ステップ完了、5/5 サンプル通過。
- 手法:
- ソルバーはアイディアーター A の「プレフィックス状態法」を使用(辞書による
ペアでの $O(N)$)。(a-b, a-c) - 300 つのランダム文字列に対するブルートフォースでは不一致は見つからず、$N=200,000$ での実行時間は 0.04s。
- マネージャー:修復すべき点は何も見つからなかった。
- ソルバーはアイディアーター A の「プレフィックス状態法」を使用(辞書による
インシデント報告
- 1 つのプロバイダーが回答中にストリーミングを切断しました。
- コーディング担当者は
を設定しており、これがランの失敗原因となりました。max_retries: 0 - エージェントステップは現在
を持ち、max_retries: 1
で再開可能(プランナーおよび他のアイディアーターの作業を保持)。--partition
プロンプトの進化
当初、プロンプトはサンプル手法に名前をつけていました(例:
A: streaming prefix-state count, B: sorting prefix states),これは他の問題で誤った誘導を引き起こす可能性があります。これらは 2026-10-28 に以下のように更新されました:
- A: 最も直接的な証明可能なアルゴリズム
- B: 異なる技術家族から選んだ 1 つ
ゲートウェイの修正
最初の試みでは、エージェント查找がローカル専用だったため、すべてのステップで「agent named coder」というエラーにより 0s で失敗しました。これは同日のゲートウェイで修復されました(v1.692.0)。