If you create an Agent with tools, and the Agent Name contains a blank space, and you invoke the streaming method, it fails with the error below.
If you don't pass tools, it works fine, even if the agent name contains a blank space.
If your AgentName does not contain a blank space, it works fine.
When not using streaming, all works fine.
So, with this code, it fails:
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureCliCredential())
.GetChatClient(deploymentName)
.CreateAIAgent(
instructions: "You are a helpful assistant",
name: "My Agent",
tools: [AIFunctionFactory.Create(GetWeather)]);
but this code works:
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureCliCredential())
.GetChatClient(deploymentName)
.CreateAIAgent(
instructions: "You are a helpful assistant",
name: "MyAgent",
tools: [AIFunctionFactory.Create(GetWeather)]);
Unhandled exception. System.ClientModel.ClientResultException: HTTP 400 (invalid_request_error: invalid_value)
Parameter: messages[2].name
Invalid 'messages[2].name': string does not match pattern. Expected a string that matches the pattern '^[^\s<|\\/>]+$'.
at Azure.AI.OpenAI.ClientPipelineExtensions.ProcessMessageAsync(ClientPipeline pipeline, PipelineMessage message, RequestOptions options)
at Azure.AI.OpenAI.Chat.AzureChatClient.CompleteChatAsync(BinaryContent content, RequestOptions options)
at OpenAI.Chat.ChatClient.<>c__DisplayClass17_0.<<CompleteChatStreamingAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at OpenAI.AsyncSseUpdateCollection`1.GetRawPagesAsync()+MoveNext()
at OpenAI.AsyncSseUpdateCollection`1.GetRawPagesAsync()+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
Guess for some reason, when using streaming, the returned response is unexpected when combining tools and agent name contains a blank space (and maybe some other special char)
Happy to help if you want me to test something.
Thanks!
If you create an Agent with tools, and the Agent Name contains a blank space, and you invoke the streaming method, it fails with the error below.
If you don't pass tools, it works fine, even if the agent name contains a blank space.
If your AgentName does not contain a blank space, it works fine.
When not using streaming, all works fine.
So, with this code, it fails:
but this code works:
Guess for some reason, when using streaming, the returned response is unexpected when combining tools and agent name contains a blank space (and maybe some other special char)
Happy to help if you want me to test something.
Thanks!