ReAct プロンプトで Gemini に Google Opal の検証方法をまとめてもらい、実際に検証してみた
こんにちは。組織開発室に所属し、組織開発を担当しているてぃーびーです。
今回は Gemini で ReAct プロンプトを利用して、複雑なタスクを段階的に扱う方法を試してみます。
ReAct プロンプトとは
ReAct プロンプトとは、推論 ( Reasoning )と 行動 ( Acting ) を交互に実行させることで、複雑なタスクを段階的かつ動的に解決させるためのプロンプト手法です。
この手法を使うと LLM は、単に質問に応えるだけではなく、以下の3つのステップを繰り返しながら目標を達成しようとします。
- Thought(推論): 次に何をすべきか、なぜその行動を取るべきかを論理的に考えます
- Action(行動): 外部ツールの呼び出しや、特定のステップの実行といった具体的な行動を決定し、実行します
- Observation(観察): 行動の結果として外部ツールから得られた情報や、実行したステップの結果を観察し、次の思考の材料とします
このプロセスを用いることで単に質問しただけの場合よりも信頼度の高い回答をしてくれるようになります。
ReAct プロンプトのメリット
| メリット | 説明 |
|---|---|
| 情報の正確性・信頼性の向上 | 外部ツール(検索など)を利用した情報収集と、それを踏まえた推論を行うため、LLMが持つ内部知識の誤りや古い情報に頼らず、最新かつ正確な情報に基づいた回答を導き出しやすくなります。 |
| 複雑なタスクの解決 | 長いステップが必要なタスクや、外部情報が必要なタスクに対して、計画的かつ動的に対応できるため、問題解決能力が大幅に向上します。 |
| 動的な振る舞い | 状況に応じて必要なツールや情報をLLM自身が判断・選択し、行動を実行できるため、質問内容や環境の変化に柔軟に対応できます。 |
ReAct プロンプトが有効な場面
ReActプロンプトが有効なのは、以下の2つの要素を満たす課題です。
- 段階的な処理(推論)が必要な課題: 一度に出力が完了せず、複数のステップに分けて論理的な思考や計算が求められる課題
- 外部情報/機能(行動)が必要な課題: LLMの内部知識だけでは解決できず、Web検索、計算、API呼び出しなどの外部ツールへのアクセスが必要となる課題
ReAct プロンプトで Google Opal の検証手順を提案してもらう
入力
あなたは、ユーザーの質問に対し、利用可能なツールを使って段階的に論理的な回答を導き出すAIエージェントです。
回答を出す際は、必ず以下のフォーマットに従い、最終的な回答を得るまで Thought / Action / Observation を繰り返してください。
利用可能なツール:
1. Search(query): 最新の情報をウェブで検索する
2. Google Drive: Google Drive内の文書情報を検索する
3. Calculator(expression): 正確な計算を行う
4. Gmail : Gmail のメールを検索する
最終的な回答が得られたら、"Final Answer: [回答内容]" の形式で出力してプロセスを終了してください。
## 回答フォーマットの例
Question: 今日の東京の天気と、その気温が華氏で何度になるかを教えてください
Thought:
まず、現在の東京の天気と気温をSearchツールで調べる必要がある。次に、得られた気温(摂氏)をCalculatorツールを使って華氏に変換する必要がある。
Action:
Search[現在の東京の天気と気温]
Observation:
東京の天気は晴れ、気温は25℃です。
Thought:
気温25℃を華氏に変換する必要がある。変換式は F = C × 1.8 + 32 である。Calculatorツールを使用する。
Action:
Calculator[25 * 1.8 + 32]
Observation:
77.0
Thought:
すべての情報(天気、摂氏、華氏)が得られたので、最終的な回答を構成する。
Final Answer:
今日の東京の天気は晴れで、気温は摂氏25℃です。これは華氏で77度になります。
## 質問
Google Labs で提供している Opal に関して、基本機能を最低限検証するために読むべき公式文書、おすすめの検証内容、検証手順を教えてください。
出力
Thought:
ユーザーは Google Labs で提供されている **Opal** について、基本機能を検証するために読むべき公式文書、おすすめの検証内容、および検証手順を知りたいようだ。
Opalは比較的新しい可能性があり、Google Labs の提供であるため、まずは **Search** ツールを使って **Google Labs Opal** の公式情報、特に文書や機能について検索する必要がある。
Action:
google:search{queries:[\<ctrl46\>Google Labs Opal 公式文書\<ctrl46\>,\<ctrl46\>Google Labs Opal 基本機能 検証\<ctrl46\>]}
Thought:
検索結果から、Opalは Google Labs から提供されているノーコードの AI ミニアプリ開発ツールであり、現在は無料で利用できる実験的なベータ版であることがわかった。
1. **読むべき公式文書**: 検索結果1.1によると、公式ページからのログインが可能で、**「公式ドキュメント」が存在するが、具体的なURLは示されていない。また、Discord でのユーザーコミュニティが案内されているとのことなので、公式ドキュメントを探すには「Google Labs Opal 公式ドキュメント URL」や「Opal Discord」などで再検索するのが有効かもしれない。ただし、最低限の検証であれば、Opalの公式ページにアクセスし、ログイン後に提供されているチュートリアルやヘルプセクション**、そして検索結果1.3にある\*\*「テンプレートギャラリー」\*\*が実質的な「まず読むべき文書/コンテンツ」となる。
2. **おすすめの検証内容**: 検索結果1.3、2.1、2.2から、Opalの基本的な機能として以下のものが挙げられる。
* **既存テンプレートの利用とカスタマイズ**: 「会議の要約」「マーケティングコピーの作成」(1.3)、「記事作成支援」「学習補助(YouTube要約)」「SNS運用」(2.1)など。
* **マルチソースからの情報抽出・サマリー生成**: ニュース記事URLやPDFからの「全体のサマリー」「重要ポイント抽出」(1.3)。
* **ノーコードでのアプリ作成フロー検証**: ブロックを追加し、線でつなぎ、実行(Preview/Start)する手順(2.2)。
* **多様な生成AI機能の検証**: テキスト生成(記事、コピー)、要約、クイズ生成、さらには音声生成や画像生成(3D/2D図面)の可能性(2.1, 2.2)。
* 最低限の検証としては、\*\*「既存テンプレートの実行」**と、**「簡単なカスタムアプリの作成(テキスト生成/要約)」\*\*が良いだろう。
3. **検証手順**: 検索結果2.2に作成手順の一部が記載されている。
* アカウント登録・ログイン (1.1)
* テンプレートからの作成、またはカスタムアプリの作成(ブロックの追加と接続)(1.3, 2.2)
* 「Preview」タブに切り替え、「Start」で実行し動作を確認 (2.2)
* 「Share App」から共有 (2.2)
以上の情報を整理し、具体的な検証内容と手順を構成する。公式文書の直接的なURLは不明だが、公式ドキュメント(チュートリアル、ヘルプ)はアプリ内で見つけるべきであると結論付ける。
Action:
google:search{queries:[\<ctrl46\>Google Labs Opal 公式ドキュメント URL\<ctrl46\>]}
Thought:
公式ドキュメントの直接的なURLは提供されていないが、**Opal 公式 URL** が `https://opal.withgoogle.com/` であること、そしてログイン後にダッシュボードからアプリ作成を開始し、エディタ内でノードベースのワークフローを作成できることが確認できた。
この情報と前回の検索結果を組み合わせて、ユーザーの質問に包括的に回答できる。
1. **読むべき公式文書**:
* **Opal 公式サイト** (`https://opal.withgoogle.com/`) にアクセスし、ログイン後に表示される**ダッシュボード、チュートリアル、またはヘルプセクション**。
* アプリ内の\*\*「テンプレートギャラリー」\*\*で既存のワークフローを理解する。
2. **おすすめの検証内容**:
* **テンプレートアプリの実行とカスタマイズ**(ノーコードAIアプリの動作体験)。
* **カスタムアプリの作成**(ノードベースエディタの操作検証)。
* **マルチステップワークフローの作成**(AI機能の組み合わせ検証)。
3. **検証手順**:
* 公式サイトにアクセスし、Googleアカウントでログイン。
* テンプレートアプリを実行・編集する。
* カスタムアプリを新規作成し、ノード(Input、AIモデル、Outputなど)を接続する。
* アプリを「Preview」タブで実行し、動作を確認する。
* 「Share app」機能でアプリを公開・共有する。
これで、論理的かつ具体的な回答を構成するための情報が揃った。
Final Answer:
Google Labs で提供されているノーコードAIミニアプリ開発ツール **Opal** の基本機能を最低限検証するための情報は以下の通りです。
-----
### 1\. 読むべき公式文書・コンテンツ
Opalは現在、Google Labs から提供されているベータ版であり、専用の技術ドキュメントサイトではなく、**アプリ内コンテンツ**が実質的な学習リソースとなります。
* **Opal 公式サイト(アプリ本体)**:
* **URL**: `https://opal.withgoogle.com/`
* Google アカウントでログイン後、アプリ内で提供されている**初期チュートリアル**や**ヘルプセクション**が、Opalの概念、インターフェース、ノードベースのワークフロー構築方法を理解する上で最も重要です。
* **テンプレートギャラリー**:
* ダッシュボードからアクセスできる\*\*「テンプレートギャラリー」**は、会議要約やマーケティングコピー生成といった具体的なユースケースの構造(ワークフロー)を理解するための**「生きた公式文書」\*\*として機能します。
-----
### 2\. おすすめの検証内容
Opalの**ノーコードでのAIアプリ構築能力**を理解するため、以下の2つの内容を検証することを推奨します。
| 検証項目 | 目的 | 期待される動作 |
| :--- | :--- | :--- |
| **A. 既存テンプレートの実行と編集** | AIミニアプリの動作とワークフローの構成を素早く把握する。 | 既存の「記事作成支援」や「YouTube要約」テンプレートを実行し、期待通りの出力が得られるか確認する。プロンプトを少し変更し、動作の変化を検証する。 |
| **B. マルチステップ・カスタムアプリの作成** | ノードベースのエディタ操作と、AI機能の組み合わせ能力を検証する。 | \*\*「インプット $\to$ 要約(AIノード) $\to$ 要約を基にしたクイズ生成(別のAIノード) $\to$ アウトプット」\*\*という複数のAIノードを直列に繋げたカスタムワークフローを作成し、実行する。 |
| **C. アプリの共有と公開** | 作成したアプリを他人と共有できるか検証する。 | アプリを完成させた後、「Share app」機能でリンクを発行し、そのリンクから第三者視点でアプリが正しく実行できるかを確認する。 |
-----
### 3\. 検証手順
以下の手順で、Opalの基本的な機能を順に検証してください。
1. **アクセスとログイン**:
* Opal 公式サイト `https://opal.withgoogle.com/` にアクセスし、Google アカウントでログインします。
2. **テンプレートの実行と学習**:
* ダッシュボードから**テンプレート**を選択し、アプリの編集画面(エディタ)に入ります。
* ワークフロー内の**ノード(ブロック)の役割(Input、AI Model、Outputなど)と、それらが線で接続**されている構造を確認します。
* 「Preview」タブに切り替え、「Start」ボタンを押してテンプレートアプリを実行し、動作を確認します。
3. **カスタムアプリの作成(ノードベース検証)**:
* ダッシュボードに戻り、新しいアプリを新規作成します。
* **テキスト入力ノード**、**AIノード**(例: テキスト生成)、**出力ノード**をキャンバスに追加します。
* 各ノードの\*\*設定(プロンプトやパラメータ)\*\*を行い、ノード間を接続してワークフローを完成させます。
4. **動作確認とデバッグ**:
* アプリを「Preview」タブで実行し、入力に対して想定通りの出力が得られるか確認します。
* エラーが発生した場合、エディタに戻ってノードの設定や接続を確認し、デバッグを行います。
5. **共有機能の検証**:
* 完成したアプリの\*\*「Share app」\*\*をクリックし、「Publish your Opal」をオンにして公開URLを取得します。
* 取得したURLにアクセスし、ログインしていない状態でもアプリが実行可能であることを確認します。
提案内容を試してみる
1. アクセスとログイン:
* Opal 公式サイト `https://opal.withgoogle.com/` にアクセスし、Google アカウントでログインします。
ログインしました。
※業務用のPCやアカウントではなく、自宅のPCで個人アカウントを使って検証しました。
2. テンプレートの実行と学習:
* ダッシュボードから**テンプレート**を選択し、アプリの編集画面(エディタ)に入ります。
* ワークフロー内の**ノード(ブロック)の役割(Input、AI Model、Outputなど)と、それらが線で接続**されている構造を確認します。
* 「Preview」タブに切り替え、「Start」ボタンを押してテンプレートアプリを実行し、動作を確認します。
Blog Post Writer というブログ記事を自動で生成してくれるアプリを試してみました。
内部実装としては、以下のような感じです。
- ユーザーにトピックの入力を促す
- 入力内容を下にトピックの内容をWeb検索する
- タイトルとWeb検索結果を元にアウトラインを作成する
- アウトラインを元に詳細を作成する
- トピックにあったバナー画像を生成する
- ブログを表示する
実際に、心理的安全性と入力したら、心理的安全性に関する記事を出力してくれました。
タイトル、見出し、本文、アイキャッチ画像のすべてが自動生成されています。
なお、タイトル画像は存在してなさそうな中国語っぽい文字と日本語が入り混じったものになっていました。
3. カスタムアプリの作成(ノードベース検証):
* ダッシュボードに戻り、新しいアプリを新規作成します。
* **テキスト入力ノード**、**AIノード**(例: テキスト生成)、**出力ノード**をキャンバスに追加します。
* 各ノードの\*\*設定(プロンプトやパラメータ)\*\*を行い、ノード間を接続してワークフローを完成させます。
感情診断をするアプリを作りました。

4. 動作確認とデバッグ:
* アプリを「Preview」タブで実行し、入力に対して想定通りの出力が得られるか確認します。
* エラーが発生した場合、エディタに戻ってノードの設定や接続を確認し、デバッグを行います。
入力画面

結果画面

無事動作しました。
ちなみに、サンプルとして以下のようなテキストを入力したら、それぞれ想定した結果になりました。
- 結果 ポジティブ : 彼の提案はチームに新しい風を吹き込み、プロジェクトの成功に大きく貢献した
- 結果 中立 : 会議は予定通り14時に開始され、3つの議題について話し合われた
- 結果 ネガティブ : 報告書には複数の誤りが含まれており、そのデータは信頼性に欠けるものだった
なお、このサンプル入力内容も Gemini で生成しています。
5. 共有機能の検証:
* 完成したアプリの\*\*「Share app」\*\*をクリックし、「Publish your Opal」をオンにして公開URLを取得します。
* 取得したURLにアクセスし、ログインしていない状態でもアプリが実行可能であることを確認します。
公開用URLから動作することが確認できました。
ただ、ログインしていないと使えなかったので、
- 取得したURLにアクセスし、ログインしていない状態でもアプリが実行可能であることを確認します。
の部分はハルシネーションかも?






