Skip to content

.NET: Error when Streaming and agent name has a blankspace and tools are provided #1195

@luismanez

Description

@luismanez

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!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions