Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,13 @@ public override async ValueTask<CallToolResult> InvokeAsync(
Content = [],
StructuredContent = structuredContent,
},

string text => new()
{
Content = [new TextContentBlock { Text = text }],
// If there is structuredOutput we must stringify it, as the MCP specification requires Content to be for backwards compatibility
// but otherwise not differ
Content = [new TextContentBlock { Text = structuredContent == null ? text :
JsonSerializer.Serialize(structuredContent, AIFunction.JsonSerializerOptions.GetTypeInfo(typeof(object)))}],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just resolve the type of structuredContent itself and skip one degree of indirection?

Suggested change
JsonSerializer.Serialize(structuredContent, AIFunction.JsonSerializerOptions.GetTypeInfo(typeof(object)))}],
JsonSerializer.Serialize(structuredContent, AIFunction.JsonSerializerOptions.GetTypeInfo<JsonNode>()))}],

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just resolve the type of structuredContent itself and skip one degree of indirection?

Suggested change
JsonSerializer.Serialize(structuredContent, AIFunction.JsonSerializerOptions.GetTypeInfo(typeof(object)))}],
JsonSerializer.Serialize(structuredContent, AIFunction.JsonSerializerOptions.GetTypeInfo<JsonNode>()))}],

Good point, but this goes for the default switch case too then?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I suppose we can leave it for consistency.

StructuredContent = structuredContent,
},

Expand Down
Loading