Agentariumで作る！激辛カレーに取り憑かれたAIエージェントたちのマーケティング戦略

# ⚠️ この記事は実験的な内容です

この記事を読む前に、以下の点にご注意ください：

- **再現性について**
  - エージェント間の対話や結論は実行ごとに異なる可能性があります
  - 使用するLLMの特性により、同じ入力でも異なる出力が生成されることがあります
  - OpenAI APIやAgentariumの仕様変更により、動作が変わる可能性があります

- **推奨する使い方**
  - アイデア創出の補助として活用してください
  - 可能であれば同じ設定で複数回試してみることをお勧めします
  - 生成された結果は必ず人間が確認し、妥当性を評価してください

以下の内容は、「こういうことができるかもしれない」という可能性の提示であり、実務での動作を保証するものではありません。

## 1. なにが面白いのか？

- **激辛カレーブーム**  
  「辛いもの好き」「辛さに取り憑かれた人たち」が増え、飲食店やスーパーマーケットでも激辛コーナーが目立つようになってきました。
- **エージェント同士の自動議論**  
  Agentarium を使えば、複数のエージェントがそれぞれの役割・専門知識を生かして勝手に話し合い、結論をまとめてくれます。
- **マーケティング視点の取り込み**  
  単に「美味しい激辛カレー」を作るだけでなく、「どう商品化すれば市場で売れるか？」をマーケター視点で検討できるのがポイント。

  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/94750fc8-3d2b-44b8-473b-f5d24e534221.png)

---

## 2. Agentariumとは

[Agentarium](https://pypi.org/project/agentarium/) は、Python で簡単に「AIエージェント」を作り、複数のエージェント同士のやり取りを管理できるライブラリです。特徴としては：

- **複数エージェントの生成** (`Agent.create_agent()`)  
- **対話の送受信** (`talk_to()`)  
- **自動アクション** (`act()`: THINK / TALK をLLMが決める)  
- **履歴管理** (`get_interactions()`)  

などが挙げられます。OpenAI API や他の LLM プロバイダを接続して、高度な会話生成もできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/752e12e9-9f05-2f5d-fdd4-e73aee4ae8d9.png)


---

## 3. 3人のAIエージェントによる激辛マーケティング戦略

今回のサンプルでは、以下の3人を登場させます。

1. **SpiceChef**  
   - 激辛カレーの調理にこだわるシェフ。新しいスパイス配合アイデアを常に探求している。
2. **FlavorScientist**  
   - 辛味成分や香りの化学を研究するフレーバーサイエンティスト。辛さと旨味のバランスに詳しい。
3. **CurryMarketer**  
   - カレーの販促やパッケージ戦略を担当。ニュースで「激辛ブーム」が盛り上がっていることを把握し、市場での売り出し方を検討したい。

### 全体の流れ
1. **SpiceChef** と **FlavorScientist** が先に「どのようなスパイス配合で激辛を演出できるか」を議論。  
2. その結論を **FlavorScientist** が **CurryMarketer** に伝え、流行の激辛ブームをどうマーケティングに生かすか意見交換。  
3. 最後にエージェントたちのやり取りログを確認し、得られたアイデアを活用。

---

## 4. コード例

```mermaid
sequenceDiagram
    participant SC as SpiceChef
    participant FS as FlavorScientist
    participant CM as CurryMarketer

    Note over SC,CM: Phase 1: スパイス配合の検討
    SC->>FS: 激辛と旨味の両立について質問
    activate FS
    FS-->>SC: 化学的な観点からアドバイス
    deactivate FS
    
    Note over SC,CM: Phase 2: 科学的分析
    SC->>FS: スパイス配合の提案
    activate FS
    FS-->>SC: 味覚への影響分析
    deactivate FS
    
    Note over SC,CM: Phase 3: マーケティング戦略
    FS->>CM: 開発された配合の説明
    activate CM
    CM-->>FS: 市場性の分析
    CM-->>FS: 販促戦略の提案
    deactivate CM

    Note over SC,CM: 履歴管理
    Note over SC,CM: get_interactions()で全対話を記録
```

以下、Google Colab で試すことを想定したサンプルです。

```bash
!pip install agentarium
```

```python
import os
# 必要なら OpenAI APIキーを設定
os.environ["OPENAI_API_KEY"] = "sk-xxxxx..."

from agentarium import Agent

def main():
    # 1. エージェントを日本語で作る。激辛ブームを意識した occupation / bio を設定
    SpiceChef = Agent.create_agent(
        name="SpiceChef",
        occupation="激辛カレーシェフ",
        bio="辛さにこだわりを持ち、独自のスパイス配合を日々研究。"
    )
    FlavorScientist = Agent.create_agent(
        name="FlavorScientist",
        occupation="フレーバーサイエンティスト",
        bio="辛味物質の化学特性や、旨味の引き立て方を知る研究者。"
    )
    CurryMarketer = Agent.create_agent(
        name="CurryMarketer",
        occupation="カレーマーケター",
        bio=(
            "カレー商品の販促や戦略を担当。"
            "ニュースによると激辛ブームが熱いと感じており、"
            "これをビジネスに活かせないか日々模索。"
        )
    )

    # 2. まず SpiceChef -> FlavorScientist で激辛アイデアを議論
    SpiceChef.talk_to(
        FlavorScientist,
        "最近、激辛マニアが増えてるみたいなんだけど、辛さと旨味の両立はどうアプローチすればいい？カレーのレシピ案を考えてほしい。"
    )
    for _ in range(3):
        SpiceChef.act()
        FlavorScientist.act()

    # 3. 要約を SpiceChef に依頼してみる (ask() が利用可能な場合)
    chef_summary = SpiceChef.ask("今の話し合いを手短にまとめて。重要なポイントと結論を教えて。")

    # 4. FlavorScientist -> CurryMarketer に話をつなぎ、マーケ的視点を取り入れる
    FlavorScientist.talk_to(
        CurryMarketer,
        f"SpiceChefとの結論をまとめると:\n{chef_summary}\nこの激辛ブームをどう活かすべきか、一緒に考えない？"
    )
    for _ in range(3):
        FlavorScientist.act()
        CurryMarketer.act()

    # 5. 最後にエージェントたちのやり取り履歴を表示
    print("=== SpiceChef's interactions ===")
    for i in SpiceChef.get_interactions():
        print(i)

    print("\n=== FlavorScientist's interactions ===")
    for i in FlavorScientist.get_interactions():
        print(i)

    print("\n=== CurryMarketer's interactions ===")
    for i in CurryMarketer.get_interactions():
        print(i)

if __name__ == "__main__":
    main()
```

エラーが発生することがありますが、複数回実行すると成功するケースもあるため、エージェントへの入力情報を調整したり、しばらく時間をおいて再度試してみてください。


出力例:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/76862e84-497e-cfab-0c2c-7912395af3fb.png)

# 出力例：エージェント間の対話サマリー

```text
# 出力例：エージェント間の対話サマリー

## カレーレシピの開発ポイント
1. **材料のバランス**
  - トマトの活用：辛さを和らげる酸味の効果
  - ココナッツミルク：クリーミーさによる全体のバランス調整

2. **スパイスの組み合わせ**
  - 香り付け：クミン（小さじ1）、コリアンダー（小さじ1.5）
  - 辛味：チリパウダー、カイエンペッパー
  - 旨味：ガーリック、ジンジャー

3. **調理のポイント**
  - 最初にスパイスを炒めて香りを引き出す
  - 材料の投入順序を工夫

## 対話の特徴
- 具体的なスパイスの分量まで踏み込んだ議論
- 材料の特性（酸味、クリーミーさ）を活かした配合
- 調理手順についての実践的な提案

注）この出力例は1回の実行結果であり、再現性は保証されません。
```
---

## 5. 応用アイデア

1. **複数のマーケターを用意する**  
   地域限定の激辛イベントに詳しいマーケター、海外輸出の専門家などを増やしてみると、より多彩な議論が期待できます。

2. **ユーザーエージェント**  
   たとえば「自分」を表すエージェントを追加し、「体調に合わせたレシピを」「そんなに辛いのは無理だけど興味ある」などと要望を入れることで、よりパーソナルな対話が可能になります。

3. **辛さ度合いの調整**  
   「スコヴィル値」を指標として扱うなど、辛味の度合いを細かく設定して議論させると、さらにリアリティが増すかもしれません。

4. **Agentariumのチェックポイント機能**  
   長時間の議論を行いたい場合、途中で状況を保存（Checkpoint）し、後から再開することもできます。

---

## 6. まとめ

- **Agentarium** を使えば、激辛カレーに熱狂するエージェントたちが自動的に議論を進める環境を簡単に作れます。
- `talk_to()` と `act()` を活用するだけで、**スパイス配合→味の調整→マーケティング戦略**といった流れをシミュレーション可能。
- 最近のニュースでも話題の**激辛ブーム**をどう商品化するか、エージェントのアイデアを参考にしてみてはいかがでしょうか。

辛さを求める人たちのニーズに応えるには、味のバランスや訴求方法など多面的な検討が必要です。こうしたマルチエージェントの議論システムを使えば、**ちょっとした研究や試作段階**にも役立つヒントが得られるかもしれません。ぜひ試してみてください！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/0839e0c0-02b3-023d-748d-53a418225a7c.png)


## 実装例のノートブック
Agentarium_Spicy_Curry_Strategy.ipynb

```json
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f6023f73",
   "metadata": {},
   "source": [
    "# Agentariumで作る！激辛カレーに取り憑かれたAIエージェントたちのマーケティング戦略"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1421f4c4",
   "metadata": {},
   "source": [
    "## サンプルコード"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4e331cd6",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install agentarium"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "adeb6a81",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "# 必要なら OpenAI APIキーを設定\n",
    "os.environ[\"OPENAI_API_KEY\"] = \"sk-xxxxx...\"\n",
    "\n",
    "from agentarium import Agent\n",
    "\n",
    "def main():\n",
    "    # 1. エージェントを日本語で作る。激辛ブームを意識した occupation / bio を設定\n",
    "    SpiceChef = Agent.create_agent(\n",
    "        name=\"SpiceChef\",\n",
    "        occupation=\"激辛カレーシェフ\",\n",
    "        bio=\"辛さにこだわりを持ち、独自のスパイス配合を日々研究。\"\n",
    "    )\n",
    "    FlavorScientist = Agent.create_agent(\n",
    "        name=\"FlavorScientist\",\n",
    "        occupation=\"フレーバーサイエンティスト\",\n",
    "        bio=\"辛味物質の化学特性や、旨味の引き立て方を知る研究者。\"\n",
    "    )\n",
    "    CurryMarketer = Agent.create_agent(\n",
    "        name=\"CurryMarketer\",\n",
    "        occupation=\"カレーマーケター\",\n",
    "        bio=(\n",
    "            \"カレー商品の販促や戦略を担当。\"\n",
    "            \"ニュースによると激辛ブームが熱いと感じており、\"\n",
    "            \"これをビジネスに活かせないか日々模索。\"\n",
    "        )\n",
    "    )\n",
    "\n",
    "    # 2. まず SpiceChef -> FlavorScientist で激辛アイデアを議論\n",
    "    SpiceChef.talk_to(\n",
    "        FlavorScientist,\n",
    "        \"最近、激辛マニアが増えてるみたいなんだけど、辛さと旨味の両立はどうアプローチすればいい？\"\n",
    "    )\n",
    "    for _ in range(3):\n",
    "        SpiceChef.act()\n",
    "        FlavorScientist.act()\n",
    "\n",
    "    # 3. 要約を SpiceChef に依頼してみる (ask() が利用可能な場合)\n",
    "    chef_summary = SpiceChef.ask(\"今の話し合いを手短にまとめて。重要なポイントと結論を教えて。\")\n",
    "\n",
    "    # 4. FlavorScientist -> CurryMarketer に話をつなぎ、マーケ的視点を取り入れる\n",
    "    FlavorScientist.talk_to(\n",
    "        CurryMarketer,\n",
    "        f\"SpiceChefとの結論をまとめると:\\n{chef_summary}\\nこの激辛ブームをどう活かすべきか、一緒に考えない？\"\n",
    "    )\n",
    "    for _ in range(3):\n",
    "        FlavorScientist.act()\n",
    "        CurryMarketer.act()\n",
    "\n",
    "    # 5. 最後にエージェントたちのやり取り履歴を表示\n",
    "    print(\"=== SpiceChef's interactions ===\")\n",
    "    for i in SpiceChef.get_interactions():\n",
    "        print(i)\n",
    "\n",
    "    print(\"\\n=== FlavorScientist's interactions ===\")\n",
    "    for i in FlavorScientist.get_interactions():\n",
    "        print(i)\n",
    "\n",
    "    print(\"\\n=== CurryMarketer's interactions ===\")\n",
    "    for i in CurryMarketer.get_interactions():\n",
    "        print(i)\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    main()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a033c611",
   "metadata": {},
   "source": [
    "## ノートブックの説明"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0727be5",
   "metadata": {},
   "source": [
    "このノートブックでは、Agentariumを使用して激辛カレーに関する議論をシミュレートします。エージェントたちが自律的に会話を進め、激辛ブームを反映したアイデアを生成します。"
   ]
  }
 ],
 "metadata": {},
 "nbformat": 4,
 "nbformat_minor": 5
}
```