AIGC入门,手搓大模型客户端与MCP交互第2集

AIGC工具系列之——基于OpenAI的GPT大模型搭建自己的AIGC工具 GPT大模型,AIGC工具教学,目前热门的AI话题 阅读详情

AIGC入门,手搓大模型客户端与MCP交互第2集

在上一篇文章中,我们初步实现了将大语言模型(LLM)与 Model Context Protocol(MCP)服务进行整合,使模型能够根据用户查询调用相应的工具(如获取当前时间、列出时区等)。然而,实践中我们发现,模型输出的 JSON 结构经常不规范,导致解析失败,严重影响系统可靠性。

本文在此基础上,提出并实现了一套更加鲁棒的参数提取机制,显著提升了工具调用的成功率。

一、背景与问题

最初的实现中,我们假设大模型(如 Phi-3)总是返回格式完美的 JSON,例如:

{
  "action": "call_tool",
  "tool_name": "get_current_time",
  "arguments": {"timezone": "Asia/Shanghai"}
}

但实际上,模型常常返回包含多余文本、注释、甚至格式错误的响应,例如:

我应该调用工具来获取时间。代码如下:
{
  "action": "call_tool",
  "tool_name": "get_current_time", // 这是工具名
  "arguments": {
    "timezone": "New York"
  }
}

这种非纯 JSON 响应会导致 json.loads() 解析失败,进而导致整个工具调用流程中断。

  • 有多余的中文内容

  • json字符串中间有注释内容

二、改进方案:鲁棒的 JSON 提取与验证

我们引入了两个关键函数来增强系统的容错能力:

extract_json_from_response(response_text)

该函数用于从模型响应中提取 JSON 对象,具备以下特性:

  • 移除注释:使用正则表达式清除单行(//)和多行(/* */)注释;

  • 多层解析策略:

    • 首先尝试直接解析整个响应;

    • 若失败,则使用递归正则表达式匹配最内层的完整 JSON 对象;

  • 支持嵌套结构:使用 regex 库的 (?R) 递归模式匹配嵌套的 JSON。

validate_tool_call(tool_call_data)

对提取出的 JSON 进行结构验证,确保包含必要的字段且类型正确:

  • 必须包含 “action”: “call_tool”;

  • 必须包含字符串类型的 tool_name;

  • arguments 为可选,但若存在则必须为字典类型。

三、完整代码解析

以下是改进后的核心代码段(省略部分重复内容):

def extract_json_from_response(response_text):
    # 清除注释
    cleaned_text = regex.sub(r'//.*?$', '', response_text, flags=regex.MULTILINE)
    cleaned_text = regex.sub(r'/\*.*?\*/', '', cleaned_text, flags=regex.DOTALL)
    
    try:
        return json.loads(cleaned_text)
    except json.JSONDecodeError:
        # 使用递归正则匹配嵌套JSON
        pattern = r'\{(?:[^{}]|(?R))*\}'
        json_match = regex.search(pattern, cleaned_text)
        if json_match:
            try:
                return json.loads(json_match.group())
            except:
                pass
    return None

def validate_tool_call(tool_call_data):
    if not isinstance(tool_call_data, dict):
        return False
    if tool_call_data.get("action") != "call_tool":
        return False
    if not isinstance(tool_call_data.get("tool_name"), str):
        return False
    if "arguments" in tool_call_data and not isinstance(tool_call_data["arguments"], dict):
        return False
    return True

完整的改进后的测试脚本如下

import asyncio
import sys
import traceback
import json
import regex

import ollama
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client


class MCPTimeClient:
    def __init__(self):
        self.server_params = StdioServerParameters(
            command=sys.executable,
            args=["time_server.py"],
            env=None
        )
        self.session = None
        self.tools_available = []

    async def __aenter__(self):
        """进入异步上下文管理器"""
        self._stdio_client = stdio_client(self.server_params)
        self._stdio_client_context = self._stdio_client.__aenter__()
        read, write = await self._stdio_client_context
        
        self.session = ClientSession(read, write)
        await self.session.__aenter__()
        
        # 初始化连接
        await self.session.initialize()

        # 获取可用工具
        tools_response = await self.session.list_tools()
        self.tools_available = [tool.name for tool in tools_response.tools]
        print(f"已连接到时间服务器,可用工具: {self.tools_available}")
        
        return self

    async def __aexit__(self, exc_type, exc_val, exc_tb):
        """退出异步上下文管理器"""
        if self.session:
            await self.session.__aexit__(exc_type, exc_val, exc_tb)
        await self._stdio_client.__aexit__(exc_type, exc_val, exc_tb)

    async def call_tool(self, tool_name, arguments):
        """调用指定的 MCP 工具"""
        if not self.session:
            return "错误: 未连接到时间服务器"

        if tool_name not in self.tools_available:
            return f"错误: 工具 '{tool_name}' 不可用"

        try:
            result = await self.session.call_tool(tool_name, arguments=arguments)
            # return result.content[0].text
            return result
        except Exception as e:
            # 打印错误堆栈
            print(f"错误堆栈:")
            traceback.print_exc()
            return f"调用工具时出错: {e}"


def extract_json_from_response(response_text):
    """
    从大模型响应中提取JSON内容,提供更强的容错能力
    
    参数:
        response_text (str): 大模型的原始响应文本
        
    返回:
        dict: 解析出的JSON对象,如果解析失败则返回None
    """
    if not response_text:
        return None

    # 移除单行注释 (//...)
    cleaned_text = regex.sub(r'//.*?$', '', response_text, flags=regex.MULTILINE)

    # 移除多行注释 (/*...*/)
    cleaned_text = regex.sub(r'/\*.*?\*/', '', cleaned_text, flags=regex.DOTALL)

    try:
        # 方法1: 直接尝试解析整个响应
        return json.loads(cleaned_text)
    except json.JSONDecodeError:
        # 如果解析失败,尝试提取第一个完整的 JSON 对象
        # json_match = regex.search(r'\{.*?\}', cleaned_text)
        pattern = r'\{(?:[^{}]|(?R))*\}'
        json_match = regex.search(pattern, cleaned_text)
        if json_match:
            try:
                print("正则匹配到字符串:   ", json_match.group())
                return json.loads(json_match.group())
            except json.JSONDecodeError:
                pass
    

    # 所有方法都失败
    return None


def validate_tool_call(tool_call_data):
    """
    验证工具调用数据的有效性
    
    参数:
        tool_call_data (dict): 解析出的工具调用数据
        
    返回:
        bool: 数据是否有效
    """
    if not isinstance(tool_call_data, dict):
        return False
        
    if tool_call_data.get("action") != "call_tool":
        return False
        
    if "tool_name" not in tool_call_data:
        return False
        
    # 工具名称必须是字符串
    if not isinstance(tool_call_data["tool_name"], str):
        return False
        
    # 参数字段可选,但如果存在必须是字典类型
    if "arguments" in tool_call_data and not isinstance(tool_call_data["arguments"], dict):
        return False
        
    return True


async def ask_llm_with_mcp(user_query):
    """
    使用大模型分析用户查询,并决定是否需要调用 MCP 服务

    参数:
        user_query (str): 用户查询

    返回:
        str: 最终响应
    """
    # 初始化 MCP 客户端
    async with MCPTimeClient() as mcp_client:
        # 构建系统提示,告诉大模型可用的工具和调用方式
        system_prompt = f"""
        你是一个AI助手,可以回答用户问题并决定是否需要调用时间服务。

        你可以使用的工具:
        - get_current_time: 获取指定时区的当前时间,参数: timezone (时区名称)
        - list_common_timezones: 获取常见时区列表,无参数

        调用格式:
        如果需要调用工具,请以以下JSON格式回复:
        {{
            "action": "call_tool",
            "tool_name": "工具名称",
            "arguments": {{参数键: 参数值}}
        }}

        如果不需要调用工具,请直接回复答案。

        当前可用工具: {mcp_client.tools_available}
        """

        # 第一次询问大模型
        print(f"大模型提示词: {system_prompt}")
        print(f"用户查询: {user_query}")
        print("询问大模型是否需要调用工具...")

        response = ollama.chat(
            model="phi3:mini",
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": user_query}
            ]
        )

        model_response = response['message']['content']
        print(f"大模型初始响应: {model_response}")

        # 尝试解析大模型的响应,看是否要调用工具
        try:
            # 使用改进的解析方法
            tool_call = extract_json_from_response(model_response)
            
            if tool_call and validate_tool_call(tool_call):
                tool_name = tool_call.get("tool_name")
                arguments = tool_call.get("arguments", {})

                print(f"大模型决定调用工具: {tool_name}, 参数: {arguments}")

                # 调用MCP工具
                tool_result = await mcp_client.call_tool(tool_name, arguments)
                print(f"工具调用结果: {tool_result}")
                return tool_result

        except Exception as e:
            print(f"解析大模型响应时出错: {e}")
            # 打印异常堆栈以便调试
            traceback.print_exc()
            # 如果解析失败,直接返回大模型的原始响应
            pass

        # 如果不需要调用工具或解析失败,直接返回大模型的响应
        return model_response


async def main():
    """主函数,处理多个示例查询"""
    examples = [
        "现在几点了?",
        "纽约现在是什么时间?",
        "给我列出一些常见的时区",
        "Invalid/Timezone 现在的时间是多少?",
        "讲一个关于时间旅行的故事"
    ]

    for query in examples:
        print("\n" + "=" * 60)
        print(f"处理查询: {query}")

        response = await ask_llm_with_mcp(query)

        print("\n最终响应:")
        print(response)
        print("=" * 60)


if __name__ == "__main__":
    # 运行主函数
    asyncio.run(main())

四、测试与效果

我们使用以下示例查询进行测试:

examples = [
    "现在几点了?",
    "纽约现在是什么时间?",
    "给我列出一些常见的时区",
    "Invalid/Timezone 现在的时间是多少?",
    "讲一个关于时间旅行的故事"
]

改进后,系统能够:

  • 正确解析带注释的 JSON;

  • 从非结构化文本中提取 JSON 对象;

  • 在无法提取时降级返回模型原始响应,避免中断;

  • 对无效工具调用进行验证和过滤。

五、总结与展望

本文通过引入更强的 JSON 提取和验证机制,显著提升了大模型与 MCP 服务交互的可靠性。下一步可能的优化包括:

  • 支持多工具调用(multi-tool calling);

  • 引入上下文记忆,支持多轮对话中的工具调用;

  • 整合更多类型的 MCP 服务(如数据库、API 等)。

通过不断优化解析策略和扩展工具集,我们可以构建更强大、更可靠的 AI 代理系统,更好地服务于实际应用场景。

从Cherry Studio 入门 MCP:为你的大模型插上翅膀 简单来说,MCP 是一种接口协议,它是连接 API 和大模型的桥梁。通过 MCP,我们可以调用和操作第三方工具,从而扩展大模型的能力边界。MCP 让大模型不再局限于预训练的知识,而是能够实时地与外部世界互动。MCP 协议就像为大模型添加了翅膀,让它们能够突破自身的限制,与外部世界进行互动。通过 Cherry Studio 这样易用的工具,我们可以轻松地为自己的大模型配置各种 MCP 服务,从而解锁更多可能性。 阅读详情

相关推荐

MCP实战-基于Ollama+qwen2.5以sse方式实现MCP协议工具调用

指导实现基于Ollama+qwen2.5以sse方式实现MCP协议工具调用

AI agent 4894

AIGC入门,手搓大模型客户端与MCP交互

本文介绍了一个基于MCP协议和Ollama本地大模型的智能时间查询系统。该系统由两部分组成:时间服务器(time_server.py)提供获取当前时间和列出时区的工具函数;客户端(time_client_test3.py)利用Ollama模型分析用户查询并智能调用时间服务。时间服务器实现了完整的时区处理和错误提示功能,通过MCP协议暴露工具接口。客户端采用异步连接管理和多重策略解析模型响应,能够智能判断是否需要调用时间服务工具。这种架构展示了如何将大语言模型与专用工具服务相结合,构建既能理解自然语言又能精准

明月专栏 990

MCP(大模型协议文本)服务 的详细解析

(如阿里云、华为的定制化解决方案),建议提供更多上下文以便精准解析。(模型协作协议),是一种专为。设计的标准化协议或服务框架。若您指的是某个特定厂商的。的详细解析,结合其在。

主攻大数据 人工智能 物联网 安全 低空经济等方向。mtsc 、gtest特邀分享嘉宾 1026

手搓一个与多PPT文档对话的RAG引擎,并封装MCP Server。

本文介绍了一种基于视觉模型的多PPT文档RAG引擎实现方案,并将其封装为MCP Server。系统通过LibreOffice和Pdfium将PPT转换为图片,利用视觉模型解析内容并生成Markdown格式,使用LlamaIndex框架构建向量索引。MCP Server提供文档管理(添加/删除)、状态查询和对话交互功能,支持将解析结果与源PPT页面截图关联,增强回答的可溯源性。该方案实现了PPT文档的深度解析和动态索引管理,并采用缓存机制优化处理效率。源代码见文末。

qkh1234567的博客 760

掌握 AIGC 领域 MCP 模型上下文协议,开启技术新征程

本文旨在系统介绍 AIGC 领域的 MCP 模型上下文协议,包括其设计原理、实现方式和应用价值。内容涵盖从基础概念到高级应用的全方位知识,适合希望在 AIGC 领域深入发展的技术人员阅读。本文将首先介绍 MCP 协议的基本概念,然后深入其技术细节,包括架构设计、核心算法和实现方式。接着我们将探讨实际应用案例和未来发展方向。AIGC:人工智能生成内容(Artificial Intelligence Generated Content),指由 AI 系统自动生成的各种形式的内容MCP。

SuperAGI2025 1095

AIGC 领域 MCP 模型上下文协议:应用场景大揭秘

在人工智能生成内容(AIGC)领域,模型之间的交互和信息共享变得越来越重要。MCP 模型上下文协议作为一种用于规范模型上下文数据交互的协议,旨在解决不同模型之间上下文信息传递的问题,提高模型的协作效率和生成内容的质量。本文的目的是深入探讨 MCP 模型上下文协议的原理、应用场景以及相关技术细节,为研究人员、开发者和从业者提供全面的参考。本文的范围涵盖了 MCP 模型上下文协议的核心概念、算法原理、数学模型、项目实战案例以及实际应用场景等方面。

SuperAGI2025 991

AIGC时代的新风口!MCP协议引领未来无限可能

MCP是由Anthropic主导推出的一种开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的通信。它如同AI领域的“USB-C接口”,通过统一协议连接大语言模型与本地文件、数据库、API等资源,打破数据孤岛,实现“即插即用”的智能交互[1][7][8]。MCP主机(MCP Hosts):发起请求的AI应用程序,如聊天机器人、AI驱动的IDE、个人助理等[1][3][8]。MCP客户端(MCP Clients):在主机程序内部,与MCP服务器保持1:1的连接,负责发送请求和接收响应。

程序边界 9256

脑机接口(BCI)从原理到开发实战 07|运动想象BCI实战:基于BCI Competition IV 2a数据集

本文基于BCI Competition IV 2a数据集,详细介绍运动想象脑机接口系统的全流程实现。首先概述了该数据集的实验范式、参数特点和优势,然后指导环境准备与数据下载。通过代码示例展示了数据加载、事件标记提取和信号可视化方法。重点构建了完整的预处理流水线,包括通道选择、重参考、带通滤波(8-30Hz)和ICA去伪迹等关键步骤。文章旨在帮助读者将零散的BCI知识整合为完整的实战项目,掌握从原始脑电数据到运动意图解码的核心技术。

小明的博客 852

大模型——MCP快速入门实现

MCP 是一个开放协议,它为应用程序向 LLM 提供上下文的方式进行了标准化。你可以将 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化的方式一样,MCP 为 AI 模型连接各种数据源和工具提供了标准化的接口。•Hosts是 LLM 应用(如 Claude Desktop 或 IDEs),它们发起连接•Clients在 host 应用中与 servers 保持 1:1 的连接•Servers。

jennycisp的博客 1181

从零搭建自动驾驶仿真环境:我的Nuplan-devkit实战笔记(含PyCharm配置技巧)

本文详细记录了从零搭建Nuplan-devkit自动驾驶仿真环境的完整流程,包括conda环境配置、pip版本控制、PyCharm专业版集成等关键步骤。特别针对Ubuntu系统下的依赖管理、数据目录优化和性能调优提供了实用技巧,帮助开发者高效构建稳定的自动驾驶仿真开发环境。

weixin_30505225的博客 480

【技术拆解】Illumina边合成边测序(SBS)核心流程全解析 | 从文库构建到数据分析

本文深入解析了Illumina边合成边测序(SBS)技术的完整流程。从DNA样本的文库构建(片段化、加接头、扩增),到Flowcell上的簇生成(桥式PCR),再到核心的边合成边测序(SBS)循环(荧光标记、可逆终止),最后简述了从原始数据到生物学洞见的数据分析步骤,为理解这一主流高通量测序技术提供了清晰的框架。

weixin_29201859的博客 540

AIGC时代的新风口!MCP协议引领未来无限可能_aigc mcp

MCP是由Anthropic主导推出的一种开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的通信。它如同AI领域的“USB-C接口”,通过统一协议连接大语言模型与本地文件、数据库、API等资源,打破数据孤岛,实现“即插即用”的智能交互[1][7][8]。MCP主机(MCP Hosts):发起请求的AI应用程序,如聊天机器人、AI驱动的IDE、个人助理等[1][3][8]。MCP客户端(MCP Clients)

HUANGXIN9898的博客 1159

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1119

AIGC浪潮下,风靡全球的Mcp到底是什么?一文讲懂,技术小白都知道!!

上年这个时候,刚拿到录取通知书。哥哥教我用ai智能体,其实就是向我炫技。当时我问他,为什么不能直接给我生成图表,直接给我生成多好,省得我再去复制了。他说,其实很简单,只要做个接口协议什么的就行,只是目前国内没人做。当时说的很高深,我也听不懂。没想到年底,这个功能就实现内测了。在某种程度上,我也算是预言了哈哈。

爱因斯晨的博客 2283

电机控制-PMSM无感FOC控制(四)SVPWM——过调制

上一章我们提到了SVPWM矢量合成的范围在一个平面的矢量圆内,那么当电压矢量超出调制范围时,该怎么做呢?这就是过调制要解决的问题。电机控制-PMSM无感foc控制(三)SVPWM据之前讲解的内容我们可以知道,SVPWM技术在电压空间上模拟了一个近似于圆的电压轨迹,减小了相电流的谐波,降低了电机的谐波损耗,抑制了转矩脉动。然而,SVPWM技术也存在一些问题,合成电压矢量有极限便是其中之一。这个半径为√3/3Vdc的区域也被称作SVPWM的线性区域。

zhuxinmingde的博客 1319

DeepSeek 在 PostgreSQL 中,执行 `DELETE` 操作后,数据占用的空间并不会立即释放给操作系统

操作后,数据占用的空间并不会立即释放给操作系统。这是 PostgreSQL 的 MVCC(多版本并发控制)机制决定的——删除的数据只是被标记为“死元组”,物理空间仍然被表占用。这是最彻底的释放方式,会将表重写为一个没有空洞的新文件,将空间返回给操作系统。如果你的表非常大(如几百GB),或者这是生产环境的核心表,建议优先考虑。你可以告诉我你的表大概多大、是否能接受锁表,我可以给你更精确的建议。要真正释放空间,需要根据你的实际需求,从以下三种方案中选择一种。如果你既想彻底释放空间,又无法接受锁表,

m0_37843156的博客 405

【混元AIGC+腾讯云智能体+首创Coze核心流思维导图MCP】:打造一个文思通-智能写作助手Agent

"文思通-智能写作助手"是一款基于腾讯混元AIGC大模型和腾讯云智能体平台的AI写作工具,旨在解决内容创作者在写作过程中遇到的灵感枯竭、结构混乱等问题。该工具通过结合自研的思维导图MCP服务,实现了从文本到可视化思维导图的自动转换,帮助用户理清写作思路。其主要功能包括内容生成、结构引导、语言优化和可视化辅助等。开发流程采用了混元AIGC作为核心引擎,腾讯云智能体平台作为操作系统,并集成了思维导图MCP插件。最终构建的工作流能够根据用户需求自动生成大纲、优化文本并输出思维导图,显著提升了写

LucianaiB的博客 13万+

【Unity】Gif图片播放插件(支持UI及模型纹理渲染两种模式)

unity本身不支持GIF格式文件直接渲染, 因此一般的做法是通过加载图片,通过代码控制其循环播放、停止等,模拟动画效果,本文简单介绍一下某个现有开源工具,感谢开源作者。

灵境引路人 4036

AIGC、Agent、MCP、A2A和AG-UI促进AI从基础能力到协同生态演进

近年来,人工智能技术迎来爆发式发展,AIGC、Agent、MCP等概念相继涌现并快速迭代,推动AI从单一工具向协同生态演进,AI技术从“能对话”进化到“能干活”。2022年ChatGPT点燃了AIGC;Function Calling催生了Agent;再往后,行业发现「如何让模型低成本地调用外部世界」成为新瓶颈,于是MCP、A2A和AG-UI三大协议陆续登场。

智海观潮的博客 847

基于STM32L4XX、HAL库的 ATGM336H GPS定位模块驱动程序设计

/ 转换为km/h。// 定位状态: 0=无效, 1=GPS定位, 2=差分定位。// GPS解析数据。支持GPS/BeiDou/GLONASS/Galileo/QZSS多系统联合定位。// 回调函数(需要在HAL_UART_RxCpltCallback中调用)// 地面速度(km/h)// 海拔高度(m)

zhusl6688的博客 794

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【AI大模型】手搓一个与多PPT文档对话的RAG引擎,并封装MCP Server

在RAG管道创建时,PPT是一个比较麻烦的文档类型,因为它的信息表达不像纯文本那样直接,也不像表格有固定的结构,之前也介绍过利用第三方的解析工具来完成。本篇我们将直接借助视觉模型构建一个多PPT文档的RAG查询管道,并将其封装到MCP Server中以方便集成到其他客户端或Agent应用。

Gaga246的博客 936

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【AI大模型教程】手搓一个与多PPT文档对话的RAG引擎,并封装MCP Server,建议收藏!!

在RAG管道创建时,PPT是一个比较麻烦的文档类型,因为它的信息表达不像纯文本那样直接,也不像表格有固定的结构,之前也介绍过利用第三方的解析工具来完成。本篇我们将直接借助视觉模型构建一个多PPT文档的RAG查询管道,并将其封装到MCP Server中以方便集成到其他客户端或Agent应用。

Gaga246的博客 1048

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

看完这10张动图,你会彻底理解 MCP 的架构原理!

*最近,模型上下文协议(MCP)特别火,你可能已经听说过了。今天,我们来搞懂它到底是个啥。简单来说,。就像 USB-C 提供了一个标准化的方式来连接各种配件一样,。让我们稍微深入一点,。MCP 的核心是客户端-服务器架构,一个主机应用可以连接到多个服务器。。在我们深入之前,先简单了解一下👇主机代表任何 AI 应用(比如:Claude 桌面版,Cursor),它提供了 AI 交互的环境,访问工具和数据,并运行 MCP 客户端。MCP 客户端在主机内部运行,以实现与 MCP 服务器的通信。

jennycisp的博客 3713

雅菲奥朗带您一篇知晓A2A(Agent2Agent)& A2A vs MCP

2025年4月9日,Google发布了Agent2AgentProtocol(A2A),旨在提升不同AIAgent之间的互操作性,使其能够在各种企业平台或应用程序上安全地通信、交换信息并协调行动。A2A协议通过客户端Agent和远程Agent的通信实现任务传达与执行,具备安全协作、任务状态管理、用户体验协商和功能发现等关键能力。与Anthropic的模型上下文协议(MCP)相比,A2A更强调Agent之间的对等互操作,而MCP则侧重于为LLMs/Agent提供上下文。

weixin_46959162的博客 1081

【小白教程】一文搞懂 AI、LLM、Prompt、MCP、AIGC 是什么,有什么区别?收藏就对了

在 ChatGPT、文心一言、通义千问等这些 AI 工具爆火的时代,你可能经常听到这些词如:AI、LLM、Prompt、MCP、AIGC。那么,它们到底是什么呢?有什么区别呢? 接下来,我们一起来了解一下,不然和别人说起 AI 人工智能时,这些概念不懂就很拉了。

2401_85327249的博客 1277

AI 领域必懂 5 大核心概念:AI、LLM、Prompt、MCP、AIGC 一次讲透

AI 领域必懂 5 大核心概念:AI、LLM、Prompt、MCP、AIGC 一次讲透

youmaob的博客 1429
上一篇: Git高级操作:提升开发效率的实用别名设置
下一篇: 机器学习入门,无监督学习之K-Means聚类算法完全指南:面向Java开发者的Python实现详解
明月(Alioo)
博客等级 码龄18年 267粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月(Alioo)

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值