ChatGPT o3 さんに聞いてみました
1. OpenAIの公式スタンス
- **o3 は「reasoning model(推論モデル)」**という位置づけです。
- ただし o3 からは agentic tool use――ChatGPT 内のすべてのツール(Web 検索・Python・画像生成など)を自律的に組み合わせて使える——が可能になり、OpenAI は「より agentic な ChatGPT への一歩」と表現しています。 (Introducing OpenAI o3 and o4-mini | OpenAI)
- 完全な agent と呼ばず “step toward” と留めている理由は、
- 長時間にわたる継続タスクやスケジューリングなど、本格的な自律性(persistent goals, long-term memory, 外部 API 呼び出しの継続実行など)はまだ限定的。
- エージェント基盤としては Responses API / Agents SDK を別に提供し、そこに o-シリーズを「頭脳」として組み込む設計を想定しているため。 (New tools for building agents | OpenAI)
2. 「モデル」と「エージェント」の整理
推論モデル (o3等) | エージェント (Deep Research, Operator など) | |
---|---|---|
主体 | 1 つの LLM | LLM + ツール群 + オーケストレータ |
自律性 | 1 プロンプト内で完結(ツールは使えるが外部からの再呼び出しは不要) | マルチステップで外部イベントを待ち受けたり、サブエージェントを生成したり |
状態保持 | 会話コンテキスト(数十 k token) | 永続メモリ・ジョブキュー・DB など外部ストレージを併用 |
例 | ChatGPT (o3) | Deep Research (Research Agent) ([OpenAI launches ‘deep research’ tool that it says can match research analyst |
3. o3 の “考えて動く” サイクルは ReAct パラダイム
研究論文 ReAct: Synergizing Reasoning and Acting in Language Models で定義された手法とほぼ同型です。 (ReAct: Synergizing Reasoning and Acting in Language Models)
Thought → Action(tool) → Observation → …(ループ)
- Thought / Reasoning(思考)
- 内部チェーン・オブ・ソートで現状を整理し、次に何をすべきか決定
- Action(ツール呼び出し)
web.search()
やpython.execute()
など具体的な外部ツールを実行
- Observation(観察)
- ツールの戻り値を読み取り、再度 Thought にフィードバック
- (必要に応じて)Reflection / Plan 更新
OpenAI は RL で when / how to use tools を学習させており、「適切なタイミングで最小回数のツールを選ぶ」能力が強化されています。 (Introducing OpenAI o3 and o4-mini | OpenAI)
4. 各ステップを何と呼ぶか?――実務での用語例
レイヤ | 代表的な呼称 | 日本語イメージ |
---|---|---|
内部思考 | Thought, Reasoning step, Chain-of-thought | 推論・思考 |
ツール実行 | Action, Tool call, Invoke | ツール呼び出し |
結果取得 | Observation, Tool result | 観察・結果受領 |
再評価 | Reflection, Plan update | 内省・プラン更新 |
5. まとめ
- o3 自体は「推論モデル」だが、内部で ReAct ループを回しながらツールを“エージェント的”に活用できる。
- OpenAI は本格的なエージェント機能を Agents SDK / Responses API に切り出し、o-シリーズを組み込んで開発者が自由に拡張できる形を推進中。
- したがって「o3 はエージェントか?」と問われると、
- モデル単体: 推論モデル(agent-ready)
- Deep Research など: o3 を中核とする実装済みエージェント
- ツールを挟むたびに「Thought→Action→Observation」を繰り返す構造は ReAct と呼ぶのが通例で、各ステップは上表のように呼ぶと整理しやすいです。
以下は ChatGPT (o-シリーズ)がツールを使う際に UI 上で一瞬ずつ表示する主なステータス文言と、それぞれで内部的に起きている処理の対比です。あくまで表出ラベルなので多少前後したり省略される場合がありますが、概ね次の流れを想定しておくと観察しやすくなります。
表示ラベル(例) | 内部ステップ | ReAct 相当 | 具体的にやっていること |
---|---|---|---|
思考中 | Thought / Reasoning | Thought | 会話履歴+自身の知識 を元に、次に取るべき行動(ツール呼び出し or 直接回答)の計画を立てている。CO-T(Chain-of-Thought)の生成フェーズ。 |
調査中 | Action: tool_search | Action | 計画に従い Web 検索ツールやドキュメント検索などを呼び出して外部情報を取得している。検索クエリ生成と API 呼び出しを含む。 |
Web の検索(または web.run と表示) | └ 同上(詳細表示) | Action | 検索ツールが実際に動いている最中。クエリ送信→結果ページ取得→必要ならスクロールやリンククリックを自動で続行。 |
整理中 | Observation → 次の Thought | Observation → Thought | 取得した検索結果やツールの戻り値を読み込み、必要部分を抽出・要約し、次の推論にフィードバック。ここで「まだ情報が足りない」と判断すれば再び 調査中 に戻る。 |
説明の提供(または 回答を生成しています…) | Final Thought → Compose | —(最終生成) | すべての情報がそろい回答方針が固まった段階。Markdown 構造整形、引用の整理、翻訳、コード生成などを行い、最終メッセージを組み立てている。 |
一連の遷移イメージ
- 思考中
- → 必要と判断 → 調査中 → Web の検索(複数回ループ可)
- → 整理中(観察・要約・内省)
- → 十分なら 説明の提供 → 出力
補足
- ReAct ループに対応させると 「Thought → Action → Observation → (Reflection) → Thought …」のサイクルをラベルで可視化しているだけなので、これらを見ているとモデルがどこで「考え」、どこで「実際にツールを動かし」、どこで「結果を要約」しているかが把握できます。
- ラベルは UI 翻訳の都合で多少変わることがあります(例:“思考中”→“考えています…”、“Web の検索”→“Web検索中” など)。
これを頭に置いてログを眺めると 「今は検索結果を取ってきている段階だな」「そろそろ回答をまとめ始めたな」 とモデルの内部状態を推測しやすくなります。
コメントを残す