@@ -245,6 +245,7 @@ def __init__(
245245 mcp_server_providers : Sequence [
246246 Union ["StatelessMCPServerProvider" , "StatefulMCPServerProvider" ]
247247 ] = (),
248+ register_activities : bool = True ,
248249 ) -> None :
249250 """Initialize the OpenAI agents plugin.
250251
@@ -257,6 +258,9 @@ def __init__(
257258 Each server will be wrapped in a TemporalMCPServer if not already wrapped,
258259 and their activities will be automatically registered with the worker.
259260 The plugin manages the connection lifecycle of these servers.
261+ register_activities: Whether to register activities during the worker execution.
262+ This can be disabled on some workers to allow a separation of workflows and activities
263+ but should not be disabled on all workers, or agents will not be able to progress.
260264 """
261265 if model_params is None :
262266 model_params = ModelActivityParameters ()
@@ -277,6 +281,7 @@ def __init__(
277281 self ._model_params = model_params
278282 self ._model_provider = model_provider
279283 self ._mcp_server_providers = mcp_server_providers
284+ self ._register_activities = register_activities
280285
281286 def init_client_plugin (self , next : temporalio .client .Plugin ) -> None :
282287 """Set the next client plugin"""
@@ -338,17 +343,19 @@ def configure_worker(self, config: WorkerConfig) -> WorkerConfig:
338343 config ["interceptors" ] = list (config .get ("interceptors" ) or []) + [
339344 OpenAIAgentsTracingInterceptor ()
340345 ]
341- new_activities = [ModelActivity (self ._model_provider ).invoke_model_activity ]
342346
343- server_names = [server .name for server in self ._mcp_server_providers ]
344- if len (server_names ) != len (set (server_names )):
345- raise ValueError (
346- f"More than one mcp server registered with the same name. Please provide unique names."
347- )
347+ if self ._register_activities :
348+ new_activities = [ModelActivity (self ._model_provider ).invoke_model_activity ]
349+
350+ server_names = [server .name for server in self ._mcp_server_providers ]
351+ if len (server_names ) != len (set (server_names )):
352+ raise ValueError (
353+ f"More than one mcp server registered with the same name. Please provide unique names."
354+ )
348355
349- for mcp_server in self ._mcp_server_providers :
350- new_activities .extend (mcp_server ._get_activities ())
351- config ["activities" ] = list (config .get ("activities" ) or []) + new_activities
356+ for mcp_server in self ._mcp_server_providers :
357+ new_activities .extend (mcp_server ._get_activities ())
358+ config ["activities" ] = list (config .get ("activities" ) or []) + new_activities
352359
353360 runner = config .get ("workflow_runner" )
354361 if isinstance (runner , SandboxedWorkflowRunner ):
0 commit comments