openai-agents 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openai-agents might be problematic. Click here for more details.
- {openai_agents-0.2.2 → openai_agents-0.2.3}/PKG-INFO +114 -111
- {openai_agents-0.2.2 → openai_agents-0.2.3}/README.md +113 -110
- openai_agents-0.2.3/docs/ja/agents.md +152 -0
- openai_agents-0.2.3/docs/ja/config.md +98 -0
- openai_agents-0.2.3/docs/ja/context.md +82 -0
- openai_agents-0.2.3/docs/ja/examples.md +48 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ja/guardrails.md +15 -15
- openai_agents-0.2.3/docs/ja/handoffs.md +117 -0
- openai_agents-0.2.3/docs/ja/index.md +58 -0
- openai_agents-0.2.3/docs/ja/mcp.md +191 -0
- openai_agents-0.2.3/docs/ja/models/index.md +151 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ja/models/litellm.md +12 -12
- openai_agents-0.2.3/docs/ja/multi_agent.md +41 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ja/quickstart.md +36 -26
- openai_agents-0.2.3/docs/ja/realtime/guide.md +158 -0
- openai_agents-0.2.3/docs/ja/realtime/quickstart.md +179 -0
- openai_agents-0.2.3/docs/ja/release.md +32 -0
- openai_agents-0.2.3/docs/ja/repl.md +21 -0
- openai_agents-0.2.3/docs/ja/results.md +56 -0
- openai_agents-0.2.3/docs/ja/running_agents.md +135 -0
- openai_agents-0.2.3/docs/ja/sessions.md +315 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ja/streaming.md +7 -7
- openai_agents-0.2.3/docs/ja/tools.md +326 -0
- openai_agents-0.2.3/docs/ja/tracing.md +123 -0
- openai_agents-0.2.3/docs/ja/visualization.md +88 -0
- openai_agents-0.2.3/docs/ja/voice/pipeline.md +87 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ja/voice/quickstart.md +9 -9
- openai_agents-0.2.3/docs/ja/voice/tracing.md +18 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/quickstart.md +15 -5
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/realtime/guide.md +11 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/running_agents.md +3 -2
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/tools/image_generator.py +1 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/pyproject.toml +1 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/guardrail.py +5 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/items.py +2 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/model_settings.py +2 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/chatcmpl_stream_handler.py +3 -3
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/openai_realtime.py +6 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/session.py +17 -7
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tool.py +5 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/usage.py +2 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_session.py +176 -10
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_tracing.py +3 -1
- {openai_agents-0.2.2 → openai_agents-0.2.3}/uv.lock +1 -1
- openai_agents-0.2.2/docs/ja/agents.md +0 -151
- openai_agents-0.2.2/docs/ja/config.md +0 -98
- openai_agents-0.2.2/docs/ja/context.md +0 -81
- openai_agents-0.2.2/docs/ja/examples.md +0 -45
- openai_agents-0.2.2/docs/ja/handoffs.md +0 -117
- openai_agents-0.2.2/docs/ja/index.md +0 -56
- openai_agents-0.2.2/docs/ja/mcp.md +0 -72
- openai_agents-0.2.2/docs/ja/models/index.md +0 -155
- openai_agents-0.2.2/docs/ja/multi_agent.md +0 -41
- openai_agents-0.2.2/docs/ja/repl.md +0 -22
- openai_agents-0.2.2/docs/ja/results.md +0 -56
- openai_agents-0.2.2/docs/ja/running_agents.md +0 -99
- openai_agents-0.2.2/docs/ja/tools.md +0 -299
- openai_agents-0.2.2/docs/ja/tracing.md +0 -123
- openai_agents-0.2.2/docs/ja/visualization.md +0 -87
- openai_agents-0.2.2/docs/ja/voice/pipeline.md +0 -81
- openai_agents-0.2.2/docs/ja/voice/tracing.md +0 -18
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/workflows/docs.yml +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/workflows/issues.yml +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/workflows/publish.yml +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/workflows/tests.yml +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.github/workflows/update-docs.yml +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.gitignore +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.prettierrc +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.vscode/launch.json +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/.vscode/settings.json +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/AGENTS.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/CLAUDE.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/LICENSE +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/Makefile +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/agents.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/assets/images/favicon-platform.svg +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/assets/images/graph.png +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/assets/images/mcp-tracing.jpg +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/assets/images/orchestration.png +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/assets/logo.svg +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/config.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/context.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/examples.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/guardrails.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/handoffs.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/index.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/mcp.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/models/index.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/models/litellm.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/multi_agent.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/realtime/quickstart.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/agent.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/agent_output.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/exceptions.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/extensions/handoff_filters.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/extensions/handoff_prompt.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/extensions/litellm.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/function_schema.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/guardrail.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/handoffs.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/index.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/items.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/lifecycle.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/mcp/server.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/mcp/util.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/memory.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/model_settings.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/models/interface.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/models/openai_chatcompletions.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/models/openai_responses.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/realtime/agent.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/realtime/config.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/realtime/events.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/realtime/runner.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/realtime/session.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/repl.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/result.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/run.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/run_context.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/stream_events.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tool.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/create.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/index.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/processor_interface.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/processors.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/scope.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/setup.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/span_data.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/spans.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/traces.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/tracing/util.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/usage.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/events.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/exceptions.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/input.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/model.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/models/openai_provider.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/models/openai_stt.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/models/openai_tts.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/pipeline.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/pipeline_config.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/result.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/utils.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/ref/voice/workflow.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/release.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/repl.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/results.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/scripts/translate_docs.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/sessions.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/streaming.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/stylesheets/extra.css +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/tools.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/tracing.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/visualization.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/voice/pipeline.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/voice/quickstart.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/docs/voice/tracing.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/agents_as_tools.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/deterministic.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/forcing_tool_use.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/input_guardrails.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/llm_as_a_judge.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/output_guardrails.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/parallelization.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/routing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/agent_patterns/streaming_guardrails.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/agent_lifecycle_example.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/dynamic_system_prompt.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/hello_world.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/hello_world_jupyter.ipynb +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/lifecycle_example.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/local_image.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/media/image_bison.jpg +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/non_strict_output_type.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/previous_response_id.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/prompt_template.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/remote_image.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/session_example.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/stream_items.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/stream_text.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/basic/tools.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/customer_service/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/financials_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/planner_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/risk_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/search_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/agents/writer_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/manager.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/financial_research_agent/printer.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/handoffs/message_filter.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/handoffs/message_filter_streaming.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/hosted_mcp/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/hosted_mcp/approvals.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/hosted_mcp/simple.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/filesystem_example/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/filesystem_example/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/git_example/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/git_example/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/prompt_server/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/prompt_server/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/prompt_server/server.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/sse_example/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/sse_example/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/sse_example/server.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/streamablehttp_example/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/streamablehttp_example/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/mcp/streamablehttp_example/server.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/model_providers/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/model_providers/custom_example_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/model_providers/custom_example_global.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/model_providers/custom_example_provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/model_providers/litellm_auto.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/model_providers/litellm_provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/realtime/app/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/realtime/app/server.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/realtime/app/static/app.js +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/realtime/app/static/index.html +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/realtime/cli/demo.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/realtime/cli/ui.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/reasoning_content/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/reasoning_content/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/reasoning_content/runner_example.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/agents/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/agents/planner_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/agents/search_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/agents/writer_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/manager.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/printer.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/sample_outputs/product_recs.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/sample_outputs/vacation.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/research_bot/sample_outputs/vacation.txt +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/tools/code_interpreter.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/tools/computer_use.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/tools/file_search.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/tools/web_search.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/static/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/static/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/static/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/static/util.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/streamed/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/streamed/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/streamed/main.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/examples/voice/streamed/my_workflow.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/mkdocs.yml +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/_config.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/_debug.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/_run_impl.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/agent_output.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/computer.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/exceptions.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/handoff_filters.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/handoff_prompt.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/models/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/models/litellm_model.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/models/litellm_provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/extensions/visualization.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/function_schema.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/handoffs.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/lifecycle.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/logger.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/mcp/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/mcp/server.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/mcp/util.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/memory/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/memory/session.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/_openai_shared.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/chatcmpl_converter.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/chatcmpl_helpers.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/fake_id.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/interface.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/multi_provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/openai_chatcompletions.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/openai_provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/models/openai_responses.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/prompts.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/py.typed +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/config.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/events.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/handoffs.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/items.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/model.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/model_events.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/model_inputs.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/realtime/runner.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/repl.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/result.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/run.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/run_context.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/stream_events.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/strict_schema.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tool_context.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/create.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/logger.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/processor_interface.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/processors.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/scope.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/setup.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/span_data.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/spans.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/traces.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/tracing/util.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/_coro.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/_error_tracing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/_json.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/_pretty_print.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/_transforms.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/util/_types.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/version.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/events.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/exceptions.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/imports.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/input.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/model.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/models/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/models/openai_model_provider.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/models/openai_stt.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/models/openai_tts.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/pipeline.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/pipeline_config.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/result.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/utils.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/src/agents/voice/workflow.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/README.md +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/conftest.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/fake_model.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/fastapi/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/fastapi/streaming_app.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/fastapi/test_streaming_context.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/conftest.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/helpers.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_caching.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_connect_disconnect.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_mcp_tracing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_mcp_util.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_prompt_server.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_runner_calls_mcp.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_server_errors.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/mcp/test_tool_filtering.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/model_settings/test_serialization.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/models/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/models/conftest.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/models/test_kwargs_functionality.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/models/test_litellm_chatcompletions_stream.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/models/test_litellm_extra_body.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/models/test_map.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_agent.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_conversion_helpers.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_item_parsing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_model_events.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_openai_realtime.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_realtime_handoffs.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/realtime/test_runner.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_agent_config.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_agent_hooks.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_agent_prompt.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_agent_runner.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_agent_runner_streamed.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_agent_tracing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_cancel_streaming.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_computer_action.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_config.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_doc_parsing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_extension_filters.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_extra_headers.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_function_schema.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_function_tool.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_function_tool_decorator.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_global_hooks.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_guardrails.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_handoff_tool.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_items_helpers.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_max_turns.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_openai_chatcompletions.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_openai_chatcompletions_converter.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_openai_chatcompletions_stream.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_openai_responses_converter.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_output_tool.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_pretty_print.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_reasoning_content.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_repl.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_responses.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_responses_tracing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_result_cast.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_run.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_run_config.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_run_error_details.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_run_step_execution.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_run_step_processing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_session.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_session_exceptions.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_strict_schema.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_tool_choice_reset.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_tool_converter.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_tool_use_behavior.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_trace_processor.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_tracing.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_tracing_errors.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_tracing_errors_streamed.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_usage.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/test_visualization.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/testing_processor.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/tracing/test_processor_api_key.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/__init__.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/conftest.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/fake_models.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/helpers.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/test_input.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/test_openai_stt.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/test_openai_tts.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/test_pipeline.py +0 -0
- {openai_agents-0.2.2 → openai_agents-0.2.3}/tests/voice/test_workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-agents
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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
|
|
@@ -56,125 +56,19 @@ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi
|
|
|
56
56
|
|
|
57
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.
|
|
58
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
|
-
|
|
167
59
|
## Get started
|
|
168
60
|
|
|
169
61
|
1. Set up your Python environment
|
|
170
62
|
|
|
171
|
-
-
|
|
63
|
+
- Option A: Using venv (traditional method)
|
|
64
|
+
|
|
172
65
|
```bash
|
|
173
66
|
python -m venv env
|
|
174
67
|
source env/bin/activate # On Windows: env\Scripts\activate
|
|
175
68
|
```
|
|
176
69
|
|
|
177
|
-
-
|
|
70
|
+
- Option B: Using uv (recommended)
|
|
71
|
+
|
|
178
72
|
```bash
|
|
179
73
|
uv venv
|
|
180
74
|
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
@@ -302,6 +196,114 @@ The Agents SDK is designed to be highly flexible, allowing you to model a wide r
|
|
|
302
196
|
|
|
303
197
|
The Agents SDK automatically traces your agent runs, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk), [Scorecard](https://docs.scorecard.io/docs/documentation/features/tracing#openai-agents-sdk-integration), and [Keywords AI](https://docs.keywordsai.co/integration/development-frameworks/openai-agent). For more details about how to customize or disable tracing, see [Tracing](http://openai.github.io/openai-agents-python/tracing), which also includes a larger list of [external tracing processors](http://openai.github.io/openai-agents-python/tracing/#external-tracing-processors-list).
|
|
304
198
|
|
|
199
|
+
## Sessions
|
|
200
|
+
|
|
201
|
+
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.
|
|
202
|
+
|
|
203
|
+
### Quick start
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
from agents import Agent, Runner, SQLiteSession
|
|
207
|
+
|
|
208
|
+
# Create agent
|
|
209
|
+
agent = Agent(
|
|
210
|
+
name="Assistant",
|
|
211
|
+
instructions="Reply very concisely.",
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
# Create a session instance
|
|
215
|
+
session = SQLiteSession("conversation_123")
|
|
216
|
+
|
|
217
|
+
# First turn
|
|
218
|
+
result = await Runner.run(
|
|
219
|
+
agent,
|
|
220
|
+
"What city is the Golden Gate Bridge in?",
|
|
221
|
+
session=session
|
|
222
|
+
)
|
|
223
|
+
print(result.final_output) # "San Francisco"
|
|
224
|
+
|
|
225
|
+
# Second turn - agent automatically remembers previous context
|
|
226
|
+
result = await Runner.run(
|
|
227
|
+
agent,
|
|
228
|
+
"What state is it in?",
|
|
229
|
+
session=session
|
|
230
|
+
)
|
|
231
|
+
print(result.final_output) # "California"
|
|
232
|
+
|
|
233
|
+
# Also works with synchronous runner
|
|
234
|
+
result = Runner.run_sync(
|
|
235
|
+
agent,
|
|
236
|
+
"What's the population?",
|
|
237
|
+
session=session
|
|
238
|
+
)
|
|
239
|
+
print(result.final_output) # "Approximately 39 million"
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Session options
|
|
243
|
+
|
|
244
|
+
- **No memory** (default): No session memory when session parameter is omitted
|
|
245
|
+
- **`session: Session = DatabaseSession(...)`**: Use a Session instance to manage conversation history
|
|
246
|
+
|
|
247
|
+
```python
|
|
248
|
+
from agents import Agent, Runner, SQLiteSession
|
|
249
|
+
|
|
250
|
+
# Custom SQLite database file
|
|
251
|
+
session = SQLiteSession("user_123", "conversations.db")
|
|
252
|
+
agent = Agent(name="Assistant")
|
|
253
|
+
|
|
254
|
+
# Different session IDs maintain separate conversation histories
|
|
255
|
+
result1 = await Runner.run(
|
|
256
|
+
agent,
|
|
257
|
+
"Hello",
|
|
258
|
+
session=session
|
|
259
|
+
)
|
|
260
|
+
result2 = await Runner.run(
|
|
261
|
+
agent,
|
|
262
|
+
"Hello",
|
|
263
|
+
session=SQLiteSession("user_456", "conversations.db")
|
|
264
|
+
)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Custom session implementations
|
|
268
|
+
|
|
269
|
+
You can implement your own session memory by creating a class that follows the `Session` protocol:
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
from agents.memory import Session
|
|
273
|
+
from typing import List
|
|
274
|
+
|
|
275
|
+
class MyCustomSession:
|
|
276
|
+
"""Custom session implementation following the Session protocol."""
|
|
277
|
+
|
|
278
|
+
def __init__(self, session_id: str):
|
|
279
|
+
self.session_id = session_id
|
|
280
|
+
# Your initialization here
|
|
281
|
+
|
|
282
|
+
async def get_items(self, limit: int | None = None) -> List[dict]:
|
|
283
|
+
# Retrieve conversation history for the session
|
|
284
|
+
pass
|
|
285
|
+
|
|
286
|
+
async def add_items(self, items: List[dict]) -> None:
|
|
287
|
+
# Store new items for the session
|
|
288
|
+
pass
|
|
289
|
+
|
|
290
|
+
async def pop_item(self) -> dict | None:
|
|
291
|
+
# Remove and return the most recent item from the session
|
|
292
|
+
pass
|
|
293
|
+
|
|
294
|
+
async def clear_session(self) -> None:
|
|
295
|
+
# Clear all items for the session
|
|
296
|
+
pass
|
|
297
|
+
|
|
298
|
+
# Use your custom session
|
|
299
|
+
agent = Agent(name="Assistant")
|
|
300
|
+
result = await Runner.run(
|
|
301
|
+
agent,
|
|
302
|
+
"Hello",
|
|
303
|
+
session=MyCustomSession("my_session")
|
|
304
|
+
)
|
|
305
|
+
```
|
|
306
|
+
|
|
305
307
|
## Development (only needed if you need to edit the SDK/examples)
|
|
306
308
|
|
|
307
309
|
0. Ensure you have [`uv`](https://docs.astral.sh/uv/) installed.
|
|
@@ -323,6 +325,7 @@ make check # run tests linter and typechecker
|
|
|
323
325
|
```
|
|
324
326
|
|
|
325
327
|
Or to run them individually:
|
|
328
|
+
|
|
326
329
|
```
|
|
327
330
|
make tests # run tests
|
|
328
331
|
make mypy # run typechecker
|
|
@@ -17,125 +17,19 @@ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi
|
|
|
17
17
|
|
|
18
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.
|
|
19
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
|
-
|
|
128
20
|
## Get started
|
|
129
21
|
|
|
130
22
|
1. Set up your Python environment
|
|
131
23
|
|
|
132
|
-
-
|
|
24
|
+
- Option A: Using venv (traditional method)
|
|
25
|
+
|
|
133
26
|
```bash
|
|
134
27
|
python -m venv env
|
|
135
28
|
source env/bin/activate # On Windows: env\Scripts\activate
|
|
136
29
|
```
|
|
137
30
|
|
|
138
|
-
-
|
|
31
|
+
- Option B: Using uv (recommended)
|
|
32
|
+
|
|
139
33
|
```bash
|
|
140
34
|
uv venv
|
|
141
35
|
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
@@ -263,6 +157,114 @@ The Agents SDK is designed to be highly flexible, allowing you to model a wide r
|
|
|
263
157
|
|
|
264
158
|
The Agents SDK automatically traces your agent runs, making it easy to track and debug the behavior of your agents. Tracing is extensible by design, supporting custom spans and a wide variety of external destinations, including [Logfire](https://logfire.pydantic.dev/docs/integrations/llms/openai/#openai-agents), [AgentOps](https://docs.agentops.ai/v1/integrations/agentssdk), [Braintrust](https://braintrust.dev/docs/guides/traces/integrations#openai-agents-sdk), [Scorecard](https://docs.scorecard.io/docs/documentation/features/tracing#openai-agents-sdk-integration), and [Keywords AI](https://docs.keywordsai.co/integration/development-frameworks/openai-agent). For more details about how to customize or disable tracing, see [Tracing](http://openai.github.io/openai-agents-python/tracing), which also includes a larger list of [external tracing processors](http://openai.github.io/openai-agents-python/tracing/#external-tracing-processors-list).
|
|
265
159
|
|
|
160
|
+
## Sessions
|
|
161
|
+
|
|
162
|
+
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.
|
|
163
|
+
|
|
164
|
+
### Quick start
|
|
165
|
+
|
|
166
|
+
```python
|
|
167
|
+
from agents import Agent, Runner, SQLiteSession
|
|
168
|
+
|
|
169
|
+
# Create agent
|
|
170
|
+
agent = Agent(
|
|
171
|
+
name="Assistant",
|
|
172
|
+
instructions="Reply very concisely.",
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
# Create a session instance
|
|
176
|
+
session = SQLiteSession("conversation_123")
|
|
177
|
+
|
|
178
|
+
# First turn
|
|
179
|
+
result = await Runner.run(
|
|
180
|
+
agent,
|
|
181
|
+
"What city is the Golden Gate Bridge in?",
|
|
182
|
+
session=session
|
|
183
|
+
)
|
|
184
|
+
print(result.final_output) # "San Francisco"
|
|
185
|
+
|
|
186
|
+
# Second turn - agent automatically remembers previous context
|
|
187
|
+
result = await Runner.run(
|
|
188
|
+
agent,
|
|
189
|
+
"What state is it in?",
|
|
190
|
+
session=session
|
|
191
|
+
)
|
|
192
|
+
print(result.final_output) # "California"
|
|
193
|
+
|
|
194
|
+
# Also works with synchronous runner
|
|
195
|
+
result = Runner.run_sync(
|
|
196
|
+
agent,
|
|
197
|
+
"What's the population?",
|
|
198
|
+
session=session
|
|
199
|
+
)
|
|
200
|
+
print(result.final_output) # "Approximately 39 million"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Session options
|
|
204
|
+
|
|
205
|
+
- **No memory** (default): No session memory when session parameter is omitted
|
|
206
|
+
- **`session: Session = DatabaseSession(...)`**: Use a Session instance to manage conversation history
|
|
207
|
+
|
|
208
|
+
```python
|
|
209
|
+
from agents import Agent, Runner, SQLiteSession
|
|
210
|
+
|
|
211
|
+
# Custom SQLite database file
|
|
212
|
+
session = SQLiteSession("user_123", "conversations.db")
|
|
213
|
+
agent = Agent(name="Assistant")
|
|
214
|
+
|
|
215
|
+
# Different session IDs maintain separate conversation histories
|
|
216
|
+
result1 = await Runner.run(
|
|
217
|
+
agent,
|
|
218
|
+
"Hello",
|
|
219
|
+
session=session
|
|
220
|
+
)
|
|
221
|
+
result2 = await Runner.run(
|
|
222
|
+
agent,
|
|
223
|
+
"Hello",
|
|
224
|
+
session=SQLiteSession("user_456", "conversations.db")
|
|
225
|
+
)
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Custom session implementations
|
|
229
|
+
|
|
230
|
+
You can implement your own session memory by creating a class that follows the `Session` protocol:
|
|
231
|
+
|
|
232
|
+
```python
|
|
233
|
+
from agents.memory import Session
|
|
234
|
+
from typing import List
|
|
235
|
+
|
|
236
|
+
class MyCustomSession:
|
|
237
|
+
"""Custom session implementation following the Session protocol."""
|
|
238
|
+
|
|
239
|
+
def __init__(self, session_id: str):
|
|
240
|
+
self.session_id = session_id
|
|
241
|
+
# Your initialization here
|
|
242
|
+
|
|
243
|
+
async def get_items(self, limit: int | None = None) -> List[dict]:
|
|
244
|
+
# Retrieve conversation history for the session
|
|
245
|
+
pass
|
|
246
|
+
|
|
247
|
+
async def add_items(self, items: List[dict]) -> None:
|
|
248
|
+
# Store new items for the session
|
|
249
|
+
pass
|
|
250
|
+
|
|
251
|
+
async def pop_item(self) -> dict | None:
|
|
252
|
+
# Remove and return the most recent item from the session
|
|
253
|
+
pass
|
|
254
|
+
|
|
255
|
+
async def clear_session(self) -> None:
|
|
256
|
+
# Clear all items for the session
|
|
257
|
+
pass
|
|
258
|
+
|
|
259
|
+
# Use your custom session
|
|
260
|
+
agent = Agent(name="Assistant")
|
|
261
|
+
result = await Runner.run(
|
|
262
|
+
agent,
|
|
263
|
+
"Hello",
|
|
264
|
+
session=MyCustomSession("my_session")
|
|
265
|
+
)
|
|
266
|
+
```
|
|
267
|
+
|
|
266
268
|
## Development (only needed if you need to edit the SDK/examples)
|
|
267
269
|
|
|
268
270
|
0. Ensure you have [`uv`](https://docs.astral.sh/uv/) installed.
|
|
@@ -284,6 +286,7 @@ make check # run tests linter and typechecker
|
|
|
284
286
|
```
|
|
285
287
|
|
|
286
288
|
Or to run them individually:
|
|
289
|
+
|
|
287
290
|
```
|
|
288
291
|
make tests # run tests
|
|
289
292
|
make mypy # run typechecker
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
search:
|
|
3
|
+
exclude: true
|
|
4
|
+
---
|
|
5
|
+
# エージェント
|
|
6
|
+
|
|
7
|
+
エージェントはアプリの中心的な構成要素です。エージェントは、instructions と tools で設定された大規模言語モデル ( LLM ) です。
|
|
8
|
+
|
|
9
|
+
## 基本設定
|
|
10
|
+
|
|
11
|
+
エージェントでよく設定するプロパティは次のとおりです。
|
|
12
|
+
|
|
13
|
+
- `name`: エージェントを識別する必須の文字列です。
|
|
14
|
+
- `instructions`: developer message(開発者メッセージ)または システムプロンプト とも呼ばれます。
|
|
15
|
+
- `model`: 使用する LLM を指定します。また、temperature や top_p などのモデル調整パラメーターを設定する `model_settings` を任意で指定できます。
|
|
16
|
+
- `tools`: エージェントがタスクを達成するために使用できる tools です。
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
from agents import Agent, ModelSettings, function_tool
|
|
20
|
+
|
|
21
|
+
@function_tool
|
|
22
|
+
def get_weather(city: str) -> str:
|
|
23
|
+
return f"The weather in {city} is sunny"
|
|
24
|
+
|
|
25
|
+
agent = Agent(
|
|
26
|
+
name="Haiku agent",
|
|
27
|
+
instructions="Always respond in haiku form",
|
|
28
|
+
model="o3-mini",
|
|
29
|
+
tools=[get_weather],
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## コンテキスト
|
|
34
|
+
|
|
35
|
+
エージェントは汎用的な `context` 型を取ります。コンテキストは依存性注入用のツールで、あなたが作成して `Runner.run()` に渡すオブジェクトです。これはすべてのエージェント、tool、handoff などに渡され、実行時に必要な依存関係や状態を格納する入れ物として機能します。コンテキストには任意の Python オブジェクトを渡せます。
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
@dataclass
|
|
39
|
+
class UserContext:
|
|
40
|
+
uid: str
|
|
41
|
+
is_pro_user: bool
|
|
42
|
+
|
|
43
|
+
async def fetch_purchases() -> list[Purchase]:
|
|
44
|
+
return ...
|
|
45
|
+
|
|
46
|
+
agent = Agent[UserContext](
|
|
47
|
+
...,
|
|
48
|
+
)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 出力タイプ
|
|
52
|
+
|
|
53
|
+
デフォルトでは、エージェントはプレーンテキスト、つまり `str` を出力します。特定の型で出力させたい場合は、`output_type` パラメーターを使用します。一般的には [Pydantic](https://docs.pydantic.dev/) オブジェクトを使うことが多いですが、Pydantic の [TypeAdapter](https://docs.pydantic.dev/latest/api/type_adapter/) でラップできる型であれば何でもサポートされています。たとえば dataclass、list、TypedDict などです。
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from pydantic import BaseModel
|
|
57
|
+
from agents import Agent
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class CalendarEvent(BaseModel):
|
|
61
|
+
name: str
|
|
62
|
+
date: str
|
|
63
|
+
participants: list[str]
|
|
64
|
+
|
|
65
|
+
agent = Agent(
|
|
66
|
+
name="Calendar extractor",
|
|
67
|
+
instructions="Extract calendar events from text",
|
|
68
|
+
output_type=CalendarEvent,
|
|
69
|
+
)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
!!! note
|
|
73
|
+
|
|
74
|
+
`output_type` を渡すと、モデルは通常のプレーンテキスト応答ではなく structured outputs を使用するよう指示されます。
|
|
75
|
+
|
|
76
|
+
## ハンドオフ
|
|
77
|
+
|
|
78
|
+
ハンドオフは、エージェントが委譲できるサブエージェントです。ハンドオフのリストを渡すと、エージェントは関連性がある場合にそれらへ委譲できます。これは、単一タスクに特化したモジュール型エージェントを編成する強力なパターンです。詳細は [ハンドオフ](handoffs.md) のドキュメントをご覧ください。
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
from agents import Agent
|
|
82
|
+
|
|
83
|
+
booking_agent = Agent(...)
|
|
84
|
+
refund_agent = Agent(...)
|
|
85
|
+
|
|
86
|
+
triage_agent = Agent(
|
|
87
|
+
name="Triage agent",
|
|
88
|
+
instructions=(
|
|
89
|
+
"Help the user with their questions."
|
|
90
|
+
"If they ask about booking, handoff to the booking agent."
|
|
91
|
+
"If they ask about refunds, handoff to the refund agent."
|
|
92
|
+
),
|
|
93
|
+
handoffs=[booking_agent, refund_agent],
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 動的 instructions
|
|
98
|
+
|
|
99
|
+
通常はエージェント作成時に instructions を渡しますが、関数を通じて動的に instructions を提供することもできます。この関数はエージェントとコンテキストを受け取り、プロンプトを返す必要があります。同期関数でも `async` 関数でも利用可能です。
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
def dynamic_instructions(
|
|
103
|
+
context: RunContextWrapper[UserContext], agent: Agent[UserContext]
|
|
104
|
+
) -> str:
|
|
105
|
+
return f"The user's name is {context.context.name}. Help them with their questions."
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
agent = Agent[UserContext](
|
|
109
|
+
name="Triage agent",
|
|
110
|
+
instructions=dynamic_instructions,
|
|
111
|
+
)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## ライフサイクルイベント (hooks)
|
|
115
|
+
|
|
116
|
+
エージェントのライフサイクルを監視したい場合があります。たとえば、イベントをログに記録したり、特定のイベント発生時にデータを事前取得したりするケースです。`hooks` プロパティを使うことでエージェントのライフサイクルにフックを追加できます。[`AgentHooks`][agents.lifecycle.AgentHooks] クラスを継承し、必要なメソッドをオーバーライドしてください。
|
|
117
|
+
|
|
118
|
+
## ガードレール
|
|
119
|
+
|
|
120
|
+
ガードレールを使うと、エージェントの実行と並行してユーザー入力に対するチェック/バリデーションを実行できます。たとえば、ユーザー入力の関連性をフィルタリングすることが可能です。詳細は [guardrails](guardrails.md) のドキュメントをご参照ください。
|
|
121
|
+
|
|
122
|
+
## エージェントのクローンとコピー
|
|
123
|
+
|
|
124
|
+
エージェントの `clone()` メソッドを使用すると、エージェントを複製し、必要に応じて任意のプロパティを変更できます。
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
pirate_agent = Agent(
|
|
128
|
+
name="Pirate",
|
|
129
|
+
instructions="Write like a pirate",
|
|
130
|
+
model="o3-mini",
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
robot_agent = pirate_agent.clone(
|
|
134
|
+
name="Robot",
|
|
135
|
+
instructions="Write like a robot",
|
|
136
|
+
)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## ツール使用の強制
|
|
140
|
+
|
|
141
|
+
tools のリストを渡しても、LLM が必ずツールを使用するわけではありません。`ModelSettings.tool_choice` を設定することでツール使用を強制できます。設定可能な値は次のとおりです。
|
|
142
|
+
|
|
143
|
+
1. `auto` : LLM がツールを使用するかどうかを判断します。
|
|
144
|
+
2. `required` : LLM にツールの使用を必須とします (どのツールを使うかは LLM が判断)。
|
|
145
|
+
3. `none` : LLM にツールを使用しないことを要求します。
|
|
146
|
+
4. 特定の文字列 (例: `my_tool`) を設定すると、そのツールの使用を必須とします。
|
|
147
|
+
|
|
148
|
+
!!! note
|
|
149
|
+
|
|
150
|
+
無限ループを防ぐため、フレームワークはツール呼び出し後に `tool_choice` を自動的に "auto" にリセットします。この挙動は [`agent.reset_tool_choice`][agents.agent.Agent.reset_tool_choice] で設定できます。無限ループが発生するのは、ツールの結果が LLM へ送られ、`tool_choice` により再びツール呼び出しが生成されるというサイクルが続くためです。
|
|
151
|
+
|
|
152
|
+
ツール呼び出し後に自動モードへ移行せず完全に処理を終了したい場合は、[`Agent.tool_use_behavior="stop_on_first_tool"`] を設定してください。これにより、ツールの出力をそのまま最終応答として使用し、追加の LLM 処理を行いません。
|