MOMO AI API 接入指南

如何通过 API 调用 MOMO AI 智能体

概述

MOMO AI 提供统一的 API 代理服务,您可以通过 https://hub.momoai.pro/api/agent-proxy 调用任意已发布的智能体。该端点是最灵活、最完整的调用方式,支持多种参数传递方式和高级功能。

准备工作

获取 API 密钥

在 MOMO AI注册账户并登录后,进入账户钥匙页面即可获取您的 API 密钥。该密钥是您调用 API 的身份凭证,请妥善保管。

密钥页面截图

查询智能体 ID

进入Token 管理页面,查看您需要调用的智能体编号(Agent ID)。该编号在 API 调用中用于指定目标智能体。

Agent ID 查看页面截图

核心端点

POST /api/agent-proxy

这是 MOMO AI 最核心的 API 端点,提供最完整的调用方式和最大的灵活性。

请求 URL:

POST https://hub.momoai.pro/api/agent-proxy

指定智能体的方式

agent_id 可以通过以下任意一种方式指定:

方式示例说明
请求体 agent_id{"agent_id": 162, ...}直接指定数字 ID
请求体 model{"model": "momo_162", ...}从模型名称中提取
URL 查询参数/api/agent-proxy?agentid=162RESTful 风格

请求体参数:

参数类型必填说明
user_momoai_keystring是*API 密钥(Authorization header 也可)
agent_idnumber/string是*智能体编号
modelstring是*模型名称,格式 momo_{agent_id}[_{后缀}]
messagesarray消息数组
streamboolean是否启用流式响应
__anthropic_passthroughboolean保留 Anthropic 工具调用格式
__return_rawboolean返回原始响应格式

*agent_idmodel 二选一即可;user_momoai_key 和 Authorization header 二选一即可。

API 密钥传递方式

方式一:请求体传递

json
{
  "user_momoai_key": "YOUR_API_KEY",
  "agent_id": 162,
  "messages": [{"role": "user", "content": "你好"}]
}

方式二:Authorization Header

Authorization: Bearer YOUR_API_KEY

请求示例

基础调用:

bash
curl -X POST "https://hub.momoai.pro/api/agent-proxy" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "agent_id": 162,
    "messages": [
      { "role": "user", "content": "请做一个自我介绍" }
    ],
    "temperature": 0.7,
    "max_tokens": 1000
  }'

使用 model 名称指定智能体:

bash
curl -X POST "https://hub.momoai.pro/api/agent-proxy" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "momo_162_claude",
    "messages": [
      { "role": "user", "content": "你好,请介绍一下你的能力" }
    ]
  }'

使用 URL 查询参数:

bash
curl -X POST "https://hub.momoai.pro/api/agent-proxy?agentid=162" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "messages": [
      { "role": "user", "content": "讲个笑话" }
    ]
  }'

响应格式

json
{
  "success": true,
  "data": {
    "id": "chatcmpl-abc123",
    "object": "chat.completion",
    "created": 1699000000,
    "model": "momo_162",
    "choices": [
      {
        "index": 0,
        "message": {
          "role": "assistant",
          "content": "你好!我是..."
        },
        "finish_reason": "stop"
      }
    ],
    "usage": {
      "prompt_tokens": 15,
      "completion_tokens": 50,
      "total_tokens": 65
    }
  },
  "usage": {
    "tokens_used": 65
  }
}

流式响应

javascript
const response = await fetch('https://hub.momoai.pro/api/agent-proxy', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    agent_id: 162,
    messages: [{ role: 'user', content: '写一首关于春天的诗' }],
    stream: true
  })
});

const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  
  const chunk = decoder.decode(value);
  console.log(chunk);
}

兼容端点

除了核心端点,MOMO AI 还提供与主流 SDK 兼容的 API 端点。

OpenAI 兼容端点 (/v1/chat/completions)

适用于 OpenAI SDK 及所有兼容 OpenAI 格式的库。

请求 URL:

POST https://hub.momoai.pro/v1/chat/completions

示例:

javascript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://hub.momoai.pro/v1'
});

const response = await client.chat.completions.create({
  model: 'momo_162',  // 必须以 momo_ 开头
  messages: [
    { role: 'system', content: '你是一个有用的助手。' },
    { role: 'user', content: '请介绍一下你自己。' }
  ]
});

console.log(response.choices[0].message.content);

Anthropic 兼容端点 (/v1/messages)

适用于 Claude SDK 及 Anthropic 官方库,支持保留完整的工具调用格式。

请求 URL:

POST https://hub.momoai.pro/v1/messages

示例:

javascript
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://hub.momoai.pro/v1'
});

const response = await client.messages.create({
  model: 'momo_162',
  max_tokens: 1024,
  messages: [
    { role: 'user', content: '请介绍一下你自己。' }
  ]
});

console.log(response.content[0].text);

模型命名规范

格式说明

所有请求必须使用以下格式指定目标智能体:

momo_{agent_id}[_{可选后缀}]
  • {agent_id}必填,为您在 MOMO AI 平台查询到的智能体编号
  • {可选后缀}选填,便于您本地识别和管理的自定义名称

命名示例

模型名称Agent ID说明
momo_5858直接使用智能体编号
momo_162162直接使用智能体编号
momo_162_claude162带后缀便于识别
momo_53_mimo53带后缀便于识别

重要:模型名称必须以 momo_ 开头,后跟数字形式的 Agent ID。不符合此格式的请求将被拒绝。

请求参数详解

通用参数

参数类型默认值说明
messagesarray必填消息数组,每条包含 rolecontent
temperaturenumber1.0采样温度,范围 0-2,越高越随机
max_tokensnumber-最大生成 token 数量
top_pnumber1.0核采样参数
streambooleanfalse是否启用流式响应
toolsarray-函数工具定义(OpenAI 格式)

消息格式

json
{
  "model": "momo_162",
  "messages": [
    {
      "role": "system",
      "content": "你是一个专业的数据分析师。"
    },
    {
      "role": "user",
      "content": "请解释什么是机器学习?"
    },
    {
      "role": "assistant",
      "content": "机器学习是人工智能的一个分支..."
    },
    {
      "role": "user",
      "content": "那深度学习呢?"
    }
  ]
}

高级功能

Anthropic 透传模式

当您需要保留完整的 Anthropic 工具调用格式(如 tool_usetool_result 区块)时,可以使用 __anthropic_passthrough 参数:

json
{
  "agent_id": 162,
  "messages": [...],
  "__anthropic_passthrough": true,
  "__return_raw": true
}

此模式适用于需要精确控制工具调用流程的场景。

工具调用(Function Calling)

OpenAI 格式:

javascript
const response = await fetch('https://hub.momoai.pro/api/agent-proxy', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    agent_id: 162,
    messages: [
      { role: 'user', content: '现在几点了?' }
    ],
    tools: [
      {
        type: 'function',
        function: {
          name: 'get_current_time',
          description: '获取当前时间',
          parameters: {
            type: 'object',
            properties: {}
          }
        }
      }
    ]
  })
});

完整调用示例

cURL 方式

非流式请求:

bash
curl -X POST "https://hub.momoai.pro/api/agent-proxy" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "agent_id": 162,
    "messages": [
      { "role": "user", "content": "你好,请介绍一下你自己" }
    ],
    "temperature": 0.7,
    "max_tokens": 500
  }'

流式请求:

bash
curl -X POST "https://hub.momoai.pro/api/agent-proxy" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "agent_id": 162,
    "messages": [
      { "role": "user", "content": "讲个笑话" }
    ],
    "stream": true
  }'

Python 方式

python
import requests

API_KEY = "YOUR_API_KEY"
AGENT_ID = 162

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

data = {
    "agent_id": AGENT_ID,
    "messages": [
        {"role": "system", "content": "你是一个有趣的助手"},
        {"role": "user", "content": "讲个笑话"}
    ],
    "temperature": 0.8,
    "max_tokens": 500
}

# 非流式调用
response = requests.post(
    "https://hub.momoai.pro/api/agent-proxy",
    headers=headers,
    json=data
)

result = response.json()
print(result["data"]["choices"][0]["message"]["content"])

# 流式调用
data["stream"] = True
response = requests.post(
    "https://hub.momoai.pro/api/agent-proxy",
    headers=headers,
    json=data,
    stream=True
)

for line in response.iter_lines():
    if line:
        print(line.decode('utf-8'))

Node.js 方式

javascript
const fetch = require('node-fetch');

async function callAgent() {
  const response = await fetch('https://hub.momoai.pro/api/agent-proxy', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer YOUR_API_KEY'
    },
    body: JSON.stringify({
      agent_id: 162,
      messages: [
        { role: 'user', content: '请用 50 字介绍你自己' }
      ],
      temperature: 0.7,
      max_tokens: 100
    })
  });

  const result = await response.json();
  console.log(result.data.choices[0].message.content);
}

callAgent();

错误处理

常见错误码

HTTP 状态码错误类型说明
400invalid_request_error请求参数错误,如模型格式不正确、缺少必需参数
401invalid_api_keyAPI 密钥无效或缺失
403insufficient_balance余额不足,请购买 Token
404agent_not_found指定的智能体不存在
429rate_limit_error请求频率超限,最多 10 个并发流式连接
500api_error服务器内部错误

错误响应示例

json
{
  "error": "Invalid model format. Expected: momo_{{agent_id}} or momo_{{agent_id}}_{{suffix}}, got: claude-sonnet"
}

错误处理示例

javascript
try {
  const response = await fetch('https://hub.momoai.pro/api/agent-proxy', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer YOUR_API_KEY'
    },
    body: JSON.stringify({
      agent_id: 162,
      messages: [{ role: 'user', content: '你好' }]
    })
  });

  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.error || `HTTP ${response.status}`);
  }

  const result = await response.json();
  console.log(result.data.choices[0].message.content);
} catch (error) {
  if (error.message.includes('401')) {
    console.error('API 密钥无效,请检查后重试');
  } else if (error.message.includes('403')) {
    console.error('余额不足,请充值');
  } else if (error.message.includes('429')) {
    console.error('请求过于频繁,请稍后再试');
  } else {
    console.error('请求失败:', error.message);
  }
}

使用限制

  • 并发连接数:每个用户最多 10 个并发流式请求
  • 请求频率:请参考您的账户套餐限制
  • Token 消耗:每次 API 调用会消耗您账户中的 Token 余额

注意事项

  • 模型名称必须以 momo_ 开头:这是 MOMO AI 智能体的标识前缀
  • Agent ID 必须正确:请在 MOMO AI 平台确认您要调用的智能体编号
  • API 密钥安全:请勿在客户端代码中硬编码 API 密钥,应通过环境变量或安全配置管理
  • 余额管理:调用 API 会消耗 Token 余额,请在调用前确保账户有足够余额
  • 工具调用:使用 __anthropic_passthrough 可保留完整的 Anthropic 工具调用格式

端点对比

功能/api/agent-proxy/v1/chat/completions/v1/messages
灵活性最高
SDK 兼容性通用 HTTPOpenAIAnthropic
工具调用格式OpenAI / AnthropicOpenAIAnthropic
透传模式支持不支持不支持
推荐场景高级用法、自定义需求标准 OpenAI 集成Claude SDK 集成

常见问题

Q: 如何指定不同的智能体? A: 通过 agent_id 参数或 model 名称中的 Agent ID,如 momo_58 调用 58 号智能体,momo_162 调用 162 号智能体。

Q: 支持工具调用(Function Calling)吗? A: 支持。agent-proxy 端点支持 OpenAI 格式的工具定义,并自动转换为后端智能体所需的格式。

Q: 如何查看我的 API 调用记录和消耗? A: 登录 MOMO AI 平台,进入账户页面可查看详细的使用记录和 Token 余额。

Q: 三个端点我应该用哪个? A:

  • /api/agent-proxy:最完整的功能,适合需要高级特性的场景
  • /v1/chat/completions:如果您使用 OpenAI SDK,这是最便捷的选择
  • /v1/messages:如果您使用 Claude SDK 或需要保留 Anthropic 格式

Q: 如果请求失败怎么办? A: 首先检查 API 密钥是否正确,然后确认 Agent ID 是否有效,最后查看错误信息中的具体说明。如有疑问请联系技术支持。

技术支持

如有任何问题,请联系 MOMO AI 官方:

MOMO AI - Featured on Startup FameCheck out MomoAI - World's Largest AI Agent Marketplace at @SideProjectorsListed on Turbo0Featured on findly.toolsAI ToolzFeatured on Artificin