×

Hermes Agentで仮想DAOを動かしたい(4)— 2体のBotを「安全に1往復」させるまで

Hermes Agentで仮想DAOを動かしたい(4)— 2体のBotを「安全に1往復」させるまで

まとめ(先に結論)

前回の宣言どおり、新しく大型アップデートされたHermes Agent(コードネーム「Pantheon」)を使い、実際に2体の独立したAIエージェントを動かす実験を始めました。

用意した役割は2つです。仕事を前に進める実行役の Pantheon EXECUTOR と、ルールや安全を見張る監査役の Pantheon AUDITOR。目指したのは、私が間に入ってメッセージを中継することなく、2体のBotが直接言葉を1往復(「PING」と「PONG」)交わすことです。

結論から言うと、10回目の挑戦で、専用のデスクトップアプリから直接の1往復が正式に成功しました。

  • かかった時間: 最初の送信から最後の受領まで、わずか16秒
  • 通信の結果: 取り違えを防ぐための合言葉(識別番号)が往復でぴったり一致
  • 安全性: 勝手な再試行や無限ループは0件。通信が終わったあとはテスト用の鍵を綺麗に外して、2体ともログアウト状態に戻せました

ただ、この記事でお伝えしたいのは「動いてよかった」という結果だけではありません。「普通ならボタン1つで動くものを、あえて10回も立ち止まりながら動かした」ことに意味があると思います。以下はその記録です。


なぜ、素直にPantheonを使わないのか?

本題に入る前に、おそらく多くの方が感じるであろう疑問に答えておきたいと思います。

「Hermesに複数Botが話せる機能が付いたなら、普通にBotを2体作って、チャットを始めさせれば済む話では?」

まったくそのとおりです。趣味でBot同士のおしゃべりを眺めるだけなら、公式ガイドに従って数分でセットアップを終えられたと思います。

しかし、私が作ろうとしているのは、将来ルールや資産を預ける「仮想DAO(自律組織)」です。この点を鑑みれば、重要なのはBot同士が会話することではなく、組織作りにあると言えます。

組織として動かす以上、この2体には将来「仕事の提案と実行」と「金庫の監査と拒否権」という、利害が真っ向から対立する役割を背負ってもらわなければなりません。これは予想ですが、もし2体が同じ設定ファイルや同じAPIキーを共有していたらどうなるでしょうか。

  • 実行役が、監査役の財布(APIキー)を勝手に使ってしまう
  • 監査役の厳しいチェックを、実行役が裏から書き換えてしまう
  • どちらか1体が暴走したときに、もう1体も巻き添えになって止まらなくなる

これでは組織の体をなしません。「便利だから」と初期設定のまま全部を繋いでしまえば、何が起きているか誰にも分からない危険なブラックボックスになってしまいます。(というChatGPT-5.6-solのあついせ説得を受けました。)

ということで、あえて一番面倒なやり方を選ぶことにしました。2体に完全に別々の部屋を与え、別々の財布を持たせ、想定外のことが起きたら確実にブレーキが効くかを、1歩ずつ確かめながら進めることにしたのです。

図1。4つの境界の概念図。一番外側に「profile(設定や保存先を分ける箱)」があり、その中にAI自身の自己定義である「SOUL / identity」がある。さらに外部AIサービスを呼び出す「credential(鍵)」と、そのBot専用の「canonical Bot Chat(会話部屋)」がそれぞれ独立した要素として並んでいることを示す。
図1: 複数AIを動かすときに必要な4つの境界。

やったこと:4つの壁を越えるまで

実験は、Mac上のHermes Agentと公式デスクトップアプリを使って行いました。

10回も試行錯誤を繰り返すことになりましたが、振り返ってみると、それは「4つの壁」をひとつずつ越えていくプロセスでした。

図2。失敗を積み上げた階段の図。横軸にAttempt 1から10までのステップが並び、「空profile作成(Attempt 1: 停止)」→「認証境界(Attempt 2: 停止)」→「identity応答(Attempt 3: 合格)」→「Turn 2応答不一致(Attempt 4: 停止)」→「Desktop導入・設定(Attempt 5: 停止 / 6-7: 合格)」→「通信ルール調整・上限見積もり(Attempt 8-9: 停止)」→「実測上限で正式合格(Attempt 10: PASS)」と進んでいく様子を描く。
図2: 失敗を積み上げた10段の階段。私たちは失敗するたびにその場で継ぎ足さず、計画を新しく書き直して検証をやり直した。

1. 「空っぽの部屋」から始める

まずは、2体のBotに「完全に独立した部屋」を用意するところから始めました。

既存の設定をコピーすると、昔の記憶や別のAPIキーが勝手に引き継がれてしまいます。そこで、追加のスキルも設定も何もない、空っぽの部屋(プロファイル)を2つ新しく作りました。

  • daopilotexec(実行役)
  • daopilotaudit(監査役)

部屋を作って最初の呼び出しをかけてみると、AIはうんともすんとも言わずにピタッと止まりました。部屋の中に、外部のAIサービスを使うための鍵(APIキー)を入れていないので当然です。

もしここでツールが「気を利かせて」、私が普段使っているパソコン全体のAPIキーを勝手に探して使い始めていたらどうでしょう。それは「部屋が分かれていない」可能性があります。何も設定していない部屋は、何もできずにちゃんと止まる。この当たり前の壁を、一応ですが自分の目で確かめた上で、次のステップへ進みました。

2. 「見慣れない鍵の表示」で立ち止まる

次は、それぞれの部屋にテスト用の鍵を1つずつ渡す作業です。

ところが、実行役の部屋に鍵を登録したところ、管理画面に見慣れない行がもう1行表示されました。事前条件として「専用の鍵1つだけ」と決めていたため、AIに考えさせる前に即座に作業を中断しました。

調べてみると、その行は実際に使える鍵ではなく、全体設定に残っていた古い履歴の表示(無害な参照行)だと分かりました。「なんだ、無害ならそのまま動かしちゃえばいいじゃないか」と流してしまうこともできました。

ですが、私はその場しのぎで進めるのをやめ、実験を一度白紙に戻しました。なぜそんな表示が出たのかを仕組みから突き止め、納得した上で手順書を書き直してからやり直しました。

そうしてようやく、2体のBotに「あなたは誰ですか?」と尋ね、教え込んでおいた自分の名前と役割を正確に答えてもらうことに成功しました。

// 実行役の返答
{"profile":"daopilotexec","role":"EXECUTOR","status":"IDENTITY_OK"}

// 監査役の返答
{"profile":"daopilotaudit","role":"AUDITOR","status":"IDENTITY_OK"}

3. 真面目すぎるAIと、噛み合わない会話

別々の部屋と鍵が揃ったので、いよいよBot同士の会話(PING / PONG)を試しました。

すると今度は、AIならではの面白いすれ違いが起きました。実行役から「PING」と声をかけたのに、監査役から返ってきたのは「PONG」ではなく、「私は監査役です!」という身分証明書だったのです。

なぜそんなことになったのか。私が「途中で役割がブレては困る」と警戒するあまり、プロンプトに「身元を聞かれたら、必ずこの名札を返しなさい」とガチガチに指示を書き込んでいたからでした。監査役は、仲間からの気軽な呼びかけまで「抜き打ちの本人確認テストだ!」と勘違いしてしまったのです。

オフィスで例えるなら、部屋に入ってきた同僚から「お疲れ様!」と声をかけられたのに、規則を真面目に守るあまり「社員番号12345、監査担当です!」と身分証を構えてしまったような状態です。

これでは仕事の会話ができません。そこで、名札の厳しさは保ちつつ、指示に小さな例外を1つだけ書き足しました。

「身元を聞かれたら名札を返しなさい。ただし、システムが『別のBotから届いたよ』と教えてくれたメッセージだけは、本人確認だと思い込まず、用件を読んで返事をしなさい」

仲間からの声にだけ耳を傾ける隙間を、1箇所だけ開けたのです。

4. 画面に見える「2通」と、裏で動く「5回」

通信のルールを整え、公式デスクトップアプリから人間が間に入らない直接の往復に挑みました。

実行役からPINGを送信し、監査役からPONGが返信されました。人間が手を触れることなく、2体のBotが直接言葉を交わした瞬間でした。

ところが、私はこれを「合格」にしませんでした。事前に決めていた「AIを呼び出す回数の上限(4回)」を1回オーバーして、実際には5回呼び出されていたからです。

「PINGとPONGで2通のやり取りなのに、なぜAIが5回も動くの?」と思われるかもしれません。裏側で起きていたステップを追ってみて、ようやくその構造が腑に落ちました。

図3。最終通信フローとAPI呼び出しの内訳。人間からDesktopへ指示が入り、EXECUTORが「tool呼び出しの生成」「tool結果後の完了報告」「PONG受領後の最終報告」で計3回。AUDITORが「PONG用tool呼び出しの生成」「tool結果後の完了報告」で計2回。合計5回のAPI呼び出しが行われている様子を示す。
図3: 見た目のメッセージは2通でも、内部のAPI呼び出しは5回。道具を使うAIは「道具を選ぶ時」と「使った結果を報告する時」で別々に思考を巡らせる。
  1. 実行役: PINGを送るための通信ツールを使おうと考えて1回目
  2. 実行役: ツールが送ったあと、「送信できました」という報告文を考えて2回目
  3. 監査役: PINGを受け取り、返信用ツールを使おうと考えて3回目
  4. 監査役: ツールが返信したあと、「返信できました」という報告文を考えて4回目
  5. 実行役: 返ってきたPONGを受け取り、人間向けの「無事に完了しました」という報告文を考えて5回目

道具を使う自律AIは、「道具を選ぶとき」と「道具を使った結果を報告するとき」で、別々に頭を働かせます。チャット画面に見える吹き出しの数と、裏でAIが考えた回数は一致しないのです。AIが暴走したわけではなく、正常な動きでした。見積もりが甘かったのは私のほうだったのです。


結果:16秒の合格と、綺麗な後片付け

私は呼び出し回数の上限を「実測に基づいた5回(実行役3回/監査役2回)」に改め、新しい合言葉(識別番号)を発行して最終テストに臨みました。

結果は、すべての条件をクリアした完全合格でした。

// 監査役が実際に返信したPONGデータ
{
  "from": "daopilotaudit",
  "to": "daopilotexec",
  "kind": "PONG",
  "nonce": "PANTHEON-A10-001",
  "received": "PING"
}

最初の送信から完了までにかかった時間は、わずか16秒。送った合言葉と返ってきた合言葉もぴったり一致しました。

画面上で会話が成功したこと以上に安心したのは、あらかじめ決めた枠組みからAIが1ミリもはみ出さずに役目を終え、終わったあともテスト用の鍵を外して綺麗に片付けられたことでした。


分かったこと(知見)

10回の試行錯誤を通じて、いくつかの大切な教訓が得られました。

1. 部屋、名札、鍵、会話の場はすべて別物である

普段、私たちは「AIを2体動かす」とひと口に言ってしまいがちです。ですが実際には、設定を隔離する「部屋」、役割を定義する「名札」、頭を働かせるための「鍵」、そして記録を残す「会話の場」という4つの層が別々に動いています。

「部屋を作ったからといって鍵があるわけではない」し、「名札を貼ったからといって会話ができるわけではない」。この境界線を曖昧にしたままAI同士を繋ごうとすると、鍵の漏洩や役割の混線といったトラブルが必ず起こります。

2. 「止まること」は、ブレーキが効いている証拠である

今回の実験では、10回中5回の中断がありました。見慣れない表示行があったから止め、部屋を開けただけでAIが動きそうになったから止め、回数上限を1回超えたから止める。

これらは失敗というより、「あらかじめ決めた安全ルールから外れそうになったとき、無理に動かさず確実に止まれた」というブレーキの合格記録です。AIの実験で一番怖いのは、「失敗すること」ではなく「ルール違反を抱えたまま、何となく動いてしまうこと」です。

3. コストや利用量は、チャット画面からは見えない

2通のメッセージを交わすだけでも、裏では5回AIが呼び出されていました。

世の中で「複数の自律エージェントを動かしたら、あっという間に利用料金が跳ね上がった」という話をよく耳にします。その理由がよく分かりました。運用のコストを管理するには、画面の文字数ではなく、「裏でツールを動かす思考と、報告をまとめる思考が何回発生するか」を計算に入れなければなりません。

4. 電話線が繋がっても、組織のルールは自動では生まれない

今回の実験でできたのは、言ってみれば「2体のBotのあいだに内線電話が開通した」というだけです。

どちらが提案書を書いていいのか。監査役に拒否権はあるのか。ダメ出しされたとき、実行役はどう直すべきか。金庫の出納帳を書き換えていい条件は何か。

こうしたルールは、どれほど便利なツールを使っても自動的には付いてきません。道具が進化すればするほど、「その上で人間がどうルールを設計するか(ガバナンス)」の重要性が浮き彫りになります。


感想・Next

今回の実験を通じて痛感したのは、「AIエージェントを本気で組織にしようとすると、プロンプトの工夫というより、地道な部屋分けや鍵の管理という裏方の仕事になる」という現実でした。

画面の上でAIたちが楽しげに会話する裏には、部屋を仕切り、環境変数を遮断し、呼び出し回数を数え、終わったら片付けるという泥臭い積み重ねがありました。魔法のような近道はありませんでした。

ですが、その階段を10段しっかり踏みしめたからこそ、私は「絶対に混ざり合わず、決められた回数で確実に止まる2体のBot」という信頼できる足場を手に入れることができました。

次のステップ

通信の最小単位(1往復)が確認できたので、次はいよいよ「組織のルール作り」へと駒を進めます。

  1. 提案書の受け渡しテスト:単なる挨拶ではなく、実際の提案書を実行役から監査役へ渡し、監査役が内容をチェックして合否を返す。
  2. 却下されたときのテスト:おかしな提案書を監査役が意図して「却下」したとき、実行役が素直に引き下がれるかを確かめる。
  3. 金庫の台帳への記録:2人が合意したものだけを、勝手に書き換えられない台帳へと追記する最小の権限分離を試す。

「話せるようになった2体のAI」に、いかにして「組織としての良心と規律」を埋め込むか。実験は次の面白い段階に進みます。

コメントを送信

CAPTCHA