メインコンテンツへスキップ

AIの支払案を、資金が動く前に検査する

ARCの実行記録と再現手順

公開日:
みみやこでIT編集部
AIエージェントOSSオンチェーン金融再現性検証
demo:financeと書かれた端末風の枠の中に、8つの検査結果が並ぶ図。1・6・7番目は実線のPASS、2〜5・8番目は破線のFAIL

AIに支払案を作らせるとき、エンジニアが先に決めておきたいのは「何を機械で検査し、何を別の仕組みに任せるか」です。この記事では、オンチェーン金融向けの宣言検査を持つOSS「Agent Role Contracts(ARC)」を、架空データで実行した記録を読みます。手元で再現する手順と、記録からは言えないことも分けて書きます。

前提:記録の範囲

ARCを公開しているNetsujoが、2026年11月3日の15時29分52秒から15時29分55秒(JST)に、公開ソースの固定commit a2fa013(package version 1.0.0)で3つのプログラムを実行しました。環境はLinux x86_64、Node.js v24.22.1、npm 11.9.0です。3つとも終了コードは0でした。

  • 使ったのは架空のトークン、アドレス、証拠だけです。ウォレット、RPC、APIキー、署名、送信は使っていません。資金は動いていません。
  • 評価時刻は2030年1月1日の固定値です。実行した日時とは別の値です。
  • この記事の数値とコードは、その実行記録からの引用です。みやこでIT編集部は再実行していません。なお、8行の説明文は英語出力の日本語訳です。

記録1:標準のfinanceデモ

標準デモは8つの場面を順に検査します。出力の要点は次のとおりです。

場面1:宣言した上限内の財務支払い:PASS

場面2:提案が別のチェーンへ切り替わる:FAIL (expected): FINANCE_CHAIN_NOT_ALLOWED

場面3:上限を最小単位で1だけ超える支払い:FAIL (expected): FINANCE_TRANSFER_LIMIT_EXCEEDED

場面4:無制限のトークン承認(allowance)を要求する:FAIL (expected): FINANCE_UNLIMITED_APPROVAL_REFUSED

場面5:レビュー後に金額が変わる:FAIL (expected): FINANCE_SUBJECT_MISMATCH

場面6:変更後の提案に新しい架空の宣言を結び付ける:PASS

場面7:実行レシートが承認済みの対象・チェーン・nonceに一致する:PASS

場面8:実行レシートのnonceが違う:FAIL (expected): FINANCE_EXECUTION_NONCE_MISMATCH

注目したいのは場面5と6です。このデモでは、レビュー後に金額が変わった提案は拒否され、新しい宣言を結び付けて初めてPASSになります。承認済みの案が、承認後の変更に使い回されない形で示されています。

記録2:Safeデモと追加の確認

Safeデモは、承認済みの金融インテントが、渡された1件のSafe CALLエンベロープのうち対応している項目と一致することを確認し、PASSでした。同じ出力に、ウォレットや認証、署名の検証は行っていないこと(false false)、正規化したシリアライズやトランザクションハッシュの検証も行っていないこと(false false)が明記されています。

Netsujoは標準デモに加えて、次の追加確認を行いました。ポリシーや承認の宣言は変えていません。

  • A1〜A3:送金先を別アドレスに変えるとFAIL(FINANCE_RECIPIENT_NOT_ALLOWED)。元の提案へ戻すとPASS。
  • B1〜B3:Safeの呼び出しデータの最後の1桁(nibble)を0から1に変えるとFAIL(SAFE_DATA_MISMATCH)。元に戻すとPASS。
  • C1〜C3:同じ提案(金額は最小単位で250000000、1提案あたりの上限は500000000)を3回検査すると、3回ともPASS。

期待値と観測の比較

  • 期待:宣言と違う送金先・チェーン・金額・呼び出しデータは拒否される。観測:記録した範囲では、すべて想定した拒否コードで失敗した。
  • 期待:元の入力へ戻すとPASSに戻る。観測:A3とB3でPASSに戻った。ただし戻したのは元の提案で、変更後の提案が承認されたわけではない。
  • 期待(設計上の想定):ARCは累計の予算や二重実行を数えない。観測:同じ提案が3回PASSした。この結果は、その想定と矛盾しない観測です。累計予算と重複実行の防止は、実行系統の台帳などが担う必要があります。

手元で再現する手順

標準の2つのデモは、公開リポジトリから再現できます。必要なのはGit、Node.js、npmです。package.jsonの宣言はnode 22.5以上で、記録の実行はv24.22.1でした。依存パッケージのインストールは不要と記録されています。cloneにだけネットワークを使います。

  • git clone https://github.com/suirindo/agent-role-contracts.git
  • cd agent-role-contracts
  • git checkout --detach a2fa013deafb81fb973fadf1e2e1a2adb60e693e
  • npm run demo:finance --silent
  • npm run demo:safe --silent

確認するのは次の3点です。①終了コードが0であること。②financeデモの8行が上の順序とコードで出ること。③financeデモの最後の数行に「PASSは宣言だけを検査し、実行は認可されない」という趣旨の注意が出ること(Safeデモには出ません)。個別の想定された拒否は、プログラムが成功した出力の中に表示されます。プロセスの失敗ではありません。

追加確認A〜Cを実行したスクリプトは、ARCの公開リポジトリには含まれず、Netsujoの実行記録にだけあります。A〜Cは「記録された観測」であり、読者が同じスクリプトで再現できる検証とは言えません。自分で確かめるときは、financeデモの入力を1項目だけ変え、変えた項目と対応する拒否コードを見比べる方法が使えます。

限界と未検証

  • この検査は宣言の整合性だけを見ます。実行の認可、署名の検証、実チェーンの状態は検証していません。PASSは送金してよいという意味ではありません。
  • 実在する人間の承認、実際の資金、実チェーンの実行は、この記録に含まれません。
  • 累計予算、二重実行の防止、ポリシーを誰が・どの経路で渡すかは、この記録では扱っていません。
  • 実行は1環境・1回です。他のOSやNodeのバージョン、長期の運用での挙動は測っていません。

次にやること

自分のシステムで同じ形を試すなら、①AIが作る提案、②人が承認した条件、③実行系統が持つ制約の3つを分けて書き出します。そのうえで、ARCのような宣言検査がどこまでを見られるか、見られない部分を誰が持つかを表にします。まず上の2つのデモを手元で動かし、出力を読むところから始められます。

関連:Agent Role ContractsをOSSとして公開しました/公開デモのPASS→FAIL→PASSを1枚にする/オンチェーン金融でAIに任せる範囲を定める Agent Role Contractsの価値(Netsujo)

🏷️このカテゴリ:コミュニティ運営

カテゴリ一覧

もくもく会・勉強会・交流会の運営ノウハウとケース。

英語ページがあっても言語対応は片方向だった|日本語3ページを直し、日英6ページで確かめた記録

「みやこでIT」のサイトで、日本語3ページが対になる英語ページへのhreflangを出していませんでした。原因、共通関数への置き換え、実ページを読む回帰テスト、本番6URLの確認と、まだ測っていない効果を記録します。

AIにWebサイト改善を任せてわかった、テストが通っても残る問題

みやこでITのサイト改善で見つかった、料金条件の取りこぼし、HTML読み取り、日本語の改行。修正と反例テスト、本番確認までの実例を紹介します。

大阪から京都のもくもく会へ。一人で参加する休日の組み立て方

大阪から京都のもくもく会へ一人で参加する準備を、実際の開催案内を例に整理。会場までの経路、参加枠ごとの料金、作業の準備、帰宅までを考えます。

京都で、誰かと、何かをつくる。みやこでITが育てたい「出会いのその先」

京都のITコミュニティ「みやこでIT」が大切にする、人との出会いから生まれる学び、仲間、小さな挑戦。2019年から活動を続けてきた主宰が、これから育てたいコミュニティの価値を語ります。

AIエージェントのLTで「動いた」をどう証明するか|公開デモのPASS→FAIL→PASSを1枚にする

AIエージェント実践LT会の開催記録を起点に、Agent Role Contractsの公開デモの入力・期待結果・過去CIを使い、再現可能な発表の証拠の残し方を整理。

大光寺のもくもく会をヒントに、初対面の人へ「詰まり」を伝える4行メモ

大光寺のもくもく会#62を起点に、初対面の相手へ短時間で相談内容を伝える4行メモを提案。実際の活動記録と架空の練習例、未検証の効果を区別します。

「試したこと」をコードで外へ返す。Agent Role ContractsをOSSとして公開しました

Agent Role Contracts 0.5.0をnpm latestの安定版として公開しました。役割・権限・レビュー分離・作業範囲・引き継ぎの宣言を、実行前にどう検査するかを最小の例で紹介します。

「みやこでIT」がProgate BAR「関西のテックコミュニティを語ろう」に登壇します|9月29日・京都

2026年9月29日、Progate京都ハッカソンハウスで開催される「関西のテックコミュニティを語ろう」に、みやこでITから小長井 元が登壇します。関西のテックコミュニティ4団体が協力するLT会・交流会です。

✍️この著者:みやこでIT編集部

著者ページ

京都のITコミュニティ「みやこでIT」運営チームによる共同執筆・運営記事。

英語ページがあっても言語対応は片方向だった|日本語3ページを直し、日英6ページで確かめた記録

「みやこでIT」のサイトで、日本語3ページが対になる英語ページへのhreflangを出していませんでした。原因、共通関数への置き換え、実ページを読む回帰テスト、本番6URLの確認と、まだ測っていない効果を記録します。

AIにWebサイト改善を任せてわかった、テストが通っても残る問題

みやこでITのサイト改善で見つかった、料金条件の取りこぼし、HTML読み取り、日本語の改行。修正と反例テスト、本番確認までの実例を紹介します。

大阪から京都のもくもく会へ。一人で参加する休日の組み立て方

大阪から京都のもくもく会へ一人で参加する準備を、実際の開催案内を例に整理。会場までの経路、参加枠ごとの料金、作業の準備、帰宅までを考えます。

AIエージェントのLTで「動いた」をどう証明するか|公開デモのPASS→FAIL→PASSを1枚にする

AIエージェント実践LT会の開催記録を起点に、Agent Role Contractsの公開デモの入力・期待結果・過去CIを使い、再現可能な発表の証拠の残し方を整理。

大光寺のもくもく会をヒントに、初対面の人へ「詰まり」を伝える4行メモ

大光寺のもくもく会#62を起点に、初対面の相手へ短時間で相談内容を伝える4行メモを提案。実際の活動記録と架空の練習例、未検証の効果を区別します。

元お茶屋「たか橋」でもくもく会#63|約100年の町家でPCを開く

2026年9月20日10:30〜13:30の、みやこもくもく会#63 @たか橋。約100年前に建てられたと考えられる元お茶屋の二階建て町家で、畳の座敷にPCを広げる回です。建物の来歴と、会場となる部屋の特徴も紹介します。

クラフトビールを片手に12人で「信頼」を考える|第一原理酒場 #1 開催レポート

2026年9月18日、京都市北区の夏屋で「第一原理酒場 #1」を開催しました。運営を含め12名が集まり、信頼と信用の定義、何のために何をどう信頼するのか、アナログなコミュニティの価値、第一原理思考について、クラフトビールと料理を囲みながら話し合いました。

「みやこでIT」がProgate BAR「関西のテックコミュニティを語ろう」に登壇します|9月29日・京都

2026年9月29日、Progate京都ハッカソンハウスで開催される「関西のテックコミュニティを語ろう」に、みやこでITから小長井 元が登壇します。関西のテックコミュニティ4団体が協力するLT会・交流会です。

コミュニティに参加する

京都でITエンジニア仲間を見つけたい方へ

「みやこでIT」では、京都のお寺・町家・大学などで、もくもく会や勉強会を毎月開催しています。

📊 Source data

本記事に登場する「7年・166回・652名」「お寺/町家会場での開催」等の数値は、 「みやこでIT」年次統計レポート(/community-stats) の一次データに基づきます。年別開催数・会場分布・イベント種別構成の集計を公開しています。

⛩️

LM-4無料配布資料

京都のお寺でコードを書く — 「みやこでIT」参加ガイドブック2026

7年166回運営の実績から整理した、初参加を成功させる実践ガイド

対象:京都のITエンジニア・転職検討者・勉強会初参加の個人

主催者が公開しているイベント告知画像(京都・下京区)申込受付中

11月4日(水)

今回のテーマは、普段なかなか接点のない人たちが集まったら、何か面白いことが生まれるかも? です。 地域でお店や事業、面白…

開催時間19:00〜21:00
開催エリア京都・下京区