阿里面试:MCP与FC的10大差别?Harness 怎么 用MCP与FC?

MCP协议与传统的RESTful API相比,有何核心差异和优势? 随着AI原生应用爆发预测"MCP+Agent成主流"),MCP正成为LLM生态的"USB-C接口"(,但其并非取代RESTful,而是填补AI协同场景的空白。主机→客户端→服务器。 阅读详情

一、定位差异:原生能力vs 通用协议

(1) 本质差异:FC是单一模型的原生工具调用能力(OpenAI 2023.6推出),MCP是多模型通用开源协议(Anthropic 2024.11推出);

(2) 核心逻辑:MCP符合分层架构“解耦”思维,FC与 模型深度绑定、无解耦;

(3) 核心价值:FC解决“模型不会做事”,MCP解决“不同模型与工具适配碎片化”。

先聊FC (Function Calling)。

FC 是OpenAI于2023年6月率先推出的特定模型原生工具调用能力,核心目标很纯粹——“让单一模型具备工具调用能力”,解决的是**“模型不会做事”**的核心痛点。

说白了,FC就是模型自带的“手脚”,不用额外搭架子,模型自己就能调用工具。

FC 作为模型内置的原生功能,它的核心价值是将用户的自然语言指令,直接转换为具体的API调用指令,从而让大模型突破自身知识更新停滞的局限,实现实时数据查询(如天气、股市)、本地文件操作、数据库交互等实际功能。

目前,包括面壁智能MiniCPM 3.0在内的多数主流模型,都强化了FC能力,适配更多端侧场景。

但尼恩必须吐槽一句:FC的问题,也出在“原生”上。

它和模型绑定得太深了,相当于把**“工具调用”和“模型本身”揉在了一起**,违背了分层架构的解耦思维。

就像把螺丝刀和家电焊死在一起,换个家电,螺丝刀就废了。

再看MCP。

MCP是Anthropic于2024年11月推出的开源标准化协议,被业内比喻为AI领域的“通用USB接口”,核心目标是**“统一模型与工具的连接标准”**,解决的是“不同模型与工具适配碎片化”的行业痛点。

据尼恩了解,现在70%的企业,都因为工具协同问题延缓了AI项目落地 。而MCP的诞生,就是为了破解这个困境。

它不局限于某一款模型,而是制定了统一的交互规范,相当于在“模型”和“工具”之间,加了一层统一的适配层,完美契合分层架构的解耦理念。

这样一来,各类AI模型、外部工具、数据源,都能通过这一层接口实现互联互通,开发者不用为不同模型重复开发工具适配代码,大幅降低开发成本。

现在,谷歌Gemini、百度文心一言、通义千问3等主流模型,都已正式接入MCP协议,AI工具调用终于要进入标准化时代了。

案例介绍

下面是 一家中型企业做AI工具集成,客户需求很简单:

让GPT-4和通义千问3,同时调用企业内网的数据查询工具。

一开始,技术团队想用 FC做,给GPT-4写了一套函数适配,又给通义千问3写了一套,结果两套代码不兼容,改来改去,一周都没搞定,还出了bug。

后来 ,直接用MCP协议封装了工具接口,注册到MCP Server上,两款模型不用单独适配,直接通过MCP Client调用,当天就调试通过了。

这就是分层解耦的威力——把“工具适配”这一层独立出来,不管上层是什么模型,都能直接对接。

1. Function Calling (FC) 实现示例

尼恩提示:原文3w字以上, 超过平台限制, 此处省略 1000字,具体请参考 免费pdf。

完整版本,请参考 尼恩 免费百度网盘 免费pdf ,点赞收藏本文后,截图 找尼恩获取

二、架构复杂度差异:复杂协同 vs 轻量调用

(1) 架构差异:MCP是“客户端-服务器”双层架构(需搭建MCP Server中间层),FC是“点对点”轻量架构(无中间层);

(2) MCP优势:支持双向实时通信、自动维护上下文、多模型/多工具并行,适配企业级复杂场景;3. FC优势:部署简单、调用延迟低,适配轻量场景;

(4) 核心总结:复杂场景用MCP,轻量场景用FC。

还是用分层架构的思维来看:

  • MCP是“客户端-服务器”双层架构,多了一层中间协调层;
  • FC是“点对点”的 轻量级 架构,没有中间层。

没有好坏之分,只看场景适配。

先看MCP。

MCP采用“客户端-服务器(Client-Server)”双层架构,必须搭建MCP Server作为中间协调层,形成**“AI模型→MCP客户端→MCP服务器→外部工具”**的完整交互链路。

这一层中间层,就是分层架构里的“接口层”,负责协调模型和工具的通信,解耦二者的依赖。

这种架构的优势很明显:支持双向实时通信(如SSE流),能主动维护多轮对话的上下文状态,轻松实现跨工具连贯任务的自动化执行。

比如“查询企业销售数据→生成可视化图表→发送至指定邮箱”, 用MCP搭建好架构后,全程不用人工干预,系统自动完成所有步骤。

而且MCP基于TCP/IP协议传输数据,支持多模型、多工具并行协同,扩展性极强,完全能扛住企业级的复杂场景。

当然,缺点也有——搭建MCP Server需要一定的技术门槛,不是小白能快速上手的。

再看Function Calling。

FC就简单多了,没有复杂的架构设计,采用“请求-响应”模式,无需搭建中间层,直接实现“用户→模型→工具”的点对点交互。

它的调用流程是独立的,单次调用只完成一个工具的操作,相当于“一锤子买卖”。

要是想实现多步骤任务,比如刚才说的“查数据→生成图表→发邮件”,就需要开发者手动串联多次函数调用,自己维护上下文状态——这就很麻烦了。

假如用FC做 一个简单的天气查询工具,单独调用没问题,但要串联“查天气→生成日报→发邮件”,**光写串联逻辑就写了几十行代码,**还容易出bug。

但不可否认,FC的优势也很突出:部署简单、低延迟,不用复杂的环境配置,适合快速开发、高性能 、和简单功能扩展。

总结一句:复杂场景用MCP,轻量场景用FC,别搞反了!

三、安全与合规差异:本地化防护vs 云端依赖

(1) MCP安全优势:MCP解决方案(本地化部署、权限管控、通过合规审核)。 敏感数据本地化部署(留存企业内部),支持OAuth2.0+RBAC权限精细化管控,符合企业合规要求;

(2) FC安全痛点:FC弊端(密钥上传云端、有泄露风险、不合规);高度依赖云端,API密钥等信息需上传云端,数据流向不可自主掌控,合规性不足;

(3) 核心对比:MCP=数据锁在自家,FC=数据放在第三方仓库。

对于企业级应用,安全和合规,比什么都重要!

尤其是金融、政务这类行业,敏感数据泄露,轻则罚款,重则停业。

而MCP和FC在安全上的差异,简直是天差地别。

先看MCP。

MCP最核心的安全优势,就是强调敏感数据的本地化处理. 所有敏感信息,比如企业内网API密钥、用户隐私数据、核心业务数据,都能保留在企业自身部署的MCP Server中,不用上传到第三方云端。

这就相当于把数据锁在自己家里,而不是放在别人的仓库里,从源头降低了数据泄露的风险。

而且MCP支持OAuth2.0+RBAC权限模型,能对不同角色、不同工具的访问权限进行精细化管控,谁能调用什么工具、能看什么数据,都能设置,操作可审计、权限可追溯,完全符合企业级数据安全合规要求。

尼恩有vip 去年给一家银行做AI架构设计,客户明确要求“敏感数据不上云”,最后就是用MCP做的本地化部署,顺利通过了合规审核。

再看Function Calling。

FC的数据流,高度依赖云端服务: 开发者必须把工具API密钥、调用逻辑等信息,配置在模型厂商的云端平台。

不是说云端不安全,而是企业无法自主掌控数据流向——数据传输过程中,有可能被拦截、泄露;而且一旦厂商的云端出问题,你的工具调用也会跟着崩。

虽然主流厂商都提供API密钥加密管理,但整体安全防护,还是依赖厂商的云端安全体系。

对于金融、政务这类对数据安全要求极高的行业,FC的合规性,很难完全满足。

尼恩见过一个案例,某金融公司用FC调用客户信息查询工具,不小心把API密钥泄露了,最后被监管部门罚款,还丢了客户, 血的教训啊!

四、适用场景差异:企业级复杂场景vs轻量快速开发场景

(1) MCP适配场景:跨系统数据整合、复杂Agent任务、安全敏感操作(金融/政务),适合企业级复杂场景;

(2) FC适配场景:简单功能扩展(天气/快递/汇率)、单模型插件开发、快速原型验证,适合轻量快速开发;

(3) 核心判断标准:需求是“复杂、安全、多模型”用MCP,“简单、快速、单模型”用FC。

MCP和FC,不是替代关系,而是互补关系,各自有自己的适配场景。

尼恩总结了一个简单的判断标准:看你的需求是“复杂、安全、多模型”,还是“简单、快速、单模型”。

先看MCP的适配场景。 MCP更适合企业级复杂场景,尤其是对数据安全、多工具协同、跨模型适配有较高要求的场景。

具体来说,主要有三类:

    1. 跨系统数据整合:比如ERP、CRM、企业文件库的互联互通,比如 制造业的项目,用MCP把生产、销售、库存三个系统的工具整合起来,实现了数据实时同步,效率提升了60%。
    1. 复杂Agent任务:比如企业工单自动化处理、智能客服多工具协同响应,不用人工干预,系统自动完成“接收工单→查询数据→生成回复→反馈结果”的全流程。
    1. 安全敏感操作:比如内网数据查询、本地文件读写、核心业务系统调用,尤其是金融、政务行业,必须用MCP做本地化部署,确保数据安全。

还有一个点,MCP在接入企业本地资料方面,表现特别突出,是企业实现AI本地化部署的优选方案。

**再看Function Calling的适配场景。**FC更适合轻量、快速开发场景,尤其是对开发成本、部署效率有较高要求的场景。

具体来说,也有三类:

    1. 简单功能扩展:比如天气查询、快递跟踪、汇率转换,这些功能单一,不用复杂协同,用FC开发,几分钟就能搞定。
    1. 单模型插件开发:比如基于GPT的文档翻译插件、表格处理插件,只适配一个模型,不用考虑跨模型复用,开发成本低。
    1. 快速原型验证:比如验证工具调用逻辑的可行性,不用搭建复杂架构,用FC快速写个demo,验证没问题再升级架构。

FC的优势就是开箱即用,不用掌握复杂的协议规范,适合有一定开发基础的开发者,快速实现功能落地。

五、使用差异:开发门槛vs便捷性

(1) FC使用门槛:较高,需手动定义函数签名、处理调用逻辑、串联多步骤任务,适合有编程经验者;

(2) MCP使用便捷性:低,无需手动定义函数,搭建配置MCP Server后,模型直接发送请求即可调用工具,小白可快速上手;

(3) 总结:MCP上手稍难但后续省心,FC上手简单但后续麻烦。

聊完场景,再聊使用体验——这也是很多开发者关心的点:到底哪个好上手?

尼恩一句话总结:MCP上手稍难,但后续省心;FC上手简单,但后续麻烦。

先看Function Calling。

FC的使用门槛相对较高,需要开发者具备一定的编程基础——不是说小白完全不能用,而是小白用起来会很吃力。

  • 首先,你得手动定义函数签名,包括函数名称、参数、返回值、描述等,明确模型与工具的交互规则;
  • 其次,你得自行处理函数调用逻辑,比如参数校验、异常处理、上下文传递;
  • 要是涉及多步骤任务,还得手动串联多个函数调用。

尼恩见过很多小白,第一次用FC,光是定义函数签名,就改了好几次——要么参数不对,要么描述不清晰,模型识别不了。

简单来说,FC的使用,更像是“手动编写工具调用脚本”,灵活性强,但便捷性不足,适合有编程经验的开发者。

再看MCP。

MCP的使用,就便捷多了,大幅降低了工具调用的门槛——哪怕你是非专业开发者,稍微了解一下,也能快速上手。

  • 开发者只需搭建并配置MCP Server地址,将外部工具接口注册至服务器,
  • 后续AI模型无需关心工具的具体实现细节,只需通过MCP客户端发送请求,就能实现工具调用。

整个过程,**不用手动定义函数,不用处理复杂调用逻辑,**模型会自动匹配合适的工具与参数,甚至不用精准指令,就能唤起服务——这才是真正的“傻瓜式操作”。

六、复用性差异:跨模型共用vs’模型专属

(1) FC复用性痛点:模型专属,不同模型FC规范不同,工具需单独适配,重复开发成本高;

(2) MCP复用性优势:一次封装工具、注册至Server,所有兼容MCP的模型均可调用,实现“一次开发,多模型共用”;

(3) 核心差距:FC重复造轮子,MCP高效复用、降低成本。

这一点,是MCP最核心的优势,也是FC最大的痛点 。

尼恩做架构设计,最看重的就是复用性——能一次开发,多次使用,才是高效的架构,不然就是重复造轮子,浪费时间和成本。

**先看Function Calling。**FC的工具复用性,差到离谱——它属于“模型专属”模式,不同厂商的FC实现方式、函数签名规范,各不相同。

比如,你为GPT-4开发的工具,无法直接适配Gemini、通义千问3,更换模型时,必须重新定义函数、适配调用逻辑——相当于你写了一个螺丝刀,只能拧一个牌子的螺丝,换个牌子,就得重新做一个。

而且,工具数量越多,模型数量越多,重复开发的成本就越高,这也是很多企业用FC做多模型项目,最后成本超支的原因。

**再看MCP。**MCP完美解决了复用性的痛点——它的核心优势之一,就是跨模型复用能力。

开发者只需按照MCP协议,将工具接口封装一次,注册至MCP Server,所有兼容MCP协议的模型,比如GPT-4、Gemini、通义千问3,都能通过MCP客户端访问该工具,无需重复开发适配代码。

这种“一次开发,多模型共用”的模式,大幅提升了开发效率,尤其适合多模型协同的企业场景——这也是MCP被尼恩称为“AI互联互通关键方案”的核心原因。

七、流程差异:注册式协同vs点对点调用

(1) FC流程:无注册式,点对点调用,流程为“用户需求→LLM解析→生成函数指令→工具执行→反馈”,需手动传递上下文;

(2) MCP流程:预先注册式,有中间层协调,流程为“工具注册→用户需求→LLM请求→Server协调→工具执行→反馈”,自动维护上下文;

(3) 核心差异:FC需手动串联上下文,MCP自动协调多工具、维护上下文。

聊完复用性,再聊调用流程——流程的差异,决定了二者的协同效率。

还是用分层架构的思维来看:MCP的流程,是“注册式协同”,中间层负责协调;FC的流程,是“点对点调用”,没有中间层,直接交互。

先看Function Calling。

FC采用“无注册式”调用流程,无需预先注册工具,核心流程很简单:

  • 用户提出自然语言需求→LLM解析用户意图→生成格式化的函数调用指令→工具执行→返回结果→LLM整理反馈。
  • 整个流程,单次调用独立,上下文信息需要开发者手动传递——也就是说,你调用完一个工具,要自己把结果保存下来,再传给下一个工具,不然上下文就丢了。

尼恩之前用FC做“查数据→生成图表”,就是因为忘了传递上下文,导致生成的图表没有数据,调试了半天,才发现是上下文丢失的问题——太坑了!

再看MCP。

MCP采用“预先注册式”协同流程,核心流程是:

  • 开发者预先注册工具→用户提需求→LLM生成请求→MCP客户端传递请求→MCP Server协调工具执行→返回结果→LLM整理反馈。
  • 这种流程,引入了中间协调层(MCP Server),职责划分更清晰,而且能自动维护上下文状态,实现跨工具、多步骤的连贯执行,无需人工干预。

还是“查数据→生成图表”,用MCP,你只需发送一个请求,MCP Server会自动协调“数据查询工具”和“图表生成工具”,自动传递上下文,全程不用你管,省心太多。

八、组件差异:三层解耦 vs无独立组件

(1) MCP组件:三大核心组件(Server-大脑、Client-信使、AI模型-决策者),实现三层解耦,可单独升级组件、维护性强;

(2) FC组件:无独立组件,依赖模型意图解析能力和开发者定义的函数签名,耦合度高,无法单独优化调用流程;

(3) 核心差异:MCP解耦、可维护性强,FC耦合、灵活性差。

这一点,其实是架构差异的延伸——组件设计的不同,决定了二者的灵活性、可维护性。

尼恩还是用分层架构的解耦思维来聊——MCP的组件设计,完美实现了三层解耦;FC则没有独立组件,耦合度很高。

先看MCP。

MCP包含三大核心组件,实现了“AI模型、MCP客户端、MCP服务器”的三层解耦设计:

  1. MCP Server(服务器):核心组件,负责工具注册、请求协调、权限管理、结果反馈,相当于“大脑”;

  2. MCP Client(客户端):负责AI模型与MCP Server之间的消息传递,相当于“信使”;

  3. AI模型:负责解析用户意图,生成符合MCP协议的请求指令,相当于“决策者”。

这种解耦设计,最大的优势就是可维护性极强——你可以单独升级某一个组件,比如优化MCP Server的权限管理功能,不用影响其他组件的正常运行。

尼恩某vip做过一个 mess 智能体 项目,需要优化工具调用的响应速度,只升级了MCP Server的协调逻辑,其他组件不用动,半天就完成了升级,不影响业务正常运行——这就是解耦的威力。

再看Function Calling。

FC没有独立的组件设计,它的调用能力,完全依赖两大核心要素:

  1. 模型自身的意图解析能力:LLM能否准确将自然语言转换为函数调用指令;

  2. 开发者定义的函数签名:明确工具的调用规则。

整个调用过程,没有中间协调组件,结构更简单,但灵活性与可维护性不足——如果你想优化调用逻辑,只能修改函数签名,或者依赖模型升级,无法单独对调用流程进行调整。

九、集成方式差异:统一协议接入vs单独适配

(1) FC集成方式:单独适配,每接入一款工具需单独定义函数、编写适配代码,成本随工具数量线性上升;

(2) MCP集成方式:统一协议接入,所有工具统一封装、一次注册至Server,无需单独适配,成本低、效率高;

(3) 核心对比:FC“逐个适配”,MCP“一次搞定”。

这一点,其实是架构差异的延伸——组件设计的不同,决定了二者的灵活性、可维护性。

尼恩还是用分层架构的解耦思维来聊——MCP的组件设计,完美实现了三层解耦;FC则没有独立组件,耦合度很高。

先看MCP。

MCP包含三大核心组件**,实现了“AI模型、MCP客户端、MCP服务器”的三层解耦设计:**

  1. MCP Server(服务器):核心组件,负责工具注册、请求协调、权限管理、结果反馈,相当于“大脑”;

  2. MCP Client(客户端):负责AI模型与MCP Server之间的消息传递,相当于“信使”;

  3. AI模型:负责解析用户意图,生成符合MCP协议的请求指令,相当于“决策者”。

这种解耦设计,最大的优势就是可维护性极强——你可以单独升级某一个组件,比如优化MCP Server的权限管理功能,不用影响其他组件的正常运行。

尼恩之前做过一个项目,需要优化工具调用的响应速度,只升级了MCP Server的协调逻辑,其他组件不用动,半天就完成了升级,不影响业务正常运行——这就是解耦的威力。

再看Function Calling。

FC没有独立的组件设计,它的调用能力,完全依赖两大核心要素:

  1. 模型自身的意图解析能力:LLM能否准确将自然语言转换为函数调用指令;

  2. 开发者定义的函数签名:明确工具的调用规则。

整个调用过程,没有中间协调组件,结构更简单,但灵活性与可维护性不足——如果你想优化调用逻辑,只能修改函数签名,或者依赖模型升级,无法单独对调用流程进行调整。

十、生态差异:封闭专属vs开放通用

(1) FC生态:封闭专属,不同模型厂商各自制定规范,工具无法跨模型复用,开发者重复开发,协同性差;

(2) MCP生态:开放通用,开源标准化协议,不依附任何厂商,主流AI厂商均接入,工具可跨模型/跨平台复用,全球开发者共建;

(3) 未来趋势:MCP为主流,FC为轻量补充,二者融合发展。

这决定了二者的长期发展潜力,也关系到开发者的长期投入成本。

尼恩的判断:未来,AI工具调用的趋势,一定是“开放化、标准化”,MCP会成为主流,FC会作为轻量补充,二者融合发展。

先看Function Calling的生态。

FC的生态,属于“封闭专属”模式——不同模型厂商,各自制定自身的函数调用规范,形成独立的生态体系。

比如,GPT的FC规范,和DeepSeek、MiniCPM 3.0的规范不兼容;你为GPT开发的工具,无法直接用于其他模型,开发者只能在不同厂商的生态中,重复开发——相当于“各自为战”,生态协同性极差。

尼恩把这种模式,比作“什么样的锅配什么盖”。

你买了某品牌的锅,就只能用该品牌的盖,换个锅,盖就废了。

这种封闭生态,最大的问题,就是开发者的投入成本太高。 重复开发,重复维护,不利于生态的长期发展。

再看MCP的生态。

MCP的生态,属于“开放通用”模式——它是开源标准化协议,不依附于任何一款模型或厂商,由全球开发者共同共建生态。

目前,国内外主流AI厂商,比如OpenAI、谷歌、百度、阿里、字节,都已接入MCP协议,形成了“多模型、多工具、多平台”的互联互通生态。

开发者开发的MCP Server,可开放给所有兼容模型使用;工具可跨模型、跨平台复用,大幅减少重复开发成本——这才是生态该有的样子。

当然,MCP生态目前也有短板——比如互联网工具池还比较小,部分平台只开放边缘功能,核心数据与权限仍保持戒备。

不过尼恩了解到,Anthropic正在计划完善MCP的托管机制与可发现性,相信用不了多久,MCP生态会越来越成熟。

十一、性能差异: MCP 与 FC 性能核心差异

前面把MCP和FC的定位、架构、安全、场景这些“表面功夫”全拆透了,却漏了一个线上落地必踩坑、很多架构师容易忽略的核心点:性能差异。

单从性能角度来讲,FC完胜!无论是时延、开销、并发响应速度, FC都比MCP更有优势;

(1) 单次低延迟场景:Function Calling 完胜!没有中间层转发,链路更短、时延更低、开销更小,简单调用秒响应,MCP多一层中转,单次时延必高于FC。

(2) 网络传输开销:FC 完胜!轻量化小包直传,开销极小,无任何多余协议封装和中转损耗;MCP多一层协议封装+Server转发,单请求带宽开销、传输时延均高于FC,这是架构设计带来的性能损耗,无法避免。

先看Function Calling 链路

链路特别简单:用户 → LLM → 工具API

没有中间转发、没有协议封装冗余,就是“点对点”的直接调用——这也是FC最核心的优势。

优势很明显:单次调用RT极低,比如查个天气、查个快递(就像之前聊的快递100API调用)、查个汇率,这类单次短请求,用FC秒响应,完全不用多余操作。

再看MCP 链路

链路比FC多一层:用户 → LLM → MCP Client → MCP Server → 工具API

多了一层Client-Server中转,还有协议标准化封装 , 这就是 MCP“时延高”的原因 。

还是刚才“查数据→生成图表→发邮件”的需求,用MCP确实省心、不易出错,但单论每一步的响应时延、整体性能表现,依然是FC更优。

MCP赢在便捷性,而非性能。

第 十二 章 DeerFlow 如何使用 FC、MCP扩展工具

DeerFlow FC & MCP互补共生,适配不同场景的技术选择

DeerFlow 的工具体系,采用三层分层设计,边界清晰、职责明确,不用搞复杂的嵌套逻辑——分别是:

  • 内置工具(builtins) 这个是fc
  • 社区工具(community) 这个是fc
  • MCP 扩展工具。

其中前两层由框架自身统一管理,不用开发者额外维护。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

D类功放几种常见“爆破音”问题根源与改善措施 在数字D类功放刚上电或功放播放状态切换时,人耳偶尔会听到“嘣”的声音,我们把这个爆破的Pop Noise。数字功放Pop Noise 出现的原因有很多,本文主要分析Pop Noise 出现原因,并提供相应解决方法。 阅读详情

相关推荐

kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口

场景:使用kettle实现将查询结果返回给客户端,也就是说kettle暴露查询接口供外围系统调用。前提必须是使用carte服务才可以提供接口供外部系统调用。具体实操方法如下:1、设计转换根据具体需求设计转换,主要用到的步骤有获取变量(从请求参数中获取变量)、json输入(解析入参),json 输出将结果转换为json格式输出到客户端。如下图所示:2、接收参数使用获取变量步骤来接收接口请求参数,变量通过${}方法进行获取,如下图${PARAM}则是获取PARAM参数,将参数赋值为req字段。

zhangjin1222的博客 955

FC(Function Calling)和MCP详解(区别、作用、运用场景)

自身在学习MCP过程中,对FunctionCalling和MCP两者的理解

2201_75669520的博客 1869

QuickFix Java 讲解(一)概述、下载方法,和协议内容

本系列力求手把手教你怎样利用QuickFix Java 搭建自己的 FIX 协议收法平台,以及其中的注意事项。 所有源码的地址(免费): https://github.com/zongzhec/QuickFixPractise 1. 什么是FIX,QuickFix,Quick Java? 1.1. 什么是FIX 官网以及其他翻译自官网的帖子都太官方了,这里我们设想一个情景: 你是一个交易员,现在客户打电话来让你下个单买点股票。你啪啪啪的在你的机器上熟练地输入了下单指令。系统显示:成...

4574

AI 自己跑了 17 小时把 Bug 修了:阿里 Harness 工程实战复盘

Harness 工程短期内可能被一些人高估,但长期来看,我觉得它被严重低估了。当 AI 能自己跑完"发现-分析-修改-验证"这个闭环时,工程师最值钱的能力会回到定义问题和设计评估标准这两件事上。所以,磨好你的评测集,写好 System Prompt,然后让 Agent 熬夜去迭代吧。原文参考阿里技术团队 Harness 工程实践复盘。

随记 290

SAP高级外币评估_FINS_FXV_S4 2022 OP

摘要:S/4HANA 2022 On-Premise中的高级外币评估(FINS_FXV)取代了经典外币估值(FAGL_FCV),提供更优化的财务结算功能。主要创新包括:增量发布逻辑、简化账户配置、行项目级估值可见性等。该功能支持IFRS9等会计准则,通过会计原则(Accounting Principle)进行配置,需完成财务报表版本定义、语义标记分配等必要设置。系统演示展示了从汇率维护(FB60/MIRO)、测试运行到最终过账(FB03)的完整流程,能自动计算并过账汇率差异。高级外币评估简化了期末结算操作,

yanzibing99的博客 1261

AD620仪表放大器模组实战:从调零到信号放大的完整指南

本文详细介绍了AD620仪表放大器模组的实战应用,从调零到信号放大的完整指南。AD620模组以其专业级性能和易用性成为微弱信号放大的首选,集成了AD620芯片、LM358运放和7660电源转换芯片。文章提供了调零技巧、增益设置方法以及单端与差分输入的正确连接方案,并通过心电信号采集和称重传感器等实际案例展示了其广泛应用。

weixin_29290379的博客 378

AI大模型算法面经:Function Call、MCP、A2A

AI大模型算法面经:Function Call、MCP、A2A

2301_81888214的博客 1240

YOLOv8自动驾驶系统 —— 夜间低光照条件 详细说明和完整代码

本文提出一种针对夜间低光照优化的自动驾驶车道保持系统方案,基于YOLOv8模型改进,包含三大核心技术:1.采用Retinex理论的多尺度低光增强算法,结合自适应伽马校正;2.改进YOLOv8的车道检测模型,通过夜间专用数据集训练,增加抗眩光处理;3.多传感器融合框架,整合可见光与红外图像。系统实现动态逆透视变换和参数调整,在Jetson Orin硬件上达到30ms级实时性能。测试显示在无照明、眩光干扰等极端场景下保持稳定,代码已开源。扩展方向包括V2X协同定位和自适应大灯联动控制。

u010117029的博客 598

手写 Harness 底层架构: 基于 Deep Agents 深入底层 Sandbox沙盒Infra 基础设施架构

手写 Harness 底层架构: 基于 Deep Agents 深入底层 Sandbox沙盒Infra 基础设施架构

架构师尼恩 328

Silvaco TCAD 半导体器件仿真全攻略:从入门到精通

本文介绍了Silvaco TCAD半导体器件仿真平台的核心功能与应用方法。主要内容包括: Silvaco TCAD的核心模块组成(ATHENA工艺仿真和ATLAS器件仿真)及其在半导体研发中的重要作用,能够通过数值仿真预测器件电学特性,显著降低研发成本。 环境配置要点,包括内存分配、文件目录管理和许可证验证,为仿真工作提供基础保障。 仿真核心概念:详细讲解了网格划分策略和物理模型选择原则,强调基于物理直觉的自适应加密网格方法。 以PN结二极管为例,提供了完整的仿真代码示例,涵盖从网格定义、掺杂设置到结果分析

huanghm88的专栏 208

5.30华为OD机试真题 新系统 - 魔法阵的能量收集 (Java/Py/C/C++/Js/Go)

5.30华为OD机试真题 新系统 - 魔法阵的能量收集 (Java/Py/C/C++/Js/Go)

算法大师! 752

【Harness顶级架构】Hermes skills 自进化 秘诀:三层引擎 + 影子Agent + 边车文件 + 伞状合并

【Harness顶级架构】Hermes skills 自进化 秘诀:三层引擎 + 影子Agent + 边车文件 + 伞状合并

架构师尼恩 529

Vue3 - H5实现省市区三四级联动组件,选择地址自定义省市区三级联动插件,弹框式多级联动选择器区域选择,vue3实现省市区三级联动地址选择组件(支持接口数据懒加载,样式精美漂亮,附带详细示例源码)

vue3实现省市区三级联动地址选择组件(附address文件),vue3实现省市区三级联动, 实现省、市、县地区三级联动功能,vue3省市区选择器,VUE3 h5如何实现省市区街道的四级联动选择,vue实现省市区选择联动,vue3城市三级联动(自定义组件)_VUE三级联动,插件省市区联动,vue如何实现省市区选择器,vue3怎样实现省市区地址三级联动,vue四级联动,vue3级联选择器,vue3实现选择省市区镇(街道)四级级联选择,包含三级级联选择,省市区街道三级四级联动选择器,VUE3自定义多列选择器省市

🏆 前端领域优质创作者 3070

架构天花板 :基于LangGraph的生产级 Harness 执行层 Sub-Agent 深度拆解,解密 子Agent如何才能是 达到工业级的 性能

架构天花板 :基于LangGraph的生产级 Harness 执行层 Sub-Agent 深度拆解,解密 子Agent如何才能是 达到工业级的 性能

架构师尼恩 630

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

逆天!Hermes +Claude 实现 AI 编程 Agent Team 硅基团队 ,一人 开启 10个Agent的boss 之路

逆天!Hermes +Claude 实现 AI 编程 Agent Team 硅基团队 ,一人 开启 10个Agent的boss 之路

架构师尼恩 887

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大模型工程化:从Prompt到Harness,驾驭AI生产力新时代

大模型工程化三大范式:提示词工程、上下文工程与驾驭工程 摘要:随着大模型技术的成熟,行业焦点转向如何实现能力稳定落地。文章系统阐述大模型工程化的三大范式:提示词工程(Prompt Engineering)作为基础,通过标准化指令引导模型输出;上下文工程(Context Engineering)通过信息注入解决知识边界与幻觉问题;驾驭工程(Harness Engineering)构建全链路管控体系。三者呈递进互补关系,共同支撑生产级应用。当前趋势呈现三大特点:自动化Prompt优化、多模态场景融合、体系化管控

m0_63171455的博客 1856

基于Harness Engineering架构的企业实战项⽬!

HarnessEngineering推动企业级AI Agent规模化落地,通过“三层主体+两大保障”等架构模式,实现大模型推理的工程化约束与可靠执行。典型案例如阿里QoderWork、腾讯TAB六层资产体系、StripeMinions无人值守流水线等,均以规则(Rule)、技能(Skill)、子Agent、工作流(Workflow)等组件构建可复现、可监控的自动化系统。核心在于用确定性框架包裹非确定性模型,实现任务闭环与持续进化,未来企业优势将聚焦于领域知识与治理机制。

马士兵教育 121

Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速

作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。

阿里巴巴云原生的博客 1079

Function Calling与MCP的区别

MCP和FC作用在链路的两个环节,并不是一个东西,所以不存在替不替换的问题,而是共存的状态。

shall_zhao的博客 294

如何落地Harness工程?阿里、华为等大厂实践案例

当前,AI Coding已经在企业内部实现规模化应用,且应用范围从代码生成快速扩展至测试、文档编写、部署等整个软件开发生命周期。但开发速度的提升反而带来生产力、质量和成本三个方面的“悖论”:

weixin_58753619的博客 522

MCP Server 之旅第 1 站: MCP 协议的深度解析与云上适配最佳实践

MCP 引入堪称 AI 协作的 USB-C 接口,其建立了通用的数据交互标准,数据提供者可以通过 MCP 服务器向 AI 系统提供结构化信息,而 AI 系统则可通过 MCP 客户端高效访问这些信息。MCP Host(如 Claude Desktop、Cursor IDE、Cline)可视作一个 AI Agent,通过 LLM 实现意图解析与任务编排,协调 MCP Server 执行原子化子任务,同时维护全生命周期对话管理, 是整个系统的启动入口。

Serverless 社区 1112

[学习笔记]超越超级大循环与原生RTOS:事件驱动架构如何改变嵌入式固件的可扩展性

RTC:事件处理器一旦开始,全部状态迁移、进出动作、输出事件必须全部执行完毕才返回;同一个组件,当前处理没结束,不会开始下一条事件。这不是架构给状态机额外施加的限制,这是UML状态图等全部状态机形式化本身固有的语义要求。如果迁移中途可以被打断,状态机会停留在未定义的中间状态。RTC保证两次事件之间,状态机永远处于明确定义的合法状态,便于分析与测试。

MiKiJT的博客 237

源网荷储分层控制架构:从设备级到系统级的协调优化

面对分布式光伏、储能与柔性负荷大规模接入带来的运行复杂性,传统粗放管控模式已难适应高比例新能源场景。源网荷储分层控制架构通过“设备级保安全、台区级调协同、系统级统全局”的多层级协同体系,实现单体精准执行、局部动态平衡与全域优化统筹,构建自上而下指令分解、自下而上反馈闭环的精细化调控新模式,有效破解设备冲突、局部最优与全局失衡难题,推动分布式能源从“各自为战”迈向“协同共赢”,为新型电力系统安全高效运行提供核心支撑。

zhuhai_xigedian的博客 293

政务知识库AI架构选型:强合规约束下的架构决策与落地路径

政务知识库是典型的强合规导向场景,架构选型的第一原则是「合规一票否决」:安全优先级高于效果,可控性优先级高于体验,所有技术决策必须先通过等保、密评、信创、数据不出域四大硬性红线校验,再在此基础上优化检索准确率与用户体验。对应部署在互联网政务服务域、政务外网办公域、涉密内网核心域,三域物理隔离,数据仅能通过审批流程单向摆渡,禁止跨网调用模型与流转数据。• 放弃通用文档加载器,基于公文格式标准开发定制化结构化解析器,自动提取文号、标题、发文机关、成文日期、生效日期、密级、主题词等元数据,与分片内容绑定入库。

2401_89363342的博客 378

炜晔科技智慧断路器技术方案解析:自研架构、离线防护与波形识别

智慧断路器的技术门槛不在 "能否联网",而在采样精度、保护闭环与抗干扰设计。本文以炜晔科技 WYA1 系列为分析对象,从系统架构、计量采样链、保护控制逻辑、离线自持设计与通信组网五个层面拆解其技术方案,并给出工程选型与调试的核对要点,供配电物联网方向的开发者与工程技术人员参考。

WEIYE_Technology的博客 279

零信任架构实战:基于天远单人婚姻查询构建自动化智慧住房资格核验网关

破解公租房资格核查痛点:从传统纸质婚姻凭证抽检到权威民政数据穿透直连 在智慧城市公共租赁住房(公租房)、保障性租赁住房以及共有产权房等民生保障工程中,保障房资源的公平精准分配是住房保障管理中台的核心职责。按照现行住房保障准入政策,申请主体的家庭结构直接决定了配租资格准入与面积配给标准:单身家庭申请人通常享有特定的单人保障配额与独立的财产评估标准,要求申请人具

2501_94042197的博客 216
上一篇: 29.6K star!颠覆传统RAG向量检索,爆火开源让金融问答准确率干到98.7%
下一篇: 到底是谁会相信RAG已死啊?
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2841原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值