diff --git a/temporalio/contrib/openai_agents/_openai_runner.py b/temporalio/contrib/openai_agents/_openai_runner.py index 6f0d74064..94a079fd5 100644 --- a/temporalio/contrib/openai_agents/_openai_runner.py +++ b/temporalio/contrib/openai_agents/_openai_runner.py @@ -1,3 +1,4 @@ +import json import typing from dataclasses import replace from typing import Any, Union @@ -13,6 +14,7 @@ TResponseInputItem, ) from agents.run import DEFAULT_AGENT_RUNNER, DEFAULT_MAX_TURNS, AgentRunner +from pydantic_core import to_json from temporalio import workflow from temporalio.contrib.openai_agents._model_parameters import ModelActivityParameters @@ -57,6 +59,11 @@ async def run( "Temporal OpenAI agent does not support on demand MCP servers." ) + # workaround for https://github.com/pydantic/pydantic/issues/9541 + # ValidatorIterator returned + input_json = to_json(input) + input = json.loads(input_json) + context = kwargs.get("context") max_turns = kwargs.get("max_turns", DEFAULT_MAX_TURNS) hooks = kwargs.get("hooks")