Let the tool calling loop stream what each round produces

This commit is contained in:
Thorsten Sommer committed 2026-09-20 09:21:10 +02:00
1 parent 459165f1be
commit d97a20d7c8
8 files changed
+182 -28

No files matched your search

@@ -1,10 +1,14 @@
namespace AIStudio.Tools.ToolCallingSystem.Harness;
/// <summary>
/// The outcome of one non-streamed round of a tool calling conversation, in a shape that no
/// longer depends on the provider API it came from.
/// The outcome of one round of a tool calling conversation, in a shape that no longer depends on
/// the provider API it came from.
/// </summary>
/// <param name="TextOutput">The text the model produced, empty when it only requested tool calls.</param>
/// <param name="TextOutput">
/// The text the model produced, empty when it only requested tool calls. The loop reads this to
/// tell an answered round from a silent one; it does not show it, because the very same text has
/// already reached the user as deltas while the round was running.
/// </param>
/// <param name="Calls">The tool calls the model requested, empty when it answered instead.</param>
/// <param name="Sources">Sources the provider itself attached, such as those of a provider-native web search.</param>
public sealed record ToolCallingRound(string TextOutput, IReadOnlyList<ToolCallingRequestedCall> Calls, IReadOnlyList<ISource> Sources);