Skip to main content
Glama
gatordevin
by gatordevin

正しい実行

mcp サーバーとして実行されるか、CLI として実行されるかにかかわらず、システムはつねに同じスクリプトを呼び出します。avo は Claude Desktop と Codex の両方でテスト済みですが、avo CLI を呼び出せるエージェントであればどれでも動作します — カスタムスクリプトや手動操作でもかまいません。session モードは、エージェントに完全な会話履歴を提供するため、最も高い成果が得られます。stateless モードは、供給されたプロンプトのみを送信し、エージェントのメモリに依存しません。

execute モードは、エージェントが提供する任意のコマンドを実行します。選択されたコマンドは何でも、作業ディレクトリ内で実行されます。オペレーターは targets/<name>/run.sh を編集することで、このモードのプロンプトをカスタマイズできます。

ソフトウェアエージェントがローカル環境で実行する能力を必要とする場合(ファイルの編集、テストの実行など)、tool モードは Claude Desktop などの MCP 互換クライアントを介して機能します。MCP サーバーはリポジトリルートで起動します。

論文の実験 (§5) の再現は、targets/ ディレクトリにあります。各ターゲットは、独自の知識ベース K、スコア関数 f、シード x_0 を持ちます。スコア関数は進化的プレッシャーを提供し、エージェントは変異演算子として、そのプレッシャーに応答して探索します。main.py--target フラグでターゲットを選択できます。--list-targets で利用可能なターゲットの一覧を表示します。

既定では、実験はリポジトリのルートにある runs/ ディレクトリに保存されます。再現可能な研究のための設定、ロギング、シードについての詳細は、avo/docs/runs.mdavo/ のソースコードを参照してください。進化的ループ専用に設計された最小限の実験ランナーである GXP は、avo/ ディレクトリにあり、avo --help で確認できます。

再現の実行方法は DRIVING.md、システムの設計は ARCHITECTURE.md、論文の主張と実装の対応関係は docs/mapping.md、関連研究は docs/related-work.md を参照してください。GXP1 GXP2 の対象をリストするには、avo --list-targets を使用します。実行の開始には avo run --name my-run --target game2048 を使用します。

Related MCP server: AgentPrism Workflows

対象者

  • LLM エージェントを進化的探索ループに埋め込むとどうなるか知りたい研究者

  • 進化的アルゴリズムを LLM エージェントで強化する方法を模索している実務者

  • ベースラインを破ることを楽しむ人々

対象

Vary(P_t) = Generate(Sample(P_t))
Vary(P_t) = Agent(P_t, K, f)
Vary(P_t) = Generate(Sample(P_t))
Vary(P_t) = Agent(P_t, K, f)
Vary(P_t) = Generate(Sample(P_t))
Vary(P_t) = Agent(P_t, K, f)
Vary(P_t) = Generate(Sample(P_t))
Vary(P_t) = Agent(P_t, K, f)
Vary(P_t) = Generate(Sample(P_t))
Vary(P_t) = Agent(P_t, K, f)
git clone https://github.com/gatordevin/avo
cd avo
pip install -e ".[all]"     # or: pip install -e .  for the core only
avo doctor
python3 -m venv --system-site-packages .venv
.venv/bin/pip install -e ".[all]"
.venv/bin/avo doctor
claude mcp add avo -s user -- python3 -m avo.mcp_server
# from a virtualenv, point at its interpreter:
claude mcp add avo -s user -- /path/to/avo/.venv/bin/python -m avo.mcp_server
cp -r .claude/skills/avo ~/.claude/skills/avo
codex mcp add avo -- python3 -m avo.mcp_server
avo start --target game2048          # seeds x0 and prints the first prompt
# ... edit runs/<id>/work/, run runs/<id>/avo-eval as often as you like ...
avo submit -m "expectimax depth 2 with a positional weight matrix"
avo prompt                           # the next step's prompt
avo status
avo plot -o trajectory.png

クイックスタート

runs/<run-id>/
  work/              the candidate x_t — a standalone git repo whose history IS the lineage
    .avo/scores.jsonl    every committed version's full score vector
  kb/                the knowledge base K, copied in so paths are stable
  avo-eval           f, as a zero-argument shim the agent can call at will
  NOTES.md           scratch space that survives across steps
  trajectory.jsonl   every step, accepted or rejected
  rejected/          the diff of each rejected candidate, kept for the record
  logs/              evaluator and agent logs

コミットポリシー

avo run --target attention_c --backend claude_cli --max-steps 40 --time 12h
avo run --resume runs/attention_c-20260321-091500 --time 24h

論文との対応

論文 (§3)

このリポジトリ

変異演算子

targets/<name>/AGENTS.md 内のプロンプト

知識ベース

targets/<name>/knowledge/ 下の Markdown ファイル

スコア関数

targets/<name>/score.py 内の score(worktree) -> Score

履歴ヒートマップ

コミット履歴 — 各コミットのメッセージにはスコアベクトルが含まれる

実装

  • Python 3.10+、標準ライブラリのみ (MCP サーバーは mcp パッケージを使用)

  • LLM は MCP または CLI 経由でアクセスされるclaudeopencodeなどを使用

  • 各実行は自己完結型の git リポジトリで、refs/heads/main に経過が記録される

  • エージェントは作業ツリー内のあらゆるファイルを編集できる

  • 各ステップの後に、スコア関数が評価され、その結果が run.md に記録される

実行

f(x) = (f_1(x), …, f_n(x)) — ベンチマーク構成ごとに 1 つの数値を返し、幾何平均が最大化されるスカラーである。これが、構成単位の動きを診断可能にする。n1024 に効いて n128 に悪影響を与える変更は、勝利ではなくブロッキング問題であり、集約値だけではその問題は見えなくなる。

スーパーバイザー

論文 §3.3: 長時間の自律実行は2つの形で失敗する。エージェントが現在の攻め手を尽くして行き詰まるか、失敗を繰り返す編集の非生産的なサイクルに入るかだ。新しいベストが出ないまま N ステップ(デフォルト3)経過すると、AVO は停止して方向転換(リダイレクト)を求める。すなわち、軌跡全体をレビューし、具体的で異なる複数の最適化の方向性を提案する。そのリダイレクトは次のバリエーションプロンプトに強い事前情報として注入され、ちょうど1ステップで消費される。

セッションモードでは、スーパーバイザーは同じセッションが別の役割を被るだけで、実際に使うのに十分な低コストだ。未監視モードでは、読み取り専用の意図を持つ別エージェントの実行になる。

軌跡

avo plot は論文の図 5/6 を描画する。実行中ベストの幾何平均をステップ関数として、各新ベストに塗りつぶしの丸、構成別の点線カーブ、ベースラインを水平線として表示する。論文と同じ注意点として、これはコミットされた系列を示しており、コミット間に探索された内部の探索木は示さない。


未監視モード

論文の設定、すなわちオペレーターが起動されたエージェントで誰も監視しない状況を再現するには:

avo run --target attention_c --backend claude_cli --max-steps 40 --time 12h
avo run --resume runs/attention_c-20260321-091500 --time 24h

バックエンド: claude_cli(Claude Code ヘッドレス — 論文のエージェントへの最も近似)、 api(Messages API 上の自己完結型エージェントループ、API キーのみを持つ人向け)、agent_sdkclaude-agent-sdk 経由のインプロセス)、 mock(モデルなしで機構をテストするためのシェルコマンド)。

これは毎ステップでクォータまたはクレジットを消費する。セッションモードは消費しない。


独自のターゲットを追加する

ターゲットは、target.yaml、シードプログラム、ナレッジベース、評価器を含むディレクトリである。評価器はどの言語の実行可能ファイルでもよい。契約全体は、stdout 上の1つの JSON オブジェクトである:

{"correct": true,
 "metrics": {"config_a": 1520.3, "config_b": 1477.0},
 "error": null,
 "notes": "shown to the agent"}

correct がゲート。metrics がスコアベクトル。最大化されるスカラーは、明示的な primary が与えられない限り、それらの幾何平均である。

name: my_target
description: One line, shown in `avo targets`.
seed: seed                 # copied to work/ as x_0
knowledge_base: kb         # copied to the run dir as K
entrypoint: kernel.c       # informational, used in prompts

evaluate:
  command: ["python3", "{target}/eval.py", "--workdir", "{workdir}"]
  timeout: 30m

baselines:                 # optional, measured once before evolution starts
  command: ["python3", "{target}/eval.py", "--baselines"]

score:
  direction: maximize

agent:
  goal: |
    What the agent is actually trying to do, and what the trade-offs are.

完全な契約は docs/TARGETS.md を参照。最小の実動例は tests/fixtures/toy/ にある。

ナレッジベースは実際の努力に値する。それは Agent(P_t, K, f) における K であり、タイル化を第一原理から10ステップで再発見するエージェントと、2ステップで到達するエージェントとの差になる。

忠実な点と、そうでない点

忠実なもの:

  • オペレーター定式: Vary(P_t) = Agent(P_t, K, f) — ファイル編集、シェルアクセス、永続メモリを持つ実際のコーディングエージェントであり、タスク固有の変更は一切与えられない

  • 単一系統の継続的進化と git バージョンで管理された状態(§3.1)

  • 正解ゲートと n 次元のスコアベクトル(§3.1)

  • 「一致または改善」のコミットポリシー。失敗した試行は系統から除外される(§3.2)

  • 停滞と非生産的なサイクルに対するスーパーバイザー介入(§3.3)

  • ベンチマーク構成を横断する幾何平均集約と、図 5/6 の軌跡

忠実でないものは、意図的にそうしていある:

  • ハードウェア。 は GPU B200 上で cuDNN と FlashAttention-4 を相手に attention カーネルを進化させている。attention_c は、CPU 上で NumPy/BLAS との同じ問題である。最適化の転送ができるのは種別(タイルリング、オンライン softmax、ベクトル化、スケジューリング)であり、規模ではない。

  • スケール。 論文は7日間、40のコミット版、500以上の探索方向で実行した。セッションモードの 10〜20 ステップは、デモであって再現ではない。

  • 集団構造。 論文と同じく、オペレーターを分離するために単一の系統のケースを実装している。アーカイブ型・島型の方式はこの定式と互換性があるが、実装されてはない。

リポジトリ構成

src/avo/
  types.py        Score, LineageEntry, the correctness gate, geomean
  config.py       target specs and run configuration
  lineage.py      P_t as git history
  scoring.py      f as an external process
  knowledge.py    K
  prompts.py      the variation and supervisor prompts — the whole framework/agent interface
  run.py          run state: seed, evaluate, commit policy, trajectory
  session.py      driver: the session you already have is the operator
  loop.py         driver: unattended, spawns an agent per step
  mcp_server.py   the same operations as MCP tools (no dependencies)
  cli.py          the same operations as subcommands
  plot.py         Figure 5/6
  agents/         backends for unattended mode
targets/
  game2048/       policy evolution under a time budget
  attention_c/    kernel evolution — the paper's domain, on a CPU
examples/
  attention-decode-run/  beats Apple's own fused kernel by changing the maths
  attention-c-run/       CPU kernel evolution, with an honest baseline caveat
  attention-metal-run/   GPU prefill — every CUDA instinct measured worse
  game2048-run/          policy evolution — 50x the seed
docs/
  PAPER_MAP.md    every section of the paper, and where it lives in the code
  TARGETS.md      the evaluator contract
  DRIVING.md      how to drive a run from Claude Code, Codex, or a shell
AGENTS.md         cross-agent instructions (read automatically by Codex)
.claude/skills/   the `/avo` skill for Claude Code

引用

これは独立した再現実装である。原著を引用すること:

@article{chen2026avo,
  title  = {AVO: Agentic Variation Operators for Autonomous Evolutionary Search},
  author = {Chen, Terry and Ye, Zhifan and Xu, Bing and Ye, Zihao and Liu, Timmy
            and Hassani, Ali and Chen, Tianqi and Kerr, Andrew and Wu, Haicheng
            and Xu, Yang and Chen, Yu-Jung and Chen, Hanfeng and Kane, Aditya
            and Krashinsky, Ronny and Liu, Ming-Yu and Grover, Vinod and Ceze, Luis
            and Bringmann, Roger and Tran, John and Liu, Wei and Xie, Fung
            and Lightstone, Michael and Shi, Humphrey},
  journal = {arXiv preprint arXiv:2603.24517},
  year    = {2026}
}

Apache-2.0 でライセンス.private。NVIDIA とは提携しておらず、NVIDIA の支援も受けていません。

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered code review and improvement, including analysis, refactoring suggestions, and automatic test generation, with an optional agentic loop for iterative refinement.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Local-first Agent OS that wraps Claude Code, Codex CLI, and other coding agents in a replayable Seed → Ledger → Runtime contract, driven by an interview → seed → execute → evaluate → evolve workflow loop.
    34
    5,634
    MIT

View all related MCP servers

Related MCP Connectors

  • Adaptive plan/build/review cycles for AI coding assistants, persisted across sessions.

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Persistent cloud development environments that coding agents create, run and test software in.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gatordevin/avo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server