MCP、Function Call与AI Agent详解

探索大模型与外部世界连接的三大核心技术

目录

1. 引言 2. MCP (模型上下文协议) 2.1 概念介绍 2.2 架构原理 2.3 运行机制 2.4 应用场景 2.5 代码示例 3. Function Call (函数调用) 3.1 概念介绍 3.2 工作原理 3.3 使用场景 3.4 代码示例 4. AI Agent (智能体) 4.1 概念介绍 4.2 架构原理 4.3 常见框架 4.4 应用场景 4.5 代码示例 5. 三者关系与集成应用 6. 未来发展趋势 7. 总结

引言

随着大型语言模型(LLM)技术的快速发展,AI系统与外部世界的交互变得越来越重要。虽然LLM能够理解和生成人类语言,但它们本身缺乏与外部系统交互的能力,无法直接访问实时信息或执行具体操作。为了解决这一问题,三项关键技术应运而生:

MCP (模型上下文协议)

标准化AI模型与外部数据源交互的开放协议,被誉为"AI的USB-C接口"

Function Call (函数调用)

让大模型能够识别何时调用预定义函数,实现与外部工具的精确交互

AI Agent (智能体)

能够自主感知、决策和执行操作的智能实体,实现复杂任务的自动化

这三项技术共同构成了现代AI系统连接外部世界的技术基础,使AI能够跨越"信息孤岛"的限制,实现更加强大和实用的功能。本文将深入剖析这三项技术的概念、原理、架构和应用场景,帮助读者全面理解它们在AI技术生态中的重要角色。

MCP (模型上下文协议)

概念介绍

MCP (Model Context Protocol,模型上下文协议) 是由Anthropic公司提出的一种开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具的交互方式。它被形象地称为"AI的USB-C接口",提供了一种通用的连接标准,使AI模型能够以一致的方式访问和操作各种数据源和工具。

MCP的核心价值

MCP的主要目的在于解决当前AI模型因数据孤岛限制而无法充分发挥潜力的难题。通过标准化的接口,MCP使得AI应用能够安全地访问和操作本地及远程数据,为AI应用提供了连接万物的接口。

架构原理

MCP协议采用了客户端-服务器架构,将LLM与资源之间的通信划分为三个主要部分:

MCP客户端 (AI应用/LLM) MCP服务器 (处理请求/响应) 资源 (数据源/工具) 请求 响应 转发请求 返回数据
  • MCP客户端:通常是AI应用程序(如Claude Desktop或其他LLM工具),负责发起请求并与服务器通信。
  • MCP服务器:核心组件,负责接收客户端的请求,转发给相应的资源,然后将资源的响应返回给客户端。
  • 资源:各种数据源和工具,例如文件系统、数据库、API等,MCP服务器通过标准接口与它们交互。

运行机制

MCP的运行机制围绕请求-响应模型设计,主要包括以下几个步骤:

  1. 会话初始化:客户端(通常是LLM应用)初始化与MCP服务器的会话。
  2. 资源发现:客户端查询服务器提供的可用资源和工具。
  3. 请求构建:客户端构建针对特定资源的请求,包含操作类型和必要参数。
  4. 请求转发:MCP服务器接收请求,验证后转发给相应的资源处理器。
  5. 资源操作:资源处理器执行请求的操作(如读取文件、查询数据库)。
  6. 结果返回:操作结果通过MCP服务器返回给客户端。
  7. 上下文整合:客户端将获取的信息整合到LLM的上下文中,用于生成更准确的响应。

MCP生命周期示例

假设用户询问关于本地文档内容的问题,MCP的处理流程如下:

  1. LLM识别需要访问本地文件的意图
  2. 通过MCP客户端发送文件读取请求
  3. MCP服务器接收请求并转发给文件系统资源处理器
  4. 文件系统处理器读取文件内容并返回
  5. MCP服务器将文件内容传回客户端
  6. LLM接收文件内容并基于此生成回答

应用场景

MCP协议凭借其灵活性和标准化的特点,已在众多领域找到应用:

文件系统集成

允许AI应用安全地访问本地文件系统,读取、分析文档内容,无需用户手动上传。

数据库查询

通过标准接口连接各类数据库,使AI能够直接查询和分析结构化数据。

Web浏览和搜索

使AI能够实时访问Web内容,搜索最新信息,增强回答的时效性和准确性。

API集成

标准化与各种API的交互,使AI能轻松访问天气、股票、地图等第三方服务。

开发环境增强

在IDE中集成MCP,使AI助手能访问项目代码、文档,提供更精准的编程辅助。

智能助手增强

使个人AI助手能够访问个人日历、邮件、笔记等信息,提供个性化服务。

代码示例

以下是使用Python实现简单MCP服务器和客户端的示例代码:

MCP服务器实现示例


# 简化的MCP服务器实现
from flask import Flask, request, jsonify
import os

app = Flask(__name__)

# 资源处理器字典
resource_handlers = {
    "filesystem": {
        "read_file": lambda path: open(path, "r").read() if os.path.exists(path) else "File not found",
        "list_directory": lambda path: os.listdir(path) if os.path.exists(path) else "Directory not found"
    },
    "calculator": {
        "add": lambda a, b: a + b,
        "subtract": lambda a, b: a - b,
        "multiply": lambda a, b: a * b,
        "divide": lambda a, b: a / b if b != 0 else "Division by zero error"
    }
}

@app.route("/mcp/resources", methods=["GET"])
def get_resources():
    """返回所有可用资源及其支持的操作"""
    return jsonify({"resources": list(resource_handlers.keys())})

@app.route("/mcp/resource//operations", methods=["GET"])
def get_operations(resource_name):
    """返回特定资源支持的操作"""
    if resource_name in resource_handlers:
        return jsonify({"operations": list(resource_handlers[resource_name].keys())})
    return jsonify({"error": "Resource not found"}), 404

@app.route("/mcp/execute", methods=["POST"])
def execute_operation():
    """执行资源操作"""
    data = request.json
    resource = data.get("resource")
    operation = data.get("operation")
    params = data.get("params", {})
    
    if resource not in resource_handlers:
        return jsonify({"error": f"Resource '{resource}' not found"}), 404
    
    if operation not in resource_handlers[resource]:
        return jsonify({"error": f"Operation '{operation}' not supported by '{resource}'"}), 404
    
    try:
        # 执行操作
        result = resource_handlers[resource][operation](**params)
        return jsonify({"result": result})
    except Exception as e:
        return jsonify({"error": str(e)}), 500

if __name__ == "__main__":
    app.run(debug=True, port=5000)

MCP客户端实现示例


# 简化的MCP客户端实现
import requests
import json

class MCPClient:
    def __init__(self, server_url="http://localhost:5000/mcp"):
        self.server_url = server_url
        
    def get_available_resources(self):
        """获取所有可用资源"""
        response = requests.get(f"{self.server_url}/resources")
        return response.json()
    
    def get_resource_operations(self, resource_name):
        """获取资源支持的操作"""
        response = requests.get(f"{self.server_url}/resource/{resource_name}/operations")
        return response.json()
    
    def execute_operation(self, resource, operation, params={}):
        """执行资源操作"""
        payload = {
            "resource": resource,
            "operation": operation,
            "params": params
        }
        response = requests.post(f"{self.server_url}/execute", json=payload)
        return response.json()

# 使用示例
def llm_with_mcp():
    client = MCPClient()
    
    # 获取可用资源
    resources = client.get_available_resources()
    print(f"Available resources: {resources}")
    
    # 读取文件内容
    file_content = client.execute_operation(
        "filesystem", 
        "read_file", 
        {"path": "example.txt"}
    )
    print(f"File content: {file_content}")
    
    # 执行计算
    calculation = client.execute_operation(
        "calculator", 
        "add", 
        {"a": 5, "b": 3}
    )
    print(f"Calculation result: {calculation}")
    
    # 这里将获取的信息提供给LLM...
    
if __name__ == "__main__":
    llm_with_mcp()

Function Call (函数调用)

概念介绍

Function Calling(函数调用)是一种使大型语言模型(LLM)能够识别何时以及如何调用外部函数的技术。通过这种能力,LLM可以将用户的自然语言请求转换为结构化的函数调用,从而执行特定的操作或获取外部信息。

Function Call的核心价值

Function Call弥补了LLM自身的局限性,使其能够进行实时信息查询、执行计算、调用外部API等操作。这使得LLM从纯文本生成器转变为能够与外部系统交互的智能助手。

工作原理

Function Call的工作原理可以分为以下几个关键步骤:

用户输入 LLM处理 函数调用决策 返回JSON结果 函数执行(应用) 结果处理 最终响应
  1. 函数定义:开发者预先定义可调用的函数集合,包括函数名称、参数及其类型、描述等信息。
  2. 意图识别:LLM分析用户输入,判断是否需要调用函数来完成请求。
  3. 参数提取:从用户输入中提取必要的参数信息,并尝试填充到函数参数中。
  4. 函数选择:LLM从可用函数列表中选择最合适的函数来响应用户请求。
  5. JSON输出:LLM生成标准化的JSON输出,包含函数名和参数值。
  6. 函数执行:应用程序接收JSON输出,实际执行相应的函数调用。
  7. 结果整合:将函数执行结果返回给LLM,用于生成最终回复。

重要说明

需要注意的是,LLM本身并不执行函数,而是生成函数调用的结构化描述(通常为JSON格式)。实际的函数执行发生在应用程序中,这种设计保证了安全性和灵活性。

使用场景

Function Call技术在多种场景下展现出巨大价值:

数据检索与查询

查询数据库、搜索引擎或知识库,获取最新或特定信息。

复杂计算

执行LLM不擅长的精确数学计算、统计分析或金融运算。

第三方服务集成

调用外部API查询天气、股票价格、交通状况等实时信息。

工具操作

控制智能家居设备、发送邮件、安排日程等自动化操作。

结构化数据处理

解析、转换和格式化复杂的数据结构,如JSON、XML等。

业务流程自动化

执行订单处理、预订服务、客户支持等业务流程操作。

代码示例

以下是使用OpenAI API实现Function Call的示例代码:


import openai
import json
import requests
from datetime import datetime

# 配置OpenAI API密钥
openai.api_key = "your-api-key"

# 定义函数
functions = [
    {
        "name": "get_weather",
        "description": "获取指定城市的天气信息",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "城市名称,如'北京'、'上海'等"
                },
                "date": {
                    "type": "string",
                    "description": "查询日期,格式为YYYY-MM-DD,默认为今天"
                }
            },
            "required": ["city"]
        }
    },
    {
        "name": "calculate",
        "description": "执行数学计算",
        "parameters": {
            "type": "object",
            "properties": {
                "operation": {
                    "type": "string",
                    "enum": ["add", "subtract", "multiply", "divide"],
                    "description": "数学运算类型"
                },
                "x": {
                    "type": "number",
                    "description": "第一个操作数"
                },
                "y": {
                    "type": "number",
                    "description": "第二个操作数"
                }
            },
            "required": ["operation", "x", "y"]
        }
    }
]

# 实际函数实现
def get_weather(city, date=None):
    """模拟获取天气信息的函数"""
    if date is None:
        date = datetime.now().strftime("%Y-%m-%d")
        
    # 在实际应用中,这里会调用天气API
    # 这里使用模拟数据
    weather_data = {
        "北京": {"temperature": "25°C", "condition": "晴天", "humidity": "40%"},
        "上海": {"temperature": "28°C", "condition": "多云", "humidity": "65%"},
        "广州": {"temperature": "31°C", "condition": "阵雨", "humidity": "80%"}
    }
    
    if city in weather_data:
        return {
            "city": city,
            "date": date,
            "weather": weather_data[city]
        }
    else:
        return {"error": f"没有找到{city}的天气信息"}

def calculate(operation, x, y):
    """执行数学计算"""
    operations = {
        "add": lambda a, b: a + b,
        "subtract": lambda a, b: a - b,
        "multiply": lambda a, b: a * b,
        "divide": lambda a, b: a / b if b != 0 else "错误:除数不能为零"
    }
    
    if operation in operations:
        result = operations[operation](x, y)
        return {
            "operation": operation,
            "x": x,
            "y": y,
            "result": result
        }
    else:
        return {"error": f"不支持的运算: {operation}"}

# 使用Function Call处理用户请求
def process_user_request(user_message):
    # 调用OpenAI API
    response = openai.ChatCompletion.create(
        model="gpt-4",  # 或其他支持Function Call的模型
        messages=[{"role": "user", "content": user_message}],
        functions=functions,
        function_call="auto"  # 让模型决定是否调用函数
    )
    
    # 获取模型响应
    assistant_message = response["choices"][0]["message"]
    
    # 检查是否有函数调用
    if assistant_message.get("function_call"):
        # 获取函数调用信息
        function_name = assistant_message["function_call"]["name"]
        function_args = json.loads(assistant_message["function_call"]["arguments"])
        
        # 执行相应函数
        if function_name == "get_weather":
            function_response = get_weather(**function_args)
        elif function_name == "calculate":
            function_response = calculate(**function_args)
        else:
            function_response = {"error": f"未知函数: {function_name}"}
            
        # 将函数执行结果返回给模型,生成最终响应
        final_response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=[
                {"role": "user", "content": user_message},
                assistant_message,
                {
                    "role": "function",
                    "name": function_name,
                    "content": json.dumps(function_response)
                }
            ]
        )
        
        return final_response["choices"][0]["message"]["content"]
    else:
        # 如果没有函数调用,直接返回模型的回复
        return assistant_message["content"]

# 测试示例
user_queries = [
    "北京今天天气怎么样?",
    "计算23乘以45等于多少?",
    "告诉我上海明天的天气预报"
]

for query in user_queries:
    print(f"\n用户: {query}")
    response = process_user_request(query)
    print(f"助手: {response}")

AI Agent (智能体)

概念介绍

AI Agent(人工智能智能体)是一种能够感知环境、进行决策和执行动作的智能实体。不同于传统的人工智能系统,AI Agent具备通过独立思考、调用工具去逐步完成给定任务的能力,展现出一定程度的自主性和目标导向性。

AI Agent的核心特征

AI Agent的核心特征包括:自主性(能够独立决策),反应性(能够感知并响应环境变化),前瞻性(能够设定目标并主动行动),以及社交能力(能够与其他Agent或人类进行交互和协作)。

架构原理

现代AI Agent通常基于LLM构建,其架构主要包含以下几个核心组件:

AI Agent架构 大型语言模型 (LLM) 理解、规划、推理和生成能力 工具集成 API、函数、外部系统 记忆系统 短期和长期记忆存储 规划引擎 任务分解和执行策略 环境感知 输入处理和上下文理解 执行环节 行动执行和结果反馈
  • 大型语言模型 (LLM):作为Agent的大脑,负责理解用户意图、推理、规划和生成内容。
  • 工具集成:允许Agent调用各种外部工具和API,扩展其能力边界。
  • 记忆系统:存储对话历史、过去执行的操作和获取的信息,支持短期和长期记忆。
  • 规划引擎:将复杂任务分解为可管理的步骤,制定执行策略。
  • 环境感知:处理用户输入和环境信息,建立上下文理解。
  • 执行环节:实际执行规划的行动,并收集执行结果的反馈。

AI Agent的工作流程

AI Agent的典型工作流程包括:感知(接收用户输入或环境信息)→ 思考(理解、规划和决策)→ 行动(选择并执行工具或操作)→ 反馈(评估结果并调整计划)→ 反馈给用户。

常见框架

目前已有多种框架可用于构建AI Agent,以下是几个主流框架的比较:

框架名称 特点 适用场景 技术栈
LangChain 提供多种组件和工具链接,高度灵活,社区活跃 通用AI应用开发,文档处理,问答系统 Python,JavaScript
AutoGen 支持多Agent协作,自动化对话和工作流 复杂多步骤任务,需要多个专家协作的场景 Python
CrewAI 专注于多Agent团队协作,角色定义清晰 团队协作任务,需要明确分工的复杂流程 Python
Semantic Kernel 微软推出,与Azure服务深度集成 企业级应用,需要与微软生态系统集成 .NET,Python,Java
LlamaIndex 专注于数据索引和检索,RAG应用 知识密集型应用,需要处理大量文档 Python

应用场景

AI Agent在多个领域展现出强大的应用潜力:

个人助理

日程管理、邮件处理、信息检索、预订服务等个人事务自动化。

客户服务

自动回答客户问题、处理投诉、执行订单操作等客服任务。

研究助手

收集和分析信息、生成研究报告、发现数据洞察等研究辅助。

流程自动化

执行复杂工作流程、填写表单、协调多系统交互等自动化场景。

编程助手

代码编写、调试、优化、文档生成等软件开发辅助。

教育辅导

个性化学习指导、答疑解惑、生成练习题和评估等教育应用。

代码示例

以下是使用LangChain框架构建简单AI Agent的示例代码:


# 使用LangChain构建简单的AI Agent
from langchain.agents import Tool, AgentExecutor, create_react_agent
from langchain.tools import DuckDuckGoSearchRun
from langchain.tools.python.tool import PythonREPLTool
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate

# 设置环境
import os
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"

# 创建LLM
llm = ChatOpenAI(model="gpt-4", temperature=0)

# 定义工具集
search_tool = DuckDuckGoSearchRun()
python_repl = PythonREPLTool()

tools = [
    Tool(
        name="Search",
        func=search_tool.run,
        description="当你需要搜索互联网获取最新信息时使用此工具。输入应为搜索查询。"
    ),
    Tool(
        name="Python REPL",
        func=python_repl.run,
        description="当你需要执行Python代码进行计算或数据处理时使用此工具。输入应为完整的Python代码。"
    )
]

# 创建Agent提示模板
prompt = ChatPromptTemplate.from_messages([
    ("system", """你是一个智能助手,能够帮助用户解决各种问题。
你有权访问以下工具:
{tools}

使用以下格式回应:

问题: 用户的输入问题
思考: 你应该始终思考该如何解决问题,分析需要哪些步骤
行动: 工具名称 (参数)
观察: 工具的结果
... (可以有多个行动/观察对)
回答: 基于工具结果的最终回答

开始!
"""),
    ("human", "{input}")
])

# 创建Agent
agent = create_react_agent(llm, tools, prompt)

# 创建Agent执行器
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 与Agent交互
def chat_with_agent(user_input):
    response = agent_executor.invoke({"input": user_input})
    return response["output"]

# 测试Agent
test_queries = [
    "帮我计算2023年第一季度平均GDP增长率,假设一月增长3.2%,二月增长2.8%,三月增长3.5%",
    "帮我查找最新的人工智能趋势,并总结三个主要发展方向",
    "我需要编写一个Python函数来检查一个字符串是否是回文"
]

for query in test_queries:
    print(f"\n用户问题: {query}")
    response = chat_with_agent(query)
    print(f"\n助手回答: {response}")
    print("\n" + "="*50)

使用CrewAI构建多Agent协作系统的示例


# 使用CrewAI构建多Agent协作系统
from crewai import Agent, Task, Crew
from langchain.tools import DuckDuckGoSearchRun

# 创建工具
search_tool = DuckDuckGoSearchRun()

# 创建Agent
researcher = Agent(
    role="研究员",
    goal="收集和分析最新的人工智能研究进展",
    backstory="你是一位AI领域的资深研究员,擅长信息收集和分析,能够从海量信息中提取有价值的见解。",
    verbose=True,
    tools=[search_tool],
    allow_delegation=True
)

analyst = Agent(
    role="分析师",
    goal="分析AI研究的市场影响和应用前景",
    backstory="你是一位市场分析师,擅长评估技术创新的商业价值和应用潜力。",
    verbose=True,
    tools=[search_tool],
    allow_delegation=True
)

writer = Agent(
    role="技术作家",
    goal="撰写清晰、准确的技术报告",
    backstory="你是一位技术写作专家,能够将复杂的技术信息转化为易于理解的内容。",
    verbose=True,
    allow_delegation=True
)

# 创建任务
research_task = Task(
    description="""
    研究最新的大型语言模型进展,重点关注:
    1. GPT-4及其后续模型
    2. 开源LLM的最新突破
    3. 多模态模型的进展
    
    收集详细信息,包括技术规格、性能基准和关键创新点。
    """,
    agent=researcher,
    expected_output="一份包含最新LLM技术发展的详细研究报告,包含技术细节和关键突破。"
)

analysis_task = Task(
    description="""
    基于研究员提供的信息,分析这些LLM技术的:
    1. 商业应用潜力
    2. 可能的行业影响
    3. 未来3-5年的发展趋势
    
    提供深入的市场和技术分析。
    """,
    agent=analyst,
    expected_output="一份关于LLM技术市场影响和应用前景的分析报告。"
)

writing_task = Task(
    description="""
    基于研究员和分析师提供的信息,撰写一份全面的技术报告:
    1. 概述当前LLM技术的最新进展
    2. 详述关键技术突破和创新
    3. 分析商业应用和市场前景
    4. 提出未来发展预测
    
    报告应该专业、准确,同时对非技术读者友好。
    """,
    agent=writer,
    expected_output="一份完整的LLM技术发展报告,包含技术细节、市场分析和未来趋势。"
)

# 创建Crew
ai_research_crew = Crew(
    agents=[researcher, analyst, writer],
    tasks=[research_task, analysis_task, writing_task],
    verbose=2
)

# 执行Crew任务
result = ai_research_crew.kickoff()
print("\n最终报告:")
print(result)

三者关系与集成应用

MCP、Function Call和AI Agent这三项技术在现代AI生态系统中扮演着不同但相互补充的角色,它们的结合使用能够构建功能更加强大的AI系统。

技术定位

  • MCP:是一种协议标准,提供AI模型与外部资源交互的统一接口
  • Function Call:是一种能力,使LLM能够识别何时以及如何调用外部函数
  • AI Agent:是一种架构范式,整合多种能力构建自主智能体

关系图解

AI Agent (整合框架) Function Call (能力实现) MCP (协议标准)

集成应用场景

这三项技术的集成可实现多种强大的应用场景:

完整开发流程示例:智能研究助手

  1. 系统架构:使用AI Agent框架(如LangChain或CrewAI)构建研究助手的整体架构
  2. 能力拓展:通过Function Call实现搜索引擎查询、PDF解析、数据分析等具体功能
  3. 资源连接:使用MCP协议连接本地文档库、网络资源、各种数据库和API
  4. 协作能力:可以设计多个专业Agent(如研究员、分析师、编辑)协同工作

智能文档处理系统

使用MCP访问文档库,Function Call执行文档解析和查询操作,Agent协调整个工作流程,实现智能文档管理。

个人生产力助手

通过MCP连接个人日历、邮件和任务管理工具,用Function Call执行具体操作,Agent负责任务规划和优先级管理。

智能客服系统

使用MCP连接CRM系统和知识库,Function Call执行查询和操作,多个专业Agent处理不同类型的客户请求。

数据分析平台

通过MCP连接各种数据源,Function Call执行数据查询和分析操作,Agent规划分析流程并生成报告。

未来发展趋势

随着AI技术的不断进步,MCP、Function Call和AI Agent领域也将迎来新的发展方向:

MCP的发展趋势

  • 更广泛的标准化和普及,成为AI系统的基础协议
  • 更强的安全机制和权限管理,保护敏感数据
  • 扩展到更多领域,如物联网设备、车载系统等
  • 多模态资源支持,处理图像、音频、视频等

Function Call的发展趋势

  • 更精准的意图识别和参数提取能力
  • 自动发现和利用可用函数,减少预定义需求
  • 更复杂的函数组合能力,处理多步骤操作
  • 与低代码/无代码平台集成,降低开发门槛

AI Agent的发展趋势

  • 更强的自主性和判断力,减少人工干预
  • 多Agent协作生态系统,形成专业分工
  • 自我改进能力,从经验中学习优化策略
  • 更深入的领域专精化,形成垂直领域专家

技术融合与挑战

未来这三项技术将越来越紧密地融合,但同时也面临一些关键挑战:

  • 安全与隐私:随着AI系统获得更多访问权限,如何保障数据安全和用户隐私将成为关键问题
  • 可解释性:随着系统复杂度提高,确保AI决策过程的透明度和可解释性变得更加重要
  • 标准化:不同技术和框架间的标准化与兼容性将影响整个生态系统的发展
  • 资源效率:如何在保证功能强大的同时,控制计算资源消耗和运行成本

总结

MCP、Function Call和AI Agent这三项技术共同构成了现代AI系统连接外部世界的技术基础:

随着这三项技术的不断发展和融合,我们将看到更多智能、自主的AI应用出现,它们能够理解用户需求,通过调用外部资源和工具,完成各种复杂任务,为人类提供更加优质的服务和支持。

未来,随着技术的进一步成熟和标准化,这三项技术将成为AI系统的基础设施,支撑起更广阔的AI应用生态,推动人工智能向着更加实用、高效和智能的方向发展。

这篇文章受网友启发制作,点击查看网友分享的图片