第二次 API 开放浪潮:从封闭回退到重新敞开

2026-05-12 14 预计阅读时间:1 分钟
来源:ruanyifeng.com AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:7 分钟

十年前,开发者随手就能调 Twitter、Facebook、Google Maps 的开放 API 拼出一个产品。后来那扇门一扇扇关上了——Twitter 收紧接口限额、Google 关掉 Reader 和一堆免费服务、Facebook 拿隐私当理由砍掉大量端点。开放 API 的黄金时代看起来结束了。

现在门又开了。但推门的力量变了——不是"社交驱动的 mashup 文化",而是 AI。

第一波:社交驱动的开放

2007–2012 年是第一次 API 开放浪潮的巅峰。Flickr、Twitter、Facebook、Google Maps 都提供免费或低价的开放接口,开发者靠拼搭几个 API 就能做出一个完整应用。那波浪潮的核心逻辑是:平台需要开发者帮它填充内容、扩大生态。开放 API 是获客手段。

但商业模式站稳之后,平台就不需要"免费劳动力"了。Twitter 2012 年开始限制第三方客户端,2018 年大幅收紧 API 定价;Facebook 在 Cambridge Analytica 事件后关掉了大量数据接口;Google 一年关掉好几个免费 API。开放变成了风险,封闭变成了理性选择。

第二波:AI 需要管道

这一次的逻辑完全不同。AI 模型——尤其是 Agent——需要实时、结构化的外部数据才能发挥作用。模型本身是封闭的,但它要连接外部世界,就必须有 API 作为管道。

于是我们看到了:

  • MCP(Model Context Protocol):Anthropic 推出的开放协议,让 LLM 通过标准化方式调用外部工具和数据源。已经有几十个 MCP Server 实现,覆盖 GitHub、Slack、数据库、文件系统等。
  • OpenAI 的 Actions / Function Calling:GPT 模型可以通过 function calling 调用外部 API,开发者只需要描述接口 schema。
  • Google 的 A2A(Agent-to-Agent)协议:让不同 Agent 之间互相发现和调用。
  • 各家公司重新开放 API:Notion、Linear、飞书、Slack 都在强化 API 能力,因为它们意识到——如果不让 AI Agent 接进来,产品就会被绕过

第一波是"平台需要你",第二波是"你需要平台,但平台也需要你帮它接入 AI 生态"。权力关系变了。

实际动手:用 MCP Server 把 API 接给 AI

下面是一个最小可运行的 MCP Server 示例,把一个简单的 REST API 包装成 AI Agent 可调用的工具。假设你有一个内部服务返回服务器状态,你想让 Claude 或其他 LLM 直接查询它。

先安装依赖:

pip install mcp fastmcp httpx

然后写一个 MCP Server:

# server_status_mcp.py
from fastmcp import FastMCP
import httpx

mcp = FastMCP("server-status")

@mcp.tool()
async def get_server_status(hostname: str) -> str:
    """查询指定服务器的运行状态。

    Args:
        hostname: 服务器主机名,如 'web-prod-01'
    """
    # 替换成你自己的内部 API 地址
    api_url = f"http://internal-monitor.local/api/status/{hostname}"
    try:
        resp = await httpx.AsyncClient().get(api_url, timeout=5.0)
        data = resp.json()
        return f"服务器 {hostname} 状态: {data['status']}, CPU: {data['cpu_percent']}%, 内存: {data['memory_percent']}%"
    except httpx.HTTPError as e:
        return f"查询失败: {e}"

if __name__ == "__main__":
    mcp.run()

启动服务:

python server_status_mcp.py

在 Claude Desktop 或支持 MCP 的客户端配置中加上这个 Server(claude_desktop_config.json):

{
  "mcpServers": {
    "server-status": {
      "command": "python",
      "args": ["server_status_mcp.py"]
    }
  }
}

重启 Claude Desktop 后,对话中直接问"web-prod-01 服务器状态如何",Claude 就会自动调用这个工具,拿到实时数据再回答你。

这就是第二次浪潮的典型模式:API 不再是给人写的,而是给 Agent 写的。人只需要描述意图,Agent 自己选工具、调接口、拼结果。

如果你是 API 提供方

如果你维护一个产品或内部服务,现在开放 API 的收益逻辑变了:

维度 第一波(2010) 第二波(2025)
驱动力 社交生态扩张 AI Agent 需要数据管道
调用者 人类开发者 AI Agent
接口设计重点 REST + OAuth 结构化 schema + 工具描述
开放动机 获客、UGC 不被 AI 生态绕过
风险 数据泄露、隐私 Agent 误操作、成本失控

几个实用建议:

  1. 给每个端点写清晰的工具描述。Agent 不读文档,它读 function schema 的 description 字段。描述要具体到参数含义和返回结构。
  2. 设计细粒度的权限和限额。Agent 调用频率远高于人类,按 token 或按工具调用计费比按用户计费更合理。
  3. 优先暴露读接口。写操作先限制,等 Agent 行为可观测后再逐步开放。
  4. 支持 MCP 或 Function Calling schema 格式。不用你自己写 SDK,只要提供 OpenAPI spec,社区和工具链会自动生成 MCP Server。

闭关再开,但门上加了锁

第一次浪潮的教训很清楚:无限制的开放最终会被商业理性收回。第二次浪潮不会简单重复——这次开放是被迫的(AI 需要管道),但也是可控的。MCP、A2A 这些协议本质上是在门上加了一层标准化锁:接口开放,但调用方式、权限、可观测性都有协议约束。

对开发者来说,机会在于:每一个有数据但还没开放 API 的服务,都是潜在的被绕过者。帮它们接上 MCP 或 function calling,就是帮它们进入 AI 生态——也是给自己创造新业务。

对 API 提供方来说,选择也很简单:现在主动开门,还是等 Agent 用浏览器绕过你?


相关推荐