Memdoor とは — 1バイナリのコーディングエージェントCLI。Qwen3.8-27B×5の『チーム』でLiveC
odeBench Hardに挑む【2026年】
Memdoorは、Go製の単一バイナリで動くApache-2.0のコーディング・自動化エージェントCLI。YAMLワークフロー、判断モデル、GitHub Actionsを備える。5体のQwen3.8-27Bが好成績という話題のベンチマークは作者の自己申告で、問題数は10問のみ。導入手順と読み方を整理する。
Memdoor(guregodevo/memdoor)は、コーディングと自動化を担うエージェントを「1つのCLIバイナリ」にまとめたオープンソース(Apache-2.0)のツールである。Go製で、DockerもPythonも要らず、手元のマシンでもSSH先でも動く。結論として、使いどころは2つある。ひとつは普通のコーディングエージェントとして対話・ヘッドレス実行で使うこと、もうひとつはYAMLで書いた複数ステップの作業を、チェック付きで自動実行することだ。2026年10月31日にはHacker Newsで「5体のQwen3.8-27Bのチームが、LiveCodeBench HardでFable 5を上回った」という投稿が230ポイントを集めて話題になった。ただしその数字は作者側の自己申告で、問題数もわずか10問である。本記事では、機能・導入・使い方を整理したうえで、このベンチマークをどう読むべきかを分けて説明する。
Memdoorとは
READMEの説明は「単一のCLIバイナリに入った軽量なコーディング・自動化エージェント」。アカウント登録は不要で、自分のAPIキーを持ち込む方式(BYOK)で動く。テレメトリは、有効にしない限りオフと記載されている。
| 項目 | 内容 |
|---|---|
| 提供元 | guregodevo(GitHubリポジトリ guregodevo/memdoor、サイト memdoor.ai) |
| ライセンス | Apache License 2.0 |
| 言語・形態 | Go製の単一バイナリ。TUI(ターミナル画面)、ヘッドレス実行、ゲートウェイ(常駐サーバー)を持つ |
| 対応OS | macOS(Apple Silicon・Intel)、Linux、Windows |
| 認証 | アカウント不要。各プロバイダーのキーを持ち込む |
| 料金 | ツール本体は無料。モデルの利用料は接続先プロバイダーの定価で課金される |
何ができるか
| 機能 | 内容 |
|---|---|
| 対話ウィンドウ | ターミナルUI。Escで中断、ctrl+fでファイル一覧、ctrl+gでそのターンの読み書きをグラフ表示、@パスでファイル指定 |
| ヘッドレス実行 | memdoor run "..." でウィンドウなしに1ターン実行。標準入力やパイプ、--jsonに対応 |
| ワークフロー | 複数ステップの作業をYAMLで定義し、marioエンジンがグラフとして実行 |
| 判断モデル | 検索結果の関連性などを軽量モデルで判定し、メインモデルに渡す入力を減らす |
| GitHub Actions | マーケットプレイスのアクション guregodevo/memdoor-action@v1。組み込みワークフロー9本 |
| エディタ連携(ACP) | memdoor acp でAgent Client Protocolのサーバーとして動作。ZedとJetBrainsは対応、VS CodeはACPクライアント拡張経由 |
| リモート操作 | /remote でスマホ向けの暗号化リンクとQRコードを発行。/remote viewは閲覧専用 |
ヘッドレス実行は終了コードが意味を持つ。READMEでは、0が「チェック済みで成功」、2が「未検証またはチェック失敗」、3が「未回答の質問あり」(--yesで自動回答)、1がエラー、130が中断と説明されている。CIやシェルスクリプトから結果を判定しやすい設計である。
ワークフローとmarioエンジン
Memdoorで特徴的なのがワークフローだ。ドキュメント(docs/features/WORKFLOWS.md)によれば、1ステップ=1つのYAMLファイルで、種類はagent(Memdoor自身が実行)・command・llmの3つ。ステップ間の順序はrequiresで書き、依存のないステップは自動で並列実行される。
- チェック(target): ステップの完了は、モデルの「終わりました」ではなく、targetで指定したファイルの存在やコマンドの成功で判定する。ゲートウェイがターン終了時に自分で確認し、ステップ自身がチェックを書き換えようとする操作は拒否される
- 承認ゲート: external: trueの要件は、ワークフローが実行せず「存在するか」だけを確認する。未承認なら待機状態で終了し、memdoor workflow approve <run-id> <task>で承認すると同じ実行が再開する。memdoor workflow diff <run-id>で変更差分を確認できる
- 再開: 失敗した実行は memdoor workflow resume <run-id> で、終わったステップを飛ばして続きから動く
- 実行場所: シェル、CI、ローカルのcron
判断モデルで入力トークンを減らす
READMEによると、Memdoorは「Jev」という判断モデルに、検索ヒットが関連しているかといった型付きの質問を投げ、0.5秒未満で確率つきの答えを得る。この答えで、関連する結果だけを返し、必要なツールだけを渡し、進捗のないターンを打ち切る。
公式が載せている計測(判断あり・なしの44回のペア実行)では、両方とも22件中22件が成功した。コードベースに関する質問1件では、入力トークンが54,661から14,367へ74%減った。一方、テスト付きの編集タスクと1ファイル修正10件では、読んだファイルは判断の有無で±11%以内に収まり、大きな差は出ていない。つまり74%は「ある質問での例」であり、すべての作業で同じ割合になるわけではない。判断モデルそのものについてはOllayaの記事で扱っている。
対応プロバイダーとローカルモデル
組み込みのプロバイダーは、社内AIゲートウェイ、Anthropic、OpenAI、Gemini、OpenRouter、Groq、xAI、DeepSeek、Baseten。OpenAI互換のエンドポイントも追加できる。注意点が2つある。
- ChatGPTのPlus/Proプランは、memdoor connect chatgptでAPIキーなしにサインインして使える
- Claudeは契約プランでは使えず、APIキーが必要。ドキュメントは「Anthropicの規約がClaude Code以外での利用を禁じている」という趣旨で説明している
ローカルモデルはmemdoor connect localで、手元のOllama・llama.cpp・vLLM・LM Studio、および作者の別プロジェクトjanis(MLXまたはCUDAでオープンモデルを動かすGoサーバー)を検出して接続する。キーは不要。ファイルやセッションは手元に残り、外に出るのはモデルが読んだ内容だけと記載されている。無料のOpenRouterモデルは1日50リクエストの上限があり、無料ホストは入力を学習に使う場合があるため、READMEは試用向けで私的なコードには向かないと注意している。
インストール
# macOS / Linux(~/.local/bin に入る。sudo不要)
curl -fsSL https://memdoor.ai/install.sh | bash
# Windows(PowerShell)
irm https://memdoor.ai/install.ps1 | iex
# ソースからビルド(Go 1.25)
git clone https://github.com/guregodevo/memdoor && cd memdoor
make build
cp memdoor ~/.local/bin/READMEによれば、インストーラーはダウンロードしたファイルのSHA-256を検証する。それでもcurl | bashは、実行する内容を確認せずに走らせる方式である。業務用のマシンに入れる場合は、先にinstall.shをダウンロードして中身を読む、あるいはソースからビルドする方が安全だ。
使い方(最短手順)
export OPENROUTER_API_KEY=sk-or-... # 他のプロバイダーのキーでも可
cd your-project && memdoor # 初回はセットアップが走る
# ヘッドレス実行の例
git diff | memdoor run "review this diff"
memdoor run "fix the failing test" --json
# 中断した実行を再開
memdoor resume --lastGitHub Actionsで使う
guregodevo/memdoor-action@v1を使うと、PRレビューなどをCIに組み込める。組み込みワークフローは、pr-triage・pr-review・security-review・write-tests・pr-description・explain-failure・issue-triage・fix-tests・release-notesの9本。.memdoor/workflows/<名前>/に置いた自作ワークフローも指定できる。
on: pull_request
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: guregodevo/memdoor-action@v1
with:
workflow: pr-review
openrouter-api-key: ${{ secrets.OPEN_ROUTER_API_KEY }}
timeout: 45mteam-solve:5つのモデルが「チーム」で解く仕組み
話題になったのは、リポジトリのexamples/workflows/team-solveにあるワークフローだ。プログラミング問題を解くための8個のYAMLファイルで、方法はGVS5H(Lee、2026)という研究の手法を書き直したものと説明されている。要点は、各エージェントが毎回まっさらなコンテキストで始まり、ディスク上のファイルだけで連携することと、成功の判定をモデルではなくスクリプトが行うことだ。
| ステップ | 種類 | 役割 |
|---|---|---|
| plan | agent | 問題文から計画(plan.md)とメモ(notes.md)を作る |
| ideate-a / ideate-b | agent(並列) | 一方は最も素直で証明しやすいアルゴリズム、もう一方は別系統の方法を提案 |
| solve | agent | 2案を読み、solution.pyを書く |
| test | command | サンプルを実行してログに残す(ここでは失敗させない) |
| review | agent | テスト結果から修正指示を書く |
| repair | agent | 指示に従ってsolution.pyを直す(直さないこともある) |
| verify | command | サンプルで最終判定。非ゼロ終了で実行を失敗扱いにする |
ページの冒頭は「5つの小さなモデル」と書くが、一覧にある役割は計画・アイデア2・解法・レビュー・修正の6つで、数え方に小さな不整合がある。また、ステップ自体はモデル名を指定しておらず、/modelで選んだモデルがすべての役割を担う。同じモデルのインスタンスを役割ごとに使い分ける構成である。
ベンチマーク結果の読み方
READMEとteam-solveのページが示す結果は次のとおり。作者らのハーネスをQwen3.8-27Bで再構築し、LiveCodeBench Hardの最初の10問を各5回、隠しテストすべてで採点した。
| 回 | このワークフロー | 元のハーネス | Fable 5(1回の呼び出し) |
|---|---|---|---|
| 1 | 10 / 10 | 9 | 7 |
| 2 | 10 / 10 | 10 | 8 |
| 3 | 10 / 10 | 10 | 10 |
| 4 | 10 / 10 | 9 | 8 |
| 5 | 9 / 10 | 10 | 7 |
| 平均 | 9.8 | 9.6 | 8.0 |
この数字は第三者による検証ではなく、Memdoor側の自己申告である。読むときの注意点を、ページ自身の注記も含めて整理する。
- 標本が小さい: 10問×5回。元の研究は100問規模で、ページ自身が「この規模では9.8と9.6は実質同じ」と書いている。主張は元のハーネスと同等であることで、上回ったことではない
- 汚染の可能性: 問題は2025年春のコンテストのもので、モデルが学習中に見ている可能性を排除できないと、ページが認めている
- Fable 5は同じ条件ではない: 1問につき1回の呼び出しで、このハーネスでは動かしていない。複数回呼び出して修正を重ねる方式と単発呼び出しの比較であり、呼び出し回数と所要時間が違う
- コストと時間: 1回の実行は中央値で約40分・0.39ドル、50回の合計は35.79ドル。単発の呼び出しより明らかに重い
- ローカル実行ではない: モデルはOpenRouter経由で動かした
- 失敗も記録: 管理役が誤った反例を作って正しいプログラムを書き直した問題が1問あり、正解を上書きしたあと復元した例も2回あったと、ページに載っている
ローカルのQwen3.8-27Bで動かす
team-solveはモデルを固定していないため、ローカルのモデルでも動く。ページの手順は次のとおり。
curl -fsSL https://memdoor.ai/install.sh | bash
memdoor connect local # キー不要。Ollamaなら32Kのコンテキストが必要(既定の4Kでは足りない)
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/* .
memdoor workflow run team-solve --wait # サンプルがすべて通れば終了コード0Qwen3.8-27Bが必要とするメモリは、Qwen3.8-27Bの必要VRAMの記事にまとめている。Q4_K_Mは17.1GBで16GBのGPUには載らないため、IQ4_XS(15.7GB)などが現実的な選択肢になる。Ollamaとほかのローカル実行ツールの違いはOllama vs LM Studioを参照。ローカルでの所要時間は未計測で、公式の中央値約40分(OpenRouter経由)より遅くなる可能性がある。Ollamaは既定のコンテキストが4Kと短く、32Kの設定が必要。自分の問題にはtask.mdとtests/N.in・tests/N.outを差し替える。
Claude Code・Codex CLI・OpenCodeとの違い
| 観点 | Memdoor | Claude Code | OpenAI Codex CLI | OpenCode系(OSSエージェント) |
|---|---|---|---|---|
| 提供形態 | 単一Goバイナリ、Apache-2.0 | Anthropic提供のCLI | OpenAI提供のCLI | オープンソースのCLI/TUI |
| 使えるモデル | 複数プロバイダー+ローカル | 主にClaude | 主にOpenAIのモデル | 複数プロバイダー対応が一般的 |
| ログイン方式 | 各社のキー。ChatGPTプランは利用可、Claudeはキー必須 | Claudeの契約プランまたはAPIキー | ChatGPTプランまたはAPIキー | プロバイダーのキーが基本 |
| 宣言的ワークフロー | YAML+チェック+承認ゲート+再開が標準 | フックやスキルで組む | 同左 | ツールにより異なる |
| ヘッドレス・CI | memdoor run、Actionsに9本 | 非対話モードあり | 非対話モードあり | ツールにより異なる |
| 成熟度 | 星89の若いプロジェクト | 広く使われている | 広く使われている | ツールにより異なる |
Claude Codeの使い方はClaude Code完全ガイドで扱っている。Memdoorの強みは、チェックと承認ゲートを持つYAMLワークフローを最初から備えている点と、モデルを選ばない点にある。逆に、実績・周辺ツール・情報量では先行ツールが上回る。
注意点・向いていない用途
- 若いプロジェクト: 星89、公開から日が浅く、仕様や挙動が変わる可能性が高い。業務で使う前に十分に検証する
- curl | bashのインストール: 実行前にスクリプトを読む、ソースからビルドする、検証用の環境で試す
- ベンチマークは自己申告で10問: 他の問題・言語・実務のコードで同じ結果になる保証はない
- 複数回呼び出しのコスト: 1問あたり中央値0.39ドル・40分かかる前提で、API利用料と待ち時間を見積もる
- 機密コード: 読ませた内容は接続先プロバイダーに送られる。無料のOpenRouterモデルは入力が学習に使われる場合がある
- CIの権限: pull_request_targetは使わない
よくある質問
Memdoorは無料ですか。
ツール本体はApache-2.0のオープンソースで無料。モデル側の利用料は、接続するプロバイダーの定価で別途かかる(2026年11月確認)。OpenRouterの無料モデルは1日50リクエストの上限があり、入力が学習に使われる場合がある。
「5体のQwen3.8-27BがFable 5に勝った」は本当ですか。
作者側の計測では、最初の10問×5回の平均が9.8で、Fable 5の単発呼び出しは8.0だった。ただし第三者の検証ではなく、問題数も10問と少ない。Fable 5はこのハーネスでは動かしておらず、呼び出し回数も違う。参考値として読むのが妥当である。
ClaudeのサブスクリプションでMemdoorを使えますか。
使えない。Claudeに接続するにはAPIキーが必要である。ChatGPTのPlus/Proは、memdoor connect chatgptでキーなしにサインインできる。
ローカルのOllamaでも動きますか。
動く。memdoor connect localでOllama・llama.cpp・vLLM・LM Studioを検出できる。team-solveの手順では、Ollamaは既定の4Kではなく32Kのコンテキストが必要とされている。
テレメトリは送信されますか。
READMEでは、有効にしない限りオフと記載されている。docs/SECURITY.mdに、バイナリが通信しうるホストの一覧があるとされている。
VS CodeやJetBrainsから使えますか。
memdoor acpでAgent Client Protocolのサーバーとして動く。ZedとJetBrainsはネイティブに対応し、VS CodeはACPクライアント拡張を経由する。
この記事に関連する無料ツール(登録不要・その場で結果)
お気軽にご相談ください
お問い合わせ