Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
45e7dac
Remove OpenAI Agents integration
brianstrauch Sep 15, 2026
abc1236
Add OpenAI Agents migration error
brianstrauch Sep 15, 2026
e2772d4
Load standalone OpenAI Agents module
brianstrauch Sep 15, 2026
448646b
Keep contrib migration helpers private
brianstrauch Sep 15, 2026
bd81bfd
Forward OpenAI Agents extra to standalone package
brianstrauch Sep 16, 2026
4244497
Apply suggestion from @brianstrauch
brianstrauch Sep 16, 2026
c914f5c
Add OpenAI Agents migration guide
brianstrauch Sep 16, 2026
f4520ef
Merge branch 'remove-openai-agents-integration' of github.com:tempora…
brianstrauch Sep 16, 2026
4c5ed16
Recommend direct OpenAI Agents dependency
brianstrauch Sep 16, 2026
2f51542
Remove SDK upgrade from migration steps
brianstrauch Sep 16, 2026
2038407
Remove versions from migration guide
brianstrauch Sep 16, 2026
1fbd21b
Simplify OpenAI Agents migration steps
brianstrauch Sep 16, 2026
80d2407
Apply batched suggestions from code review
brianstrauch Sep 16, 2026
c7fa310
Deprecate OpenAI Agents compatibility imports
brianstrauch Sep 16, 2026
f9247d4
Merge branch 'main' into remove-openai-agents-integration
brianstrauch Sep 16, 2026
72dcc01
Lock released OpenAI Agents integration
brianstrauch Sep 16, 2026
1518f08
Address OpenAI integration review feedback
brianstrauch Sep 16, 2026
42e6d8d
Explain Temporal namespace extension
brianstrauch Sep 16, 2026
de17243
Merge main and refresh OpenAI Agents lockfile
brianstrauch Sep 30, 2026
85858e1
Fix OpenAI Agents compatibility documentation references
brianstrauch Sep 30, 2026
8c01d2f
Remove OpenAI Agents compatibility deprecations
brianstrauch Oct 1, 2026
3a3075b
Discover and forward OpenAI Agents public modules
brianstrauch Oct 1, 2026
37bdf5a
Preserve typed OpenAI Agents compatibility imports
brianstrauch Oct 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,12 @@
/temporalio/contrib/google_genai/ @temporalio/ai-sdk @temporalio/sdk
/temporalio/contrib/langgraph/ @temporalio/ai-sdk @temporalio/sdk
/temporalio/contrib/langsmith/ @temporalio/ai-sdk @temporalio/sdk
/temporalio/contrib/openai_agents/ @temporalio/ai-sdk @temporalio/sdk
/temporalio/contrib/strands/ @temporalio/ai-sdk @temporalio/sdk
/temporalio/contrib/workflow_streams/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/deepagents/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/google_adk_agents/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/google_genai/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/langgraph/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/langsmith/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/openai_agents/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/strands/ @temporalio/ai-sdk @temporalio/sdk
/tests/contrib/workflow_streams/ @temporalio/ai-sdk @temporalio/sdk
6 changes: 0 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ jobs:
- os: ubuntu-latest
python: "3.14"
docsTarget: true
openaiTestTarget: true
clippyLinter: true
- python: "3.10"
pytestExtraArgs: '--reruns 3 --only-rerun "RuntimeError: Failed validating workflow"'
Expand Down Expand Up @@ -68,11 +67,6 @@ jobs:
- if: ${{ !endsWith(matrix.os, '-arm') }}
run: poe test ${{matrix.pytestExtraArgs}} -s --workflow-environment time-skipping --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--time-skipping.xml
timeout-minutes: 10
- if: ${{ matrix.openaiTestTarget && (github.event.pull_request.head.repo.full_name == '' || github.event.pull_request.head.repo.full_name == 'temporalio/sdk-python') }}
run: poe test tests/contrib/openai_agents/test_openai.py ${{matrix.pytestExtraArgs}} -s --junit-xml=junit-xml/${{ matrix.python }}--${{ matrix.os }}--openai.xml
timeout-minutes: 10
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: "Upload junit-xml artifacts"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
if: always()
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ to include examples, links to docs, or any other relevant information.

### :boom: Breaking Changes

- The OpenAI Agents integration has moved to the independently versioned
[`temporalio-openai-agents`](https://pypi.org/project/temporalio-openai-agents/)
package. The existing `temporalio[openai-agents]` extra now installs that
package, and the old public `temporalio.contrib.openai_agents` imports
remain available at runtime and retain their static type information.
New code should depend on `temporalio-openai-agents` directly and import
`temporalio.openai_agents`.

### Fixed

### Security
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
[![PyPI](https://img.shields.io/pypi/v/temporalio.svg?style=for-the-badge)](https://pypi.org/project/temporalio)
[![MIT](https://img.shields.io/pypi/l/temporalio.svg?style=for-the-badge)](LICENSE)

**📣 News: Integration between OpenAI Agents SDK and Temporal is now in public preview. [Learn more](temporalio/contrib/openai_agents/README.md).**

[Temporal](https://temporal.io/) is a distributed, scalable, durable, and highly available orchestration engine used to
execute asynchronous, long-running business logic in a scalable and resilient way.

Expand Down
6 changes: 2 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ classifiers = [
grpc = ["grpcio>=1.48.2,<2"]
opentelemetry = ["opentelemetry-api>=1.26,<2", "opentelemetry-sdk>=1.26,<2"]
pydantic = ["pydantic>=2.0.0,<3"]
openai-agents = ["openai-agents>=0.19.2,<0.20", "mcp>=1.9.4, <2"]
openai-agents = ["temporalio-openai-agents>=1.0.0"]
google-adk = ["google-adk>=2.8.0,<3", "mcp>=1.24,<2"]
langgraph = ["langgraph>=1.1.0"]
langsmith = ["langsmith>=0.7.34,<0.13"]
Expand Down Expand Up @@ -83,12 +83,10 @@ dev = [
"toml>=0.10.2,<0.11",
"twine>=4.0.1,<5",
"maturin>=1.8.2",
"openinference-instrumentation-openai-agents>=0.1.0",
"temporalio-openai-agents>=1.0.0",
"pytest-cov>=6.1.1",
"httpx>=0.28.1",
"pytest-pretty>=1.3.0",
"openai-agents>=0.19.2,<0.20; python_version >= '3.14'",
"openai-agents[litellm]>=0.19.2,<0.20; python_version < '3.14'",
"litellm>=1.83.0",
"openinference-instrumentation-google-adk>=0.1.11",
"googleapis-common-protos>=1.75.0,<2",
Expand Down
9 changes: 9 additions & 0 deletions temporalio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@
:py:mod:`worker` to run workflows and activities.
"""

from pkgutil import extend_path as _extend_path

from .service import __version__ as __sdk_version

# After Python finds this ``temporalio`` package, it does not keep searching for
# other ``temporalio`` directories, such as one containing the separately
# installed ``temporalio-openai-agents`` package. Explicitly extend the search
# path so they can be found. Every package that provides ``temporalio/__init__.py``
# must do this: https://docs.python.org/3.14/library/pkgutil.html#pkgutil.extend_path
__path__ = _extend_path(__path__, __name__)
Comment thread
tconley1428 marked this conversation as resolved.

__version__ = __sdk_version
3 changes: 0 additions & 3 deletions temporalio/contrib/google_adk_agents/_mcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,9 +333,6 @@ def _handle_worker_failure(func: Callable) -> Callable:
state, so we re-raise as an ``ApplicationError`` of type
``"DedicatedWorkerFailure"`` for the caller to handle.

Duplicated (rather than shared) from ``openai_agents._mcp`` on purpose:
these two contribs do not currently share internal code, and importing
across them would create an unwanted dependency.
"""

@functools.wraps(func)
Expand Down
Loading
Loading