openai-agents 0.2.11__tar.gz → 0.3.1__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.11 → openai_agents-0.3.1}/.github/workflows/update-docs.yml +9 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.gitignore +2 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/Makefile +2 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/PKG-INFO +4 -2
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/agents.md +27 -27
- openai_agents-0.3.1/docs/ja/config.md +98 -0
- openai_agents-0.3.1/docs/ja/context.md +82 -0
- openai_agents-0.3.1/docs/ja/examples.md +48 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/guardrails.md +12 -12
- openai_agents-0.3.1/docs/ja/handoffs.md +118 -0
- openai_agents-0.3.1/docs/ja/index.md +58 -0
- openai_agents-0.3.1/docs/ja/mcp.md +326 -0
- openai_agents-0.3.1/docs/ja/models/index.md +192 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/models/litellm.md +26 -9
- openai_agents-0.3.1/docs/ja/multi_agent.md +41 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/quickstart.md +18 -18
- openai_agents-0.3.1/docs/ja/realtime/guide.md +176 -0
- openai_agents-0.3.1/docs/ja/realtime/quickstart.md +232 -0
- openai_agents-0.3.1/docs/ja/release.md +32 -0
- openai_agents-0.3.1/docs/ja/repl.md +23 -0
- openai_agents-0.3.1/docs/ja/results.md +56 -0
- openai_agents-0.3.1/docs/ja/running_agents.md +142 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/sessions.md +29 -29
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/streaming.md +7 -7
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/tools.md +43 -43
- openai_agents-0.3.1/docs/ja/tracing.md +153 -0
- openai_agents-0.3.1/docs/ja/usage.md +86 -0
- openai_agents-0.3.1/docs/ja/visualization.md +108 -0
- openai_agents-0.3.1/docs/ja/voice/pipeline.md +79 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ja/voice/quickstart.md +5 -5
- openai_agents-0.3.1/docs/ja/voice/tracing.md +18 -0
- openai_agents-0.3.1/docs/mcp.md +342 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/models/litellm.md +17 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/realtime/guide.md +1 -1
- openai_agents-0.3.1/docs/realtime/quickstart.md +228 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/config.md +1 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/running_agents.md +1 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/usage.md +18 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/tools.py +6 -6
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/usage_tracking.py +0 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/hosted_mcp/connectors.py +1 -1
- openai_agents-0.3.1/examples/memory/encrypted_session_example.py +109 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/model_providers/litellm_auto.py +2 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/app/README.md +8 -3
- openai_agents-0.3.1/examples/realtime/app/server.py +324 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/app/static/app.js +363 -135
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/app/static/index.html +5 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/cli/demo.py +151 -38
- {openai_agents-0.2.11 → openai_agents-0.3.1}/pyproject.toml +4 -2
- openai_agents-0.3.1/src/agents/_debug.py +28 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/_run_impl.py +34 -37
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/agent.py +18 -2
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/extensions/handoff_filters.py +2 -0
- openai_agents-0.3.1/src/agents/extensions/memory/__init__.py +42 -0
- openai_agents-0.3.1/src/agents/extensions/memory/encrypt_session.py +185 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/extensions/models/litellm_model.py +62 -10
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/function_schema.py +45 -3
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/memory/__init__.py +2 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/memory/openai_conversations_session.py +0 -3
- openai_agents-0.3.1/src/agents/memory/util.py +20 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/chatcmpl_converter.py +74 -15
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/chatcmpl_helpers.py +6 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/chatcmpl_stream_handler.py +29 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/openai_chatcompletions.py +26 -4
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/openai_responses.py +30 -4
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/__init__.py +2 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/_util.py +1 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/agent.py +7 -0
- openai_agents-0.3.1/src/agents/realtime/audio_formats.py +29 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/config.py +32 -4
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/items.py +17 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/model_events.py +2 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/model_inputs.py +15 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/openai_realtime.py +421 -130
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/session.py +167 -14
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/result.py +47 -20
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/run.py +191 -106
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tool.py +1 -1
- openai_agents-0.3.1/src/agents/tracing/processor_interface.py +142 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/spans.py +88 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/traces.py +99 -16
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/util/_json.py +19 -1
- openai_agents-0.3.1/src/agents/util/_transforms.py +21 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/input.py +5 -4
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/models/openai_stt.py +15 -8
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/conftest.py +11 -0
- openai_agents-0.3.1/tests/extensions/memory/test_encrypt_session.py +333 -0
- openai_agents-0.3.1/tests/models/test_litellm_user_agent.py +89 -0
- openai_agents-0.3.1/tests/realtime/test_audio_formats_unit.py +28 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_conversion_helpers.py +26 -23
- openai_agents-0.3.1/tests/realtime/test_ga_session_update_normalization.py +35 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_item_parsing.py +20 -20
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_openai_realtime.py +257 -6
- openai_agents-0.3.1/tests/realtime/test_openai_realtime_conversions.py +103 -0
- openai_agents-0.3.1/tests/realtime/test_playback_tracker_manual_unit.py +23 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_realtime_handoffs.py +58 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_session.py +236 -3
- openai_agents-0.3.1/tests/realtime/test_session_payload_and_formats.py +93 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_tracing.py +22 -16
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_as_tool.py +174 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_instructions_signature.py +6 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_runner.py +104 -5
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_runner_streamed.py +42 -11
- openai_agents-0.3.1/tests/test_anthropic_thinking_blocks.py +216 -0
- openai_agents-0.3.1/tests/test_debug.py +54 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_extension_filters.py +18 -1
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_function_schema.py +39 -1
- openai_agents-0.3.1/tests/test_model_payload_iterators.py +187 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_openai_chatcompletions.py +56 -1
- openai_agents-0.3.1/tests/test_openai_responses.py +65 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_session.py +55 -7
- openai_agents-0.3.1/tests/test_stream_events.py +110 -0
- openai_agents-0.3.1/tests/utils/test_json.py +32 -0
- openai_agents-0.3.1/tests/voice/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/test_input.py +10 -4
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/test_openai_stt.py +28 -15
- {openai_agents-0.2.11 → openai_agents-0.3.1}/uv.lock +59 -6
- openai_agents-0.2.11/docs/ja/config.md +0 -98
- openai_agents-0.2.11/docs/ja/context.md +0 -82
- openai_agents-0.2.11/docs/ja/examples.md +0 -49
- openai_agents-0.2.11/docs/ja/handoffs.md +0 -118
- openai_agents-0.2.11/docs/ja/index.md +0 -58
- openai_agents-0.2.11/docs/ja/mcp.md +0 -191
- openai_agents-0.2.11/docs/ja/models/index.md +0 -192
- openai_agents-0.2.11/docs/ja/multi_agent.md +0 -41
- openai_agents-0.2.11/docs/ja/realtime/guide.md +0 -176
- openai_agents-0.2.11/docs/ja/realtime/quickstart.md +0 -179
- openai_agents-0.2.11/docs/ja/release.md +0 -32
- openai_agents-0.2.11/docs/ja/repl.md +0 -23
- openai_agents-0.2.11/docs/ja/results.md +0 -56
- openai_agents-0.2.11/docs/ja/running_agents.md +0 -141
- openai_agents-0.2.11/docs/ja/tracing.md +0 -151
- openai_agents-0.2.11/docs/ja/usage.md +0 -68
- openai_agents-0.2.11/docs/ja/visualization.md +0 -108
- openai_agents-0.2.11/docs/ja/voice/pipeline.md +0 -79
- openai_agents-0.2.11/docs/ja/voice/tracing.md +0 -18
- openai_agents-0.2.11/docs/mcp.md +0 -187
- openai_agents-0.2.11/docs/realtime/quickstart.md +0 -175
- openai_agents-0.2.11/examples/realtime/app/server.py +0 -163
- openai_agents-0.2.11/src/agents/_debug.py +0 -17
- openai_agents-0.2.11/src/agents/extensions/memory/__init__.py +0 -15
- openai_agents-0.2.11/src/agents/tracing/processor_interface.py +0 -69
- openai_agents-0.2.11/src/agents/util/_transforms.py +0 -11
- openai_agents-0.2.11/tests/test_stream_events.py +0 -54
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/workflows/docs.yml +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/workflows/issues.yml +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/workflows/publish.yml +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.github/workflows/tests.yml +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.prettierrc +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.vscode/launch.json +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/.vscode/settings.json +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/AGENTS.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/CLAUDE.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/LICENSE +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/agents.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/assets/images/favicon-platform.svg +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/assets/images/graph.png +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/assets/images/mcp-tracing.jpg +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/assets/images/orchestration.png +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/assets/logo.svg +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/config.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/context.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/examples.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/guardrails.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/handoffs.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/index.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/models/index.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/multi_agent.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/quickstart.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/agent.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/agent_output.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/computer.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/exceptions.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/handoff_filters.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/handoff_prompt.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/litellm.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/memory/sqlalchemy_session.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/models/litellm_model.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/models/litellm_provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/extensions/visualization.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/function_schema.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/guardrail.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/handoffs.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/index.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/items.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/lifecycle.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/logger.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/mcp/server.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/mcp/util.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/memory/openai_conversations_session.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/memory/session.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/memory/sqlite_session.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/memory.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/model_settings.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/chatcmpl_converter.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/chatcmpl_helpers.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/chatcmpl_stream_handler.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/default_models.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/fake_id.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/interface.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/multi_provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/openai_chatcompletions.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/openai_provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/models/openai_responses.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/prompts.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/agent.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/events.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/handoffs.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/items.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/model.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/model_events.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/model_inputs.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/openai_realtime.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/runner.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/realtime/session.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/repl.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/result.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/run.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/run_context.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/stream_events.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/strict_schema.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tool.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tool_context.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/create.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/index.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/logger.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/processor_interface.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/processors.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/scope.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/setup.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/span_data.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/spans.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/traces.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/tracing/util.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/usage.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/version.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/events.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/exceptions.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/imports.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/input.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/model.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/models/openai_model_provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/models/openai_provider.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/models/openai_stt.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/models/openai_tts.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/pipeline.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/pipeline_config.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/result.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/utils.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/ref/voice/workflow.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/release.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/repl.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/results.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/scripts/generate_ref_files.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/scripts/translate_docs.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/sessions.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/streaming.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/stylesheets/extra.css +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/tools.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/tracing.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/visualization.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/voice/pipeline.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/voice/quickstart.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/docs/voice/tracing.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/agents_as_tools.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/agents_as_tools_conditional.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/deterministic.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/forcing_tool_use.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/input_guardrails.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/llm_as_a_judge.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/output_guardrails.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/parallelization.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/routing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/agent_patterns/streaming_guardrails.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/agent_lifecycle_example.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/dynamic_system_prompt.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/hello_world.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/hello_world_gpt_5.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/hello_world_gpt_oss.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/hello_world_jupyter.ipynb +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/lifecycle_example.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/local_file.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/local_image.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/media/image_bison.jpg +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/media/partial_o3-and-o4-mini-system-card.pdf +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/non_strict_output_type.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/previous_response_id.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/prompt_template.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/remote_image.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/remote_pdf.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/stream_function_call_args.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/stream_items.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/basic/stream_text.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/customer_service/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/financials_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/planner_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/risk_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/search_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/agents/writer_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/manager.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/financial_research_agent/printer.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/handoffs/message_filter.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/handoffs/message_filter_streaming.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/hosted_mcp/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/hosted_mcp/approvals.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/hosted_mcp/simple.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/filesystem_example/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/filesystem_example/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/git_example/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/git_example/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/prompt_server/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/prompt_server/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/prompt_server/server.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/sse_example/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/sse_example/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/sse_example/server.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/streamablehttp_example/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/streamablehttp_example/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/mcp/streamablehttp_example/server.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/memory/openai_session_example.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/memory/sqlalchemy_session_example.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/memory/sqlite_session_example.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/model_providers/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/model_providers/custom_example_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/model_providers/custom_example_global.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/model_providers/custom_example_provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/model_providers/litellm_provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/app/agent.py +0 -0
- /openai_agents-0.2.11/examples/realtime/twilio/__init__.py → /openai_agents-0.3.1/examples/realtime/app/static/favicon.ico +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/cli/ui.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/twilio/README.md +0 -0
- {openai_agents-0.2.11/examples/research_bot/agents → openai_agents-0.3.1/examples/realtime/twilio}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/twilio/requirements.txt +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/twilio/server.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/realtime/twilio/twilio_handler.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/reasoning_content/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/reasoning_content/gpt_oss_stream.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/reasoning_content/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/reasoning_content/runner_example.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/__init__.py +0 -0
- {openai_agents-0.2.11/examples/voice → openai_agents-0.3.1/examples/research_bot/agents}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/agents/planner_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/agents/search_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/agents/writer_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/manager.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/printer.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/sample_outputs/product_recs.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/sample_outputs/vacation.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/research_bot/sample_outputs/vacation.txt +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/tools/code_interpreter.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/tools/computer_use.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/tools/file_search.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/tools/image_generator.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/tools/web_search.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/tools/web_search_filters.py +0 -0
- {openai_agents-0.2.11/examples/voice/static → openai_agents-0.3.1/examples/voice}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/voice/static/README.md +0 -0
- {openai_agents-0.2.11/examples/voice/streamed → openai_agents-0.3.1/examples/voice/static}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/voice/static/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/voice/static/util.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/voice/streamed/README.md +0 -0
- {openai_agents-0.2.11/src/agents/extensions → openai_agents-0.3.1/examples/voice/streamed}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/voice/streamed/main.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/examples/voice/streamed/my_workflow.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/mkdocs.yml +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/_config.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/agent_output.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/computer.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/exceptions.py +0 -0
- {openai_agents-0.2.11/src/agents/extensions/models → openai_agents-0.3.1/src/agents/extensions}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/extensions/handoff_prompt.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/extensions/memory/sqlalchemy_session.py +0 -0
- {openai_agents-0.2.11/src/agents/util → openai_agents-0.3.1/src/agents/extensions/models}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/extensions/models/litellm_provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/extensions/visualization.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/guardrail.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/handoffs.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/items.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/lifecycle.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/logger.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/mcp/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/mcp/server.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/mcp/util.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/memory/session.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/memory/sqlite_session.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/model_settings.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/_openai_shared.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/default_models.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/fake_id.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/interface.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/multi_provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/models/openai_provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/prompts.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/py.typed +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/README.md +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/_default_tracker.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/events.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/handoffs.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/model.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/realtime/runner.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/repl.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/run_context.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/stream_events.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/strict_schema.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tool_context.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/create.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/logger.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/processors.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/scope.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/setup.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/span_data.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/tracing/util.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/usage.py +0 -0
- {openai_agents-0.2.11/src/agents/voice/models → openai_agents-0.3.1/src/agents/util}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/util/_coro.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/util/_error_tracing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/util/_pretty_print.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/util/_types.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/version.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/events.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/exceptions.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/imports.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/model.py +0 -0
- {openai_agents-0.2.11/tests → openai_agents-0.3.1/src/agents/voice/models}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/models/openai_model_provider.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/models/openai_tts.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/pipeline.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/pipeline_config.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/result.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/utils.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/src/agents/voice/workflow.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/README.md +0 -0
- {openai_agents-0.2.11/tests/fastapi → openai_agents-0.3.1/tests}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/extensions/memory/test_sqlalchemy_session.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/fake_model.py +0 -0
- {openai_agents-0.2.11/tests/mcp → openai_agents-0.3.1/tests/fastapi}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/fastapi/streaming_app.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/fastapi/test_streaming_context.py +0 -0
- {openai_agents-0.2.11/tests/models → openai_agents-0.3.1/tests/mcp}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/conftest.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/helpers.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_caching.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_client_session_retries.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_connect_disconnect.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_mcp_tracing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_mcp_util.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_prompt_server.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_runner_calls_mcp.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_server_errors.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/mcp/test_tool_filtering.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/model_settings/test_serialization.py +0 -0
- {openai_agents-0.2.11/tests/realtime → openai_agents-0.3.1/tests/models}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/models/conftest.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/models/test_default_models.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/models/test_kwargs_functionality.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/models/test_litellm_chatcompletions_stream.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/models/test_litellm_extra_body.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/models/test_map.py +0 -0
- {openai_agents-0.2.11/tests/voice → openai_agents-0.3.1/tests/realtime}/__init__.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_agent.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_model_events.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_playback_tracker.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/realtime/test_runner.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_clone_shallow_copy.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_config.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_hooks.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_llm_hooks.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_prompt.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_agent_tracing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_call_model_input_filter.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_call_model_input_filter_unit.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_cancel_streaming.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_computer_action.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_config.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_doc_parsing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_extra_headers.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_function_tool.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_function_tool_decorator.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_global_hooks.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_guardrails.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_handoff_tool.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_items_helpers.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_logprobs.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_max_turns.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_openai_chatcompletions_converter.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_openai_chatcompletions_stream.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_openai_responses_converter.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_output_tool.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_pretty_print.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_reasoning_content.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_repl.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_responses.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_responses_tracing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_result_cast.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_run.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_run_config.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_run_error_details.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_run_hooks.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_run_step_execution.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_run_step_processing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_session_exceptions.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_streaming_tool_call_arguments.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_strict_schema.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_tool_choice_reset.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_tool_converter.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_tool_use_behavior.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_trace_processor.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_tracing.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_tracing_errors.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_tracing_errors_streamed.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_usage.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/test_visualization.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/testing_processor.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/tracing/test_processor_api_key.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/tracing/test_set_api_key_fix.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/conftest.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/fake_models.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/helpers.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/test_openai_tts.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/test_pipeline.py +0 -0
- {openai_agents-0.2.11 → openai_agents-0.3.1}/tests/voice/test_workflow.py +0 -0
|
@@ -13,6 +13,10 @@ on:
|
|
|
13
13
|
- 'docs/**'
|
|
14
14
|
- mkdocs.yml
|
|
15
15
|
|
|
16
|
+
permissions:
|
|
17
|
+
contents: write
|
|
18
|
+
pull-requests: write
|
|
19
|
+
|
|
16
20
|
jobs:
|
|
17
21
|
update-docs:
|
|
18
22
|
if: "!contains(github.event.head_commit.message, 'Update all translated document pages')"
|
|
@@ -55,6 +59,10 @@ jobs:
|
|
|
55
59
|
with:
|
|
56
60
|
commit-message: "Update all translated document pages"
|
|
57
61
|
title: "Update all translated document pages"
|
|
58
|
-
body:
|
|
62
|
+
body: |
|
|
63
|
+
Automated update of translated documentation.
|
|
64
|
+
|
|
65
|
+
Triggered by commit: [${{ github.event.head_commit.id }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.head_commit.id }}).
|
|
66
|
+
Message: `${{ github.event.head_commit.message }}`
|
|
59
67
|
branch: update-translated-docs-${{ github.run_id }}
|
|
60
68
|
delete-branch: true
|
|
@@ -39,7 +39,8 @@ snapshots-create:
|
|
|
39
39
|
uv run pytest --inline-snapshot=create
|
|
40
40
|
|
|
41
41
|
.PHONY: old_version_tests
|
|
42
|
-
old_version_tests:
|
|
42
|
+
old_version_tests:
|
|
43
|
+
UV_PROJECT_ENVIRONMENT=.venv_39 uv sync --python 3.9 --all-extras --all-packages --group dev
|
|
43
44
|
UV_PROJECT_ENVIRONMENT=.venv_39 uv run --python 3.9 -m pytest
|
|
44
45
|
|
|
45
46
|
.PHONY: build-docs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openai-agents
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: OpenAI Agents SDK
|
|
5
5
|
Project-URL: Homepage, https://openai.github.io/openai-agents-python/
|
|
6
6
|
Project-URL: Repository, https://github.com/openai/openai-agents-python
|
|
@@ -21,11 +21,13 @@ Classifier: Typing :: Typed
|
|
|
21
21
|
Requires-Python: >=3.9
|
|
22
22
|
Requires-Dist: griffe<2,>=1.5.6
|
|
23
23
|
Requires-Dist: mcp<2,>=1.11.0; python_version >= '3.10'
|
|
24
|
-
Requires-Dist: openai<2,>=1.
|
|
24
|
+
Requires-Dist: openai<2,>=1.107.1
|
|
25
25
|
Requires-Dist: pydantic<3,>=2.10
|
|
26
26
|
Requires-Dist: requests<3,>=2.0
|
|
27
27
|
Requires-Dist: types-requests<3,>=2.0
|
|
28
28
|
Requires-Dist: typing-extensions<5,>=4.12.2
|
|
29
|
+
Provides-Extra: encrypt
|
|
30
|
+
Requires-Dist: cryptography<46,>=45.0; extra == 'encrypt'
|
|
29
31
|
Provides-Extra: litellm
|
|
30
32
|
Requires-Dist: litellm<2,>=1.67.4.post1; extra == 'litellm'
|
|
31
33
|
Provides-Extra: realtime
|
|
@@ -4,16 +4,16 @@ search:
|
|
|
4
4
|
---
|
|
5
5
|
# エージェント
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
エージェントはアプリの中核となる構成要素です。エージェントは、instructions とツールで構成された大規模言語モデル ( LLM ) です。
|
|
8
8
|
|
|
9
9
|
## 基本設定
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
最も一般的に設定するエージェントのプロパティは次のとおりです。
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
13
|
+
- `name`: エージェントを識別する必須の文字列です。
|
|
14
|
+
- `instructions`: developer メッセージまたは system prompt とも呼ばれます。
|
|
15
|
+
- `model`: 使用する LLM と、temperature、top_p などのモデル調整パラメーターを構成する任意の `model_settings`。
|
|
16
|
+
- `tools`: エージェントがタスク達成のために使用できるツールです。
|
|
17
17
|
|
|
18
18
|
```python
|
|
19
19
|
from agents import Agent, ModelSettings, function_tool
|
|
@@ -33,7 +33,7 @@ agent = Agent(
|
|
|
33
33
|
|
|
34
34
|
## コンテキスト
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
エージェントは `context` 型に対してジェネリックです。コンテキストは依存性注入のためのツールで、あなたが作成して `Runner.run()` に渡すオブジェクトです。これはすべてのエージェント、ツール、ハンドオフなどに渡され、エージェントの実行における依存関係と状態の詰め合わせとして機能します。任意の Python オブジェクトをコンテキストとして提供できます。
|
|
37
37
|
|
|
38
38
|
```python
|
|
39
39
|
@dataclass
|
|
@@ -52,7 +52,7 @@ agent = Agent[UserContext](
|
|
|
52
52
|
|
|
53
53
|
## 出力タイプ
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
デフォルトでは、エージェントはプレーンテキスト (すなわち `str`) を出力します。特定の型の出力をエージェントに生成させたい場合は、`output_type` パラメーターを使用できます。一般的な選択肢は [Pydantic](https://docs.pydantic.dev/) オブジェクトを使うことですが、Pydantic の [TypeAdapter](https://docs.pydantic.dev/latest/api/type_adapter/) でラップできる任意の型をサポートします—dataclasses、list、TypedDict など。
|
|
56
56
|
|
|
57
57
|
```python
|
|
58
58
|
from pydantic import BaseModel
|
|
@@ -75,18 +75,18 @@ agent = Agent(
|
|
|
75
75
|
|
|
76
76
|
`output_type` を渡すと、モデルは通常のプレーンテキスト応答ではなく [structured outputs](https://platform.openai.com/docs/guides/structured-outputs) を使用するよう指示されます。
|
|
77
77
|
|
|
78
|
-
##
|
|
78
|
+
## マルチエージェント システムの設計パターン
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
マルチエージェント システムを設計する方法は多岐にわたりますが、広く適用できるパターンとして次の 2 つがよく見られます。
|
|
81
81
|
|
|
82
|
-
1. マネージャー(ツールとしてのエージェント):
|
|
83
|
-
2. ハンドオフ:
|
|
82
|
+
1. マネージャー(ツールとしてのエージェント): 中央のマネージャー/オーケストレーターが、ツールとして公開された特化型サブエージェントを呼び出し、会話の制御を保持します。
|
|
83
|
+
2. ハンドオフ: 対等なエージェント間で、会話を引き継ぐ特化型エージェントに制御をハンドオフします。これは分散型です。
|
|
84
84
|
|
|
85
85
|
詳細は [エージェント構築の実践ガイド](https://cdn.openai.com/business-guides-and-resources/a-practical-guide-to-building-agents.pdf) を参照してください。
|
|
86
86
|
|
|
87
87
|
### マネージャー(ツールとしてのエージェント)
|
|
88
88
|
|
|
89
|
-
`customer_facing_agent`
|
|
89
|
+
`customer_facing_agent` はすべてのユーザー対応を行い、ツールとして公開された特化型サブエージェントを呼び出します。詳しくは [ツール](tools.md#agents-as-tools) のドキュメントを参照してください。
|
|
90
90
|
|
|
91
91
|
```python
|
|
92
92
|
from agents import Agent
|
|
@@ -115,7 +115,7 @@ customer_facing_agent = Agent(
|
|
|
115
115
|
|
|
116
116
|
### ハンドオフ
|
|
117
117
|
|
|
118
|
-
|
|
118
|
+
ハンドオフは、エージェントが委任できるサブエージェントです。ハンドオフが発生すると、委任先のエージェントは会話履歴を受け取り、会話を引き継ぎます。このパターンにより、単一のタスクに秀でたモジュール型・特化型エージェントが可能になります。詳しくは [ハンドオフ](handoffs.md) のドキュメントを参照してください。
|
|
119
119
|
|
|
120
120
|
```python
|
|
121
121
|
from agents import Agent
|
|
@@ -136,7 +136,7 @@ triage_agent = Agent(
|
|
|
136
136
|
|
|
137
137
|
## 動的 instructions
|
|
138
138
|
|
|
139
|
-
|
|
139
|
+
多くの場合、エージェント作成時に instructions を指定できますが、関数を介して動的な instructions を提供することもできます。この関数はエージェントとコンテキストを受け取り、プロンプトを返す必要があります。通常の関数と `async` 関数のどちらも使用できます。
|
|
140
140
|
|
|
141
141
|
```python
|
|
142
142
|
def dynamic_instructions(
|
|
@@ -153,15 +153,15 @@ agent = Agent[UserContext](
|
|
|
153
153
|
|
|
154
154
|
## ライフサイクルイベント(フック)
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
場合によっては、エージェントのライフサイクルを観察したいことがあります。たとえば、イベントのログ記録や、特定のイベント発生時にデータを事前取得したい場合です。`hooks` プロパティでエージェントのライフサイクルにフックできます。[`AgentHooks`][agents.lifecycle.AgentHooks] クラスをサブクラス化し、関心のあるメソッドをオーバーライドしてください。
|
|
157
157
|
|
|
158
158
|
## ガードレール
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
ガードレールにより、エージェントの実行と並行してユーザー入力に対するチェック/検証を行い、エージェントの出力が生成された後にもチェックを実行できます。たとえば、ユーザー入力とエージェント出力の関連性をスクリーニングできます。詳しくは [ガードレール](guardrails.md) のドキュメントを参照してください。
|
|
161
161
|
|
|
162
162
|
## エージェントのクローン/コピー
|
|
163
163
|
|
|
164
|
-
エージェントの `clone()`
|
|
164
|
+
エージェントの `clone()` メソッドを使用すると、エージェントを複製し、任意のプロパティを変更できます。
|
|
165
165
|
|
|
166
166
|
```python
|
|
167
167
|
pirate_agent = Agent(
|
|
@@ -178,12 +178,12 @@ robot_agent = pirate_agent.clone(
|
|
|
178
178
|
|
|
179
179
|
## ツール使用の強制
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
ツールのリストを渡しても、LLM が必ずツールを使うとは限りません。[`ModelSettings.tool_choice`][agents.model_settings.ModelSettings.tool_choice] を設定してツール使用を強制できます。有効な値は次のとおりです。
|
|
182
182
|
|
|
183
|
-
1. `auto`: LLM
|
|
184
|
-
2. `required`: LLM
|
|
183
|
+
1. `auto`: LLM にツールを使うかどうかを判断させます。
|
|
184
|
+
2. `required`: LLM にツールの使用を要求します(どのツールを使うかは賢く判断できます)。
|
|
185
185
|
3. `none`: LLM にツールを使用しないことを要求します。
|
|
186
|
-
4. 特定の文字列(例: `my_tool
|
|
186
|
+
4. 特定の文字列(例: `my_tool`)を設定すると、その特定のツールを LLM に使用させます。
|
|
187
187
|
|
|
188
188
|
```python
|
|
189
189
|
from agents import Agent, Runner, function_tool, ModelSettings
|
|
@@ -205,8 +205,8 @@ agent = Agent(
|
|
|
205
205
|
|
|
206
206
|
`Agent` の `tool_use_behavior` パラメーターは、ツール出力の扱いを制御します。
|
|
207
207
|
|
|
208
|
-
- `"run_llm_again"`:
|
|
209
|
-
- `"stop_on_first_tool"`:
|
|
208
|
+
- `"run_llm_again"`: デフォルト。ツールを実行し、その結果を LLM が処理して最終応答を生成します。
|
|
209
|
+
- `"stop_on_first_tool"`: 最初のツール呼び出しの出力を、その後の LLM 処理なしで最終応答として使用します。
|
|
210
210
|
|
|
211
211
|
```python
|
|
212
212
|
from agents import Agent, Runner, function_tool, ModelSettings
|
|
@@ -224,7 +224,7 @@ agent = Agent(
|
|
|
224
224
|
)
|
|
225
225
|
```
|
|
226
226
|
|
|
227
|
-
- `StopAtTools(stop_at_tool_names=[...])`:
|
|
227
|
+
- `StopAtTools(stop_at_tool_names=[...])`: 指定したいずれかのツールが呼び出されたら停止し、その出力を最終応答として使用します。
|
|
228
228
|
|
|
229
229
|
```python
|
|
230
230
|
from agents import Agent, Runner, function_tool
|
|
@@ -248,7 +248,7 @@ agent = Agent(
|
|
|
248
248
|
)
|
|
249
249
|
```
|
|
250
250
|
|
|
251
|
-
- `ToolsToFinalOutputFunction`: ツール結果を処理し、停止するか LLM
|
|
251
|
+
- `ToolsToFinalOutputFunction`: ツール結果を処理し、停止するか LLM を続行するかを判断するカスタム関数です。
|
|
252
252
|
|
|
253
253
|
```python
|
|
254
254
|
from agents import Agent, Runner, function_tool, FunctionToolResult, RunContextWrapper
|
|
@@ -286,4 +286,4 @@ agent = Agent(
|
|
|
286
286
|
|
|
287
287
|
!!! note
|
|
288
288
|
|
|
289
|
-
無限ループを防ぐため、フレームワークはツール呼び出し後に `tool_choice` を自動的に "auto" にリセットします。この挙動は [`agent.reset_tool_choice`][agents.agent.Agent.reset_tool_choice]
|
|
289
|
+
無限ループを防ぐため、フレームワークはツール呼び出し後に `tool_choice` を自動的に "auto" にリセットします。この挙動は [`agent.reset_tool_choice`][agents.agent.Agent.reset_tool_choice] で設定可能です。無限ループは、ツール結果が LLM に送られ、`tool_choice` のために LLM が再びツール呼び出しを生成し続けることによって発生します。
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
search:
|
|
3
|
+
exclude: true
|
|
4
|
+
---
|
|
5
|
+
# SDK の設定
|
|
6
|
+
|
|
7
|
+
## API キーとクライアント
|
|
8
|
+
|
|
9
|
+
デフォルトでは、SDK はインポートされた直後から LLM リクエストと トレーシング のために `OPENAI_API_KEY` 環境変数を探します。アプリ起動前にその環境変数を設定できない場合は、[デフォルトの OpenAI キーを設定する (set_default_openai_key)][agents.set_default_openai_key] 関数を使用してキーを設定できます。
|
|
10
|
+
|
|
11
|
+
```python
|
|
12
|
+
from agents import set_default_openai_key
|
|
13
|
+
|
|
14
|
+
set_default_openai_key("sk-...")
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
また、使用する OpenAI クライアントを設定することもできます。デフォルトでは、SDK は環境変数または上記で設定したデフォルトキーから API キーを使用して `AsyncOpenAI` インスタンスを作成します。これを変更するには、[デフォルトの OpenAI クライアントを設定する (set_default_openai_client)][agents.set_default_openai_client] 関数を使用します。
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
from openai import AsyncOpenAI
|
|
21
|
+
from agents import set_default_openai_client
|
|
22
|
+
|
|
23
|
+
custom_client = AsyncOpenAI(base_url="...", api_key="...")
|
|
24
|
+
set_default_openai_client(custom_client)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
最後に、使用する OpenAI API をカスタマイズすることもできます。デフォルトでは、OpenAI Responses API を使用します。これを上書きして Chat Completions API を使用するには、[デフォルトの OpenAI API を設定する (set_default_openai_api)][agents.set_default_openai_api] 関数を使用します。
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
from agents import set_default_openai_api
|
|
31
|
+
|
|
32
|
+
set_default_openai_api("chat_completions")
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## トレーシング
|
|
36
|
+
|
|
37
|
+
トレーシング はデフォルトで有効です。デフォルトでは、上記のセクションの OpenAI API キー(つまり、環境変数または設定したデフォルトキー)を使用します。トレーシング に使用する API キーを個別に設定するには、[`set_tracing_export_api_key`][agents.set_tracing_export_api_key] 関数を使用します。
|
|
38
|
+
|
|
39
|
+
```python
|
|
40
|
+
from agents import set_tracing_export_api_key
|
|
41
|
+
|
|
42
|
+
set_tracing_export_api_key("sk-...")
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
[`set_tracing_disabled()`][agents.set_tracing_disabled] 関数を使用して、トレーシング を完全に無効化することもできます。
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
from agents import set_tracing_disabled
|
|
49
|
+
|
|
50
|
+
set_tracing_disabled(True)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## デバッグロギング
|
|
54
|
+
|
|
55
|
+
SDK にはハンドラーが設定されていない 2 つの Python ロガーがあります。デフォルトでは、これは警告とエラーが `stdout` に送られ、その他のログは抑制されることを意味します。
|
|
56
|
+
|
|
57
|
+
詳細なログ出力を有効にするには、[`enable_verbose_stdout_logging()`][agents.enable_verbose_stdout_logging] 関数を使用します。
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
from agents import enable_verbose_stdout_logging
|
|
61
|
+
|
|
62
|
+
enable_verbose_stdout_logging()
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
あるいは、ハンドラー、フィルター、フォーマッターなどを追加してログをカスタマイズできます。詳細は [Python logging ガイド](https://docs.python.org/3/howto/logging.html)をご覧ください。
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
import logging
|
|
69
|
+
|
|
70
|
+
logger = logging.getLogger("openai.agents") # or openai.agents.tracing for the Tracing logger
|
|
71
|
+
|
|
72
|
+
# To make all logs show up
|
|
73
|
+
logger.setLevel(logging.DEBUG)
|
|
74
|
+
# To make info and above show up
|
|
75
|
+
logger.setLevel(logging.INFO)
|
|
76
|
+
# To make warning and above show up
|
|
77
|
+
logger.setLevel(logging.WARNING)
|
|
78
|
+
# etc
|
|
79
|
+
|
|
80
|
+
# You can customize this as needed, but this will output to `stderr` by default
|
|
81
|
+
logger.addHandler(logging.StreamHandler())
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### ログ内の機微情報
|
|
85
|
+
|
|
86
|
+
一部のログには機微情報(たとえば ユーザー データ)が含まれる場合があります。これらのデータがログに出力されないようにするには、次の環境変数を設定します。
|
|
87
|
+
|
|
88
|
+
LLM の入力と出力のロギングを無効にするには:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
export OPENAI_AGENTS_DONT_LOG_MODEL_DATA=1
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
ツールの入力と出力のロギングを無効にするには:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
export OPENAI_AGENTS_DONT_LOG_TOOL_DATA=1
|
|
98
|
+
```
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
search:
|
|
3
|
+
exclude: true
|
|
4
|
+
---
|
|
5
|
+
# コンテキスト管理
|
|
6
|
+
|
|
7
|
+
コンテキストという用語には複数の意味があります。ここでは主に次の 2 つの種類のコンテキストを扱います。
|
|
8
|
+
|
|
9
|
+
1. コードからローカルに参照できるコンテキスト: ツール関数の実行時、`on_handoff` のようなコールバック、ライフサイクルフックなどで必要となるデータや依存関係です。
|
|
10
|
+
2. LLM に提供されるコンテキスト: これは、応答を生成する際に LLM が参照できるデータです。
|
|
11
|
+
|
|
12
|
+
## ローカルコンテキスト
|
|
13
|
+
|
|
14
|
+
これは [`RunContextWrapper`][agents.run_context.RunContextWrapper] クラスと、その中の [`context`][agents.run_context.RunContextWrapper.context] プロパティによって表現されます。動作の流れは次のとおりです。
|
|
15
|
+
|
|
16
|
+
1. 任意の Python オブジェクトを作成します。一般的には dataclass や Pydantic オブジェクトを使います。
|
|
17
|
+
2. そのオブジェクトを各種の実行メソッド(例: `Runner.run(..., **context=whatever**)`)に渡します。
|
|
18
|
+
3. すべてのツール呼び出しやライフサイクルフックなどには、`RunContextWrapper[T]` というラッパーオブジェクトが渡されます。ここで `T` はコンテキストオブジェクトの型で、`wrapper.context` を通じてアクセスできます。
|
|
19
|
+
|
|
20
|
+
最も **重要** な点: 特定のエージェント実行に関わるすべてのエージェント、ツール関数、ライフサイクルなどは、同じ型のコンテキストを使用しなければなりません。
|
|
21
|
+
|
|
22
|
+
コンテキストは次のような用途に使えます:
|
|
23
|
+
|
|
24
|
+
- 実行時の状況データ(例: ユーザー名/ UID やユーザーに関するその他の情報)
|
|
25
|
+
- 依存関係(例: ロガーオブジェクト、データフェッチャーなど)
|
|
26
|
+
- ヘルパー関数
|
|
27
|
+
|
|
28
|
+
!!! danger "注意"
|
|
29
|
+
|
|
30
|
+
コンテキストオブジェクトは LLM に送信されません。これは純粋にローカルなオブジェクトで、読み書きやメソッド呼び出しが可能です。
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
import asyncio
|
|
34
|
+
from dataclasses import dataclass
|
|
35
|
+
|
|
36
|
+
from agents import Agent, RunContextWrapper, Runner, function_tool
|
|
37
|
+
|
|
38
|
+
@dataclass
|
|
39
|
+
class UserInfo: # (1)!
|
|
40
|
+
name: str
|
|
41
|
+
uid: int
|
|
42
|
+
|
|
43
|
+
@function_tool
|
|
44
|
+
async def fetch_user_age(wrapper: RunContextWrapper[UserInfo]) -> str: # (2)!
|
|
45
|
+
"""Fetch the age of the user. Call this function to get user's age information."""
|
|
46
|
+
return f"The user {wrapper.context.name} is 47 years old"
|
|
47
|
+
|
|
48
|
+
async def main():
|
|
49
|
+
user_info = UserInfo(name="John", uid=123)
|
|
50
|
+
|
|
51
|
+
agent = Agent[UserInfo]( # (3)!
|
|
52
|
+
name="Assistant",
|
|
53
|
+
tools=[fetch_user_age],
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
result = await Runner.run( # (4)!
|
|
57
|
+
starting_agent=agent,
|
|
58
|
+
input="What is the age of the user?",
|
|
59
|
+
context=user_info,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
print(result.final_output) # (5)!
|
|
63
|
+
# The user John is 47 years old.
|
|
64
|
+
|
|
65
|
+
if __name__ == "__main__":
|
|
66
|
+
asyncio.run(main())
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
1. これはコンテキストオブジェクトです。ここでは dataclass を使っていますが、任意の型を使用できます。
|
|
70
|
+
2. これはツールです。`RunContextWrapper[UserInfo]` を受け取り、実装はコンテキストから読み取ります。
|
|
71
|
+
3. 型チェッカーでエラーを検出できるように、エージェントにジェネリック `UserInfo` を付与しています(例えば、異なるコンテキスト型を受け取るツールを渡そうとした場合など)。
|
|
72
|
+
4. コンテキストは `run` 関数に渡されます。
|
|
73
|
+
5. エージェントはツールを正しく呼び出し、年齢を取得します。
|
|
74
|
+
|
|
75
|
+
## エージェント/ LLM のコンテキスト
|
|
76
|
+
|
|
77
|
+
LLM が呼び出されるとき、参照できるのは会話履歴に含まれるデータのみです。つまり、LLM に新しいデータを利用させたい場合は、その履歴に含められる形で提供する必要があります。方法はいくつかあります。
|
|
78
|
+
|
|
79
|
+
1. エージェントの `instructions` に追加します。これは「システムプロンプト」または「開発者メッセージ」とも呼ばれます。システムプロンプトは静的な文字列でも、コンテキストを受け取って文字列を出力する動的な関数でも構いません。常に有用な情報(例: ユーザーの名前や現在の日付)に適した手法です。
|
|
80
|
+
2. `Runner.run` を呼び出す際の `input` に追加します。これは `instructions` の手法に似ていますが、[指揮系統](https://cdn.openai.com/spec/model-spec-2024-05-08.html#follow-the-chain-of-command)の下位にメッセージを配置できます。
|
|
81
|
+
3. 関数ツール経由で公開します。これはオンデマンドのコンテキストに有用で、LLM が必要になったタイミングでツールを呼び出してデータを取得できます。
|
|
82
|
+
4. リトリーバルまたは Web 検索を使用します。これらは、ファイルやデータベース(リトリーバル)、あるいは Web(Web 検索)から関連データを取得できる特別なツールです。関連するコンテキストデータに基づいて応答に根拠付けを行うのに有用です。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
search:
|
|
3
|
+
exclude: true
|
|
4
|
+
---
|
|
5
|
+
# コード例
|
|
6
|
+
|
|
7
|
+
[repo](https://github.com/openai/openai-agents-python/tree/main/examples) の コード例 セクションで、SDK のさまざまなサンプル実装をご覧ください。これらのコード例は、異なるパターンや機能を示す複数の カテゴリー に整理されています。
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## カテゴリー
|
|
11
|
+
|
|
12
|
+
- **[agent_patterns](https://github.com/openai/openai-agents-python/tree/main/examples/agent_patterns):**
|
|
13
|
+
このカテゴリーの例では、次のような一般的な エージェント の設計パターンを示します。
|
|
14
|
+
|
|
15
|
+
- 決定的なワークフロー
|
|
16
|
+
- ツールとしての エージェント
|
|
17
|
+
- エージェント の並列実行
|
|
18
|
+
|
|
19
|
+
- **[basic](https://github.com/openai/openai-agents-python/tree/main/examples/basic):**
|
|
20
|
+
このカテゴリーの例では、SDK の基礎的な機能を紹介します。
|
|
21
|
+
|
|
22
|
+
- 動的な システムプロンプト
|
|
23
|
+
- ストリーミング 出力
|
|
24
|
+
- ライフサイクルイベント
|
|
25
|
+
|
|
26
|
+
- **[ツールのコード例](https://github.com/openai/openai-agents-python/tree/main/examples/tools):**
|
|
27
|
+
Web 検索 や ファイル検索 といった OpenAI がホストするツール の実装方法と、それらを エージェント に統合する方法を学べます。
|
|
28
|
+
|
|
29
|
+
- **[モデルプロバイダー](https://github.com/openai/openai-agents-python/tree/main/examples/model_providers):**
|
|
30
|
+
SDK で OpenAI 以外のモデルを使う方法を紹介します。
|
|
31
|
+
|
|
32
|
+
- **[ハンドオフ](https://github.com/openai/openai-agents-python/tree/main/examples/handoffs):**
|
|
33
|
+
エージェント の ハンドオフ の実践的な例をご覧ください。
|
|
34
|
+
|
|
35
|
+
- **[mcp](https://github.com/openai/openai-agents-python/tree/main/examples/mcp):**
|
|
36
|
+
MCP で エージェント を構築する方法を学べます。
|
|
37
|
+
|
|
38
|
+
- **[customer_service](https://github.com/openai/openai-agents-python/tree/main/examples/customer_service)** と **[research_bot](https://github.com/openai/openai-agents-python/tree/main/examples/research_bot):**
|
|
39
|
+
より作り込まれた、実運用に近い例を 2 つ紹介します。
|
|
40
|
+
|
|
41
|
+
- **customer_service**: 航空会社向けのカスタマーサービス システムの例。
|
|
42
|
+
- **research_bot**: シンプルな ディープリサーチ のクローン。
|
|
43
|
+
|
|
44
|
+
- **[voice](https://github.com/openai/openai-agents-python/tree/main/examples/voice):**
|
|
45
|
+
TTS と STT モデルを用いた音声 エージェント の例。
|
|
46
|
+
|
|
47
|
+
- **[realtime](https://github.com/openai/openai-agents-python/tree/main/examples/realtime):**
|
|
48
|
+
SDK を使って リアルタイム 体験を構築する方法の例。
|
|
@@ -4,44 +4,44 @@ search:
|
|
|
4
4
|
---
|
|
5
5
|
# ガードレール
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
ガードレールはエージェントと _並列_ に実行され、ユーザー入力のチェックと検証を行います。たとえば、顧客対応に非常に賢い(そのため遅く/高価な)モデルを使うエージェントがあるとします。悪意のあるユーザーがそのモデルに数学の宿題を手伝わせるよう依頼するのは避けたいはずです。そこで、速く/安価なモデルでガードレールを走らせます。ガードレールが不正利用を検出した場合、即座にエラーを発生させ、高価なモデルの実行を止め、時間やコストを節約できます。
|
|
8
8
|
|
|
9
9
|
ガードレールには 2 種類あります:
|
|
10
10
|
|
|
11
11
|
1. 入力ガードレールは最初のユーザー入力に対して実行されます
|
|
12
|
-
2.
|
|
12
|
+
2. 出力ガードレールは最終的なエージェントの出力に対して実行されます
|
|
13
13
|
|
|
14
14
|
## 入力ガードレール
|
|
15
15
|
|
|
16
16
|
入力ガードレールは 3 ステップで実行されます:
|
|
17
17
|
|
|
18
|
-
1.
|
|
19
|
-
2. 次に、ガードレール関数が実行され、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput]
|
|
20
|
-
3. 最後に、[`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が true かを確認します。true
|
|
18
|
+
1. まず、ガードレールはエージェントに渡されたものと同じ入力を受け取ります。
|
|
19
|
+
2. 次に、ガードレール関数が実行され、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を生成し、これが [`InputGuardrailResult`][agents.guardrail.InputGuardrailResult] にラップされます。
|
|
20
|
+
3. 最後に、[`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が true かを確認します。true の場合は [`InputGuardrailTripwireTriggered`][agents.exceptions.InputGuardrailTripwireTriggered] 例外が発生し、ユーザーへの適切な応答や例外処理が可能になります。
|
|
21
21
|
|
|
22
22
|
!!! Note
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
入力ガードレールはユーザー入力に対して実行されることを意図しているため、エージェントのガードレールはそのエージェントが「最初の」エージェントの場合にのみ実行されます。なぜ `guardrails` プロパティがエージェント側にあり、`Runner.run` に渡されないのかと疑問に思うかもしれません。これは、ガードレールが実際のエージェントに密接に関連する傾向があるためです。エージェントごとに異なるガードレールを実行するため、コードを同じ場所に置くことで可読性が向上します。
|
|
25
25
|
|
|
26
26
|
## 出力ガードレール
|
|
27
27
|
|
|
28
28
|
出力ガードレールは 3 ステップで実行されます:
|
|
29
29
|
|
|
30
30
|
1. まず、ガードレールはエージェントが生成した出力を受け取ります。
|
|
31
|
-
2. 次に、ガードレール関数が実行され、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput]
|
|
32
|
-
3. 最後に、[`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が true かを確認します。true
|
|
31
|
+
2. 次に、ガードレール関数が実行され、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を生成し、これが [`OutputGuardrailResult`][agents.guardrail.OutputGuardrailResult] にラップされます。
|
|
32
|
+
3. 最後に、[`.tripwire_triggered`][agents.guardrail.GuardrailFunctionOutput.tripwire_triggered] が true かを確認します。true の場合は [`OutputGuardrailTripwireTriggered`][agents.exceptions.OutputGuardrailTripwireTriggered] 例外が発生し、ユーザーへの適切な応答や例外処理が可能になります。
|
|
33
33
|
|
|
34
34
|
!!! Note
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
出力ガードレールは最終的なエージェントの出力に対して実行されることを意図しているため、エージェントのガードレールはそのエージェントが「最後の」エージェントの場合にのみ実行されます。入力ガードレールと同様に、ガードレールは実際のエージェントに関連する傾向があるため、コードを同じ場所に置くことで可読性が向上します。
|
|
37
37
|
|
|
38
38
|
## トリップワイヤー
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
入力または出力がガードレールに失敗した場合、ガードレールはトリップワイヤーでそれを示せます。トリップワイヤーが作動したガードレールを検出した時点で、直ちに `{Input,Output}GuardrailTripwireTriggered` 例外を発生させ、エージェントの実行を停止します。
|
|
41
41
|
|
|
42
42
|
## ガードレールの実装
|
|
43
43
|
|
|
44
|
-
入力を受け取り、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput]
|
|
44
|
+
入力を受け取り、[`GuardrailFunctionOutput`][agents.guardrail.GuardrailFunctionOutput] を返す関数を用意する必要があります。次の例では、その裏でエージェントを実行して実現します。
|
|
45
45
|
|
|
46
46
|
```python
|
|
47
47
|
from pydantic import BaseModel
|
|
@@ -96,7 +96,7 @@ async def main():
|
|
|
96
96
|
|
|
97
97
|
1. このエージェントをガードレール関数内で使用します。
|
|
98
98
|
2. これはエージェントの入力/コンテキストを受け取り、結果を返すガードレール関数です。
|
|
99
|
-
3.
|
|
99
|
+
3. ガードレール結果に追加情報を含められます。
|
|
100
100
|
4. これはワークフローを定義する実際のエージェントです。
|
|
101
101
|
|
|
102
102
|
出力ガードレールも同様です。
|