Skip to content

Commit 24d509c

Browse files
authored
middleware examples updated to return modified message passing assertion. modified the default agent reply so that it is different from the user's prompt (#3128)
1 parent ff311ee commit 24d509c

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

dotnet/sample/AutoGen.BasicSamples/CodeSnippet/MiddlewareAgentCodeSnippet.cs

+18-8
Original file line numberDiff line numberDiff line change
@@ -13,38 +13,48 @@ public class MiddlewareAgentCodeSnippet
1313
public async Task CreateMiddlewareAgentAsync()
1414
{
1515
#region create_middleware_agent_with_original_agent
16-
// Create an agent that always replies "Hello World"
17-
IAgent agent = new DefaultReplyAgent(name: "assistant", defaultReply: "Hello World");
16+
// Create an agent that always replies "Hi!"
17+
IAgent agent = new DefaultReplyAgent(name: "assistant", defaultReply: "Hi!");
1818

1919
// Create a middleware agent on top of default reply agent
2020
var middlewareAgent = new MiddlewareAgent(innerAgent: agent);
2121
middlewareAgent.Use(async (messages, options, agent, ct) =>
2222
{
2323
var lastMessage = messages.Last() as TextMessage;
24-
lastMessage.Content = $"[middleware 0] {lastMessage.Content}";
24+
if (lastMessage != null && lastMessage.Content.Contains("Hello World"))
25+
{
26+
lastMessage.Content = $"[middleware 0] {lastMessage.Content}";
27+
return lastMessage;
28+
}
29+
2530
return await agent.GenerateReplyAsync(messages, options, ct);
2631
});
2732

2833
var reply = await middlewareAgent.SendAsync("Hello World");
2934
reply.GetContent().Should().Be("[middleware 0] Hello World");
35+
reply = await middlewareAgent.SendAsync("Hello AI!");
36+
reply.GetContent().Should().Be("Hi!");
3037
#endregion create_middleware_agent_with_original_agent
3138

3239
#region register_middleware_agent
3340
middlewareAgent = agent.RegisterMiddleware(async (messages, options, agent, ct) =>
3441
{
3542
var lastMessage = messages.Last() as TextMessage;
36-
lastMessage.Content = $"[middleware 0] {lastMessage.Content}";
43+
if (lastMessage != null && lastMessage.Content.Contains("Hello World"))
44+
{
45+
lastMessage.Content = $"[middleware 0] {lastMessage.Content}";
46+
return lastMessage;
47+
}
48+
3749
return await agent.GenerateReplyAsync(messages, options, ct);
3850
});
3951
#endregion register_middleware_agent
4052

4153
#region short_circuit_middleware_agent
42-
// This middleware will short circuit the agent and return the last message directly.
54+
// This middleware will short circuit the agent and return a message directly.
4355
middlewareAgent.Use(async (messages, options, agent, ct) =>
4456
{
45-
var lastMessage = messages.Last() as TextMessage;
46-
lastMessage.Content = $"[middleware shortcut]";
47-
return lastMessage;
57+
return new TextMessage(Role.Assistant, $"[middleware shortcut]");
4858
});
4959
#endregion short_circuit_middleware_agent
5060
}

0 commit comments

Comments
 (0)