openai-agents 0.0.2__tar.gz → 0.0.3__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 (321) hide show
  1. openai_agents-0.0.3/.gitignore +144 -0
  2. {openai_agents-0.0.2 → openai_agents-0.0.3}/PKG-INFO +11 -9
  3. {openai_agents-0.0.2 → openai_agents-0.0.3}/README.md +9 -7
  4. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/docs/index.md +1 -1
  5. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/examples/agent_patterns/README.md +1 -1
  6. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/examples/tools/computer_use.py +5 -4
  7. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/pyproject.toml +2 -2
  8. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/src/agents/_run_impl.py +2 -2
  9. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/src/agents/agent_output.py +1 -1
  10. {openai_agents-0.0.2/tests → openai_agents-0.0.3}/src/agents/items.py +3 -3
  11. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/model_settings.py +1 -0
  12. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/openai_responses.py +1 -1
  13. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tool.py +2 -0
  14. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_config.py +6 -3
  15. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_items_helpers.py +9 -7
  16. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_openai_responses_converter.py +2 -2
  17. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_run_step_processing.py +3 -3
  18. {openai_agents-0.0.2 → openai_agents-0.0.3}/uv.lock +5 -5
  19. openai_agents-0.0.2/docs/index.md +0 -52
  20. openai_agents-0.0.2/examples/agent_patterns/README.md +0 -54
  21. openai_agents-0.0.2/examples/tools/computer_use.py +0 -165
  22. openai_agents-0.0.2/pyproject.toml +0 -119
  23. openai_agents-0.0.2/src/agents/_run_impl.py +0 -792
  24. openai_agents-0.0.2/src/agents/agent_output.py +0 -144
  25. openai_agents-0.0.2/src/agents/items.py +0 -246
  26. openai_agents-0.0.2/src/openai_agents.egg-info/PKG-INFO +0 -217
  27. openai_agents-0.0.2/src/openai_agents.egg-info/SOURCES.txt +0 -81
  28. openai_agents-0.0.2/src/openai_agents.egg-info/dependency_links.txt +0 -1
  29. openai_agents-0.0.2/src/openai_agents.egg-info/requires.txt +0 -6
  30. openai_agents-0.0.2/src/openai_agents.egg-info/top_level.txt +0 -1
  31. openai_agents-0.0.2/tests/LICENSE +0 -21
  32. openai_agents-0.0.2/tests/Makefile +0 -37
  33. openai_agents-0.0.2/tests/README.md +0 -174
  34. openai_agents-0.0.2/tests/docs/agents.md +0 -131
  35. openai_agents-0.0.2/tests/docs/assets/images/favicon-platform.svg +0 -16
  36. openai_agents-0.0.2/tests/docs/assets/images/orchestration.png +0 -0
  37. openai_agents-0.0.2/tests/docs/assets/logo.svg +0 -15
  38. openai_agents-0.0.2/tests/docs/config.md +0 -94
  39. openai_agents-0.0.2/tests/docs/context.md +0 -76
  40. openai_agents-0.0.2/tests/docs/guardrails.md +0 -154
  41. openai_agents-0.0.2/tests/docs/handoffs.md +0 -113
  42. openai_agents-0.0.2/tests/docs/models.md +0 -73
  43. openai_agents-0.0.2/tests/docs/multi_agent.md +0 -37
  44. openai_agents-0.0.2/tests/docs/quickstart.md +0 -186
  45. openai_agents-0.0.2/tests/docs/ref/agent.md +0 -3
  46. openai_agents-0.0.2/tests/docs/ref/agent_output.md +0 -3
  47. openai_agents-0.0.2/tests/docs/ref/exceptions.md +0 -3
  48. openai_agents-0.0.2/tests/docs/ref/extensions/handoff_filters.md +0 -3
  49. openai_agents-0.0.2/tests/docs/ref/extensions/handoff_prompt.md +0 -8
  50. openai_agents-0.0.2/tests/docs/ref/function_schema.md +0 -3
  51. openai_agents-0.0.2/tests/docs/ref/guardrail.md +0 -3
  52. openai_agents-0.0.2/tests/docs/ref/handoffs.md +0 -3
  53. openai_agents-0.0.2/tests/docs/ref/index.md +0 -13
  54. openai_agents-0.0.2/tests/docs/ref/items.md +0 -3
  55. openai_agents-0.0.2/tests/docs/ref/lifecycle.md +0 -6
  56. openai_agents-0.0.2/tests/docs/ref/model_settings.md +0 -3
  57. openai_agents-0.0.2/tests/docs/ref/models/interface.md +0 -3
  58. openai_agents-0.0.2/tests/docs/ref/models/openai_chatcompletions.md +0 -3
  59. openai_agents-0.0.2/tests/docs/ref/models/openai_responses.md +0 -3
  60. openai_agents-0.0.2/tests/docs/ref/result.md +0 -3
  61. openai_agents-0.0.2/tests/docs/ref/run.md +0 -8
  62. openai_agents-0.0.2/tests/docs/ref/run_context.md +0 -3
  63. openai_agents-0.0.2/tests/docs/ref/stream_events.md +0 -3
  64. openai_agents-0.0.2/tests/docs/ref/tool.md +0 -3
  65. openai_agents-0.0.2/tests/docs/ref/tracing/create.md +0 -3
  66. openai_agents-0.0.2/tests/docs/ref/tracing/index.md +0 -3
  67. openai_agents-0.0.2/tests/docs/ref/tracing/processor_interface.md +0 -3
  68. openai_agents-0.0.2/tests/docs/ref/tracing/processors.md +0 -3
  69. openai_agents-0.0.2/tests/docs/ref/tracing/scope.md +0 -3
  70. openai_agents-0.0.2/tests/docs/ref/tracing/setup.md +0 -3
  71. openai_agents-0.0.2/tests/docs/ref/tracing/span_data.md +0 -3
  72. openai_agents-0.0.2/tests/docs/ref/tracing/spans.md +0 -9
  73. openai_agents-0.0.2/tests/docs/ref/tracing/traces.md +0 -3
  74. openai_agents-0.0.2/tests/docs/ref/tracing/util.md +0 -3
  75. openai_agents-0.0.2/tests/docs/ref/usage.md +0 -3
  76. openai_agents-0.0.2/tests/docs/results.md +0 -52
  77. openai_agents-0.0.2/tests/docs/running_agents.md +0 -95
  78. openai_agents-0.0.2/tests/docs/streaming.md +0 -87
  79. openai_agents-0.0.2/tests/docs/stylesheets/extra.css +0 -194
  80. openai_agents-0.0.2/tests/docs/tools.md +0 -270
  81. openai_agents-0.0.2/tests/docs/tracing.md +0 -95
  82. openai_agents-0.0.2/tests/examples/__init__.py +0 -3
  83. openai_agents-0.0.2/tests/examples/agent_patterns/agents_as_tools.py +0 -79
  84. openai_agents-0.0.2/tests/examples/agent_patterns/deterministic.py +0 -80
  85. openai_agents-0.0.2/tests/examples/agent_patterns/input_guardrails.py +0 -105
  86. openai_agents-0.0.2/tests/examples/agent_patterns/llm_as_a_judge.py +0 -76
  87. openai_agents-0.0.2/tests/examples/agent_patterns/output_guardrails.py +0 -80
  88. openai_agents-0.0.2/tests/examples/agent_patterns/parallelization.py +0 -61
  89. openai_agents-0.0.2/tests/examples/agent_patterns/routing.py +0 -70
  90. openai_agents-0.0.2/tests/examples/basic/agent_lifecycle_example.py +0 -112
  91. openai_agents-0.0.2/tests/examples/basic/dynamic_system_prompt.py +0 -69
  92. openai_agents-0.0.2/tests/examples/basic/hello_world.py +0 -20
  93. openai_agents-0.0.2/tests/examples/basic/lifecycle_example.py +0 -118
  94. openai_agents-0.0.2/tests/examples/basic/stream_items.py +0 -65
  95. openai_agents-0.0.2/tests/examples/basic/stream_text.py +0 -21
  96. openai_agents-0.0.2/tests/examples/customer_service/main.py +0 -169
  97. openai_agents-0.0.2/tests/examples/handoffs/message_filter.py +0 -176
  98. openai_agents-0.0.2/tests/examples/handoffs/message_filter_streaming.py +0 -176
  99. openai_agents-0.0.2/tests/examples/research_bot/README.md +0 -25
  100. openai_agents-0.0.2/tests/examples/research_bot/__init__.py +0 -1
  101. openai_agents-0.0.2/tests/examples/research_bot/agents/__init__.py +0 -0
  102. openai_agents-0.0.2/tests/examples/research_bot/agents/planner_agent.py +0 -29
  103. openai_agents-0.0.2/tests/examples/research_bot/agents/search_agent.py +0 -18
  104. openai_agents-0.0.2/tests/examples/research_bot/agents/writer_agent.py +0 -33
  105. openai_agents-0.0.2/tests/examples/research_bot/main.py +0 -12
  106. openai_agents-0.0.2/tests/examples/research_bot/manager.py +0 -119
  107. openai_agents-0.0.2/tests/examples/research_bot/printer.py +0 -41
  108. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/product_recs.md +0 -180
  109. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/product_recs.txt +0 -212
  110. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/vacation.md +0 -177
  111. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/vacation.txt +0 -206
  112. openai_agents-0.0.2/tests/examples/tools/file_search.py +0 -36
  113. openai_agents-0.0.2/tests/examples/tools/web_search.py +0 -23
  114. openai_agents-0.0.2/tests/mkdocs.yml +0 -121
  115. openai_agents-0.0.2/tests/src/agents/__init__.py +0 -223
  116. openai_agents-0.0.2/tests/src/agents/_config.py +0 -23
  117. openai_agents-0.0.2/tests/src/agents/_debug.py +0 -17
  118. openai_agents-0.0.2/tests/src/agents/_utils.py +0 -61
  119. openai_agents-0.0.2/tests/src/agents/agent.py +0 -159
  120. openai_agents-0.0.2/tests/src/agents/computer.py +0 -107
  121. openai_agents-0.0.2/tests/src/agents/exceptions.py +0 -63
  122. openai_agents-0.0.2/tests/src/agents/extensions/__init__.py +0 -0
  123. openai_agents-0.0.2/tests/src/agents/extensions/handoff_filters.py +0 -67
  124. openai_agents-0.0.2/tests/src/agents/extensions/handoff_prompt.py +0 -19
  125. openai_agents-0.0.2/tests/src/agents/function_schema.py +0 -340
  126. openai_agents-0.0.2/tests/src/agents/guardrail.py +0 -320
  127. openai_agents-0.0.2/tests/src/agents/handoffs.py +0 -236
  128. openai_agents-0.0.2/tests/src/agents/lifecycle.py +0 -105
  129. openai_agents-0.0.2/tests/src/agents/logger.py +0 -3
  130. openai_agents-0.0.2/tests/src/agents/model_settings.py +0 -35
  131. openai_agents-0.0.2/tests/src/agents/models/__init__.py +0 -0
  132. openai_agents-0.0.2/tests/src/agents/models/_openai_shared.py +0 -34
  133. openai_agents-0.0.2/tests/src/agents/models/fake_id.py +0 -5
  134. openai_agents-0.0.2/tests/src/agents/models/interface.py +0 -107
  135. openai_agents-0.0.2/tests/src/agents/models/openai_chatcompletions.py +0 -952
  136. openai_agents-0.0.2/tests/src/agents/models/openai_provider.py +0 -65
  137. openai_agents-0.0.2/tests/src/agents/models/openai_responses.py +0 -384
  138. openai_agents-0.0.2/tests/src/agents/result.py +0 -220
  139. openai_agents-0.0.2/tests/src/agents/run.py +0 -904
  140. openai_agents-0.0.2/tests/src/agents/run_context.py +0 -26
  141. openai_agents-0.0.2/tests/src/agents/stream_events.py +0 -58
  142. openai_agents-0.0.2/tests/src/agents/strict_schema.py +0 -167
  143. openai_agents-0.0.2/tests/src/agents/tool.py +0 -286
  144. openai_agents-0.0.2/tests/src/agents/tracing/__init__.py +0 -97
  145. openai_agents-0.0.2/tests/src/agents/tracing/create.py +0 -306
  146. openai_agents-0.0.2/tests/src/agents/tracing/logger.py +0 -3
  147. openai_agents-0.0.2/tests/src/agents/tracing/processor_interface.py +0 -69
  148. openai_agents-0.0.2/tests/src/agents/tracing/processors.py +0 -261
  149. openai_agents-0.0.2/tests/src/agents/tracing/scope.py +0 -45
  150. openai_agents-0.0.2/tests/src/agents/tracing/setup.py +0 -211
  151. openai_agents-0.0.2/tests/src/agents/tracing/span_data.py +0 -188
  152. openai_agents-0.0.2/tests/src/agents/tracing/spans.py +0 -264
  153. openai_agents-0.0.2/tests/src/agents/tracing/traces.py +0 -195
  154. openai_agents-0.0.2/tests/src/agents/tracing/util.py +0 -17
  155. openai_agents-0.0.2/tests/src/agents/usage.py +0 -22
  156. openai_agents-0.0.2/tests/src/agents/version.py +0 -7
  157. openai_agents-0.0.2/tests/src/openai_agents.egg-info/PKG-INFO +0 -217
  158. openai_agents-0.0.2/tests/src/openai_agents.egg-info/SOURCES.txt +0 -81
  159. openai_agents-0.0.2/tests/src/openai_agents.egg-info/dependency_links.txt +0 -1
  160. openai_agents-0.0.2/tests/src/openai_agents.egg-info/requires.txt +0 -6
  161. openai_agents-0.0.2/tests/src/openai_agents.egg-info/top_level.txt +0 -1
  162. {openai_agents-0.0.2 → openai_agents-0.0.3}/.github/workflows/docs.yml +0 -0
  163. {openai_agents-0.0.2 → openai_agents-0.0.3}/.github/workflows/publish.yml +0 -0
  164. {openai_agents-0.0.2 → openai_agents-0.0.3}/.github/workflows/tests.yml +0 -0
  165. {openai_agents-0.0.2 → openai_agents-0.0.3}/.prettierrc +0 -0
  166. {openai_agents-0.0.2 → openai_agents-0.0.3}/LICENSE +0 -0
  167. {openai_agents-0.0.2 → openai_agents-0.0.3}/Makefile +0 -0
  168. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/agents.md +0 -0
  169. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/assets/images/favicon-platform.svg +0 -0
  170. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/assets/images/orchestration.png +0 -0
  171. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/assets/logo.svg +0 -0
  172. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/config.md +0 -0
  173. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/context.md +0 -0
  174. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/guardrails.md +0 -0
  175. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/handoffs.md +0 -0
  176. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/models.md +0 -0
  177. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/multi_agent.md +0 -0
  178. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/quickstart.md +0 -0
  179. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/agent.md +0 -0
  180. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/agent_output.md +0 -0
  181. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/exceptions.md +0 -0
  182. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/extensions/handoff_filters.md +0 -0
  183. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/extensions/handoff_prompt.md +0 -0
  184. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/function_schema.md +0 -0
  185. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/guardrail.md +0 -0
  186. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/handoffs.md +0 -0
  187. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/index.md +0 -0
  188. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/items.md +0 -0
  189. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/lifecycle.md +0 -0
  190. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/model_settings.md +0 -0
  191. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/models/interface.md +0 -0
  192. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/models/openai_chatcompletions.md +0 -0
  193. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/models/openai_responses.md +0 -0
  194. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/result.md +0 -0
  195. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/run.md +0 -0
  196. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/run_context.md +0 -0
  197. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/stream_events.md +0 -0
  198. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tool.md +0 -0
  199. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/create.md +0 -0
  200. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/index.md +0 -0
  201. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/processor_interface.md +0 -0
  202. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/processors.md +0 -0
  203. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/scope.md +0 -0
  204. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/setup.md +0 -0
  205. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/span_data.md +0 -0
  206. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/spans.md +0 -0
  207. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/traces.md +0 -0
  208. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/tracing/util.md +0 -0
  209. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/ref/usage.md +0 -0
  210. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/results.md +0 -0
  211. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/running_agents.md +0 -0
  212. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/streaming.md +0 -0
  213. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/stylesheets/extra.css +0 -0
  214. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/tools.md +0 -0
  215. {openai_agents-0.0.2 → openai_agents-0.0.3}/docs/tracing.md +0 -0
  216. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/__init__.py +0 -0
  217. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/agents_as_tools.py +0 -0
  218. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/deterministic.py +0 -0
  219. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/input_guardrails.py +0 -0
  220. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/llm_as_a_judge.py +0 -0
  221. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/output_guardrails.py +0 -0
  222. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/parallelization.py +0 -0
  223. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/agent_patterns/routing.py +0 -0
  224. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/basic/agent_lifecycle_example.py +0 -0
  225. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/basic/dynamic_system_prompt.py +0 -0
  226. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/basic/hello_world.py +0 -0
  227. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/basic/lifecycle_example.py +0 -0
  228. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/basic/stream_items.py +0 -0
  229. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/basic/stream_text.py +0 -0
  230. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/customer_service/main.py +0 -0
  231. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/handoffs/message_filter.py +0 -0
  232. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/handoffs/message_filter_streaming.py +0 -0
  233. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/README.md +0 -0
  234. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/__init__.py +0 -0
  235. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/agents/__init__.py +0 -0
  236. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/agents/planner_agent.py +0 -0
  237. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/agents/search_agent.py +0 -0
  238. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/agents/writer_agent.py +0 -0
  239. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/main.py +0 -0
  240. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/manager.py +0 -0
  241. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/printer.py +0 -0
  242. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  243. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  244. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/sample_outputs/vacation.md +0 -0
  245. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  246. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/tools/file_search.py +0 -0
  247. {openai_agents-0.0.2 → openai_agents-0.0.3}/examples/tools/web_search.py +0 -0
  248. {openai_agents-0.0.2 → openai_agents-0.0.3}/mkdocs.yml +0 -0
  249. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/__init__.py +0 -0
  250. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/_config.py +0 -0
  251. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/_debug.py +0 -0
  252. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/_utils.py +0 -0
  253. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/agent.py +0 -0
  254. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/computer.py +0 -0
  255. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/exceptions.py +0 -0
  256. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/extensions/__init__.py +0 -0
  257. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/extensions/handoff_filters.py +0 -0
  258. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/extensions/handoff_prompt.py +0 -0
  259. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/function_schema.py +0 -0
  260. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/guardrail.py +0 -0
  261. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/handoffs.py +0 -0
  262. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/lifecycle.py +0 -0
  263. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/logger.py +0 -0
  264. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/__init__.py +0 -0
  265. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/_openai_shared.py +0 -0
  266. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/fake_id.py +0 -0
  267. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/interface.py +0 -0
  268. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/openai_chatcompletions.py +0 -0
  269. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/models/openai_provider.py +0 -0
  270. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/result.py +0 -0
  271. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/run.py +0 -0
  272. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/run_context.py +0 -0
  273. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/stream_events.py +0 -0
  274. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/strict_schema.py +0 -0
  275. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/__init__.py +0 -0
  276. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/create.py +0 -0
  277. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/logger.py +0 -0
  278. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/processor_interface.py +0 -0
  279. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/processors.py +0 -0
  280. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/scope.py +0 -0
  281. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/setup.py +0 -0
  282. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/span_data.py +0 -0
  283. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/spans.py +0 -0
  284. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/traces.py +0 -0
  285. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/tracing/util.py +0 -0
  286. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/usage.py +0 -0
  287. {openai_agents-0.0.2 → openai_agents-0.0.3}/src/agents/version.py +0 -0
  288. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/__init__.py +0 -0
  289. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/conftest.py +0 -0
  290. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/fake_model.py +0 -0
  291. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_agent_config.py +0 -0
  292. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_agent_hooks.py +0 -0
  293. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_agent_runner.py +0 -0
  294. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_agent_runner_streamed.py +0 -0
  295. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_agent_tracing.py +0 -0
  296. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_computer_action.py +0 -0
  297. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_doc_parsing.py +0 -0
  298. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_extension_filters.py +0 -0
  299. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_function_schema.py +0 -0
  300. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_function_tool.py +0 -0
  301. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_function_tool_decorator.py +0 -0
  302. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_global_hooks.py +0 -0
  303. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_guardrails.py +0 -0
  304. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_handoff_tool.py +0 -0
  305. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_max_turns.py +0 -0
  306. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_openai_chatcompletions.py +0 -0
  307. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_openai_chatcompletions_converter.py +0 -0
  308. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_openai_chatcompletions_stream.py +0 -0
  309. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_output_tool.py +0 -0
  310. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_responses.py +0 -0
  311. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_responses_tracing.py +0 -0
  312. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_result_cast.py +0 -0
  313. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_run_config.py +0 -0
  314. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_run_step_execution.py +0 -0
  315. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_strict_schema.py +0 -0
  316. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_tool_converter.py +0 -0
  317. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_trace_processor.py +0 -0
  318. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_tracing.py +0 -0
  319. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_tracing_errors.py +0 -0
  320. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/test_tracing_errors_streamed.py +0 -0
  321. {openai_agents-0.0.2 → openai_agents-0.0.3}/tests/testing_processor.py +0 -0
@@ -0,0 +1,144 @@
1
+ # macOS Files
2
+ .DS_Store
3
+
4
+ # Byte-compiled / optimized / DLL files
5
+ __pycache__/
6
+ **/__pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+ # C extensions
11
+ *.so
12
+
13
+ # Distribution / packaging
14
+ .Python
15
+ build/
16
+ develop-eggs/
17
+ dist/
18
+ downloads/
19
+ eggs/
20
+ .eggs/
21
+ lib/
22
+ lib64/
23
+ parts/
24
+ sdist/
25
+ var/
26
+ wheels/
27
+ share/python-wheels/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+ MANIFEST
32
+
33
+ # PyInstaller
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+ cover/
55
+
56
+ # Translations
57
+ *.mo
58
+ *.pot
59
+
60
+ # Django stuff:
61
+ *.log
62
+ local_settings.py
63
+ db.sqlite3
64
+ db.sqlite3-journal
65
+
66
+ # Flask stuff:
67
+ instance/
68
+ .webassets-cache
69
+
70
+ # Scrapy stuff:
71
+ .scrapy
72
+
73
+ # Sphinx documentation
74
+ docs/_build/
75
+
76
+ # PyBuilder
77
+ .pybuilder/
78
+ target/
79
+
80
+ # Jupyter Notebook
81
+ .ipynb_checkpoints
82
+
83
+ # IPython
84
+ profile_default/
85
+ ipython_config.py
86
+
87
+ # pdm
88
+ .pdm.toml
89
+ .pdm-python
90
+ .pdm-build/
91
+
92
+ # PEP 582
93
+ __pypackages__/
94
+
95
+ # Celery stuff
96
+ celerybeat-schedule
97
+ celerybeat.pid
98
+
99
+ # SageMath parsed files
100
+ *.sage.py
101
+
102
+ # Environments
103
+ .env
104
+ .venv
105
+ env/
106
+ venv/
107
+ ENV/
108
+ env.bak/
109
+ venv.bak/
110
+ .venv39
111
+ .venv_res
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache/
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre/
130
+
131
+ # pytype static type analyzer
132
+ .pytype/
133
+
134
+ # Cython debug symbols
135
+ cython_debug/
136
+
137
+ # PyCharm
138
+ #.idea/
139
+
140
+ # Ruff stuff:
141
+ .ruff_cache/
142
+
143
+ # PyPI configuration file
144
+ .pypirc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.0.2
3
+ Version: 0.0.3
4
4
  Summary: OpenAI Agents SDK
5
5
  Project-URL: Homepage, https://github.com/openai/openai-agents-python
6
6
  Project-URL: Repository, https://github.com/openai/openai-agents-python
@@ -19,7 +19,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
19
  Classifier: Typing :: Typed
20
20
  Requires-Python: >=3.9
21
21
  Requires-Dist: griffe<2,>=1.5.6
22
- Requires-Dist: openai>=1.66.0
22
+ Requires-Dist: openai>=1.66.2
23
23
  Requires-Dist: pydantic<3,>=2.10
24
24
  Requires-Dist: requests<3,>=2.0
25
25
  Requires-Dist: types-requests<3,>=2.0
@@ -30,16 +30,18 @@ Description-Content-Type: text/markdown
30
30
 
31
31
  The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
32
32
 
33
- <img src="docs/assets/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
33
+ <img src="https://cdn.openai.com/API/docs/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
34
34
 
35
35
  ### Core concepts:
36
36
 
37
- 1. [**Agents**](docs/agents.md): LLMs configured with instructions, tools, guardrails, and handoffs
38
- 2. [**Handoffs**](docs/handoffs.md): Allow agents to transfer control to other agents for specific tasks
39
- 3. [**Guardrails**](docs/guardrails.md): Configurable safety checks for input and output validation
40
- 4. [**Tracing**](docs/tracing.md): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
37
+ 1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardrails, and handoffs
38
+ 2. [**Handoffs**](https://openai.github.io/openai-agents-python/handoffs/): Allow agents to transfer control to other agents for specific tasks
39
+ 3. [**Guardrails**](https://openai.github.io/openai-agents-python/guardrails/): Configurable safety checks for input and output validation
40
+ 4. [**Tracing**](https://openai.github.io/openai-agents-python/tracing/): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
41
41
 
42
- Explore the [examples](examples) directory to see the SDK in action.
42
+ Explore the [examples](examples) directory to see the SDK in action, and read our [documentation](https://openai.github.io/openai-agents-python/) for more details.
43
+
44
+ Notably, our SDK [is compatible](https://openai.github.io/openai-agents-python/models/) with any model providers that support the OpenAI Chat Completions API format.
43
45
 
44
46
  ## Get started
45
47
 
@@ -166,7 +168,7 @@ The Agents SDK is designed to be highly flexible, allowing you to model a wide r
166
168
 
167
169
  ## Tracing
168
170
 
169
- The Agents SDK includes built-in tracing, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), and [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk). See [Tracing](http://openai.github.io/openai-agents-python/tracing.md) for more details.
171
+ The Agents SDK automatically traces your agent runs, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), and [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk). For more details about how to customize or disable tracing, see [Tracing](http://openai.github.io/openai-agents-python/tracing).
170
172
 
171
173
  ## Development (only needed if you need to edit the SDK/examples)
172
174
 
@@ -2,16 +2,18 @@
2
2
 
3
3
  The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
4
4
 
5
- <img src="docs/assets/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
5
+ <img src="https://cdn.openai.com/API/docs/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
6
6
 
7
7
  ### Core concepts:
8
8
 
9
- 1. [**Agents**](docs/agents.md): LLMs configured with instructions, tools, guardrails, and handoffs
10
- 2. [**Handoffs**](docs/handoffs.md): Allow agents to transfer control to other agents for specific tasks
11
- 3. [**Guardrails**](docs/guardrails.md): Configurable safety checks for input and output validation
12
- 4. [**Tracing**](docs/tracing.md): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
9
+ 1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardrails, and handoffs
10
+ 2. [**Handoffs**](https://openai.github.io/openai-agents-python/handoffs/): Allow agents to transfer control to other agents for specific tasks
11
+ 3. [**Guardrails**](https://openai.github.io/openai-agents-python/guardrails/): Configurable safety checks for input and output validation
12
+ 4. [**Tracing**](https://openai.github.io/openai-agents-python/tracing/): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
13
13
 
14
- Explore the [examples](examples) directory to see the SDK in action.
14
+ Explore the [examples](examples) directory to see the SDK in action, and read our [documentation](https://openai.github.io/openai-agents-python/) for more details.
15
+
16
+ Notably, our SDK [is compatible](https://openai.github.io/openai-agents-python/models/) with any model providers that support the OpenAI Chat Completions API format.
15
17
 
16
18
  ## Get started
17
19
 
@@ -138,7 +140,7 @@ The Agents SDK is designed to be highly flexible, allowing you to model a wide r
138
140
 
139
141
  ## Tracing
140
142
 
141
- The Agents SDK includes built-in tracing, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), and [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk). See [Tracing](http://openai.github.io/openai-agents-python/tracing.md) for more details.
143
+ The Agents SDK automatically traces your agent runs, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), and [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk). For more details about how to customize or disable tracing, see [Tracing](http://openai.github.io/openai-agents-python/tracing).
142
144
 
143
145
  ## Development (only needed if you need to edit the SDK/examples)
144
146
 
@@ -1,6 +1,6 @@
1
1
  # OpenAI Agents SDK
2
2
 
3
- The OpenAI Agents SDK enables you to build agentic AI apps in a lightweight, easy to use package with very few abstractions. It's a production-ready upgrade of our previous experimentation for agents, [Swarm](https://github.com/openai/swarm/tree/main). The Agents SDK has a very small set of primitives:
3
+ The [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) enables you to build agentic AI apps in a lightweight, easy to use package with very few abstractions. It's a production-ready upgrade of our previous experimentation for agents, [Swarm](https://github.com/openai/swarm/tree/main). The Agents SDK has a very small set of primitives:
4
4
 
5
5
  - **Agents**, which are LLMs equipped with instructions and tools
6
6
  - **Handoffs**, which allow agents to delegate to other agents for specific tasks
@@ -51,4 +51,4 @@ You can definitely do this without any special Agents SDK features by using para
51
51
 
52
52
  This is really useful for latency: for example, you might have a very fast model that runs the guardrail and a slow model that runs the actual agent. You wouldn't want to wait for the slow model to finish, so guardrails let you quickly reject invalid inputs.
53
53
 
54
- See the [`guardrails.py`](./guardrails.py) file for an example of this.
54
+ See the [`input_guardrails.py`](./input_guardrails.py) and [`output_guardrails.py`](./output_guardrails.py) files for examples.
@@ -1,6 +1,5 @@
1
1
  import asyncio
2
2
  import base64
3
- import logging
4
3
  from typing import Literal, Union
5
4
 
6
5
  from playwright.async_api import Browser, Page, Playwright, async_playwright
@@ -16,8 +15,10 @@ from agents import (
16
15
  trace,
17
16
  )
18
17
 
19
- logging.getLogger("openai.agents").setLevel(logging.DEBUG)
20
- logging.getLogger("openai.agents").addHandler(logging.StreamHandler())
18
+ # Uncomment to see very verbose logs
19
+ # import logging
20
+ # logging.getLogger("openai.agents").setLevel(logging.DEBUG)
21
+ # logging.getLogger("openai.agents").addHandler(logging.StreamHandler())
21
22
 
22
23
 
23
24
  async def main():
@@ -28,7 +29,7 @@ async def main():
28
29
  instructions="You are a helpful agent.",
29
30
  tools=[ComputerTool(computer)],
30
31
  # Use the computer using model, and set truncation to auto because its required
31
- model="computer-use-preview-2025-02-04",
32
+ model="computer-use-preview",
32
33
  model_settings=ModelSettings(truncation="auto"),
33
34
  )
34
35
  result = await Runner.run(agent, "Search for SF sports news and summarize.")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openai-agents"
3
- version = "0.0.1"
3
+ version = "0.0.3"
4
4
  description = "OpenAI Agents SDK"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -9,7 +9,7 @@ authors = [
9
9
  { name = "OpenAI", email = "support@openai.com" },
10
10
  ]
11
11
  dependencies = [
12
- "openai>=1.66.0",
12
+ "openai>=1.66.2",
13
13
  "pydantic>=2.10, <3",
14
14
  "griffe>=1.5.6, <2",
15
15
  "typing-extensions>=4.12.2, <5",
@@ -23,7 +23,7 @@ from openai.types.responses.response_computer_tool_call import (
23
23
  ActionWait,
24
24
  )
25
25
  from openai.types.responses.response_input_param import ComputerCallOutput
26
- from openai.types.responses.response_output_item import Reasoning
26
+ from openai.types.responses.response_reasoning_item import ResponseReasoningItem
27
27
 
28
28
  from . import _utils
29
29
  from .agent import Agent
@@ -288,7 +288,7 @@ class RunImpl:
288
288
  items.append(ToolCallItem(raw_item=output, agent=agent))
289
289
  elif isinstance(output, ResponseFunctionWebSearch):
290
290
  items.append(ToolCallItem(raw_item=output, agent=agent))
291
- elif isinstance(output, Reasoning):
291
+ elif isinstance(output, ResponseReasoningItem):
292
292
  items.append(ReasoningItem(raw_item=output, agent=agent))
293
293
  elif isinstance(output, ResponseComputerToolCall):
294
294
  items.append(ToolCallItem(raw_item=output, agent=agent))
@@ -138,7 +138,7 @@ def _type_to_str(t: type[Any]) -> str:
138
138
  # It's a simple type like `str`, `int`, etc.
139
139
  return t.__name__
140
140
  elif args:
141
- args_str = ', '.join(_type_to_str(arg) for arg in args)
141
+ args_str = ", ".join(_type_to_str(arg) for arg in args)
142
142
  return f"{origin.__name__}[{args_str}]"
143
143
  else:
144
144
  return str(t)
@@ -19,7 +19,7 @@ from openai.types.responses import (
19
19
  ResponseStreamEvent,
20
20
  )
21
21
  from openai.types.responses.response_input_item_param import ComputerCallOutput, FunctionCallOutput
22
- from openai.types.responses.response_output_item import Reasoning
22
+ from openai.types.responses.response_reasoning_item import ResponseReasoningItem
23
23
  from pydantic import BaseModel
24
24
  from typing_extensions import TypeAlias
25
25
 
@@ -136,10 +136,10 @@ class ToolCallOutputItem(RunItemBase[Union[FunctionCallOutput, ComputerCallOutpu
136
136
 
137
137
 
138
138
  @dataclass
139
- class ReasoningItem(RunItemBase[Reasoning]):
139
+ class ReasoningItem(RunItemBase[ResponseReasoningItem]):
140
140
  """Represents a reasoning item."""
141
141
 
142
- raw_item: Reasoning
142
+ raw_item: ResponseReasoningItem
143
143
  """The raw reasoning item."""
144
144
 
145
145
  type: Literal["reasoning_item"] = "reasoning_item"
@@ -11,6 +11,7 @@ class ModelSettings:
11
11
  This class holds optional model configuration parameters (e.g. temperature,
12
12
  top_p, penalties, truncation, etc.).
13
13
  """
14
+
14
15
  temperature: float | None = None
15
16
  top_p: float | None = None
16
17
  frequency_penalty: float | None = None
@@ -361,7 +361,7 @@ class Converter:
361
361
  includes = "file_search_call.results" if tool.include_search_results else None
362
362
  elif isinstance(tool, ComputerTool):
363
363
  converted_tool = {
364
- "type": "computer-preview",
364
+ "type": "computer_use_preview",
365
365
  "environment": tool.computer.environment,
366
366
  "display_width": tool.computer.dimensions[0],
367
367
  "display_height": tool.computer.dimensions[1],
@@ -284,3 +284,5 @@ def function_tool(
284
284
  return _create_function_tool(real_func)
285
285
 
286
286
  return decorator
287
+ return decorator
288
+ return decorator
@@ -49,13 +49,16 @@ def test_resp_set_default_openai_client():
49
49
 
50
50
 
51
51
  def test_set_default_openai_api():
52
- assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIResponsesModel), \
52
+ assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIResponsesModel), (
53
53
  "Default should be responses"
54
+ )
54
55
 
55
56
  set_default_openai_api("chat_completions")
56
- assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIChatCompletionsModel), \
57
+ assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIChatCompletionsModel), (
57
58
  "Should be chat completions model"
59
+ )
58
60
 
59
61
  set_default_openai_api("responses")
60
- assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIResponsesModel), \
62
+ assert isinstance(OpenAIProvider().get_model("gpt-4"), OpenAIResponsesModel), (
61
63
  "Should be responses model"
64
+ )
@@ -13,12 +13,12 @@ from openai.types.responses.response_function_tool_call import ResponseFunctionT
13
13
  from openai.types.responses.response_function_tool_call_param import ResponseFunctionToolCallParam
14
14
  from openai.types.responses.response_function_web_search import ResponseFunctionWebSearch
15
15
  from openai.types.responses.response_function_web_search_param import ResponseFunctionWebSearchParam
16
- from openai.types.responses.response_input_item_param import Reasoning as ReasoningInputParam
17
- from openai.types.responses.response_output_item import Reasoning, ReasoningContent
18
16
  from openai.types.responses.response_output_message import ResponseOutputMessage
19
17
  from openai.types.responses.response_output_message_param import ResponseOutputMessageParam
20
18
  from openai.types.responses.response_output_refusal import ResponseOutputRefusal
21
19
  from openai.types.responses.response_output_text import ResponseOutputText
20
+ from openai.types.responses.response_reasoning_item import ResponseReasoningItem, Summary
21
+ from openai.types.responses.response_reasoning_item_param import ResponseReasoningItemParam
22
22
 
23
23
  from agents import (
24
24
  Agent,
@@ -129,7 +129,7 @@ def test_text_message_outputs_across_list_of_runitems() -> None:
129
129
  item1: RunItem = MessageOutputItem(agent=Agent(name="test"), raw_item=message1)
130
130
  item2: RunItem = MessageOutputItem(agent=Agent(name="test"), raw_item=message2)
131
131
  # Create a non-message run item of a different type, e.g., a reasoning trace.
132
- reasoning = Reasoning(id="rid", content=[], type="reasoning")
132
+ reasoning = ResponseReasoningItem(id="rid", summary=[], type="reasoning")
133
133
  non_message_item: RunItem = ReasoningItem(agent=Agent(name="test"), raw_item=reasoning)
134
134
  # Confirm only the message outputs are concatenated.
135
135
  assert ItemHelpers.text_message_outputs([item1, non_message_item, item2]) == "foobar"
@@ -266,16 +266,18 @@ def test_to_input_items_for_computer_call_click() -> None:
266
266
 
267
267
  def test_to_input_items_for_reasoning() -> None:
268
268
  """A reasoning output should produce the same dict as a reasoning input item."""
269
- rc = ReasoningContent(text="why", type="reasoning_summary")
270
- reasoning = Reasoning(id="rid1", content=[rc], type="reasoning")
269
+ rc = Summary(text="why", type="summary_text")
270
+ reasoning = ResponseReasoningItem(id="rid1", summary=[rc], type="reasoning")
271
271
  resp = ModelResponse(output=[reasoning], usage=Usage(), referenceable_id=None)
272
272
  input_items = resp.to_input_items()
273
273
  assert isinstance(input_items, list) and len(input_items) == 1
274
274
  converted_dict = input_items[0]
275
275
 
276
- expected: ReasoningInputParam = {
276
+ expected: ResponseReasoningItemParam = {
277
277
  "id": "rid1",
278
- "content": [{"text": "why", "type": "reasoning_summary"}],
278
+ "summary": [{"text": "why", "type": "summary_text"}],
279
279
  "type": "reasoning",
280
280
  }
281
+ print(converted_dict)
282
+ print(expected)
281
283
  assert converted_dict == expected
@@ -163,7 +163,7 @@ def test_convert_tools_basic_types_and_includes():
163
163
  assert "function" in types
164
164
  assert "file_search" in types
165
165
  assert "web_search_preview" in types
166
- assert "computer-preview" in types
166
+ assert "computer_use_preview" in types
167
167
  # Verify file search tool contains max_num_results and vector_store_ids
168
168
  file_params = next(ct for ct in converted.tools if ct["type"] == "file_search")
169
169
  assert file_params.get("max_num_results") == file_tool.max_num_results
@@ -173,7 +173,7 @@ def test_convert_tools_basic_types_and_includes():
173
173
  assert web_params.get("user_location") == web_tool.user_location
174
174
  assert web_params.get("search_context_size") == web_tool.search_context_size
175
175
  # Verify computer tool contains environment and computed dimensions
176
- comp_params = next(ct for ct in converted.tools if ct["type"] == "computer-preview")
176
+ comp_params = next(ct for ct in converted.tools if ct["type"] == "computer_use_preview")
177
177
  assert comp_params.get("environment") == "mac"
178
178
  assert comp_params.get("display_width") == 800
179
179
  assert comp_params.get("display_height") == 600
@@ -7,7 +7,7 @@ from openai.types.responses import (
7
7
  ResponseFunctionWebSearch,
8
8
  )
9
9
  from openai.types.responses.response_computer_tool_call import ActionClick
10
- from openai.types.responses.response_output_item import Reasoning, ReasoningContent
10
+ from openai.types.responses.response_reasoning_item import ResponseReasoningItem, Summary
11
11
  from pydantic import BaseModel
12
12
 
13
13
  from agents import (
@@ -287,8 +287,8 @@ def test_function_web_search_tool_call_parsed_correctly():
287
287
  def test_reasoning_item_parsed_correctly():
288
288
  # Verify that a Reasoning output item is converted into a ReasoningItem.
289
289
 
290
- reasoning = Reasoning(
291
- id="r1", type="reasoning", content=[ReasoningContent(text="why", type="reasoning_summary")]
290
+ reasoning = ResponseReasoningItem(
291
+ id="r1", type="reasoning", summary=[Summary(text="why", type="summary_text")]
292
292
  )
293
293
  response = ModelResponse(
294
294
  output=[reasoning],
@@ -764,7 +764,7 @@ wheels = [
764
764
 
765
765
  [[package]]
766
766
  name = "openai"
767
- version = "1.66.0"
767
+ version = "1.66.2"
768
768
  source = { registry = "https://pypi.org/simple" }
769
769
  dependencies = [
770
770
  { name = "anyio" },
@@ -776,14 +776,14 @@ dependencies = [
776
776
  { name = "tqdm" },
777
777
  { name = "typing-extensions" },
778
778
  ]
779
- sdist = { url = "https://files.pythonhosted.org/packages/84/c5/3c422ca3ccc81c063955e7c20739d7f8f37fea0af865c4a60c81e6225e14/openai-1.66.0.tar.gz", hash = "sha256:8a9e672bc6eadec60a962f0b40d7d1c09050010179c919ed65322e433e2d1025", size = 396819 }
779
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/e1/b3e1fda1aa32d4f40d4de744e91de4de65c854c3e53c63342e4b5f9c5995/openai-1.66.2.tar.gz", hash = "sha256:9b3a843c25f81ee09b6469d483d9fba779d5c6ea41861180772f043481b0598d", size = 397041 }
780
780
  wheels = [
781
- { url = "https://files.pythonhosted.org/packages/d7/f1/d52960dac9519c9de64593460826a0fe2e19159389ec97ecf3e931d2e6a3/openai-1.66.0-py3-none-any.whl", hash = "sha256:43e4a3c0c066cc5809be4e6aac456a3ebc4ec1848226ef9d1340859ac130d45a", size = 566389 },
781
+ { url = "https://files.pythonhosted.org/packages/2c/6f/3315b3583ffe3e31c55b446cb22d2a7c235e65ca191674fffae62deb3c11/openai-1.66.2-py3-none-any.whl", hash = "sha256:75194057ee6bb8b732526387b6041327a05656d976fc21c064e21c8ac6b07999", size = 567268 },
782
782
  ]
783
783
 
784
784
  [[package]]
785
785
  name = "openai-agents"
786
- version = "0.0.2"
786
+ version = "0.0.3"
787
787
  source = { editable = "." }
788
788
  dependencies = [
789
789
  { name = "griffe" },
@@ -812,7 +812,7 @@ dev = [
812
812
  [package.metadata]
813
813
  requires-dist = [
814
814
  { name = "griffe", specifier = ">=1.5.6,<2" },
815
- { name = "openai", specifier = ">=1.66.0" },
815
+ { name = "openai", specifier = ">=1.66.2" },
816
816
  { name = "pydantic", specifier = ">=2.10,<3" },
817
817
  { name = "requests", specifier = ">=2.0,<3" },
818
818
  { name = "types-requests", specifier = ">=2.0,<3" },
@@ -1,52 +0,0 @@
1
- # OpenAI Agents SDK
2
-
3
- The OpenAI Agents SDK enables you to build agentic AI apps in a lightweight, easy to use package with very few abstractions. It's a production-ready upgrade of our previous experimentation for agents, [Swarm](https://github.com/openai/swarm/tree/main). The Agents SDK has a very small set of primitives:
4
-
5
- - **Agents**, which are LLMs equipped with instructions and tools
6
- - **Handoffs**, which allow agents to delegate to other agents for specific tasks
7
- - **Guardrails**, which enable the inputs to agents to be validated
8
-
9
- In combination with Python, these primitives are powerful enough to express complex relationships between tools and agents, and allow you to build real world applications without a steep learning curve. In addition, the SDK comes with built-in **tracing** that lets you visualize and debug your agentic flows, as well as evaluate them and even fine-tune models for your application.
10
-
11
- ## Why use the Agents SDK
12
-
13
- The SDK has two driving design principles:
14
-
15
- 1. Enough features to be worth using, but few enough primitives to make it quick to learn.
16
- 2. Works great out of the box, but you can customize exactly what happens.
17
-
18
- Here are the main features of the SDK:
19
-
20
- - Agent loop: Built-in agent loop that handles calling tools, sending results to the LLM, and looping until the LLM is done.
21
- - Python-first: Use built-in language features to orchestrate and chain agents, rather than needing to learn new abstractions.
22
- - Handoffs: A powerful feature to coordinate and delegate between multiple agents.
23
- - Guardrails: Run input validations and checks in parallel to your agents, breaking early if the checks fail.
24
- - Function tools: Turn any Python function into a tool, with automatic schema generation and Pydantic-powered validation.
25
- - Tracing: Built-in tracing that lets you visualize, debug and monitor your workflows, as well as use the OpenAI suite of evaluation, fine-tuning and distillation tools.
26
-
27
- ## Installation
28
-
29
- ```bash
30
- pip install openai-agents
31
- ```
32
-
33
- ## Hello world example
34
-
35
- ```python
36
- from agents import Agent, Runner
37
-
38
- agent = Agent(name="Assistant", instructions="You are a helpful assistant")
39
-
40
- result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
41
- print(result.final_output)
42
-
43
- # Code within the code,
44
- # Functions calling themselves,
45
- # Infinite loop's dance.
46
- ```
47
-
48
- (_If running this, ensure you set the `OPENAI_API_KEY` environment variable_)
49
-
50
- ```bash
51
- export OPENAI_API_KEY=sk-...
52
- ```
@@ -1,54 +0,0 @@
1
- # Common agentic patterns
2
-
3
- This folder contains examples of different common patterns for agents.
4
-
5
- ## Deterministic flows
6
-
7
- A common tactic is to break down a task into a series of smaller steps. Each task can be performed by an agent, and the output of one agent is used as input to the next. For example, if your task was to generate a story, you could break it down into the following steps:
8
-
9
- 1. Generate an outline
10
- 2. Generate the story
11
- 3. Generate the ending
12
-
13
- Each of these steps can be performed by an agent. The output of one agent is used as input to the next.
14
-
15
- See the [`deterministic.py`](./deterministic.py) file for an example of this.
16
-
17
- ## Handoffs and routing
18
-
19
- In many situations, you have specialized sub-agents that handle specific tasks. You can use handoffs to route the task to the right agent.
20
-
21
- For example, you might have a frontline agent that receives a request, and then hands off to a specialized agent based on the language of the request.
22
- See the [`routing.py`](./routing.py) file for an example of this.
23
-
24
- ## Agents as tools
25
-
26
- The mental model for handoffs is that the new agent "takes over". It sees the previous conversation history, and owns the conversation from that point onwards. However, this is not the only way to use agents. You can also use agents as a tool - the tool agent goes off and runs on its own, and then returns the result to the original agent.
27
-
28
- For example, you could model the translation task above as tool calls instead: rather than handing over to the language-specific agent, you could call the agent as a tool, and then use the result in the next step. This enables things like translating multiple languages at once.
29
-
30
- See the [`agents_as_tools.py`](./agents_as_tools.py) file for an example of this.
31
-
32
- ## LLM-as-a-judge
33
-
34
- LLMs can often improve the quality of their output if given feedback. A common pattern is to generate a response using a model, and then use a second model to provide feedback. You can even use a small model for the initial generation and a larger model for the feedback, to optimize cost.
35
-
36
- For example, you could use an LLM to generate an outline for a story, and then use a second LLM to evaluate the outline and provide feedback. You can then use the feedback to improve the outline, and repeat until the LLM is satisfied with the outline.
37
-
38
- See the [`llm_as_a_judge.py`](./llm_as_a_judge.py) file for an example of this.
39
-
40
- ## Parallelization
41
-
42
- Running multiple agents in parallel is a common pattern. This can be useful for both latency (e.g. if you have multiple steps that don't depend on each other) and also for other reasons e.g. generating multiple responses and picking the best one.
43
-
44
- See the [`parallelization.py`](./parallelization.py) file for an example of this. It runs a translation agent multiple times in parallel, and then picks the best translation.
45
-
46
- ## Guardrails
47
-
48
- Related to parallelization, you often want to run input guardrails to make sure the inputs to your agents are valid. For example, if you have a customer support agent, you might want to make sure that the user isn't trying to ask for help with a math problem.
49
-
50
- You can definitely do this without any special Agents SDK features by using parallelization, but we support a special guardrail primitive. Guardrails can have a "tripwire" - if the tripwire is triggered, the agent execution will immediately stop and a `GuardrailTripwireTriggered` exception will be raised.
51
-
52
- This is really useful for latency: for example, you might have a very fast model that runs the guardrail and a slow model that runs the actual agent. You wouldn't want to wait for the slow model to finish, so guardrails let you quickly reject invalid inputs.
53
-
54
- See the [`guardrails.py`](./guardrails.py) file for an example of this.