openai-agents 0.1.0__tar.gz → 0.2.0__tar.gz

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

Potentially problematic release.


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

Files changed (409) hide show
  1. openai_agents-0.2.0/.vscode/launch.json +14 -0
  2. {openai_agents-0.1.0 → openai_agents-0.2.0}/Makefile +6 -2
  3. {openai_agents-0.1.0 → openai_agents-0.2.0}/PKG-INFO +120 -3
  4. {openai_agents-0.1.0 → openai_agents-0.2.0}/README.md +116 -1
  5. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/agents.md +1 -0
  6. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/examples.md +3 -0
  7. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/index.md +2 -0
  8. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/mcp.md +33 -1
  9. openai_agents-0.2.0/docs/ref/memory.md +8 -0
  10. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/release.md +4 -0
  11. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/running_agents.md +36 -1
  12. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/scripts/translate_docs.py +3 -1
  13. openai_agents-0.2.0/docs/sessions.md +319 -0
  14. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/tools.md +1 -1
  15. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/llm_as_a_judge.py +1 -1
  16. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/agent_lifecycle_example.py +2 -4
  17. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/hello_world_jupyter.ipynb +1 -1
  18. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/lifecycle_example.py +6 -8
  19. openai_agents-0.2.0/examples/basic/session_example.py +77 -0
  20. openai_agents-0.2.0/examples/mcp/prompt_server/README.md +29 -0
  21. openai_agents-0.2.0/examples/mcp/prompt_server/main.py +110 -0
  22. openai_agents-0.2.0/examples/mcp/prompt_server/server.py +37 -0
  23. openai_agents-0.2.0/examples/realtime/demo.py +115 -0
  24. openai_agents-0.2.0/examples/realtime/ui.py +268 -0
  25. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/reasoning_content/main.py +2 -2
  26. {openai_agents-0.1.0 → openai_agents-0.2.0}/mkdocs.yml +4 -0
  27. {openai_agents-0.1.0 → openai_agents-0.2.0}/pyproject.toml +3 -2
  28. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/__init__.py +5 -1
  29. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/_run_impl.py +5 -1
  30. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/agent.py +61 -29
  31. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/function_schema.py +11 -1
  32. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/guardrail.py +5 -1
  33. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/lifecycle.py +26 -17
  34. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/mcp/server.py +43 -11
  35. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/mcp/util.py +5 -6
  36. openai_agents-0.2.0/src/agents/memory/__init__.py +3 -0
  37. openai_agents-0.2.0/src/agents/memory/session.py +369 -0
  38. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/model_settings.py +15 -7
  39. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/chatcmpl_converter.py +19 -2
  40. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/chatcmpl_stream_handler.py +1 -1
  41. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/openai_responses.py +11 -4
  42. openai_agents-0.2.0/src/agents/realtime/README.md +3 -0
  43. openai_agents-0.2.0/src/agents/realtime/__init__.py +174 -0
  44. openai_agents-0.2.0/src/agents/realtime/agent.py +80 -0
  45. openai_agents-0.2.0/src/agents/realtime/config.py +128 -0
  46. openai_agents-0.2.0/src/agents/realtime/events.py +216 -0
  47. openai_agents-0.2.0/src/agents/realtime/items.py +91 -0
  48. openai_agents-0.2.0/src/agents/realtime/model.py +69 -0
  49. openai_agents-0.2.0/src/agents/realtime/model_events.py +159 -0
  50. openai_agents-0.2.0/src/agents/realtime/model_inputs.py +100 -0
  51. openai_agents-0.2.0/src/agents/realtime/openai_realtime.py +584 -0
  52. openai_agents-0.2.0/src/agents/realtime/runner.py +118 -0
  53. openai_agents-0.2.0/src/agents/realtime/session.py +502 -0
  54. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/run.py +106 -4
  55. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tool.py +6 -7
  56. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tool_context.py +16 -3
  57. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/models/openai_stt.py +1 -1
  58. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/pipeline.py +6 -0
  59. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/workflow.py +8 -0
  60. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/helpers.py +13 -1
  61. openai_agents-0.2.0/tests/mcp/test_prompt_server.py +301 -0
  62. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_tool_filtering.py +6 -3
  63. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/model_settings/test_serialization.py +13 -2
  64. openai_agents-0.2.0/tests/realtime/test_agent.py +25 -0
  65. openai_agents-0.2.0/tests/realtime/test_item_parsing.py +80 -0
  66. openai_agents-0.2.0/tests/realtime/test_model_events.py +12 -0
  67. openai_agents-0.2.0/tests/realtime/test_openai_realtime.py +378 -0
  68. openai_agents-0.2.0/tests/realtime/test_runner.py +224 -0
  69. openai_agents-0.2.0/tests/realtime/test_session.py +1210 -0
  70. openai_agents-0.2.0/tests/realtime/test_tracing.py +264 -0
  71. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_function_schema.py +218 -1
  72. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_function_tool.py +43 -17
  73. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_function_tool_decorator.py +1 -1
  74. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_items_helpers.py +11 -2
  75. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_reasoning_content.py +5 -9
  76. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_run_step_processing.py +7 -1
  77. openai_agents-0.2.0/tests/test_session.py +400 -0
  78. openai_agents-0.2.0/tests/test_session_exceptions.py +300 -0
  79. openai_agents-0.2.0/tests/voice/__init__.py +0 -0
  80. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/test_openai_stt.py +2 -2
  81. {openai_agents-0.1.0 → openai_agents-0.2.0}/uv.lock +10 -6
  82. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  83. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  84. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
  85. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  86. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  87. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/workflows/docs.yml +0 -0
  88. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/workflows/issues.yml +0 -0
  89. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/workflows/publish.yml +0 -0
  90. {openai_agents-0.1.0 → openai_agents-0.2.0}/.github/workflows/tests.yml +0 -0
  91. {openai_agents-0.1.0 → openai_agents-0.2.0}/.gitignore +0 -0
  92. {openai_agents-0.1.0 → openai_agents-0.2.0}/.prettierrc +0 -0
  93. {openai_agents-0.1.0 → openai_agents-0.2.0}/.vscode/settings.json +0 -0
  94. {openai_agents-0.1.0 → openai_agents-0.2.0}/AGENTS.md +0 -0
  95. {openai_agents-0.1.0 → openai_agents-0.2.0}/CLAUDE.md +0 -0
  96. {openai_agents-0.1.0 → openai_agents-0.2.0}/LICENSE +0 -0
  97. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/assets/images/favicon-platform.svg +0 -0
  98. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/assets/images/graph.png +0 -0
  99. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/assets/images/mcp-tracing.jpg +0 -0
  100. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/assets/images/orchestration.png +0 -0
  101. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/assets/logo.svg +0 -0
  102. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/config.md +0 -0
  103. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/context.md +0 -0
  104. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/guardrails.md +0 -0
  105. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/handoffs.md +0 -0
  106. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/agents.md +0 -0
  107. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/config.md +0 -0
  108. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/context.md +0 -0
  109. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/examples.md +0 -0
  110. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/guardrails.md +0 -0
  111. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/handoffs.md +0 -0
  112. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/index.md +0 -0
  113. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/mcp.md +0 -0
  114. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/models/index.md +0 -0
  115. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/models/litellm.md +0 -0
  116. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/multi_agent.md +0 -0
  117. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/quickstart.md +0 -0
  118. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/repl.md +0 -0
  119. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/results.md +0 -0
  120. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/running_agents.md +0 -0
  121. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/streaming.md +0 -0
  122. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/tools.md +0 -0
  123. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/tracing.md +0 -0
  124. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/visualization.md +0 -0
  125. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/voice/pipeline.md +0 -0
  126. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/voice/quickstart.md +0 -0
  127. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ja/voice/tracing.md +0 -0
  128. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/models/index.md +0 -0
  129. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/models/litellm.md +0 -0
  130. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/multi_agent.md +0 -0
  131. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/quickstart.md +0 -0
  132. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/agent.md +0 -0
  133. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/agent_output.md +0 -0
  134. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/exceptions.md +0 -0
  135. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/extensions/handoff_filters.md +0 -0
  136. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/extensions/handoff_prompt.md +0 -0
  137. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/extensions/litellm.md +0 -0
  138. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/function_schema.md +0 -0
  139. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/guardrail.md +0 -0
  140. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/handoffs.md +0 -0
  141. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/index.md +0 -0
  142. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/items.md +0 -0
  143. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/lifecycle.md +0 -0
  144. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/mcp/server.md +0 -0
  145. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/mcp/util.md +0 -0
  146. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/model_settings.md +0 -0
  147. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/models/interface.md +0 -0
  148. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/models/openai_chatcompletions.md +0 -0
  149. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/models/openai_responses.md +0 -0
  150. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/repl.md +0 -0
  151. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/result.md +0 -0
  152. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/run.md +0 -0
  153. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/run_context.md +0 -0
  154. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/stream_events.md +0 -0
  155. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tool.md +0 -0
  156. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/create.md +0 -0
  157. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/index.md +0 -0
  158. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/processor_interface.md +0 -0
  159. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/processors.md +0 -0
  160. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/scope.md +0 -0
  161. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/setup.md +0 -0
  162. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/span_data.md +0 -0
  163. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/spans.md +0 -0
  164. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/traces.md +0 -0
  165. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/tracing/util.md +0 -0
  166. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/usage.md +0 -0
  167. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/events.md +0 -0
  168. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/exceptions.md +0 -0
  169. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/input.md +0 -0
  170. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/model.md +0 -0
  171. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/models/openai_provider.md +0 -0
  172. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/models/openai_stt.md +0 -0
  173. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/models/openai_tts.md +0 -0
  174. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/pipeline.md +0 -0
  175. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/pipeline_config.md +0 -0
  176. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/result.md +0 -0
  177. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/utils.md +0 -0
  178. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/ref/voice/workflow.md +0 -0
  179. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/repl.md +0 -0
  180. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/results.md +0 -0
  181. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/streaming.md +0 -0
  182. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/stylesheets/extra.css +0 -0
  183. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/tracing.md +0 -0
  184. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/visualization.md +0 -0
  185. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/voice/pipeline.md +0 -0
  186. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/voice/quickstart.md +0 -0
  187. {openai_agents-0.1.0 → openai_agents-0.2.0}/docs/voice/tracing.md +0 -0
  188. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/__init__.py +0 -0
  189. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/README.md +0 -0
  190. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/agents_as_tools.py +0 -0
  191. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/deterministic.py +0 -0
  192. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/forcing_tool_use.py +0 -0
  193. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/input_guardrails.py +0 -0
  194. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/output_guardrails.py +0 -0
  195. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/parallelization.py +0 -0
  196. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/routing.py +0 -0
  197. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/agent_patterns/streaming_guardrails.py +0 -0
  198. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/dynamic_system_prompt.py +0 -0
  199. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/hello_world.py +0 -0
  200. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/local_image.py +0 -0
  201. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/media/image_bison.jpg +0 -0
  202. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/non_strict_output_type.py +0 -0
  203. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/previous_response_id.py +0 -0
  204. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/prompt_template.py +0 -0
  205. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/remote_image.py +0 -0
  206. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/stream_items.py +0 -0
  207. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/stream_text.py +0 -0
  208. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/basic/tools.py +0 -0
  209. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/customer_service/main.py +0 -0
  210. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/README.md +0 -0
  211. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/__init__.py +0 -0
  212. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/__init__.py +0 -0
  213. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/financials_agent.py +0 -0
  214. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/planner_agent.py +0 -0
  215. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/risk_agent.py +0 -0
  216. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/search_agent.py +0 -0
  217. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
  218. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/agents/writer_agent.py +0 -0
  219. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/main.py +0 -0
  220. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/manager.py +0 -0
  221. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/financial_research_agent/printer.py +0 -0
  222. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/handoffs/message_filter.py +0 -0
  223. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/handoffs/message_filter_streaming.py +0 -0
  224. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/hosted_mcp/__init__.py +0 -0
  225. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/hosted_mcp/approvals.py +0 -0
  226. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/hosted_mcp/simple.py +0 -0
  227. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/filesystem_example/README.md +0 -0
  228. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/filesystem_example/main.py +0 -0
  229. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
  230. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
  231. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
  232. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/git_example/README.md +0 -0
  233. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/git_example/main.py +0 -0
  234. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/sse_example/README.md +0 -0
  235. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/sse_example/main.py +0 -0
  236. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/sse_example/server.py +0 -0
  237. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/streamablehttp_example/README.md +0 -0
  238. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/streamablehttp_example/main.py +0 -0
  239. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/mcp/streamablehttp_example/server.py +0 -0
  240. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/model_providers/README.md +0 -0
  241. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/model_providers/custom_example_agent.py +0 -0
  242. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/model_providers/custom_example_global.py +0 -0
  243. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/model_providers/custom_example_provider.py +0 -0
  244. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/model_providers/litellm_auto.py +0 -0
  245. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/model_providers/litellm_provider.py +0 -0
  246. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/reasoning_content/__init__.py +0 -0
  247. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/reasoning_content/runner_example.py +0 -0
  248. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/README.md +0 -0
  249. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/__init__.py +0 -0
  250. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/agents/__init__.py +0 -0
  251. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/agents/planner_agent.py +0 -0
  252. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/agents/search_agent.py +0 -0
  253. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/agents/writer_agent.py +0 -0
  254. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/main.py +0 -0
  255. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/manager.py +0 -0
  256. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/printer.py +0 -0
  257. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  258. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  259. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/sample_outputs/vacation.md +0 -0
  260. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  261. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/tools/code_interpreter.py +0 -0
  262. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/tools/computer_use.py +0 -0
  263. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/tools/file_search.py +0 -0
  264. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/tools/image_generator.py +0 -0
  265. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/tools/web_search.py +0 -0
  266. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/__init__.py +0 -0
  267. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/static/README.md +0 -0
  268. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/static/__init__.py +0 -0
  269. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/static/main.py +0 -0
  270. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/static/util.py +0 -0
  271. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/streamed/README.md +0 -0
  272. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/streamed/__init__.py +0 -0
  273. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/streamed/main.py +0 -0
  274. {openai_agents-0.1.0 → openai_agents-0.2.0}/examples/voice/streamed/my_workflow.py +0 -0
  275. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/_config.py +0 -0
  276. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/_debug.py +0 -0
  277. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/agent_output.py +0 -0
  278. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/computer.py +0 -0
  279. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/exceptions.py +0 -0
  280. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/__init__.py +0 -0
  281. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/handoff_filters.py +0 -0
  282. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/handoff_prompt.py +0 -0
  283. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/models/__init__.py +0 -0
  284. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/models/litellm_model.py +0 -0
  285. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/models/litellm_provider.py +0 -0
  286. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/extensions/visualization.py +0 -0
  287. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/handoffs.py +0 -0
  288. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/items.py +0 -0
  289. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/logger.py +0 -0
  290. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/mcp/__init__.py +0 -0
  291. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/__init__.py +0 -0
  292. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/_openai_shared.py +0 -0
  293. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/chatcmpl_helpers.py +0 -0
  294. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/fake_id.py +0 -0
  295. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/interface.py +0 -0
  296. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/multi_provider.py +0 -0
  297. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/openai_chatcompletions.py +0 -0
  298. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/models/openai_provider.py +0 -0
  299. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/prompts.py +0 -0
  300. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/py.typed +0 -0
  301. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/repl.py +0 -0
  302. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/result.py +0 -0
  303. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/run_context.py +0 -0
  304. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/stream_events.py +0 -0
  305. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/strict_schema.py +0 -0
  306. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/__init__.py +0 -0
  307. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/create.py +0 -0
  308. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/logger.py +0 -0
  309. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/processor_interface.py +0 -0
  310. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/processors.py +0 -0
  311. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/provider.py +0 -0
  312. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/scope.py +0 -0
  313. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/setup.py +0 -0
  314. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/span_data.py +0 -0
  315. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/spans.py +0 -0
  316. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/traces.py +0 -0
  317. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/tracing/util.py +0 -0
  318. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/usage.py +0 -0
  319. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/__init__.py +0 -0
  320. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/_coro.py +0 -0
  321. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/_error_tracing.py +0 -0
  322. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/_json.py +0 -0
  323. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/_pretty_print.py +0 -0
  324. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/_transforms.py +0 -0
  325. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/util/_types.py +0 -0
  326. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/version.py +0 -0
  327. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/__init__.py +0 -0
  328. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/events.py +0 -0
  329. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/exceptions.py +0 -0
  330. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/imports.py +0 -0
  331. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/input.py +0 -0
  332. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/model.py +0 -0
  333. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/models/__init__.py +0 -0
  334. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/models/openai_model_provider.py +0 -0
  335. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/models/openai_tts.py +0 -0
  336. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/pipeline_config.py +0 -0
  337. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/result.py +0 -0
  338. {openai_agents-0.1.0 → openai_agents-0.2.0}/src/agents/voice/utils.py +0 -0
  339. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/README.md +0 -0
  340. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/__init__.py +0 -0
  341. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/conftest.py +0 -0
  342. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/fake_model.py +0 -0
  343. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/fastapi/__init__.py +0 -0
  344. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/fastapi/streaming_app.py +0 -0
  345. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/fastapi/test_streaming_context.py +0 -0
  346. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/__init__.py +0 -0
  347. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/conftest.py +0 -0
  348. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_caching.py +0 -0
  349. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_connect_disconnect.py +0 -0
  350. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_mcp_tracing.py +0 -0
  351. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_mcp_util.py +0 -0
  352. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_runner_calls_mcp.py +0 -0
  353. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/mcp/test_server_errors.py +0 -0
  354. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/models/__init__.py +0 -0
  355. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/models/conftest.py +0 -0
  356. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/models/test_kwargs_functionality.py +0 -0
  357. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/models/test_litellm_chatcompletions_stream.py +0 -0
  358. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/models/test_litellm_extra_body.py +0 -0
  359. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/models/test_map.py +0 -0
  360. {openai_agents-0.1.0/tests/voice → openai_agents-0.2.0/tests/realtime}/__init__.py +0 -0
  361. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_agent_config.py +0 -0
  362. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_agent_hooks.py +0 -0
  363. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_agent_prompt.py +0 -0
  364. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_agent_runner.py +0 -0
  365. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_agent_runner_streamed.py +0 -0
  366. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_agent_tracing.py +0 -0
  367. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_cancel_streaming.py +0 -0
  368. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_computer_action.py +0 -0
  369. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_config.py +0 -0
  370. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_doc_parsing.py +0 -0
  371. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_extension_filters.py +0 -0
  372. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_extra_headers.py +0 -0
  373. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_global_hooks.py +0 -0
  374. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_guardrails.py +0 -0
  375. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_handoff_tool.py +0 -0
  376. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_max_turns.py +0 -0
  377. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_openai_chatcompletions.py +0 -0
  378. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_openai_chatcompletions_converter.py +0 -0
  379. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_openai_chatcompletions_stream.py +0 -0
  380. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_openai_responses_converter.py +0 -0
  381. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_output_tool.py +0 -0
  382. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_pretty_print.py +0 -0
  383. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_repl.py +0 -0
  384. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_responses.py +0 -0
  385. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_responses_tracing.py +0 -0
  386. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_result_cast.py +0 -0
  387. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_run.py +0 -0
  388. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_run_config.py +0 -0
  389. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_run_error_details.py +0 -0
  390. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_run_step_execution.py +0 -0
  391. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_strict_schema.py +0 -0
  392. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_tool_choice_reset.py +0 -0
  393. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_tool_converter.py +0 -0
  394. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_tool_use_behavior.py +0 -0
  395. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_trace_processor.py +0 -0
  396. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_tracing.py +0 -0
  397. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_tracing_errors.py +0 -0
  398. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_tracing_errors_streamed.py +0 -0
  399. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_usage.py +0 -0
  400. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/test_visualization.py +0 -0
  401. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/testing_processor.py +0 -0
  402. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/tracing/test_processor_api_key.py +0 -0
  403. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/conftest.py +0 -0
  404. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/fake_models.py +0 -0
  405. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/helpers.py +0 -0
  406. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/test_input.py +0 -0
  407. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/test_openai_tts.py +0 -0
  408. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/test_pipeline.py +0 -0
  409. {openai_agents-0.1.0 → openai_agents-0.2.0}/tests/voice/test_workflow.py +0 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+ {
8
+ "name": "Python Debugger: Python File",
9
+ "type": "debugpy",
10
+ "request": "launch",
11
+ "program": "${file}"
12
+ }
13
+ ]
14
+ }
@@ -7,6 +7,10 @@ format:
7
7
  uv run ruff format
8
8
  uv run ruff check --fix
9
9
 
10
+ .PHONY: format-check
11
+ format-check:
12
+ uv run ruff format --check
13
+
10
14
  .PHONY: lint
11
15
  lint:
12
16
  uv run ruff check
@@ -55,5 +59,5 @@ serve-docs:
55
59
  deploy-docs:
56
60
  uv run mkdocs gh-deploy --force --verbose
57
61
 
58
-
59
-
62
+ .PHONY: check
63
+ check: format-check lint mypy tests
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: OpenAI Agents SDK
5
5
  Project-URL: Homepage, https://openai.github.io/openai-agents-python/
6
6
  Project-URL: Repository, https://github.com/openai/openai-agents-python
@@ -21,13 +21,15 @@ Classifier: Typing :: Typed
21
21
  Requires-Python: >=3.9
22
22
  Requires-Dist: griffe<2,>=1.5.6
23
23
  Requires-Dist: mcp<2,>=1.9.4; python_version >= '3.10'
24
- Requires-Dist: openai>=1.87.0
24
+ Requires-Dist: openai<2,>=1.93.1
25
25
  Requires-Dist: pydantic<3,>=2.10
26
26
  Requires-Dist: requests<3,>=2.0
27
27
  Requires-Dist: types-requests<3,>=2.0
28
28
  Requires-Dist: typing-extensions<5,>=4.12.2
29
29
  Provides-Extra: litellm
30
30
  Requires-Dist: litellm<2,>=1.67.4.post1; extra == 'litellm'
31
+ Provides-Extra: realtime
32
+ Requires-Dist: websockets<16,>=15.0; extra == 'realtime'
31
33
  Provides-Extra: viz
32
34
  Requires-Dist: graphviz>=0.17; extra == 'viz'
33
35
  Provides-Extra: voice
@@ -49,10 +51,119 @@ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi
49
51
  1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardrails, and handoffs
50
52
  2. [**Handoffs**](https://openai.github.io/openai-agents-python/handoffs/): A specialized tool call used by the Agents SDK for transferring control between agents
51
53
  3. [**Guardrails**](https://openai.github.io/openai-agents-python/guardrails/): Configurable safety checks for input and output validation
52
- 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
54
+ 4. [**Sessions**](#sessions): Automatic conversation history management across agent runs
55
+ 5. [**Tracing**](https://openai.github.io/openai-agents-python/tracing/): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
53
56
 
54
57
  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.
55
58
 
59
+ ## Sessions
60
+
61
+ The Agents SDK provides built-in session memory to automatically maintain conversation history across multiple agent runs, eliminating the need to manually handle `.to_input_list()` between turns.
62
+
63
+ ### Quick start
64
+
65
+ ```python
66
+ from agents import Agent, Runner, SQLiteSession
67
+
68
+ # Create agent
69
+ agent = Agent(
70
+ name="Assistant",
71
+ instructions="Reply very concisely.",
72
+ )
73
+
74
+ # Create a session instance
75
+ session = SQLiteSession("conversation_123")
76
+
77
+ # First turn
78
+ result = await Runner.run(
79
+ agent,
80
+ "What city is the Golden Gate Bridge in?",
81
+ session=session
82
+ )
83
+ print(result.final_output) # "San Francisco"
84
+
85
+ # Second turn - agent automatically remembers previous context
86
+ result = await Runner.run(
87
+ agent,
88
+ "What state is it in?",
89
+ session=session
90
+ )
91
+ print(result.final_output) # "California"
92
+
93
+ # Also works with synchronous runner
94
+ result = Runner.run_sync(
95
+ agent,
96
+ "What's the population?",
97
+ session=session
98
+ )
99
+ print(result.final_output) # "Approximately 39 million"
100
+ ```
101
+
102
+ ### Session options
103
+
104
+ - **No memory** (default): No session memory when session parameter is omitted
105
+ - **`session: Session = DatabaseSession(...)`**: Use a Session instance to manage conversation history
106
+
107
+ ```python
108
+ from agents import Agent, Runner, SQLiteSession
109
+
110
+ # Custom SQLite database file
111
+ session = SQLiteSession("user_123", "conversations.db")
112
+ agent = Agent(name="Assistant")
113
+
114
+ # Different session IDs maintain separate conversation histories
115
+ result1 = await Runner.run(
116
+ agent,
117
+ "Hello",
118
+ session=session
119
+ )
120
+ result2 = await Runner.run(
121
+ agent,
122
+ "Hello",
123
+ session=SQLiteSession("user_456", "conversations.db")
124
+ )
125
+ ```
126
+
127
+ ### Custom session implementations
128
+
129
+ You can implement your own session memory by creating a class that follows the `Session` protocol:
130
+
131
+ ```python
132
+ from agents.memory import Session
133
+ from typing import List
134
+
135
+ class MyCustomSession:
136
+ """Custom session implementation following the Session protocol."""
137
+
138
+ def __init__(self, session_id: str):
139
+ self.session_id = session_id
140
+ # Your initialization here
141
+
142
+ async def get_items(self, limit: int | None = None) -> List[dict]:
143
+ # Retrieve conversation history for the session
144
+ pass
145
+
146
+ async def add_items(self, items: List[dict]) -> None:
147
+ # Store new items for the session
148
+ pass
149
+
150
+ async def pop_item(self) -> dict | None:
151
+ # Remove and return the most recent item from the session
152
+ pass
153
+
154
+ async def clear_session(self) -> None:
155
+ # Clear all items for the session
156
+ pass
157
+
158
+ # Use your custom session
159
+ agent = Agent(name="Assistant")
160
+ result = await Runner.run(
161
+ agent,
162
+ "Hello",
163
+ session=MyCustomSession("my_session")
164
+ )
165
+ ```
166
+
56
167
  ## Get started
57
168
 
58
169
  1. Set up your Python environment
@@ -207,10 +318,16 @@ make sync
207
318
 
208
319
  2. (After making changes) lint/test
209
320
 
321
+ ```
322
+ make check # run tests linter and typechecker
323
+ ```
324
+
325
+ Or to run them individually:
210
326
  ```
211
327
  make tests # run tests
212
328
  make mypy # run typechecker
213
329
  make lint # run linter
330
+ make format-check # run style checker
214
331
  ```
215
332
 
216
333
  ## Acknowledgements
@@ -12,10 +12,119 @@ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi
12
12
  1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardrails, and handoffs
13
13
  2. [**Handoffs**](https://openai.github.io/openai-agents-python/handoffs/): A specialized tool call used by the Agents SDK for transferring control between agents
14
14
  3. [**Guardrails**](https://openai.github.io/openai-agents-python/guardrails/): Configurable safety checks for input and output validation
15
- 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
15
+ 4. [**Sessions**](#sessions): Automatic conversation history management across agent runs
16
+ 5. [**Tracing**](https://openai.github.io/openai-agents-python/tracing/): Built-in tracking of agent runs, allowing you to view, debug and optimize your workflows
16
17
 
17
18
  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.
18
19
 
20
+ ## Sessions
21
+
22
+ The Agents SDK provides built-in session memory to automatically maintain conversation history across multiple agent runs, eliminating the need to manually handle `.to_input_list()` between turns.
23
+
24
+ ### Quick start
25
+
26
+ ```python
27
+ from agents import Agent, Runner, SQLiteSession
28
+
29
+ # Create agent
30
+ agent = Agent(
31
+ name="Assistant",
32
+ instructions="Reply very concisely.",
33
+ )
34
+
35
+ # Create a session instance
36
+ session = SQLiteSession("conversation_123")
37
+
38
+ # First turn
39
+ result = await Runner.run(
40
+ agent,
41
+ "What city is the Golden Gate Bridge in?",
42
+ session=session
43
+ )
44
+ print(result.final_output) # "San Francisco"
45
+
46
+ # Second turn - agent automatically remembers previous context
47
+ result = await Runner.run(
48
+ agent,
49
+ "What state is it in?",
50
+ session=session
51
+ )
52
+ print(result.final_output) # "California"
53
+
54
+ # Also works with synchronous runner
55
+ result = Runner.run_sync(
56
+ agent,
57
+ "What's the population?",
58
+ session=session
59
+ )
60
+ print(result.final_output) # "Approximately 39 million"
61
+ ```
62
+
63
+ ### Session options
64
+
65
+ - **No memory** (default): No session memory when session parameter is omitted
66
+ - **`session: Session = DatabaseSession(...)`**: Use a Session instance to manage conversation history
67
+
68
+ ```python
69
+ from agents import Agent, Runner, SQLiteSession
70
+
71
+ # Custom SQLite database file
72
+ session = SQLiteSession("user_123", "conversations.db")
73
+ agent = Agent(name="Assistant")
74
+
75
+ # Different session IDs maintain separate conversation histories
76
+ result1 = await Runner.run(
77
+ agent,
78
+ "Hello",
79
+ session=session
80
+ )
81
+ result2 = await Runner.run(
82
+ agent,
83
+ "Hello",
84
+ session=SQLiteSession("user_456", "conversations.db")
85
+ )
86
+ ```
87
+
88
+ ### Custom session implementations
89
+
90
+ You can implement your own session memory by creating a class that follows the `Session` protocol:
91
+
92
+ ```python
93
+ from agents.memory import Session
94
+ from typing import List
95
+
96
+ class MyCustomSession:
97
+ """Custom session implementation following the Session protocol."""
98
+
99
+ def __init__(self, session_id: str):
100
+ self.session_id = session_id
101
+ # Your initialization here
102
+
103
+ async def get_items(self, limit: int | None = None) -> List[dict]:
104
+ # Retrieve conversation history for the session
105
+ pass
106
+
107
+ async def add_items(self, items: List[dict]) -> None:
108
+ # Store new items for the session
109
+ pass
110
+
111
+ async def pop_item(self) -> dict | None:
112
+ # Remove and return the most recent item from the session
113
+ pass
114
+
115
+ async def clear_session(self) -> None:
116
+ # Clear all items for the session
117
+ pass
118
+
119
+ # Use your custom session
120
+ agent = Agent(name="Assistant")
121
+ result = await Runner.run(
122
+ agent,
123
+ "Hello",
124
+ session=MyCustomSession("my_session")
125
+ )
126
+ ```
127
+
19
128
  ## Get started
20
129
 
21
130
  1. Set up your Python environment
@@ -170,10 +279,16 @@ make sync
170
279
 
171
280
  2. (After making changes) lint/test
172
281
 
282
+ ```
283
+ make check # run tests linter and typechecker
284
+ ```
285
+
286
+ Or to run them individually:
173
287
  ```
174
288
  make tests # run tests
175
289
  make mypy # run typechecker
176
290
  make lint # run linter
291
+ make format-check # run style checker
177
292
  ```
178
293
 
179
294
  ## Acknowledgements
@@ -6,6 +6,7 @@ Agents are the core building block in your apps. An agent is a large language mo
6
6
 
7
7
  The most common properties of an agent you'll configure are:
8
8
 
9
+ - `name`: A required string that identifies your agent.
9
10
  - `instructions`: also known as a developer message or system prompt.
10
11
  - `model`: which LLM to use, and optional `model_settings` to configure model tuning parameters like temperature, top_p, etc.
11
12
  - `tools`: Tools that the agent can use to achieve its tasks.
@@ -40,3 +40,6 @@ Check out a variety of sample implementations of the SDK in the examples section
40
40
 
41
41
  - **[voice](https://github.com/openai/openai-agents-python/tree/main/examples/voice):**
42
42
  See examples of voice agents, using our TTS and STT models.
43
+
44
+ - **[realtime](https://github.com/openai/openai-agents-python/tree/main/examples/realtime):**
45
+ Examples showing how to build realtime experiences using the SDK.
@@ -5,6 +5,7 @@ The [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) enables
5
5
  - **Agents**, which are LLMs equipped with instructions and tools
6
6
  - **Handoffs**, which allow agents to delegate to other agents for specific tasks
7
7
  - **Guardrails**, which enable the inputs to agents to be validated
8
+ - **Sessions**, which automatically maintains conversation history across agent runs
8
9
 
9
10
  In combination with Python, these primitives are powerful enough to express complex relationships between tools and agents, and allow you to build real-world applications without a steep learning curve. In addition, the SDK comes with built-in **tracing** that lets you visualize and debug your agentic flows, as well as evaluate them and even fine-tune models for your application.
10
11
 
@@ -21,6 +22,7 @@ Here are the main features of the SDK:
21
22
  - Python-first: Use built-in language features to orchestrate and chain agents, rather than needing to learn new abstractions.
22
23
  - Handoffs: A powerful feature to coordinate and delegate between multiple agents.
23
24
  - Guardrails: Run input validations and checks in parallel to your agents, breaking early if the checks fail.
25
+ - Sessions: Automatic conversation history management across agent runs, eliminating manual state handling.
24
26
  - Function tools: Turn any Python function into a tool, with automatic schema generation and Pydantic-powered validation.
25
27
  - 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
28
 
@@ -4,7 +4,7 @@ The [Model context protocol](https://modelcontextprotocol.io/introduction) (aka
4
4
 
5
5
  > MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.
6
6
 
7
- The Agents SDK has support for MCP. This enables you to use a wide range of MCP servers to provide tools to your Agents.
7
+ The Agents SDK has support for MCP. This enables you to use a wide range of MCP servers to provide tools and prompts to your Agents.
8
8
 
9
9
  ## MCP servers
10
10
 
@@ -135,6 +135,38 @@ The `ToolFilterContext` provides access to:
135
135
  - `agent`: The agent requesting the tools
136
136
  - `server_name`: The name of the MCP server
137
137
 
138
+ ## Prompts
139
+
140
+ MCP servers can also provide prompts that can be used to dynamically generate agent instructions. This allows you to create reusable instruction templates that can be customized with parameters.
141
+
142
+ ### Using prompts
143
+
144
+ MCP servers that support prompts provide two key methods:
145
+
146
+ - `list_prompts()`: Lists all available prompts on the server
147
+ - `get_prompt(name, arguments)`: Gets a specific prompt with optional parameters
148
+
149
+ ```python
150
+ # List available prompts
151
+ prompts_result = await server.list_prompts()
152
+ for prompt in prompts_result.prompts:
153
+ print(f"Prompt: {prompt.name} - {prompt.description}")
154
+
155
+ # Get a specific prompt with parameters
156
+ prompt_result = await server.get_prompt(
157
+ "generate_code_review_instructions",
158
+ {"focus": "security vulnerabilities", "language": "python"}
159
+ )
160
+ instructions = prompt_result.messages[0].content.text
161
+
162
+ # Use the prompt-generated instructions with an Agent
163
+ agent = Agent(
164
+ name="Code Reviewer",
165
+ instructions=instructions, # Instructions from MCP prompt
166
+ mcp_servers=[server]
167
+ )
168
+ ```
169
+
138
170
  ## Caching
139
171
 
140
172
  Every time an Agent runs, it calls `list_tools()` on the MCP server. This can be a latency hit, especially if the server is a remote server. To automatically cache the list of tools, you can pass `cache_tools_list=True` to [`MCPServerStdio`][agents.mcp.server.MCPServerStdio], [`MCPServerSse`][agents.mcp.server.MCPServerSse], and [`MCPServerStreamableHttp`][agents.mcp.server.MCPServerStreamableHttp]. You should only do this if you're certain the tool list will not change.
@@ -0,0 +1,8 @@
1
+ # Memory
2
+
3
+ ::: agents.memory
4
+
5
+ options:
6
+ members:
7
+ - Session
8
+ - SQLiteSession
@@ -19,6 +19,10 @@ We will increment `Z` for non-breaking changes:
19
19
 
20
20
  ## Breaking change changelog
21
21
 
22
+ ### 0.2.0
23
+
24
+ In this version, a few places that used to take `Agent` as an arg, now take `AgentBase` as an arg instead. For example, the `list_tools()` call in MCP servers. This is a purely typing change, you will still receive `Agent` objects. To update, just fix type errors by replacing `Agent` with `AgentBase`.
25
+
22
26
  ### 0.1.0
23
27
 
24
28
  In this version, [`MCPServer.list_tools()`][agents.mcp.server.MCPServer] has two new params: `run_context` and `agent`. You'll need to add these params to any classes that subclass `MCPServer`.
@@ -65,7 +65,9 @@ Calling any of the run methods can result in one or more agents running (and hen
65
65
 
66
66
  At the end of the agent run, you can choose what to show to the user. For example, you might show the user every new item generated by the agents, or just the final output. Either way, the user might then ask a followup question, in which case you can call the run method again.
67
67
 
68
- You can use the base [`RunResultBase.to_input_list()`][agents.result.RunResultBase.to_input_list] method to get the inputs for the next turn.
68
+ ### Manual conversation management
69
+
70
+ You can manually manage conversation history using the [`RunResultBase.to_input_list()`][agents.result.RunResultBase.to_input_list] method to get the inputs for the next turn:
69
71
 
70
72
  ```python
71
73
  async def main():
@@ -84,6 +86,39 @@ async def main():
84
86
  # California
85
87
  ```
86
88
 
89
+ ### Automatic conversation management with Sessions
90
+
91
+ For a simpler approach, you can use [Sessions](sessions.md) to automatically handle conversation history without manually calling `.to_input_list()`:
92
+
93
+ ```python
94
+ from agents import Agent, Runner, SQLiteSession
95
+
96
+ async def main():
97
+ agent = Agent(name="Assistant", instructions="Reply very concisely.")
98
+
99
+ # Create session instance
100
+ session = SQLiteSession("conversation_123")
101
+
102
+ with trace(workflow_name="Conversation", group_id=thread_id):
103
+ # First turn
104
+ result = await Runner.run(agent, "What city is the Golden Gate Bridge in?", session=session)
105
+ print(result.final_output)
106
+ # San Francisco
107
+
108
+ # Second turn - agent automatically remembers previous context
109
+ result = await Runner.run(agent, "What state is it in?", session=session)
110
+ print(result.final_output)
111
+ # California
112
+ ```
113
+
114
+ Sessions automatically:
115
+
116
+ - Retrieves conversation history before each run
117
+ - Stores new messages after each run
118
+ - Maintains separate conversations for different session IDs
119
+
120
+ See the [Sessions documentation](sessions.md) for more details.
121
+
87
122
  ## Exceptions
88
123
 
89
124
  The SDK raises exceptions in certain cases. The full list is in [`agents.exceptions`][]. As an overview:
@@ -266,7 +266,9 @@ def translate_single_source_file(file_path: str) -> None:
266
266
 
267
267
  def main():
268
268
  parser = argparse.ArgumentParser(description="Translate documentation files")
269
- parser.add_argument("--file", type=str, help="Specific file to translate (relative to docs directory)")
269
+ parser.add_argument(
270
+ "--file", type=str, help="Specific file to translate (relative to docs directory)"
271
+ )
270
272
  args = parser.parse_args()
271
273
 
272
274
  if args.file: