1. 简单介绍

AI Agent在被赋予目标后,能够自主规划并执行任务以达成目标,无需使用者预先了解其具体实现路径或者操作步骤。当前AI Agent在各个领域中已经普及了。微软在2026年4月3号,发布了Microsoft Agent Framework(简称MAF) 1.0。我们可以使用这个框架来开发AI Agent,也可以定制Agentic workflow。

AI Agent可以被当作Function tool,MCP tool,Workflow executor以及A2A Endpoint来使用。下面将简单尝试一下这些转换效果。

2.具体说明

这边基于微软Microsoft Agent Framework来制作AI Agent。

假定已经制作了一个weather agent,代码如下,

var WeatherCheckerAgent = chatClient
			.AsAIAgent(
				instructions: instructions,
				name: "WeatherCheckerAgent",
				description: "An agent that checks the weather for a given location.",
				tools: [AIFunctionFactory.Create(WeatherServicePlugin.GetWeatherAsync)]
			);

2.1 Function tool

可以将AI Agent转换为Function tool。使用的方法是AIAgent.AsAIFunction(),这个其实是MAF提供的一个拓展方法,

        

代码如下,

var masterAgent = chatClient
		.AsAIAgent(
			instructions: "You are a helpful assistant",
			name: "masterAgent",
			description: "An agent that checks the weather for a given location.",
			tools: [WeatherCheckerAgent.AsAIFunction()]
		);

Console.WriteLine(await masterAgent.RunAsync("What is the weather like in Beijing?"));

执行一下,发现能正常运行,

        

2.2 MCP tool

还可以将AI Agent发布为一个MCP tool,

        

代码如下,

var weatherMcpTool = McpServerTool.Create(WeatherCheckerAgent.AsAIFunction());
var builder = Host.CreateEmptyApplicationBuilder(settings: null);
builder.Services
	.AddMcpServer()
	.WithStdioServerTransport()
	.WithTools([weatherMcpTool]);
await builder.Build().RunAsync();

其实这个是基于AI Agent能够转换为Function tool这个特点来进行的。需要引入nuget package ModelContextProtocol来进行MCP server的创建。上述代码中,通信协议使用了Stdio。最终将AI Agent通过MCP server发布出去。

2.3 Workflow executor

使用MAF可以创建出各种类型的工作流,工作流的执行节点可以是通用逻辑的executor,也可以是AI Agent,也可以是executor内部封装使用AI Agent,

MAF提供了如下隐式类型转换运算符。AddEdge需要类型为ExecutorBinding的参数。当传入AI Agent给AddEdge方法时候,内部会自动转换为ExecutorBinding类型,

        

在MAF创建的workflow中,如果节点是AI Agent,则需要发送 TurnToken 来触发 Agent执行,

下面是一个AI Agent当作workflow节点的代码,

var translationWorkflow = new WorkflowBuilder(englishAgent)
					.AddEdge(englishAgent, frenchAgent)
					.AddEdge(frenchAgent, spanishAgent)
					.AddEdge(spanishAgent, chineseAgent)
					.Build();

await using StreamingRun run = await InProcessExecution.RunStreamingAsync(translationWorkflow, new ChatMessage(ChatRole.User, "Hello World"));

await run.TrySendMessageAsync(new TurnToken(emitEvents: true));

await foreach (WorkflowEvent evt in run.WatchStreamAsync())
{
	if (evt is AgentResponseUpdateEvent executorComplete)
	{
		Console.WriteLine($"{executorComplete.ExecutorId}: {executorComplete.Data}");
	}
}

执行一下,发现能够运行成功,

        

2.4 A2A endpoint

除了上面的三个转换,其实还可以将AI Agent暴露为A2A的endpoint,这个特性是在2026年4月份刚学到的。当前A2A的版本更新到了1.0.0-preview2,

        

和之前版本0.3比较,变化挺大的。以下是其中一些接口的变化,仅供参考,

Server registration: MapA2A => AddA2AServer()
Endpoint mapping: app.MapA2A() => app.MapA2AHttpJson() / app.MapA2AJsonRpc()
Agent card: MapA2A()=> app.MapWellKnownAgentCard(card)        

这边使用1.0.0-preview2来尝试将AI Agent暴露为A2A endpoint,代码如下,

builder.Services.AddKeyedSingleton<AIAgent>("calculator-agent", (sp, _) =>
{
    var instructions = @"You are a math expert. When someone asks you a math question, please give the answer directly.";
    var calculatorAgent = ...
    return calculatorAgent;
});

builder.AddA2AServer("calculator-agent");
var app = builder.Build();
app.MapA2AJsonRpc("calculator-agent", "/calculator-agent");

app.MapWellKnownAgentCard(
	new AgentCard
   {
	  Name = "calculatorAgent",
	  Description = "An agent that good at calculating, especially math",
	  SupportedInterfaces =
    [
        new AgentInterface
        {
            Url = "http://localhost:5281/calculator-agent",
            ProtocolBinding = ProtocolBindingNames.JsonRpc,
            ProtocolVersion = "1.0",
        }
    ]
    },"/calculator-agent");

app.Run();

需要引入如下的nuget package(这样MAF就可以和A2A进行集成了),

        

尝试创建一个客户端customer,然后去使用一下calculator A2A endpoint,发现能够正常运行,

        

3.总结

本文简单介绍了一下如何将AI Agent(使用Microsoft Agent Framework创建的)转换成Function tool,MCP tool, Workflow executor以及A2A endpoint的过程。有些别的MAF中的对象能转换成AI Agent,比如可以将一个workflow转成一个AI Agent等。关于Microsoft Agent Framework的内容非常多,还需要进一步学习一下。

本文如果哪里有错误,麻烦告之,谢谢谢谢!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐