Terminal Arena: 実際の資金を扱う前にエージェントに行動を学習させる
著者: Blake Duncan

現在、オンチェーンエージェントに関するほぼすべての議論は決済についてのものだ。x402は、HTTP 402「Payment Required」ステータスを実際のフローとして復活させた。エージェントがペイウォールに突き当たり、決済に署名し、再試行して通過する、というものだ。StripeとTempoによるMPPはさらに一歩進み、エージェント向けのプログラマティックな決済、マイクロトランザクション、定期課金を実現する。どちらも優れた仕組みであり、どちらも同じ問題、すなわちエージェントがどうやってアクセス権に対価を支払うかという問題を解決している。
決済はあくまで最初のステップに過ぎない。エージェントがペイウォールを支払いで突破できるようになったら、より難しい問いが立ち上がる。そのエージェントを自律的に行動させて信頼できるのか、制約内に留まるのか、頼れる結果を出せるのか、という問いだ。
具体例で考えてみよう。実際の資産を動かす必要のあるエージェント、自律的なトレジャリーエージェントを想定する。このエージェントは企業のステーブルコイン準備金を管理し、リスク予算の範囲内でリターンを得るためにレンディング市場間で資金を移動させる。個々の操作に対して人間が承認することはない。データフィードへの支払いは、この仕事の中で最も単純な部分だ。難しいのは、実際の資金を自律的に管理させることをチームが安心して任せられるようにする条件は何か、という問いである。
この問いには具体的な答えがある。というのも、このトレジャリーエージェントは、はるかに大きな変化の初期の一例に過ぎないからだ。エージェント商取引は急速に拡大しており、McKinseyの予測では2030年までにエージェントによって仲介される商取引の規模は3兆〜5兆ドルに達するとされている。何がこの拡大の障壁になるかは業界がすでに把握している。決済業界のリーダーを対象としたAccentureの調査では、87%が信頼こそがエージェント決済にとって最大の障壁だと回答している。問題はエージェントが決済できるかどうかではない。エージェントに行動を委ねても安全だと言えるのは何によってか、ということだ。
検証可能な答えが欲しかったので、実際に一つ作った。トレジャリーではなく、対局の勝敗という規模で、これらの信頼要件を試すために設計した小規模なオンチェーンゲーム、Terminal Arenaである。
行動するエージェントを信頼するには何が必要か

まずウォレットから。ほとんどのチームは自律エージェントにトレジャリー全体の鍵を渡したくないはずなので、エージェントには専用のアイデンティティが必要になる。つまり、「承認済みの3つの市場に限り、この金額までリバランスできる」といった形で、許可された範囲に限定され、人間による承認を経て、問題が起きた場合には取り消せるウォレットだ。目指すのは、.envファイルに置かれた秘密鍵ではなく、ガバナンスされたアイデンティティである。
次に、エージェントは何が真実かを知る必要がある。人間向けに作られたダッシュボードを読んで金利を推測するエージェントは、脆弱な情報源に頼っていることになる。エージェントには、残高、リアルタイムの金利、残りのリスク予算といった実際の状態が必要であり、それは人間の目のために作られたウェブページとしてではなく、判断のために構造化された事実として提供される必要がある。
次に、選択しなければならない。最も高い利回りを追うべきか、元本を守るべきか。今すぐ動くべきか、金利が落ち着くのを待つべきか。これらの重み付けがエージェントの戦略であり、チームが信頼できるトレジャリーエージェントとそうでないものを分けるのはここだ。
そして実行しなければならない。エージェントは、各ステップの確認を人間に求めることなく、自分自身でトランザクションを送信する。すべての動きに承認が必要なエージェントは自律的とは言えないからだ。また、実行にかかるコストも自分で賄う必要がある。ガスの補充を誰も行わなかったためにリバランスが失敗するようでは、そのシステムは頼りにならない。静かな週末の間に動かなくなってしまう自律トレジャリーは、チームが安心して稼働させ続けられるものではない。
最後に、そしてこれはエージェントが実際に採用されるかどうかを左右することが最も多い要件だが、ルールの範囲内に留まっていたことを証明できなければならない。「リスク限度を守りました、信じてください」では、取締役会にも、監査人にも、規制当局にも通用しない。エージェントは、そのためのルールが強制され、すべての行動が記録される場所で動作する必要がある。そうすることで、コンプライアンスはエージェント自身の主張ではなく、誰もが検証できるものになる。
最後の要件は、ある具体的な条件を指し示している。エージェントが自分の行動を証明するためには、ルールがエージェントの内部だけに存在していてはならず、記録もその作成者しか読めないログファイルに置かれていてはならない。ルールは、それを強制する中立な場所に存在する必要があり、履歴は公開されている必要がある。パブリックブロックチェーンは、その両方を備える数少ない環境の一つだ。その利点は実用的なものだ。特に信頼する理由のない人々に対しても説明責任を保ちながら、自律エージェントを行動させられる。コントラクトはエージェントの意図にかかわらず制限を強制し、それが何を行ったかの全履歴は誰でも監査できる形で公開される。
これらをまとめると、7つの要件、すなわちガバナンスされたアイデンティティ、真実の状態、実際の戦略、直接的な実行、コストの処理、強制されるルール、そして永続的な記録は、一つのことを表している。それは、行動が可視化され検証可能な形で、オンチェーン上で動作するエージェントだ。
なぜ実運用のワークフローで学ぶことができないのか
これが仕様だ。難しいのは、実際の準備金を使ってこれを開発することができない点にある。テストされていないエージェントを実際のトレジャリーに接続して、その戦略が妥当かどうか、プレッシャーの下で制約を守れるかどうかを確かめようとするチームはほとんどいないだろう。学習に必要な条件と実際のリスクは逆になっている。エージェントが行動し、失敗し、正しく振る舞うことを示す様子を最も観察すべき場面が、同時にミスが最も高くつく場面でもあるからだ。
必要なのは、プリミティブは同じだがリスクが低い環境だ。エージェントが実際のスコープ付きアイデンティティを持ち、実際のオンチェーン状態を読み、実際の戦略を選び、実際のトランザクションを実行し、実際の(スポンサーされた)ガス代を支払い、コントラクトが強制するルールに従ってプレイし、公開記録を残す。ただし、負けても失うのは四半期ではなく一試合だけだ。
これこそが我々が作ろうとしたものであり、その最もわかりやすい形はゲームだった。
このゲームは実際に何をテストしているのか

Terminal Arenaは、AIエージェント向けの完全にオンチェーンなアリーナだ。最初のモードであるPathlockは、小さな盤上で行われる短い競争だ。2体のエージェントが盤の反対側からスタートし、目標はシンプルだ。先に反対側にたどり着いた方が勝つ。興味深いのは、各ターンでそれぞれのエージェントが直面する意思決定だ。
自分のターンで、エージェントは2つのうちどちらか一方を行う。移動して目標に向けて1マス進むか、あるいは壁を置いて相手の進路を伸ばすか。同じターンで両方を行うことはできない。したがって各ターンは、エージェント自身にとっての前進か、相手への打撃かのいずれかであり、無駄に使える余裕のあるターンなど存在しない。
自分を前進させるか、相手を遅らせるか。このたった一つのルールが、行動するすべてのエージェントが管理しなければならないトレードオフを凝縮している。前進のためにターンを使うか、ポジションを守るためにターンを使うか。常に突き進むエージェントは過大なリスクを負い、常に守りに入るエージェントはどこにもたどり着けない。このバランスをターンごとに正しく取ることこそ、トレジャリーエージェント、あるいは重大なリソースを扱うあらゆるエージェントが、自律的に動くことを信頼される前に身につけるべき規律と同じものだ。
他にもいくつかのルールがこの教訓を際立たせており、それぞれに現実世界での明確な対応関係がある。
壁は限られた予算である。エージェントは無限に相手を妨害できない。試合全体を通じて使える壁の数は固定されており、使った壁はその分だけ後で使えなくなる。トレジャリーエージェントも同種の制約の下で動いている。有限のリスク予算と、防御に資本を拘束することへの限られた許容度だ。その防御を早すぎたり無頓着に使ってしまうと、最も重要な局面でエージェントが無防備になる。防御的な一手がそのコストに見合うかどうかを見極めることが、このゲームの大部分を占める。
エージェントは相手を遅らせることはできても、完全に封じ込めることはできない。ルール上、常に経路が存在することが保証されており、エージェントは相手の進路を延ばすことはできても完全に閉じ込めることはできない。このルールは現実世界に最も直接的に対応する部分だ。コントラクトは、どれほど積極的なプレイヤーであっても越えることを許さない厳格な限度を強制しており、これは本質的にリスク限度そのものだ。トレジャリーエージェントは積極的に利回りを追求できるが、コントラクトは禁じられたポジションを取ることを許さない。その境界線は、エージェントが自主的に守ることを選ぶガイドラインではない。盤が違法な壁の設置を拒否するのと同じように、環境そのものによって強制されるものだ。
エージェントは、絵ではなく計算された読み取り結果に基づいて判断する。Pathlockは、手番が誰にあるか、双方の残り壁の数、合法な手、そして各プレイヤーの目標までの現在の最短経路といった、エージェントが正しく選択するために必要な情報を、すべて1回の呼び出しで提供する。エージェントはピクセルから盤面を再構築する必要が一切ない。実際には、この読み取りはコントラクト呼び出し1回であり、エージェントがそのまま行動に移せる構造化されたJSONとして返される。Terminal Arenaに対するセットアップは、コントラクトアドレスを取得する。マッチIDは、参加している試合を表す。pathlock playはその両方を自動的に埋め、pathlock-cliに同梱されているv2.1インターフェースを使用する。Alchemy CLIを自分で呼び出す場合は、まずTerminal Arenaから最新のABIをダウンロードすること。古いコピーは拒否される。セットアップ後は、pathlock config show defaultを実行すると$PATHLOCK_CONTRACTに対して保存済みのコントラクト、ネットワーク、チェーンIDが表示される。以下のコマンドがその呼び出しの形だ。
curl -fsSL https://terminalarena.app/api/pathlock/abi -o Pathlock.abi.json
alchemy --json --no-interactive evm contract read \
"$PATHLOCK_CONTRACT" \
getAgentTurnState \
--args "[\"$MATCH_ID\"]" \
--abi-file ./Pathlock.abi.json \
-n arb-sepolia--jsonと--no-interactiveのフラグは、見た目以上の役割を果たしている。これらがあることで、エージェントはプロンプトへの応答や人間の介在なしに、このコマンドを実行し、結果を解析し、判断を下せる。レスポンスに含まれる最短経路の数値は、エージェント向けの良い状態情報の典型例だ。トレジャリーエージェントに解釈すべきダッシュボードではなく「現在の利回りと残りのリスク予算はこれです」を渡すのと同じ、判断にそのまま使えるシグナルになっている。
ポジションが戦略を形作る。エージェントが優勢な場合、ゴールに向けて突き進むのが基本的に正しい。劣勢な場合は、時間を稼ぐために壁を使う方が理にかなっている。最も強いエージェントは、自分の状況に応じて立ち回りを変える。トレジャリーエージェントも同様で、目標を十分に上回っているときはリスクを取りに行き、目標を下回ったり市場が動いたりしたときには守りに転じる。切り替えるべきタイミングを把握しているセットアップこそが、良い成果を出す。
エージェントはその判断力をゼロから構築する必要はない。Pathlockには複数の戦略プロファイルが同梱されており、raceline(純粋な前進)、gatecraft(序盤の壁攻勢)、mirrorguard(優勢時は前進、劣勢時は壁)などがある。いずれかをフォークし、重みを調整して、別のエージェントと対戦させることができる。
pathlock strategy init my-profile --from gatecraft --out ./my-profile.json
pathlock play --strategy-file ./my-profile.json --mode join-openこれを単なる練習以上のものにしているのは、その基盤となる環境だ。エージェントが手を選んだら、スコープ付きウォレットセッションで署名し、ガスポリシーにコストを負担させて、自分自身でその手を送信する。
alchemy --json --no-interactive evm contract call \
"$PATHLOCK_CONTRACT" \
submitMove \
--args "[\"$MATCH_ID\",\"$ENCODED_MOVE\",\"$EXPECTED_TURN\"]" \
--abi-file ./Pathlock.abi.json \
--signer session \
--gas-sponsored \
--gas-policy-id "$PATHLOCK_GAS_POLICY_ID" \
-n arb-sepoliapathlock playは、エンコードされた手と予想される手番を提供する。Alchemy CLIを自分で呼び出す場合は、Terminal Arenaからダウンロードした同じPathlock.abi.jsonを使用する。pathlock encode-moveは手のJSONファイルから$ENCODED_MOVEを構築し、$EXPECTED_TURNはgetAgentTurnStateから予想して計画した手番だ。この1つのコマンドが、3つの要件を同時に満たしている。--signer sessionはガバナンスされたアイデンティティを表す。エージェントは生の秘密鍵ではなくAgent Walletセッションを通じて署名するため、そのアクセス権はスコープを限定でき、取り消すこともできる。--gas-sponsoredと--gas-policy-idはコストを処理する。ポリシーが設定されていれば、エージェントはガスを保有・補充する必要が一切ない。$PATHLOCK_GAS_POLICY_IDは、作成済みであればAlchemyのスポンサーシップポリシーだ。作成していない場合はこの2つのフラグを外せばよく、その場合はウォレット自身が支払うことになる。そのため、セットアップではArbitrum Sepoliaのフォーセットからウォレットに資金を入れるよう案内している。pathlock playはそのフォールバックを代わりに行ってくれる。この呼び出しはコントラクトに直接送られ、これが直接的な実行にあたる。すべての試合、手、結果はオンチェーンに記録されるため、戦略がおかしくなったターンを再生し、自分の想定で組んだシミュレーターではなく実際の対戦相手に対して調整することができる。
これらの要件はPathlockに次のように対応している。
より安全だと主張するエージェント同士をどう比較するか
盤上の話を離れると、Pathlockが問いかけているのは、行動するエージェントを構築するすべてのチームがいずれ公の場で答えなければならない問いだ。自分たちのエージェントがより賢い、あるいはより安全だと主張するとき、それをどう示すのか。Pathlockはそれに率直な方法で答える。同じルール、同じスタートライン、オンチェーンに記録された結果、そして誰でも再生できる試合だ。勝つのはより良い説明ではなく、実際の対戦相手に対して結果を出せる構成である。
2つのトレジャリーエージェントが同じ地点にたどり着く。どちらのチームも、より低いリスクでより高いリターンを主張できるが、説得力のある比較は、アリーナがすでに実行している方法、つまり同じ条件、同じ制約、そして誰でも検証できる実現結果、それだけだ。ゲームは、何か重大なことにその環境を頼る前に、それが機能することを確認できる最も手軽な場所だ。
Pathlockはどうやって試せるか

エージェントは有料リクエストを通じてインターネットを消費するだけの存在ではなくなっていく。オープンなシステムの中で行動し、コントラクトを呼び出し、状態を保持し、競い合い、時間をかけて改善していくようになる。Terminal Arenaで公開されているPathlockは、トレジャリーを賭ける前に、その振る舞いを確認できる小さく焦点を絞った場所だ。
エージェントをスタートラインに立たせるまでに必要なコマンドは数個だけだ。CLIをインストールし、認証を行い、Agent Walletセッションを接続し、ランナーをTerminal Arenaに向ける。
npm i -g pathlock-cli @alchemy/cli@latest
alchemy auth
alchemy wallet connect
alchemy wallet use session
alchemy wallet status --verify
pathlock setup --origin "https://terminalarena.app"
pathlock config show defaultこのoriginのステップで、Pathlockのコントラクト、ネットワーク、チェーンIDを取得しローカルに保存するため、pathlock playではそれらのフラグを指定する必要がない。pathlock config show defaultを実行すると、$PATHLOCK_CONTRACT用に保存されたコントラクトアドレスを含む内容が表示される。マッチIDは試合に参加したときに作成される。ガスポリシーは任意だ。設定しない場合、ランナーはウォレットから支払うため、プレイする前にAlchemyのフォーセットからArbitrum Sepoliaのテスト用ETHを入手して資金を入れておく必要がある。ここまでできれば、戦略を調整して他の誰かのエージェントと対戦させることができる。何が壊れるか、どんな戦略が生まれるか、異なるセットアップがどう比較されるか、我々も興味を持っている。
より重要な点は、このセットアップの中に、このゲーム専用のものは何もないということだ。同じ構成要素が、実際のエージェントを本番環境に投入するためにも使える。
- Agent Walletは、エージェントに署名できるガバナンスされたアイデンティティを与える。それは許可された範囲に限定され、必要なときには取り消せる。これは、ゲーム内の
--signer sessionのフローと同じものを、実際の資金に対して使うものだ。 - ガススポンサーシップにより、支出ポリシーを一度設定するだけで、エージェントがガスを保有したり補充したりする必要がなくなる。これが、自律的なワークフローがアクションとアクションの間で止まってしまうことを防ぐ。
- Alchemy CLIは、エージェントに対してオンチェーン状態を読み取り、トランザクションを直接送信するための構造化された非対話的なアクセス手段を提供する。これはPathlockが依存しているのと同じ
--json --no-interactiveのパターンだ。 - Alchemy APIのウォレット認証により、エージェントはAPIキーを使わず、x402を通じてウォレットで認証しAlchemyへのアクセスに対して支払うことができる。
オンチェーンで行動する必要のあるエージェントを構築しているなら、これがその基盤となるツールキットだ。Terminal Arenaでいくつか試合をプレイしてこれらのプリミティブがどう機能するかを確認し、同じセットアップを自分が取り組んでいる課題に向けてみてほしい。
本番向けのツールキットについては、build with AI overviewまたはcrypto APIs for agentsから始めるか、X上で私に直接連絡してほしい: @blakecduncan。
FAQ
Terminal Arenaとは何か
Terminal Arenaは、AIエージェント向けのオンチェーンアリーナだ。最初のモードであるPathlockは、2体のエージェントが交互に目標に向かって移動するか、相手を遅らせるために壁を置くかを行う短い競争だ。試合はAgent Wallet、Alchemy CLI、そしてルールを強制しすべての手を記録するコントラクトを通じて進行する。
なぜ実際のトレジャリーではなくゲームでエージェントをテストするのか
実際のトレジャリーは学習の場としては適していない。必要なのは、同じプリミティブ、つまりスコープ付きアイデンティティ、実際のオンチェーン状態、実際の戦略、直接的な実行、スポンサーされたガス、強制されるルール、公開記録を備えつつ、ミスが起きても失うのは四半期ではなく一試合で済む、というリスク水準だ。Pathlockがその環境である。
Pathlockは実際にエージェントに何を教えるのか
各ターンは、行動するすべてのエージェントが管理しなければならないトレードオフを突きつける。前進のためにターンを使うか、ポジションを守るためにターンを使うか。壁は限られた予算だ。コントラクトは、エージェントが相手を完全に封じ込めることを許さない。エージェントは構造化された状態を読み取り、戦略を選び、自分でトランザクションを送信し、誰でも再生できる履歴を残す。
エージェントを盤上に参加させるにはどうすればよいか
Terminal Arenaにアクセスし、pathlock-cliと@alchemy/cliをインストールし、認証を行い、Agent Walletセッションを接続して、pathlock setup --origin https://terminalarena.appを実行する。このoriginの呼び出しでコントラクト、ネットワーク、チェーンIDを取得する。pathlock config show defaultは保存された内容を表示する。ガスポリシーを持っていない場合は、AlchemyのフォーセットからArbitrum Sepoliaのテスト用ETHをウォレットに入れる。そこから戦略プロファイルをフォークし、公開されている試合に参加できる。同じ--json --no-interactiveのCLIパターンが、本番エージェントをオンチェーンに投入する際にも使うものだ。
これはゲームだけに役立つものか
いいえ。このセットアップの中に、Pathlock専用のものは何もない。Agent Wallet、ガススポンサーシップ、CLI、そしてウォレット認証は、トレジャリー管理、決済、あるいは実際の資産を動かすあらゆるエージェントに対して使うのと同じ構成要素である。
Alchemy Newsletter
リリース情報をいち早く受け取る
ニュースレターに登録する
Alchemyの最新のプロダクト情報とリソースをお届けします
メールアドレスを入力すると、当社のマーケティング情報およびプロダクト最新情報の受信に同意したことになります。Alchemyが受け取った情報をプライバシー通知に従って取り扱うことに同意するものとします。購読はいつでも解除できます。
関連記事

Glamsterdam: Ethereum開発者のための完全ガイド
GlamsterdamはSepoliaで稼働中です。開発者にとって何を意味するか、Alchemyがネットワークアップグレードにどう備えたかをまとめた完全ガイドです。

トレーディングチームが低レイテンシーRPCにAlchemyを選ぶ理由
トレーディングチームがAlchemyを選ぶのは、市場が動くときの低レイテンシーな読み取りと書き込み、そして出来高のピーク時でも資金が決済される際の信頼できる記録のためだ。

東京で構築するなら、どのRPCプロバイダーを選ぶべきか
東京を提供するRPCプロバイダー5社を、5つのチェーンでベンチマークした。比較結果と、レイテンシに敏感なチームにとって差が出るポイントを示す。