当前位置: 首页 > news >正文

AI领域:MCP 与 A2A 协议的关系

一、为何会出现MCP和A2A

        协议是非常重要的东西,只有大家都遵循统一的协议,整体生态才好发展,正如有了HTML,互联网才快速发展,有了OpenAPI, API才会快速发展。

        Agent目前是发展最快的领域,从最初的简单,本地应用,开始向互联发展;人工智能技术的快速发展催生了智能体(Agent)的广泛应用,但系统间的协作障碍逐渐显现。模型无法直接访问实时数据、工具调用标准不统一、多Agent协作缺乏规范等问题,成为制约AI规模化落地的核心瓶颈。这种情况下,智能体(Agent)之间的协作与通信是实现复杂任务的关键。正是在这样的背景下,两个关键协议横空出世:谷歌主导的A2A(Agent-to-Agent)协议和Anthropic推出的MCP(Model Context Protocol)。由此,MCP(模型上下文协议)、和 A2A(Agent到Agent协议)相继成为支持 AI Agent通信和协作的重要协议和框架。二者协议各有独特的设计和目标,旨在增强AI Agent能力,都反映了AI Agent从单一模型向多Agent协作发展的趋势。所以,MCP,A2A这样的协议就显得非常重要。这两个协议不是竞争关系,更像是构建未来AI生态系统的互补基石。


二、什么是 A2A 与 MCP

        MCP是由Anthropic提出并于2024年11月开源的通信协议,旨在标准化大型语言模型与外部数据源和工具的交互方式,为LLM提供上下文和工具支持。在MCP协议,一些专业工具、软件、系统都可以向大模型提供服务支持,这样用户在大模型交互的时候,就能支持更丰富的能力专业能力。

        A2A也是一个开源通信协议,由谷歌推出,旨在为不同系统和平台中的智能体提供标准化的交互方式。智能体是能够执行特定任务的AI实体,A2A确保这些智能体通过一致的标准进行通信和协作,实现跨平台协同工作。A2A的目标是使多个AI Agent能够共同完成任务,而不直接分享它们的内部记忆、思维或工具。

三、什么是 MCP

        MCP(Model Context Protocol,模型上下文协议)由Anthropic于2024年11月推出,是一套开放协议标准,旨在规范AI模型与外部数据源、工具之间的交互方式。它通过标准化接口,实现AI模型与外部资源(如数据库、API、文件系统等)的无缝集成。MCP的设计以模型为中心,将互联网视为上下文和工具的来源,适合当前AI模型(尤其是大型语言模型)访问互联网资源的需求。可以让AI模型像使用USB设备一样方便地调用外部工具,因此可以被视为AI系统的“USB接口”。

        其核心目标是解决以下问题:
                数据孤岛:模型无法直接访问实时数据或本地资源;
                集成复杂性:为每个工具编写独立接口导致开发成本高;
                生态碎片化:不同平台的工具调用机制缺乏统一标准;
                安全隐患:缺乏标准化的访问控制机制。

        基本组成(MCP采用客户端-服务器架构):
                MCP Host:运行 MCP Client 的宿主环境,可能是 Claude 桌面端、IDE、企业 Copilot 系统等。
                MCP Client:代表模型一侧发起任务请求的客户端 SDK,封装成标准协议消息发送给 MCP Server。
                MCP Server:暴露功能或数据接口的服务提供者,可是本地数据库、文件系统,也可以是远程 API。
                数据源或远程服务:MCP Server 后端连接的数据或服务。

        通信协议:基于 JSON-RPC 2.0,使用 WebSocket、本地 socket、HTTP 等方式作为承载层。
        会话管理:虽然 JSON-RPC 是无状态协议,MCP 在其基础上增加了有状态会话机制,支持多轮交互。
        能力协商:客户端和服务器在建立连接后,会互换所支持的能力与版本,确保兼容性。

        MCP 协议的几个核心能力:
        1. Resources(资源):表示模型可以读取的数据,如:本地文件(markdown, code, PDF 等);数据库查询结果;实时日志流;Server 端根据 query 参数,返回结构化数据或内容片段,模型据此推理。

        2. Prompts(提示):Server 提供特定场景下可复用的提示模版,例如:提交 Bug 的规范格式;提醒语句的生成模版;模型根据 prompt 模版动态构建完整 prompt,提升上下文一致性与效果。

        3. Tools(工具):Server 以函数形式暴露一组可调用方法,模型可以查看工具描述、参数定义,并构造调用请求;输入/输出均为结构化 JSON;类似 OpenAI 的 function calling,但与模型 API 解耦,工具只暴露于 MCP Server,而非模型服务端。

        4. Sampling(采样:反向调用模型): Sampling 是客户端(Client)提供给服务器(Server)的附加能力;它允许服务器反向请求客户端执行一次 LLM 补全,然后把生成结果回传给服务器本身。这使服务器可在自身逻辑里嵌套 LLM 调用(例如让模型为返回的数据做摘要、分类或生成代码),从而形成递归式、多代理协作。由于服务器可触发模型生成,规范要求Sampling应始终有人类在环(human‑in‑the‑loop),客户端应提供拒绝或中止采样请求的能力。

        5. Roots(限定服务器可操作范围的“根路径”):Roots是客户端提供给服务器的 URI 列表,用于声明服务器可操作的资源边界;Roots 只是“指导信息(guidance, not enforcement)”,真正的约束仍需服务器端遵守;但它为多源资源接入提供了清晰的作用域模型,便于权限审核与 UI 呈现。典型 root 可以是文件系统目录、Git 仓库路径或 REST API 根 URL。用途:最小暴露面:服务器只应在这些 root 下读取/写入,避免误操作其他文件或泄露数据;动态更新:客户端可在会话中实时添加、移除或变更 roots,服务器会通过roots/listchanged_ 通知获知。

        MCP 应用场景示例:
        1. 开发工具集成:在IDE中通过自然语言查询数据库、调用部署工具,开发工具集成,在IDE中通过自然语言查询数据库、调用部署工具。
        2. 自定义AI工作流:通过MCP,用户可以将AI助手与外部数据源和工具连接,构建个性化的AI工作流。
        3. 企业级自动化应用:在企业环境中,MCP可以连接ERP、CRM等系统,构建智能客服系统、自动化办公流程等,实现流程自动化,提高企业的运营效率。
        4. 本地数据处理:在隐私保护前提下分析用户设备内的文件。
        5. 以“模型查询某用户的数据库信息”为例演示流程:
        5.1. 注册能力:Server 启动并声明提供query_user_info工具,说明其参数为 user_id,返回结构为 JSON。
        5.2. 能力协商:模型所在应用(Client)建立连接,获得工具描述。
        5.3. 模型调用:模型识别到缺少用户信息,于是发起 Tool Call 请求:json{"method":"query_user_info","params":{"user_id":12345}}
        5.4. Server 执行:MCP Server 查询数据库,返回:json{"result":{"name":"小明","level":3,"org":"杭州分部"}}
        5.5. 模型继续生成回答:基于新获得的信息,回答“该用户来自哪个部门?”等问题。

        目前 MCP 已成为行业重点推进的通用标准,生态扩展迅速:官方 SDK 提供 Python、TypeScript、Java、C# 等语言支持;如 Google Drive, Slack, GitHub, Postgres 等接口已提供标准 MCP Server 实现预构建服务器;mcp-python-sdk 和 mcp-typescript-sdk 等开源工具链,开源集成如 Dify、LangChain 社区已提供插件;国内也已有初步生态实践:如阿里百炼推出了 MCP 工具市场 (https://bailian.console.aliyun.com/?tab=app#/mcp-manage),支持企业级私有 Server 接入。


四、什么是 A2A

        2025年4月9日,谷歌在Google Cloud Next 25大会上推出Agent2Agent 协议(A2A),这是一项全新的开放标准,旨在让AI智能体能够相互通信。此前,Anthropic的模型上下文协议(MCP) 为智能体提供了一种结构化的工具使用方式,而A2A则为智能体提供了一种相互协作的方式,就像是给AI智能体们制定了一套“通用社交礼仪”和“标准沟通语言”,让它们可以互相理解、协作,共同完成复杂任务。A2A的推出,也反映了行业对Agent互操作性的迫切需求。不仅限于技术层面,还涉及企业应用的商业价值。

        在A2A协议出现之前,AI智能体之间很难直接对话和协作,必须依赖开发者定制的接口。这就像是每个国家都有自己的语言和规矩,想要互相沟通、做生意、交换情报非常困难。A2A协议的出现,解决了这个“智能体孤岛”问题,让不同来源、不同技术的AI智能体能够相互沟通、安全地交换信息,并协同执行跨企业平台或应用的复杂任务。该协议由谷歌联合50余家科技企业(包括Salesforce、SAP、埃森哲等)共同推动,目标就是解决AI生态中“各自为战”的痛点:打破生态孤岛,解决多Agent协作的协议不兼容问题;支持长时任务,处理耗时数小时至数天的复杂流程;模态无关性,兼容文本、音频、视频等多模态交互。

        A2A基于HTTP、SSE(Server-Sent Events)和JSON-RPC构建,包含以下核心模块:
        能力发现(Capability Discovery):通过Agent Card(JSON元数据)声明Agent能力;
        任务管理(Task Management):以任务为单位管理多轮交互;
        协作机制(Collaboration):支持Agent间消息传递与状态同步;
        用户体验协商:根据终端设备动态调整内容呈现方式。

        典型交互流程包括:客户端Agent通过HTTP GET发现远程Agent能力;通过SSE建立持久连接并发送任务请求;远程Agent返回包含文本、表单、流媒体等内容的Message对象;任务完成后生成Artifact(如文件、结构化数据)。应用场景示例:
        1. 跨系统流程自动化:如招聘场景中,协调简历解析、面试安排、背调等Agent;
        2. 供应链管理优化:连接库存管理、物流调度、需求预测等Agent。A2A可以协调不同企业的智能体,优化供应链流程。例如,一个物流智能体可以与一个仓储智能体协作,实时更新货物状态。
        3. 客户关系管理:语音助手、工单系统、知识库Agent的协同响应。在跨平台客户管理中,A2A可以实现数据共享和协作。例如一个电商平台的智能客服可以与一个社交媒体平台的智能客服协作,提供更全面的客户支持。
        4. 医疗健康:A2A可以协调不同医疗机构的智能体,实现医疗数据的共享和协作。

        A2A与MCP的功能很相似,但也有着不同。A2A侧重智能体之间的协作沟通,而MCP侧重智能体获取外部工具与数据。两者可以视为互补的层次 。Google在发布A2A时也明确提到:“A2A是一个开放协议,与Anthropic的MCP互为补充:MCP为智能体提供有用的工具和上下文,而A2A则让不同智能体能够协同工作” 。例如,在一个汽车维修店的示例中,MCP负责连接单个维修机器人智能体与它使用的传感器、机械臂等“工具”(结构化动作指令),而A2A则让不同机器人和客服代理彼此对话协商,共同完成复杂的维修任务 。因此,两协议并非竞争关系,而是针对不同层面的需求提供支持:MCP连接“AI与工具”,A2A连接“AI与AI”。


五、MCP和A2A解决的是AI技术栈中不同层次的问题对比

        MCP 解决数据和工具代理的问题,A2A 解决 AI Agent 协作通信的问题。A2A 和 MCP就好比是 AI 世界的 “外交协议” 与 “万能接口”。

        A2A 协议并不是要取代 MCP,它们俩是好搭档,是互补关系!一个是让 AI 自己“兵器”使得更顺手,一个是让不同的 AI 组成“军队”能协同作战。
          MCP 更侧重于解决单个 AI 智能体 如何使用工具和获取外部信息 的问题 (Agent ↔️ Tool/Data)。
        •  A2A 则专注于解决 不同 AI 智能体之间如何有效协作 的问题 (Agent ↔️ Agent)。

        

六、A2A + MCP 生态

        谷歌A2A协议已获得50+家科技企业和服务商支持,覆盖工具层、应用层、咨询服务三大领域:


        典型场景:Salesforce的CRM Agent通过A2A调用Workday的HR Agent,自动同步客户签约与员工绩效数据。

        Anthropic的MCP协议聚焦AI与工具/数据的连接,主要支持者包括:


        典型场景:Claude模型通过MCP访问GitHub代码库,自动修复程序漏洞。


        A2A 和 MCP 等开放协议统一标准后,有望构建全新 AI Agent 生态。众多 AI Agent 通过 A2A 通信、借助 MCP 调动资源,用户能像浏览网页般无感使用智能体协同服务。


七、AI 协议的安全问题不可忽视

        Google A2A要解决的是不同黑盒中Agent间的安全通信与信任问题,其中的关键实现是AgentCard,这个是一个公开的元数据文件,描述了AI代理的功能、技能、端点URL和身份验证要求,可以通过URL路径 http://{remote_agent_address}/.well-known/agent.json 访问。AgentCard允许代理在不了解彼此的情况下,通过读取对方的AgentCard来识别对方的能力和访问权限,从而实现安全的协作。A2A的 Agent Auth方案可以选择简单的API KEY,可以选择OAuth等企业级授权方案,在消息推送方面,也通过类似机制来确保通信数据安全性。相对MCP协议,Google A2A协议在安全功能实现与安全指引上明显更为成熟。从攻击视角看,由于Google A2A的使用场景主要是不同Agent间的远程通信,大部分服务会被部署在公网,所以一旦出现漏洞,攻击成本会更低影响也更大,这对于使用Google A2A协议的AI Agent开发者们的安全意识提出了更高要求,需要开发运维等持续关注Google A2A协议与开发者实现的安全问题。

        由于设计之初MCP协议主要是用于AI Agent调用本地工具或调用权威厂商提供的MCP服务,同时也没有过多考虑安全相关风险;在2025年3月25号最新发布的MCP协议规范文档中,MCP官方正式支持了OAuth2.1授权认证,来确保MCP客户端和MCP服务器之间的交互受到严格的权限管理。


        官方强调了MCP协议本身无法实现上述这些安全原则,AI Agent与MCP服务的开发者们应该为MCP服务的安全实现负责,并给了一些粗略的安全建议:在应用程序中构建明确的同意和授权流程;提供清晰的安全隐患提示文档;实施适当的访问控制和数据保护;在工具集成中遵循安全最佳实践;在功能设计中考虑隐私影响。

        从中可以看到MCP官方已经意识到了安全的重要性,不过不同于Google,MCP官方明确了安全责任主体是开发者,未强制要求MCP服务必须开启OAuth授权保护,也没有在协议中提供可直接使用的权限分级管控能力与安全加固的详细实现指引。

八、开源协议地址

(1)MCP 协议参考实现的集合
        这个仓库是模型上下文协议(MCP)的一系列参考实现的集合,同时包含了社区构建的服务器和额外资源的引用。此仓库中的服务器展示了MCP的多样性和可扩展性,演示了如何使用它来为大型语言模型(LLM)提供对工具和数据源的 安全、受控访问。每个MCP服务器都是使用TypeScript MCP SDK或Python MCP SDK实现的。
        

https://github.com/modelcontextprotocol/servers

https://modelcontextprotocol.io/introduction

(2)A2A协议已经完全开源,在

https://github.com/google/A2A/tree/main

https://google.github.io/A2A/


        智能体应用需要 A2A 和 MCP 结合。建议工具使用 MCP,代理使用 A2A。

--------------------------------------

没有自由的秩序和没有秩序的自由,同样具有破坏性。

相关文章:

AI领域:MCP 与 A2A 协议的关系

一、为何会出现MCP和A2A 协议是非常重要的东西,只有大家都遵循统一的协议,整体生态才好发展,正如有了HTML,互联网才快速发展,有了OpenAPI, API才会快速发展。 Agent目前是发展最快的领域,从最初…...

重学React(一):描述UI

背景:React现在已经更新到19了,文档地址也做了全面的更新,上一次系统性的学习还是在16-17的大版本更新。所以,现在就开始重新学习吧~ 学习内容: React官网教程:https://zh-hans.react.dev/lea…...

代理模式(Proxy Pattern)详解:以延迟加载图片为例

在日常开发中,是否遇到过以下问题: “程序启动时图片太多,加载太慢!” “用户还没看到图片就已经开始加载了,性能浪费!” 此时,代理模式(Proxy Pattern)便派上了用场。本…...

Power BI企业运营分析——数据大屏搭建思路

Power BI企业运营分析——数据大屏搭建思路 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 整合多源数据,实时监控关键指标,精准分析业务,快速识别问题机遇。其可视化看…...

HCIP-H12-821 核心知识梳理 (5)

Portal 认证场景中 AC 与 Portal 服务器通信使用的 Portal 协议基于 TCP;HTTP/HTTPS 可作为接入与认证协议;缺省情况下,接入设备处理 Portal 协议报文及向 Portal 服务器主动发送报文的目的端口号均为 50100 VRRP 协议心跳报文缺省发送间隔为…...

从M个元素中查找最小的N个元素时,使用大顶堆的效率比使用小顶堆更高,为什么?

我们有一个长度为 M 的数组,现在我们想从中找出 最小的 N 个元素。例如: int a[10] {12, 3, 5, 7, 19, 0, 8, 2, 4, 10};从中找出 最小的 4 个元素。 正确方法:使用大小为 N 的「大顶堆」 原因分析: 我们想保留最小的 4 个元素…...

【AI工具】2025年主流自动化技术(供参考)

背景 前面完成了AutoIT的自动化操作的尝试,有惊喜有惊吓,就是能进行自动化控制,但是有点“笨”,于是就想找找同类好用的技术,有了这篇自动化技术比较分析的文档,资料参考了AI总结的内容。 autoit的使用&am…...

1.微服务拆分与通信模式

目录 一、微服务拆分原则与策略 业务驱动拆分方法论 • DDD(领域驱动设计)中的限界上下文划分 • 业务功能正交性评估(高内聚、低耦合) 技术架构拆分策略 • 数据层拆分(垂直分库 vs 水平分表) • 服务粒…...

【Java面试笔记:基础】4.强引用、软引用、弱引用、幻象引用有什么区别?

1. 引用类型及其特点 强引用(Strong Reference): 定义:最常见的引用类型,通过new关键字直接创建。回收条件:只要强引用存在,对象不会被GC回收。示例:Object obj = new Object(); // 强引用特点: 强引用是导致内存泄漏的常见原因(如未及时置为null)。手动断开引用:…...

使用Python+OpenCV将多级嵌套文件夹下的视频文件抽帧为JPG图片

使用PythonOpenCV将多级嵌套文件夹下的视频文件抽帧为JPG图片 import os import cv2 import time# 存放视频文件的多层嵌套文件夹路径 videoPath D:\\videos\\ # 保存抽帧的图片的文件夹路径 savePath D:\\images\\if not os.path.exists(savePath):os.mkdir(savePath) vide…...

基于STM32的室内环境监测系统

目录 一、前言 二、项目功能说明 三、主要元器件 四、接线说明 五、原理图与PCB 六、手机APP 七、完整资料 一、前言 项目成品图片: 哔哩哔哩视频链接: 咸鱼商品链接: 基于STM32的室内环境监测系统商品链接 二、项目功能说明 基础功…...

乐迪电玩发卡查分与控制面板模块逻辑解析

本篇为《美乐迪电玩全套系统搭建》系列的第四篇,聚焦后台功能模块中的发卡与查分系统。针对运营侧常见需求(如玩家状态查验、补卡操作、积分调整等),本篇将完整剖析其 PHP 端实现逻辑、数据结构及权限管理机制。 一、模块结构与入…...

Spring 事务实现原理,Spring 的 ACID是如何实现的?如果让你用 JDBC 实现事务怎么实现?

Spring 事务实现原理 Spring 的事务管理基于 AOP(面向切面编程) 和 代理模式,通过以下核心组件实现: 事务管理器(PlatformTransactionManager) Spring 提供了统一的事务抽象接口(如 DataSource…...

网络原理 - 4(TCP - 1)

目录 TCP 协议 TCP 协议段格式 可靠传输 几个 TCP 协议中的机制 1. 确认应答 2. 超时重传 完! TCP 协议 TCP 全称为 “传输控制协议”(Transmission Control Protocol),要对数据的传输进行一个详细的控制。 TCP 协议段格…...

SVT-AV1编码器中的模块

一 模块列表 1 svt_input_cmd_creator 2 svt_input_buffer_header_creator 3 svt_input_y8b_creator 4 svt_output_buffer_header_creator 5 svt_output_recon_buffer_header_creator 6 svt_aom_resource_coordination_result_creator 7 svt_aom_picture_analysis_result_creat…...

金融数据分析(Python)个人学习笔记(12):网络爬虫

一、导入模块和函数 from bs4 import BeautifulSoup from urllib.request import urlopen import re from urllib.error import HTTPError from time import timebs4:用于解析HTML和XML文档的Python库。 BeautifulSoup:方便地从网页内容中提取和处理数据…...

子网划分的学习

定长子网划分(Fixed-length Subnetting) 也叫做固定长度子网划分,是指在一个IP网络中,把网络划分成若干个大小相等的子网,每个子网的子网掩码长度是一样的。 一、定长子网划分的背景 在早期的IP地址分配中&#xff0…...

Spark2 之 memorypool

cpp/core/memory/ArrowMemoryPool.cc cpp/core/memory/MemoryAllocator.cc VeloxMemoryManager cpp/velox/memory/VeloxMemoryManager.cc VeloxMemoryManager::VeloxMemoryManager(const std::string& kind, std::unique_ptr<AllocationListe...

短视频+直播商城系统源码全解析:音视频流、商品组件逻辑剖析

时下&#xff0c;无论是依托私域流量运营的品牌方&#xff0c;还是追求用户粘性与转化率的内容创作者&#xff0c;搭建一套完整的短视频直播商城系统源码&#xff0c;已成为提升用户体验、增加商业变现能力的关键。本文将围绕三大核心模块——音视频流技术架构、商品组件设计、…...

IO流详解

IO流 用于读写数据的&#xff08;可以读写文件&#xff0c;或网络中的数据&#xff09; 概述 I指 Input&#xff0c;称为输入流&#xff1a;负责从磁盘或网络上将数据读到内存中去 O指Output&#xff0c;称为输出流&#xff0c;负责写数据出去到网络或磁盘上 因此&#xff…...

linux下使用wireshark捕捉snmp报文

1、安装wireshark并解决wireshark权限不足问题 解决linux普通用户使用Wireshark的权限不足问题_麒麟系统中wireshark 运行显示权限不够-CSDN博客 2、Linux下安装并配置SNMP软件包 &#xff08;deepseek给出的解答&#xff0c;目前会产生request包&#xff0c;但是会连接不上&a…...

ClickHouse 设计与细节

1. 引言 ClickHouse 是一款备受欢迎的开源列式在线分析处理 (OLAP) 数据库管理系统&#xff0c;专为在海量数据集上实现高性能实时分析而设计&#xff0c;并具备极高的数据摄取速率 1。其在各种行业中得到了广泛应用&#xff0c;包括众多知名企业&#xff0c;例如超过半数的财…...

Spring Boot 启动生命周期详解

Spring Boot 启动生命周期详解 1. 启动阶段划分 Spring Boot 启动过程分为 4个核心阶段&#xff0c;每个阶段涉及不同的核心类和执行逻辑&#xff1a; 阶段 1&#xff1a;预初始化&#xff08;Pre-initialization&#xff09; 目标&#xff1a;准备启动器和环境配置关键类&am…...

使用Java对接StockTV全球金融数据API。马来西亚金融数据API

以下是一篇关于如何使用Java对接StockTV API的教程博客&#xff0c;基于您提供的接口文档编写&#xff1a; 使用Java对接StockTV全球金融数据API 一、API简介 StockTV提供覆盖全球40交易所的实时金融市场数据&#xff0c;包括&#xff1a; 股票&#xff1a;印度、美股、A股等…...

逐位逼近法计算对数的小数部分

逐位逼近法&#xff08;Bit-by-Bit Approximation&#xff09;是一种通过 迭代和位操作 高效计算数学函数&#xff08;如对数、平方根等&#xff09;的方法。它特别适用于 不支持浮点运算的环境&#xff08;如区块链智能合约&#xff09;&#xff0c;因为所有计算均通过 整数乘…...

SpringbootWeb开发(注解和依赖配置)

Lombok 工具 Spring Web web开发相关依赖 MyBatis Framework MyBatis驱动 MySQL Driver MySql驱动包 Restful 风格 Slf4j 记录日志对象 RequestMapping(value “/depts”, method RequestMethod.GET) //指定请求方式为GET method 指定请求方式 GetMapping 限定请求方式为Get…...

【AI News | 20250422】每日AI进展

AI Repos 1、no-ocr 不需要复杂文本提取的 AI 文档处理工具&#xff0c;只需上传 PDF 文件&#xff0c;即可快速搜索或询问关于多个文档集合中的内容&#xff0c;无需依赖传统 OCR 技术&#xff0c;大大提升文档分析效率。创建和管理 PDF/文档集合&#xff0c;按"案例&qu…...

110. 平衡二叉树

目录 一、问题描述 二、解题思路 三、代码 四、复杂度分析 一、问题描述 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 二、解题思路 ✅ 平衡二叉树的定义 一棵二叉树是平衡的&#xff0c;满足以下两个条件&#xff1a; 左子树是平衡二叉树&#xff1b; 右子树…...

yarn的介绍与操作,yarn和npm的选择

&#x1f9f6; 一、Yarn 是什么&#xff1f; Yarn 是由 Facebook&#xff08;Meta&#xff09;开发的 JavaScript 包管理工具&#xff0c;用于替代 npm&#xff0c;解决它在早期版本中存在的一些问题。 ✅ Yarn 的优势&#xff08;v1.x&#xff09;&#xff1a; &#x1f4e…...

人工智能赋能医疗影像诊断:开启精准医疗新时代

在当今数字化、智能化飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正逐渐渗透到各个行业&#xff0c;其中医疗领域更是成为了 AI 技术大展身手的重要舞台&#xff0c;而医疗影像诊断作为医疗行业中的关键环节&#xff0c;正因 AI 的赋能而发生着深刻变革…...

【汽车ECU电控数据管理篇】S19文件格式解析篇章

一、S19格式是啥 在电控文件管理的初期阶段&#xff0c;我首次接触到的是 A2L 和 HEX 文件。其中&#xff0c;A2L 文件主要承担着描述性功能&#xff0c;它详细地描述了各种参数和配置等相关信息。而 HEX 文件则是一种刷写文件&#xff0c;其内部明确记录了具体的地址以及对应的…...

快速定位达梦缓存的执行计划并清理

开发告诉你一个sql慢&#xff0c;你想看看缓存中执行计划时&#xff0c;怎么精准快速定位&#xff1f; 可能一般人通过文本内容模糊搜索 select cache_item, substr(sqlstr,1,60)stmt from v$cachepln where sqlstr like %YOUR SQL STRING%; 搜出来的内容比较多&#xff0c;研…...

Windows 同步-Windows 单向链表和互锁链表

Windows 单向链表&#xff08;SList&#xff09;同步机制详解 核心概念 SList&#xff08;Singly-Linked List&#xff09;是一种基于非阻塞算法实现的线程安全链表结构&#xff0c;具有以下特性&#xff1a; ​​原子性操作​​&#xff1a;所有插入/删除操作均通过硬件级原…...

Trent硬件工程师培训完整135讲

课程大小&#xff1a;44.2G 课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/90616401 更多资源下载&#xff1a;关注我 ├──135讲配套资料 | ├──4620afc.pdf 707.58kb | ├──4620fa_chs.pdf 880.23kb | ├──4630fa.pdf 695.36kb | ├─…...

[PTA]2025 CCCC-GPLT天梯赛 胖达的山头

来源&#xff1a;L2-055 胖达的山头-Pintia题意&#xff1a;给定 n n n 个事件的起始和终止时刻(以hh:mm:ss给出)&#xff0c;求最多并行事件数。关键词&#xff1a;差分(签到,模板题)题解&#xff1a;将所有时刻转换为秒&#xff0c;当某事件开始1&#xff0c;结束则-1。按时…...

CSS 记载

CSS优先级 是通过一个权重值来决定的&#xff0c;这个权重值由以下几个部分组成&#xff1a; 内联样式&#xff1a;直接写在HTML元素的style属性中&#xff0c;权重最高。ID选择器&#xff1a;权重值为100。类选择器、属性选择器和伪类&#xff1a;权重值为10。元素选择器和伪…...

ESP32音频识别(FFT)实测调整(ESP-IDF 5.4)

#ifndef YC_AUDIO_H #define YC_AUDIO_H // I2S配置(根据硬件调整) #define I2S_CHANNEL I2S_NUM_0 #define I2S_BCK_PIN 42 #define I2S_WS_PIN 41 #define I2S_DATA_PIN 2 /*======= 系统配置 =======*/ #define FFT_SIZE 4096 // …...

解决找不到字体的问题

PlayerView在创建的时候回生成一个PlayerControlView&#xff0c;PlayerControlView构造方法中会用到字体。这个字体在某些机型上找不到。导致应用崩溃。报错信息大概是这样的 Binary XML file line #14: Error inflating class androidx.media3.ui.PlayerView androidx.media…...

交易所开发:构建高效数字交易枢纽

数字资产交易所在全球数字经济浪潮中已成为价值流通的核心枢纽。本文基于2025年最新技术标准和行业实践&#xff0c;从微秒级撮合引擎到跨链互操作性&#xff0c;从AI增强型风控到合规化路径&#xff0c;系统解析高效数字交易枢纽的构建方法论。 一、技术架构设计&#xff1a…...

极狐GitLab 项目功能和权限解读

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 项目功能和权限 (FREE ALL) 配置项目功能和权限 要配置项目的功能和权限&#xff1a; 1.在左侧边栏中&#xff0c;选择 搜…...

pdf多文件合并

【第三方工具】点我传送&#xff1a;https://www.ilovepdf.com/ 【java功能实现】 导入jar包 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artif…...

AI日报 - 2025年4月23日

&#x1f31f; 今日概览(60秒速览) ▎&#x1f916; AGI突破 | Sam Altman称指向AGI的系统初现端倪&#xff0c;强调安全标准紧迫性&#xff1b;DeepMind CEO预测AI 5-10年内具备科学猜想能力。 AGI定义及测试标准引关注 (Dario Amodei)&#xff0c;AI安全与非扩散方法成讨论焦…...

【RAG】一篇文章介绍多模态RAG(MRAG)

一、引言 研究背景与动机&#xff1a;随着大语言模型&#xff08;LLMs&#xff09;的广泛应用&#xff0c;其在处理复杂任务时暴露出如产生幻觉、算术能力不足和缺乏可解释性等问题。多模态学习的兴起为解决这些问题提供了新方向&#xff0c;通过融合图像、文本、音频等多种模…...

学习笔记:黑马程序员JavaWeb开发教程(2025.3.25)

11.3 案例-文件上传-本地存储 文件名后缀解决&#xff0c;找到文件最后一个点的位置&#xff0c;截取点及其后面的字符&#xff0c;得到扩展名。代码实现&#xff0c;找到最后一个点的位置&#xff0c;使用方法originalFilename.lastIndexOf(“.”)&#xff0c;括号里面是指…...

启动当前文件夹下所有快捷方式批处理bat文件

新建文本文件写入下列代码 ​ echo off chcp 65001 >nul setlocal enabledelayedexpansionfor %%F in (*.lnk) do (echo 正在运行&#xff1a;%%Fstart "" "%%F" )echo 所有快捷方式已启动。 exit​ 将文件重命名为 start.bat 双击运行...

蓝桥杯算法实战分享:C/C++ 题型解析与实战技巧

蓝桥杯全国软件和信息技术专业人才大赛&#xff0c;作为国内知名的算法竞赛之一&#xff0c;吸引了众多编程爱好者参与。在蓝桥杯的赛场上&#xff0c;C/C 因其高效性和灵活性&#xff0c;成为了众多选手的首选语言。本文将结合蓝桥杯的赛制特点、常见题型以及实战案例&#xf…...

IDEA下载kotlin-compiler-embeddable特别慢

问题&#xff1a; 在创建IDEA插件项目时发现 下载kotlin-compiler-embeddable特别慢&#xff0c;然后等待几十分钟然后失败 可以先用控制台显示正在下载的链接&#xff0c;下载好 jar包&#xff1a; https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compi…...

武装Burp Suite工具:HaE 分析辅助类_插件.【高亮标记和信息提取利器】

武装 Burp Suite 插件&#xff1a;HaE 分析辅助类. ​​HaE 分析辅助类​​是一款基于正则表达式的高效数据提取与标记工具&#xff0c;常用于安全测试、日志分析等场景&#xff0c;通过预定义规则快速定位敏感信息&#xff08;如API密钥、URL参数&#xff09;&#xff0c;提升…...

使用Nacos 打造微服务配置中心

一、背景介绍 Nacos 作为服务注册中心的使用方式&#xff0c;同时 Nacos 还可以作为服务配置中心&#xff0c;用于集中式维护各个业务微服务的配置资源。 作为服务配置中心的交互流程图如下。 这样设计的目的&#xff0c;有一个明显的好处就是&#xff1a;有利于对各个微服务…...

C++——多态、抽象类和接口

目录 多态的基本概念 如何实现多态 在C中&#xff0c;派生类对象可以被当作基类对象使用 编程示例 关键概念总结 抽象类 一、抽象类的定义 基本语法 二、抽象类的核心特性 1. 不能直接实例化 2. 派生类必须实现所有纯虚函数才能成为具体类 3. 可以包含普通成员函数和…...