@@ -73,7 +73,7 @@ def __init__(
7373
7474 Keyword Args:
7575 project_client: An existing AIProjectClient to use. If not provided, one will be created.
76- agent_name: The name to use when creating new agents.
76+ agent_name: The name to use when creating new agents or using existing agents .
7777 agent_version: The version of the agent to use.
7878 conversation_id: Default conversation ID to use for conversations. Can be overridden by
7979 conversation_id property when making a request.
@@ -194,17 +194,21 @@ async def _get_agent_reference_or_create(
194194 """Determine which agent to use and create if needed.
195195
196196 Returns:
197- str: The agent_name to use
197+ dict[ str, str] : The agent reference to use.
198198 """
199- agent_name = self .agent_name or "UnnamedAgent"
199+ # Agent name must be explicitly provided by the user.
200+ if self .agent_name is None :
201+ raise ServiceInitializationError (
202+ "Agent name is required. Provide 'agent_name' when initializing AzureAIClient "
203+ "or 'name' when initializing ChatAgent."
204+ )
200205
201206 # If no agent_version is provided, either use latest version or create a new agent:
202207 if self .agent_version is None :
203208 # Try to use latest version if requested and agent exists
204209 if self .use_latest_version :
205210 try :
206- existing_agent = await self .project_client .agents .get (agent_name )
207- self .agent_name = existing_agent .name
211+ existing_agent = await self .project_client .agents .get (self .agent_name )
208212 self .agent_version = existing_agent .versions .latest .version
209213 return {"name" : self .agent_name , "version" : self .agent_version , "type" : "agent_reference" }
210214 except ResourceNotFoundError :
@@ -241,13 +245,12 @@ async def _get_agent_reference_or_create(
241245 args ["instructions" ] = "" .join (combined_instructions )
242246
243247 created_agent = await self .project_client .agents .create_version (
244- agent_name = agent_name , definition = PromptAgentDefinition (** args )
248+ agent_name = self . agent_name , definition = PromptAgentDefinition (** args )
245249 )
246250
247- self .agent_name = created_agent .name
248251 self .agent_version = created_agent .version
249252
250- return {"name" : agent_name , "version" : self .agent_version , "type" : "agent_reference" }
253+ return {"name" : self . agent_name , "version" : self .agent_version , "type" : "agent_reference" }
251254
252255 async def _close_client_if_needed (self ) -> None :
253256 """Close project_client session if we created it."""
@@ -276,6 +279,7 @@ def _prepare_input(self, messages: MutableSequence[ChatMessage]) -> tuple[list[C
276279 async def prepare_options (
277280 self , messages : MutableSequence [ChatMessage ], chat_options : ChatOptions
278281 ) -> dict [str , Any ]:
282+ """Take ChatOptions and create the specific options for Azure AI."""
279283 chat_options .store = bool (chat_options .store or chat_options .store is None )
280284 prepared_messages , instructions = self ._prepare_input (messages )
281285 run_options = await super ().prepare_options (prepared_messages , chat_options )
0 commit comments