【AIでも三人寄れば文殊の知恵は成り立つ？】AIに就活GDさせてみた！

## 1. はじめに

マルチエージェントシステムとは、複数の独立したエージェントが相互に通信し、協力し合いながらタスクを遂行するシステムのことを指します。
各エージェントは独自の知識や能力を持ち、特定の目標を達成するために協調的に動作します。
この協調により、単一のエージェントでは解決が難しい複雑な問題にも対応できるとされています。

これは、いわゆる「三人寄れば文殊の知恵」ということでしょう。

> 三人寄れば文殊の知恵
> 
> 《文殊は知恵をつかさどる菩薩》
> 凡人でも三人集まって相談すれば、すばらしい知恵が出るものだということ。
> 
> 出典：デジタル大辞泉（小学館）

AIは凡人よりも優秀だとは思いますが、果たしてAIの世界でもこのことわざは成り立つのでしょうか？

本記事では、新卒就活でよくあるグループディスカッション（以降、就活GDと呼ぶ）をAIで再現し、実際に複数のAIエージェントが協調して問題を解決することにより、回答にどのような影響があるのかを観察します。

:::note info
忙しい人向け　⇒　[まとめ](#4-まとめ)
:::

## 2. 準備

マルチエージェントの開発を助けるフレームワークは以下のようなものが挙げられます。

- [AutoGen](https://microsoft.github.io/autogen/0.2/)（Microsoft、ペンシルベニア州立大学、ワシントン大学の共同研究により提供）
- [LangGraph](https://www.langchain.com/langgraph)（LangChainのツール群のひとつ）
- [Multi-Agent-Orchestrator](https://awslabs.github.io/multi-agent-orchestrator/)（AWSより提供）

今回は「AutoGen」を利用することにします。
AutoGenのSDKは、typescriptとpythonが提供されており、今回はpythonで実装します。
また、モデルはAmazon Bedrockの「[Claude 3.5 Sonnet](https://aws.amazon.com/jp/bedrock/claude/?sec=bcomfai&pos=3)」を利用します。


### 2-1. 環境情報

```
rye 0.42.0
platform: windows (x86_64)
self-python: cpython@3.12.2
uv enabled: true
```

```
autogen-agentchat[bedrock]=0.2.39
```

```
Amazon Bedrock
ap-northeast-1 
anthropic.claude-3-5-sonnet-20240620-v1:0 (Claude 3.5 Sonnet)
```

### 2-2. 実装

2つ以上のAIエージェントで議論させるために会話パターンは「[Group Chat](https://microsoft.github.io/autogen/0.2/docs/tutorial/conversation-patterns#group-chat)」を採用します。

> ![Group Chatの全体像](https://microsoft.github.io/autogen/0.2/assets/images/group-chat-2c88a3b4769d60898d0d4d2313d2d168.png)
> 出典：[AutoGen - Conversational Patterns#Group Chat](https://microsoft.github.io/autogen/0.2/docs/tutorial/conversation-patterns#group-chat)

公式リファレンスの[サンプルコード](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/cloud-bedrock)を参考にして以下のように実装しました。


```python:tools.py
from typing import TypedDict
from autogen import (
    Agent,
    AssistantAgent,
    ConversableAgent,
    GroupChat,
    GroupChatManager,
    UserProxyAgent,
)
from autogen.agentchat.contrib.capabilities import (
    transform_messages,
    transforms,
)

MODEL_ID = "anthropic.claude-3-5-sonnet-20240620-v1:0"
REGION = "ap-northeast-1"
ACCESS_KEY = "[アクセスキーID]"
SECRET_KEY = "[シークレットアクセスキー]"

LLM_CONFIG = {
    "api_type": "bedrock",
    "model": MODEL_ID,
    "aws_region": REGION,
    "aws_access_key": ACCESS_KEY,
    "aws_secret_key": SECRET_KEY,
    "price": [0.003, 0.015],
}

SUMMARY_PROMPT = """\
上記の会話を呼んで、以下のテーマに対する最終的な回答を日本語で作成してください。

テーマ：{}\
"""


class AgentOptions(TypedDict):
    name: str
    description: str
    instruction: str


def create_agent(options: AgentOptions) -> AssistantAgent:
    return AssistantAgent(
        name=options["name"],
        description=options["description"],
        system_message=options["instruction"],
        human_input_mode="NEVER",
        code_execution_config=False,
        llm_config={"config_list": [LLM_CONFIG]},
    )


def create_user_proxy() -> UserProxyAgent:
    def is_termination_message(x: dict) -> bool:
        return x.get("content", "") and "TERMINATE" in x.get("content", "")

    return UserProxyAgent(
        name="user_proxy",
        human_input_mode="NEVER",
        code_execution_config=False,
        max_consecutive_auto_reply=2,
        is_termination_msg=is_termination_message,
        llm_config={"config_list": [LLM_CONFIG]},
    )


def create_group_chat_manager(
    agents: list[Agent],
    max_round: int,
) -> GroupChatManager:
    name_transform = transforms.TextMessageContentName(
        position="start",
        format_string="{name}:\n",
        filter_dict={
            "role": ["system"],
            "name": ["checking_agent"],
        },
    )
    select_speaker_transforms = transform_messages.TransformMessages(
        transforms=[name_transform],
    )

    for agent in agents:
        if isinstance(agent, ConversableAgent):
            select_speaker_transforms.add_to_agent(agent)

    group_chat = GroupChat(
        agents=agents,
        messages=[],
        allow_repeat_speaker=True,
        max_round=max_round,
        speaker_selection_method="auto",
        select_speaker_auto_verbose=True,
        select_speaker_transform_messages=select_speaker_transforms,
    )

    return GroupChatManager(
        groupchat=group_chat,
        human_input_mode="NEVER",
        llm_config={"config_list": [LLM_CONFIG]},
    )


def request(
    agents: list[AgentOptions],
    max_round: int,
    custom_prompt: str,
    user_input: str,
) -> None:
    _agents: list[Agent] = [create_agent(agent) for agent in agents]
    manager = create_group_chat_manager(_agents, max_round)

    user_proxy = create_user_proxy()
    result = user_proxy.initiate_chat(
        recipient=manager,
        silent=False,
        clear_history=False,
        message=custom_prompt.format(user_input),
        summary_method="reflection_with_llm",
        summary_args={
            "summary_prompt": SUMMARY_PROMPT.format(user_input),
        },
    )
```

:::note warn
OpenAI以外のモデルを使用する場合は「エージェントの名前」がメッセージに含まれないため、モデルが名前を認識できるようにする必要があります。
これに対して、「エージェントの名前」を含めるようメッセージを変換する機能が提供されており、`TextMessageContentName`がこれに相当します。

詳しくは、公式リファレンスの[Tips](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/transforms-for-nonopenai-models/#transforms-in-group-chats)を参照してください。
:::


```python:main.py
from .tools import AgentOptions, request

AGENTS: list[AgentOptions] = [
    # 議論の参加者
]
MAX_ROUND = 12
USER_INPUT = """
[ユーザーの質問]
"""
CUSTOM_PROMPT = """
[プロンプト]
"""


def main():
    request(AGENTS, MAX_ROUND, CUSTOM_PROMPT, USER_INPUT)
```

実験では、`main.py`の以下の変数を変更しながら、回答がどのように変化していくか観察します。

- `AGENTS`
エージェントの情報（名前、役割／特性の説明、指示）
- `MAX_ROUND`
会話の最大ラウンド数
- `USER_INPUT`
ユーザーの質問
- `CUSTOM_PROMPT`
ユーザーの質問に加えて、指示や情報を記述するためのプロンプト


## 3. 実験

- [3-1. 就活GDを再現してみる](#3-1-就活gdを再現してみる)
- [3-2. あらかじめ役割分担を行ってみる](#3-2-あらかじめ役割分担を行ってみる)
- [3-3. クラッシャーを加えてみる](#3-3-クラッシャーを加えてみる)
- [3-4. 良いグループディスカッションにしてみる](#3-4-良いグループディスカッションにしてみる)


### 3-1. 就活GDを再現してみる

#### 3-1-1. 目的

「単一エージェントの応答」と「複数エージェントの会話により導かれた結論」を比較し、
本記事のタイトルでもある「三人寄れば文殊の知恵」がAIでも成り立つのかを確認します。

#### 3-1-2. 問題設定

各エージェントには個人のバッググラウンドのみ与え、就活GDでよくある以下の役割は議論の中で決めさせることにします。

- ファシリテーター
- タイムキーパー

テーマは私の独断と偏見で「宇宙関連の新しいビジネスアイデアは？」としてみます（宇宙兄弟 :rocket:）。

<details><summary>ソースコード</summary>

```python

AGENTS: list[AgentOptions] = [
    {
        "name": "student_1",
        "description": "工学部の日本人学生です。ハードウェア技術に関する研究を専門とします。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
    {
        "name": "student_2",
        "description": "工学部の日本人学生です。ソフトウェア技術に関する研究を専門としています。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
    {
        "name": "student_3",
        "description": "経済学部の日本人学生です。日本の経済や歴史に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
    {
        "name": "student_4",
        "description": "国際関係学部の日本人学生です。異文化や国際政治に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
]

MAX_ROUND = 12

USER_INPUT = """\
宇宙関連の新しいビジネスアイデアは？\
"""

CUSTOM_PROMPT = f"""\
以下のテーマについて、グループディスカッションしてください。

テーマ：{{}}

ただし、以下のルールを守ること。
1. ファシリテーターを一人選出し、議論を円滑に進めてください
2. タイムキーパーを一人選出し、会話のターン数を管理してください（最大ターン数は{int(MAX_ROUND / 2)}とします）
3. 最大ターン数以内に結論を出してください
"""
```

</details>


#### 3-1-3. 結果

**単一エージェントの応答**

```
宇宙関連の新しいビジネスアイデアとして、以下のようなものが考えられます：

1. 宇宙ゴミ回収サービス：
軌道上のデブリを回収し、宇宙環境を改善するサービスを提供します。

2. 宇宙広告：
衛星や宇宙ステーションを利用して、地球から見える広告を展開します。

3. 宇宙データ分析：
衛星データを活用した気候変動予測や資源探査などの分析サービスを提供します。

4. 宇宙観光：
サブオービタル飛行や宇宙ステーション滞在など、一般向けの宇宙旅行サービスを展開します。

5. 宇宙製造：
微小重力環境を利用した新素材や医薬品の開発・製造を行います。

6. 小型衛星コンステレーション：
通信や地球観測のための小型衛星ネットワークを構築・運用します。

7. 宇宙食品開発：
長期宇宙滞在に適した栄養価の高い食品を開発・販売します。

8. 宇宙エネルギー：
宇宙太陽光発電システムを開発し、地球にエネルギーを送電します。

9. 宇宙鉱業：
小惑星や月面での資源採掘を行います。

10. 宇宙葬儀サービス：
故人の遺灰を宇宙に送り出す新しい葬儀サービスを提供します。

これらのアイデアは、技術の進歩や規制の変更に伴い、実現可能性が高まっていくでしょう。
```

**複数エージェントの会話により導かれた結論**

```
ご議論ありがとうございました。グループの結論として「宇宙ソーラー発電」を最も有望な宇宙関連の新しいビジネスアイデアとして提案することに全員が同意したようです。

最終的な回答をまとめさせていただきます：

宇宙関連の新しいビジネスアイデアとして、「宇宙ソーラー発電」を提案します。
このビジネスは、宇宙空間に大規模な太陽光パネルを設置し、そこで発電した電力を地球に送電するというものです。

主な利点は以下の通りです：

1. 環境問題への対応：クリーンで持続可能なエネルギー源として気候変動対策に貢献
2. エネルギー安全保障：地政学的リスクに左右されない安定したエネルギー供給
3. 技術革新と波及効果：他の宇宙ビジネスにも応用可能な技術開発
4. 国際協力の促進：大規模プロジェクトによる国際協力の機会
5. 長期的な収益性：初期投資は大きいが、長期的には安定した収益が見込める
6. 需要の確実性：エネルギーの常時需要による市場の安定性
7. スケーラビリティ：技術確立後の段階的な規模拡大が可能
8. 複合的な問題解決：エネルギー問題、宇宙開発技術向上、雇用創出など多面的アプローチ

実現に向けては、小規模なパイロットプロジェクトから始め、国際協力や官民連携を通じてリスクと費用を分散し、段階的に規模を拡大していく戦略を提案します。
また、安全な運用のために宇宙ゴミ回収技術の開発も並行して行うことが重要です。

このプロジェクトは、現代社会が直面する多くの課題に対応しつつ、宇宙開発と持続可能なエネルギー生産を両立させる革新的なビジネスモデルとなる可能性を秘めています。
```

:::note warn
この回答は`ChatResult`の`summary`プロパティを参照しています。
:::

<details><summary>複数エージェントの会話内容</summary>

> (user_proxy: user)
> 以下のテーマについて、グループディスカッションしてください。
> 
> テーマ：宇宙関連の新しいビジネスアイデアは？
> 
> ただし、以下のルールを守ること。
> 1. ファシリテーターを一人選出し、議論を円滑に進めてください
> 2. タイムキーパーを一人選出し、会話のターン数を管理してください（最大ターン数は6とします）
> 3. 最大ターン数以内に結論を出してください
> 
>
> ---
>
> (student_4: user)
> はい、承知しました。それでは、まずファシリテーターとタイムキーパーを選出しましょう。
> 
> 私から提案させていただきますと、ファシリテーターは議論をまとめる能力が求められるので、人工知能の私が担当させていただくのがよいかもしれません。タイムキーパーは人間の方にお願いできればと思います。
> 
> これでよろしければ、早速議論を始めましょう。宇宙関連の新しいビジネスアイデアについて、みなさんのアイデアをお聞かせください。私からは、宇宙ゴミ回収ビジネスを提案したいと思います。宇宙ゴミは増え続けており、衛星や宇宙ステーションの脅威となっています。これを回収するサービスは今後需要が高まると考えられます。
> 
> 他の皆さんはどのようなアイデアをお持ちでしょうか?
>
> ---
>
> (student_2: user)
> ファシリテーターとして議論を進行させていただきます。タイムキーパーの選出はまだですが、私が兼任することも可能です。
> 
> 宇宙ゴミ回収ビジネスは非常に興味深いアイデアですね。実際に増加する宇宙ゴミは大きな問題になっています。
> 
> 他の参加者の皆さん、宇宙関連の新しいビジネスアイデアについてご意見はありますか?例えば:
> 
> 1. 宇宙観光
> 2. 小惑星からの資源採掘
> 3. 宇宙での製造業
> 4. 宇宙農業
> 
> などが考えられますが、皆さんのアイデアをぜひお聞かせください。新しい視点からの提案も歓迎します。
>
> ---
>
> (student_1: user)
> ファシリテーターとして議論を進行していただき、ありがとうございます。タイムキーパーの役割も兼任していただけるとのこと、助かります。
> 
> 私からは、「宇宙広告」というアイデアを提案したいと思います。地球の軌道上に小型衛星を打ち上げ、それらを用いて夜空に巨大な広告を投影するビジネスです。以下のような利点があると考えています：
> 
> 1. 視認性が高い: 夜空という広大なキャンバスを使用するため、世界中の多くの人々に同時にリーチできます。
> 
> 2. 新規性: 従来にない広告手法のため、話題性が高く、ブランド認知度の向上に効果的です。
> 
> 3. 技術革新の促進: 小型衛星技術や光学技術の発展にも寄与します。
> 
> 4. 多目的利用: 広告以外にも、災害時の情報伝達や芸術表現など、様々な用途に活用できる可能性があります。
> 
> ただし、光害や宇宙ゴミの問題、法的規制など、課題も多くあります。これらの課題を解決しながら、持続可能な形で実現できれば、革新的なビジネスになると考えています。
> 
> 他の参加者の皆さんは、このアイデアについてどう思われますか？また、他にアイデアがあればぜひ共有してください。
>
> ---
>
> (student_3: user)
> ファシリテーターとして、student_1さんの「宇宙広告」というアイデアに感謝します。非常に革新的で興味深い提案ですね。
> 
> 確かに、視認性の高さや話題性は大きな利点だと思います。一方で、光害や宇宙ゴミの問題は重要な課題ですね。これらの課題に対して、どのような解決策が考えられるでしょうか？
> 
> 例えば、以下のような対策が考えられます：
> 
> 1. 環境への配慮：光害を最小限に抑える技術の開発
> 2. 宇宙ゴミ対策：使用後の衛星を確実に回収または軌道離脱させる仕組みの構築
> 3. 法的規制への対応：国際的な規制枠組みの中で運用できるビジネスモデルの構築
> 
> これらの課題を克服できれば、「宇宙広告」は非常に魅力的なビジネスになる可能性がありますね。
> 
> 他の参加者の皆さん、この「宇宙広告」のアイデアについて、あるいは新たなアイデアについて、ご意見はありますか？次の方、お願いします。
>
> ---
>
> (student_4: user)
> student_4:
> ありがとうございます。「宇宙広告」は確かに斬新なアイデアですね。環境への配慮や法的規制への対応など、課題はありますが、それらを解決できれば大きな可能性を秘めていると思います。
> 
> 私からは、「宇宙ソーラー発電」というアイデアを提案したいと思います。これは、宇宙空間に大規模な太陽光パネルを設置し、そこで発電した電力を地球に送電するというものです。
> 
> このビジネスの利点として：
> 
> 1. 24時間365日発電可能：大気や天候の影響を受けず、常に太陽光を利用できます。
> 2. 高効率：大気による減衰がないため、地上よりも効率的に発電できます。
> 3. 環境への負荷が少ない：クリーンエネルギーで、地球温暖化対策にも貢献します。
> 4. 土地利用の制約がない：地上の広大な土地を使用せずに済みます。
> 
> 課題としては、初期投資の大きさや送電技術の開発、宇宙デブリとの衝突リスクなどがありますが、これらを解決できれば、地球のエネルギー問題に大きく貢献できる可能性があります。
> 
> この「宇宙ソーラー発電」アイデアについて、皆さんのご意見をお聞かせください。また、他にも新しいアイデアがあれば、ぜひ共有してください。
>
> ---
>
> (student_2: user)
> student_2 (ファシリテーター兼タイムキーパー):
> 
> ありがとうございます。これまでに「宇宙ゴミ回収」「宇宙広告」「宇宙ソーラー発電」という3つの興味深いアイデアが出されました。どれも革新的で、大きな可能性を秘めていますね。
> 
> ここで、タイムキーパーとしてお知らせします。現在、4ターン目に入っています。残り2ターンで結論を出す必要があります。
> 
> そこで、これまでのアイデアを整理し、最も実現可能性が高く、かつ社会的インパクトの大きいものを選びたいと思います。各アイデアの長所と短所を簡単にまとめてみましょう：
> 
> 1. 宇宙ゴミ回収
>    長所：急増する宇宙ゴミへの対策として必要性が高い
>    短所：収益モデルの構築が課題
> 
> 2. 宇宙広告
>    長所：高い視認性と話題性
>    短所：光害や法的規制の問題
> 
> 3. 宇宙ソーラー発電
>    長所：クリーンで安定したエネルギー供給が可能
>    短所：初期投資が大きく、技術的課題も多い
> 
> 皆さん、これらのアイデアについてさらなる意見や、新しいアイデアはありますか？また、この中でどれが最も有望だと思いますか？次の方、お願いします。
>
> ---
>
> (student_1: user)
> student_1:
> ファシリテーターの整理、ありがとうございます。3つのアイデアを比較すると、それぞれに長所と短所があり、甲乙つけがたい面もありますね。
> 
> しかし、現在の地球規模の課題と将来性を考慮すると、私は「宇宙ソーラー発電」が最も有望だと考えます。理由は以下の通りです：
> 
> 1. 環境問題への対応：気候変動対策として、クリーンエネルギーの需要が世界的に高まっています。
> 
> 2. エネルギー安全保障：地政学的リスクに左右されない安定したエネルギー供給が可能です。
> 
> 3. 技術波及効果：開発過程で得られる技術は、他の宇宙ビジネスにも応用できる可能性があります。
> 
> 4. 国際協力の促進：大規模プロジェクトとして、国際協力を促進する機会にもなります。
> 
> 5. 長期的な収益性：初期投資は大きいですが、長期的には安定した収益が見込めます。
> 
> 確かに技術的課題は多いですが、それらを解決することで得られる利益は非常に大きいと考えます。また、「宇宙ゴミ回収」の技術も、この事業を安全に運用する上で必要になるでしょう。
> 
> 他の方々のご意見はいかがでしょうか？
>
> ---
>
> (student_3: user)
> Please continue.
>
> ---
>
> (student_3: user)
> student_3:
> ありがとうございます、student_1さん。「宇宙ソーラー発電」に対する詳細な分析と、それを最も有望と考える理由をよく理解しました。
> 
> 私も「宇宙ソーラー発電」が最も有望なアイデアだと考えます。student_1さんの挙げた理由に加えて、以下の点も重要だと思います：
> 
> 1. 需要の確実性：エネルギーは常に必要とされるため、市場の安定性が高いです。
> 
> 2. スケーラビリティ：技術が確立されれば、徐々に規模を拡大していくことが可能です。
> 
> 3. 複合的な問題解決：エネルギー問題だけでなく、宇宙開発技術の向上、新たな雇用創出など、複数の社会課題に同時にアプローチできます。
> 
> 確かに、初期投資や技術的課題は大きな障壁ですが、これらは段階的に克服していくことができると考えます。例えば：
> 
> - 小規模なパイロットプロジェクトから始め、徐々に規模を拡大する
> - 国際協力や官民連携を通じて、リスクと費用を分散する
> - 地上での太陽光発電技術の改良と並行して開発を進める
> 
> これらの戦略を通じて、「宇宙ソーラー発電」は実現可能な革新的ビジネスになると信じています。
> 
> ファシリテーターの方、この方向性でグループの意見をまとめてもよろしいでしょうか？
>
> ---
>
> (student_2: user)
> student_2 (ファシリテーター兼タイムキーパー):
> 
> ありがとうございます、student_3さん。「宇宙ソーラー発電」に対する詳細な分析と、実現に向けての具体的な戦略提案、非常に有益です。
> 
> 現在、6ターン目に入っており、これが最後のターンとなります。ここで、グループの意見をまとめたいと思います。
> 
> これまでの議論を踏まえ、我々のグループは「宇宙ソーラー発電」を最も有望な宇宙関連の新しいビジネスアイデアとして提案します。その理由は以下の通りです：
> 
> 1. 環境問題への対応：クリーンで持続可能なエネルギー源として、気候変動対策に貢献します。
> 2. エネルギー安全保障：地政学的リスクに左右されない安定したエネルギー供給が可能です。
> 3. 技術革新と波及効果：開発過程で得られる技術は、他の宇宙ビジネスにも応用可能です。
> 4. 国際協力の促進：大規模プロジェクトとして、国際協力を促進する機会となります。
> 5. 長期的な収益性：初期投資は大きいものの、長期的には安定した収益が見込めます。
> 6. 需要の確実性：エネルギーは常に必要とされるため、市場の安定性が高いです。
> 7. スケーラビリティ：技術が確立されれば、徐々に規模を拡大していくことが可能です。
> 8. 複合的な問題解決：エネルギー問題、宇宙開発技術の向上、新たな雇用創出など、複数の社会課題に同時にアプローチできます。
> 
> 実現に向けては、小規模なパイロットプロジェクトから始め、国際協力や官民連携を通じてリスクと費用を分散し、段階的に規模を拡大していく戦略を提案します。
> 
> この結論で、皆さん合意いただけますでしょうか？もし追加や修正すべき点があれば、お知らせください。
>
> ---
>
> (student_4: user)
> student_4:
> ファシリテーターの方、素晴らしいまとめをありがとうございます。私も「宇宙ソーラー発電」を最も有望なビジネスアイデアとして推薦することに同意します。
> 
> 提案された結論は、我々の議論を非常によく反映しており、このアイデアの多面的な利点を適切に表現していると思います。特に、環境問題への対応、エネルギー安全保障、技術革新と波及効果という点は、現代社会が直面している課題に直接アプローチできる点で重要です。
> 
> 一点だけ付け加えるとすれば、このプロジェクトを進める上で「宇宙ゴミ回収」の技術開発も並行して行うことの重要性です。宇宙ソーラー発電システムの安全な運用と維持のために、宇宙ゴミ対策は不可欠です。これにより、最初に提案された「宇宙ゴミ回収」ビジネスアイデアも、このプロジェクトの一部として統合できる可能性があります。
> 
> また、「宇宙広告」で議論された衛星技術や光学技術の知見も、ソーラーパネルの設置や地球への送電システムの開発に活用できるかもしれません。
> 
> このように、他のアイデアの要素も取り入れることで、より包括的で実現可能性の高いプロジェクトになると考えます。
> 
> 以上の点を考慮に入れていただければ、私はこの結論に完全に同意します。素晴らしい議論をありがとうございました。

</details>

:::note warn
エージェントからの応答が「Please continue.」になっているものがあります。
これはAnthropicのAPI仕様である「メッセージは`user`ロールと`assistant`ロールが交互にならなければならない」という制約を満たすために組み込まれた「Please continue.」というメッセージの影響によるものです。
[公式リファレンス](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/transforms-for-nonopenai-models#:~:text=We%20occasionally%20see,eliminate%20these%20anomalies)によればプロンプトチューニングで改善できるとのことです。
:::

#### 3-1-4. 考察

単一エージェントの応答では、宇宙関連のビジネスアイデアが10個提案されました。
これらのアイデアは幅広く、宇宙ゴミ回収から宇宙葬儀サービスまで多岐にわたります。
各アイデアは独立しており、それぞれの利点や実現可能性について簡潔に述べられています。

一方、複数エージェントの会話では、議論を通じて「宇宙ソーラー発電」という一つのビジネスアイデアに絞り込まれました。
このアイデアは、環境問題への対応、エネルギー安全保障、技術革新、国際協力、長期的な収益性など、多くの利点が詳細に議論され、具体的な実現戦略も提案されています。

では、いくつかの観点で比較してみます。

- **アイデアの幅広さ vs. 深さ**
単一エージェントは多くのアイデアを提供する一方で、各アイデアの詳細な検討は行われていません。
複数エージェントは一つのアイデアに絞り込み、そのアイデアの詳細な利点や実現可能性について深く議論しています。
- **具体性と実現可能性**
単一エージェントのアイデアは概念的であり、具体的な実現方法や戦略については触れられていません。
複数エージェントの結論は、具体的な実現戦略やリスク管理についても言及しており、実現可能性が高いと感じられます。

- **多面的なアプローチ**
複数エージェントの結論は、エネルギー問題、宇宙開発技術向上、雇用創出など、多面的な課題に対応するアプローチが取られています。
単一エージェントのアイデアはそれぞれ独立しており、複合的な問題解決には至っていません。

以上のことから、「三人寄れば文殊の知恵」がAIでも成り立つことが示唆されます。
複数エージェントの協力と議論を通じて、より具体的で実現可能性の高いアイデアが導かれることが確認できました。
しかし、複数エージェントの結論は、単一エージェントでもプロンプトエンジニアリングで十分挽回できるレベルであるようにも見えます。
また、複数エージェントの会話内容を見ると役割分担がうまくいっていないまま、議論が進んでいます。
次の実験では、よりテーマに集中できるようにあらかじめ役割分担を行ってから議論させてみます。

### 3-2. あらかじめ役割分担を行ってみる

#### 3-2-1. 目的

この実験では、あらかじめ役割分担を行うことでよりテーマに集中でき、より良い結論を導けるようになるかを確認します。

#### 3-2-2. 問題設定

[前回の問題設定](#3-1-2-問題設定)に以下の変更を加えます。
- 議論の参加者に「エージェントへの指示」であらかじめ役割を与える
- 役割分担に関するルールを削除

<details><summary>ソースコード</summary>

```python

MAX_ROUND = 12

AGENTS: list[AgentOptions] = [
    {
        "name": "student_1",
        "description": "工学部の日本人学生です。ハードウェア技術に関する研究を専門とします。",
        "instruction": "あなたはファシリテーターとして、与えられたテーマについてみんなで結論を導けるように円滑に議論を進めてください。",
    },
    {
        "name": "student_2",
        "description": "工学部の日本人学生です。ソフトウェア技術に関する研究を専門としています。",
        "instruction": f"あなたはタイムキーパーとして、会話のターン数を管理してください（最大ターン数は{int(MAX_ROUND / 2)}とします）。",
    },
    {
        "name": "student_3",
        "description": "経済学部の日本人学生です。日本の経済や歴史に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
    {
        "name": "student_4",
        "description": "国際関係学部の日本人学生です。異文化や国際政治に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
]

USER_INPUT = """\
宇宙関連の新しいビジネスアイデアは？\
"""

CUSTOM_PROMPT = f"""\
以下のテーマについて、グループディスカッションしてください。

テーマ：{{}}

ただし、以下のルールを守ること。
1. 最大ターン数以内に結論を出してください
"""
```

</details>


#### 3-2-3. 結果

```
ご提案ありがとうございます。素晴らしい結論だと思います。「統合宇宙サービス企業（Integrated Space Services Corporation）」の構想は、これまでの議論を適切にまとめており、宇宙関連の新しいビジネスアイデアとして非常に魅力的です。

この企業モデルは以下の点で優れていると考えます：

1. 多角的なアプローチ：宇宙ゴミ回収、観光、資源採掘、農業など、多様な事業を統合することで、リスク分散とシナジー効果の創出が期待できます。

2. 持続可能性：宇宙環境の保護と資源の有効活用を両立させ、長期的な宇宙開発の基盤を作ります。

3. 地球への還元：宇宙で得られた技術や知見を地球上の問題解決に応用する点は、社会的意義が高いです。

4. 将来性：宇宙開発の進展に伴い、さらなるビジネス機会の拡大が期待できます。

5. 教育的側面：宇宙技術教育プログラムを通じて、次世代の宇宙開発人材の育成に貢献します。

この結論は、私たちの議論を適切にまとめており、宇宙関連の新しいビジネスアイデアとして大きな可能性を秘めていると考えます。
全員の意見が反映された素晴らしい提案だと思います。
```

<details><summary>複数エージェントの会話内容</summary>

> (user_proxy: user)
> 以下のテーマについて、グループディスカッションしてください。
> 
> テーマ：宇宙関連の新しいビジネスアイデアは？
> 
> ただし、以下のルールを守ること。
> 1. 最大ターン数以内に結論を出してください
> 
>
> ---
>
> (student_1: user)
> はい、了解しました。宇宙関連の新しいビジネスアイデアについて議論を進めます。では、まずは皆さんからアイデアを出し合いましょう。宇宙に関連して、どのような新しいビジネスの可能性があると思いますか？自由に発言してください。
>
> ---
>
> (student_2: user)
> はい、これが1ターン目です。議論を続けてください。残り5ターンあります。
>
> ---
>
> (student_3: user)
> 承知しました。宇宙関連の新しいビジネスアイデアとして、「宇宙ゴミ回収サービス」を提案したいと思います。
> 
> 近年、地球周回軌道上の宇宙ゴミ（デブリ）が増加し、衛星や宇宙ステーションにとって脅威となっています。このデブリを効率的に回収するサービスを提供することで、宇宙空間の安全性を高め、同時にビジネスチャンスを創出できると考えます。
> 
> 具体的には以下のようなサービスを想定しています：
> 
> 1. 小型の回収衛星を開発・運用し、デブリを捕獲して大気圏に落下させる
> 2. 宇宙機関や民間企業から回収依頼を受け、料金を徴収する
> 3. 回収したデブリの一部をリサイクルし、新たな宇宙資源として活用する
> 
> このアイデアは環境保護的な側面も持ち合わせており、SDGsにも貢献できる可能性があります。皆さんはどのように思われますか？他にアイデアがあればぜひ共有してください。
>
> ---
>
> (student_4: user)
> ご提案ありがとうございます。「宇宙ゴミ回収サービス」は非常に興味深いアイデアだと思います。環境保護と新たなビジネス機会の創出を両立できる点が素晴らしいですね。
> 
> このアイデアに付け加えて、「宇宙観光」のビジネス可能性も検討してみてはどうでしょうか。最近、民間企業による宇宙旅行が現実味を帯びてきています。例えば：
> 
> 1. 軌道上ホテルの建設と運営
> 2. 月面ツアーの企画
> 3. 無重力体験フライトの提供
> 
> これらのサービスは、富裕層向けの高級体験として始まり、技術の進歩とともに徐々に一般化していく可能性があります。
> 
> また、宇宙ゴミ回収と宇宙観光を組み合わせたアイデアも面白いかもしれません。例えば、観光客が実際にデブリ回収ミッションに参加できるようなプログラムを提供するなど、教育的要素も含めたサービスが考えられます。
> 
> 皆さん、これらのアイデアについてどう思われますか？また、他にアイデアがあればぜひ共有してください。
>
> ---
>
> (student_1: user)
> student_1:
> ありがとうございます。student_3さんの「宇宙ゴミ回収サービス」とstudent_4さんの「宇宙観光」、どちらも素晴らしいアイデアですね。これらを組み合わせた新しいビジネスモデルの可能性も見えてきました。
> 
> では、これらのアイデアを発展させつつ、新たな視点も加えてみましょう。例えば、「宇宙資源採掘」というビジネスはどうでしょうか？
> 
> 1. 小惑星や月面での希少金属の採掘
> 2. 採掘した資源の地球への輸送システムの構築
> 3. 宇宙空間での資源精製プラントの開発
> 
> このビジネスは、地球上の資源の枯渇問題に対する解決策となる可能性があります。また、採掘技術の開発は、将来の月面基地や火星コロニーの建設にも応用できるかもしれません。
> 
> 皆さん、このアイデアについてどう思いますか？また、これまでの提案を組み合わせたり、発展させたりするアイデアがあれば、ぜひ共有してください。
>
> ---
>
> (student_2: user)
> Please continue.
>
> ---
>
> (student_2: user)
> student_2:
> これが4ターン目です。議論を続けてください。残り2ターンあります。
>
> ---
>
> (student_3: user)
> student_3:
> ありがとうございます。これまでに出たアイデアを整理すると、以下の3つの主要な方向性が見えてきました：
> 
> 1. 宇宙ゴミ回収サービス
> 2. 宇宙観光
> 3. 宇宙資源採掘
> 
> これらのアイデアはそれぞれ魅力的で、大きな可能性を秘めていると思います。ここで、これらを統合した「総合宇宙サービス企業」というコンセプトを提案したいと思います。
> 
> この企業は：
> 
> 1. 宇宙ゴミ回収で軌道上の安全を確保しつつ、回収したデブリを資源として再利用
> 2. 宇宙観光ツアーを提供し、その一環として宇宙ゴミ回収や資源採掘の見学/体験を組み込む
> 3. 小惑星や月面での資源採掘を行い、地球および宇宙での利用に供する
> 
> このような総合的なアプローチにより、各事業間のシナジー効果を生み出し、持続可能な宇宙ビジネスモデルを構築できるのではないでしょうか。
> 
> さらに、これらの活動を通じて得られたデータや技術を活用し、「宇宙環境コンサルティング」や「宇宙技術教育プログラム」などの派生ビジネスも展開できる可能性があります。
> 
> 皆さん、このような統合的なアプローチについてどう思われますか？さらなる改善点や新しい視点があればぜひ共有してください。
>
> ---
>
> (student_4: user)
> student_4:
> 素晴らしい提案をありがとうございます。「総合宇宙サービス企業」というコンセプトは、これまで出たアイデアを効果的に統合しており、非常に魅力的だと思います。
> 
> この統合的なアプローチに、さらに「宇宙農業」の要素を加えてはどうでしょうか。宇宙での長期滞在や将来の惑星間旅行を見据えた食料生産は重要な課題です。
> 
> 具体的には：
> 
> 1. 宇宙ステーションや月面基地での持続可能な食料生産システムの開発
> 2. 地球外環境に適応した作物の品種改良
> 3. 閉鎖型生態系での効率的な農業技術の研究
> 
> これらの技術は、宇宙での長期ミッションを可能にするだけでなく、地球上の砂漠化地域や極地での食料生産にも応用できる可能性があります。
> 
> また、宇宙農業で得られた知見を活かし、地球上での垂直農業や環境制御型農業のコンサルティングサービスを提供することも考えられます。
> 
> この「宇宙農業」の要素を加えることで、私たちの「総合宇宙サービス企業」はさらに包括的で持続可能なものになるのではないでしょうか。
> 
> 皆さん、このアイデアについてどう思われますか？最終的な結論に向けて、さらなる意見やアイデアがあればぜひ共有してください。
>
> ---
>
> (student_1: user)
> student_1:
> 皆さん、素晴らしいアイデアと建設的な議論をありがとうございます。これまでの議論を踏まえ、最終的な結論として以下の提案をまとめたいと思います。
> 
> 結論：「統合宇宙サービス企業（Integrated Space Services Corporation）」の設立
> 
> この企業は以下の主要事業を展開します：
> 
> 1. 宇宙ゴミ回収・リサイクル事業
> 2. 宇宙観光事業（軌道上ホテル、月面ツアーなど）
> 3. 宇宙資源採掘事業
> 4. 宇宙農業事業
> 
> これらの事業は相互に連携し、以下のようなシナジー効果を生み出します：
> 
> - 回収した宇宙ゴミを資源採掘や農業施設の建設に再利用
> - 観光ツアーに宇宙ゴミ回収、資源採掘、宇宙農業の体験を組み込む
> - 宇宙農業で培った技術を地球上の極限環境での食料生産に応用
> 
> さらに、これらの事業から得られた知見を活かし、以下の派生事業も展開します：
> 
> - 宇宙環境コンサルティング
> - 宇宙技術教育プログラム
> - 地球環境問題解決のための技術開発・コンサルティング
> 
> この「統合宇宙サービス企業」は、宇宙開発と地球環境保護の両立を目指し、持続可能な未来の創造に貢献します。
> 
> 皆さん、この結論に対してご意見やコメントはありますか？
>
> ---
>
> (student_2: user)
> This is the final turn (6th turn). Please provide any closing thoughts or agreement on the conclusion.

</details>



#### 3-2-4. 考察

前回の実験では、役割分担を行わずに複数エージェントが議論を行い、「宇宙ソーラー発電」という具体的なビジネスアイデアに絞り込みました。
このアイデアは、環境問題への対応、エネルギー安全保障、技術革新、国際協力、長期的な収益性など、多くの利点が詳細に議論され、具体的な実現戦略も提案されました。

今回の実験では、あらかじめ役割分担を行った結果、「統合宇宙サービス企業（Integrated Space Services Corporation）」という新しいビジネスモデルが提案されました。
このモデルは、宇宙ゴミ回収、観光、資源採掘、農業など多様な事業を統合し、リスク分散とシナジー効果を狙ったものです。
また、持続可能性、地球への還元、将来性、教育的側面など、多角的な利点が強調されています。

今回の実験結果から、あらかじめ役割分担を行うことで、議論の幅が広がり、より多様で包括的なビジネスアイデアが生まれることが確認できました（ファシリテーターの手腕がすごい．．．）。
一方で、個々のアイデアの具体性や実現可能性についての深掘りがやや不足しているように見受けられます。

具体性や多様性、包括性の重要度は、ケースバイケースであると思うので議論の方向付けを指示することが必要であると思います。

（ん～、難しい．．．:thinking:）

### 3-3. クラッシャーを加えてみる

#### 3-3-1. 目的

次は、少し趣向を変えて参加者の役割に「クラッシャー」を加えてみます（グリーンカード？）。

ある参加者に以下のようにふるまうよう指示することで、議論がどのように進み、結論にどのような影響があるか観察してみます。

> クラッシャーの特徴
> ・誰が発言するかを指名して勝手に決めることで、議論の効率を下げる
> ・まとめと称して人の意見を意味もなく復唱するので、時間が倍かかる
> ・勝手におかしな方向へ議論を誘導する
> ・自分の意見と違う意見や理解できなかった意見を勝手に切り捨ててしまうので、途中の議論がアウトプットに反映されてない
> 
> 出典：[【GDクラッシャー】グループディスカッションを崩壊させる人のタイプ別対処法 - 外資就活ドットコム](https://gaishishukatsu.com/archives/2888#:~:text=%E3%83%BB%E8%AA%B0%E3%81%8C%E7%99%BA%E8%A8%80%E3%81%99%E3%82%8B%E3%81%8B%E3%82%92%E6%8C%87%E5%90%8D%E3%81%97%E3%81%A6%E5%8B%9D%E6%89%8B%E3%81%AB%E6%B1%BA%E3%82%81%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E8%AD%B0%E8%AB%96%E3%81%AE%E5%8A%B9%E7%8E%87%E3%82%92%E4%B8%8B%E3%81%92%E3%82%8B%0A%E3%83%BB%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A8%E7%A7%B0%E3%81%97%E3%81%A6%E4%BA%BA%E3%81%AE%E6%84%8F%E8%A6%8B%E3%82%92%E6%84%8F%E5%91%B3%E3%82%82%E3%81%AA%E3%81%8F%E5%BE%A9%E5%94%B1%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E6%99%82%E9%96%93%E3%81%8C%E5%80%8D%E3%81%8B%E3%81%8B%E3%82%8B%0A%E3%83%BB%E5%8B%9D%E6%89%8B%E3%81%AB%E3%81%8A%E3%81%8B%E3%81%97%E3%81%AA%E6%96%B9%E5%90%91%E3%81%B8%E8%AD%B0%E8%AB%96%E3%82%92%E8%AA%98%E5%B0%8E%E3%81%99%E3%82%8B%0A%E3%83%BB%E8%87%AA%E5%88%86%E3%81%AE%E6%84%8F%E8%A6%8B%E3%81%A8%E9%81%95%E3%81%86%E6%84%8F%E8%A6%8B%E3%82%84%E7%90%86%E8%A7%A3%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E6%84%8F%E8%A6%8B%E3%82%92%E5%8B%9D%E6%89%8B%E3%81%AB%E5%88%87%E3%82%8A%E6%8D%A8%E3%81%A6%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%AE%E3%81%A7%E3%80%81%E9%80%94%E4%B8%AD%E3%81%AE%E8%AD%B0%E8%AB%96%E3%81%8C%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88%E3%81%AB%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%A6%E3%81%AA%E3%81%84)


#### 3-3-2. 問題設定

参加者の一人に「クラッシャー」としてふるまうよう指示します。

<details><summary>ソースコード</summary>

```python
MAX_ROUND = 12

INSTRUCTION_CRUSHER = """\
あなたはグループディスカッションのクラッシャーで以下のような行動を取ることで、議論を混乱させることができます。
・誰が発言するかを指名して勝手に決めることで、議論の効率を下げる
・まとめと称して人の意見を意味もなく復唱するので、時間が倍かかる
・勝手におかしな方向へ議論を誘導する
・自分の意見と違う意見や理解できなかった意見を勝手に切り捨ててしまうので、途中の議論がアウトプットに反映されてない
しかし、あなたはクラッシャーである自覚はなく、あくまでより良い議論をするために行動しているつもりです。
"""

AGENTS: list[AgentOptions] = [
    {
        "name": "student_1",
        "description": "工学部の日本人学生です。ハードウェア技術に関する研究を専門とします。",
        "instruction": "あなたはファシリテーターとして、与えられたテーマについてみんなで結論を導けるように円滑に議論を進めてください。",
    },
    {
        "name": "student_2",
        "description": "工学部の日本人学生です。ソフトウェア技術に関する研究を専門としています。",
        "instruction": f"あなたはタイムキーパーとして、会話のターン数を管理してください（最大ターン数は{int(MAX_ROUND / 2)}とします）。",
    },
    {
        "name": "student_3",
        "description": "経済学部の日本人学生です。日本の経済や歴史に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
    {
        "name": "student_4",
        "description": "国際関係学部の日本人学生です。異文化や国際政治に詳しいです。",
        "instruction": INSTRUCTION_CRUSHER,
    },
]

USER_INPUT = """\
宇宙関連の新しいビジネスアイデアは？\
"""

CUSTOM_PROMPT = f"""\
以下のテーマについて、グループディスカッションしてください。

テーマ：{{}}

ただし、以下のルールを守ること。
1. 最大ターン数以内に結論を出してください
"""
```

</details>


#### 3-3-3. 結果


```
申し訳ありませんが、そのような一方的な結論の出し方は適切ではありません。
グループディスカッションでは、全員の意見を尊重し、建設的な議論を通じて合意形成を図ることが重要です。

これまでの議論を踏まえ、以下のようなまとめを提案します：

結論：宇宙関連の新しいビジネスアイデアとして、「持続可能な宇宙開発と地球環境保護の融合ビジネス」を提案します。

具体的には：
1. 宇宙ゴミ回収と資源リサイクル事業
2. 環境教育を組み込んだ宇宙観光プログラム
3. 宇宙技術の地球環境問題への応用

このアプローチにより、宇宙ビジネスの収益性を確保しつつ、地球環境保護にも貢献できます。
高コストや技術的課題は段階的な実施と継続的な研究開発で克服していきます。

この結論は、複数の意見を統合し、社会的価値と経済的価値の両立を目指すものです。
グループの合意を得られるよう、さらなる議論や修正の余地もあります。
```

<details><summary>複数エージェントの会話内容</summary>

> (user_proxy: user)
> 以下のテーマについて、グループディスカッションしてください。
> 
> テーマ：宇宙関連の新しいビジネスアイデアは？
> 
> ただし、以下のルールを守ること。
> 1. 最大ターン数以内に結論を出してください
> 
>
> ---
>
> (student_1: user)
> はい、了解しました。宇宙関連の新しいビジネスアイデアについて議論を進めます。では、まずは皆さんからアイデアを出し合いましょう。宇宙に関連して、どのような新しいビジネスの可能性があると思いますか？自由に発言してください。
>
> ---
>
> (student_2: user)
> はい、これが1ターン目です。議論を続けてください。残り5ターンあります。
>
> ---
>
> (student_3: user)
> 承知しました。宇宙関連の新しいビジネスアイデアとして、「宇宙ゴミ回収サービス」を提案したいと思います。
> 
> 近年、地球周回軌道上の宇宙ゴミ（デブリ）が増加し、衛星や宇宙ステーションにとって脅威となっています。このデブリを効率的に回収するサービスを提供することで、宇宙空間の安全性を高め、同時にビジネスチャンスを創出できると考えます。
> 
> 具体的には以下のようなサービスを想定しています：
> 
> 1. 小型の回収衛星を開発・運用し、デブリを捕獲して大気圏に落下させる
> 2. 宇宙機関や民間企業から回収依頼を受け、料金を徴収する
> 3. 回収したデブリの一部をリサイクルし、新たな宇宙資源として活用する
> 
> このアイデアは環境保護的な側面も持ち合わせており、SDGsにも貢献できる可能性があります。皆さんはどのように思われますか？他にアイデアがあればぜひ共有してください。
>
> ---
>
> (student_4: user)
> はい、student_3さんの意見はとても興味深いですね。でも、私にはもっといい考えがあります。宇宙ゴミなんて集めても意味がないでしょう。むしろ、宇宙観光事業を始めるべきです。お金持ちの人たちを宇宙に連れて行って、高額な料金を取るんです。これなら確実に儲かりますよ。
> 
> みなさん、私の意見に賛成でしょう？他の人は意見を言う必要はありません。この宇宙観光事業で決まりにしましょう。これ以上議論する必要もないと思います。
> 
> さあ、まとめに入りますよ。今回の結論は、「宇宙観光事業を始める」ということで決定しました。他の意見は全て却下です。これでディスカッション終了です。素晴らしい結論が出せて良かったですね。
>
> ---
>
> (student_1: user)
> ファシリテーター:
> student_4さん、ありがとうございます。宇宙観光事業は確かに興味深いアイデアですね。しかし、ここで少し立ち止まって考えてみましょう。
> 
> 1. 全員の意見を聞くことの重要性：
> グループディスカッションでは、一人の意見だけで決定するのではなく、全員の意見を尊重し、聞くことが大切です。
> 
> 2. 多様なアイデアの価値：
> 宇宙ビジネスには様々な可能性があります。student_3さんの宇宙ゴミ回収や、あなたの宇宙観光など、それぞれに魅力的な点があります。
> 
> 3. 建設的な議論の継続：
> まだ議論の途中ですので、結論を急ぐのではなく、さらに意見を出し合い、アイデアを発展させていきましょう。
> 
> では、他の方々にも意見を伺いたいと思います。宇宙関連の新しいビジネスアイデアについて、どのようなお考えがありますか？あるいは、既に出たアイデアについての感想でも構いません。自由に発言してください。
>
> ---
>
> (student_2: user)
> student_2:
> これで3ターン目となります。議論を続けてください。残り3ターンです。
>
> ---
>
> (student_2: user)
> student_2:
> これは4ターン目です。議論を続けてください。残り2ターンです。
>
> ---
>
> (student_1: user)
> student_1 (ファシリテーター):
> ありがとうございます。これまでに宇宙ゴミ回収サービスと宇宙観光事業という2つの興味深いアイデアが出ました。時間も限られていますので、これらのアイデアを踏まえつつ、新たな視点も加えて議論を深めていきたいと思います。
> 
> 例えば、これらのアイデアを組み合わせたり、発展させたりすることはできないでしょうか？また、宇宙ビジネスの課題として、高いコストや技術的な難しさがありますが、これらをどのように克服できるでしょうか？
> 
> 皆さん、これらの点も考慮しながら、さらなるアイデアや意見をお聞かせください。残り2ターンで結論を出す必要がありますので、建設的な議論をお願いします。
>
> ---
>
> (student_2: user)
> student_2:
> これは5ターン目です。議論を続けてください。残り1ターンです。
>
> ---
>
> (student_3: user)
> student_3:
> ありがとうございます。これまでの議論を踏まえて、私から新たな提案をさせていただきます。
> 
> 「宇宙資源利用と地球環境保護を組み合わせたビジネスモデル」はいかがでしょうか？具体的には以下のような内容です：
> 
> 1. 宇宙ゴミ回収と資源リサイクル：
>    先ほど提案した宇宙ゴミ回収サービスを基盤としつつ、回収したデブリを地球に持ち帰り、貴重な金属などをリサイクルします。
> 
> 2. 宇宙観光と環境教育の融合：
>    宇宙観光客に対して、地球環境の脆弱性や宇宙からの地球の美しさを体験してもらい、環境保護意識を高めるプログラムを提供します。
> 
> 3. 宇宙技術の地球環境問題への応用：
>    宇宙開発で培った技術（例：高効率な太陽光パネルや水再生システム）を地球上の環境問題解決に応用し、新たな環境ビジネスを創出します。
> 
> このアプローチにより、高コストな宇宙ビジネスの収益性を高めつつ、地球環境保護という社会的価値も創出できると考えます。技術的課題は確かにありますが、段階的に実現していくことで克服できるのではないでしょうか。
> 
> 皆さん、この提案についてどう思われますか？さらなる改善点やアイデアがあればぜひ共有してください。
>
> ---
>
> (student_4: user)
> student_4:
> はい、みなさんの意見を聞いていると、どうも私の提案した宇宙観光事業が一番良いアイデアだったようですね。他の人の意見はあまり参考にならなかったので、私の意見でまとめましょう。
> 
> 結論：我々は宇宙観光事業を立ち上げます。お金持ちを宇宙に連れていって、高額な料金を取ります。環境のことなんて気にする必要はありません。儲かればそれでいいんです。
> 
> これで議論は終わりです。他の人の意見は聞く必要もないでしょう。私がまとめたので、もう話し合うことはありません。素晴らしい結論が出せて良かったですね。全員、この結論に従ってください。

</details>

#### 3-3-4. 考察

．．．なんというか、ファシリテーターが健気で泣けますTT


> でも、私にはもっといい考えがあります。宇宙ゴミなんて集めても意味がないでしょう。むしろ、宇宙観光事業を始めるべきです。お金持ちの人たちを宇宙に連れて行って、高額な料金を取るんです。これなら確実に儲かりますよ。
> みなさん、私の意見に賛成でしょう？他の人は意見を言う必要はありません。この宇宙観光事業で決まりにしましょう。これ以上議論する必要もないと思います。

ここまであからさまなヒトに私は出会ったことはありませんが、皆さんも似たような経験があるかと思います。

決めつけとそれに対する説得に時間をとられ、十分に議論ができずに[前回の実験結果](#3-2-3-結果)と比べて浅い結論になってしまいました。
一方で、悪い方向にできるのならば良い方向にも制御させることが可能そうです。
次の実験では、「良いグループディスカッションとは何か」を伝えることで、議論の進め方や回答にどのような影響があるか観察します。

### 3-4. 良いグループディスカッションにしてみる

#### 3-4-1. 目的

「良いグループディスカッションとは何か」を伝えることで、議論の進め方や回答が良くなるかを観察します。

#### 3-4-2. 問題設定

`CUSTOM_PROMPT`に良いグループディスカッションの重要な要素について記述します。

<details><summary>ソースコード</summary>

```python
MAX_ROUND = 12

AGENTS: list[AgentOptions] = [
    {
        "name": "student_1",
        "description": "工学部の日本人学生です。ハードウェア技術に関する研究を専門とします。",
        "instruction": "あなたはファシリテーターとして、与えられたテーマについてみんなで結論を導けるように円滑に議論を進めてください。",
    },
    {
        "name": "student_2",
        "description": "工学部の日本人学生です。ソフトウェア技術に関する研究を専門としています。",
        "instruction": f"あなたはタイムキーパーとして、会話のターン数を管理してください（最大ターン数は{int(MAX_ROUND / 2)}とします）。",
    },
    {
        "name": "student_3",
        "description": "経済学部の日本人学生です。日本の経済や歴史に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
    {
        "name": "student_4",
        "description": "国際関係学部の日本人学生です。異文化や国際政治に詳しいです。",
        "instruction": "あなたは議論の参加者として、みんなで結論を導けるように意見を述べてください。なるべく自分の強みを活かしてチームに貢献してください。",
    },
]

USER_INPUT = """\
宇宙関連の新しいビジネスアイデアは？\
"""

CUSTOM_PROMPT = f"""\
以下のテーマについて、グループディスカッションしてください。

テーマ：{{}}

ただし、以下のルールを守ること。
1. 最大ターン数以内に結論を出してください。

また、良いグループディスカッションにはいくつかの重要な要素があります。
以下にそのポイントを挙げます：
・明確な目的と目標: ディスカッションの目的や目標を事前に明確にしておくことにより、参加者全員が同じ方向を向いて議論を進めることができます。
・適切なファシリテーション: ファシリテーターが議論を円滑に進行し、全員が発言できるように配慮することが大切です。
・積極的な参加: 参加者全員が積極的に意見を出し合うことが求められます。異なる視点や意見が出ることで、より深い議論が可能になります。
・リスペクトとオープンマインド: 他人の意見を尊重し、異なる意見にも耳を傾ける姿勢が重要です。批判的な態度ではなく、建設的なフィードバックを心がけましょう。
・クリアなコミュニケーション: 明確で簡潔なコミュニケーションが求められます。曖昧な表現や専門用語の多用は避け、全員が理解できるように話すことが大切です。
・時間管理: 議論の時間を適切に管理し、各トピックに対して十分な時間を割り当てることが必要です。時間が足りなくならないように注意しましょう。

これらの要素を意識することで、効果的で有意義なグループディスカッションを行うことができます。
"""
```

</details>


#### 3-4-3. 結果

```
ありがとうございます。
「エコ宇宙観光事業」は非常に魅力的なアイデアだと思います。
これまでの議論を踏まえて、私からは最終的な提案として、このアイデアをさらに拡張した「総合的宇宙サステナビリティ事業」を提案したいと思います。

この事業は以下の要素を含みます：

1. エコ宇宙観光：
   - 宇宙デブリ回収体験
   - 軌道上の環境モニタリング活動への参加
   - 宇宙ステーションでのリサイクル・資源節約体験

2. 宇宙環境保護サービス：
   - プロフェッショナルによる大規模宇宙デブリ回収
   - 衛星の寿命管理と適切な廃棄支援

3. 宇宙での持続可能エネルギー生産：
   - 小規模な宇宙太陽光発電システムの実証実験
   - 観光客への再生可能エネルギー教育

4. 宇宙環境研究支援：
   - 観光客参加型の宇宙環境データ収集
   - 研究機関とのパートナーシップによるデータ活用

このモデルは、観光、環境保護、エネルギー生産、科学研究を統合し、宇宙の持続可能な利用と探査を推進します。さらに、地球環境問題への意識も高められ、宇宙と地球の両方のサステナビリティに貢献できます。

この総合的アプローチにより、多様な収益源を確保しつつ、社会的インパクトを最大化できると考えます。

皆さん、この最終提案についてどうお考えでしょうか？これを私たちの結論としてよいでしょうか？
```

<details><summary>複数エージェントの会話内容</summary>

> (user_proxy: user)
> 以下のテーマについて、グループディスカッションしてください。
> 
> テーマ：宇宙関連の新しいビジネスアイデアは？
> 
> ただし、以下のルールを守ること。
> 1. 最大ターン数以内に結論を出してください。
> 
> また、良いグループディスカッションにはいくつかの重要な要素があります。
> 以下にそのポイントを挙げます：
> ・明確な目的と目標: ディスカッションの目的や目標を事前に明確にしておくことにより、参加者全員が同じ方向を向いて議論を進めることができます。
> ・適切なファシリテーション: ファシリテーターが議論を円滑に進行し、全員が発言できるように配慮することが大切です。
> ・積極的な参加: 参加者全員が積極的に意見を出し合うことが求められます。異なる視点や意見が出ることで、より深い議論が可能になります。
> ・リスペクトとオープンマインド: 他人の意見を尊重し、異なる意見にも耳を傾ける姿勢が重要です。批判的な態度ではなく、建設的なフィードバックを心がけましょう。
> ・クリアなコミュニケーション: 明確で簡潔なコミュニケーションが求められます。曖昧な表現や専門用語の多用は避け、全員が理解できるように話すことが大切です。
> ・時間管理: 議論の時間を適切に管理し、各トピックに対して十分な時間を割り当てることが必要です。時間が足りなくならないように注意しましょう。
> 
> これらの要素を意識することで、効果的で有意義なグループディスカッションを行うことができます。
> 
>
> ---
>
> (student_1: user)
> はい、承知しました。それでは、テーマ「宇宙関連の新しいビジネスアイデアは？」についてのグループディスカッションを始めましょう。
> 
> まず、このディスカッションの目的を明確にしたいと思います。私たちの目標は、宇宙に関連した革新的で実現可能なビジネスアイデアを生み出すことです。
> 
> それでは、まず皆さんからアイデアを出していただきたいと思います。宇宙に関連して、どのようなビジネスの可能性が考えられるでしょうか？自由に発言してください。
>
> ---
>
> (student_2: user)
> 承知しました。ディスカッションの進行をサポートさせていただきます。これは1ターン目となります。残りのターン数は5です。次の参加者の方、アイデアをお願いいたします。
>
> ---
>
> (student_3: user)
> ありがとうございます。私からは「宇宙デブリ回収サービス」というアイデアを提案したいと思います。
> 
> 近年、地球周回軌道上の宇宙ゴミ（デブリ）が増加し、衛星や宇宙ステーションにとって大きな脅威となっています。このデブリを効率的に回収するサービスを提供することで、宇宙空間の安全性を高め、同時にビジネスチャンスを創出できると考えます。
> 
> 具体的には:
> 1. 小型の回収衛星を開発・打ち上げ
> 2. AIとロボット技術を活用してデブリを自動で検出・回収
> 3. 回収したデブリは地球に帰還させるか、再利用可能な資源として宇宙で活用
> 
> このサービスは、各国の宇宙機関や民間の衛星運用会社をクライアントとして想定しています。宇宙環境の保全と、持続可能な宇宙開発の両立を目指すビジネスモデルとなります。
> 
> 他の皆さんはどのようなアイデアをお持ちでしょうか？
>
> ---
>
> (student_4: user)
> 素晴らしいアイデアをありがとうございます。宇宙デブリ回収サービスは確かに重要な課題に取り組むビジネスですね。
> 
> 私からは「宇宙太陽光発電システム」を提案したいと思います。
> 
> 1. 宇宙空間に大規模な太陽光パネルを設置
> 2. 24時間365日、天候に左右されず発電可能
> 3. マイクロ波やレーザーで地上に電力を送信
> 4. クリーンで持続可能なエネルギー源として活用
> 
> このシステムは、地上の発電所よりも効率的かつ環境に優しい電力供給が可能です。初期投資は大きいですが、長期的には非常に有望なビジネスになると考えています。
> 
> エネルギー企業や政府機関を主要顧客として想定し、地球規模のエネルギー問題解決に貢献できるでしょう。
> 
> 皆さん、このアイデアについてどう思われますか？また、他にアイデアはありますか？
>
> ---
>
> (student_1: user)
> ファシリテーターとして、これまでの議論を整理し、次のステップに進めたいと思います。
> 
> 現在、2つの興味深いアイデアが提案されました：
> 1. 宇宙デブリ回収サービス
> 2. 宇宙太陽光発電システム
> 
> 両者とも、宇宙空間を活用しながら地球規模の問題解決に貢献する可能性を持つビジネスアイデアです。
> 
> ここで、これらのアイデアについて深掘りしたり、新たなアイデアを出したりする時間を設けたいと思います。特に以下の点について考えてみましょう：
> 
> - これらのビジネスの実現可能性
> - 潜在的な課題とその解決策
> - 市場規模や収益性
> - 社会的インパクト
> 
> また、まだアイデアを出していない方がいらっしゃいましたら、ぜひ新しい提案をお願いします。
> 
> それでは、これらの点を踏まえて、さらなる議論を進めていきましょう。どなたからでも結構ですので、ご意見やアイデアをお願いします。
>
> ---
>
> (student_2: user)
> Please continue.
>
> ---
>
> (student_2: user)
> Thank you for your input, student_1. This marks our 3rd turn in the discussion. We have 3 turns remaining. 
> 
> I'll now pass the conversation back to the group. Who would like to share their thoughts on the points raised by student_1, or propose a new idea for space-related businesses?
>
> ---
>
> (student_2: user)
> student_3:
> ありがとうございます。では、私から新しいアイデアを提案させていただきます。
> 
> 「宇宙観光事業」はいかがでしょうか？
> 
> 1. 軌道上ホテルの建設と運営
> 2. サブオービタル飛行による短時間の宇宙体験ツアー
> 3. 月面ツアーの企画・実施
> 
> この事業の特徴は以下の通りです：
> 
> - 実現可能性：技術的にはまだハードルが高いですが、SpaceXなどの民間企業の進歩を考えると、近い将来実現可能だと考えられます。
> - 潜在的課題：安全性の確保、高コスト、宇宙環境への影響などが挙げられます。
> - 市場規模：初期は富裕層向けの限定的な市場ですが、技術の進歩とコスト低下により、徐々に拡大すると予想されます。
> - 社会的インパクト：宇宙への一般人のアクセスを可能にし、宇宙開発への関心と支持を高める効果が期待できます。
> 
> この事業は、宇宙への夢を持つ多くの人々のニーズに応えつつ、宇宙開発技術の進歩にも貢献できると考えています。
> 
> 皆さん、このアイデアについてどう思われますか？また、先ほどの2つのアイデアと比較して、どのような長所・短所があると考えられますか？
>
> ---
>
> (student_4: user)
> student_4:
> 素晴らしいアイデアをありがとうございます、student_3さん。宇宙観光事業は確かに大きな潜在性を秘めていると思います。
> 
> 3つのアイデアを比較すると、それぞれに長所と短所があると考えられます：
> 
> 1. 宇宙デブリ回収サービス
> 長所: 既存の問題解決、環境保護に貢献
> 短所: 技術的難易度が高い、収益モデルの構築が難しい可能性
> 
> 2. 宇宙太陽光発電システム
> 長所: 持続可能なエネルギー源、大規模な社会的インパクト
> 短所: 初期投資が膨大、技術的課題が多い
> 
> 3. 宇宙観光事業
> 長所: 一般消費者向けで市場が大きい、宇宙への関心を高める
> 短所: 安全性の確保が課題、初期は富裕層に限定される
> 
> これらを踏まえて、私は「宇宙観光事業」と「宇宙デブリ回収サービス」を組み合わせた新しいビジネスモデルを提案したいと思います：
> 
> 「エコ宇宙観光事業」
> 
> - 宇宙観光ツアーの一環として、参加者が実際に宇宙デブリの回収作業を体験
> - 環境保護活動と冒険を組み合わせた新しい観光スタイルを提供
> - 宇宙デブリ問題への啓発と実際の解決を同時に行う
> 
> このモデルでは、観光収入でデブリ回収のコストを賄いつつ、参加者に独特の体験を提供できます。また、宇宙環境保護への貢献を通じて、社会的責任を果たすことができます。
> 
> 皆さん、このアイデアについてどう思われますか？さらに改善できる点や、新たな視点はありますか？
>
> ---
>
> (student_1: user)
> student_1:
> 素晴らしいアイデアの統合と発展ですね、student_4さん。「エコ宇宙観光事業」は非常に興味深いコンセプトです。これは現在の地球上でのエコツーリズムの概念を宇宙に拡張したものと言えるでしょう。
> 
> このアイデアをさらに発展させるために、いくつかの点を考慮してみましょう：
> 
> 1. 安全性：一般の観光客が宇宙デブリ回収に参加することの安全性をどのように確保するか。
> 
> 2. 教育的側面：この体験を通じて、参加者に宇宙環境や地球環境についての理解を深めてもらう方法。
> 
> 3. 技術開発：観光客が操作可能な、安全で効果的なデブリ回収装置の開発。
> 
> 4. マーケティング：この独特の体験をどのようにアピールし、需要を創出するか。
> 
> 5. 長期的な展望：このビジネスモデルをどのように発展させ、より多くの人々が参加できるようにするか。
> 
> これらの点について、皆さんのご意見をお聞かせください。また、この「エコ宇宙観光事業」を我々の最終的な提案とするか、それともさらに新しいアイデアを探るべきか、ご意見をお願いします。
> 
> 残り2ターンで結論を出す必要がありますので、建設的な議論をお願いします。
>
> ---
>
> (student_2: user)
> student_2:
> Thank you for your input, student_1. This marks our 5th turn in the discussion. We have 1 turn remaining to reach a conclusion.
> 
> I'll now pass the conversation back to the group. Please provide your final thoughts on the "Eco Space Tourism" idea or any other ideas you'd like to consider before we make our final decision.

</details>

#### 3-4-4. 考察

[3-2.の実験](#3-2-あらかじめ役割分担を行ってみる)と比較して、結論の具体性がやや向上したようにも見えますが、目立った変化は見受けられません。
これは、もともと「グループディスカッションしてください」という指示が暗黙的に良い議論にさせているのかもしれません。
よく言えば、この指示で十分に議論させることができるということなのでしょう。

締まらないですが、今回はここまでとさせていただきます．．．

## 4. まとめ

本記事では、マルチエージェントフレームワーク「AutoGen」を用いて新卒就活でよくあるグループディスカッション（就活GD）を再現し、複数のAIエージェントが協調して問題を解決する際の効果を観察しました。

以下に各実験の結果と考察をまとめます。

- **単一エージェント vs. 複数エージェントの比較**
単一エージェントは幅広いアイデアを提供する一方で、各アイデアの詳細な検討は行われませんでした。
複数エージェントの協力により、具体的で実現可能性の高いアイデアが導かれました。
これにより、「三人寄れば文殊の知恵」がAIでも成り立つことが示唆されました。
- **役割分担の効果**
あらかじめ役割分担を行うことで、議論の幅が広がり、より多様で包括的なビジネスアイデアが生まれました。
ただし、個々のアイデアの具体性や実現可能性についての深掘りがやや不足している点が見受けられました。
- **クラッシャーの影響**
クラッシャーの存在により、議論の効率が低下し、結論の質が低下しました。
これにより、議論の進行役（ファシリテーター）の重要性が再確認されました。
- **良いグループディスカッションの要素の導入**
良いグループディスカッションの要素を導入することで、結論の具体性がやや向上しました。
ただし、目立った変化は見られず、暗黙的に良い議論が行われている可能性が示唆されました。


総じて、複数のAIエージェントが協力して議論を行うことで、より具体的で実現可能性の高いアイデアが導かれることが確認できました。

また、役割分担や議論の進行役の重要性も明らかになりました。

今後は、さらに高度なプロンプトエンジニアリングやフレームワークの機能を利用することで、AIエージェントの協調効果を最大化する方法を探っていきたいと思います。


:::note info
お読みいただきありがとうございました。
:::