openai-agents 0.2.10__tar.gz → 0.3.0__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 (535) hide show
  1. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/workflows/update-docs.yml +5 -1
  2. {openai_agents-0.2.10 → openai_agents-0.3.0}/.gitignore +2 -1
  3. {openai_agents-0.2.10 → openai_agents-0.3.0}/Makefile +3 -2
  4. {openai_agents-0.2.10 → openai_agents-0.3.0}/PKG-INFO +2 -2
  5. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/agents.md +48 -8
  6. openai_agents-0.3.0/docs/ja/agents.md +289 -0
  7. openai_agents-0.3.0/docs/ja/config.md +98 -0
  8. openai_agents-0.3.0/docs/ja/context.md +82 -0
  9. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/examples.md +17 -17
  10. openai_agents-0.3.0/docs/ja/guardrails.md +158 -0
  11. openai_agents-0.3.0/docs/ja/handoffs.md +118 -0
  12. openai_agents-0.3.0/docs/ja/index.md +58 -0
  13. openai_agents-0.3.0/docs/ja/mcp.md +317 -0
  14. openai_agents-0.3.0/docs/ja/models/index.md +192 -0
  15. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/models/litellm.md +10 -10
  16. openai_agents-0.3.0/docs/ja/multi_agent.md +41 -0
  17. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/quickstart.md +18 -18
  18. openai_agents-0.3.0/docs/ja/realtime/guide.md +176 -0
  19. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/realtime/quickstart.md +29 -29
  20. openai_agents-0.3.0/docs/ja/release.md +32 -0
  21. openai_agents-0.3.0/docs/ja/repl.md +23 -0
  22. openai_agents-0.3.0/docs/ja/results.md +56 -0
  23. openai_agents-0.3.0/docs/ja/running_agents.md +142 -0
  24. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/sessions.md +52 -30
  25. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/streaming.md +6 -6
  26. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/tools.md +47 -47
  27. openai_agents-0.3.0/docs/ja/tracing.md +151 -0
  28. openai_agents-0.3.0/docs/ja/usage.md +68 -0
  29. openai_agents-0.3.0/docs/ja/visualization.md +108 -0
  30. openai_agents-0.3.0/docs/ja/voice/pipeline.md +79 -0
  31. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ja/voice/quickstart.md +9 -9
  32. openai_agents-0.3.0/docs/ja/voice/tracing.md +18 -0
  33. openai_agents-0.3.0/docs/mcp.md +333 -0
  34. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/realtime/guide.md +2 -2
  35. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/realtime/quickstart.md +3 -3
  36. openai_agents-0.3.0/docs/ref/memory/openai_conversations_session.md +3 -0
  37. openai_agents-0.3.0/docs/ref/memory/sqlite_session.md +3 -0
  38. openai_agents-0.3.0/docs/ref/models/default_models.md +3 -0
  39. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/running_agents.md +1 -0
  40. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/scripts/translate_docs.py +29 -3
  41. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/sessions.md +24 -1
  42. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/usage.md +15 -5
  43. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/lifecycle_example.py +33 -8
  44. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/hosted_mcp/connectors.py +1 -1
  45. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/app/README.md +8 -3
  46. openai_agents-0.3.0/examples/realtime/app/server.py +322 -0
  47. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/app/static/app.js +363 -135
  48. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/app/static/index.html +5 -1
  49. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/cli/demo.py +143 -37
  50. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/tools/web_search_filters.py +2 -2
  51. {openai_agents-0.2.10 → openai_agents-0.3.0}/pyproject.toml +2 -2
  52. openai_agents-0.3.0/src/agents/_debug.py +28 -0
  53. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/_run_impl.py +34 -37
  54. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/models/litellm_model.py +20 -5
  55. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/memory/__init__.py +2 -0
  56. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/memory/openai_conversations_session.py +0 -3
  57. openai_agents-0.3.0/src/agents/memory/util.py +20 -0
  58. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/openai_chatcompletions.py +17 -2
  59. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/openai_responses.py +17 -4
  60. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/_util.py +1 -1
  61. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/agent.py +7 -0
  62. openai_agents-0.3.0/src/agents/realtime/audio_formats.py +29 -0
  63. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/config.py +22 -4
  64. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/items.py +17 -1
  65. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/model.py +6 -0
  66. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/model_inputs.py +15 -1
  67. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/openai_realtime.py +428 -139
  68. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/session.py +167 -14
  69. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/run.py +102 -54
  70. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tool.py +2 -2
  71. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/util/_json.py +19 -1
  72. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/input.py +5 -4
  73. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/models/openai_stt.py +6 -4
  74. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/conftest.py +11 -0
  75. openai_agents-0.3.0/tests/realtime/test_audio_formats_unit.py +28 -0
  76. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_conversion_helpers.py +26 -23
  77. openai_agents-0.3.0/tests/realtime/test_ga_session_update_normalization.py +35 -0
  78. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_item_parsing.py +20 -20
  79. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_openai_realtime.py +213 -8
  80. openai_agents-0.3.0/tests/realtime/test_openai_realtime_conversions.py +103 -0
  81. openai_agents-0.3.0/tests/realtime/test_playback_tracker_manual_unit.py +23 -0
  82. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_realtime_handoffs.py +58 -0
  83. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_session.py +236 -3
  84. openai_agents-0.3.0/tests/realtime/test_session_payload_and_formats.py +93 -0
  85. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_tracing.py +22 -16
  86. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_runner.py +104 -5
  87. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_runner_streamed.py +12 -11
  88. openai_agents-0.3.0/tests/test_debug.py +54 -0
  89. openai_agents-0.3.0/tests/test_model_payload_iterators.py +187 -0
  90. openai_agents-0.3.0/tests/test_run_hooks.py +223 -0
  91. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_session.py +54 -7
  92. openai_agents-0.3.0/tests/test_streaming_tool_call_arguments.py +373 -0
  93. openai_agents-0.3.0/tests/utils/test_json.py +32 -0
  94. openai_agents-0.3.0/tests/voice/__init__.py +0 -0
  95. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/test_input.py +10 -4
  96. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/test_openai_stt.py +25 -12
  97. {openai_agents-0.2.10 → openai_agents-0.3.0}/uv.lock +5 -5
  98. openai_agents-0.2.10/docs/ja/agents.md +0 -248
  99. openai_agents-0.2.10/docs/ja/config.md +0 -98
  100. openai_agents-0.2.10/docs/ja/context.md +0 -82
  101. openai_agents-0.2.10/docs/ja/guardrails.md +0 -158
  102. openai_agents-0.2.10/docs/ja/handoffs.md +0 -118
  103. openai_agents-0.2.10/docs/ja/index.md +0 -58
  104. openai_agents-0.2.10/docs/ja/mcp.md +0 -191
  105. openai_agents-0.2.10/docs/ja/models/index.md +0 -192
  106. openai_agents-0.2.10/docs/ja/multi_agent.md +0 -41
  107. openai_agents-0.2.10/docs/ja/realtime/guide.md +0 -176
  108. openai_agents-0.2.10/docs/ja/release.md +0 -32
  109. openai_agents-0.2.10/docs/ja/repl.md +0 -23
  110. openai_agents-0.2.10/docs/ja/results.md +0 -56
  111. openai_agents-0.2.10/docs/ja/running_agents.md +0 -141
  112. openai_agents-0.2.10/docs/ja/tracing.md +0 -153
  113. openai_agents-0.2.10/docs/ja/usage.md +0 -58
  114. openai_agents-0.2.10/docs/ja/visualization.md +0 -107
  115. openai_agents-0.2.10/docs/ja/voice/pipeline.md +0 -79
  116. openai_agents-0.2.10/docs/ja/voice/tracing.md +0 -18
  117. openai_agents-0.2.10/docs/mcp.md +0 -187
  118. openai_agents-0.2.10/examples/realtime/app/server.py +0 -163
  119. openai_agents-0.2.10/src/agents/_debug.py +0 -17
  120. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  121. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  122. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
  123. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  124. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  125. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/workflows/docs.yml +0 -0
  126. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/workflows/issues.yml +0 -0
  127. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/workflows/publish.yml +0 -0
  128. {openai_agents-0.2.10 → openai_agents-0.3.0}/.github/workflows/tests.yml +0 -0
  129. {openai_agents-0.2.10 → openai_agents-0.3.0}/.prettierrc +0 -0
  130. {openai_agents-0.2.10 → openai_agents-0.3.0}/.vscode/launch.json +0 -0
  131. {openai_agents-0.2.10 → openai_agents-0.3.0}/.vscode/settings.json +0 -0
  132. {openai_agents-0.2.10 → openai_agents-0.3.0}/AGENTS.md +0 -0
  133. {openai_agents-0.2.10 → openai_agents-0.3.0}/CLAUDE.md +0 -0
  134. {openai_agents-0.2.10 → openai_agents-0.3.0}/LICENSE +0 -0
  135. {openai_agents-0.2.10 → openai_agents-0.3.0}/README.md +0 -0
  136. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/assets/images/favicon-platform.svg +0 -0
  137. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/assets/images/graph.png +0 -0
  138. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/assets/images/mcp-tracing.jpg +0 -0
  139. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/assets/images/orchestration.png +0 -0
  140. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/assets/logo.svg +0 -0
  141. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/config.md +0 -0
  142. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/context.md +0 -0
  143. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/examples.md +0 -0
  144. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/guardrails.md +0 -0
  145. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/handoffs.md +0 -0
  146. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/index.md +0 -0
  147. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/models/index.md +0 -0
  148. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/models/litellm.md +0 -0
  149. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/multi_agent.md +0 -0
  150. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/quickstart.md +0 -0
  151. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/agent.md +0 -0
  152. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/agent_output.md +0 -0
  153. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/computer.md +0 -0
  154. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/exceptions.md +0 -0
  155. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/handoff_filters.md +0 -0
  156. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/handoff_prompt.md +0 -0
  157. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/litellm.md +0 -0
  158. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/memory/sqlalchemy_session.md +0 -0
  159. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/models/litellm_model.md +0 -0
  160. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/models/litellm_provider.md +0 -0
  161. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/extensions/visualization.md +0 -0
  162. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/function_schema.md +0 -0
  163. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/guardrail.md +0 -0
  164. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/handoffs.md +0 -0
  165. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/index.md +0 -0
  166. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/items.md +0 -0
  167. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/lifecycle.md +0 -0
  168. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/logger.md +0 -0
  169. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/mcp/server.md +0 -0
  170. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/mcp/util.md +0 -0
  171. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/memory/session.md +0 -0
  172. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/memory.md +0 -0
  173. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/model_settings.md +0 -0
  174. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/chatcmpl_converter.md +0 -0
  175. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/chatcmpl_helpers.md +0 -0
  176. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/chatcmpl_stream_handler.md +0 -0
  177. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/fake_id.md +0 -0
  178. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/interface.md +0 -0
  179. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/multi_provider.md +0 -0
  180. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/openai_chatcompletions.md +0 -0
  181. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/openai_provider.md +0 -0
  182. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/models/openai_responses.md +0 -0
  183. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/prompts.md +0 -0
  184. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/agent.md +0 -0
  185. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/config.md +0 -0
  186. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/events.md +0 -0
  187. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/handoffs.md +0 -0
  188. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/items.md +0 -0
  189. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/model.md +0 -0
  190. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/model_events.md +0 -0
  191. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/model_inputs.md +0 -0
  192. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/openai_realtime.md +0 -0
  193. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/runner.md +0 -0
  194. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/realtime/session.md +0 -0
  195. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/repl.md +0 -0
  196. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/result.md +0 -0
  197. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/run.md +0 -0
  198. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/run_context.md +0 -0
  199. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/stream_events.md +0 -0
  200. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/strict_schema.md +0 -0
  201. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tool.md +0 -0
  202. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tool_context.md +0 -0
  203. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/create.md +0 -0
  204. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/index.md +0 -0
  205. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/logger.md +0 -0
  206. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/processor_interface.md +0 -0
  207. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/processors.md +0 -0
  208. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/provider.md +0 -0
  209. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/scope.md +0 -0
  210. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/setup.md +0 -0
  211. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/span_data.md +0 -0
  212. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/spans.md +0 -0
  213. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/traces.md +0 -0
  214. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/tracing/util.md +0 -0
  215. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/usage.md +0 -0
  216. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/version.md +0 -0
  217. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/events.md +0 -0
  218. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/exceptions.md +0 -0
  219. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/imports.md +0 -0
  220. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/input.md +0 -0
  221. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/model.md +0 -0
  222. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/models/openai_model_provider.md +0 -0
  223. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/models/openai_provider.md +0 -0
  224. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/models/openai_stt.md +0 -0
  225. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/models/openai_tts.md +0 -0
  226. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/pipeline.md +0 -0
  227. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/pipeline_config.md +0 -0
  228. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/result.md +0 -0
  229. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/utils.md +0 -0
  230. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/ref/voice/workflow.md +0 -0
  231. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/release.md +0 -0
  232. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/repl.md +0 -0
  233. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/results.md +0 -0
  234. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/scripts/generate_ref_files.py +0 -0
  235. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/streaming.md +0 -0
  236. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/stylesheets/extra.css +0 -0
  237. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/tools.md +0 -0
  238. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/tracing.md +0 -0
  239. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/visualization.md +0 -0
  240. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/voice/pipeline.md +0 -0
  241. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/voice/quickstart.md +0 -0
  242. {openai_agents-0.2.10 → openai_agents-0.3.0}/docs/voice/tracing.md +0 -0
  243. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/__init__.py +0 -0
  244. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/README.md +0 -0
  245. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/agents_as_tools.py +0 -0
  246. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/agents_as_tools_conditional.py +0 -0
  247. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/deterministic.py +0 -0
  248. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/forcing_tool_use.py +0 -0
  249. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/input_guardrails.py +0 -0
  250. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/llm_as_a_judge.py +0 -0
  251. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/output_guardrails.py +0 -0
  252. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/parallelization.py +0 -0
  253. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/routing.py +0 -0
  254. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/agent_patterns/streaming_guardrails.py +0 -0
  255. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/agent_lifecycle_example.py +0 -0
  256. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/dynamic_system_prompt.py +0 -0
  257. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/hello_world.py +0 -0
  258. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/hello_world_gpt_5.py +0 -0
  259. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/hello_world_gpt_oss.py +0 -0
  260. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/hello_world_jupyter.ipynb +0 -0
  261. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/local_file.py +0 -0
  262. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/local_image.py +0 -0
  263. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/media/image_bison.jpg +0 -0
  264. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/media/partial_o3-and-o4-mini-system-card.pdf +0 -0
  265. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/non_strict_output_type.py +0 -0
  266. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/previous_response_id.py +0 -0
  267. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/prompt_template.py +0 -0
  268. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/remote_image.py +0 -0
  269. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/remote_pdf.py +0 -0
  270. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/stream_function_call_args.py +0 -0
  271. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/stream_items.py +0 -0
  272. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/stream_text.py +0 -0
  273. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/tools.py +0 -0
  274. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/basic/usage_tracking.py +0 -0
  275. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/customer_service/main.py +0 -0
  276. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/README.md +0 -0
  277. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/__init__.py +0 -0
  278. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/__init__.py +0 -0
  279. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/financials_agent.py +0 -0
  280. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/planner_agent.py +0 -0
  281. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/risk_agent.py +0 -0
  282. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/search_agent.py +0 -0
  283. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
  284. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/agents/writer_agent.py +0 -0
  285. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/main.py +0 -0
  286. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/manager.py +0 -0
  287. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/financial_research_agent/printer.py +0 -0
  288. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/handoffs/message_filter.py +0 -0
  289. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/handoffs/message_filter_streaming.py +0 -0
  290. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/hosted_mcp/__init__.py +0 -0
  291. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/hosted_mcp/approvals.py +0 -0
  292. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/hosted_mcp/simple.py +0 -0
  293. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/filesystem_example/README.md +0 -0
  294. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/filesystem_example/main.py +0 -0
  295. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
  296. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
  297. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
  298. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/git_example/README.md +0 -0
  299. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/git_example/main.py +0 -0
  300. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/prompt_server/README.md +0 -0
  301. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/prompt_server/main.py +0 -0
  302. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/prompt_server/server.py +0 -0
  303. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/sse_example/README.md +0 -0
  304. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/sse_example/main.py +0 -0
  305. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/sse_example/server.py +0 -0
  306. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/streamablehttp_example/README.md +0 -0
  307. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/streamablehttp_example/main.py +0 -0
  308. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/mcp/streamablehttp_example/server.py +0 -0
  309. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/memory/openai_session_example.py +0 -0
  310. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/memory/sqlalchemy_session_example.py +0 -0
  311. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/memory/sqlite_session_example.py +0 -0
  312. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/model_providers/README.md +0 -0
  313. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/model_providers/custom_example_agent.py +0 -0
  314. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/model_providers/custom_example_global.py +0 -0
  315. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/model_providers/custom_example_provider.py +0 -0
  316. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/model_providers/litellm_auto.py +0 -0
  317. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/model_providers/litellm_provider.py +0 -0
  318. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/app/agent.py +0 -0
  319. /openai_agents-0.2.10/examples/realtime/twilio/__init__.py → /openai_agents-0.3.0/examples/realtime/app/static/favicon.ico +0 -0
  320. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/cli/ui.py +0 -0
  321. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/twilio/README.md +0 -0
  322. {openai_agents-0.2.10/examples/research_bot/agents → openai_agents-0.3.0/examples/realtime/twilio}/__init__.py +0 -0
  323. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/twilio/requirements.txt +0 -0
  324. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/twilio/server.py +0 -0
  325. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/realtime/twilio/twilio_handler.py +0 -0
  326. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/reasoning_content/__init__.py +0 -0
  327. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/reasoning_content/gpt_oss_stream.py +0 -0
  328. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/reasoning_content/main.py +0 -0
  329. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/reasoning_content/runner_example.py +0 -0
  330. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/README.md +0 -0
  331. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/__init__.py +0 -0
  332. {openai_agents-0.2.10/examples/voice → openai_agents-0.3.0/examples/research_bot/agents}/__init__.py +0 -0
  333. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/agents/planner_agent.py +0 -0
  334. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/agents/search_agent.py +0 -0
  335. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/agents/writer_agent.py +0 -0
  336. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/main.py +0 -0
  337. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/manager.py +0 -0
  338. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/printer.py +0 -0
  339. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  340. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  341. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/sample_outputs/vacation.md +0 -0
  342. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  343. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/tools/code_interpreter.py +0 -0
  344. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/tools/computer_use.py +0 -0
  345. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/tools/file_search.py +0 -0
  346. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/tools/image_generator.py +0 -0
  347. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/tools/web_search.py +0 -0
  348. {openai_agents-0.2.10/examples/voice/static → openai_agents-0.3.0/examples/voice}/__init__.py +0 -0
  349. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/voice/static/README.md +0 -0
  350. {openai_agents-0.2.10/examples/voice/streamed → openai_agents-0.3.0/examples/voice/static}/__init__.py +0 -0
  351. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/voice/static/main.py +0 -0
  352. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/voice/static/util.py +0 -0
  353. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/voice/streamed/README.md +0 -0
  354. {openai_agents-0.2.10/src/agents/extensions → openai_agents-0.3.0/examples/voice/streamed}/__init__.py +0 -0
  355. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/voice/streamed/main.py +0 -0
  356. {openai_agents-0.2.10 → openai_agents-0.3.0}/examples/voice/streamed/my_workflow.py +0 -0
  357. {openai_agents-0.2.10 → openai_agents-0.3.0}/mkdocs.yml +0 -0
  358. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/__init__.py +0 -0
  359. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/_config.py +0 -0
  360. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/agent.py +0 -0
  361. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/agent_output.py +0 -0
  362. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/computer.py +0 -0
  363. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/exceptions.py +0 -0
  364. {openai_agents-0.2.10/src/agents/extensions/models → openai_agents-0.3.0/src/agents/extensions}/__init__.py +0 -0
  365. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/handoff_filters.py +0 -0
  366. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/handoff_prompt.py +0 -0
  367. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/memory/__init__.py +0 -0
  368. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/memory/sqlalchemy_session.py +0 -0
  369. {openai_agents-0.2.10/src/agents/util → openai_agents-0.3.0/src/agents/extensions/models}/__init__.py +0 -0
  370. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/models/litellm_provider.py +0 -0
  371. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/extensions/visualization.py +0 -0
  372. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/function_schema.py +0 -0
  373. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/guardrail.py +0 -0
  374. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/handoffs.py +0 -0
  375. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/items.py +0 -0
  376. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/lifecycle.py +0 -0
  377. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/logger.py +0 -0
  378. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/mcp/__init__.py +0 -0
  379. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/mcp/server.py +0 -0
  380. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/mcp/util.py +0 -0
  381. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/memory/session.py +0 -0
  382. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/memory/sqlite_session.py +0 -0
  383. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/model_settings.py +0 -0
  384. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/__init__.py +0 -0
  385. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/_openai_shared.py +0 -0
  386. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/chatcmpl_converter.py +0 -0
  387. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/chatcmpl_helpers.py +0 -0
  388. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/chatcmpl_stream_handler.py +0 -0
  389. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/default_models.py +0 -0
  390. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/fake_id.py +0 -0
  391. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/interface.py +0 -0
  392. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/multi_provider.py +0 -0
  393. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/models/openai_provider.py +0 -0
  394. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/prompts.py +0 -0
  395. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/py.typed +0 -0
  396. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/README.md +0 -0
  397. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/__init__.py +0 -0
  398. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/_default_tracker.py +0 -0
  399. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/events.py +0 -0
  400. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/handoffs.py +0 -0
  401. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/model_events.py +0 -0
  402. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/realtime/runner.py +0 -0
  403. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/repl.py +0 -0
  404. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/result.py +0 -0
  405. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/run_context.py +0 -0
  406. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/stream_events.py +0 -0
  407. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/strict_schema.py +0 -0
  408. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tool_context.py +0 -0
  409. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/__init__.py +0 -0
  410. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/create.py +0 -0
  411. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/logger.py +0 -0
  412. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/processor_interface.py +0 -0
  413. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/processors.py +0 -0
  414. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/provider.py +0 -0
  415. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/scope.py +0 -0
  416. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/setup.py +0 -0
  417. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/span_data.py +0 -0
  418. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/spans.py +0 -0
  419. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/traces.py +0 -0
  420. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/tracing/util.py +0 -0
  421. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/usage.py +0 -0
  422. {openai_agents-0.2.10/src/agents/voice/models → openai_agents-0.3.0/src/agents/util}/__init__.py +0 -0
  423. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/util/_coro.py +0 -0
  424. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/util/_error_tracing.py +0 -0
  425. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/util/_pretty_print.py +0 -0
  426. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/util/_transforms.py +0 -0
  427. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/util/_types.py +0 -0
  428. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/version.py +0 -0
  429. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/__init__.py +0 -0
  430. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/events.py +0 -0
  431. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/exceptions.py +0 -0
  432. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/imports.py +0 -0
  433. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/model.py +0 -0
  434. {openai_agents-0.2.10/tests → openai_agents-0.3.0/src/agents/voice/models}/__init__.py +0 -0
  435. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/models/openai_model_provider.py +0 -0
  436. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/models/openai_tts.py +0 -0
  437. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/pipeline.py +0 -0
  438. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/pipeline_config.py +0 -0
  439. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/result.py +0 -0
  440. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/utils.py +0 -0
  441. {openai_agents-0.2.10 → openai_agents-0.3.0}/src/agents/voice/workflow.py +0 -0
  442. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/README.md +0 -0
  443. {openai_agents-0.2.10/tests/fastapi → openai_agents-0.3.0/tests}/__init__.py +0 -0
  444. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/extensions/memory/test_sqlalchemy_session.py +0 -0
  445. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/fake_model.py +0 -0
  446. {openai_agents-0.2.10/tests/mcp → openai_agents-0.3.0/tests/fastapi}/__init__.py +0 -0
  447. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/fastapi/streaming_app.py +0 -0
  448. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/fastapi/test_streaming_context.py +0 -0
  449. {openai_agents-0.2.10/tests/models → openai_agents-0.3.0/tests/mcp}/__init__.py +0 -0
  450. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/conftest.py +0 -0
  451. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/helpers.py +0 -0
  452. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_caching.py +0 -0
  453. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_client_session_retries.py +0 -0
  454. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_connect_disconnect.py +0 -0
  455. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_mcp_tracing.py +0 -0
  456. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_mcp_util.py +0 -0
  457. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_prompt_server.py +0 -0
  458. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_runner_calls_mcp.py +0 -0
  459. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_server_errors.py +0 -0
  460. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/mcp/test_tool_filtering.py +0 -0
  461. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/model_settings/test_serialization.py +0 -0
  462. {openai_agents-0.2.10/tests/realtime → openai_agents-0.3.0/tests/models}/__init__.py +0 -0
  463. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/models/conftest.py +0 -0
  464. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/models/test_default_models.py +0 -0
  465. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/models/test_kwargs_functionality.py +0 -0
  466. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/models/test_litellm_chatcompletions_stream.py +0 -0
  467. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/models/test_litellm_extra_body.py +0 -0
  468. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/models/test_map.py +0 -0
  469. {openai_agents-0.2.10/tests/voice → openai_agents-0.3.0/tests/realtime}/__init__.py +0 -0
  470. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_agent.py +0 -0
  471. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_model_events.py +0 -0
  472. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_playback_tracker.py +0 -0
  473. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/realtime/test_runner.py +0 -0
  474. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_as_tool.py +0 -0
  475. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_clone_shallow_copy.py +0 -0
  476. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_config.py +0 -0
  477. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_hooks.py +0 -0
  478. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_instructions_signature.py +0 -0
  479. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_llm_hooks.py +0 -0
  480. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_prompt.py +0 -0
  481. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_agent_tracing.py +0 -0
  482. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_call_model_input_filter.py +0 -0
  483. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_call_model_input_filter_unit.py +0 -0
  484. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_cancel_streaming.py +0 -0
  485. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_computer_action.py +0 -0
  486. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_config.py +0 -0
  487. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_doc_parsing.py +0 -0
  488. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_extension_filters.py +0 -0
  489. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_extra_headers.py +0 -0
  490. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_function_schema.py +0 -0
  491. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_function_tool.py +0 -0
  492. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_function_tool_decorator.py +0 -0
  493. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_global_hooks.py +0 -0
  494. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_guardrails.py +0 -0
  495. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_handoff_tool.py +0 -0
  496. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_items_helpers.py +0 -0
  497. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_logprobs.py +0 -0
  498. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_max_turns.py +0 -0
  499. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_openai_chatcompletions.py +0 -0
  500. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_openai_chatcompletions_converter.py +0 -0
  501. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_openai_chatcompletions_stream.py +0 -0
  502. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_openai_responses_converter.py +0 -0
  503. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_output_tool.py +0 -0
  504. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_pretty_print.py +0 -0
  505. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_reasoning_content.py +0 -0
  506. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_repl.py +0 -0
  507. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_responses.py +0 -0
  508. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_responses_tracing.py +0 -0
  509. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_result_cast.py +0 -0
  510. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_run.py +0 -0
  511. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_run_config.py +0 -0
  512. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_run_error_details.py +0 -0
  513. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_run_step_execution.py +0 -0
  514. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_run_step_processing.py +0 -0
  515. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_session_exceptions.py +0 -0
  516. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_stream_events.py +0 -0
  517. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_strict_schema.py +0 -0
  518. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_tool_choice_reset.py +0 -0
  519. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_tool_converter.py +0 -0
  520. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_tool_use_behavior.py +0 -0
  521. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_trace_processor.py +0 -0
  522. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_tracing.py +0 -0
  523. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_tracing_errors.py +0 -0
  524. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_tracing_errors_streamed.py +0 -0
  525. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_usage.py +0 -0
  526. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/test_visualization.py +0 -0
  527. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/testing_processor.py +0 -0
  528. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/tracing/test_processor_api_key.py +0 -0
  529. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/tracing/test_set_api_key_fix.py +0 -0
  530. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/conftest.py +0 -0
  531. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/fake_models.py +0 -0
  532. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/helpers.py +0 -0
  533. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/test_openai_tts.py +0 -0
  534. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/test_pipeline.py +0 -0
  535. {openai_agents-0.2.10 → openai_agents-0.3.0}/tests/voice/test_workflow.py +0 -0
@@ -55,6 +55,10 @@ jobs:
55
55
  with:
56
56
  commit-message: "Update all translated document pages"
57
57
  title: "Update all translated document pages"
58
- body: "Automated update of translated documentation"
58
+ body: |
59
+ Automated update of translated documentation.
60
+
61
+ Triggered by commit: [${{ github.event.head_commit.id }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.head_commit.id }}).
62
+ Message: `${{ github.event.head_commit.message }}`
59
63
  branch: update-translated-docs-${{ github.run_id }}
60
64
  delete-branch: true
@@ -100,7 +100,8 @@ celerybeat.pid
100
100
  *.sage.py
101
101
 
102
102
  # Environments
103
- .env
103
+ .python-version
104
+ .env*
104
105
  .venv
105
106
  env/
106
107
  venv/
@@ -17,7 +17,7 @@ lint:
17
17
 
18
18
  .PHONY: mypy
19
19
  mypy:
20
- uv run mypy .
20
+ uv run mypy . --exclude site
21
21
 
22
22
  .PHONY: tests
23
23
  tests:
@@ -39,7 +39,8 @@ snapshots-create:
39
39
  uv run pytest --inline-snapshot=create
40
40
 
41
41
  .PHONY: old_version_tests
42
- old_version_tests:
42
+ old_version_tests:
43
+ UV_PROJECT_ENVIRONMENT=.venv_39 uv sync --python 3.9 --all-extras --all-packages --group dev
43
44
  UV_PROJECT_ENVIRONMENT=.venv_39 uv run --python 3.9 -m pytest
44
45
 
45
46
  .PHONY: build-docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.2.10
3
+ Version: 0.3.0
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.102.0
24
+ Requires-Dist: openai<2,>=1.107.1
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
@@ -16,7 +16,7 @@ from agents import Agent, ModelSettings, function_tool
16
16
 
17
17
  @function_tool
18
18
  def get_weather(city: str) -> str:
19
- """returns weather info for the specified city."""
19
+ """returns weather info for the specified city."""
20
20
  return f"The weather in {city} is sunny"
21
21
 
22
22
  agent = Agent(
@@ -71,9 +71,47 @@ agent = Agent(
71
71
 
72
72
  When you pass an `output_type`, that tells the model to use [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) instead of regular plain text responses.
73
73
 
74
- ## Handoffs
74
+ ## Multi-agent system design patterns
75
75
 
76
- Handoffs are sub-agents that the agent can delegate to. You provide a list of handoffs, and the agent can choose to delegate to them if relevant. This is a powerful pattern that allows orchestrating modular, specialized agents that excel at a single task. Read more in the [handoffs](handoffs.md) documentation.
76
+ There are many ways to design multi‑agent systems, but we commonly see two broadly applicable patterns:
77
+
78
+ 1. Manager (agents as tools): A central manager/orchestrator invokes specialized sub‑agents as tools and retains control of the conversation.
79
+ 2. Handoffs: Peer agents hand off control to a specialized agent that takes over the conversation. This is decentralized.
80
+
81
+ See [our practical guide to building agents](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf) for more details.
82
+
83
+ ### Manager (agents as tools)
84
+
85
+ The `customer_facing_agent` handles all user interaction and invokes specialized sub‑agents exposed as tools. Read more in the [tools](tools.md#agents-as-tools) documentation.
86
+
87
+ ```python
88
+ from agents import Agent
89
+
90
+ booking_agent = Agent(...)
91
+ refund_agent = Agent(...)
92
+
93
+ customer_facing_agent = Agent(
94
+ name="Customer-facing agent",
95
+ instructions=(
96
+ "Handle all direct user communication. "
97
+ "Call the relevant tools when specialized expertise is needed."
98
+ ),
99
+ tools=[
100
+ booking_agent.as_tool(
101
+ tool_name="booking_expert",
102
+ tool_description="Handles booking questions and requests.",
103
+ ),
104
+ refund_agent.as_tool(
105
+ tool_name="refund_expert",
106
+ tool_description="Handles refund questions and requests.",
107
+ )
108
+ ],
109
+ )
110
+ ```
111
+
112
+ ### Handoffs
113
+
114
+ Handoffs are sub‑agents the agent can delegate to. When a handoff occurs, the delegated agent receives the conversation history and takes over the conversation. This pattern enables modular, specialized agents that excel at a single task. Read more in the [handoffs](handoffs.md) documentation.
77
115
 
78
116
  ```python
79
117
  from agents import Agent
@@ -84,9 +122,9 @@ refund_agent = Agent(...)
84
122
  triage_agent = Agent(
85
123
  name="Triage agent",
86
124
  instructions=(
87
- "Help the user with their questions."
88
- "If they ask about booking, handoff to the booking agent."
89
- "If they ask about refunds, handoff to the refund agent."
125
+ "Help the user with their questions. "
126
+ "If they ask about booking, hand off to the booking agent. "
127
+ "If they ask about refunds, hand off to the refund agent."
90
128
  ),
91
129
  handoffs=[booking_agent, refund_agent],
92
130
  )
@@ -155,13 +193,14 @@ agent = Agent(
155
193
  name="Weather Agent",
156
194
  instructions="Retrieve weather details.",
157
195
  tools=[get_weather],
158
- model_settings=ModelSettings(tool_choice="get_weather")
196
+ model_settings=ModelSettings(tool_choice="get_weather")
159
197
  )
160
198
  ```
161
199
 
162
200
  ## Tool Use Behavior
163
201
 
164
202
  The `tool_use_behavior` parameter in the `Agent` configuration controls how tool outputs are handled:
203
+
165
204
  - `"run_llm_again"`: The default. Tools are run, and the LLM processes the results to produce a final response.
166
205
  - `"stop_on_first_tool"`: The output of the first tool call is used as the final response, without further LLM processing.
167
206
 
@@ -182,6 +221,7 @@ agent = Agent(
182
221
  ```
183
222
 
184
223
  - `StopAtTools(stop_at_tool_names=[...])`: Stops if any specified tool is called, using its output as the final response.
224
+
185
225
  ```python
186
226
  from agents import Agent, Runner, function_tool
187
227
  from agents.agent import StopAtTools
@@ -203,6 +243,7 @@ agent = Agent(
203
243
  tool_use_behavior=StopAtTools(stop_at_tool_names=["get_weather"])
204
244
  )
205
245
  ```
246
+
206
247
  - `ToolsToFinalOutputFunction`: A custom function that processes tool results and decides whether to stop or continue with the LLM.
207
248
 
208
249
  ```python
@@ -242,4 +283,3 @@ agent = Agent(
242
283
  !!! note
243
284
 
244
285
  To prevent infinite loops, the framework automatically resets `tool_choice` to "auto" after a tool call. This behavior is configurable via [`agent.reset_tool_choice`][agents.agent.Agent.reset_tool_choice]. The infinite loop is because tool results are sent to the LLM, which then generates another tool call because of `tool_choice`, ad infinitum.
245
-
@@ -0,0 +1,289 @@
1
+ ---
2
+ search:
3
+ exclude: true
4
+ ---
5
+ # エージェント
6
+
7
+ エージェントはアプリの中核となる基本コンポーネントです。エージェントは、instructions とツールで構成された大規模言語モデル( 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/) でラップできる任意の型(dataclasses、lists、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
+ マルチエージェント システムの設計方法は多様ですが、一般的に広く適用できるパターンが 2 つあります。
81
+
82
+ 1. マネージャー(エージェントをツールとして使用): 中央のマネージャー/オーケストレーターが、ツールとして公開された専門のサブエージェントを呼び出し、会話の制御を保持します。
83
+ 2. ハンドオフ: ピアのエージェントが制御を専門のエージェントに引き渡し、そのエージェントが会話を引き継ぎます。これは分散型です。
84
+
85
+ 詳細は [エージェント構築の実践ガイド](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf)をご覧ください。
86
+
87
+ ### マネージャー(エージェントをツールとして使用)
88
+
89
+ `customer_facing_agent` はすべてのユーザーとの対話を処理し、ツールとして公開された専門のサブエージェントを呼び出します。詳細は [ツール](tools.md#agents-as-tools) ドキュメントをお読みください。
90
+
91
+ ```python
92
+ from agents import Agent
93
+
94
+ booking_agent = Agent(...)
95
+ refund_agent = Agent(...)
96
+
97
+ customer_facing_agent = Agent(
98
+ name="Customer-facing agent",
99
+ instructions=(
100
+ "Handle all direct user communication. "
101
+ "Call the relevant tools when specialized expertise is needed."
102
+ ),
103
+ tools=[
104
+ booking_agent.as_tool(
105
+ tool_name="booking_expert",
106
+ tool_description="Handles booking questions and requests.",
107
+ ),
108
+ refund_agent.as_tool(
109
+ tool_name="refund_expert",
110
+ tool_description="Handles refund questions and requests.",
111
+ )
112
+ ],
113
+ )
114
+ ```
115
+
116
+ ### ハンドオフ
117
+
118
+ ハンドオフは、エージェントが委任できるサブエージェントです。ハンドオフが発生すると、委任先のエージェントは会話履歴を受け取り、会話を引き継ぎます。このパターンは、単一のタスクに特化して優れた性能を発揮する、モジュール式で専門的なエージェントを可能にします。詳細は [ハンドオフ](handoffs.md) ドキュメントをお読みください。
119
+
120
+ ```python
121
+ from agents import Agent
122
+
123
+ booking_agent = Agent(...)
124
+ refund_agent = Agent(...)
125
+
126
+ triage_agent = Agent(
127
+ name="Triage agent",
128
+ instructions=(
129
+ "Help the user with their questions. "
130
+ "If they ask about booking, hand off to the booking agent. "
131
+ "If they ask about refunds, hand off to the refund agent."
132
+ ),
133
+ handoffs=[booking_agent, refund_agent],
134
+ )
135
+ ```
136
+
137
+ ## 動的 instructions
138
+
139
+ 多くの場合、エージェントを作成するときに instructions を指定できますが、関数を介して動的な instructions を提供することもできます。関数はエージェントとコンテキストを受け取り、プロンプトを返す必要があります。通常の関数と `async` 関数の両方が使用できます。
140
+
141
+ ```python
142
+ def dynamic_instructions(
143
+ context: RunContextWrapper[UserContext], agent: Agent[UserContext]
144
+ ) -> str:
145
+ return f"The user's name is {context.context.name}. Help them with their questions."
146
+
147
+
148
+ agent = Agent[UserContext](
149
+ name="Triage agent",
150
+ instructions=dynamic_instructions,
151
+ )
152
+ ```
153
+
154
+ ## ライフサイクルイベント(フック)
155
+
156
+ エージェントのライフサイクルを観測したい場合があります。たとえば、イベントをログに記録したり、特定のイベント発生時にデータを事前取得したりできます。`hooks` プロパティでエージェントのライフサイクルにフックできます。[`AgentHooks`][agents.lifecycle.AgentHooks] クラスをサブクラス化し、関心のあるメソッドをオーバーライドしてください。
157
+
158
+ ## ガードレール
159
+
160
+ ガードレールにより、エージェントの実行と並行してユーザー入力に対するチェック/検証を行い、さらにエージェントの出力が生成された後のチェック/検証も実行できます。たとえば、ユーザーの入力とエージェントの出力の関連性をスクリーニングできます。詳細は [ガードレール](guardrails.md) ドキュメントをお読みください。
161
+
162
+ ## エージェントのクローン/コピー
163
+
164
+ エージェントの `clone()` メソッドを使用すると、エージェントを複製し、必要に応じて任意のプロパティを変更できます。
165
+
166
+ ```python
167
+ pirate_agent = Agent(
168
+ name="Pirate",
169
+ instructions="Write like a pirate",
170
+ model="o3-mini",
171
+ )
172
+
173
+ robot_agent = pirate_agent.clone(
174
+ name="Robot",
175
+ instructions="Write like a robot",
176
+ )
177
+ ```
178
+
179
+ ## ツール使用の強制
180
+
181
+ ツールの一覧を渡しても、必ずしも LLM がツールを使用するとは限りません。[`ModelSettings.tool_choice`][agents.model_settings.ModelSettings.tool_choice] を設定してツール使用を強制できます。有効な値は次のとおりです。
182
+
183
+ 1. `auto`: ツールを使用するかどうかを LLM に委ねます。
184
+ 2. `required`: LLM にツールの使用を必須にします(どのツールを使うかは賢く判断できます)。
185
+ 3. `none`: LLM にツールを使用しないことを必須にします。
186
+ 4. 特定の文字列(例: `my_tool`)を設定すると、LLM にその特定のツールの使用を必須にします。
187
+
188
+ ```python
189
+ from agents import Agent, Runner, function_tool, ModelSettings
190
+
191
+ @function_tool
192
+ def get_weather(city: str) -> str:
193
+ """Returns weather info for the specified city."""
194
+ return f"The weather in {city} is sunny"
195
+
196
+ agent = Agent(
197
+ name="Weather Agent",
198
+ instructions="Retrieve weather details.",
199
+ tools=[get_weather],
200
+ model_settings=ModelSettings(tool_choice="get_weather")
201
+ )
202
+ ```
203
+
204
+ ## ツール使用時の動作
205
+
206
+ `Agent` 構成の `tool_use_behavior` パラメーターは、ツール出力の扱い方を制御します。
207
+
208
+ - `"run_llm_again"`: 既定。ツールを実行し、その結果を LLM が処理して最終応答を生成します。
209
+ - `"stop_on_first_tool"`: 最初のツール呼び出しの出力を、追加の LLM 処理なしで最終応答として使用します。
210
+
211
+ ```python
212
+ from agents import Agent, Runner, function_tool, ModelSettings
213
+
214
+ @function_tool
215
+ def get_weather(city: str) -> str:
216
+ """Returns weather info for the specified city."""
217
+ return f"The weather in {city} is sunny"
218
+
219
+ agent = Agent(
220
+ name="Weather Agent",
221
+ instructions="Retrieve weather details.",
222
+ tools=[get_weather],
223
+ tool_use_behavior="stop_on_first_tool"
224
+ )
225
+ ```
226
+
227
+ - `StopAtTools(stop_at_tool_names=[...])`: 指定したいずれかのツールが呼び出された場合に停止し、その出力を最終応答として使用します。
228
+
229
+ ```python
230
+ from agents import Agent, Runner, function_tool
231
+ from agents.agent import StopAtTools
232
+
233
+ @function_tool
234
+ def get_weather(city: str) -> str:
235
+ """Returns weather info for the specified city."""
236
+ return f"The weather in {city} is sunny"
237
+
238
+ @function_tool
239
+ def sum_numbers(a: int, b: int) -> int:
240
+ """Adds two numbers."""
241
+ return a + b
242
+
243
+ agent = Agent(
244
+ name="Stop At Stock Agent",
245
+ instructions="Get weather or sum numbers.",
246
+ tools=[get_weather, sum_numbers],
247
+ tool_use_behavior=StopAtTools(stop_at_tool_names=["get_weather"])
248
+ )
249
+ ```
250
+
251
+ - `ToolsToFinalOutputFunction`: ツール結果を処理し、停止するか LLM を続行するかを判断するカスタム関数です。
252
+
253
+ ```python
254
+ from agents import Agent, Runner, function_tool, FunctionToolResult, RunContextWrapper
255
+ from agents.agent import ToolsToFinalOutputResult
256
+ from typing import List, Any
257
+
258
+ @function_tool
259
+ def get_weather(city: str) -> str:
260
+ """Returns weather info for the specified city."""
261
+ return f"The weather in {city} is sunny"
262
+
263
+ def custom_tool_handler(
264
+ context: RunContextWrapper[Any],
265
+ tool_results: List[FunctionToolResult]
266
+ ) -> ToolsToFinalOutputResult:
267
+ """Processes tool results to decide final output."""
268
+ for result in tool_results:
269
+ if result.output and "sunny" in result.output:
270
+ return ToolsToFinalOutputResult(
271
+ is_final_output=True,
272
+ final_output=f"Final weather: {result.output}"
273
+ )
274
+ return ToolsToFinalOutputResult(
275
+ is_final_output=False,
276
+ final_output=None
277
+ )
278
+
279
+ agent = Agent(
280
+ name="Weather Agent",
281
+ instructions="Retrieve weather details.",
282
+ tools=[get_weather],
283
+ tool_use_behavior=custom_tool_handler
284
+ )
285
+ ```
286
+
287
+ !!! note
288
+
289
+ 無限ループを防ぐため、フレームワークはツール呼び出し後に `tool_choice` を自動的に "auto" にリセットします。この動作は [`agent.reset_tool_choice`][agents.agent.Agent.reset_tool_choice] で設定可能です。無限ループは、ツール結果が LLM に送られ、`tool_choice` のために LLM がさらに別のツール呼び出しを生成し続けることが原因です。
@@ -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 を使用します。これを上書きして Chat Completions API を使うには、[set_default_openai_api()][agents.set_default_openai_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 ロギングガイド](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. コードでローカルに利用できるコンテキスト: ツール関数の実行時、`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. そのオブジェクトを各種実行メソッドに渡します(例: `Runner.run(..., **context=whatever**)`)。
18
+ 3. すべてのツール呼び出しやライフサイクルフックなどには、ラッパーオブジェクト `RunContextWrapper[T]` が渡されます。ここで `T` はコンテキストオブジェクトの型を表し、`wrapper.context` からアクセスできます。
19
+
20
+ 最も **重要** な注意点: 特定のエージェント実行において、すべてのエージェント、ツール関数、ライフサイクル等は同じ種類(_type_)のコンテキストを使用しなければなりません。
21
+
22
+ コンテキストは次のような用途に使えます。
23
+
24
+ - 実行のための文脈データ(例: ユーザー名 / uid や、ユーザーに関するその他の情報)
25
+ - 依存関係(例: ロガーオブジェクト、データフェッチャーなど)
26
+ - ヘルパー関数
27
+
28
+ !!! danger "注意"
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. これはツールです。`RunContextWrapper[UserInfo]` を受け取り、ツールの実装はコンテキストから読み取ります。
71
+ 3. 型チェッカーがエラーを検出できるよう、エージェントにジェネリックの `UserInfo` を付与します(例えば、異なるコンテキスト型を受け取るツールを渡そうとした場合など)。
72
+ 4. `run` 関数にコンテキストを渡します。
73
+ 5. エージェントはツールを正しく呼び出し、年齢を取得します。
74
+
75
+ ## エージェント / LLM コンテキスト
76
+
77
+ LLM が呼び出されると、LLM が参照できるデータは会話履歴のものに **限られます**。つまり、LLM に新しいデータを利用可能にしたい場合は、その履歴で参照できる形で提供する必要があります。いくつか方法があります。
78
+
79
+ 1. エージェントの `instructions` に追加します。これは「システムプロンプト」または「開発者メッセージ」とも呼ばれます。システムプロンプトは静的な文字列でも、コンテキストを受け取って文字列を出力する動的な関数でも構いません。常に有用な情報(例: ユーザー名や現在の日付)に適した一般的な戦術です。
80
+ 2. `Runner.run` 関数を呼ぶ際の `input` に追加します。これは `instructions` の戦術に似ていますが、[chain of command](https://cdn.openai.com/spec/model-spec-2024-05-08.html#follow-the-chain-of-command) 上でより下位のメッセージとして扱えます。
81
+ 3. 関数ツールを通じて公開します。これはオンデマンドのコンテキストに有用です。LLM が必要なときにデータを要求し、ツールを呼び出してそのデータを取得できます。
82
+ 4. リトリーバル(retrieval)や Web 検索を使用します。これらは、ファイルやデータベース(リトリーバル)または Web(Web 検索)から関連データを取得できる特別なツールです。関連する文脈データに基づいて応答を「グラウンディング」するのに役立ちます。