Skip to content

Commit 4df07f0

Browse files
docs: update translated document pages (#2539)
1 parent b4d2850 commit 4df07f0

27 files changed

Lines changed: 2057 additions & 1745 deletions

docs/ja/human_in_the_loop.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ search:
44
---
55
# Human-in-the-loop
66

7-
human-in-the-loop (HITL) フローを使用すると、人が機微なツール呼び出しを承認または拒否するまで、エージェントの実行を一時停止できます。ツールは承認が必要なタイミングを宣言し、実行結果は保留中の承認を割り込みとして提示し`RunState` により決定後に実行をシリアライズして再開できます
7+
human-in-the-loop (HITL) フローを使用して、機密性の高いツール呼び出しを人が承認または拒否するまで、エージェントの実行を一時停止します。ツールは承認が必要なタイミングを宣言し、実行結果は保留中の承認を割り込みとして表面化し`RunState` により判断後に実行をシリアライズして再開できます
88

99
## 承認が必要なツールのマーキング
1010

11-
常に承認を要求するには `needs_approval``True` に設定するか、呼び出しごとに判定する async 関数を指定します。この callable は実行コンテキスト、解析済みのツール パラメーター、ツール呼び出し ID を受け取ります。
11+
`needs_approval``True` に設定すると常に承認が必要になります。あるいは、呼び出しごとに判断する async 関数を指定できます。呼び出し可能オブジェクトは、実行コンテキスト、パース済みのツール パラメーター、ツール呼び出し ID を受け取ります。
1212

1313
```python
1414
from agents import Agent, Runner, function_tool
@@ -35,19 +35,19 @@ agent = Agent(
3535
)
3636
```
3737

38-
`needs_approval`[`function_tool`][agents.tool.function_tool][`Agent.as_tool`][agents.agent.Agent.as_tool][`ShellTool`][agents.tool.ShellTool][`ApplyPatchTool`][agents.tool.ApplyPatchTool] で利用できます。ローカル MCP サーバーも、[`MCPServerStdio`][agents.mcp.server.MCPServerStdio][`MCPServerSse`][agents.mcp.server.MCPServerSse][`MCPServerStreamableHttp`][agents.mcp.server.MCPServerStreamableHttp]`require_approval` を通じて承認をサポートします。Hosted MCP サーバーは、`tool_config={"require_approval": "always"}` と任意の `on_approval_request` コールバックを指定した [`HostedMCPTool`][agents.tool.HostedMCPTool] を介して承認をサポートします。Shell および apply_patch ツールは、割り込みを出さずに自動承認または自動拒否したい場合に `on_approval` コールバックを受け付けます。
38+
`needs_approval`[`function_tool`][agents.tool.function_tool][`Agent.as_tool`][agents.agent.Agent.as_tool][`ShellTool`][agents.tool.ShellTool][`ApplyPatchTool`][agents.tool.ApplyPatchTool] で利用できます。ローカル MCP サーバーも、[`MCPServerStdio`][agents.mcp.server.MCPServerStdio][`MCPServerSse`][agents.mcp.server.MCPServerSse][`MCPServerStreamableHttp`][agents.mcp.server.MCPServerStreamableHttp]`require_approval` を通じて承認をサポートします。ホスト型 MCP サーバーは、`tool_config={"require_approval": "always"}` と任意の `on_approval_request` コールバックを備えた [`HostedMCPTool`][agents.tool.HostedMCPTool] により承認をサポートします。Shell apply_patch のツールは、割り込みを表面化せずに自動承認または自動拒否したい場合に `on_approval` コールバックを受け付けます。
3939

4040
## 承認フローの仕組み
4141

42-
1. モデルがツール呼び出しを出力すると、runner `needs_approval` を評価します。
43-
2. そのツール呼び出しに対する承認判断がすでに [`RunContextWrapper`][agents.run_context.RunContextWrapper] に保存されている場合(例: `always_approve=True` によるもの)、runner はプロンプトを出さずに続行します。呼び出しごとの承認は特定の呼び出し ID にスコープされます。将来の呼び出しを自動的に許可するには `always_approve=True` を使用します。
44-
3. それ以外の場合、実行は一時停止し、`RunResult.interruptions`(または `RunResultStreaming.interruptions`)に `agent.name``name``arguments` などの詳細を含む `ToolApprovalItem` エントリが入ります
42+
1. モデルがツール呼び出しを出力すると、runner `needs_approval` を評価します。
43+
2. そのツール呼び出しに対する承認判断がすでに [`RunContextWrapper`][agents.run_context.RunContextWrapper] に保存されている場合(例: `always_approve=True` による)、runner はプロンプト表示なしで処理を続行します。呼び出しごとの承認は特定の呼び出し ID にスコープされます。今後の呼び出しを自動的に許可するには `always_approve=True` を使用します。
44+
3. それ以外の場合、実行は一時停止し、`RunResult.interruptions`(または `RunResultStreaming.interruptions`)に `ToolApprovalItem` エントリが含まれます。そこには `agent.name``name``arguments` などの詳細が入ります
4545
4. `result.to_state()` で結果を `RunState` に変換し、`state.approve(...)` または `state.reject(...)` を呼び出し(任意で `always_approve` または `always_reject` を渡します)、その後 `Runner.run(agent, state)` または `Runner.run_streamed(agent, state)` で再開します。
46-
5. 再開された実行は中断した箇所から継続し、新たに承認が必要になればこのフローに再度入ります
46+
5. 再開された実行は中断地点から続行し、新たな承認が必要になればこのフローに再び入ります
4747

4848
## 例: 一時停止、承認、再開
4949

50-
以下のスニペットは JavaScript HITL ガイドを踏襲しています。ツールが承認を必要としたときに一時停止し、状態をディスクに永続化し、それを再読み込みして、判断を収集した後に再開します。
50+
以下のスニペットは JavaScript HITL ガイドと同様に、ツールが承認を必要としたら一時停止し、状態をディスクに永続化して再読み込みし、判断を収集した後に再開します。
5151

5252
```python
5353
import asyncio
@@ -111,24 +111,24 @@ if __name__ == "__main__":
111111
asyncio.run(main())
112112
```
113113

114-
この例では、`prompt_approval``input()` を使用し、`run_in_executor(...)` で実行されるため同期的です。承認元がすでに非同期(例: HTTP リクエストや async データベース クエリ)であれば`async def` 関数を使い、代わりに直接 `await` できます。
114+
この例では、`prompt_approval``input()` を使用し、`run_in_executor(...)` で実行されるため同期的です。承認ソースがすでに非同期(たとえば HTTP リクエストや async なデータベース クエリ)の場合は`async def` 関数を使って直接 `await` できます。
115115

116-
承認待ちの間も出力をストリーミングするには `Runner.run_streamed` を呼び出し、完了するまで `result.stream_events()` を消費してから、上記と同じ `result.to_state()` と再開手順に従ってください
116+
承認待ちの間も出力をストリーミングするには`Runner.run_streamed` を呼び出し、完了するまで `result.stream_events()` を消費してから、上で示したのと同じ `result.to_state()` と再開手順に従います
117117

118-
## このリポジトリの他のパターン
118+
## リポジトリのパターンと examples
119119

120-
- **ストリーミング承認**: `examples/agent_patterns/human_in_the_loop_stream.py` は、`stream_events()` を最後まで取り出してから、保留中のツール呼び出しを承認し、`Runner.run_streamed(agent, state)` で再開する方法を示します。
121-
- **ツールとしてのエージェントの承認**: `Agent.as_tool(..., needs_approval=...)` は、委譲されたエージェント タスクにレビューが必要な場合に同じ割り込みフローを適用します。
122-
- **Shell および apply_patch ツール**: `ShellTool``ApplyPatchTool``needs_approval` をサポートします。将来の呼び出しに対して判断をキャッシュするには `state.approve(interruption, always_approve=True)` または `state.reject(..., always_reject=True)` を使用します。自動判断には `on_approval` を指定します(`examples/tools/shell.py` を参照)。手動判断には割り込みを処理します(`examples/tools/shell_human_in_the_loop.py` を参照)。
120+
- **ストリーミング承認**: `examples/agent_patterns/human_in_the_loop_stream.py` は、`stream_events()` を最後まで処理してから、保留中のツール呼び出しを承認し、`Runner.run_streamed(agent, state)` で再開する方法を示します。
121+
- **ツールとしてのエージェント承認**: `Agent.as_tool(..., needs_approval=...)` は、委譲されたエージェント タスクにレビューが必要な場合に同じ割り込みフローを適用します。
122+
- **Shell apply_patch のツール**: `ShellTool``ApplyPatchTool``needs_approval` をサポートします。将来の呼び出しのために判断をキャッシュするには、`state.approve(interruption, always_approve=True)` または `state.reject(..., always_reject=True)` を使用します。自動判断には `on_approval` を指定します(`examples/tools/shell.py` を参照)。手動判断には割り込みを処理します(`examples/tools/shell_human_in_the_loop.py` を参照)。
123123
- **ローカル MCP サーバー**: `MCPServerStdio` / `MCPServerSse` / `MCPServerStreamableHttp``require_approval` を使用して MCP ツール呼び出しをゲートします(`examples/mcp/get_all_mcp_tools_example/main.py``examples/mcp/tool_filter_example/main.py` を参照)。
124-
- **Hosted MCP サーバー**: `HostedMCPTool` `require_approval``"always"` に設定して HITL を強制し、必要に応じて `on_approval_request` を指定して自動承認または拒否を行います(`examples/hosted_mcp/human_in_the_loop.py``examples/hosted_mcp/on_approval.py` を参照)。信頼できるサーバーには `"never"` を使用します(`examples/hosted_mcp/simple.py`)。
125-
- **セッションとメモリ**: `Runner.run` にセッションを渡すことで、承認と会話履歴が複数ターンにわたって維持されます。SQLite と OpenAI Conversations のセッション バリアントは `examples/memory/memory_session_hitl_example.py``examples/memory/openai_session_hitl_example.py` にあります。
124+
- **ホスト型 MCP サーバー**: `HostedMCPTool` `require_approval``"always"` に設定して HITL を強制し、任意で `on_approval_request` を指定して自動承認または拒否を行います(`examples/hosted_mcp/human_in_the_loop.py``examples/hosted_mcp/on_approval.py` を参照)。信頼できるサーバーには `"never"` を使用します(`examples/hosted_mcp/simple.py`)。
125+
- **セッションとメモリ**: `Runner.run` にセッションを渡すことで、承認と会話履歴が複数ターンにわたって保持されます。SQLite と OpenAI Conversations のセッション バリアントは `examples/memory/memory_session_hitl_example.py``examples/memory/openai_session_hitl_example.py` にあります。
126126
- **Realtime エージェント**: realtime デモは、`RealtimeSession``approve_tool_call` / `reject_tool_call` を介してツール呼び出しを承認または拒否する WebSocket メッセージを公開します(サーバー側ハンドラーは `examples/realtime/app/server.py` を参照)。
127127

128-
## 長時間にわたる承認
128+
## 長時間の承認待ち
129129

130-
`RunState` は永続性を意図して設計されています。`state.to_json()` または `state.to_string()` を使用して保留中の作業をデータベースやキューに保存し、後で `RunState.from_json(...)` または `RunState.from_string(...)` で再作成できます。シリアライズされたペイロードに機微なコンテキスト データを永続化したくない場合は `context_override` を渡してください
130+
`RunState` は永続性を意図して設計されています。`state.to_json()` または `state.to_string()` を使用して保留中の作業をデータベースやキューに保存し、後で `RunState.from_json(...)` または `RunState.from_string(...)` で再生成します。シリアライズされたペイロードに機密性の高いコンテキスト データを永続化したくない場合は`context_override` を渡します
131131

132132
## 保留タスクのバージョニング
133133

134-
承認がしばらく滞留する可能性がある場合は、エージェント定義または SDK のバージョン マーカーを、シリアライズされた状態と一緒に保存してください。そうすれば、デシリアライズを一致するコード パスにルーティングでき、モデル、プロンプト、ツール定義が変更された際の非互換を回避できます
134+
承認がしばらく滞留する可能性がある場合は、エージェント定義または SDK のバージョン マーカーをシリアライズ済み状態と一緒に保存してください。これにより、デシリアライズを一致するコード パスにルーティングでき、モデル、プロンプト、ツール定義が変更された際の非互換性を回避できます

0 commit comments

Comments
 (0)