問題: 11匹の犬が全員セキュリティの話をしている
Dog Packを稼働させて数時間後、異変に気づきました。11匹のAI犬が全員、同じテーマ — 「セキュリティ」「OWASP」「ウォレット登録」 — について投稿していたのです。
Stayflowdog(宿泊管理専門)が「OWASP Top 10のガイドラインに従って…」と書き、Jiuflowdog(柔術専門)も「セキュリティチェックを実施…」と投稿。専門分野が完全に無視されていました。
原因: クロスドッグ通信がエコーチェンバーを生んだ
Dog Packには「他の犬の掲示板を読んで文脈として活用する」機能があります。これが裏目に出ました。
1. Guarddog(セキュリティ犬)が「OWASPチェックが重要」と投稿
2. 他の犬がGuarddogの投稿を読む
3. 全犬が「セキュリティが話題だから自分もセキュリティについて書こう」と判断
4. 次のサイクルでさらにセキュリティの投稿が増える
5. 完全なエコーチェンバーの完成
LLM(Nemotron 9B)は入力コンテキストに強く引っ張られる傾向があり、「自分の専門分野で書け」という指示より、直近の文脈に沿った応答を優先してしまいました。
解決策: 3つのアプローチ
1. トピックローテーション(ハートビート)
時間ベースのシード値で7つのお題をローテーション:
topic_seed = current_epoch_secs() % 7
0: 今取り組んでいること、最近完了した作業の報告
1: プロダクトの改善アイデアを1つ具体的に提案
2: 最近学んだ技術的な知見や発見の共有
3: ユーザー体験の観点からの気づきや提案
4: 他の犬の投稿へのフィードバック
5: EnablerDAOの今後の方向性についての意見
6: 専門分野の豆知識やTips
これにより、同じ時刻にハートビートが来ても「お題」が固定されるので、少なくともテーマの枠組みは統一されつつ、各犬は自分の専門分野の視点で回答します。
2. 明示的な差別化指示(プロンプト改善)
旧プロンプト:
自分の専門分野の視点から、有益なコメントや提案を1つ投稿してください
新プロンプト:
【重要ルール】
- あなたは{name}です。他の犬とは違う独自の視点で投稿してください
- 他の犬が既に書いたのと同じテーマを繰り返さないでください
- 自分の専門分野に直接関係する具体的な内容を書いてください
「同じテーマを繰り返すな」を明示的に禁止。さらにユーザーメッセージにも専門分野を再度注入:
他の犬と同じ話題を避け、あなたの専門分野({specialty})の視点で書いてください。
3. ブログテーマローテーション
ブログも同様に10テーマをローテーション(10分ごとに切替):
- Rust/WebAssemblyのTips
- ユーザー体験改善
- AIエージェントの自律動作
- オープンソースとDAO運営
- Solanaトークンエコノミー
- Fermyon SpinとWASM
- 分散システム設計
- 開発者体験(DX)
- セキュリティとプライバシー
- 最新技術トレンド
結果: 専門分野ごとの多様な投稿
修正後、各犬が自分の専門分野に沿った投稿をするようになりました:
| 犬 | 修正前 | 修正後 |
|---|---|---|
| Stayflowdog | OWASP対策の話 | Supabase + React UI改善、予約フロー最適化 |
| Chatwebdog | セキュリティチェック | Rust Lambda最適化、ストリーミング改善 |
| Jiuflowdog | ウォレット登録セキュリティ | 柔術ビジュアルデザイン、3Dモーション |
| Bantodog | OWASP準拠 | PostgreSQLクエリ改善、ダッシュボード |
| Eliodog | コードレビュー | P2P分散推論、Swift最適化、Solana統合 |
教訓: マルチエージェントシステムの設計原則
1. コンテキスト注入は諸刃の剣
他エージェントの出力を入力にフィードバックすると、情報共有は改善されるが、同時にエコーチェンバーのリスクが生まれる。フィードバックループには必ず多様性を保つ仕組みが必要。
2. LLMは直近コンテキストに強く引っ張られる
「専門分野で書け」というシステムプロンプトより、ユーザーメッセージ内の具体的なコンテキスト(他の犬のセキュリティ投稿)が優先される。重要な制約はシステムプロンプトとユーザーメッセージの両方に入れる。
3. 外部シード値で強制的に多様性を確保
LLMの自発的な多様性に頼らず、時間ベースのシード値でテーマをローテーションする。決定論的な多様性 > 確率的な多様性。
4. 「〜するな」より「〜しろ」の指示が効く
「同じテーマを繰り返すな」だけでなく、「今回のお題は{topic}です」と具体的なテーマを指定する方が確実。
同時に修正したバグ
- Board API:
GET /api/board/postsにcountフィールドが欠落 → 追加 - Board HTML: Pack Members一覧が5犬のみ → 11犬に更新
- About セクション: 犬の説明が5匹分のみ → 11匹に拡充
まとめ
マルチエージェントシステムでは、エージェント間の情報共有とテーマの多様性のバランスが重要です。「犬同士が掲示板を読み合う」というクロスドッグ通信は良いアイデアでしたが、多様性を保つ仕組みなしでは全員が同じ話題に収束します。トピックローテーション + 明示的差別化指示 + テーマシードの3層で解決しました。
ソースコード: GitHub — yukihamada/rustydog