摘要:大模型Agent相信很多技术小伙伴已经听得耳朵起茧了吧,虽然之前爆火的Manus只是“昙花一现”,但Agent肯定是后续大模型真正干实活的关键,也就是不限于人工一对一操作的那种,下面是Agent的关键图信息:
大模型Agent相信很多技术小伙伴已经听得耳朵起茧了吧,虽然之前爆火的Manus只是“昙花一现”,但Agent肯定是后续大模型真正干实活的关键,也就是不限于人工一对一操作的那种,下面是Agent的关键图信息:
所谓Agent,简单理解为代理,就是大模型对自然语言的文本信息的处理后,配合大模型调用一些工具进行对应业务的处理,但也不仅仅是调用工具这么简单,如上图,包含Memory、Planning等,但今天我们不细说Agent,而是先从一个小好奇点开始:如何让大模型调用工具呢?之前很多大模型都支持Function Calling的方式,但很多标准也不太一样,对于后续工具的开发和维护又是一个难题,所以最近爆火的MCP(模型上下文协议)就出现了,统一标准,大模型调用也简单,开发者也不用愁兼容各种调用标准。
大模型这么牛,为什么还要调用工具呢?
简单理解:大模型只是懂的多,很多场景是根据具体业务具体处理,还有实时性限制,所以有必要针对不同的情况调用不同的业务工具进行处理。
MCP(模型上下文协议)是一种开放协议,它就像AI世界的USB-C接口,让大语言模型(LLM)能像插U盘一样,“即插即用”地连接数据库、API、本地文件甚至硬件设备,这样就能真正的去干活啦,比如:提交代码、操作文件、下单等等,不用手动编排流程,而是释放双手自动的干;MCP是由Anthropic提出,短短几个月就引发众多关注,节奏必须是要跟上的。
主要组成部分如上图,主要分为三部分:
1. MCP Host— LLM 管理连接的应用程序(例如 Cursor、Claude等);
2. MCP 客户端— 与 MCP 服务器保持 1 对 1 连接;
3. MCP 服务器— 为LLMs提供上下文、业务处理相关工具等;
大概的流程,当用户给大模型发送一段自然语言信息时,MCP 主机首先调用 MCP 服务器以询问哪些工具可用,大模型接收信息后,根据对输入的解析选择使用对应的工具,通过 Host 向 MCP 服务器发送请求,接收到结果后,再通过大模型进行解析、整理返回给用户。
优势1. 数据安全与隐私保护
MCP通过本地服务器与数据建立连接,不用将大量数据上传其他平台,避免敏感信息暴露。
2. 扩展AI能力
大模型能力在隐私领域是无招的,比如企业的业务数据分析、医院患者信息分析,这些都是超敏感数据,但可以基于MCP开发对应的工具供大模型调用;
3. 简化开发流程
统一标准,对于开发者来说不用再考虑兼容各种平台的调用方式,只需按照MCP协议进行开发,不用再因为每一次更新去手动更新调用方式;
理论先聊到这,实战出真理,这次先来个简单的操作;
现在很多MCP Server工具都是使用NodeJs或Python开发的,但我们这次用C#实现一个,原理都差不多。
建一个控制台项目,导入mcpdotnet包,在Program.cs中编写代码如下:
.WithStdioServerTransport :使用本地进程通信方式, 后面会详细说;
.WithTools:自动注册带[McpToolType]标记的工具类;
编写工具这里新建一个类文件,然后在里面标记对应Atrribute, 在类上标注:[McpToolType],在对应工具方法上标注[McpTool]和[Description],后面会细说为什么标注这些,这里就先跳过了;业务代码就返回一行字符串,这里其实就是业务逻辑处理的地方。
上面的测试的编码就完成,现在要准备环境了,要有一个MCP Host和MCP Client,这里就用VsCode+Cline插件,Cline支持MCP Server。
安装好VsCode之后,在插件管理中搜索Cline安装上,然后就可以配置MCP Server了,具体安装就不截图了,相信小伙伴们肯定都会。
在配置MCPServer前,需要配置一下Cline使用的大模型,选择平台,然后生成Key填入就行,我用的OpenRouter平台,有免费的模型使用,如下:
接下来就开始配置MCP Server了,如下:
"command":"dotnet"
"args":[
"H:\\DotNetProject\\DotNetMCPServer\\DotNetMCPServer\\bin\\Debug\\net8.0\\DotNetMCPServer.dll"
]
"disabled":false
"autoApprove":[
"HelloMcp"
]
}
Windows也可以如下配置:
"HelloMcp":{"command":"cmd"
"args":[
"/c"
"dotnet"
"H:\\DotNetProject\\DotNetMCPServer\\DotNetMCPServer\\bin\\Debug\\net8.0\\DotNetMCPServer.dll"
]
"disabled":false
"autoApprove":[
"HelloMcp"
]
}
上面的配置其实就是通过dotnet命令执行编译出来的dll文件,disabled就是表示McpServer是否启用,autoApprove配置对应的工具之后就减少弹框提示确认啦。
这样就可以开始使用我们写好的MCP Server了,如下:
如上,只是发给大模型一句话,然后就自动选择合适的工具进行执行分析,有参数和返回值,然后最后进行整理,是不是有点那么回事了。 (测试这里写英文,不是我英文有多屌,而是程序没有处理中文,返回是乱码,偷懒没改!!!)
注:如果要使用其他MCP Server,看看是用什么语言实现了,需要安装对应的运行环境,比如是用NodeJs开发的MCP Server,就要安装一下NodeJs环境。
上面的案例只是小试牛刀,下一期我们来个复杂的,多搞几个工具,结合实际应用场景,看看能不能一句话让大模型干大事,MCP的开发后面肯定是趋势,大模型这么火,咱不能不会呀。哈哈哈,小伙伴们下期见喽。
来源:opendotnet