概述
MOMO AI 提供统一的 API 代理服务,您可以通过 https://hub.momoai.pro/api/agent-proxy 调用任意已发布的智能体。该端点是最灵活、最完整的调用方式,支持多种参数传递方式和高级功能。
准备工作
获取 API 密钥
在 MOMO AI注册账户并登录后,进入账户 → 钥匙页面即可获取您的 API 密钥。该密钥是您调用 API 的身份凭证,请妥善保管。

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

核心端点
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=162 | RESTful 风格 |
请求体参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
user_momoai_key | string | 是* | API 密钥(Authorization header 也可) |
agent_id | number/string | 是* | 智能体编号 |
model | string | 是* | 模型名称,格式 momo_{agent_id}[_{后缀}] |
messages | array | 是 | 消息数组 |
stream | boolean | 否 | 是否启用流式响应 |
__anthropic_passthrough | boolean | 否 | 保留 Anthropic 工具调用格式 |
__return_raw | boolean | 否 | 返回原始响应格式 |
*agent_id 和 model 二选一即可;user_momoai_key 和 Authorization header 二选一即可。
API 密钥传递方式
方式一:请求体传递
{
"user_momoai_key": "YOUR_API_KEY",
"agent_id": 162,
"messages": [{"role": "user", "content": "你好"}]
}
方式二:Authorization Header
Authorization: Bearer YOUR_API_KEY
请求示例
基础调用:
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 名称指定智能体:
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 查询参数:
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": "讲个笑话" }
]
}'
响应格式
{
"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
}
}
流式响应
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
示例:
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
示例:
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_58 | 58 | 直接使用智能体编号 |
momo_162 | 162 | 直接使用智能体编号 |
momo_162_claude | 162 | 带后缀便于识别 |
momo_53_mimo | 53 | 带后缀便于识别 |
重要:模型名称必须以 momo_ 开头,后跟数字形式的 Agent ID。不符合此格式的请求将被拒绝。
请求参数详解
通用参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
messages | array | 必填 | 消息数组,每条包含 role 和 content |
temperature | number | 1.0 | 采样温度,范围 0-2,越高越随机 |
max_tokens | number | - | 最大生成 token 数量 |
top_p | number | 1.0 | 核采样参数 |
stream | boolean | false | 是否启用流式响应 |
tools | array | - | 函数工具定义(OpenAI 格式) |
消息格式
{
"model": "momo_162",
"messages": [
{
"role": "system",
"content": "你是一个专业的数据分析师。"
},
{
"role": "user",
"content": "请解释什么是机器学习?"
},
{
"role": "assistant",
"content": "机器学习是人工智能的一个分支..."
},
{
"role": "user",
"content": "那深度学习呢?"
}
]
}
高级功能
Anthropic 透传模式
当您需要保留完整的 Anthropic 工具调用格式(如 tool_use、tool_result 区块)时,可以使用 __anthropic_passthrough 参数:
{
"agent_id": 162,
"messages": [...],
"__anthropic_passthrough": true,
"__return_raw": true
}
此模式适用于需要精确控制工具调用流程的场景。
工具调用(Function Calling)
OpenAI 格式:
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 方式
非流式请求:
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
}'
流式请求:
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 方式
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 方式
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 状态码 | 错误类型 | 说明 |
|---|---|---|
| 400 | invalid_request_error | 请求参数错误,如模型格式不正确、缺少必需参数 |
| 401 | invalid_api_key | API 密钥无效或缺失 |
| 403 | insufficient_balance | 余额不足,请购买 Token |
| 404 | agent_not_found | 指定的智能体不存在 |
| 429 | rate_limit_error | 请求频率超限,最多 10 个并发流式连接 |
| 500 | api_error | 服务器内部错误 |
错误响应示例
{
"error": "Invalid model format. Expected: momo_{{agent_id}} or momo_{{agent_id}}_{{suffix}}, got: claude-sonnet"
}
错误处理示例
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 兼容性 | 通用 HTTP | OpenAI | Anthropic |
| 工具调用格式 | OpenAI / Anthropic | OpenAI | Anthropic |
| 透传模式 | 支持 | 不支持 | 不支持 |
| 推荐场景 | 高级用法、自定义需求 | 标准 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 官方:
- 综合邮箱:partnership@momoai.wecom.work
- 商务合作:13716105018
- 技术支持:13815831618

