Skip to content

Commit ef34644

Browse files
committed
docs: translate multi_agent page
1 parent 122165a commit ef34644

File tree

3 files changed

+138
-69
lines changed

3 files changed

+138
-69
lines changed

docs/ja/multi_agent.md

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,61 @@ search:
44
---
55
# エージェントオーケストレーション
66

7-
オーケストレーションとは、アプリ内でのエージェントの流れのことです。どのエージェントをどの順番で実行し、その後何をするかをどう決めるのか。エージェントをオーケストレーションする主な方法は 2 つあります。
7+
オーケストレーションとは、アプリ内でのエージェントの流れを指します。どのエージェントが、どの順序で実行され、次に何が起こるかをどのように決定するか、ということです。エージェントをオーケストレーションする主な方法は 2 つあります。
88

9-
1. LLM に意思決定を任せる: これは、 LLM の知性を用いて計画・推論し、それに基づいて次に取るべきステップを決めます
10-
2. コードでオーケストレーションする: コードでエージェントの流れを決定します
9+
1. LLM に意思決定させる: LLM の知性を使って計画・推論を行い、それに基づいてどのステップを取るかを決定します
10+
2. コードでオーケストレーションする: コードによってエージェントの流れを決定します
1111

12-
これらのパターンは組み合わせ可能です。以下にそれぞれのトレードオフを説明します
12+
これらのパターンは組み合わせて使えます。それぞれにトレードオフがあり、以下で説明します
1313

1414
## LLM によるオーケストレーション
1515

16-
エージェントは、指示、ツール、ハンドオフを備えた LLM です。つまり、オープンエンドなタスクが与えられたとき、 LLM はタスクへの取り組み方を自律的に計画し、ツールを使って行動やデータ取得を行い、ハンドオフでサブエージェントにタスクを委譲できます。例えば、リサーチ用のエージェントには次のようなツールを持たせられます
16+
エージェントは、instructions、tools、ハンドオフを備えた LLM です。つまり、オープンエンドなタスクが与えられた場合、LLM はそのタスクへの取り組み方を自律的に計画でき、tools を使ってアクションを実行しデータを取得し、ハンドオフを使ってサブエージェントにタスクを委譲できます。たとえば、リサーチエージェントには次のようなツールを備えられます
1717

18-
- Web 検索によるオンライン情報の収集
19-
- ファイル検索と取得による独自データや接続先の探索
20-
- コンピュータ操作による PC 上でのアクション実行
21-
- データ分析のためのコード実行
22-
- 計画立案、レポート作成などに長けた専門エージェントへのハンドオフ
18+
- オンライン情報を見つけるための Web 検索
19+
- 独自データや接続先を検索するためのファイル検索と取得
20+
- コンピュータ上でアクションを実行するためのコンピュータ操作
21+
- データ分析を行うためのコード実行
22+
- 計画、レポート作成などに優れた専門エージェントへのハンドオフ
2323

24-
このパターンは、タスクがオープンエンドで LLM の知性に依存したい場合に有効です。ここで重要な戦術は次のとおりです。
24+
### SDK の中核パターン
2525

26-
1. 良いプロンプトに投資する。利用可能なツール、その使い方、動作すべきパラメーター範囲を明確にする。
27-
2. アプリを監視し、反復改善する。問題の発生箇所を把握し、プロンプトを改善する。
28-
3. エージェントに内省と改善を許可する。例: ループで実行し自己批評させる、あるいはエラーメッセージを与えて改善させる。
29-
4. 何でもできる汎用エージェントではなく、特定タスクに秀でた専門エージェントを用意する。
30-
5. [evals](https://platform.openai.com/docs/guides/evals) に投資する。これによりエージェントを訓練して、タスク遂行能力を高められます。
26+
Python SDK では、次の 2 つのオーケストレーションパターンが最もよく使われます。
27+
28+
| パターン | 仕組み | 最適な場面 |
29+
| --- | --- | --- |
30+
| Agents as tools | マネージャーエージェントが会話の制御を維持し、`Agent.as_tool()` を通じて専門エージェントを呼び出します。 | 1 つのエージェントに最終回答を担わせたい、複数の専門家の出力を統合したい、または共通のガードレールを 1 か所で適用したい場合。 |
31+
| ハンドオフ | トリアージエージェントが会話を専門エージェントへ振り分け、その専門エージェントがそのターンの残りでアクティブなエージェントになります。 | 専門エージェントに直接応答させたい、プロンプトを集中させたい、またはマネージャーが結果を説明せずに instructions を切り替えたい場合。 |
32+
33+
専門エージェントが限定的なサブタスクを支援すべきで、ユーザー向け会話を引き継ぐべきではない場合は **agents as tools** を使います。ルーティング自体がワークフローの一部であり、選ばれた専門エージェントに次のやり取りを担わせたい場合は **handoffs** を使います。
34+
35+
2 つを組み合わせることもできます。トリアージエージェントが専門エージェントにハンドオフし、その専門エージェントがさらに限定的なサブタスクのために他のエージェントをツールとして呼び出すことも可能です。
36+
37+
このパターンは、タスクがオープンエンドで、LLM の知性に依存したい場合に非常に有効です。ここで最も重要な戦術は次のとおりです。
38+
39+
1. 良いプロンプトに投資する。どのツールが利用可能か、どう使うか、どのパラメーター範囲内で動作すべきかを明確にします。
40+
2. アプリを監視し、反復改善する。どこで問題が起こるかを確認し、プロンプトを改善します。
41+
3. エージェントに内省と改善を許可する。たとえば、ループで実行して自己批評させる、またはエラーメッセージを与えて改善させます。
42+
4. どんなタスクにも対応する汎用エージェントを期待するより、1 つのタスクに優れた専門エージェントを用意します。
43+
5. [evals](https://platform.openai.com/docs/guides/evals) に投資する。これによりエージェントを改善するための訓練ができ、タスク性能を向上させられます。
44+
45+
このスタイルのオーケストレーションを支える SDK の基本コンポーネントを確認したい場合は、[tools](tools.md)[handoffs](handoffs.md)[running agents](running_agents.md) から始めてください。
3146

3247
## コードによるオーケストレーション
3348

34-
LLM によるオーケストレーションは強力ですが、コードによるオーケストレーションは速度・コスト・性能の面でタスクをより決定的かつ予測可能にします。一般的なパターンは次のとおりです。
49+
LLM によるオーケストレーションは強力ですが、コードによるオーケストレーションは、速度・コスト・性能の面でタスクをより決定的で予測可能にします。ここで一般的なパターンは次のとおりです。
50+
51+
- [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) を使い、コードで検査可能な適切な形式のデータを生成する。たとえば、タスクをいくつかのカテゴリーに分類するようエージェントに求め、そのカテゴリーに基づいて次のエージェントを選択できます。
52+
- 1 つの出力を次の入力に変換して複数エージェントを連結する。ブログ記事執筆のようなタスクを、リサーチ、アウトライン作成、記事執筆、批評、改善という一連のステップに分解できます。
53+
- 評価とフィードバックを行うエージェントと組み合わせて、タスク実行エージェントを `while` ループで実行し、評価側が出力が特定の基準を満たしたと言うまで続ける。
54+
- 複数エージェントを並列実行する。たとえば `asyncio.gather` のような Python の基本機能を使います。これは、相互依存しない複数タスクがある場合の高速化に有用です。
55+
56+
[`examples/agent_patterns`](https://github.com/openai/openai-agents-python/tree/main/examples/agent_patterns) に多数のコード例があります。
3557

36-
- [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) を使って、コードで検査できる適切な形式のデータを生成する。例えば、エージェントにタスクをいくつかのカテゴリーに分類させ、カテゴリーに基づいて次のエージェントを選ぶ。
37-
- 複数のエージェントを、前の出力を次の入力に変換して連結する。ブログ記事執筆のようなタスクを、リサーチ → アウトライン作成 → 本文執筆 → 批評 → 改善という一連のステップに分解する。
38-
- 評価とフィードバックを行うエージェントと、タスクを実行するエージェントを `while` ループで回し、評価者が基準を満たしたと判断するまで繰り返す。
39-
- 複数のエージェントを並列実行する(例: `asyncio.gather` のような Python の基本コンポーネントを使用)。相互依存しない複数タスクがある場合の高速化に有効。
58+
## 関連ガイド
4059

41-
[`examples/agent_patterns`](https://github.com/openai/openai-agents-python/tree/main/examples/agent_patterns) に複数のコード例があります。
60+
- 構成パターンとエージェント設定については [Agents](agents.md)
61+
- `Agent.as_tool()` とマネージャースタイルのオーケストレーションについては [Tools](tools.md#agents-as-tools)
62+
- 専門エージェント間の委譲については [Handoffs](handoffs.md)
63+
- 実行ごとのオーケストレーション制御と会話状態については [Running agents](running_agents.md)
64+
- 最小のエンドツーエンドなハンドオフ例については [Quickstart](quickstart.md)

0 commit comments

Comments
 (0)