openai-agents 0.2.4__tar.gz → 0.2.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of openai-agents might be problematic. Click here for more details.

Files changed (487) hide show
  1. {openai_agents-0.2.4 → openai_agents-0.2.6}/PKG-INFO +6 -2
  2. {openai_agents-0.2.4 → openai_agents-0.2.6}/README.md +4 -0
  3. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/index.md +1 -1
  4. openai_agents-0.2.6/docs/ja/agents.md +249 -0
  5. openai_agents-0.2.6/docs/ja/config.md +98 -0
  6. openai_agents-0.2.6/docs/ja/context.md +82 -0
  7. openai_agents-0.2.6/docs/ja/examples.md +47 -0
  8. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/guardrails.md +19 -19
  9. openai_agents-0.2.6/docs/ja/handoffs.md +117 -0
  10. openai_agents-0.2.6/docs/ja/index.md +58 -0
  11. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/mcp.md +28 -28
  12. openai_agents-0.2.6/docs/ja/models/index.md +153 -0
  13. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/models/litellm.md +10 -10
  14. openai_agents-0.2.6/docs/ja/multi_agent.md +50 -0
  15. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/quickstart.md +16 -16
  16. openai_agents-0.2.6/docs/ja/realtime/guide.md +176 -0
  17. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/realtime/quickstart.md +29 -28
  18. openai_agents-0.2.6/docs/ja/release.md +32 -0
  19. openai_agents-0.2.6/docs/ja/repl.md +23 -0
  20. openai_agents-0.2.6/docs/ja/results.md +56 -0
  21. openai_agents-0.2.6/docs/ja/running_agents.md +141 -0
  22. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/sessions.md +46 -37
  23. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/streaming.md +8 -8
  24. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/tools.md +38 -38
  25. openai_agents-0.2.6/docs/ja/tracing.md +152 -0
  26. openai_agents-0.2.6/docs/ja/visualization.md +105 -0
  27. openai_agents-0.2.6/docs/ja/voice/pipeline.md +86 -0
  28. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ja/voice/quickstart.md +8 -8
  29. openai_agents-0.2.6/docs/ja/voice/tracing.md +18 -0
  30. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/realtime/guide.md +18 -0
  31. openai_agents-0.2.6/docs/repl.md +20 -0
  32. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/running_agents.md +11 -5
  33. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/sessions.md +3 -2
  34. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/tracing.md +28 -0
  35. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/visualization.md +17 -0
  36. openai_agents-0.2.6/examples/basic/remote_pdf.py +31 -0
  37. openai_agents-0.2.6/examples/basic/stream_function_call_args.py +86 -0
  38. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/customer_service/main.py +5 -4
  39. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/handoffs/message_filter.py +1 -0
  40. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/handoffs/message_filter_streaming.py +1 -0
  41. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/app/README.md +4 -0
  42. openai_agents-0.2.6/examples/realtime/app/agent.py +36 -0
  43. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/app/server.py +17 -29
  44. {openai_agents-0.2.4 → openai_agents-0.2.6}/pyproject.toml +2 -2
  45. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/__init__.py +10 -1
  46. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/_run_impl.py +14 -3
  47. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/agent.py +18 -9
  48. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/handoff_filters.py +1 -0
  49. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/models/litellm_model.py +12 -6
  50. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/visualization.py +11 -0
  51. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/handoffs.py +22 -6
  52. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/items.py +5 -1
  53. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/lifecycle.py +2 -2
  54. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/mcp/util.py +13 -15
  55. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/model_settings.py +8 -2
  56. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/chatcmpl_converter.py +14 -11
  57. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/openai_chatcompletions.py +18 -4
  58. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/openai_responses.py +11 -4
  59. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/agent.py +6 -0
  60. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/config.py +3 -0
  61. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/openai_realtime.py +11 -3
  62. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/session.py +32 -8
  63. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/run.py +53 -6
  64. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/processors.py +5 -2
  65. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/provider.py +25 -7
  66. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_mcp_util.py +325 -1
  67. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/model_settings/test_serialization.py +2 -0
  68. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_session.py +84 -0
  69. openai_agents-0.2.6/tests/test_agent_clone_shallow_copy.py +33 -0
  70. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_agent_runner.py +6 -6
  71. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_agent_runner_streamed.py +7 -8
  72. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_extension_filters.py +19 -3
  73. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_handoff_tool.py +5 -0
  74. openai_agents-0.2.6/tests/test_logprobs.py +50 -0
  75. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_openai_chatcompletions.py +3 -3
  76. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_openai_chatcompletions_converter.py +5 -5
  77. openai_agents-0.2.6/tests/test_stream_events.py +53 -0
  78. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_visualization.py +30 -0
  79. openai_agents-0.2.6/tests/tracing/test_set_api_key_fix.py +32 -0
  80. {openai_agents-0.2.4 → openai_agents-0.2.6}/uv.lock +5 -5
  81. openai_agents-0.2.4/docs/ja/agents.md +0 -248
  82. openai_agents-0.2.4/docs/ja/config.md +0 -98
  83. openai_agents-0.2.4/docs/ja/context.md +0 -82
  84. openai_agents-0.2.4/docs/ja/examples.md +0 -47
  85. openai_agents-0.2.4/docs/ja/handoffs.md +0 -117
  86. openai_agents-0.2.4/docs/ja/index.md +0 -58
  87. openai_agents-0.2.4/docs/ja/models/index.md +0 -159
  88. openai_agents-0.2.4/docs/ja/multi_agent.md +0 -41
  89. openai_agents-0.2.4/docs/ja/realtime/guide.md +0 -156
  90. openai_agents-0.2.4/docs/ja/release.md +0 -32
  91. openai_agents-0.2.4/docs/ja/repl.md +0 -21
  92. openai_agents-0.2.4/docs/ja/results.md +0 -56
  93. openai_agents-0.2.4/docs/ja/running_agents.md +0 -138
  94. openai_agents-0.2.4/docs/ja/tracing.md +0 -124
  95. openai_agents-0.2.4/docs/ja/visualization.md +0 -87
  96. openai_agents-0.2.4/docs/ja/voice/pipeline.md +0 -86
  97. openai_agents-0.2.4/docs/ja/voice/tracing.md +0 -18
  98. openai_agents-0.2.4/docs/repl.md +0 -19
  99. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  100. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  101. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
  102. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/ISSUE_TEMPLATE/question.md +0 -0
  103. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  104. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/codex/home/config.toml +0 -0
  105. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/codex/labels/codex-attempt.md +0 -0
  106. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/codex/labels/codex-review.md +0 -0
  107. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/codex/labels/codex-triage.md +0 -0
  108. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/workflows/codex.yml +0 -0
  109. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/workflows/docs.yml +0 -0
  110. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/workflows/issues.yml +0 -0
  111. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/workflows/publish.yml +0 -0
  112. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/workflows/tests.yml +0 -0
  113. {openai_agents-0.2.4 → openai_agents-0.2.6}/.github/workflows/update-docs.yml +0 -0
  114. {openai_agents-0.2.4 → openai_agents-0.2.6}/.gitignore +0 -0
  115. {openai_agents-0.2.4 → openai_agents-0.2.6}/.prettierrc +0 -0
  116. {openai_agents-0.2.4 → openai_agents-0.2.6}/.vscode/launch.json +0 -0
  117. {openai_agents-0.2.4 → openai_agents-0.2.6}/.vscode/settings.json +0 -0
  118. {openai_agents-0.2.4 → openai_agents-0.2.6}/AGENTS.md +0 -0
  119. {openai_agents-0.2.4 → openai_agents-0.2.6}/CLAUDE.md +0 -0
  120. {openai_agents-0.2.4 → openai_agents-0.2.6}/LICENSE +0 -0
  121. {openai_agents-0.2.4 → openai_agents-0.2.6}/Makefile +0 -0
  122. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/agents.md +0 -0
  123. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/assets/images/favicon-platform.svg +0 -0
  124. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/assets/images/graph.png +0 -0
  125. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/assets/images/mcp-tracing.jpg +0 -0
  126. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/assets/images/orchestration.png +0 -0
  127. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/assets/logo.svg +0 -0
  128. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/config.md +0 -0
  129. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/context.md +0 -0
  130. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/examples.md +0 -0
  131. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/guardrails.md +0 -0
  132. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/handoffs.md +0 -0
  133. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/mcp.md +0 -0
  134. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/models/index.md +0 -0
  135. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/models/litellm.md +0 -0
  136. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/multi_agent.md +0 -0
  137. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/quickstart.md +0 -0
  138. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/realtime/quickstart.md +0 -0
  139. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/agent.md +0 -0
  140. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/agent_output.md +0 -0
  141. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/computer.md +0 -0
  142. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/exceptions.md +0 -0
  143. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/extensions/handoff_filters.md +0 -0
  144. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/extensions/handoff_prompt.md +0 -0
  145. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/extensions/litellm.md +0 -0
  146. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/extensions/models/litellm_model.md +0 -0
  147. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/extensions/models/litellm_provider.md +0 -0
  148. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/extensions/visualization.md +0 -0
  149. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/function_schema.md +0 -0
  150. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/guardrail.md +0 -0
  151. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/handoffs.md +0 -0
  152. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/index.md +0 -0
  153. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/items.md +0 -0
  154. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/lifecycle.md +0 -0
  155. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/logger.md +0 -0
  156. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/mcp/server.md +0 -0
  157. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/mcp/util.md +0 -0
  158. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/memory.md +0 -0
  159. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/model_settings.md +0 -0
  160. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/chatcmpl_converter.md +0 -0
  161. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/chatcmpl_helpers.md +0 -0
  162. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/chatcmpl_stream_handler.md +0 -0
  163. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/fake_id.md +0 -0
  164. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/interface.md +0 -0
  165. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/multi_provider.md +0 -0
  166. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/openai_chatcompletions.md +0 -0
  167. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/openai_provider.md +0 -0
  168. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/models/openai_responses.md +0 -0
  169. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/prompts.md +0 -0
  170. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/realtime/agent.md +0 -0
  171. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/realtime/config.md +0 -0
  172. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/realtime/events.md +0 -0
  173. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/realtime/model.md +0 -0
  174. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/realtime/runner.md +0 -0
  175. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/realtime/session.md +0 -0
  176. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/repl.md +0 -0
  177. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/result.md +0 -0
  178. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/run.md +0 -0
  179. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/run_context.md +0 -0
  180. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/stream_events.md +0 -0
  181. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/strict_schema.md +0 -0
  182. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tool.md +0 -0
  183. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tool_context.md +0 -0
  184. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/create.md +0 -0
  185. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/index.md +0 -0
  186. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/logger.md +0 -0
  187. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/processor_interface.md +0 -0
  188. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/processors.md +0 -0
  189. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/provider.md +0 -0
  190. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/scope.md +0 -0
  191. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/setup.md +0 -0
  192. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/span_data.md +0 -0
  193. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/spans.md +0 -0
  194. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/traces.md +0 -0
  195. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/tracing/util.md +0 -0
  196. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/usage.md +0 -0
  197. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/version.md +0 -0
  198. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/events.md +0 -0
  199. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/exceptions.md +0 -0
  200. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/imports.md +0 -0
  201. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/input.md +0 -0
  202. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/model.md +0 -0
  203. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/models/openai_model_provider.md +0 -0
  204. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/models/openai_provider.md +0 -0
  205. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/models/openai_stt.md +0 -0
  206. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/models/openai_tts.md +0 -0
  207. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/pipeline.md +0 -0
  208. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/pipeline_config.md +0 -0
  209. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/result.md +0 -0
  210. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/utils.md +0 -0
  211. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/ref/voice/workflow.md +0 -0
  212. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/release.md +0 -0
  213. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/results.md +0 -0
  214. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/scripts/generate_ref_files.py +0 -0
  215. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/scripts/translate_docs.py +0 -0
  216. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/streaming.md +0 -0
  217. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/stylesheets/extra.css +0 -0
  218. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/tools.md +0 -0
  219. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/voice/pipeline.md +0 -0
  220. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/voice/quickstart.md +0 -0
  221. {openai_agents-0.2.4 → openai_agents-0.2.6}/docs/voice/tracing.md +0 -0
  222. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/__init__.py +0 -0
  223. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/README.md +0 -0
  224. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/agents_as_tools.py +0 -0
  225. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/deterministic.py +0 -0
  226. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/forcing_tool_use.py +0 -0
  227. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/input_guardrails.py +0 -0
  228. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/llm_as_a_judge.py +0 -0
  229. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/output_guardrails.py +0 -0
  230. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/parallelization.py +0 -0
  231. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/routing.py +0 -0
  232. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/agent_patterns/streaming_guardrails.py +0 -0
  233. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/agent_lifecycle_example.py +0 -0
  234. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/dynamic_system_prompt.py +0 -0
  235. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/hello_world.py +0 -0
  236. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/hello_world_jupyter.ipynb +0 -0
  237. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/lifecycle_example.py +0 -0
  238. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/local_image.py +0 -0
  239. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/media/image_bison.jpg +0 -0
  240. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/non_strict_output_type.py +0 -0
  241. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/previous_response_id.py +0 -0
  242. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/prompt_template.py +0 -0
  243. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/remote_image.py +0 -0
  244. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/session_example.py +0 -0
  245. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/stream_items.py +0 -0
  246. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/stream_text.py +0 -0
  247. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/basic/tools.py +0 -0
  248. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/README.md +0 -0
  249. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/__init__.py +0 -0
  250. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/__init__.py +0 -0
  251. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/financials_agent.py +0 -0
  252. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/planner_agent.py +0 -0
  253. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/risk_agent.py +0 -0
  254. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/search_agent.py +0 -0
  255. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
  256. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/agents/writer_agent.py +0 -0
  257. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/main.py +0 -0
  258. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/manager.py +0 -0
  259. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/financial_research_agent/printer.py +0 -0
  260. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/hosted_mcp/__init__.py +0 -0
  261. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/hosted_mcp/approvals.py +0 -0
  262. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/hosted_mcp/simple.py +0 -0
  263. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/filesystem_example/README.md +0 -0
  264. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/filesystem_example/main.py +0 -0
  265. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
  266. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
  267. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
  268. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/git_example/README.md +0 -0
  269. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/git_example/main.py +0 -0
  270. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/prompt_server/README.md +0 -0
  271. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/prompt_server/main.py +0 -0
  272. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/prompt_server/server.py +0 -0
  273. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/sse_example/README.md +0 -0
  274. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/sse_example/main.py +0 -0
  275. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/sse_example/server.py +0 -0
  276. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/streamablehttp_example/README.md +0 -0
  277. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/streamablehttp_example/main.py +0 -0
  278. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/mcp/streamablehttp_example/server.py +0 -0
  279. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/model_providers/README.md +0 -0
  280. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/model_providers/custom_example_agent.py +0 -0
  281. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/model_providers/custom_example_global.py +0 -0
  282. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/model_providers/custom_example_provider.py +0 -0
  283. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/model_providers/litellm_auto.py +0 -0
  284. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/model_providers/litellm_provider.py +0 -0
  285. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/app/static/app.js +0 -0
  286. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/app/static/index.html +0 -0
  287. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/cli/demo.py +0 -0
  288. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/cli/ui.py +0 -0
  289. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/twilio/README.md +0 -0
  290. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/twilio/__init__.py +0 -0
  291. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/twilio/requirements.txt +0 -0
  292. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/twilio/server.py +0 -0
  293. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/realtime/twilio/twilio_handler.py +0 -0
  294. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/reasoning_content/__init__.py +0 -0
  295. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/reasoning_content/main.py +0 -0
  296. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/reasoning_content/runner_example.py +0 -0
  297. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/README.md +0 -0
  298. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/__init__.py +0 -0
  299. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/agents/__init__.py +0 -0
  300. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/agents/planner_agent.py +0 -0
  301. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/agents/search_agent.py +0 -0
  302. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/agents/writer_agent.py +0 -0
  303. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/main.py +0 -0
  304. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/manager.py +0 -0
  305. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/printer.py +0 -0
  306. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  307. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  308. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/sample_outputs/vacation.md +0 -0
  309. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  310. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/tools/code_interpreter.py +0 -0
  311. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/tools/computer_use.py +0 -0
  312. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/tools/file_search.py +0 -0
  313. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/tools/image_generator.py +0 -0
  314. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/tools/web_search.py +0 -0
  315. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/__init__.py +0 -0
  316. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/static/README.md +0 -0
  317. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/static/__init__.py +0 -0
  318. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/static/main.py +0 -0
  319. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/static/util.py +0 -0
  320. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/streamed/README.md +0 -0
  321. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/streamed/__init__.py +0 -0
  322. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/streamed/main.py +0 -0
  323. {openai_agents-0.2.4 → openai_agents-0.2.6}/examples/voice/streamed/my_workflow.py +0 -0
  324. {openai_agents-0.2.4 → openai_agents-0.2.6}/mkdocs.yml +0 -0
  325. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/_config.py +0 -0
  326. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/_debug.py +0 -0
  327. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/agent_output.py +0 -0
  328. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/computer.py +0 -0
  329. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/exceptions.py +0 -0
  330. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/__init__.py +0 -0
  331. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/handoff_prompt.py +0 -0
  332. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/models/__init__.py +0 -0
  333. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/extensions/models/litellm_provider.py +0 -0
  334. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/function_schema.py +0 -0
  335. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/guardrail.py +0 -0
  336. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/logger.py +0 -0
  337. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/mcp/__init__.py +0 -0
  338. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/mcp/server.py +0 -0
  339. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/memory/__init__.py +0 -0
  340. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/memory/session.py +0 -0
  341. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/__init__.py +0 -0
  342. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/_openai_shared.py +0 -0
  343. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/chatcmpl_helpers.py +0 -0
  344. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/chatcmpl_stream_handler.py +0 -0
  345. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/fake_id.py +0 -0
  346. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/interface.py +0 -0
  347. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/multi_provider.py +0 -0
  348. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/models/openai_provider.py +0 -0
  349. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/prompts.py +0 -0
  350. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/py.typed +0 -0
  351. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/README.md +0 -0
  352. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/__init__.py +0 -0
  353. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/_default_tracker.py +0 -0
  354. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/_util.py +0 -0
  355. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/events.py +0 -0
  356. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/handoffs.py +0 -0
  357. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/items.py +0 -0
  358. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/model.py +0 -0
  359. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/model_events.py +0 -0
  360. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/model_inputs.py +0 -0
  361. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/realtime/runner.py +0 -0
  362. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/repl.py +0 -0
  363. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/result.py +0 -0
  364. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/run_context.py +0 -0
  365. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/stream_events.py +0 -0
  366. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/strict_schema.py +0 -0
  367. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tool.py +0 -0
  368. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tool_context.py +0 -0
  369. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/__init__.py +0 -0
  370. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/create.py +0 -0
  371. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/logger.py +0 -0
  372. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/processor_interface.py +0 -0
  373. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/scope.py +0 -0
  374. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/setup.py +0 -0
  375. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/span_data.py +0 -0
  376. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/spans.py +0 -0
  377. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/traces.py +0 -0
  378. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/tracing/util.py +0 -0
  379. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/usage.py +0 -0
  380. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/__init__.py +0 -0
  381. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/_coro.py +0 -0
  382. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/_error_tracing.py +0 -0
  383. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/_json.py +0 -0
  384. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/_pretty_print.py +0 -0
  385. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/_transforms.py +0 -0
  386. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/util/_types.py +0 -0
  387. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/version.py +0 -0
  388. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/__init__.py +0 -0
  389. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/events.py +0 -0
  390. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/exceptions.py +0 -0
  391. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/imports.py +0 -0
  392. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/input.py +0 -0
  393. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/model.py +0 -0
  394. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/models/__init__.py +0 -0
  395. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/models/openai_model_provider.py +0 -0
  396. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/models/openai_stt.py +0 -0
  397. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/models/openai_tts.py +0 -0
  398. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/pipeline.py +0 -0
  399. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/pipeline_config.py +0 -0
  400. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/result.py +0 -0
  401. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/utils.py +0 -0
  402. {openai_agents-0.2.4 → openai_agents-0.2.6}/src/agents/voice/workflow.py +0 -0
  403. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/README.md +0 -0
  404. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/__init__.py +0 -0
  405. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/conftest.py +0 -0
  406. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/fake_model.py +0 -0
  407. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/fastapi/__init__.py +0 -0
  408. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/fastapi/streaming_app.py +0 -0
  409. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/fastapi/test_streaming_context.py +0 -0
  410. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/__init__.py +0 -0
  411. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/conftest.py +0 -0
  412. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/helpers.py +0 -0
  413. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_caching.py +0 -0
  414. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_connect_disconnect.py +0 -0
  415. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_mcp_tracing.py +0 -0
  416. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_prompt_server.py +0 -0
  417. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_runner_calls_mcp.py +0 -0
  418. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_server_errors.py +0 -0
  419. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/mcp/test_tool_filtering.py +0 -0
  420. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/models/__init__.py +0 -0
  421. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/models/conftest.py +0 -0
  422. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/models/test_kwargs_functionality.py +0 -0
  423. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/models/test_litellm_chatcompletions_stream.py +0 -0
  424. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/models/test_litellm_extra_body.py +0 -0
  425. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/models/test_map.py +0 -0
  426. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/__init__.py +0 -0
  427. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_agent.py +0 -0
  428. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_conversion_helpers.py +0 -0
  429. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_item_parsing.py +0 -0
  430. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_model_events.py +0 -0
  431. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_openai_realtime.py +0 -0
  432. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_playback_tracker.py +0 -0
  433. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_realtime_handoffs.py +0 -0
  434. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_runner.py +0 -0
  435. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/realtime/test_tracing.py +0 -0
  436. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_agent_config.py +0 -0
  437. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_agent_hooks.py +0 -0
  438. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_agent_prompt.py +0 -0
  439. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_agent_tracing.py +0 -0
  440. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_cancel_streaming.py +0 -0
  441. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_computer_action.py +0 -0
  442. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_config.py +0 -0
  443. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_doc_parsing.py +0 -0
  444. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_extra_headers.py +0 -0
  445. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_function_schema.py +0 -0
  446. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_function_tool.py +0 -0
  447. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_function_tool_decorator.py +0 -0
  448. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_global_hooks.py +0 -0
  449. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_guardrails.py +0 -0
  450. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_items_helpers.py +0 -0
  451. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_max_turns.py +0 -0
  452. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_openai_chatcompletions_stream.py +0 -0
  453. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_openai_responses_converter.py +0 -0
  454. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_output_tool.py +0 -0
  455. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_pretty_print.py +0 -0
  456. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_reasoning_content.py +0 -0
  457. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_repl.py +0 -0
  458. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_responses.py +0 -0
  459. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_responses_tracing.py +0 -0
  460. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_result_cast.py +0 -0
  461. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_run.py +0 -0
  462. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_run_config.py +0 -0
  463. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_run_error_details.py +0 -0
  464. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_run_step_execution.py +0 -0
  465. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_run_step_processing.py +0 -0
  466. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_session.py +0 -0
  467. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_session_exceptions.py +0 -0
  468. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_strict_schema.py +0 -0
  469. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_tool_choice_reset.py +0 -0
  470. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_tool_converter.py +0 -0
  471. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_tool_use_behavior.py +0 -0
  472. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_trace_processor.py +0 -0
  473. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_tracing.py +0 -0
  474. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_tracing_errors.py +0 -0
  475. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_tracing_errors_streamed.py +0 -0
  476. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/test_usage.py +0 -0
  477. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/testing_processor.py +0 -0
  478. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/tracing/test_processor_api_key.py +0 -0
  479. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/__init__.py +0 -0
  480. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/conftest.py +0 -0
  481. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/fake_models.py +0 -0
  482. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/helpers.py +0 -0
  483. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/test_input.py +0 -0
  484. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/test_openai_stt.py +0 -0
  485. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/test_openai_tts.py +0 -0
  486. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/test_pipeline.py +0 -0
  487. {openai_agents-0.2.4 → openai_agents-0.2.6}/tests/voice/test_workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: OpenAI Agents SDK
5
5
  Project-URL: Homepage, https://openai.github.io/openai-agents-python/
6
6
  Project-URL: Repository, https://github.com/openai/openai-agents-python
@@ -21,7 +21,7 @@ Classifier: Typing :: Typed
21
21
  Requires-Python: >=3.9
22
22
  Requires-Dist: griffe<2,>=1.5.6
23
23
  Requires-Dist: mcp<2,>=1.11.0; python_version >= '3.10'
24
- Requires-Dist: openai<2,>=1.97.1
24
+ Requires-Dist: openai<2,>=1.99.6
25
25
  Requires-Dist: pydantic<3,>=2.10
26
26
  Requires-Dist: requests<3,>=2.0
27
27
  Requires-Dist: types-requests<3,>=2.0
@@ -196,6 +196,10 @@ The Agents SDK is designed to be highly flexible, allowing you to model a wide r
196
196
 
197
197
  The Agents SDK automatically traces your agent runs, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk), [Scorecard](https://docs.scorecard.io/docs/documentation/features/tracing#openai-agents-sdk-integration), and [Keywords AI](https://docs.keywordsai.co/integration/development-frameworks/openai-agent). For more details about how to customize or disable tracing, see [Tracing](http://openai.github.io/openai-agents-python/tracing), which also includes a larger list of [external tracing processors](http://openai.github.io/openai-agents-python/tracing/#external-tracing-processors-list).
198
198
 
199
+ ## Long running agents & human-in-the-loop
200
+
201
+ You can use the Agents SDK [Temporal](https://temporal.io/) integration to run durable, long-running workflows, including human-in-the-loop tasks. View a demo of Temporal and the Agents SDK working in action to complete long-running tasks [in this video](https://www.youtube.com/watch?v=fFBZqzT4DD8), and [view docs here](https://github.com/temporalio/sdk-python/tree/main/temporalio/contrib/openai_agents).
202
+
199
203
  ## Sessions
200
204
 
201
205
  The Agents SDK provides built-in session memory to automatically maintain conversation history across multiple agent runs, eliminating the need to manually handle `.to_input_list()` between turns.
@@ -157,6 +157,10 @@ The Agents SDK is designed to be highly flexible, allowing you to model a wide r
157
157
 
158
158
  The Agents SDK automatically traces your agent runs, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk), [Scorecard](https://docs.scorecard.io/docs/documentation/features/tracing#openai-agents-sdk-integration), and [Keywords AI](https://docs.keywordsai.co/integration/development-frameworks/openai-agent). For more details about how to customize or disable tracing, see [Tracing](http://openai.github.io/openai-agents-python/tracing), which also includes a larger list of [external tracing processors](http://openai.github.io/openai-agents-python/tracing/#external-tracing-processors-list).
159
159
 
160
+ ## Long running agents & human-in-the-loop
161
+
162
+ You can use the Agents SDK [Temporal](https://temporal.io/) integration to run durable, long-running workflows, including human-in-the-loop tasks. View a demo of Temporal and the Agents SDK working in action to complete long-running tasks [in this video](https://www.youtube.com/watch?v=fFBZqzT4DD8), and [view docs here](https://github.com/temporalio/sdk-python/tree/main/temporalio/contrib/openai_agents).
163
+
160
164
  ## Sessions
161
165
 
162
166
  The Agents SDK provides built-in session memory to automatically maintain conversation history across multiple agent runs, eliminating the need to manually handle `.to_input_list()` between turns.
@@ -4,7 +4,7 @@ The [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) enables
4
4
 
5
5
  - **Agents**, which are LLMs equipped with instructions and tools
6
6
  - **Handoffs**, which allow agents to delegate to other agents for specific tasks
7
- - **Guardrails**, which enable the inputs to agents to be validated
7
+ - **Guardrails**, which enable validation of agent inputs and outputs
8
8
  - **Sessions**, which automatically maintains conversation history across agent runs
9
9
 
10
10
  In combination with Python, these primitives are powerful enough to express complex relationships between tools and agents, and allow you to build real-world applications without a steep learning curve. In addition, the SDK comes with built-in **tracing** that lets you visualize and debug your agentic flows, as well as evaluate them and even fine-tune models for your application.
@@ -0,0 +1,249 @@
1
+ ---
2
+ search:
3
+ exclude: true
4
+ ---
5
+ # エージェント
6
+
7
+ エージェントはアプリの中核となるビルディングブロックです。エージェントとは、指示とツールで構成された大規模言語モデル ( LLM ) です。
8
+
9
+ ## 基本設定
10
+
11
+ エージェントで最もよく設定するプロパティは次のとおりです。
12
+
13
+ - `name`: エージェントを識別する必須の文字列。
14
+ - `instructions`: developer メッセージまたは system prompt とも呼ばれます。
15
+ - `model`: 使用する LLM、および temperature や top_p などのチューニングパラメーターを設定する `model_settings` (オプション)。
16
+ - `tools`: エージェントがタスク達成のために使用できるツール。
17
+
18
+ ```python
19
+ from agents import Agent, ModelSettings, function_tool
20
+
21
+ @function_tool
22
+ def get_weather(city: str) -> str:
23
+ """returns weather info for the specified city."""
24
+ return f"The weather in {city} is sunny"
25
+
26
+ agent = Agent(
27
+ name="Haiku agent",
28
+ instructions="Always respond in haiku form",
29
+ model="o3-mini",
30
+ tools=[get_weather],
31
+ )
32
+ ```
33
+
34
+ ## コンテキスト
35
+
36
+ エージェントはその `context` 型に対して汎用的です。コンテキストは依存性注入ツールであり、あなたが作成して `Runner.run()` に渡すオブジェクトです。このオブジェクトはすべてのエージェント、ツール、ハンドオフなどに渡され、エージェント実行の依存関係や状態をまとめて保持します。コンテキストには任意の Python オブジェクトを渡せます。
37
+
38
+ ```python
39
+ @dataclass
40
+ class UserContext:
41
+ name: str
42
+ uid: str
43
+ is_pro_user: bool
44
+
45
+ async def fetch_purchases() -> list[Purchase]:
46
+ return ...
47
+
48
+ agent = Agent[UserContext](
49
+ ...,
50
+ )
51
+ ```
52
+
53
+ ## 出力タイプ
54
+
55
+ デフォルトでは、エージェントはプレーンテキスト (すなわち `str`) を出力します。特定の型で出力させたい場合は、`output_type` パラメーターを使用します。一般的には [Pydantic](https://docs.pydantic.dev/) オブジェクトを使いますが、Pydantic の [TypeAdapter](https://docs.pydantic.dev/latest/api/type_adapter/) でラップできる型―dataclass、list、TypedDict など―であれば利用できます。
56
+
57
+ ```python
58
+ from pydantic import BaseModel
59
+ from agents import Agent
60
+
61
+
62
+ class CalendarEvent(BaseModel):
63
+ name: str
64
+ date: str
65
+ participants: list[str]
66
+
67
+ agent = Agent(
68
+ name="Calendar extractor",
69
+ instructions="Extract calendar events from text",
70
+ output_type=CalendarEvent,
71
+ )
72
+ ```
73
+
74
+ !!! note
75
+
76
+ `output_type` を指定すると、モデルは通常のプレーンテキスト応答ではなく [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) を使用するよう指示されます。
77
+
78
+ ## ハンドオフ
79
+
80
+ ハンドオフは、エージェントが委譲できるサブエージェントです。ハンドオフのリストを提供すると、エージェントは関連する場合にそれらへ委譲できます。これは、単一タスクに特化したモジュール型エージェントをオーケストレーションする強力なパターンです。詳しくは [handoffs](handoffs.md) ドキュメントをご覧ください。
81
+
82
+ ```python
83
+ from agents import Agent
84
+
85
+ booking_agent = Agent(...)
86
+ refund_agent = Agent(...)
87
+
88
+ triage_agent = Agent(
89
+ name="Triage agent",
90
+ instructions=(
91
+ "Help the user with their questions."
92
+ "If they ask about booking, handoff to the booking agent."
93
+ "If they ask about refunds, handoff to the refund agent."
94
+ ),
95
+ handoffs=[booking_agent, refund_agent],
96
+ )
97
+ ```
98
+
99
+ ## 動的 instructions
100
+
101
+ 通常はエージェント作成時に instructions を渡しますが、関数を通じて動的に渡すこともできます。この関数はエージェントと context を受け取り、プロンプトを返さなければなりません。同期関数と `async` 関数の両方を使用できます。
102
+
103
+ ```python
104
+ def dynamic_instructions(
105
+ context: RunContextWrapper[UserContext], agent: Agent[UserContext]
106
+ ) -> str:
107
+ return f"The user's name is {context.context.name}. Help them with their questions."
108
+
109
+
110
+ agent = Agent[UserContext](
111
+ name="Triage agent",
112
+ instructions=dynamic_instructions,
113
+ )
114
+ ```
115
+
116
+ ## ライフサイクルイベント (フック)
117
+
118
+ エージェントのライフサイクルを監視したい場合があります。たとえば、イベントをログに記録したり、特定のイベント発生時にデータをプリフェッチしたりするケースです。`hooks` プロパティを使ってエージェントのライフサイクルにフックできます。[`AgentHooks`][agents.lifecycle.AgentHooks] をサブクラス化し、関心のあるメソッドをオーバーライドしてください。
119
+
120
+ ## ガードレール
121
+
122
+ ガードレールを使うと、エージェント実行と並行してユーザー入力に対するチェックやバリデーションを実行できます。たとえば、ユーザー入力の関連性をスクリーニングすることが可能です。詳細は [guardrails](guardrails.md) ドキュメントをご覧ください。
123
+
124
+ ## エージェントのクローン/コピー
125
+
126
+ エージェントの `clone()` メソッドを使うと、エージェントを複製し、任意のプロパティを変更できます。
127
+
128
+ ```python
129
+ pirate_agent = Agent(
130
+ name="Pirate",
131
+ instructions="Write like a pirate",
132
+ model="o3-mini",
133
+ )
134
+
135
+ robot_agent = pirate_agent.clone(
136
+ name="Robot",
137
+ instructions="Write like a robot",
138
+ )
139
+ ```
140
+
141
+ ## ツール使用の強制
142
+
143
+ ツールのリストを渡しても、必ずしも LLM がツールを使用するとは限りません。[`ModelSettings.tool_choice`][agents.model_settings.ModelSettings.tool_choice] を設定するとツール使用を強制できます。有効な値は次のとおりです。
144
+
145
+ 1. `auto` : LLM がツールを使用するかどうかを自動で判断します。
146
+ 2. `required` : LLM にツール使用を必須とします (使用するツールはインテリジェントに決定)。
147
+ 3. `none` : LLM にツールを使用しないことを要求します。
148
+ 4. 具体的な文字列 (例: `my_tool`) を設定すると、そのツールを必ず使用させます。
149
+
150
+ ```python
151
+ from agents import Agent, Runner, function_tool, ModelSettings
152
+
153
+ @function_tool
154
+ def get_weather(city: str) -> str:
155
+ """Returns weather info for the specified city."""
156
+ return f"The weather in {city} is sunny"
157
+
158
+ agent = Agent(
159
+ name="Weather Agent",
160
+ instructions="Retrieve weather details.",
161
+ tools=[get_weather],
162
+ model_settings=ModelSettings(tool_choice="get_weather")
163
+ )
164
+ ```
165
+
166
+ ## ツール使用の挙動
167
+
168
+ `Agent` の `tool_use_behavior` パラメーターはツール出力の扱い方を制御します。
169
+
170
+ - `"run_llm_again"`: デフォルト設定。ツールを実行し、その結果を LLM が処理して最終応答を生成します。
171
+ - `"stop_on_first_tool"`: 最初に呼び出されたツールの出力をそのまま最終応答として使用し、追加の LLM 処理を行いません。
172
+
173
+ ```python
174
+ from agents import Agent, Runner, function_tool, ModelSettings
175
+
176
+ @function_tool
177
+ def get_weather(city: str) -> str:
178
+ """Returns weather info for the specified city."""
179
+ return f"The weather in {city} is sunny"
180
+
181
+ agent = Agent(
182
+ name="Weather Agent",
183
+ instructions="Retrieve weather details.",
184
+ tools=[get_weather],
185
+ tool_use_behavior="stop_on_first_tool"
186
+ )
187
+ ```
188
+
189
+ - `StopAtTools(stop_at_tool_names=[...])`: 指定したツールのいずれかが呼び出されると停止し、その出力を最終応答とします。
190
+ ```python
191
+ from agents import Agent, Runner, function_tool
192
+ from agents.agent import StopAtTools
193
+
194
+ @function_tool
195
+ def get_weather(city: str) -> str:
196
+ """Returns weather info for the specified city."""
197
+ return f"The weather in {city} is sunny"
198
+
199
+ @function_tool
200
+ def sum_numbers(a: int, b: int) -> int:
201
+ """Adds two numbers."""
202
+ return a + b
203
+
204
+ agent = Agent(
205
+ name="Stop At Stock Agent",
206
+ instructions="Get weather or sum numbers.",
207
+ tools=[get_weather, sum_numbers],
208
+ tool_use_behavior=StopAtTools(stop_at_tool_names=["get_weather"])
209
+ )
210
+ ```
211
+ - `ToolsToFinalOutputFunction`: ツール結果を処理し、停止するか LLM を続行するかを決定するカスタム関数。
212
+
213
+ ```python
214
+ from agents import Agent, Runner, function_tool, FunctionToolResult, RunContextWrapper
215
+ from agents.agent import ToolsToFinalOutputResult
216
+ from typing import List, Any
217
+
218
+ @function_tool
219
+ def get_weather(city: str) -> str:
220
+ """Returns weather info for the specified city."""
221
+ return f"The weather in {city} is sunny"
222
+
223
+ def custom_tool_handler(
224
+ context: RunContextWrapper[Any],
225
+ tool_results: List[FunctionToolResult]
226
+ ) -> ToolsToFinalOutputResult:
227
+ """Processes tool results to decide final output."""
228
+ for result in tool_results:
229
+ if result.output and "sunny" in result.output:
230
+ return ToolsToFinalOutputResult(
231
+ is_final_output=True,
232
+ final_output=f"Final weather: {result.output}"
233
+ )
234
+ return ToolsToFinalOutputResult(
235
+ is_final_output=False,
236
+ final_output=None
237
+ )
238
+
239
+ agent = Agent(
240
+ name="Weather Agent",
241
+ instructions="Retrieve weather details.",
242
+ tools=[get_weather],
243
+ tool_use_behavior=custom_tool_handler
244
+ )
245
+ ```
246
+
247
+ !!! note
248
+
249
+ 無限ループを防ぐため、フレームワークはツール呼び出し後に `tool_choice` を自動的に "auto" にリセットします。この挙動は [`agent.reset_tool_choice`][agents.agent.Agent.reset_tool_choice] で設定できます。ツール結果が LLM に送られ、その後 `tool_choice` により再度ツール呼び出しが生成され…という無限ループを防止するためです。
@@ -0,0 +1,98 @@
1
+ ---
2
+ search:
3
+ exclude: true
4
+ ---
5
+ # SDK の設定
6
+
7
+ ## API キーとクライアント
8
+
9
+ デフォルトでは、SDK をインポートした直後から、LLM リクエストとトレーシングに使用する環境変数 `OPENAI_API_KEY` を参照します。アプリ起動前にこの環境変数を設定できない場合は、[set_default_openai_key()][agents.set_default_openai_key] 関数でキーを設定できます。
10
+
11
+ ```python
12
+ from agents import set_default_openai_key
13
+
14
+ set_default_openai_key("sk-...")
15
+ ```
16
+
17
+ また、使用する OpenAI クライアントを個別に設定することも可能です。デフォルトでは、SDK は環境変数または上記で設定したデフォルトキーを用いて `AsyncOpenAI` インスタンスを生成します。[set_default_openai_client()][agents.set_default_openai_client] 関数を使うことで、この設定を変更できます。
18
+
19
+ ```python
20
+ from openai import AsyncOpenAI
21
+ from agents import set_default_openai_client
22
+
23
+ custom_client = AsyncOpenAI(base_url="...", api_key="...")
24
+ set_default_openai_client(custom_client)
25
+ ```
26
+
27
+ さらに、使用する OpenAI API もカスタマイズできます。デフォルトでは OpenAI Responses API を利用しますが、[set_default_openai_api()][agents.set_default_openai_api] 関数を使用して Chat Completions API に切り替えられます。
28
+
29
+ ```python
30
+ from agents import set_default_openai_api
31
+
32
+ set_default_openai_api("chat_completions")
33
+ ```
34
+
35
+ ## トレーシング
36
+
37
+ トレーシングはデフォルトで有効です。上記セクションで説明した OpenAI API キー(環境変数または設定したデフォルトキー)が使用されます。トレーシング専用の API キーを指定したい場合は、[`set_tracing_export_api_key`][agents.set_tracing_export_api_key] 関数を利用してください。
38
+
39
+ ```python
40
+ from agents import set_tracing_export_api_key
41
+
42
+ set_tracing_export_api_key("sk-...")
43
+ ```
44
+
45
+ トレーシングを完全に無効にする場合は、[`set_tracing_disabled()`][agents.set_tracing_disabled] 関数を使用します。
46
+
47
+ ```python
48
+ from agents import set_tracing_disabled
49
+
50
+ set_tracing_disabled(True)
51
+ ```
52
+
53
+ ## デバッグ ロギング
54
+
55
+ SDK にはハンドラーが設定されていない Python ロガーが 2 つあります。デフォルトでは、警告とエラーは `stdout` に送られますが、それ以外のログは抑制されます。
56
+
57
+ 詳細なロギングを有効にするには、[`enable_verbose_stdout_logging()`][agents.enable_verbose_stdout_logging] 関数を使用します。
58
+
59
+ ```python
60
+ from agents import enable_verbose_stdout_logging
61
+
62
+ enable_verbose_stdout_logging()
63
+ ```
64
+
65
+ ログを独自にカスタマイズしたい場合は、ハンドラー、フィルター、フォーマッターなどを追加できます。詳細は [Python logging guide](https://docs.python.org/3/howto/logging.html) を参照してください。
66
+
67
+ ```python
68
+ import logging
69
+
70
+ logger = logging.getLogger("openai.agents") # or openai.agents.tracing for the Tracing logger
71
+
72
+ # To make all logs show up
73
+ logger.setLevel(logging.DEBUG)
74
+ # To make info and above show up
75
+ logger.setLevel(logging.INFO)
76
+ # To make warning and above show up
77
+ logger.setLevel(logging.WARNING)
78
+ # etc
79
+
80
+ # You can customize this as needed, but this will output to `stderr` by default
81
+ logger.addHandler(logging.StreamHandler())
82
+ ```
83
+
84
+ ### ログ内の機密データ
85
+
86
+ 一部のログには機密データ(例:ユーザーデータ)が含まれる場合があります。こうしたデータの出力を無効にしたい場合は、以下の環境変数を設定してください。
87
+
88
+ LLM の入力と出力のロギングを無効にする:
89
+
90
+ ```bash
91
+ export OPENAI_AGENTS_DONT_LOG_MODEL_DATA=1
92
+ ```
93
+
94
+ ツールの入力と出力のロギングを無効にする:
95
+
96
+ ```bash
97
+ export OPENAI_AGENTS_DONT_LOG_TOOL_DATA=1
98
+ ```
@@ -0,0 +1,82 @@
1
+ ---
2
+ search:
3
+ exclude: true
4
+ ---
5
+ # コンテキスト管理
6
+
7
+ コンテキストという語は多義的です。ここでは、気に掛けるべきコンテキストには大きく 2 つのクラスがあります。
8
+
9
+ 1. コードでローカルに利用できるコンテキスト: これは、tool 関数の実行時や `on_handoff` のようなコールバック、ライフサイクルフック内などで必要になるデータや依存関係です。
10
+ 2. LLM が利用できるコンテキスト: これは、LLM が応答を生成する際に参照できるデータです。
11
+
12
+ ## ローカルコンテキスト
13
+
14
+ ローカルコンテキストは [`RunContextWrapper`][agents.run_context.RunContextWrapper] クラスと、その中の [`context`][agents.run_context.RunContextWrapper.context] プロパティで表現されます。動作の流れは次のとおりです:
15
+
16
+ 1. 任意の Python オブジェクトを作成します。一般的には dataclass や Pydantic オブジェクトを使うパターンが多いです。
17
+ 2. そのオブジェクトを各種 run メソッド(例: `Runner.run(..., **context=whatever**)`)に渡します。
18
+ 3. すべての tool 呼び出しやライフサイクルフックなどには `RunContextWrapper[T]` が渡されます。ここで `T` は作成したコンテキストオブジェクトの型で、`wrapper.context` からアクセスできます。
19
+
20
+ **最も重要なのは**、同一のエージェント実行内では、エージェント・tool 関数・ライフサイクルフックなどがすべて同じ _型_ のコンテキストを使う必要があるという点です。
21
+
22
+ コンテキストは次のような用途に利用できます。
23
+
24
+ - 実行のためのコンテキストデータ(例: username/uid などユーザーに関する情報)
25
+ - 依存関係(例: logger オブジェクトやデータフェッチャーなど)
26
+ - ヘルパー関数
27
+
28
+ !!! danger "Note"
29
+
30
+ コンテキストオブジェクトは **送信されません** LLM へ。これは純粋にローカルオブジェクトで、読み書きやメソッド呼び出しを自由に行えます。
31
+
32
+ ```python
33
+ import asyncio
34
+ from dataclasses import dataclass
35
+
36
+ from agents import Agent, RunContextWrapper, Runner, function_tool
37
+
38
+ @dataclass
39
+ class UserInfo: # (1)!
40
+ name: str
41
+ uid: int
42
+
43
+ @function_tool
44
+ async def fetch_user_age(wrapper: RunContextWrapper[UserInfo]) -> str: # (2)!
45
+ """Fetch the age of the user. Call this function to get user's age information."""
46
+ return f"The user {wrapper.context.name} is 47 years old"
47
+
48
+ async def main():
49
+ user_info = UserInfo(name="John", uid=123)
50
+
51
+ agent = Agent[UserInfo]( # (3)!
52
+ name="Assistant",
53
+ tools=[fetch_user_age],
54
+ )
55
+
56
+ result = await Runner.run( # (4)!
57
+ starting_agent=agent,
58
+ input="What is the age of the user?",
59
+ context=user_info,
60
+ )
61
+
62
+ print(result.final_output) # (5)!
63
+ # The user John is 47 years old.
64
+
65
+ if __name__ == "__main__":
66
+ asyncio.run(main())
67
+ ```
68
+
69
+ 1. これはコンテキストオブジェクトです。ここでは dataclass を使っていますが、任意の型を利用できます。
70
+ 2. これは tool です。`RunContextWrapper[UserInfo]` を受け取り、その実装でコンテキストを読み取ります。
71
+ 3. ジェネリック型 `UserInfo` でエージェントをマークすることで、型チェッカーがエラーを検出できます(例えば、異なるコンテキスト型を受け取る tool を渡そうとした場合)。
72
+ 4. `run` 関数にコンテキストが渡されます。
73
+ 5. エージェントは tool を正しく呼び出し、年齢を取得します。
74
+
75
+ ## エージェント/LLM コンテキスト
76
+
77
+ LLM が呼び出されたとき、LLM が参照できる **唯一の** データは会話履歴に含まれるものだけです。そのため、新しいデータを LLM に利用させたい場合は、そのデータを履歴に含める形で提供する必要があります。主な方法は次のとおりです。
78
+
79
+ 1. Agent の `instructions` に追加する。これは「system prompt」や「developer message」とも呼ばれます。system prompt は静的な文字列でも、コンテキストを受け取って文字列を返す動的な関数でもかまいません。たとえばユーザー名や現在の日付など、常に有用な情報を渡す一般的な方法です。
80
+ 2. `Runner.run` を呼び出す際の `input` に追加する。`instructions` と似ていますが、[指揮系統](https://cdn.openai.com/spec/model-spec-2024-05-08.html#follow-the-chain-of-command) の下位メッセージとして渡せる点が異なります。
81
+ 3. function tools を介して公開する。これは *オンデマンド* のコンテキストに便利です。LLM が必要になったタイミングで tool を呼び出し、データを取得できます。
82
+ 4. retrieval や Web 検索を利用する。これらはファイルやデータベースから関連データを取得する retrieval、あるいは Web から取得する Web 検索といった特別なツールです。関連コンテキストデータで応答を「グラウンディング」するのに役立ちます。
@@ -0,0 +1,47 @@
1
+ ---
2
+ search:
3
+ exclude: true
4
+ ---
5
+ # コード例
6
+
7
+ [リポジトリ](https://github.com/openai/openai-agents-python/tree/main/examples) の examples セクションでは、 SDK のさまざまなサンプル実装をご覧いただけます。これらのコード例は、異なるパターンや機能を示す複数のカテゴリーに整理されています。
8
+
9
+ ## カテゴリー
10
+
11
+ - **[agent_patterns](https://github.com/openai/openai-agents-python/tree/main/examples/agent_patterns)** :
12
+ このカテゴリーでは、一般的な エージェント 設計パターンを紹介しています。
13
+
14
+ - 決定論的ワークフロー
15
+ - ツールとしての エージェント
16
+ - エージェント の並列実行
17
+
18
+ - **[basic](https://github.com/openai/openai-agents-python/tree/main/examples/basic)** :
19
+ ここでは、 SDK の基本的な機能を取り上げています。
20
+
21
+ - 動的な system prompt
22
+ - ストリーミング 出力
23
+ - ライフサイクルイベント
24
+
25
+ - **[tool examples](https://github.com/openai/openai-agents-python/tree/main/examples/tools)** :
26
+ Web 検索 や ファイル検索 など、 OpenAI がホストするツールの実装方法と、それらを エージェント に統合する方法を学べます。
27
+
28
+ - **[model_providers](https://github.com/openai/openai-agents-python/tree/main/examples/model_providers)** :
29
+ OpenAI 以外のモデルを SDK で利用する方法を探ります。
30
+
31
+ - **[handoffs](https://github.com/openai/openai-agents-python/tree/main/examples/handoffs)** :
32
+ エージェント のハンドオフの実践的な例をご覧いただけます。
33
+
34
+ - **[mcp](https://github.com/openai/openai-agents-python/tree/main/examples/mcp)** :
35
+ MCP を使用して エージェント を構築する方法を学びます。
36
+
37
+ - **[customer_service](https://github.com/openai/openai-agents-python/tree/main/examples/customer_service)** と **[research_bot](https://github.com/openai/openai-agents-python/tree/main/examples/research_bot)** :
38
+ 実際のユースケースを想定した、より作り込まれた 2 つの例
39
+
40
+ - **customer_service** : 航空会社向けカスタマーサービスシステムの例。
41
+ - **research_bot** : シンプルな ディープリサーチ クローン。
42
+
43
+ - **[voice](https://github.com/openai/openai-agents-python/tree/main/examples/voice)** :
44
+ TTS と STT モデルを利用した音声 エージェント の例をご覧ください。
45
+
46
+ - **[realtime](https://github.com/openai/openai-agents-python/tree/main/examples/realtime)** :
47
+ SDK を使って Realtime API の体験を構築する方法を示す例。
@@ -4,44 +4,44 @@ search:
4
4
  ---
5
5
  # ガードレール
6
6
 
7
- ガードレールはエージェントと _並列_ に実行され、ユーザー入力のチェックとバリデーションを行えます。たとえば、非常に賢い(つまり遅く/高価な)モデルを使ってカスタマーリクエストに対応するエージェントがあるとします。悪意のあるユーザーがモデルに数学の宿題を手伝わせようとするのは避けたいでしょう。そこで、速く/安価なモデルを使ってガードレールを実行できます。ガードレールが悪意のある利用を検知した場合、即座にエラーを送出し、高価なモデルの実行を停止して時間とコストを節約します。
7
+ ガードレールはエージェントと _並列_ に実行され、ユーザー入力のチェックとバリデーションを行えます。たとえば、とても賢い (そのため遅く / 高価な) モデルを使用してカスタマーリクエストを処理するエージェントがあるとします。悪意のあるユーザーがモデルに数学の宿題を手伝わせようとした場合は避けたいでしょう。そこで、速く / 低コストなモデルで動くガードレールを実行できます。ガードレールが悪意ある利用を検知したら、直ちにエラーを発生させることで高価なモデルの実行を止め、時間とお金を節約できます。
8
8
 
9
- ガードレールには 2 種類あります。
9
+ ガードレールには 2 つの種類があります:
10
10
 
11
- 1. 入力ガードレール: 最初のユーザー入力に対して実行されます
12
- 2. 出力ガードレール: 最終的なエージェント出力に対して実行されます
11
+ 1. 入力ガードレールは最初のユーザー入力に対して実行されます
12
+ 2. 出力ガードレールはエージェントの最終出力に対して実行されます
13
13
 
14
14
  ## 入力ガードレール
15
15
 
16
- 入力ガードレールは 3 つのステップで実行されます。
16
+ 入力ガードレールは 3 ステップで実行されます:
17
17
 
18
18
  1. まず、ガードレールはエージェントに渡されたものと同じ入力を受け取ります。
19
- 2. 次に、ガードレール関数が実行され [`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を生成し、それが [`InputGuardrailResult`][agents.guardrail.InputGuardrailResult] でラップされます。
20
- 3. 最後に [`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が true かどうかを確認します。true の場合は [`InputGuardrailTripwireTriggered`][agents.exceptions.InputGuardrailTripwireTriggered] 例外が送出されるため、ユーザーへの応答や例外処理を適切に行えます。
19
+ 2. 次に、ガードレール関数が実行され [`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を生成し、これを [`InputGuardrailResult`][agents.guardrail.InputGuardrailResult] でラップします。
20
+ 3. 最後に [`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が `true` かどうかを確認します。`true` の場合は [`InputGuardrailTripwireTriggered`][agents.exceptions.InputGuardrailTripwireTriggered] 例外が発生し、ユーザーへの適切な応答や例外処理を行えます。
21
21
 
22
22
  !!! Note
23
23
 
24
- 入力ガードレールはユーザー入力に対して実行されることを想定しているため、エージェントが *最初* のエージェントである場合にのみ実行されます。`guardrails` プロパティが `Runner.run` の引数ではなくエージェントにあるのはなぜでしょうか? それは、ガードレールが実際のエージェントに密接に関連しているからです。エージェントごとに異なるガードレールを実行するため、コードを同じ場所に置いておくと可読性が向上します。
24
+ 入力ガードレールはユーザー入力に対して実行されることを想定しているため、エージェントが *最初の* エージェントである場合にのみガードレールが実行されます。`guardrails` プロパティがエージェントにあるのはなぜか、`Runner.run` に渡さないのはなぜかと思われるかもしれません。これは、ガードレールが実際のエージェントに関連する傾向があるためです。エージェントごとに異なるガードレールを実行するため、コードを同じ場所に置くことで読みやすさが向上します。
25
25
 
26
26
  ## 出力ガードレール
27
27
 
28
- 出力ガードレールは 3 つのステップで実行されます。
28
+ 出力ガードレールは 3 ステップで実行されます:
29
29
 
30
30
  1. まず、ガードレールはエージェントが生成した出力を受け取ります。
31
- 2. 次に、ガードレール関数が実行され [`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を生成し、それが [`OutputGuardrailResult`][agents.guardrail.OutputGuardrailResult] でラップされます。
32
- 3. 最後に [`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が true かどうかを確認します。true の場合は [`OutputGuardrailTripwireTriggered`][agents.exceptions.OutputGuardrailTripwireTriggered] 例外が送出されるため、ユーザーへの応答や例外処理を適切に行えます。
31
+ 2. 次に、ガードレール関数が実行され [`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を生成し、これを [`OutputGuardrailResult`][agents.guardrail.OutputGuardrailResult] でラップします。
32
+ 3. 最後に [`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が `true` かどうかを確認します。`true` の場合は [`OutputGuardrailTripwireTriggered`][agents.exceptions.OutputGuardrailTripwireTriggered] 例外が発生し、ユーザーへの適切な応答や例外処理を行えます。
33
33
 
34
34
  !!! Note
35
35
 
36
- 出力ガードレールは最終的なエージェント出力に対して実行されることを想定しているため、エージェントが *最後* のエージェントである場合にのみ実行されます。入力ガードレールと同様、ガードレールは実際のエージェントに密接に関連しているため、ガードレールのコードを同じ場所に置くことで可読性が向上します。
36
+ 出力ガードレールはエージェントの最終出力に対して実行されることを想定しているため、エージェントが *最後の* エージェントである場合にのみガードレールが実行されます。入力ガードレールと同様に、ガードレールは実際のエージェントに関連する傾向があるため、コードを同じ場所に置くことで読みやすさが向上します。
37
37
 
38
- ## トリップワイヤー
38
+ ## トリップワイヤ
39
39
 
40
- 入力または出力がガードレールを通過できなかった場合、ガードレールはトリップワイヤーでそれを示します。トリップワイヤーを発動したガードレールが検知され次第、ただちに `{Input,Output}GuardrailTripwireTriggered` 例外を送出し、エージェントの実行を停止します。
40
+ 入力または出力がガードレールに失敗した場合、ガードレールはトリップワイヤを用いてそれを示します。トリップワイヤが作動したガードレールを検知するとすぐに、`{Input,Output}GuardrailTripwireTriggered` 例外を発生させ、エージェントの実行を停止します。
41
41
 
42
42
  ## ガードレールの実装
43
43
 
44
- 入力を受け取り [`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を返す関数を用意する必要があります。この例では、内部でエージェントを実行することでこれを実現します。
44
+ 入力を受け取り、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を返す関数を用意する必要があります。以下の例では、その処理を内部でエージェントを実行することで行っています。
45
45
 
46
46
  ```python
47
47
  from pydantic import BaseModel
@@ -95,9 +95,9 @@ async def main():
95
95
  ```
96
96
 
97
97
  1. このエージェントをガードレール関数内で使用します。
98
- 2. これはエージェントの入力/コンテキストを受け取り、結果を返すガードレール関数です。
99
- 3. ガードレール結果に追加情報を含めることができます。
100
- 4. これがワークフローを定義する実際のエージェントです。
98
+ 2. これはエージェントの入力 / コンテキストを受け取り、結果を返すガードレール関数です。
99
+ 3. ガードレールの結果に追加情報を含めることができます。
100
+ 4. これはワークフローを定義する実際のエージェントです。
101
101
 
102
102
  出力ガードレールも同様です。
103
103
 
@@ -155,4 +155,4 @@ async def main():
155
155
  1. これは実際のエージェントの出力型です。
156
156
  2. これはガードレールの出力型です。
157
157
  3. これはエージェントの出力を受け取り、結果を返すガードレール関数です。
158
- 4. これがワークフローを定義する実際のエージェントです。
158
+ 4. これはワークフローを定義する実際のエージェントです。