Skip to content

协议与接口总览

很多人一开始学 AI,注意力会放在模型名字、参数规模、回答效果这些地方。 但项目一接业务,很快就会碰到另一条同样重要的主线:

应用到底怎么调用模型,模型又怎么和外部系统发生真实交互。

这条线如果没搞清楚,后面无论是接知识库、接工具、接 MCP,还是做多 Agent 协作,都会有点虚。

所以这一部分不把协议、接口和工具调用拆成零散名词,而是放回同一条“对接主线”里。

1. 这一层到底在解决什么问题

协议与接口层主要解决 3 类问题:

  1. 应用怎么把任务发给模型
  2. 模型怎么把结果稳定返回给应用
  3. 当模型需要外部能力时,应用怎么把它接到真实系统上

这 3 类问题看起来像平行关系,其实是一条连续主线:

  1. 把模型接通
  2. 再让输出可控
  3. 再让模型和外部世界真正连起来

2. 这一层主要会看哪些词

这里重点整理的是:

  1. 模型接口
  2. 流式输出
  3. Tool
  4. Function Calling
  5. Structured Output
  6. MCP
  7. A2A

这些词虽然都和“对接”有关,但并不站在同一层。

3. 把这条对接主线看清楚

mermaid
flowchart LR
    A[应用组织请求] --> B[调用模型接口]
    B --> C[模型生成结果]
    C --> D{是否需要外部能力}
    D -- 否 --> E[直接返回文本或结构化结果]
    D -- 是 --> F[Function Calling / Tool Calling]
    F --> G[本地 Tool / MCP / A2A]
    G --> H[拿到外部结果]
    H --> I[继续生成最终答案]

这条线里,最值得先分开的其实是 3 层:

  1. 接口层:应用怎么调模型
  2. 调用层:模型怎么表达它想调外部能力
  3. 协议层:应用怎么把这些能力接到真实系统上

如果这 3 层不先分开,后面很容易出现这些混淆:

  1. Function Calling 当成工具本身
  2. MCP 当成模型接口
  3. 把多 Agent 协作和外部工具接入混成一回事

4. 🌟 这一层最值得抓住的边界

  1. 模型接口解决的是“怎么调模型”,不是“怎么接外部工具”
  2. Function Calling 解决的是“模型如何表达调用意图”,不是“外部工具怎么接进来”
  3. Structured Output 解决的是“输出怎么稳定”,不等于一定要调工具
  4. MCP 更偏宿主和外部能力的标准化对接
  5. A2A 更偏 Agent 和 Agent 之间的任务协作

5. 入口

这一部分可以按下面这组内容往下看:

  1. 模型接口、流式输出与生成主线
  2. Streaming
  3. Tool、Function Calling 与 Structured Output
  4. Function Calling
  5. Structured Output
  6. MCP、A2A 与外部能力对接

这些内容放在一起看,会更容易串起来:

  1. 先理解应用怎么和模型对接
  2. 再理解流式返回为什么会直接影响交互体验
  3. 再理解模型怎么表达调用外部能力的意图
  4. 再看结构化输出怎么把结果稳定接进系统
  5. 最后再看这些能力在工程里怎么真正接进来

基于 VitePress 构建的个人技术笔记。