openai-agents 0.0.1__tar.gz → 0.0.2__tar.gz

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

Potentially problematic release.


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

Files changed (325) hide show
  1. openai_agents-0.0.2/.github/workflows/docs.yml +26 -0
  2. openai_agents-0.0.2/.github/workflows/publish.yml +34 -0
  3. openai_agents-0.0.2/.github/workflows/tests.yml +86 -0
  4. openai_agents-0.0.2/.prettierrc +11 -0
  5. openai_agents-0.0.2/LICENSE +21 -0
  6. openai_agents-0.0.2/Makefile +37 -0
  7. openai_agents-0.0.2/PKG-INFO +202 -0
  8. openai_agents-0.0.2/README.md +174 -0
  9. openai_agents-0.0.2/docs/agents.md +131 -0
  10. openai_agents-0.0.2/docs/assets/images/favicon-platform.svg +16 -0
  11. openai_agents-0.0.2/docs/assets/images/orchestration.png +0 -0
  12. openai_agents-0.0.2/docs/assets/logo.svg +15 -0
  13. openai_agents-0.0.2/docs/config.md +94 -0
  14. openai_agents-0.0.2/docs/context.md +76 -0
  15. openai_agents-0.0.2/docs/guardrails.md +154 -0
  16. openai_agents-0.0.2/docs/handoffs.md +113 -0
  17. openai_agents-0.0.2/docs/index.md +52 -0
  18. openai_agents-0.0.2/docs/models.md +73 -0
  19. openai_agents-0.0.2/docs/multi_agent.md +37 -0
  20. openai_agents-0.0.2/docs/quickstart.md +186 -0
  21. openai_agents-0.0.2/docs/ref/agent.md +3 -0
  22. openai_agents-0.0.2/docs/ref/agent_output.md +3 -0
  23. openai_agents-0.0.2/docs/ref/exceptions.md +3 -0
  24. openai_agents-0.0.2/docs/ref/extensions/handoff_filters.md +3 -0
  25. openai_agents-0.0.2/docs/ref/extensions/handoff_prompt.md +8 -0
  26. openai_agents-0.0.2/docs/ref/function_schema.md +3 -0
  27. openai_agents-0.0.2/docs/ref/guardrail.md +3 -0
  28. openai_agents-0.0.2/docs/ref/handoffs.md +3 -0
  29. openai_agents-0.0.2/docs/ref/index.md +13 -0
  30. openai_agents-0.0.2/docs/ref/items.md +3 -0
  31. openai_agents-0.0.2/docs/ref/lifecycle.md +6 -0
  32. openai_agents-0.0.2/docs/ref/model_settings.md +3 -0
  33. openai_agents-0.0.2/docs/ref/models/interface.md +3 -0
  34. openai_agents-0.0.2/docs/ref/models/openai_chatcompletions.md +3 -0
  35. openai_agents-0.0.2/docs/ref/models/openai_responses.md +3 -0
  36. openai_agents-0.0.2/docs/ref/result.md +3 -0
  37. openai_agents-0.0.2/docs/ref/run.md +8 -0
  38. openai_agents-0.0.2/docs/ref/run_context.md +3 -0
  39. openai_agents-0.0.2/docs/ref/stream_events.md +3 -0
  40. openai_agents-0.0.2/docs/ref/tool.md +3 -0
  41. openai_agents-0.0.2/docs/ref/tracing/create.md +3 -0
  42. openai_agents-0.0.2/docs/ref/tracing/index.md +3 -0
  43. openai_agents-0.0.2/docs/ref/tracing/processor_interface.md +3 -0
  44. openai_agents-0.0.2/docs/ref/tracing/processors.md +3 -0
  45. openai_agents-0.0.2/docs/ref/tracing/scope.md +3 -0
  46. openai_agents-0.0.2/docs/ref/tracing/setup.md +3 -0
  47. openai_agents-0.0.2/docs/ref/tracing/span_data.md +3 -0
  48. openai_agents-0.0.2/docs/ref/tracing/spans.md +9 -0
  49. openai_agents-0.0.2/docs/ref/tracing/traces.md +3 -0
  50. openai_agents-0.0.2/docs/ref/tracing/util.md +3 -0
  51. openai_agents-0.0.2/docs/ref/usage.md +3 -0
  52. openai_agents-0.0.2/docs/results.md +52 -0
  53. openai_agents-0.0.2/docs/running_agents.md +95 -0
  54. openai_agents-0.0.2/docs/streaming.md +87 -0
  55. openai_agents-0.0.2/docs/stylesheets/extra.css +194 -0
  56. openai_agents-0.0.2/docs/tools.md +270 -0
  57. openai_agents-0.0.2/docs/tracing.md +95 -0
  58. openai_agents-0.0.2/examples/__init__.py +3 -0
  59. openai_agents-0.0.2/examples/agent_patterns/README.md +54 -0
  60. openai_agents-0.0.2/examples/agent_patterns/agents_as_tools.py +79 -0
  61. openai_agents-0.0.2/examples/agent_patterns/deterministic.py +80 -0
  62. openai_agents-0.0.2/examples/agent_patterns/input_guardrails.py +105 -0
  63. openai_agents-0.0.2/examples/agent_patterns/llm_as_a_judge.py +76 -0
  64. openai_agents-0.0.2/examples/agent_patterns/output_guardrails.py +80 -0
  65. openai_agents-0.0.2/examples/agent_patterns/parallelization.py +61 -0
  66. openai_agents-0.0.2/examples/agent_patterns/routing.py +70 -0
  67. openai_agents-0.0.2/examples/basic/agent_lifecycle_example.py +112 -0
  68. openai_agents-0.0.2/examples/basic/dynamic_system_prompt.py +69 -0
  69. openai_agents-0.0.2/examples/basic/hello_world.py +20 -0
  70. openai_agents-0.0.2/examples/basic/lifecycle_example.py +118 -0
  71. openai_agents-0.0.2/examples/basic/stream_items.py +65 -0
  72. openai_agents-0.0.2/examples/basic/stream_text.py +21 -0
  73. openai_agents-0.0.2/examples/customer_service/main.py +169 -0
  74. openai_agents-0.0.2/examples/handoffs/message_filter.py +176 -0
  75. openai_agents-0.0.2/examples/handoffs/message_filter_streaming.py +176 -0
  76. openai_agents-0.0.2/examples/research_bot/README.md +25 -0
  77. openai_agents-0.0.2/examples/research_bot/__init__.py +1 -0
  78. openai_agents-0.0.2/examples/research_bot/agents/planner_agent.py +29 -0
  79. openai_agents-0.0.2/examples/research_bot/agents/search_agent.py +18 -0
  80. openai_agents-0.0.2/examples/research_bot/agents/writer_agent.py +33 -0
  81. openai_agents-0.0.2/examples/research_bot/main.py +12 -0
  82. openai_agents-0.0.2/examples/research_bot/manager.py +119 -0
  83. openai_agents-0.0.2/examples/research_bot/printer.py +41 -0
  84. openai_agents-0.0.2/examples/research_bot/sample_outputs/product_recs.md +180 -0
  85. openai_agents-0.0.2/examples/research_bot/sample_outputs/product_recs.txt +212 -0
  86. openai_agents-0.0.2/examples/research_bot/sample_outputs/vacation.md +177 -0
  87. openai_agents-0.0.2/examples/research_bot/sample_outputs/vacation.txt +206 -0
  88. openai_agents-0.0.2/examples/tools/computer_use.py +165 -0
  89. openai_agents-0.0.2/examples/tools/file_search.py +36 -0
  90. openai_agents-0.0.2/examples/tools/web_search.py +23 -0
  91. openai_agents-0.0.2/mkdocs.yml +121 -0
  92. openai_agents-0.0.2/pyproject.toml +119 -0
  93. openai_agents-0.0.2/src/agents/__init__.py +223 -0
  94. openai_agents-0.0.2/src/agents/_config.py +23 -0
  95. openai_agents-0.0.2/src/agents/_debug.py +17 -0
  96. openai_agents-0.0.2/src/agents/_run_impl.py +792 -0
  97. openai_agents-0.0.2/src/agents/_utils.py +61 -0
  98. openai_agents-0.0.2/src/agents/agent.py +159 -0
  99. openai_agents-0.0.2/src/agents/agent_output.py +144 -0
  100. openai_agents-0.0.2/src/agents/computer.py +107 -0
  101. openai_agents-0.0.2/src/agents/exceptions.py +63 -0
  102. openai_agents-0.0.2/src/agents/extensions/__init__.py +0 -0
  103. openai_agents-0.0.2/src/agents/extensions/handoff_filters.py +67 -0
  104. openai_agents-0.0.2/src/agents/extensions/handoff_prompt.py +19 -0
  105. openai_agents-0.0.2/src/agents/function_schema.py +340 -0
  106. openai_agents-0.0.2/src/agents/guardrail.py +320 -0
  107. openai_agents-0.0.2/src/agents/handoffs.py +236 -0
  108. openai_agents-0.0.2/src/agents/items.py +246 -0
  109. openai_agents-0.0.2/src/agents/lifecycle.py +105 -0
  110. openai_agents-0.0.2/src/agents/logger.py +3 -0
  111. openai_agents-0.0.2/src/agents/model_settings.py +35 -0
  112. openai_agents-0.0.2/src/agents/models/__init__.py +0 -0
  113. openai_agents-0.0.2/src/agents/models/_openai_shared.py +34 -0
  114. openai_agents-0.0.2/src/agents/models/fake_id.py +5 -0
  115. openai_agents-0.0.2/src/agents/models/interface.py +107 -0
  116. openai_agents-0.0.2/src/agents/models/openai_chatcompletions.py +952 -0
  117. openai_agents-0.0.2/src/agents/models/openai_provider.py +65 -0
  118. openai_agents-0.0.2/src/agents/models/openai_responses.py +384 -0
  119. openai_agents-0.0.2/src/agents/result.py +220 -0
  120. openai_agents-0.0.2/src/agents/run.py +904 -0
  121. openai_agents-0.0.2/src/agents/run_context.py +26 -0
  122. openai_agents-0.0.2/src/agents/stream_events.py +58 -0
  123. openai_agents-0.0.2/src/agents/strict_schema.py +167 -0
  124. openai_agents-0.0.2/src/agents/tool.py +286 -0
  125. openai_agents-0.0.2/src/agents/tracing/__init__.py +97 -0
  126. openai_agents-0.0.2/src/agents/tracing/create.py +306 -0
  127. openai_agents-0.0.2/src/agents/tracing/logger.py +3 -0
  128. openai_agents-0.0.2/src/agents/tracing/processor_interface.py +69 -0
  129. openai_agents-0.0.2/src/agents/tracing/processors.py +261 -0
  130. openai_agents-0.0.2/src/agents/tracing/scope.py +45 -0
  131. openai_agents-0.0.2/src/agents/tracing/setup.py +211 -0
  132. openai_agents-0.0.2/src/agents/tracing/span_data.py +188 -0
  133. openai_agents-0.0.2/src/agents/tracing/spans.py +264 -0
  134. openai_agents-0.0.2/src/agents/tracing/traces.py +195 -0
  135. openai_agents-0.0.2/src/agents/tracing/util.py +17 -0
  136. openai_agents-0.0.2/src/agents/usage.py +22 -0
  137. openai_agents-0.0.2/src/agents/version.py +7 -0
  138. openai_agents-0.0.2/src/openai_agents.egg-info/PKG-INFO +217 -0
  139. openai_agents-0.0.2/src/openai_agents.egg-info/SOURCES.txt +81 -0
  140. openai_agents-0.0.2/src/openai_agents.egg-info/dependency_links.txt +1 -0
  141. openai_agents-0.0.2/src/openai_agents.egg-info/requires.txt +6 -0
  142. openai_agents-0.0.2/src/openai_agents.egg-info/top_level.txt +1 -0
  143. openai_agents-0.0.2/tests/LICENSE +21 -0
  144. openai_agents-0.0.2/tests/Makefile +37 -0
  145. openai_agents-0.0.2/tests/README.md +174 -0
  146. openai_agents-0.0.2/tests/__init__.py +0 -0
  147. openai_agents-0.0.2/tests/conftest.py +55 -0
  148. openai_agents-0.0.2/tests/docs/agents.md +131 -0
  149. openai_agents-0.0.2/tests/docs/assets/images/favicon-platform.svg +16 -0
  150. openai_agents-0.0.2/tests/docs/assets/images/orchestration.png +0 -0
  151. openai_agents-0.0.2/tests/docs/assets/logo.svg +15 -0
  152. openai_agents-0.0.2/tests/docs/config.md +94 -0
  153. openai_agents-0.0.2/tests/docs/context.md +76 -0
  154. openai_agents-0.0.2/tests/docs/guardrails.md +154 -0
  155. openai_agents-0.0.2/tests/docs/handoffs.md +113 -0
  156. openai_agents-0.0.2/tests/docs/index.md +52 -0
  157. openai_agents-0.0.2/tests/docs/models.md +73 -0
  158. openai_agents-0.0.2/tests/docs/multi_agent.md +37 -0
  159. openai_agents-0.0.2/tests/docs/quickstart.md +186 -0
  160. openai_agents-0.0.2/tests/docs/ref/agent.md +3 -0
  161. openai_agents-0.0.2/tests/docs/ref/agent_output.md +3 -0
  162. openai_agents-0.0.2/tests/docs/ref/exceptions.md +3 -0
  163. openai_agents-0.0.2/tests/docs/ref/extensions/handoff_filters.md +3 -0
  164. openai_agents-0.0.2/tests/docs/ref/extensions/handoff_prompt.md +8 -0
  165. openai_agents-0.0.2/tests/docs/ref/function_schema.md +3 -0
  166. openai_agents-0.0.2/tests/docs/ref/guardrail.md +3 -0
  167. openai_agents-0.0.2/tests/docs/ref/handoffs.md +3 -0
  168. openai_agents-0.0.2/tests/docs/ref/index.md +13 -0
  169. openai_agents-0.0.2/tests/docs/ref/items.md +3 -0
  170. openai_agents-0.0.2/tests/docs/ref/lifecycle.md +6 -0
  171. openai_agents-0.0.2/tests/docs/ref/model_settings.md +3 -0
  172. openai_agents-0.0.2/tests/docs/ref/models/interface.md +3 -0
  173. openai_agents-0.0.2/tests/docs/ref/models/openai_chatcompletions.md +3 -0
  174. openai_agents-0.0.2/tests/docs/ref/models/openai_responses.md +3 -0
  175. openai_agents-0.0.2/tests/docs/ref/result.md +3 -0
  176. openai_agents-0.0.2/tests/docs/ref/run.md +8 -0
  177. openai_agents-0.0.2/tests/docs/ref/run_context.md +3 -0
  178. openai_agents-0.0.2/tests/docs/ref/stream_events.md +3 -0
  179. openai_agents-0.0.2/tests/docs/ref/tool.md +3 -0
  180. openai_agents-0.0.2/tests/docs/ref/tracing/create.md +3 -0
  181. openai_agents-0.0.2/tests/docs/ref/tracing/index.md +3 -0
  182. openai_agents-0.0.2/tests/docs/ref/tracing/processor_interface.md +3 -0
  183. openai_agents-0.0.2/tests/docs/ref/tracing/processors.md +3 -0
  184. openai_agents-0.0.2/tests/docs/ref/tracing/scope.md +3 -0
  185. openai_agents-0.0.2/tests/docs/ref/tracing/setup.md +3 -0
  186. openai_agents-0.0.2/tests/docs/ref/tracing/span_data.md +3 -0
  187. openai_agents-0.0.2/tests/docs/ref/tracing/spans.md +9 -0
  188. openai_agents-0.0.2/tests/docs/ref/tracing/traces.md +3 -0
  189. openai_agents-0.0.2/tests/docs/ref/tracing/util.md +3 -0
  190. openai_agents-0.0.2/tests/docs/ref/usage.md +3 -0
  191. openai_agents-0.0.2/tests/docs/results.md +52 -0
  192. openai_agents-0.0.2/tests/docs/running_agents.md +95 -0
  193. openai_agents-0.0.2/tests/docs/streaming.md +87 -0
  194. openai_agents-0.0.2/tests/docs/stylesheets/extra.css +194 -0
  195. openai_agents-0.0.2/tests/docs/tools.md +270 -0
  196. openai_agents-0.0.2/tests/docs/tracing.md +95 -0
  197. openai_agents-0.0.2/tests/examples/__init__.py +3 -0
  198. openai_agents-0.0.2/tests/examples/agent_patterns/README.md +54 -0
  199. openai_agents-0.0.2/tests/examples/agent_patterns/agents_as_tools.py +79 -0
  200. openai_agents-0.0.2/tests/examples/agent_patterns/deterministic.py +80 -0
  201. openai_agents-0.0.2/tests/examples/agent_patterns/input_guardrails.py +105 -0
  202. openai_agents-0.0.2/tests/examples/agent_patterns/llm_as_a_judge.py +76 -0
  203. openai_agents-0.0.2/tests/examples/agent_patterns/output_guardrails.py +80 -0
  204. openai_agents-0.0.2/tests/examples/agent_patterns/parallelization.py +61 -0
  205. openai_agents-0.0.2/tests/examples/agent_patterns/routing.py +70 -0
  206. openai_agents-0.0.2/tests/examples/basic/agent_lifecycle_example.py +112 -0
  207. openai_agents-0.0.2/tests/examples/basic/dynamic_system_prompt.py +69 -0
  208. openai_agents-0.0.2/tests/examples/basic/hello_world.py +20 -0
  209. openai_agents-0.0.2/tests/examples/basic/lifecycle_example.py +118 -0
  210. openai_agents-0.0.2/tests/examples/basic/stream_items.py +65 -0
  211. openai_agents-0.0.2/tests/examples/basic/stream_text.py +21 -0
  212. openai_agents-0.0.2/tests/examples/customer_service/main.py +169 -0
  213. openai_agents-0.0.2/tests/examples/handoffs/message_filter.py +176 -0
  214. openai_agents-0.0.2/tests/examples/handoffs/message_filter_streaming.py +176 -0
  215. openai_agents-0.0.2/tests/examples/research_bot/README.md +25 -0
  216. openai_agents-0.0.2/tests/examples/research_bot/__init__.py +1 -0
  217. openai_agents-0.0.2/tests/examples/research_bot/agents/__init__.py +0 -0
  218. openai_agents-0.0.2/tests/examples/research_bot/agents/planner_agent.py +29 -0
  219. openai_agents-0.0.2/tests/examples/research_bot/agents/search_agent.py +18 -0
  220. openai_agents-0.0.2/tests/examples/research_bot/agents/writer_agent.py +33 -0
  221. openai_agents-0.0.2/tests/examples/research_bot/main.py +12 -0
  222. openai_agents-0.0.2/tests/examples/research_bot/manager.py +119 -0
  223. openai_agents-0.0.2/tests/examples/research_bot/printer.py +41 -0
  224. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/product_recs.md +180 -0
  225. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/product_recs.txt +212 -0
  226. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/vacation.md +177 -0
  227. openai_agents-0.0.2/tests/examples/research_bot/sample_outputs/vacation.txt +206 -0
  228. openai_agents-0.0.2/tests/examples/tools/computer_use.py +165 -0
  229. openai_agents-0.0.2/tests/examples/tools/file_search.py +36 -0
  230. openai_agents-0.0.2/tests/examples/tools/web_search.py +23 -0
  231. openai_agents-0.0.2/tests/fake_model.py +118 -0
  232. openai_agents-0.0.2/tests/mkdocs.yml +121 -0
  233. openai_agents-0.0.2/tests/pyproject.toml +119 -0
  234. openai_agents-0.0.2/tests/src/agents/__init__.py +223 -0
  235. openai_agents-0.0.2/tests/src/agents/_config.py +23 -0
  236. openai_agents-0.0.2/tests/src/agents/_debug.py +17 -0
  237. openai_agents-0.0.2/tests/src/agents/_run_impl.py +792 -0
  238. openai_agents-0.0.2/tests/src/agents/_utils.py +61 -0
  239. openai_agents-0.0.2/tests/src/agents/agent.py +159 -0
  240. openai_agents-0.0.2/tests/src/agents/agent_output.py +144 -0
  241. openai_agents-0.0.2/tests/src/agents/computer.py +107 -0
  242. openai_agents-0.0.2/tests/src/agents/exceptions.py +63 -0
  243. openai_agents-0.0.2/tests/src/agents/extensions/__init__.py +0 -0
  244. openai_agents-0.0.2/tests/src/agents/extensions/handoff_filters.py +67 -0
  245. openai_agents-0.0.2/tests/src/agents/extensions/handoff_prompt.py +19 -0
  246. openai_agents-0.0.2/tests/src/agents/function_schema.py +340 -0
  247. openai_agents-0.0.2/tests/src/agents/guardrail.py +320 -0
  248. openai_agents-0.0.2/tests/src/agents/handoffs.py +236 -0
  249. openai_agents-0.0.2/tests/src/agents/items.py +246 -0
  250. openai_agents-0.0.2/tests/src/agents/lifecycle.py +105 -0
  251. openai_agents-0.0.2/tests/src/agents/logger.py +3 -0
  252. openai_agents-0.0.2/tests/src/agents/model_settings.py +35 -0
  253. openai_agents-0.0.2/tests/src/agents/models/__init__.py +0 -0
  254. openai_agents-0.0.2/tests/src/agents/models/_openai_shared.py +34 -0
  255. openai_agents-0.0.2/tests/src/agents/models/fake_id.py +5 -0
  256. openai_agents-0.0.2/tests/src/agents/models/interface.py +107 -0
  257. openai_agents-0.0.2/tests/src/agents/models/openai_chatcompletions.py +952 -0
  258. openai_agents-0.0.2/tests/src/agents/models/openai_provider.py +65 -0
  259. openai_agents-0.0.2/tests/src/agents/models/openai_responses.py +384 -0
  260. openai_agents-0.0.2/tests/src/agents/result.py +220 -0
  261. openai_agents-0.0.2/tests/src/agents/run.py +904 -0
  262. openai_agents-0.0.2/tests/src/agents/run_context.py +26 -0
  263. openai_agents-0.0.2/tests/src/agents/stream_events.py +58 -0
  264. openai_agents-0.0.2/tests/src/agents/strict_schema.py +167 -0
  265. openai_agents-0.0.2/tests/src/agents/tool.py +286 -0
  266. openai_agents-0.0.2/tests/src/agents/tracing/__init__.py +97 -0
  267. openai_agents-0.0.2/tests/src/agents/tracing/create.py +306 -0
  268. openai_agents-0.0.2/tests/src/agents/tracing/logger.py +3 -0
  269. openai_agents-0.0.2/tests/src/agents/tracing/processor_interface.py +69 -0
  270. openai_agents-0.0.2/tests/src/agents/tracing/processors.py +261 -0
  271. openai_agents-0.0.2/tests/src/agents/tracing/scope.py +45 -0
  272. openai_agents-0.0.2/tests/src/agents/tracing/setup.py +211 -0
  273. openai_agents-0.0.2/tests/src/agents/tracing/span_data.py +188 -0
  274. openai_agents-0.0.2/tests/src/agents/tracing/spans.py +264 -0
  275. openai_agents-0.0.2/tests/src/agents/tracing/traces.py +195 -0
  276. openai_agents-0.0.2/tests/src/agents/tracing/util.py +17 -0
  277. openai_agents-0.0.2/tests/src/agents/usage.py +22 -0
  278. openai_agents-0.0.2/tests/src/agents/version.py +7 -0
  279. openai_agents-0.0.2/tests/src/openai_agents.egg-info/PKG-INFO +217 -0
  280. openai_agents-0.0.2/tests/src/openai_agents.egg-info/SOURCES.txt +81 -0
  281. openai_agents-0.0.2/tests/src/openai_agents.egg-info/dependency_links.txt +1 -0
  282. openai_agents-0.0.2/tests/src/openai_agents.egg-info/requires.txt +6 -0
  283. openai_agents-0.0.2/tests/src/openai_agents.egg-info/top_level.txt +1 -0
  284. openai_agents-0.0.2/tests/test_agent_config.py +167 -0
  285. openai_agents-0.0.2/tests/test_agent_hooks.py +426 -0
  286. openai_agents-0.0.2/tests/test_agent_runner.py +554 -0
  287. openai_agents-0.0.2/tests/test_agent_runner_streamed.py +686 -0
  288. openai_agents-0.0.2/tests/test_agent_tracing.py +322 -0
  289. openai_agents-0.0.2/tests/test_computer_action.py +311 -0
  290. openai_agents-0.0.2/tests/test_config.py +61 -0
  291. openai_agents-0.0.2/tests/test_doc_parsing.py +115 -0
  292. openai_agents-0.0.2/tests/test_extension_filters.py +188 -0
  293. openai_agents-0.0.2/tests/test_function_schema.py +430 -0
  294. openai_agents-0.0.2/tests/test_function_tool.py +257 -0
  295. openai_agents-0.0.2/tests/test_function_tool_decorator.py +144 -0
  296. openai_agents-0.0.2/tests/test_global_hooks.py +373 -0
  297. openai_agents-0.0.2/tests/test_guardrails.py +262 -0
  298. openai_agents-0.0.2/tests/test_handoff_tool.py +278 -0
  299. openai_agents-0.0.2/tests/test_items_helpers.py +281 -0
  300. openai_agents-0.0.2/tests/test_max_turns.py +127 -0
  301. openai_agents-0.0.2/tests/test_openai_chatcompletions.py +290 -0
  302. openai_agents-0.0.2/tests/test_openai_chatcompletions_converter.py +395 -0
  303. openai_agents-0.0.2/tests/test_openai_chatcompletions_stream.py +278 -0
  304. openai_agents-0.0.2/tests/test_openai_responses_converter.py +205 -0
  305. openai_agents-0.0.2/tests/test_output_tool.py +113 -0
  306. openai_agents-0.0.2/tests/test_responses.py +76 -0
  307. openai_agents-0.0.2/tests/test_responses_tracing.py +212 -0
  308. openai_agents-0.0.2/tests/test_result_cast.py +58 -0
  309. openai_agents-0.0.2/tests/test_run_config.py +88 -0
  310. openai_agents-0.0.2/tests/test_run_step_execution.py +307 -0
  311. openai_agents-0.0.2/tests/test_run_step_processing.py +422 -0
  312. openai_agents-0.0.2/tests/test_strict_schema.py +126 -0
  313. openai_agents-0.0.2/tests/test_tool_converter.py +54 -0
  314. openai_agents-0.0.2/tests/test_trace_processor.py +276 -0
  315. openai_agents-0.0.2/tests/test_tracing.py +402 -0
  316. openai_agents-0.0.2/tests/test_tracing_errors.py +328 -0
  317. openai_agents-0.0.2/tests/test_tracing_errors_streamed.py +397 -0
  318. openai_agents-0.0.2/tests/testing_processor.py +79 -0
  319. openai_agents-0.0.2/uv.lock +1360 -0
  320. openai_agents-0.0.1/LICENSE +0 -20
  321. openai_agents-0.0.1/PKG-INFO +0 -17
  322. openai_agents-0.0.1/README.md +0 -3
  323. openai_agents-0.0.1/pyproject.toml +0 -26
  324. openai_agents-0.0.1/src/openai-agents/example.py +0 -2
  325. {openai_agents-0.0.1/src/openai-agents → openai_agents-0.0.2/examples/research_bot/agents}/__init__.py +0 -0
@@ -0,0 +1,26 @@
1
+ name: Deploy docs
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["Tests"]
6
+ types:
7
+ - completed
8
+
9
+ permissions:
10
+ contents: write # This allows pushing to gh-pages
11
+
12
+ jobs:
13
+ deploy_docs:
14
+ if: ${{ github.event.workflow_run.conclusion == 'success' }}
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout repository
18
+ uses: actions/checkout@v4
19
+ - name: Setup uv
20
+ uses: astral-sh/setup-uv@v5
21
+ with:
22
+ enable-cache: true
23
+ - name: Install dependencies
24
+ run: make sync
25
+ - name: Deploy docs
26
+ run: make deploy-docs
@@ -0,0 +1,34 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - published
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ publish:
13
+ environment:
14
+ name: pypi
15
+ url: https://pypi.org/p/openai-agents
16
+ permissions:
17
+ id-token: write # Important for trusted publishing to PyPI
18
+ runs-on: ubuntu-latest
19
+ env:
20
+ OPENAI_API_KEY: fake-for-tests
21
+
22
+ steps:
23
+ - name: Checkout repository
24
+ uses: actions/checkout@v4
25
+ - name: Setup uv
26
+ uses: astral-sh/setup-uv@v5
27
+ with:
28
+ enable-cache: true
29
+ - name: Install dependencies
30
+ run: make sync
31
+ - name: Build package
32
+ run: uv build
33
+ - name: Publish to PyPI
34
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,86 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+ jobs:
12
+ lint:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v4
17
+ - name: Setup uv
18
+ uses: astral-sh/setup-uv@v5
19
+ with:
20
+ enable-cache: true
21
+ - name: Install dependencies
22
+ run: make sync
23
+ - name: Run lint
24
+ run: make lint
25
+
26
+ typecheck:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - name: Checkout repository
30
+ uses: actions/checkout@v4
31
+ - name: Setup uv
32
+ uses: astral-sh/setup-uv@v5
33
+ with:
34
+ enable-cache: true
35
+ - name: Install dependencies
36
+ run: make sync
37
+ - name: Run typecheck
38
+ run: make mypy
39
+
40
+ tests:
41
+ runs-on: ubuntu-latest
42
+ env:
43
+ OPENAI_API_KEY: fake-for-tests
44
+ steps:
45
+ - name: Checkout repository
46
+ uses: actions/checkout@v4
47
+ - name: Setup uv
48
+ uses: astral-sh/setup-uv@v5
49
+ with:
50
+ enable-cache: true
51
+ - name: Install dependencies
52
+ run: make sync
53
+ - name: Run tests
54
+ run: make tests
55
+
56
+ build-docs:
57
+ runs-on: ubuntu-latest
58
+ env:
59
+ OPENAI_API_KEY: fake-for-tests
60
+ steps:
61
+ - name: Checkout repository
62
+ uses: actions/checkout@v4
63
+ - name: Setup uv
64
+ uses: astral-sh/setup-uv@v5
65
+ with:
66
+ enable-cache: true
67
+ - name: Install dependencies
68
+ run: make sync
69
+ - name: Build docs
70
+ run: make build-docs
71
+
72
+ old_versions:
73
+ runs-on: ubuntu-latest
74
+ env:
75
+ OPENAI_API_KEY: fake-for-tests
76
+ steps:
77
+ - name: Checkout repository
78
+ uses: actions/checkout@v4
79
+ - name: Setup uv
80
+ uses: astral-sh/setup-uv@v5
81
+ with:
82
+ enable-cache: true
83
+ - name: Install dependencies
84
+ run: make sync
85
+ - name: Run tests
86
+ run: make old_version_tests
@@ -0,0 +1,11 @@
1
+ {
2
+ "tabWidth": 4,
3
+ "overrides": [
4
+ {
5
+ "files": "*.yml",
6
+ "options": {
7
+ "tabWidth": 2
8
+ }
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 OpenAI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,37 @@
1
+ .PHONY: sync
2
+ sync:
3
+ uv sync --all-extras --all-packages --group dev
4
+
5
+ .PHONY: format
6
+ format:
7
+ uv run ruff format
8
+
9
+ .PHONY: lint
10
+ lint:
11
+ uv run ruff check
12
+
13
+ .PHONY: mypy
14
+ mypy:
15
+ uv run mypy .
16
+
17
+ .PHONY: tests
18
+ tests:
19
+ uv run pytest
20
+
21
+ .PHONY: old_version_tests
22
+ old_version_tests:
23
+ UV_PROJECT_ENVIRONMENT=.venv_39 uv run --python 3.9 -m pytest
24
+ UV_PROJECT_ENVIRONMENT=.venv_39 uv run --python 3.9 -m mypy .
25
+
26
+ .PHONY: build-docs
27
+ build-docs:
28
+ uv run mkdocs build
29
+
30
+ .PHONY: serve-docs
31
+ serve-docs:
32
+ uv run mkdocs serve
33
+
34
+ .PHONY: deploy-docs
35
+ deploy-docs:
36
+ uv run mkdocs gh-deploy --force --verbose
37
+
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.4
2
+ Name: openai-agents
3
+ Version: 0.0.2
4
+ Summary: OpenAI Agents SDK
5
+ Project-URL: Homepage, https://github.com/openai/openai-agents-python
6
+ Project-URL: Repository, https://github.com/openai/openai-agents-python
7
+ Author-email: OpenAI <support@openai.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.9
21
+ Requires-Dist: griffe<2,>=1.5.6
22
+ Requires-Dist: openai>=1.66.0
23
+ Requires-Dist: pydantic<3,>=2.10
24
+ Requires-Dist: requests<3,>=2.0
25
+ Requires-Dist: types-requests<3,>=2.0
26
+ Requires-Dist: typing-extensions<5,>=4.12.2
27
+ Description-Content-Type: text/markdown
28
+
29
+ # OpenAI Agents SDK
30
+
31
+ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
32
+
33
+ <img src="docs/assets/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
34
+
35
+ ### Core concepts:
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
41
+
42
+ Explore the [examples](examples) directory to see the SDK in action.
43
+
44
+ ## Get started
45
+
46
+ 1. Set up your Python environment
47
+
48
+ ```
49
+ python -m venv env
50
+ source env/bin/activate
51
+ ```
52
+
53
+ 2. Install Agents SDK
54
+
55
+ ```
56
+ pip install openai-agents
57
+ ```
58
+
59
+ ## Hello world example
60
+
61
+ ```python
62
+ from agents import Agent, Runner
63
+
64
+ agent = Agent(name="Assistant", instructions="You are a helpful assistant")
65
+
66
+ result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
67
+ print(result.final_output)
68
+
69
+ # Code within the code,
70
+ # Functions calling themselves,
71
+ # Infinite loop's dance.
72
+ ```
73
+
74
+ (_If running this, ensure you set the `OPENAI_API_KEY` environment variable_)
75
+
76
+ ## Handoffs example
77
+
78
+ ```py
79
+ from agents import Agent, Runner
80
+ import asyncio
81
+
82
+ spanish_agent = Agent(
83
+ name="Spanish agent",
84
+ instructions="You only speak Spanish.",
85
+ )
86
+
87
+ english_agent = Agent(
88
+ name="English agent",
89
+ instructions="You only speak English",
90
+ )
91
+
92
+ triage_agent = Agent(
93
+ name="Triage agent",
94
+ instructions="Handoff to the appropriate agent based on the language of the request.",
95
+ handoffs=[spanish_agent, english_agent],
96
+ )
97
+
98
+
99
+ async def main():
100
+ result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
101
+ print(result.final_output)
102
+ # ¡Hola! Estoy bien, gracias por preguntar. ¿Y tú, cómo estás?
103
+
104
+
105
+ if __name__ == "__main__":
106
+ asyncio.run(main())
107
+ ```
108
+
109
+ ## Functions example
110
+
111
+ ```python
112
+ import asyncio
113
+
114
+ from agents import Agent, Runner, function_tool
115
+
116
+
117
+ @function_tool
118
+ def get_weather(city: str) -> str:
119
+ return f"The weather in {city} is sunny."
120
+
121
+
122
+ agent = Agent(
123
+ name="Hello world",
124
+ instructions="You are a helpful agent.",
125
+ tools=[get_weather],
126
+ )
127
+
128
+
129
+ async def main():
130
+ result = await Runner.run(agent, input="What's the weather in Tokyo?")
131
+ print(result.final_output)
132
+ # The weather in Tokyo is sunny.
133
+
134
+
135
+ if __name__ == "__main__":
136
+ asyncio.run(main())
137
+ ```
138
+
139
+ ## The agent loop
140
+
141
+ When you call `Runner.run()`, we run a loop until we get a final output.
142
+
143
+ 1. We call the LLM, using the model and settings on the agent, and the message history.
144
+ 2. The LLM returns a response, which may include tool calls.
145
+ 3. If the response has a final output (see below for the more on this), we return it and end the loop.
146
+ 4. If the response has a handoff, we set the agent to the new agent and go back to step 1.
147
+ 5. We process the tool calls (if any) and append the tool responses messsages. Then we go to step 1.
148
+
149
+ There is a `max_turns` parameter that you can use to limit the number of times the loop executes.
150
+
151
+ ### Final output
152
+
153
+ Final output is the last thing the agent produces in the loop.
154
+
155
+ 1. If you set an `output_type` on the agent, the final output is when the LLM returns something of that type. We use [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) for this.
156
+ 2. If there's no `output_type` (i.e. plain text responses), then the first LLM response without any tool calls or handoffs is considered as the final output.
157
+
158
+ As a result, the mental model for the agent loop is:
159
+
160
+ 1. If the current agent has an `output_type`, the loop runs until the agent produces structured output matching that type.
161
+ 2. If the current agent does not have an `output_type`, the loop runs until the current agent produces a message without any tool calls/handoffs.
162
+
163
+ ## Common agent patterns
164
+
165
+ The Agents SDK is designed to be highly flexible, allowing you to model a wide range of LLM workflows including deterministic flows, iterative loops, and more. See examples in [`examples/agent_patterns`](examples/agent_patterns).
166
+
167
+ ## Tracing
168
+
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.
170
+
171
+ ## Development (only needed if you need to edit the SDK/examples)
172
+
173
+ 0. Ensure you have [`uv`](https://docs.astral.sh/uv/) installed.
174
+
175
+ ```bash
176
+ uv --version
177
+ ```
178
+
179
+ 1. Install dependencies
180
+
181
+ ```bash
182
+ make sync
183
+ ```
184
+
185
+ 2. (After making changes) lint/test
186
+
187
+ ```
188
+ make tests # run tests
189
+ make mypy # run typechecker
190
+ make lint # run linter
191
+ ```
192
+
193
+ ## Acknowledgements
194
+
195
+ We'd like to acknowledge the excellent work of the open-source community, especially:
196
+
197
+ - [Pydantic](https://docs.pydantic.dev/latest/) (data validation) and [PydanticAI](https://ai.pydantic.dev/) (advanced agent framework)
198
+ - [MkDocs](https://github.com/squidfunk/mkdocs-material)
199
+ - [Griffe](https://github.com/mkdocstrings/griffe)
200
+ - [uv](https://github.com/astral-sh/uv) and [ruff](https://github.com/astral-sh/ruff)
201
+
202
+ We're committed to continuing to build the Agents SDK as an open source framework so others in the community can expand on our approach.
@@ -0,0 +1,174 @@
1
+ # OpenAI Agents SDK
2
+
3
+ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
4
+
5
+ <img src="docs/assets/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
6
+
7
+ ### Core concepts:
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
13
+
14
+ Explore the [examples](examples) directory to see the SDK in action.
15
+
16
+ ## Get started
17
+
18
+ 1. Set up your Python environment
19
+
20
+ ```
21
+ python -m venv env
22
+ source env/bin/activate
23
+ ```
24
+
25
+ 2. Install Agents SDK
26
+
27
+ ```
28
+ pip install openai-agents
29
+ ```
30
+
31
+ ## Hello world example
32
+
33
+ ```python
34
+ from agents import Agent, Runner
35
+
36
+ agent = Agent(name="Assistant", instructions="You are a helpful assistant")
37
+
38
+ result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
39
+ print(result.final_output)
40
+
41
+ # Code within the code,
42
+ # Functions calling themselves,
43
+ # Infinite loop's dance.
44
+ ```
45
+
46
+ (_If running this, ensure you set the `OPENAI_API_KEY` environment variable_)
47
+
48
+ ## Handoffs example
49
+
50
+ ```py
51
+ from agents import Agent, Runner
52
+ import asyncio
53
+
54
+ spanish_agent = Agent(
55
+ name="Spanish agent",
56
+ instructions="You only speak Spanish.",
57
+ )
58
+
59
+ english_agent = Agent(
60
+ name="English agent",
61
+ instructions="You only speak English",
62
+ )
63
+
64
+ triage_agent = Agent(
65
+ name="Triage agent",
66
+ instructions="Handoff to the appropriate agent based on the language of the request.",
67
+ handoffs=[spanish_agent, english_agent],
68
+ )
69
+
70
+
71
+ async def main():
72
+ result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
73
+ print(result.final_output)
74
+ # ¡Hola! Estoy bien, gracias por preguntar. ¿Y tú, cómo estás?
75
+
76
+
77
+ if __name__ == "__main__":
78
+ asyncio.run(main())
79
+ ```
80
+
81
+ ## Functions example
82
+
83
+ ```python
84
+ import asyncio
85
+
86
+ from agents import Agent, Runner, function_tool
87
+
88
+
89
+ @function_tool
90
+ def get_weather(city: str) -> str:
91
+ return f"The weather in {city} is sunny."
92
+
93
+
94
+ agent = Agent(
95
+ name="Hello world",
96
+ instructions="You are a helpful agent.",
97
+ tools=[get_weather],
98
+ )
99
+
100
+
101
+ async def main():
102
+ result = await Runner.run(agent, input="What's the weather in Tokyo?")
103
+ print(result.final_output)
104
+ # The weather in Tokyo is sunny.
105
+
106
+
107
+ if __name__ == "__main__":
108
+ asyncio.run(main())
109
+ ```
110
+
111
+ ## The agent loop
112
+
113
+ When you call `Runner.run()`, we run a loop until we get a final output.
114
+
115
+ 1. We call the LLM, using the model and settings on the agent, and the message history.
116
+ 2. The LLM returns a response, which may include tool calls.
117
+ 3. If the response has a final output (see below for the more on this), we return it and end the loop.
118
+ 4. If the response has a handoff, we set the agent to the new agent and go back to step 1.
119
+ 5. We process the tool calls (if any) and append the tool responses messsages. Then we go to step 1.
120
+
121
+ There is a `max_turns` parameter that you can use to limit the number of times the loop executes.
122
+
123
+ ### Final output
124
+
125
+ Final output is the last thing the agent produces in the loop.
126
+
127
+ 1. If you set an `output_type` on the agent, the final output is when the LLM returns something of that type. We use [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) for this.
128
+ 2. If there's no `output_type` (i.e. plain text responses), then the first LLM response without any tool calls or handoffs is considered as the final output.
129
+
130
+ As a result, the mental model for the agent loop is:
131
+
132
+ 1. If the current agent has an `output_type`, the loop runs until the agent produces structured output matching that type.
133
+ 2. If the current agent does not have an `output_type`, the loop runs until the current agent produces a message without any tool calls/handoffs.
134
+
135
+ ## Common agent patterns
136
+
137
+ The Agents SDK is designed to be highly flexible, allowing you to model a wide range of LLM workflows including deterministic flows, iterative loops, and more. See examples in [`examples/agent_patterns`](examples/agent_patterns).
138
+
139
+ ## Tracing
140
+
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.
142
+
143
+ ## Development (only needed if you need to edit the SDK/examples)
144
+
145
+ 0. Ensure you have [`uv`](https://docs.astral.sh/uv/) installed.
146
+
147
+ ```bash
148
+ uv --version
149
+ ```
150
+
151
+ 1. Install dependencies
152
+
153
+ ```bash
154
+ make sync
155
+ ```
156
+
157
+ 2. (After making changes) lint/test
158
+
159
+ ```
160
+ make tests # run tests
161
+ make mypy # run typechecker
162
+ make lint # run linter
163
+ ```
164
+
165
+ ## Acknowledgements
166
+
167
+ We'd like to acknowledge the excellent work of the open-source community, especially:
168
+
169
+ - [Pydantic](https://docs.pydantic.dev/latest/) (data validation) and [PydanticAI](https://ai.pydantic.dev/) (advanced agent framework)
170
+ - [MkDocs](https://github.com/squidfunk/mkdocs-material)
171
+ - [Griffe](https://github.com/mkdocstrings/griffe)
172
+ - [uv](https://github.com/astral-sh/uv) and [ruff](https://github.com/astral-sh/ruff)
173
+
174
+ We're committed to continuing to build the Agents SDK as an open source framework so others in the community can expand on our approach.