在当前的 AI 技术栈中,API(应用程序编程接口)的地位已经从“辅助工具”上升为“核心基础设施”。大模型本身具备理解和生成能力,但要让 AI 真正完成实际任务——查询数据、操作业务系统、触发外部服务——必须依赖 API 与外部世界交互。本文从技术视角梳理 API 在 AI Agent、模型接入、企业集成中的关键作用,并给出具体的实现方式与代码示例,帮助开发者理解这一层的基础能力。


1. AI Agent 的“执行层”:Function Calling 与工具调用

AI Agent(智能体)的核心能力在于自主规划并执行任务。当用户提出“帮我预订今晚7点的餐厅”时,Agent 需要拆解步骤:搜索餐厅、查询营业时间、调用预订 API。这个过程的关键环节是函数调用(Function Calling):大模型根据用户输入和预定义的工具列表,决定调用哪个函数、传什么参数,然后由外部代码执行实际 API 请求,再将结果返回给模型整合。

1.1 Function Calling 的工作流程

以 OpenAI 的 Function Calling 为例,典型流程如下:

  1. 定义工具:告诉模型有哪些可调用的函数,以及函数的参数 schema。

  2. 模型决策:模型根据对话上下文,输出一个“函数调用”请求,包含函数名和参数。

  3. 执行函数:开发者在本地执行对应函数(通常是调用第三方 API)。

  4. 返回结果:将函数执行结果以消息形式回传给模型,模型生成最终回答。

1.2 代码示例:使用 OpenAI SDK 实现天气查询 Agent
import openai
import json

# 定义可调用的工具
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定城市的天气信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "城市名称,例如:北京"
                    }
                },
                "required": ["city"]
            }
        }
    }
]

def get_weather(city: str) -> str:
    """模拟调用天气 API"""
    # 实际场景中这里会请求天气服务接口
    return f"{city} 今天晴,气温 25°C"

def run_agent(user_query: str):
    client = openai.OpenAI()
    messages = [{"role": "user", "content": user_query}]
    
    # 第一次调用:让模型决定是否调用工具
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=messages,
        tools=tools,
        tool_choice="auto"
    )
    
    message = response.choices[0].message
    messages.append(message)
    
    # 检查是否有工具调用
    if message.tool_calls:
        for tool_call in message.tool_calls:
            if tool_call.function.name == "get_weather":
                args = json.loads(tool_call.function.arguments)
                city = args["city"]
                weather_result = get_weather(city)
                # 将结果回传给模型
                messages.append({
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "content": weather_result
                })
        
        # 第二次调用:生成最终回答
        final_response = client.chat.completions.create(
            model="gpt-4o",
            messages=messages
        )
        return final_response.choices[0].message.content
    
    return message.content

# 测试
print(run_agent("北京今天天气怎么样?"))

这段代码展示了 Function Calling 的完整闭环。开发者可以轻松将任何外部 API(如支付、物流、数据库查询)包装成工具函数,让 AI Agent 自主调用。


2. API 的三种关键模式:统一接入、MCP、API 网关

随着 AI 应用复杂化,API 连接方式也在演进,主要有三种模式:统一 API 聚合、MCP 协议、API 网关。

2.1 统一 API 接入:一个接口调用多个模型

不同模型厂商(OpenAI、Anthropic、Google 等)的 API 格式差异较大,逐一对接维护成本高。统一 API 聚合平台通过提供标准化的接口,屏蔽底层模型差异,允许开发者用同一套代码调用多个模型。

技术要点

  • 提供统一的 /v1/chat/completions 风格接口。

  • 支持模型路由、负载均衡、故障转移。

  • 实现方式:在聚合层解析请求,转换为各厂商原生格式。

示例:使用 LiteLLM 统一调用不同模型

from litellm import completion

# 统一接口,传入不同模型名
response = completion(
    model="gpt-4o",  # 或 "claude-3-5-sonnet", "gemini-1.5-pro"
    messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)

LiteLLM 是一个开源库,可以将多个模型 API 统一为 OpenAI 格式。生产环境中也可以使用类似的 API 网关(如 OpenRouter、Vercel AI Gateway)实现统一接入。

2.2 MCP 协议:标准化的工具连接接口

MCP(Model Context Protocol)由 Anthropic 发起,目标是解决 AI 与外部工具连接的碎片化问题。它定义了一套标准协议,让 AI 应用能以统一的方式发现和调用各种工具(API)。

MCP 的核心组件

  • MCP Server:包装具体工具或数据源,暴露标准接口。

  • MCP Client:AI 应用通过客户端连接 Server,自动发现可用工具。

  • 传输层:支持 stdio、HTTP/SSE 等。

示例:一个简单的 MCP Server(Python)

from mcp.server import Server, NotificationOptions
from mcp.server.models import InitializationOptions
import asyncio

# 创建 MCP Server
server = Server("example-server")

@server.list_tools()
async def handle_list_tools():
    """声明可用工具"""
    return [
        {
            "name": "get_time",
            "description": "获取当前服务器时间",
            "inputSchema": {
                "type": "object",
                "properties": {}
            }
        }
    ]

@server.call_tool()
async def handle_call_tool(name: str, arguments: dict):
    """处理工具调用"""
    if name == "get_time":
        from datetime import datetime
        return {"content": [{"type": "text", "text": datetime.now().isoformat()}]}
    raise ValueError(f"Unknown tool: {name}")

async def main():
    from mcp.server.stdio import stdio_server
    async with stdio_server() as (read_stream, write_stream):
        await server.run(
            read_stream,
            write_stream,
            InitializationOptions(
                server_name="example-server",
                server_version="0.1.0",
                capabilities=server.get_capabilities(
                    notification_options=NotificationOptions(),
                    experimental_capabilities={}
                )
            )
        )

if __name__ == "__main__":
    asyncio.run(main())

示例:使用 Nginx 或专用网关配置简单路由

以 Higress(阿里云开源的 AI 网关)为例,配置一个简单的 AI 代理:

apiVersion: networking.higress.io/v1
kind: McpBridge
metadata:
  name: default
spec:
  registries:
    - name: my-services
      type: dns
      domain: internal.example.com
      port: 8080
---
apiVersion: networking.higress.io/v1
kind: HttpApi
metadata:
  name: ai-gateway
spec:
  rules:
    - path: /v1/chat/completions
      service: openai.backend
      timeout: 30s

网关可以结合鉴权插件、限流策略、成本统计等功能,实现生产级的 AI 应用管理。


3. 电商实战:API 与 AI 结合的应用场景

API 与 AI 的结合在电商领域已经有大量落地案例,主要体现在智能选品、智能导购、供应链协同等方面。

3.1 智能选品与动态定价

AI 通过调用电商平台的商品数据 API(如淘宝、1688 的搜索/详情接口)实时获取市场数据,结合大模型的分析能力,辅助商家进行选品决策和定价调整。

技术架构

  • 定期调用商品搜索 API,拉取关键词下的商品列表。

  • 通过 AI 分析销量、价格分布、评论情感,预测爆款趋势。

  • 输出选品建议表格或动态调价策略。

示例:调用 1688 商品搜索 API 并结合 AI 分析(Python)

import requests
import openai

def search_1688(keyword):
    """调用 1688 商品搜索 API(需替换为实际开放平台接口)"""
    # 注意:此处为示例 URL,实际需使用官方开放平台
    url = "https://gw.open.1688.com/openapi/param2/2.0/alibaba.item.search"
    params = {
        "app_key": "your_key",
        "keyword": keyword,
        "page_size": 20,
        # 签名等参数省略
    }
    resp = requests.get(url, params=params)
    return resp.json()

def ai_select_products(keyword):
    raw_data = search_1688(keyword)
    # 提取简要信息
    products = []
    for item in raw_data.get("result", {}).get("items", []):
        products.append({
            "title": item["title"],
            "price": item["price"],
            "sales": item["sales"]
        })
    # 让 AI 分析并给出选品建议
    prompt = f"基于以下商品数据,推荐最有潜力的3款商品,并说明理由:\n{products}"
    client = openai.OpenAI()
    resp = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}]
    )
    return resp.choices[0].message.content

print(ai_select_products("蓝牙耳机"))
3.2 智能导购与对话式购物

通过将商品搜索、详情、下单等 API 包装为 MCP 工具,接入 AI 智能体,用户可以通过自然语言完成整个购物流程。

流程示例

  1. 用户说:“我想买一个 200 元以内的蓝牙耳机,要降噪的。”

  2. Agent 调用商品搜索 API,根据关键词和价格过滤。

  3. 返回多个选项,用户选择后,Agent 调用详情 API 展示参数,最后引导下单。

3.3 供应链全链路协同

AI Agent 可以通过 API 集成供应链系统,完成从选品、工厂寻源、询价到下单的自动化流程。例如,通过 1688 的工厂信息 API、询价 API 等,Agent 可以自主寻找优质供应商,降低人工成本。


4. 总结

API 在 AI 应用中的角色已经从“数据通道”进化为“执行引擎”。Function Calling 让模型能够调用外部工具,MCP 协议正在标准化工具连接方式,API 网关则为规模化应用提供了管理能力。对于开发者而言,理解这些模式并掌握相应的实现技术,是构建下一代 AI 应用的基础。

未来,随着 AI Agent 能力的增强,API 的设计和管理将更加重要。谁能高效、安全地让 AI “调用”世界,谁就能在智能化竞争中占据先机。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐