openai-agents 0.3.1__tar.gz → 0.3.2__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 (521) hide show
  1. {openai_agents-0.3.1 → openai_agents-0.3.2}/PKG-INFO +1 -1
  2. openai_agents-0.3.2/docs/llms-full.txt +112 -0
  3. openai_agents-0.3.2/docs/llms.txt +60 -0
  4. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/dynamic_system_prompt.py +6 -6
  5. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/lifecycle_example.py +7 -7
  6. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/stream_function_call_args.py +8 -4
  7. {openai_agents-0.3.1 → openai_agents-0.3.2}/pyproject.toml +1 -1
  8. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/models/litellm_model.py +2 -6
  9. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/chatcmpl_converter.py +25 -14
  10. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/chatcmpl_helpers.py +2 -2
  11. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/openai_chatcompletions.py +6 -6
  12. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/openai_responses.py +8 -8
  13. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/session.py +2 -0
  14. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/run.py +20 -7
  15. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tool_context.py +14 -1
  16. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/test_litellm_user_agent.py +3 -3
  17. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_as_tool.py +12 -2
  18. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_anthropic_thinking_blocks.py +31 -3
  19. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_function_tool.py +36 -15
  20. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_function_tool_decorator.py +3 -1
  21. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_openai_chatcompletions.py +3 -3
  22. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_openai_responses.py +3 -3
  23. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_run_hooks.py +25 -2
  24. {openai_agents-0.3.1 → openai_agents-0.3.2}/uv.lock +1 -1
  25. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  26. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  27. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
  28. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/ISSUE_TEMPLATE/question.md +0 -0
  29. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  30. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/workflows/docs.yml +0 -0
  31. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/workflows/issues.yml +0 -0
  32. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/workflows/publish.yml +0 -0
  33. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/workflows/tests.yml +0 -0
  34. {openai_agents-0.3.1 → openai_agents-0.3.2}/.github/workflows/update-docs.yml +0 -0
  35. {openai_agents-0.3.1 → openai_agents-0.3.2}/.gitignore +0 -0
  36. {openai_agents-0.3.1 → openai_agents-0.3.2}/.prettierrc +0 -0
  37. {openai_agents-0.3.1 → openai_agents-0.3.2}/.vscode/launch.json +0 -0
  38. {openai_agents-0.3.1 → openai_agents-0.3.2}/.vscode/settings.json +0 -0
  39. {openai_agents-0.3.1 → openai_agents-0.3.2}/AGENTS.md +0 -0
  40. {openai_agents-0.3.1 → openai_agents-0.3.2}/CLAUDE.md +0 -0
  41. {openai_agents-0.3.1 → openai_agents-0.3.2}/LICENSE +0 -0
  42. {openai_agents-0.3.1 → openai_agents-0.3.2}/Makefile +0 -0
  43. {openai_agents-0.3.1 → openai_agents-0.3.2}/README.md +0 -0
  44. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/agents.md +0 -0
  45. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/assets/images/favicon-platform.svg +0 -0
  46. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/assets/images/graph.png +0 -0
  47. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/assets/images/mcp-tracing.jpg +0 -0
  48. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/assets/images/orchestration.png +0 -0
  49. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/assets/logo.svg +0 -0
  50. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/config.md +0 -0
  51. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/context.md +0 -0
  52. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/examples.md +0 -0
  53. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/guardrails.md +0 -0
  54. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/handoffs.md +0 -0
  55. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/index.md +0 -0
  56. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/agents.md +0 -0
  57. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/config.md +0 -0
  58. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/context.md +0 -0
  59. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/examples.md +0 -0
  60. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/guardrails.md +0 -0
  61. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/handoffs.md +0 -0
  62. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/index.md +0 -0
  63. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/mcp.md +0 -0
  64. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/models/index.md +0 -0
  65. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/models/litellm.md +0 -0
  66. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/multi_agent.md +0 -0
  67. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/quickstart.md +0 -0
  68. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/realtime/guide.md +0 -0
  69. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/realtime/quickstart.md +0 -0
  70. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/release.md +0 -0
  71. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/repl.md +0 -0
  72. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/results.md +0 -0
  73. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/running_agents.md +0 -0
  74. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/sessions.md +0 -0
  75. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/streaming.md +0 -0
  76. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/tools.md +0 -0
  77. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/tracing.md +0 -0
  78. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/usage.md +0 -0
  79. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/visualization.md +0 -0
  80. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/voice/pipeline.md +0 -0
  81. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/voice/quickstart.md +0 -0
  82. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ja/voice/tracing.md +0 -0
  83. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/mcp.md +0 -0
  84. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/models/index.md +0 -0
  85. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/models/litellm.md +0 -0
  86. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/multi_agent.md +0 -0
  87. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/quickstart.md +0 -0
  88. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/realtime/guide.md +0 -0
  89. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/realtime/quickstart.md +0 -0
  90. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/agent.md +0 -0
  91. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/agent_output.md +0 -0
  92. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/computer.md +0 -0
  93. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/exceptions.md +0 -0
  94. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/handoff_filters.md +0 -0
  95. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/handoff_prompt.md +0 -0
  96. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/litellm.md +0 -0
  97. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/memory/sqlalchemy_session.md +0 -0
  98. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/models/litellm_model.md +0 -0
  99. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/models/litellm_provider.md +0 -0
  100. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/extensions/visualization.md +0 -0
  101. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/function_schema.md +0 -0
  102. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/guardrail.md +0 -0
  103. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/handoffs.md +0 -0
  104. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/index.md +0 -0
  105. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/items.md +0 -0
  106. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/lifecycle.md +0 -0
  107. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/logger.md +0 -0
  108. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/mcp/server.md +0 -0
  109. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/mcp/util.md +0 -0
  110. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/memory/openai_conversations_session.md +0 -0
  111. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/memory/session.md +0 -0
  112. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/memory/sqlite_session.md +0 -0
  113. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/memory.md +0 -0
  114. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/model_settings.md +0 -0
  115. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/chatcmpl_converter.md +0 -0
  116. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/chatcmpl_helpers.md +0 -0
  117. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/chatcmpl_stream_handler.md +0 -0
  118. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/default_models.md +0 -0
  119. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/fake_id.md +0 -0
  120. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/interface.md +0 -0
  121. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/multi_provider.md +0 -0
  122. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/openai_chatcompletions.md +0 -0
  123. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/openai_provider.md +0 -0
  124. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/models/openai_responses.md +0 -0
  125. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/prompts.md +0 -0
  126. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/agent.md +0 -0
  127. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/config.md +0 -0
  128. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/events.md +0 -0
  129. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/handoffs.md +0 -0
  130. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/items.md +0 -0
  131. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/model.md +0 -0
  132. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/model_events.md +0 -0
  133. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/model_inputs.md +0 -0
  134. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/openai_realtime.md +0 -0
  135. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/runner.md +0 -0
  136. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/realtime/session.md +0 -0
  137. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/repl.md +0 -0
  138. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/result.md +0 -0
  139. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/run.md +0 -0
  140. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/run_context.md +0 -0
  141. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/stream_events.md +0 -0
  142. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/strict_schema.md +0 -0
  143. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tool.md +0 -0
  144. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tool_context.md +0 -0
  145. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/create.md +0 -0
  146. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/index.md +0 -0
  147. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/logger.md +0 -0
  148. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/processor_interface.md +0 -0
  149. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/processors.md +0 -0
  150. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/provider.md +0 -0
  151. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/scope.md +0 -0
  152. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/setup.md +0 -0
  153. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/span_data.md +0 -0
  154. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/spans.md +0 -0
  155. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/traces.md +0 -0
  156. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/tracing/util.md +0 -0
  157. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/usage.md +0 -0
  158. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/version.md +0 -0
  159. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/events.md +0 -0
  160. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/exceptions.md +0 -0
  161. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/imports.md +0 -0
  162. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/input.md +0 -0
  163. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/model.md +0 -0
  164. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/models/openai_model_provider.md +0 -0
  165. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/models/openai_provider.md +0 -0
  166. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/models/openai_stt.md +0 -0
  167. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/models/openai_tts.md +0 -0
  168. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/pipeline.md +0 -0
  169. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/pipeline_config.md +0 -0
  170. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/result.md +0 -0
  171. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/utils.md +0 -0
  172. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/ref/voice/workflow.md +0 -0
  173. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/release.md +0 -0
  174. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/repl.md +0 -0
  175. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/results.md +0 -0
  176. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/running_agents.md +0 -0
  177. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/scripts/generate_ref_files.py +0 -0
  178. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/scripts/translate_docs.py +0 -0
  179. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/sessions.md +0 -0
  180. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/streaming.md +0 -0
  181. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/stylesheets/extra.css +0 -0
  182. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/tools.md +0 -0
  183. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/tracing.md +0 -0
  184. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/usage.md +0 -0
  185. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/visualization.md +0 -0
  186. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/voice/pipeline.md +0 -0
  187. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/voice/quickstart.md +0 -0
  188. {openai_agents-0.3.1 → openai_agents-0.3.2}/docs/voice/tracing.md +0 -0
  189. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/__init__.py +0 -0
  190. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/README.md +0 -0
  191. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/agents_as_tools.py +0 -0
  192. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/agents_as_tools_conditional.py +0 -0
  193. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/deterministic.py +0 -0
  194. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/forcing_tool_use.py +0 -0
  195. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/input_guardrails.py +0 -0
  196. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/llm_as_a_judge.py +0 -0
  197. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/output_guardrails.py +0 -0
  198. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/parallelization.py +0 -0
  199. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/routing.py +0 -0
  200. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/agent_patterns/streaming_guardrails.py +0 -0
  201. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/agent_lifecycle_example.py +0 -0
  202. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/hello_world.py +0 -0
  203. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/hello_world_gpt_5.py +0 -0
  204. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/hello_world_gpt_oss.py +0 -0
  205. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/hello_world_jupyter.ipynb +0 -0
  206. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/local_file.py +0 -0
  207. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/local_image.py +0 -0
  208. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/media/image_bison.jpg +0 -0
  209. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/media/partial_o3-and-o4-mini-system-card.pdf +0 -0
  210. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/non_strict_output_type.py +0 -0
  211. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/previous_response_id.py +0 -0
  212. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/prompt_template.py +0 -0
  213. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/remote_image.py +0 -0
  214. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/remote_pdf.py +0 -0
  215. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/stream_items.py +0 -0
  216. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/stream_text.py +0 -0
  217. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/tools.py +0 -0
  218. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/basic/usage_tracking.py +0 -0
  219. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/customer_service/main.py +0 -0
  220. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/README.md +0 -0
  221. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/__init__.py +0 -0
  222. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/__init__.py +0 -0
  223. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/financials_agent.py +0 -0
  224. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/planner_agent.py +0 -0
  225. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/risk_agent.py +0 -0
  226. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/search_agent.py +0 -0
  227. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
  228. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/agents/writer_agent.py +0 -0
  229. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/main.py +0 -0
  230. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/manager.py +0 -0
  231. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/financial_research_agent/printer.py +0 -0
  232. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/handoffs/message_filter.py +0 -0
  233. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/handoffs/message_filter_streaming.py +0 -0
  234. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/hosted_mcp/__init__.py +0 -0
  235. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/hosted_mcp/approvals.py +0 -0
  236. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/hosted_mcp/connectors.py +0 -0
  237. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/hosted_mcp/simple.py +0 -0
  238. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/filesystem_example/README.md +0 -0
  239. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/filesystem_example/main.py +0 -0
  240. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
  241. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
  242. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
  243. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/git_example/README.md +0 -0
  244. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/git_example/main.py +0 -0
  245. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/prompt_server/README.md +0 -0
  246. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/prompt_server/main.py +0 -0
  247. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/prompt_server/server.py +0 -0
  248. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/sse_example/README.md +0 -0
  249. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/sse_example/main.py +0 -0
  250. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/sse_example/server.py +0 -0
  251. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/streamablehttp_example/README.md +0 -0
  252. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/streamablehttp_example/main.py +0 -0
  253. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/mcp/streamablehttp_example/server.py +0 -0
  254. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/memory/encrypted_session_example.py +0 -0
  255. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/memory/openai_session_example.py +0 -0
  256. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/memory/sqlalchemy_session_example.py +0 -0
  257. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/memory/sqlite_session_example.py +0 -0
  258. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/model_providers/README.md +0 -0
  259. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/model_providers/custom_example_agent.py +0 -0
  260. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/model_providers/custom_example_global.py +0 -0
  261. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/model_providers/custom_example_provider.py +0 -0
  262. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/model_providers/litellm_auto.py +0 -0
  263. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/model_providers/litellm_provider.py +0 -0
  264. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/app/README.md +0 -0
  265. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/app/agent.py +0 -0
  266. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/app/server.py +0 -0
  267. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/app/static/app.js +0 -0
  268. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/app/static/favicon.ico +0 -0
  269. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/app/static/index.html +0 -0
  270. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/cli/demo.py +0 -0
  271. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/cli/ui.py +0 -0
  272. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/twilio/README.md +0 -0
  273. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/twilio/__init__.py +0 -0
  274. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/twilio/requirements.txt +0 -0
  275. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/twilio/server.py +0 -0
  276. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/realtime/twilio/twilio_handler.py +0 -0
  277. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/reasoning_content/__init__.py +0 -0
  278. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/reasoning_content/gpt_oss_stream.py +0 -0
  279. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/reasoning_content/main.py +0 -0
  280. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/reasoning_content/runner_example.py +0 -0
  281. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/README.md +0 -0
  282. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/__init__.py +0 -0
  283. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/agents/__init__.py +0 -0
  284. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/agents/planner_agent.py +0 -0
  285. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/agents/search_agent.py +0 -0
  286. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/agents/writer_agent.py +0 -0
  287. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/main.py +0 -0
  288. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/manager.py +0 -0
  289. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/printer.py +0 -0
  290. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  291. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  292. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/sample_outputs/vacation.md +0 -0
  293. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  294. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/tools/code_interpreter.py +0 -0
  295. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/tools/computer_use.py +0 -0
  296. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/tools/file_search.py +0 -0
  297. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/tools/image_generator.py +0 -0
  298. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/tools/web_search.py +0 -0
  299. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/tools/web_search_filters.py +0 -0
  300. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/__init__.py +0 -0
  301. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/static/README.md +0 -0
  302. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/static/__init__.py +0 -0
  303. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/static/main.py +0 -0
  304. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/static/util.py +0 -0
  305. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/streamed/README.md +0 -0
  306. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/streamed/__init__.py +0 -0
  307. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/streamed/main.py +0 -0
  308. {openai_agents-0.3.1 → openai_agents-0.3.2}/examples/voice/streamed/my_workflow.py +0 -0
  309. {openai_agents-0.3.1 → openai_agents-0.3.2}/mkdocs.yml +0 -0
  310. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/__init__.py +0 -0
  311. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/_config.py +0 -0
  312. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/_debug.py +0 -0
  313. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/_run_impl.py +0 -0
  314. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/agent.py +0 -0
  315. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/agent_output.py +0 -0
  316. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/computer.py +0 -0
  317. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/exceptions.py +0 -0
  318. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/__init__.py +0 -0
  319. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/handoff_filters.py +0 -0
  320. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/handoff_prompt.py +0 -0
  321. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/memory/__init__.py +0 -0
  322. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/memory/encrypt_session.py +0 -0
  323. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/memory/sqlalchemy_session.py +0 -0
  324. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/models/__init__.py +0 -0
  325. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/models/litellm_provider.py +0 -0
  326. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/extensions/visualization.py +0 -0
  327. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/function_schema.py +0 -0
  328. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/guardrail.py +0 -0
  329. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/handoffs.py +0 -0
  330. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/items.py +0 -0
  331. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/lifecycle.py +0 -0
  332. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/logger.py +0 -0
  333. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/mcp/__init__.py +0 -0
  334. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/mcp/server.py +0 -0
  335. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/mcp/util.py +0 -0
  336. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/memory/__init__.py +0 -0
  337. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/memory/openai_conversations_session.py +0 -0
  338. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/memory/session.py +0 -0
  339. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/memory/sqlite_session.py +0 -0
  340. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/memory/util.py +0 -0
  341. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/model_settings.py +0 -0
  342. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/__init__.py +0 -0
  343. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/_openai_shared.py +0 -0
  344. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/chatcmpl_stream_handler.py +0 -0
  345. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/default_models.py +0 -0
  346. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/fake_id.py +0 -0
  347. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/interface.py +0 -0
  348. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/multi_provider.py +0 -0
  349. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/models/openai_provider.py +0 -0
  350. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/prompts.py +0 -0
  351. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/py.typed +0 -0
  352. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/README.md +0 -0
  353. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/__init__.py +0 -0
  354. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/_default_tracker.py +0 -0
  355. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/_util.py +0 -0
  356. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/agent.py +0 -0
  357. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/audio_formats.py +0 -0
  358. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/config.py +0 -0
  359. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/events.py +0 -0
  360. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/handoffs.py +0 -0
  361. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/items.py +0 -0
  362. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/model.py +0 -0
  363. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/model_events.py +0 -0
  364. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/model_inputs.py +0 -0
  365. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/openai_realtime.py +0 -0
  366. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/realtime/runner.py +0 -0
  367. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/repl.py +0 -0
  368. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/result.py +0 -0
  369. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/run_context.py +0 -0
  370. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/stream_events.py +0 -0
  371. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/strict_schema.py +0 -0
  372. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tool.py +0 -0
  373. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/__init__.py +0 -0
  374. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/create.py +0 -0
  375. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/logger.py +0 -0
  376. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/processor_interface.py +0 -0
  377. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/processors.py +0 -0
  378. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/provider.py +0 -0
  379. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/scope.py +0 -0
  380. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/setup.py +0 -0
  381. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/span_data.py +0 -0
  382. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/spans.py +0 -0
  383. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/traces.py +0 -0
  384. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/tracing/util.py +0 -0
  385. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/usage.py +0 -0
  386. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/__init__.py +0 -0
  387. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/_coro.py +0 -0
  388. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/_error_tracing.py +0 -0
  389. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/_json.py +0 -0
  390. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/_pretty_print.py +0 -0
  391. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/_transforms.py +0 -0
  392. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/util/_types.py +0 -0
  393. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/version.py +0 -0
  394. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/__init__.py +0 -0
  395. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/events.py +0 -0
  396. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/exceptions.py +0 -0
  397. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/imports.py +0 -0
  398. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/input.py +0 -0
  399. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/model.py +0 -0
  400. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/models/__init__.py +0 -0
  401. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/models/openai_model_provider.py +0 -0
  402. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/models/openai_stt.py +0 -0
  403. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/models/openai_tts.py +0 -0
  404. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/pipeline.py +0 -0
  405. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/pipeline_config.py +0 -0
  406. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/result.py +0 -0
  407. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/utils.py +0 -0
  408. {openai_agents-0.3.1 → openai_agents-0.3.2}/src/agents/voice/workflow.py +0 -0
  409. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/README.md +0 -0
  410. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/__init__.py +0 -0
  411. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/conftest.py +0 -0
  412. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/extensions/memory/test_encrypt_session.py +0 -0
  413. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/extensions/memory/test_sqlalchemy_session.py +0 -0
  414. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/fake_model.py +0 -0
  415. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/fastapi/__init__.py +0 -0
  416. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/fastapi/streaming_app.py +0 -0
  417. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/fastapi/test_streaming_context.py +0 -0
  418. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/__init__.py +0 -0
  419. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/conftest.py +0 -0
  420. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/helpers.py +0 -0
  421. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_caching.py +0 -0
  422. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_client_session_retries.py +0 -0
  423. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_connect_disconnect.py +0 -0
  424. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_mcp_tracing.py +0 -0
  425. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_mcp_util.py +0 -0
  426. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_prompt_server.py +0 -0
  427. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_runner_calls_mcp.py +0 -0
  428. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_server_errors.py +0 -0
  429. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/mcp/test_tool_filtering.py +0 -0
  430. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/model_settings/test_serialization.py +0 -0
  431. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/__init__.py +0 -0
  432. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/conftest.py +0 -0
  433. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/test_default_models.py +0 -0
  434. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/test_kwargs_functionality.py +0 -0
  435. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/test_litellm_chatcompletions_stream.py +0 -0
  436. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/test_litellm_extra_body.py +0 -0
  437. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/models/test_map.py +0 -0
  438. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/__init__.py +0 -0
  439. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_agent.py +0 -0
  440. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_audio_formats_unit.py +0 -0
  441. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_conversion_helpers.py +0 -0
  442. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_ga_session_update_normalization.py +0 -0
  443. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_item_parsing.py +0 -0
  444. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_model_events.py +0 -0
  445. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_openai_realtime.py +0 -0
  446. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_openai_realtime_conversions.py +0 -0
  447. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_playback_tracker.py +0 -0
  448. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_playback_tracker_manual_unit.py +0 -0
  449. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_realtime_handoffs.py +0 -0
  450. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_runner.py +0 -0
  451. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_session.py +0 -0
  452. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_session_payload_and_formats.py +0 -0
  453. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/realtime/test_tracing.py +0 -0
  454. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_clone_shallow_copy.py +0 -0
  455. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_config.py +0 -0
  456. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_hooks.py +0 -0
  457. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_instructions_signature.py +0 -0
  458. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_llm_hooks.py +0 -0
  459. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_prompt.py +0 -0
  460. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_runner.py +0 -0
  461. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_runner_streamed.py +0 -0
  462. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_agent_tracing.py +0 -0
  463. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_call_model_input_filter.py +0 -0
  464. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_call_model_input_filter_unit.py +0 -0
  465. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_cancel_streaming.py +0 -0
  466. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_computer_action.py +0 -0
  467. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_config.py +0 -0
  468. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_debug.py +0 -0
  469. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_doc_parsing.py +0 -0
  470. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_extension_filters.py +0 -0
  471. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_extra_headers.py +0 -0
  472. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_function_schema.py +0 -0
  473. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_global_hooks.py +0 -0
  474. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_guardrails.py +0 -0
  475. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_handoff_tool.py +0 -0
  476. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_items_helpers.py +0 -0
  477. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_logprobs.py +0 -0
  478. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_max_turns.py +0 -0
  479. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_model_payload_iterators.py +0 -0
  480. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_openai_chatcompletions_converter.py +0 -0
  481. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_openai_chatcompletions_stream.py +0 -0
  482. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_openai_responses_converter.py +0 -0
  483. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_output_tool.py +0 -0
  484. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_pretty_print.py +0 -0
  485. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_reasoning_content.py +0 -0
  486. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_repl.py +0 -0
  487. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_responses.py +0 -0
  488. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_responses_tracing.py +0 -0
  489. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_result_cast.py +0 -0
  490. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_run.py +0 -0
  491. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_run_config.py +0 -0
  492. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_run_error_details.py +0 -0
  493. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_run_step_execution.py +0 -0
  494. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_run_step_processing.py +0 -0
  495. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_session.py +0 -0
  496. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_session_exceptions.py +0 -0
  497. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_stream_events.py +0 -0
  498. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_streaming_tool_call_arguments.py +0 -0
  499. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_strict_schema.py +0 -0
  500. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_tool_choice_reset.py +0 -0
  501. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_tool_converter.py +0 -0
  502. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_tool_use_behavior.py +0 -0
  503. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_trace_processor.py +0 -0
  504. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_tracing.py +0 -0
  505. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_tracing_errors.py +0 -0
  506. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_tracing_errors_streamed.py +0 -0
  507. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_usage.py +0 -0
  508. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/test_visualization.py +0 -0
  509. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/testing_processor.py +0 -0
  510. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/tracing/test_processor_api_key.py +0 -0
  511. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/tracing/test_set_api_key_fix.py +0 -0
  512. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/utils/test_json.py +0 -0
  513. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/__init__.py +0 -0
  514. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/conftest.py +0 -0
  515. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/fake_models.py +0 -0
  516. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/helpers.py +0 -0
  517. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/test_input.py +0 -0
  518. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/test_openai_stt.py +0 -0
  519. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/test_openai_tts.py +0 -0
  520. {openai_agents-0.3.1 → openai_agents-0.3.2}/tests/voice/test_pipeline.py +0 -0
  521. {openai_agents-0.3.1 → openai_agents-0.3.2}/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.3.1
3
+ Version: 0.3.2
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
@@ -0,0 +1,112 @@
1
+ # OpenAI Agents SDK Documentation (Full Context)
2
+
3
+ > Extended reference map for the OpenAI Agents SDK documentation site. Use these curated links when assembling prompts that need authoritative guidance on building, operating, and extending agentic applications with the SDK.
4
+
5
+ The Agents SDK delivers a focused set of Python primitives—agents, tools, guardrails, handoffs, sessions, and tracing—plus voice and realtime interfaces. The pages below provide detailed walkthroughs, architectural patterns, and API-level documentation for integrating those capabilities into production systems.
6
+
7
+ ## Getting Started and Orientation
8
+ - [Overview](https://openai.github.io/openai-agents-python/): Conceptual tour of the SDK, covering the core agent loop, motivation, installation snippet, and a runnable hello-world.
9
+ - [Quickstart](https://openai.github.io/openai-agents-python/quickstart/): Guided setup from environment preparation through running and monitoring your first agent, including troubleshooting tips.
10
+ - [Example Gallery](https://openai.github.io/openai-agents-python/examples/): Realistic Python samples that demonstrate tool orchestration, guardrails, streaming, and integrations with external systems.
11
+ - [Release notes](https://openai.github.io/openai-agents-python/release/): Version-by-version change log with migration notes for breaking updates.
12
+ - [Usage and pricing](https://openai.github.io/openai-agents-python/usage/): Explains how token usage is tracked, how to retrieve usage metadata, and how to forecast cost for different deployment patterns.
13
+ - [Configuration](https://openai.github.io/openai-agents-python/config/): Centralized reference for tuning model settings, retries, rate limits, timeouts, logging, and runner behavior.
14
+
15
+ ## Core Agent Workflows
16
+ - [Agents](https://openai.github.io/openai-agents-python/agents/): Defines agent objects, instruction design, tool registration, guardrail attachment, streaming options, and lifecycle hooks.
17
+ - [Running agents](https://openai.github.io/openai-agents-python/running_agents/): Covers synchronous and asynchronous execution, concurrency controls, background tasks, cancellation, and handling failures.
18
+ - [Sessions](https://openai.github.io/openai-agents-python/sessions/): Describes persistent session state, conversation threading, history pruning, and custom session storage backends.
19
+ - [Context strategies](https://openai.github.io/openai-agents-python/context/): Techniques for tailoring prompts, managing attachments, trimming history, and injecting auxiliary context into runs.
20
+ - [Results](https://openai.github.io/openai-agents-python/results/): Breaks down the result object, including final output, tool call transcripts, intermediate messages, and metadata fields.
21
+ - [Streaming](https://openai.github.io/openai-agents-python/streaming/): Shows how to subscribe to incremental events, stream tool progress, and render partial model outputs in real time.
22
+ - [REPL](https://openai.github.io/openai-agents-python/repl/): Interactive runner for exploring agent behavior, step-by-step execution, and debugging tool calls.
23
+ - [Visualization](https://openai.github.io/openai-agents-python/visualization/): Demonstrates embeddable visualizations for session timelines, message flows, and tool interactions.
24
+
25
+ ## Coordination, Safety, and Tooling
26
+ - [Handoffs](https://openai.github.io/openai-agents-python/handoffs/): Implements delegation between agents, argument passing, completion handling, and error recovery across agent boundaries.
27
+ - [Multi-agent patterns](https://openai.github.io/openai-agents-python/multi_agent/): Architecture playbook for designing specialist teams, escalation workflows, and role-based collaboration strategies.
28
+ - [Guardrails](https://openai.github.io/openai-agents-python/guardrails/): Create synchronous or asynchronous checks, short-circuit runs, and emit structured validation reports.
29
+ - [Tools](https://openai.github.io/openai-agents-python/tools/): Turn Python callables into structured tools, manage schemas, compose tool contexts, and test tool execution paths.
30
+ - [Model Context Protocol](https://openai.github.io/openai-agents-python/mcp/): Integrate MCP servers so agents can dynamically request data or actions from external providers via a standard protocol.
31
+
32
+ ## Modality-Specific Guides
33
+ - [Voice quickstart](https://openai.github.io/openai-agents-python/voice/quickstart/): Build an end-to-end voice assistant with streaming transcription, text-to-speech, and event-driven responses.
34
+ - [Voice pipeline](https://openai.github.io/openai-agents-python/voice/pipeline/): Customize audio capture, buffering, model invocation, and playback in voice-first experiences.
35
+ - [Voice tracing](https://openai.github.io/openai-agents-python/voice/tracing/): Inspect voice session traces, latency breakdowns, and audio event timelines.
36
+ - [Realtime quickstart](https://openai.github.io/openai-agents-python/realtime/quickstart/): Launch realtime agents over WebRTC or websockets, subscribe to events, and manage low-latency execution.
37
+ - [Realtime guide](https://openai.github.io/openai-agents-python/realtime/guide/): Deep dive into realtime session lifecycle, event schemas, concurrency, and backpressure handling.
38
+
39
+ ## Models and Provider Integrations
40
+ - [Model catalog](https://openai.github.io/openai-agents-python/models/): Lists supported OpenAI and partner models with guidance on selecting capabilities for different workloads.
41
+ - [LiteLLM integration](https://openai.github.io/openai-agents-python/models/litellm/): Configure LiteLLM as a provider, map model aliases, and route requests across heterogeneous backends.
42
+
43
+ ## API Reference – Agents SDK Core
44
+ - [API index](https://openai.github.io/openai-agents-python/ref/index/): Directory of all documented modules, classes, and functions in the SDK.
45
+ - [agents.Agent](https://openai.github.io/openai-agents-python/ref/agent/): Constructor arguments, behaviors, guardrail hooks, and serialization helpers.
46
+ - [runs and runners](https://openai.github.io/openai-agents-python/ref/run/): Runner interfaces for launching agents, streaming events, handling cancellations, and background execution.
47
+ - [memory interfaces](https://openai.github.io/openai-agents-python/ref/memory/): Session memory primitives, storage adapters, and utilities for retrieving historical context.
48
+ - [repl utilities](https://openai.github.io/openai-agents-python/ref/repl/): Programmatic access to the interactive REPL loop and inspection helpers.
49
+ - [tool base classes](https://openai.github.io/openai-agents-python/ref/tool/): Tool registration, invocation, and structured argument parsing.
50
+ - [tool context helpers](https://openai.github.io/openai-agents-python/ref/tool_context/): Manage shared resources, dependency injection, and cleanup for tool execution.
51
+ - [result objects](https://openai.github.io/openai-agents-python/ref/result/): Fields exposed on run results, including final content, tool call summaries, and attachments.
52
+ - [stream events](https://openai.github.io/openai-agents-python/ref/stream_events/): Event models emitted during streaming runs and their payload schemas.
53
+ - [handoffs module](https://openai.github.io/openai-agents-python/ref/handoffs/): Programmatic API for defining, routing, and resolving handoffs between agents.
54
+ - [lifecycle callbacks](https://openai.github.io/openai-agents-python/ref/lifecycle/): Hooks for intercepting agent stages, customizing evaluation, and logging intermediate data.
55
+ - [items API](https://openai.github.io/openai-agents-python/ref/items/): Low-level primitives that represent agent messages, tool calls, and attachments.
56
+ - [run context utilities](https://openai.github.io/openai-agents-python/ref/run_context/): Context managers and helpers for passing metadata through nested tool executions.
57
+ - [usage tracking](https://openai.github.io/openai-agents-python/ref/usage/): Inspect token usage, durations, and cost metrics from completed runs.
58
+ - [exceptions](https://openai.github.io/openai-agents-python/ref/exceptions/): Exception hierarchy raised by the SDK and recommendations for resilient error handling.
59
+ - [guardrail APIs](https://openai.github.io/openai-agents-python/ref/guardrail/): Build custom guardrails, interpret validation outcomes, and integrate enforcement logic.
60
+ - [model settings](https://openai.github.io/openai-agents-python/ref/model_settings/): Shared configuration objects for model parameters, temperature, and tool invocation settings.
61
+ - [agent output models](https://openai.github.io/openai-agents-python/ref/agent_output/): Typed models describing message content, tool calls, and aggregated agent responses.
62
+ - [function schema utilities](https://openai.github.io/openai-agents-python/ref/function_schema/): Helpers for generating JSON schemas from Python functions and Pydantic models.
63
+ - [model interfaces](https://openai.github.io/openai-agents-python/ref/models/interface/): Abstractions for pluggable model providers.
64
+ - [OpenAI chat completions provider](https://openai.github.io/openai-agents-python/ref/models/openai_chatcompletions/): Implementation details for the chat-completions-based model adapter.
65
+ - [OpenAI responses provider](https://openai.github.io/openai-agents-python/ref/models/openai_responses/): Implementation details for the responses API adapter.
66
+ - [MCP server helpers](https://openai.github.io/openai-agents-python/ref/mcp/server/): Utilities for building MCP servers that expose tools to agents.
67
+ - [MCP client utilities](https://openai.github.io/openai-agents-python/ref/mcp/util/): Helpers for consuming MCP servers from within agents.
68
+
69
+ ## API Reference – Tracing
70
+ - [Tracing overview](https://openai.github.io/openai-agents-python/ref/tracing/index/): End-to-end API documentation for tracing components.
71
+ - [Creating traces](https://openai.github.io/openai-agents-python/ref/tracing/create/): Programmatic APIs for instantiating traces and attaching metadata.
72
+ - [Trace model](https://openai.github.io/openai-agents-python/ref/tracing/traces/): Data models representing traces and their relationships.
73
+ - [Span model](https://openai.github.io/openai-agents-python/ref/tracing/spans/): Span structure, timing data, and message attribution.
74
+ - [Processor interface](https://openai.github.io/openai-agents-python/ref/tracing/processor_interface/): Contract for custom processors that consume trace events.
75
+ - [Bundled processors](https://openai.github.io/openai-agents-python/ref/tracing/processors/): Built-in processors for exporting traces to external systems.
76
+ - [Tracing scope](https://openai.github.io/openai-agents-python/ref/tracing/scope/): Context managers that manage active traces and spans.
77
+ - [Tracing setup](https://openai.github.io/openai-agents-python/ref/tracing/setup/): Configuration helpers for initializing tracing in applications and tests.
78
+ - [Span data utilities](https://openai.github.io/openai-agents-python/ref/tracing/span_data/): Helper models for span payloads and events.
79
+ - [Tracing utility helpers](https://openai.github.io/openai-agents-python/ref/tracing/util/): Miscellaneous tracing utilities, exporters, and logging helpers.
80
+
81
+ ## API Reference – Realtime
82
+ - [Realtime agent API](https://openai.github.io/openai-agents-python/ref/realtime/agent/): Programmatic interface for realtime agents.
83
+ - [Realtime runner](https://openai.github.io/openai-agents-python/ref/realtime/runner/): Manage realtime execution loops, concurrency, and cleanup.
84
+ - [Realtime session](https://openai.github.io/openai-agents-python/ref/realtime/session/): Lifecycle and state management for realtime sessions.
85
+ - [Realtime events](https://openai.github.io/openai-agents-python/ref/realtime/events/): Event payload types delivered over realtime channels.
86
+ - [Realtime config](https://openai.github.io/openai-agents-python/ref/realtime/config/): Configuration models for realtime transports and behaviors.
87
+ - [Realtime model interface](https://openai.github.io/openai-agents-python/ref/realtime/model/): Interfaces for plugging in realtime-capable models.
88
+
89
+ ## API Reference – Voice
90
+ - [Voice pipeline API](https://openai.github.io/openai-agents-python/ref/voice/pipeline/): Programmatic control over the voice pipeline and event flow.
91
+ - [Voice workflow helpers](https://openai.github.io/openai-agents-python/ref/voice/workflow/): Orchestrate conversational voice workflows.
92
+ - [Voice input models](https://openai.github.io/openai-agents-python/ref/voice/input/): Structured representations of microphone and streaming audio input.
93
+ - [Voice result models](https://openai.github.io/openai-agents-python/ref/voice/result/): Output schema for voice responses, transcripts, and tool invocations.
94
+ - [Voice pipeline config](https://openai.github.io/openai-agents-python/ref/voice/pipeline_config/): Configuration options for buffer sizes, concurrency, and model routing.
95
+ - [Voice events](https://openai.github.io/openai-agents-python/ref/voice/events/): Event payloads describing voice session updates.
96
+ - [Voice exceptions](https://openai.github.io/openai-agents-python/ref/voice/exceptions/): Exception types for voice pipelines and error handling guidance.
97
+ - [Voice model adapters](https://openai.github.io/openai-agents-python/ref/voice/model/): Interfaces for voice-enabled models and synthesis engines.
98
+ - [Voice utility helpers](https://openai.github.io/openai-agents-python/ref/voice/utils/): Audio conversion, streaming helpers, and testing utilities.
99
+ - [OpenAI voice provider](https://openai.github.io/openai-agents-python/ref/voice/models/openai_provider/): Adapter for OpenAI voice models.
100
+ - [OpenAI speech-to-text provider](https://openai.github.io/openai-agents-python/ref/voice/models/openai_stt/): Integration for STT models used in the pipeline.
101
+ - [OpenAI text-to-speech provider](https://openai.github.io/openai-agents-python/ref/voice/models/openai_tts/): Adapter for OpenAI TTS output.
102
+
103
+ ## API Reference – Extensions
104
+ - [Handoff filters extension](https://openai.github.io/openai-agents-python/ref/extensions/handoff_filters/): Build filters that decide whether to trigger a handoff.
105
+ - [Handoff prompt extension](https://openai.github.io/openai-agents-python/ref/extensions/handoff_prompt/): Customize prompt templates used when transferring control.
106
+ - [LiteLLM extension](https://openai.github.io/openai-agents-python/ref/extensions/litellm/): Adapter for using LiteLLM-managed providers inside the SDK.
107
+ - [SQLAlchemy session memory](https://openai.github.io/openai-agents-python/ref/extensions/memory/sqlalchemy_session/): Persist agent session history to SQL databases.
108
+
109
+ ## Optional
110
+ - [Japanese documentation](https://openai.github.io/openai-agents-python/ja/): Localized guides mirroring the core English documentation.
111
+ - [GitHub repository](https://github.com/openai/openai-agents-python): Source code, issues, and contribution resources.
112
+ - [Agents SDK package on PyPI](https://pypi.org/project/openai-agents/): Distribution page with installation command and release history.
@@ -0,0 +1,60 @@
1
+ # OpenAI Agents SDK Documentation
2
+
3
+ > Official documentation for building production-ready agentic applications with the OpenAI Agents SDK, a Python toolkit that equips LLM-powered assistants with tools, guardrails, handoffs, sessions, tracing, voice, and realtime capabilities.
4
+
5
+ The SDK focuses on a concise set of primitives so you can orchestrate multi-agent workflows without heavy abstractions. These pages explain how to install the library, design agents, coordinate tools, handle results, and extend the platform to new modalities.
6
+
7
+ ## Start Here
8
+ - [Overview](https://openai.github.io/openai-agents-python/): Learn the core primitives—agents, handoffs, guardrails, sessions, and tracing—and see a minimal hello-world example.
9
+ - [Quickstart](https://openai.github.io/openai-agents-python/quickstart/): Step-by-step setup for installing the package, configuring API keys, and running your first agent locally.
10
+ - [Example Gallery](https://openai.github.io/openai-agents-python/examples/): Task-oriented examples that demonstrate agent loops, tool usage, guardrails, and integration patterns.
11
+
12
+ ## Core Concepts
13
+ - [Agents](https://openai.github.io/openai-agents-python/agents/): Configure agent instructions, tools, guardrails, memory, and streaming behavior.
14
+ - [Running agents](https://openai.github.io/openai-agents-python/running_agents/): Learn synchronous, asynchronous, and batched execution, plus cancellation and error handling.
15
+ - [Sessions](https://openai.github.io/openai-agents-python/sessions/): Manage stateful conversations with automatic history persistence and memory controls.
16
+ - [Results](https://openai.github.io/openai-agents-python/results/): Inspect agent outputs, tool calls, follow-up actions, and metadata returned by the runner.
17
+ - [Streaming](https://openai.github.io/openai-agents-python/streaming/): Stream intermediate tool usage and LLM responses for responsive UIs.
18
+ - [REPL](https://openai.github.io/openai-agents-python/repl/): Use the interactive runner to prototype agents and inspect execution step by step.
19
+ - [Context strategies](https://openai.github.io/openai-agents-python/context/): Control what past messages, attachments, and tool runs are injected into prompts.
20
+
21
+ ## Coordination and Safety
22
+ - [Handoffs](https://openai.github.io/openai-agents-python/handoffs/): Delegate tasks between agents with intent classification, argument passing, and return values.
23
+ - [Multi-agent patterns](https://openai.github.io/openai-agents-python/multi_agent/): Architect teams of agents that collaborate, escalate, or specialize by capability.
24
+ - [Guardrails](https://openai.github.io/openai-agents-python/guardrails/): Define validators that run alongside the agent loop to enforce business and safety rules.
25
+ - [Tools](https://openai.github.io/openai-agents-python/tools/): Register Python callables as structured tools, manage schemas, and work with tool contexts.
26
+ - [Model Context Protocol](https://openai.github.io/openai-agents-python/mcp/): Connect MCP servers so agents can request external data or actions through standardized tool APIs.
27
+
28
+ ## Operations and Configuration
29
+ - [Usage and pricing](https://openai.github.io/openai-agents-python/usage/): Understand token accounting, usage metrics, and cost estimation.
30
+ - [Configuration](https://openai.github.io/openai-agents-python/config/): Tune model selection, retry logic, rate limits, and runner policies for production workloads.
31
+ - [Visualization](https://openai.github.io/openai-agents-python/visualization/): Embed tracing dashboards and visualize agent runs directly in notebooks and web apps.
32
+
33
+ ## Observability and Tracing
34
+ - [Tracing](https://openai.github.io/openai-agents-python/tracing/): Capture spans for every agent step, emit data to OpenAI traces, and integrate third-party processors.
35
+
36
+ ## Modalities and Interfaces
37
+ - [Voice quickstart](https://openai.github.io/openai-agents-python/voice/quickstart/): Build speech-enabled agents with streaming transcription and TTS.
38
+ - [Voice pipeline](https://openai.github.io/openai-agents-python/voice/pipeline/): Customize audio ingestion, tool execution, and response rendering.
39
+ - [Realtime quickstart](https://openai.github.io/openai-agents-python/realtime/quickstart/): Stand up low-latency realtime agents with WebRTC and websocket transports.
40
+ - [Realtime guide](https://openai.github.io/openai-agents-python/realtime/guide/): Deep dive into session lifecycle, event formats, and concurrency patterns.
41
+
42
+ ## API Reference Highlights
43
+ - [Agents API index](https://openai.github.io/openai-agents-python/ref/index/): Entry point for class and function documentation throughout the SDK.
44
+ - [Agent lifecycle](https://openai.github.io/openai-agents-python/ref/lifecycle/): Understand the runner, evaluation phases, and callbacks triggered during execution.
45
+ - [Runs and sessions](https://openai.github.io/openai-agents-python/ref/run/): API for launching runs, streaming updates, and handling cancellations.
46
+ - [Results objects](https://openai.github.io/openai-agents-python/ref/result/): Data structures returned from agent runs, including final output and tool calls.
47
+ - [Tool interfaces](https://openai.github.io/openai-agents-python/ref/tool/): Create tools, parse arguments, and manage tool execution contexts.
48
+ - [Tracing APIs](https://openai.github.io/openai-agents-python/ref/tracing/index/): Programmatic interfaces for creating traces, spans, and integrating custom processors.
49
+ - [Realtime APIs](https://openai.github.io/openai-agents-python/ref/realtime/agent/): Classes for realtime agents, runners, sessions, and event payloads.
50
+ - [Voice APIs](https://openai.github.io/openai-agents-python/ref/voice/pipeline/): Configure voice pipelines, inputs, events, and model adapters.
51
+ - [Extensions](https://openai.github.io/openai-agents-python/ref/extensions/handoff_filters/): Extend the SDK with custom handoff filters, prompts, LiteLLM integration, and SQLAlchemy session memory.
52
+
53
+ ## Models and Providers
54
+ - [Model catalog](https://openai.github.io/openai-agents-python/models/): Overview of supported model families and configuration guidance.
55
+ - [LiteLLM integration](https://openai.github.io/openai-agents-python/models/litellm/): Configure LiteLLM as a provider to fan out across multiple model backends.
56
+
57
+ ## Optional
58
+ - [Release notes](https://openai.github.io/openai-agents-python/release/): Track SDK changes, migration notes, and deprecations.
59
+ - [Japanese documentation](https://openai.github.io/openai-agents-python/ja/): Localized overview and quickstart for Japanese-speaking developers.
60
+ - [Repository on GitHub](https://github.com/openai/openai-agents-python): Source code, issues, and contribution guidelines for the SDK.
@@ -1,13 +1,14 @@
1
1
  import asyncio
2
2
  import random
3
+ from dataclasses import dataclass
3
4
  from typing import Literal
4
5
 
5
6
  from agents import Agent, RunContextWrapper, Runner
6
7
 
7
8
 
9
+ @dataclass
8
10
  class CustomContext:
9
- def __init__(self, style: Literal["haiku", "pirate", "robot"]):
10
- self.style = style
11
+ style: Literal["haiku", "pirate", "robot"]
11
12
 
12
13
 
13
14
  def custom_instructions(
@@ -27,11 +28,9 @@ agent = Agent(
27
28
  instructions=custom_instructions,
28
29
  )
29
30
 
30
-
31
31
  async def main():
32
- choice: Literal["haiku", "pirate", "robot"] = random.choice(["haiku", "pirate", "robot"])
33
- context = CustomContext(style=choice)
34
- print(f"Using style: {choice}\n")
32
+ context = CustomContext(style=random.choice(["haiku", "pirate", "robot"]))
33
+ print(f"Using style: {context.style}\n")
35
34
 
36
35
  user_message = "Tell me a joke."
37
36
  print(f"User: {user_message}")
@@ -43,6 +42,7 @@ async def main():
43
42
  if __name__ == "__main__":
44
43
  asyncio.run(main())
45
44
 
45
+
46
46
  """
47
47
  $ python examples/basic/dynamic_system_prompt.py
48
48
 
@@ -46,7 +46,7 @@ class ExampleHooks(RunHooks):
46
46
  async def on_tool_start(self, context: RunContextWrapper, agent: Agent, tool: Tool) -> None:
47
47
  self.event_counter += 1
48
48
  print(
49
- f"### {self.event_counter}: Tool {tool.name} started. Usage: {self._usage_to_str(context.usage)}"
49
+ f"### {self.event_counter}: Tool {tool.name} started. name={context.tool_name}, call_id={context.tool_call_id}, args={context.tool_arguments}. Usage: {self._usage_to_str(context.usage)}" # type: ignore[attr-defined]
50
50
  )
51
51
 
52
52
  async def on_tool_end(
@@ -54,7 +54,7 @@ class ExampleHooks(RunHooks):
54
54
  ) -> None:
55
55
  self.event_counter += 1
56
56
  print(
57
- f"### {self.event_counter}: Tool {tool.name} ended with result {result}. Usage: {self._usage_to_str(context.usage)}"
57
+ f"### {self.event_counter}: Tool {tool.name} finished. result={result}, name={context.tool_name}, call_id={context.tool_call_id}, args={context.tool_arguments}. Usage: {self._usage_to_str(context.usage)}" # type: ignore[attr-defined]
58
58
  )
59
59
 
60
60
  async def on_handoff(
@@ -128,19 +128,19 @@ Enter a max number: 250
128
128
  ### 1: Agent Start Agent started. Usage: 0 requests, 0 input tokens, 0 output tokens, 0 total tokens
129
129
  ### 2: LLM started. Usage: 0 requests, 0 input tokens, 0 output tokens, 0 total tokens
130
130
  ### 3: LLM ended. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
131
- ### 4: Tool random_number started. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
132
- ### 5: Tool random_number ended with result 69. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
131
+ ### 4: Tool random_number started. name=random_number, call_id=call_IujmDZYiM800H0hy7v17VTS0, args={"max":250}. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
132
+ ### 5: Tool random_number finished. result=107, name=random_number, call_id=call_IujmDZYiM800H0hy7v17VTS0, args={"max":250}. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
133
133
  ### 6: LLM started. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
134
134
  ### 7: LLM ended. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
135
135
  ### 8: Handoff from Start Agent to Multiply Agent. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
136
136
  ### 9: Agent Multiply Agent started. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
137
137
  ### 10: LLM started. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
138
138
  ### 11: LLM ended. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
139
- ### 12: Tool multiply_by_two started. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
140
- ### 13: Tool multiply_by_two ended with result 138. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
139
+ ### 12: Tool multiply_by_two started. name=multiply_by_two, call_id=call_KhHvTfsgaosZsfi741QvzgYw, args={"x":107}. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
140
+ ### 13: Tool multiply_by_two finished. result=214, name=multiply_by_two, call_id=call_KhHvTfsgaosZsfi741QvzgYw, args={"x":107}. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
141
141
  ### 14: LLM started. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
142
142
  ### 15: LLM ended. Usage: 4 requests, 660 input tokens, 56 output tokens, 716 total tokens
143
- ### 16: Agent Multiply Agent ended with output number=138. Usage: 4 requests, 660 input tokens, 56 output tokens, 716 total tokens
143
+ ### 16: Agent Multiply Agent ended with output number=214. Usage: 4 requests, 660 input tokens, 56 output tokens, 716 total tokens
144
144
  Done!
145
145
 
146
146
  """
@@ -1,5 +1,5 @@
1
1
  import asyncio
2
- from typing import Any
2
+ from typing import Annotated, Any, Optional
3
3
 
4
4
  from openai.types.responses import ResponseFunctionCallArgumentsDeltaEvent
5
5
 
@@ -7,14 +7,18 @@ from agents import Agent, Runner, function_tool
7
7
 
8
8
 
9
9
  @function_tool
10
- def write_file(filename: str, content: str) -> str:
10
+ def write_file(filename: Annotated[str, "Name of the file"], content: str) -> str:
11
11
  """Write content to a file."""
12
12
  return f"File {filename} written successfully"
13
13
 
14
14
 
15
15
  @function_tool
16
- def create_config(project_name: str, version: str, dependencies: list[str]) -> str:
17
- """Create a configuration file for a project."""
16
+ def create_config(
17
+ project_name: Annotated[str, "Project name"],
18
+ version: Annotated[str, "Project version"],
19
+ dependencies: Annotated[Optional[list[str]], "Dependencies (list of packages)"],
20
+ ) -> str:
21
+ """Generate a project configuration file."""
18
22
  return f"Config for {project_name} v{version} created"
19
23
 
20
24
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openai-agents"
3
- version = "0.3.1"
3
+ version = "0.3.2"
4
4
  description = "OpenAI Agents SDK"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -39,7 +39,7 @@ from ...items import ModelResponse, TResponseInputItem, TResponseStreamEvent
39
39
  from ...logger import logger
40
40
  from ...model_settings import ModelSettings
41
41
  from ...models.chatcmpl_converter import Converter
42
- from ...models.chatcmpl_helpers import HEADERS, USER_AGENT_OVERRIDE
42
+ from ...models.chatcmpl_helpers import HEADERS, HEADERS_OVERRIDE
43
43
  from ...models.chatcmpl_stream_handler import ChatCmplStreamHandler
44
44
  from ...models.fake_id import FAKE_RESPONSES_ID
45
45
  from ...models.interface import Model, ModelTracing
@@ -385,11 +385,7 @@ class LitellmModel(Model):
385
385
  return value
386
386
 
387
387
  def _merge_headers(self, model_settings: ModelSettings):
388
- merged = {**HEADERS, **(model_settings.extra_headers or {})}
389
- ua_ctx = USER_AGENT_OVERRIDE.get()
390
- if ua_ctx is not None:
391
- merged["User-Agent"] = ua_ctx
392
- return merged
388
+ return {**HEADERS, **(model_settings.extra_headers or {}), **(HEADERS_OVERRIDE.get() or {})}
393
389
 
394
390
 
395
391
  class LitellmConverter:
@@ -107,7 +107,7 @@ class Converter:
107
107
  if hasattr(message, "thinking_blocks") and message.thinking_blocks:
108
108
  # Store thinking text in content and signature in encrypted_content
109
109
  reasoning_item.content = []
110
- signature = None
110
+ signatures: list[str] = []
111
111
  for block in message.thinking_blocks:
112
112
  if isinstance(block, dict):
113
113
  thinking_text = block.get("thinking", "")
@@ -116,15 +116,12 @@ class Converter:
116
116
  Content(text=thinking_text, type="reasoning_text")
117
117
  )
118
118
  # Store the signature if present
119
- if block.get("signature"):
120
- signature = block.get("signature")
119
+ if signature := block.get("signature"):
120
+ signatures.append(signature)
121
121
 
122
- # Store only the last signature in encrypted_content
123
- # If there are multiple thinking blocks, this should be a problem.
124
- # In practice, there should only be one signature for the entire reasoning step.
125
- # Tested with: claude-sonnet-4-20250514
126
- if signature:
127
- reasoning_item.encrypted_content = signature
122
+ # Store the signatures in encrypted_content with newline delimiter
123
+ if signatures:
124
+ reasoning_item.encrypted_content = "\n".join(signatures)
128
125
 
129
126
  items.append(reasoning_item)
130
127
 
@@ -483,7 +480,20 @@ class Converter:
483
480
  # If we have pending thinking blocks, use them as the content
484
481
  # This is required for Anthropic API tool calls with interleaved thinking
485
482
  if pending_thinking_blocks:
486
- asst["content"] = pending_thinking_blocks # type: ignore
483
+ # If there is a text content, save it to append after thinking blocks
484
+ # content type is Union[str, Iterable[ContentArrayOfContentPart], None]
485
+ if "content" in asst and isinstance(asst["content"], str):
486
+ text_content = ChatCompletionContentPartTextParam(
487
+ text=asst["content"], type="text"
488
+ )
489
+ asst["content"] = [text_content]
490
+
491
+ if "content" not in asst or asst["content"] is None:
492
+ asst["content"] = []
493
+
494
+ # Thinking blocks MUST come before any other content
495
+ # We ignore type errors because pending_thinking_blocks is not openai standard
496
+ asst["content"] = pending_thinking_blocks + asst["content"] # type: ignore
487
497
  pending_thinking_blocks = None # Clear after using
488
498
 
489
499
  tool_calls = list(asst.get("tool_calls", []))
@@ -518,7 +528,8 @@ class Converter:
518
528
  elif reasoning_item := cls.maybe_reasoning_message(item):
519
529
  # Reconstruct thinking blocks from content (text) and encrypted_content (signature)
520
530
  content_items = reasoning_item.get("content", [])
521
- signature = reasoning_item.get("encrypted_content")
531
+ encrypted_content = reasoning_item.get("encrypted_content")
532
+ signatures = encrypted_content.split("\n") if encrypted_content else []
522
533
 
523
534
  if content_items and preserve_thinking_blocks:
524
535
  # Reconstruct thinking blocks from content and signature
@@ -532,9 +543,9 @@ class Converter:
532
543
  "type": "thinking",
533
544
  "thinking": content_item.get("text", ""),
534
545
  }
535
- # Add signature if available
536
- if signature:
537
- thinking_block["signature"] = signature
546
+ # Add signatures if available
547
+ if signatures:
548
+ thinking_block["signature"] = signatures.pop(0)
538
549
  pending_thinking_blocks.append(thinking_block)
539
550
 
540
551
  # 8) If we haven't recognized it => fail or ignore
@@ -10,8 +10,8 @@ from ..version import __version__
10
10
  _USER_AGENT = f"Agents/Python {__version__}"
11
11
  HEADERS = {"User-Agent": _USER_AGENT}
12
12
 
13
- USER_AGENT_OVERRIDE: ContextVar[str | None] = ContextVar(
14
- "openai_chatcompletions_user_agent_override", default=None
13
+ HEADERS_OVERRIDE: ContextVar[dict[str, str] | None] = ContextVar(
14
+ "openai_chatcompletions_headers_override", default=None
15
15
  )
16
16
 
17
17
 
@@ -25,7 +25,7 @@ from ..tracing.spans import Span
25
25
  from ..usage import Usage
26
26
  from ..util._json import _to_dump_compatible
27
27
  from .chatcmpl_converter import Converter
28
- from .chatcmpl_helpers import HEADERS, USER_AGENT_OVERRIDE, ChatCmplHelpers
28
+ from .chatcmpl_helpers import HEADERS, HEADERS_OVERRIDE, ChatCmplHelpers
29
29
  from .chatcmpl_stream_handler import ChatCmplStreamHandler
30
30
  from .fake_id import FAKE_RESPONSES_ID
31
31
  from .interface import Model, ModelTracing
@@ -351,8 +351,8 @@ class OpenAIChatCompletionsModel(Model):
351
351
  return self._client
352
352
 
353
353
  def _merge_headers(self, model_settings: ModelSettings):
354
- merged = {**HEADERS, **(model_settings.extra_headers or {})}
355
- ua_ctx = USER_AGENT_OVERRIDE.get()
356
- if ua_ctx is not None:
357
- merged["User-Agent"] = ua_ctx
358
- return merged
354
+ return {
355
+ **HEADERS,
356
+ **(model_settings.extra_headers or {}),
357
+ **(HEADERS_OVERRIDE.get() or {}),
358
+ }
@@ -50,9 +50,9 @@ if TYPE_CHECKING:
50
50
  _USER_AGENT = f"Agents/Python {__version__}"
51
51
  _HEADERS = {"User-Agent": _USER_AGENT}
52
52
 
53
- # Override for the User-Agent header used by the Responses API.
54
- _USER_AGENT_OVERRIDE: ContextVar[str | None] = ContextVar(
55
- "openai_responses_user_agent_override", default=None
53
+ # Override headers used by the Responses API.
54
+ _HEADERS_OVERRIDE: ContextVar[dict[str, str] | None] = ContextVar(
55
+ "openai_responses_headers_override", default=None
56
56
  )
57
57
 
58
58
 
@@ -334,11 +334,11 @@ class OpenAIResponsesModel(Model):
334
334
  return self._client
335
335
 
336
336
  def _merge_headers(self, model_settings: ModelSettings):
337
- merged = {**_HEADERS, **(model_settings.extra_headers or {})}
338
- ua_ctx = _USER_AGENT_OVERRIDE.get()
339
- if ua_ctx is not None:
340
- merged["User-Agent"] = ua_ctx
341
- return merged
337
+ return {
338
+ **_HEADERS,
339
+ **(model_settings.extra_headers or {}),
340
+ **(_HEADERS_OVERRIDE.get() or {}),
341
+ }
342
342
 
343
343
 
344
344
  @dataclass
@@ -408,6 +408,7 @@ class RealtimeSession(RealtimeModelListener):
408
408
  usage=self._context_wrapper.usage,
409
409
  tool_name=event.name,
410
410
  tool_call_id=event.call_id,
411
+ tool_arguments=event.arguments,
411
412
  )
412
413
  result = await func_tool.on_invoke_tool(tool_context, event.arguments)
413
414
 
@@ -432,6 +433,7 @@ class RealtimeSession(RealtimeModelListener):
432
433
  usage=self._context_wrapper.usage,
433
434
  tool_name=event.name,
434
435
  tool_call_id=event.call_id,
436
+ tool_arguments=event.arguments,
435
437
  )
436
438
 
437
439
  # Execute the handoff to get the new agent
@@ -53,7 +53,7 @@ from .items import (
53
53
  ToolCallItemTypes,
54
54
  TResponseInputItem,
55
55
  )
56
- from .lifecycle import RunHooks
56
+ from .lifecycle import AgentHooksBase, RunHooks, RunHooksBase
57
57
  from .logger import logger
58
58
  from .memory import Session, SessionInputCallback
59
59
  from .model_settings import ModelSettings
@@ -461,13 +461,11 @@ class AgentRunner:
461
461
  ) -> RunResult:
462
462
  context = kwargs.get("context")
463
463
  max_turns = kwargs.get("max_turns", DEFAULT_MAX_TURNS)
464
- hooks = kwargs.get("hooks")
464
+ hooks = cast(RunHooks[TContext], self._validate_run_hooks(kwargs.get("hooks")))
465
465
  run_config = kwargs.get("run_config")
466
466
  previous_response_id = kwargs.get("previous_response_id")
467
467
  conversation_id = kwargs.get("conversation_id")
468
468
  session = kwargs.get("session")
469
- if hooks is None:
470
- hooks = RunHooks[Any]()
471
469
  if run_config is None:
472
470
  run_config = RunConfig()
473
471
 
@@ -668,14 +666,12 @@ class AgentRunner:
668
666
  ) -> RunResultStreaming:
669
667
  context = kwargs.get("context")
670
668
  max_turns = kwargs.get("max_turns", DEFAULT_MAX_TURNS)
671
- hooks = kwargs.get("hooks")
669
+ hooks = cast(RunHooks[TContext], self._validate_run_hooks(kwargs.get("hooks")))
672
670
  run_config = kwargs.get("run_config")
673
671
  previous_response_id = kwargs.get("previous_response_id")
674
672
  conversation_id = kwargs.get("conversation_id")
675
673
  session = kwargs.get("session")
676
674
 
677
- if hooks is None:
678
- hooks = RunHooks[Any]()
679
675
  if run_config is None:
680
676
  run_config = RunConfig()
681
677
 
@@ -732,6 +728,23 @@ class AgentRunner:
732
728
  )
733
729
  return streamed_result
734
730
 
731
+ @staticmethod
732
+ def _validate_run_hooks(
733
+ hooks: RunHooksBase[Any, Agent[Any]] | AgentHooksBase[Any, Agent[Any]] | Any | None,
734
+ ) -> RunHooks[Any]:
735
+ if hooks is None:
736
+ return RunHooks[Any]()
737
+ input_hook_type = type(hooks).__name__
738
+ if isinstance(hooks, AgentHooksBase):
739
+ raise TypeError(
740
+ "Run hooks must be instances of RunHooks. "
741
+ f"Received agent-scoped hooks ({input_hook_type}). "
742
+ "Attach AgentHooks to an Agent via Agent(..., hooks=...)."
743
+ )
744
+ if not isinstance(hooks, RunHooksBase):
745
+ raise TypeError(f"Run hooks must be instances of RunHooks. Received {input_hook_type}.")
746
+ return hooks
747
+
735
748
  @classmethod
736
749
  async def _maybe_filter_model_input(
737
750
  cls,
@@ -14,6 +14,10 @@ def _assert_must_pass_tool_name() -> str:
14
14
  raise ValueError("tool_name must be passed to ToolContext")
15
15
 
16
16
 
17
+ def _assert_must_pass_tool_arguments() -> str:
18
+ raise ValueError("tool_arguments must be passed to ToolContext")
19
+
20
+
17
21
  @dataclass
18
22
  class ToolContext(RunContextWrapper[TContext]):
19
23
  """The context of a tool call."""
@@ -24,6 +28,9 @@ class ToolContext(RunContextWrapper[TContext]):
24
28
  tool_call_id: str = field(default_factory=_assert_must_pass_tool_call_id)
25
29
  """The ID of the tool call."""
26
30
 
31
+ tool_arguments: str = field(default_factory=_assert_must_pass_tool_arguments)
32
+ """The raw arguments string of the tool call."""
33
+
27
34
  @classmethod
28
35
  def from_agent_context(
29
36
  cls,
@@ -39,4 +46,10 @@ class ToolContext(RunContextWrapper[TContext]):
39
46
  f.name: getattr(context, f.name) for f in fields(RunContextWrapper) if f.init
40
47
  }
41
48
  tool_name = tool_call.name if tool_call is not None else _assert_must_pass_tool_name()
42
- return cls(tool_name=tool_name, tool_call_id=tool_call_id, **base_values)
49
+ tool_args = (
50
+ tool_call.arguments if tool_call is not None else _assert_must_pass_tool_arguments()
51
+ )
52
+
53
+ return cls(
54
+ tool_name=tool_name, tool_call_id=tool_call_id, tool_arguments=tool_args, **base_values
55
+ )
@@ -5,7 +5,7 @@ from typing import Any
5
5
  import pytest
6
6
 
7
7
  from agents import ModelSettings, ModelTracing, __version__
8
- from agents.models.chatcmpl_helpers import USER_AGENT_OVERRIDE
8
+ from agents.models.chatcmpl_helpers import HEADERS_OVERRIDE
9
9
 
10
10
 
11
11
  @pytest.mark.allow_call_model_methods
@@ -65,7 +65,7 @@ async def test_user_agent_header_litellm(override_ua: str | None, monkeypatch):
65
65
  model = LitellmModel(model="gpt-4")
66
66
 
67
67
  if override_ua is not None:
68
- token = USER_AGENT_OVERRIDE.set(override_ua)
68
+ token = HEADERS_OVERRIDE.set({"User-Agent": override_ua})
69
69
  else:
70
70
  token = None
71
71
  try:
@@ -83,7 +83,7 @@ async def test_user_agent_header_litellm(override_ua: str | None, monkeypatch):
83
83
  )
84
84
  finally:
85
85
  if token is not None:
86
- USER_AGENT_OVERRIDE.reset(token)
86
+ HEADERS_OVERRIDE.reset(token)
87
87
 
88
88
  assert "extra_headers" in called_kwargs
89
89
  assert called_kwargs["extra_headers"]["User-Agent"] == expected_ua