llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式

文章目录

  • [LLM + Agent 是什么](#LLM + Agent 是什么)
    • 信息流
      • [LLM 本身是无状态的处理器和Agent 的”记忆”,怎么理解](#LLM 本身是无状态的处理器和Agent 的“记忆“,怎么理解)
        • [网页版的 ChatGPT 或 Claude 本身就是一个封装好的 Agent 系统。](#网页版的 ChatGPT 或 Claude 本身就是一个封装好的 Agent 系统。)
        • [如果真的”只有 LLM”会怎样?](#如果真的“只有 LLM”会怎样?)
        • [agent 记忆](#agent 记忆)
          • agent短期记忆和长期记忆
            • agent记忆存在哪里
          • [举例:假设你有一个包含 100 个文件的项目,你想让 AI 帮你改一个登录 Bug](#举例:假设你有一个包含 100 个文件的项目,你想让 AI 帮你改一个登录 Bug)
        • [Agent 是如何被写出来的。记忆?自动拼接上下文?什么时候查询数据库?什么时候调用”LLM?什么时候不在调用llm?](#Agent 是如何被写出来的。记忆?自动拼接上下文?什么时候查询数据库?什么时候调用”LLM?什么时候不在调用llm?)
        • [MCP(Model Context Protocol,模型上下文协议)](#MCP(Model Context Protocol,模型上下文协议))
          • [MCP 的核心架构:mcp客户端,mcp服务器,资源](#MCP 的核心架构:mcp客户端,mcp服务器,资源)
          • [MCP 实际上是一种基于 JSON-RPC 的通信协议](#MCP 实际上是一种基于 JSON-RPC 的通信协议)
            • [JSON-RPC 是什么](#JSON-RPC 是什么)
            • [API 和 JSON-RPC 是什么](#API 和 JSON-RPC 是什么)
            • [JSON-RPC 数据包的”运输方式”:stdin/stdout 或 HTTP](#JSON-RPC 数据包的“运输方式”:stdin/stdout 或 HTTP)
            • [SSE (Server-Sent Events) 是一种”单向常连”技术。它允许服务器在建立连接后,像源源不断的流水一样,主动把数据推送到客户端(Agent),而不需要客户端反复询问](#SSE (Server-Sent Events) 是一种“单向常连”技术。它允许服务器在建立连接后,像源源不断的流水一样,主动把数据推送到客户端(Agent),而不需要客户端反复询问)
            • sse与普通http区别
            • [流式(Streaming)是数据传输方式,SSE 是实现流式的一种技术](#流式(Streaming)是数据传输方式,SSE 是实现流式的一种技术)
          • [判断是否是MCP 客户端 (如支持mcp的Agent):](#判断是否是MCP 客户端 (如支持mcp的Agent):)
          • [判定一个服务器是否为 MCP 服务器的”三个标准”](#判定一个服务器是否为 MCP 服务器的“三个标准”)
            • [MCP 服务器的作用:MCP 是 Agent 和外部工具之间的桥梁/调度中心。如果工具在 MCP 上:直接调用函数。如果工具在外部服务:通过 HTTP / gRPC / RPC 调用](#MCP 服务器的作用:MCP 是 Agent 和外部工具之间的桥梁/调度中心。如果工具在 MCP 上:直接调用函数。如果工具在外部服务:通过 HTTP / gRPC / RPC 调用)
            • [为什么 MCP 可以统一调用工具](#为什么 MCP 可以统一调用工具)
        • agent怎么知道有哪些工具?llm怎么知道有哪些工具
          • agent调用工具怎么知道要输入哪些内容,哪些参数
            • 例子
      • [Agent 怎么知道发给哪个 LLM? 给agent配置哪个llm就用哪个](#Agent 怎么知道发给哪个 LLM? 给agent配置哪个llm就用哪个)
        • [Agent 发送请求到llm,需要 配置LLM 的哪些参数?](#Agent 发送请求到llm,需要 配置LLM 的哪些参数?)
          • 举例
            • [messages 列表 = Prompt,只是格式化成多条消息。system role = 设定模型身份/行为规则。user role = 用户输入/任务。assistant role 也是 Prompt(messages)的一部分,模型自身的角色,主要用于记录 LLM 自己之前的输出,让模型理解上下文、保持连贯性](#messages 列表 = Prompt,只是格式化成多条消息。system role = 设定模型身份/行为规则。user role = 用户输入/任务。assistant role 也是 Prompt(messages)的一部分,模型自身的角色,主要用于记录 LLM 自己之前的输出,让模型理解上下文、保持连贯性)
      • 怎么实现工具才能让agent调用
        • [tool/list 返回的内容,是 Schema 还是工具列表,以及谁生成 Schem](#tool/list 返回的内容,是 Schema 还是工具列表,以及谁生成 Schem)
  • [API 交互标准,OpenAI 定义了一套如何与大模型对话的接口规范(如 /v1/chat/completions)](#API 交互标准,OpenAI 定义了一套如何与大模型对话的接口规范(如 /v1/chat/completions))
    • [messages 里的角色有哪些](#messages 里的角色有哪些)
      • system
      • user
      • assistant
        • [Function Call 的本质](#Function Call 的本质)
      • [role: function(可选) → 标识这是工具调用结果](#role: function(可选) → 标识这是工具调用结果)
    • [什么是 SDK Software Development Kit(开发工具包)](#什么是 SDK Software Development Kit(开发工具包))
    • [什么叫 “兼容 OpenAI API”?使用与 OpenAI 兼容的 API 格式,什么意思?OpenAI API标准?](#什么叫 “兼容 OpenAI API”?使用与 OpenAI 兼容的 API 格式,什么意思?OpenAI API标准?)
      • [“调用 API 不一定要写 URL”,URL 只是 HTTP REST 的形式;](#“调用 API 不一定要写 URL”,URL 只是 HTTP REST 的形式;)
        • [API 本质上就是 函数的远程版本。远程的函数](#API 本质上就是 函数的远程版本。远程的函数)
        • [调用 API 的形式。http api/grpc等都是rpc的实现方式](#调用 API 的形式。http api/grpc等都是rpc的实现方式)
          • [http rest](#http rest)
          • [gRPC / RPC / GraphQL / WebSocket 流式.也是调用远程函数,只是 协议不同](#gRPC / RPC / GraphQL / WebSocket 流式.也是调用远程函数,只是 协议不同)
          • [为什么”写了 URL 就是调用 API”。属于http rest形式调取api](#为什么“写了 URL 就是调用 API”。属于http rest形式调取api)
            • [http rest形式:API 调用的四个核心要素.models参数意义](#http rest形式:API 调用的四个核心要素.models参数意义)
        • [API 的协议层、实现方式和调用方式](#API 的协议层、实现方式和调用方式)
            • 详细解释
          • [API 的实现方式和对应调用示例](#API 的实现方式和对应调用示例)
      • [为什么 OpenAI SDK 可以换 URL 就调用别的 API?http rest形式调用api时,换url就是换api了。还可以使用openai sdk是因为别人的api的参数和返回结果与openai一样](#为什么 OpenAI SDK 可以换 URL 就调用别的 API?http rest形式调用api时,换url就是换api了。还可以使用openai sdk是因为别人的api的参数和返回结果与openai一样)
  • [OpenAI 在 2023 年之后给 AI 应用开发定义了一套”事实标准(de-facto standard)”](#OpenAI 在 2023 年之后给 AI 应用开发定义了一套“事实标准(de-facto standard)”)
    • [OpenAI 推动的”工具调用(Tool Calling / Function Calling)接口标准”](#OpenAI 推动的“工具调用(Tool Calling / Function Calling)接口标准”)
        • [Function Calling / Tool Calling 标准](#Function Calling / Tool Calling 标准)
      • [JSON Schema 作为工具参数标准](#JSON Schema 作为工具参数标准)
        • [SDK = Software Development Kit(软件开发工具包)](#SDK = Software Development Kit(软件开发工具包))
      • [Chat Message 协议,OpenAI 还定义了 对话消息结构标准](#Chat Message 协议,OpenAI 还定义了 对话消息结构标准)
        • [后来 Anthropic 提出了 Model Context Protocol (MCP)。把 OpenAI Function Calling 的思想扩展成跨工具协议](#后来 Anthropic 提出了 Model Context Protocol (MCP)。把 OpenAI Function Calling 的思想扩展成跨工具协议)
      • [OpenAI后来又加了一条标准:模型输出必须符合指定 JSON Schema](#OpenAI后来又加了一条标准:模型输出必须符合指定 JSON Schema)
  • [现在 AI 行业的架构是什么样](#现在 AI 行业的架构是什么样)
    • [目前 AI 行业形成了 两套标准体系:](#目前 AI 行业形成了 两套标准体系:)
  • Agent框架:典型功能:工具调用,记忆,任务规划等
    • [Agent 框架里的 任务规划(Planning)和任务拆分(Task Decomposition),核心其实不是复杂算法,而是 让 LLM 先当”规划器”再当”执行器”](#Agent 框架里的 任务规划(Planning)和任务拆分(Task Decomposition),核心其实不是复杂算法,而是 让 LLM 先当“规划器”再当“执行器”)
      • [任务拆分实现方式:Prompt-based Planning(最常见)](#任务拆分实现方式:Prompt-based Agent 智能体 Planning(最常见))
      • [任务拆分实现方式:ReAct(最经典 Agent 方法)。Thought → Action → Observation](#任务拆分实现方式:ReAct(最经典 Agent 方法)。Thought → Action → Observation)
        • [Agent 框架里的真实代码结构](#Agent 框架里的真实代码结构)
      • 任务拆分方式:Plan-and-Execute(更稳定)

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式


LLM 本身是无状态的处理器和Agent 的”记忆”,怎么理解

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

网页版的 ChatGPT 或 Claude 本身就是一个封装好的 Agent 系统。

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

如果真的”只有 LLM”会怎样?
agent 记忆

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

agent短期记忆和长期记忆

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式



agent记忆存在哪里

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式




举例:假设你有一个包含 100 个文件的项目,你想让 AI 帮你改一个登录 Bug

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式


Agent 是如何被写出来的。记忆?自动拼接上下文?什么时候查询数据库?什么时候调用”LLM?什么时候不在调用llm?

记忆

拼接历史上下文

什么时候查询

什么时候调用llm

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

什么时候不在调用llm

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式




MCP(Model Context Protocol,模型上下文协议)

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

MCP 的核心架构:mcp客户端,mcp服务器,资源

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

MCP 实际上是一种基于 JSON-RPC 的通信协议

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式




llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

JSON-RPC 是什么

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式


API 和 JSON-RPC 是什么

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

JSON-RPC 数据包的”运输方式”:stdin/stdout 或 HTTP

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式










SSE (Server-Sent Events) 是一种”单向常连”技术。它允许服务器在建立连接后,像源源不断的流水一样,主动把数据推送到客户端(Agent),而不需要客户端反复询问

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式




sse与普通http区别

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式



流式(Streaming)是数据传输方式,SSE 是实现流式的一种技术

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式







判断是否是MCP 客户端 (如支持mcp的Agent):

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式





判定一个服务器是否为 MCP 服务器的”三个标准”

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

MCP 服务器的作用:MCP 是 Agent 和外部工具之间的桥梁/调度中心。如果工具在 MCP 上:直接调用函数。如果工具在外部服务:通过 HTTP / gRPC / RPC 调用
为什么 MCP 可以统一调用工具

统一注册:所有工具在 MCP 上注册,包含名字、接口类型、参数格式

统一调度:agent根据function_call,按照json_rpc格式,发送到mcp服务器,mcp服务器自动路由到对应工具

统一返回:把工具执行结果按照json_rpc的格式返回agent,agent解析后,把工具执行结果封装成 role=function 消息返回 LLM

安全与权限控制:MCP 可以限制哪些工具可调用

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

api/json-prc

agent怎么知道有哪些工具?llm怎么知道有哪些工具

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

agent调用工具怎么知道要输入哪些内容,哪些参数

Agent 是通过工具的参数 schema + LLM 语义理解,自动推断并填充工具参数的

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式



例子

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式






Agent 怎么知道发给哪个 LLM? 给agent配置哪个llm就用哪个

Agent 发送请求到llm,需要 配置LLM 的哪些参数?

一般来说,Agent 通过 API 调用 LLM,需要提供 三个核心参数:

参数 作用 Provider / Base URL 就是模型运行在哪个服务器的地址,它通常指 LLM 提供商的 API 接口地址,告诉 Agent 要把请求发送到哪台服务器,让 LLM 收到任务, API Key / Access Token 身份验证,用来让 Agent 授权访问 LLM ,类似客户端要验证有资格访问服务器 Model ID 告诉服务器用哪个模型来处理请求,比如 、 可选参数 max_tokens、temperature、top_p 等生成控制参数

llm+agent,使用与 OpenAI 兼容的 API 格式
Model ID

举例

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

messages 列表 = Prompt,只是格式化成多条消息。system role = 设定模型身份/行为规则。user role = 用户输入/任务。assistant role 也是 Prompt(messages)的一部分,模型自身的角色,主要用于记录 LLM 自己之前的输出,让模型理解上下文、保持连贯性

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式






怎么实现工具才能让agent调用

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式






tool/list 返回的内容,是 Schema 还是工具列表,以及谁生成 Schem

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式




OpenAI 定义了一种”程序怎么调用大模型”的 API 写法,后来几乎所有模型公司都照着做了。

所以它被称为 事实标准(de facto standard)。

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

system

user

assistant

Function Call 的本质

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

role: function(可选) → 标识这是工具调用结果

工具调用的结果在 OpenAI 的 Chat API 里会以 role = “function” 的消息形式返回给模型,模型再根据这个内容生成回答。

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式




“调用 API 不一定要写 URL”,URL 只是 HTTP REST 的形式;

API 本质上就是 函数的远程版本。远程的函数
调用 API 的形式。http api/grpc等都是rpc的实现方式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

http rest

“调用 API 不一定要写 URL”,URL 只是 HTTP REST 的形式;SDK、Agent 框架、CLI、Webhook

等都是不同的封装形式,底层其实还是调用同一个 API,只是你不用自己拼 URL。

gRPC / RPC / GraphQL / WebSocket 流式.也是调用远程函数,只是 协议不同
为什么”写了 URL 就是调用 API”。属于http rest形式调取api

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

http rest形式:API 调用的四个核心要素.models参数意义

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

Model(模型参数)

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式



API 的协议层、实现方式和调用方式

协议 / 数据格式”是什么?

协议 = 规则

就像你和朋友约定”聊天时要遵守的规则”:谁先说,谁回答,用什么语言,说完怎么确认收到。

网络上,协议就是计算机之间通信必须遵守的规则,保证双方能理解对方发送的信息。

数据格式 = 规定消息里写的内容怎么排列,就像写信用什么语言和排版。

简单理解:协议是传输规则,数据格式是内容排版。

协议 = 你用什么方式寄信:普通邮寄 / 快递 / 高速专线(HTTP / HTTP2 / WebSocket/sse)

数据格式 = 信里怎么写:用中文、英文、二进制编码(JSON / protobuf)。

协议 / 数据格式 = 消息怎么从你电脑传到服务器

不同协议:HTTP、HTTP/2、WebSocket

不同格式:JSON、protobuf

组合使用:

HTTP + JSON → 普通 API 调用

HTTP/2 + protobuf → gRPC 高效调用

WebSocket + JSON → 流式实时返回

实现方式 说明 调用方式 协议 / 数据格式 HTTP REST API 最常见,适合跨语言、跨平台 用 HTTP 请求(GET/POST)调用接口 HTTP/HTTPS(一套在网络上发送请求和响应的规则,一种传输规则) + JSON gRPC 高性能,支持双向流和大量调用 生成客户端 stub,像本地函数一样调用 HTTP/2 + protobuf(二进制) GraphQL API 客户端按需查询字段 HTTP POST,发送 GraphQL 查询语句 HTTP/HTTPS + GraphQL 文本 JSON-RPC API 轻量远程函数调用协议 HTTP/POST 或 WebSocket或sse 发送 JSON-RPC 请求 HTTP / WebSocket(流式协议)/sse(流式协议) + JSON WebSocket / SSE 流式 API 实时推送,适合长连接和流式返回 建立 WebSocket 或 SSE 连接,持续发送/接收消息 WebSocket(流式协议) / SSE(流式协议) + JSON
详细解释

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式


调用方式(风格) → 逻辑上”我怎么告诉服务端我想干什么”

REST、gRPC、GraphQL、JSON-RPC、WebSocket

实现方式(协议+数据格式) → 技术上”数据怎么在网络上传输”

HTTP + JSON、HTTP/2 + protobuf、WebSocket + JSON

选择方式:

如果服务端是 REST → 只能用 HTTP + JSON

如果服务端是 gRPC → 生成 stub,用 HTTP/2 + protobuf

如果服务端支持流式 → WebSocket / SSE

API 的实现方式和对应调用示例

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式


选择哪一种形式

具体使用哪种形式,取决于几个因素:

API 的实现方式

如果服务端是 REST API → 只能用 HTTP 请求调用

如果服务端是 gRPC → 需要生成对应语言的 gRPC stub 调用

如果支持 JSON-RPC → 按 JSON-RPC 协议请求

换句话说,客户端调用方式必须匹配服务端实现协议

API(Application Programming Interface)

概念:接口的总称,指”调用某个功能的方法或约定”

广义理解:任何一种程序可以调用另一个程序功能的方式

实现方式多种多样:

HTTP REST API

gRPC

GraphQL

JSON-RPC

WebSocket / 流式 API

API = “抽象接口”,不限定协议和数据格式

为什么 OpenAI SDK 可以换 URL 就调用别的 API?http rest形式调用api时,换url就是换api了。还可以使用openai sdk是因为别人的api的参数和返回结果与openai一样

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

Function Calling / Tool Calling 标准

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

JSON Schema 作为工具参数标准

JSON Schema 在工程里的三个典型用途。很多人第一次看到会懵,因为它其实是在说 Schema = 一种机器可读的接口说明书

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

SDK = Software Development Kit(软件开发工具包)

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

Chat Message 协议,OpenAI 还定义了 对话消息结构标准

后来 Anthropic 提出了 Model Context Protocol (MCP)。把 OpenAI Function Calling 的思想扩展成跨工具协议

OpenAI后来又加了一条标准:模型输出必须符合指定 JSON Schema

五、OpenAI后来补充的标准

2023 → 2025 OpenAI不断补充。

主要新增:

1 Tool Calling(工具调用升级)

支持:

多工具

并行调用

自动选择

例如:

tools=[search, weather, db]

AI自己选。

2 Strict Mode

保证输出 100%符合 Schema。

例如:

“strict”: true

否则会报错。

3 Streaming Tool Calls

工具参数可以 边生成边调用。

降低延迟。

4 Parallel Tool Calls

AI一次调用多个工具。

例如:

查天气

查航班

查酒店

同时执行。

七、后续的新标准(不是 OpenAI)

最近 AI 生态又出现 两个新的协议:

1 MCP(Model Context Protocol)

作用:

标准化 AI 如何接工具。

流程:

Agent

MCP server

Tool

很多 IDE 在用:

Cursor

Claude Desktop

Windsurf

2 A2A(Agent to Agent)

让 AI 与 AI 协作。

例如:

规划Agent

编码Agent

测试Agent

互相通信。

八、整个 AI 标准体系(现在)

目前行业结构是:

LLM

│ Function Calling(OpenAI)

Agent Framework

│ MCP(工具协议)

Tools / APIs

再往上是:

Multi-Agent

(A2A)

Agents SDK

最新 Agent 标准:

https://platform.openai.com/docs/agents

包括:

tool

memory

workflow

tracing

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

任务拆分实现方式:Prompt-based Planning(最常见)

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

任务拆分实现方式:ReAct(最经典 Agent 方法)。Thought → Action → Observation

在 Thought → Action → Observation(ReAct 模式) 里:

Thought = LLM 内部生成的意图 / 下一步计划

Action = 调用工具(role=function)

Observation = 工具执行结果返回模型(role=function)

Observation 就是把 Action 执行后的结果返回给 LLM,让 LLM”看到”这个结果,再继续推理。

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式


Agent 框架里的真实代码结构

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

任务拆分方式:Plan-and-Execute(更稳定)

llm+agent,使用与 OpenAI 兼容的 API 格式
llm+agent,使用与 OpenAI 兼容的 API 格式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/285545.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月15日 下午10:00
下一篇 2026年3月15日 下午10:00


相关推荐

关注全栈程序员社区公众号