OpenClaw 配置指南:接入 GenStudio 大模型服务 API
OpenClaw 支持接入兼容 OpenAI 接口的大语言模型 API。
您可以根据使用方式选择对应的配置方法:
- 如果您使用的是 OpenClaw 桌面端 或第三方客户端,请阅读 使用图形界面客户端配置 (推荐)。
- 如果您使用的是 OpenClaw Web UI,请阅读 使用 OpenClaw Web UI 配置。
- 如果您在服务器或终端环境中使用 OpenClaw CLI,请阅读 使用命令行配置 (CLI)。
提示
如果配置后无法正常对话,请参考文末的 排错指南与 API 连通性测试。文末还提供了 openclaw.json 真实配置示例,以供参考。
开始前准备
在开始前,请先确认:
- 您已经获取 API Key 和 Base URL。
- 您已经确认要使用的模型 ID。
获取 API 接入信息
在配置 OpenClaw 之前,您需要先准备 API Key 和 Base URL。以下示例以 GenStudio 为例。
选项 A 通用 LLM API
适用于通用大模型调用场景。
API Key:前往控制台创建以
sk-开头的密钥。Base URL:
https://cloud.infini-ai.com/maas/v1接口路径:
- 对话接口:
/chat/completions - 模型列表接口:
/models
- 对话接口:
选项 B Infini 编码套餐 (Coding Plan)
如果您使用的是 Infini 编码套餐,请使用编码套餐控制台提供的 API Key 和 Base URL,不要与通用接口混用。
API Key:前往代码辅助页面创建以
sk-cp-开头的专用密钥。Base URL:
https://cloud.infini-ai.com/maas/coding/v1接口路径:
- 对话接口:
/chat/completions - 模型列表接口:
/models
- 对话接口:
准备好 API Key 和 Base URL 后,您可以选择以下任一方式完成配置。
重要
通用 LLM API 和 Infini 编码套餐是两套独立的接入方式。配置 OpenClaw 时,请确认您使用的是哪一套服务,并填写与之对应的 Base URL 和 API Key。
使用图形界面客户端配置 (桌面端 / 第三方客户端)
不同 OpenClaw 客户端的界面可能略有差异,但配置步骤基本一致。
填入 API 凭证
- 打开应用的设置 (Settings) 页面。
- 找到提供商 (Providers) 或自定义 API 页面。
- 新增一个提供商,并填写 Base URL:
- 通用 LLM API:
https://cloud.infini-ai.com/maas/v1 - Infini 编码套餐:
https://cloud.infini-ai.com/maas/coding/v1
- 通用 LLM API:
- 填写对应的 API Key。
重要
请直接复制控制台生成的原始密钥。如果您使用的是 Infini 编码套餐,请使用以 sk-cp- 开头的专用密钥,不要手动修改普通密钥前缀。
添加与指定模型
- 在该提供商下添加模型,并填写模型 ID。
- 模型 ID 必须与平台提供的模型名称完全一致,例如
kimi-k2.5。 - 将该模型设置为默认对话模型 (Default Chat Model)。
启用图像输入
如果您使用的是支持图像理解的多模态模型,还需要手动启用图像输入。
OpenClaw 不会仅根据模型 ID 自动判断模型是否支持图像输入。新添加的模型默认按纯文本模型处理。
这里最常见的误解是以为任意模型都可以接受图片输入。实际上并非如此。只有上游模型本身就是支持图像理解的多模态模型时,才应该启用图像输入;如果它本质上是纯文本模型,即使手动开启也仍然会报错。
判断时请不要只看模型名称,也不要因为它是自定义模型就默认它支持图片输入。更可靠的判断方式是查看上游服务文档,确认该模型是否明确支持图像或多模态输入。
请在您自己使用的 OpenClaw 桌面端或第三方客户端中完成这项配置。不同 OpenClaw 变体桌面端的界面名称和按钮文案可能不同,以下允许图像输入Vision等名称仅用于说明常见配置位置。
- 在模型的高级设置中启用允许图像输入,或者将输入能力设置为包含 Vision。
- 将该模型设置为默认图像模型 (Image Model)。
使用 OpenClaw Web UI 配置
OpenClaw Web UI 通过通用配置表单管理模型和提供商,没有单独的自定义提供商向导。
根据当前 Web UI 的实际界面路径,您可以按以下步骤完成配置:
- 打开 OpenClaw Web UI。
- 点击顶部或侧边导航中的 Settings。
- 在 Settings 页面点击 Models。
- 在 Models 页面找到 Providers 配置项。
- 在 Providers 下的 Custom entries 区域点击 Add Entry。
- 新增一个提供商条目,并将键名设置为您的提供商 ID,例如
infini-ai。 - 在该提供商条目中填写以下配置:
- baseUrl:填写 API 的基础地址。
- apiKey:填写对应的 API Key。
- api:如果您接入的是兼容 OpenAI 接口的服务,请填写
openai-completions。 - auth:通常可以保持默认;只有在上游服务明确要求时,再选择对应的鉴权方式。
- authHeader:通常无需单独开启;只有在代理或上游服务明确要求通过
Authorization头转发凭证时再配置。 - models:在同一条目中继续添加模型列表。
对于大多数兼容 OpenAI 接口的服务,只要填写 apiKey 并将 api 设为 openai-completions 即可,通常不需要再单独配置 Bearer Token 选项。只有在上游服务文档明确要求时,才需要进一步调整 auth、authHeader 或自定义 headers。
添加模型
在 models 中添加模型时,请至少填写以下字段:
- id:模型 ID,必须与平台提供的名称完全一致,例如
kimi-k2.5。 - name:模型显示名称。
启用图像输入
如果该模型支持图像输入,还需要在模型配置中为 input 添加 "text" 和 "image"。
这里最常见的误解是:只要模型能聊天,就也能接受图片输入。实际上,只有上游模型本身支持图像理解时(kimi-k2.5 支持),才应为它添加 "image"。
判断时请以模型供应方文档为准,确认该模型是否明确支持图像或多模态输入。它是否出现在 OpenClaw 的预置列表中,并不是唯一标准;但如果上游接口实际上只支持文本,对该模型添加 "image" 后,调用时仍可能报错或一直加载。
保存并应用配置
完成修改后:
- 点击页面右上角的 Save 保存配置。
- 如果您希望立即将更改应用到当前网关,再点击 Apply。
设置为默认 agent 的主模型
如果您希望将刚添加的模型设置为默认 agent 的主模型,请继续完成以下配置:
- 回到 Settings 页面。
- 点击 Agents。
- 找到 Primary Model。
- 将其设置为完整的模型引用,例如
infini-ai/kimi-k2.5。 - 点击 Save,然后根据需要点击 Apply。
这里的 Primary Model 对应的是默认 agent 的主模型配置项 agents.defaults.model.primary。
提示
OpenClaw Web UI 中的 Models 页面是一个通用配置表单。您可以在同一个页面中同时编辑提供商配置和模型配置。
使用命令行配置 (CLI)
如果您使用的是服务器或其他无图形界面的环境,可以通过 openclaw CLI 完成配置。
如果您可以使用 OpenClaw CLI,通常优先建议使用 CLI 修改配置,而不是直接在磁盘上手动编辑 openclaw.json。原因是通过 OpenClaw CLI 写入配置时,OpenClaw 会像 Web UI 保存配置一样,在每次变更时自动保存 openclaw.json 的备份;这通常比直接手改文件更安全,也更不容易因为 JSON 语法错误、逗号遗漏、引号不匹配或字段层级写错而导致配置损坏。对于不熟悉合法 JSON 语法的用户,这种方式尤其更稳妥。即使您打算借助 LLM Agent 协助修改配置,也仍然更建议优先通过 OpenClaw CLI 操作,因为能力较弱或上下文不完整的 Agent 同样可能误改 JSON 结构、漏掉必要字段,或者生成无法直接使用的配置内容。
添加提供商配置
以下示例使用 infini-ai 作为提供商 ID。
提供商 ID 是您为这组模型配置自定义的名称,不是 OpenClaw 固定要求的值。您可以改为其他名称,例如 my-team,但后续命令需要使用同一个名称。
通用 LLM API 场景
如果您使用的是通用 LLM API,请运行以下命令:
openclaw config set models.providers.infini-ai '{
"baseUrl": "https://cloud.infini-ai.com/maas/v1",
"apiKey": "sk-your-general-api-key",
"api": "openai-completions",
"models": [
{
"id": "kimi-k2.5",
"name": "Kimi K2.5"
}
]
}' --jsonInfini 编码套餐 (Coding Plan) 场景
如果您使用的是 Infini 编码套餐,请运行以下命令:
重要
请使用编码套餐控制台生成的原始密钥,不要手动修改普通密钥前缀。
openclaw config set models.providers.infini-ai '{
"baseUrl": "https://cloud.infini-ai.com/maas/coding/v1",
"apiKey": "sk-cp-your-coding-plan-key",
"api": "openai-completions",
"models": [
{
"id": "kimi-k2.5",
"name": "Kimi K2.5"
}
]
}' --json启用图像输入
如果模型需要支持图像输入,请执行以下命令:
openclaw config set models.providers.infini-ai.models[0].input '["text", "image"]' --json说明:
- 此命令会修改
models数组中索引为0的模型配置。 - 修改完成后,该模型的输入能力将包含
"text"和"image"。 - 执行前,请先确认
models[0]对应的是您刚刚添加的目标模型。 - 最常见的误解是把这条配置理解为"任何模型都能开启图片输入"。实际上,只有上游模型本身支持图像理解时(
kimi-k2.5支持),这样配置才有效。 - 如果上游模型实际上不支持图片输入,即使您手动写入
"image",调用时仍会失败。 - 在修改前,请先查看上游服务文档,确认该模型是否明确支持图像或多模态输入。
如果您需要对照真实 openclaw.json 配置排查问题:
- 如果您对
models[0]这类数组索引写法感到不直观,或者已经在排查 provider ID、baseUrl、默认模型引用等配置问题,想直接查看更接近真实结构的配置示例,可以直接参考和编辑openclaw.json。完整参考示例请见 通用 LLM API 的 openclaw.json 参考配置 和 Infini 编码套餐的 openclaw.json 参考配置。 - 如果您使用的是 OpenClaw Web 控制台,也可以在控制台中完成相同设置。
设置默认模型
使用以下命令设置默认对话模型和默认图像模型:
# 设为主对话模型
openclaw models set infini-ai/kimi-k2.5
# 设为处理图片的专属模型
openclaw models set-image infini-ai/kimi-k2.5排错指南与 API 连通性测试
如果 OpenClaw 无法正常对话,请先检查配置是否正确。常见问题包括:
- Base URL 填写错误:例如多写了
/chat/completions,或者遗漏了/v1。详见获取 API 接入信息。 - API Key 复制不完整:例如包含前后空格,或复制时混入了其他字符。
如果出现以下情况,建议继续做 API 连通性测试:
- 返回 401 或 403,需要进一步确认 API Key、鉴权方式或套餐权限是否正确。
- 返回疑似路径错误导致的 404,需要进一步确认 Base URL、接口路径或模型 ID 是否正确。
如果返回 400、422 或 429,通常应先检查请求参数、模型配置、额度或频率限制;这类问题不一定需要优先做 API 连通性测试。
以下示例可用于独立验证 API Key、Base URL 和接口路径是否可用。示例使用 kimi-k2.5 作为模型 ID。
通用 LLM API 测试命令
以下命令使用通用 LLM API 的对话接口:
https://cloud.infini-ai.com/maas/v1/chat/completions
如果您使用 macOS 或 Linux (Terminal):
curl https://cloud.infini-ai.com/maas/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-general-api-key" \
-d '{
"model": "kimi-k2.5",
"messages": [{"role": "user", "content": "测试连接,请仅回复收到。"}],
"max_tokens": 50
}'如果您使用 Windows (PowerShell):
Invoke-RestMethod -Uri "https://cloud.infini-ai.com/maas/v1/chat/completions" `
-Method Post `
-Headers @{
"Content-Type" = "application/json"
"Authorization" = "Bearer sk-your-general-api-key"
} `
-Body (@{
model = "kimi-k2.5"
messages = @(
@{ role = "user"; content = "测试连接,请仅回复收到。" }
)
max_tokens = 50
} | ConvertTo-Json -Depth 10)Infini 编码套餐测试命令
以下命令使用 Infini 编码套餐的对话接口:
https://cloud.infini-ai.com/maas/coding/v1/chat/completions
请使用以 sk-cp- 开头的编码套餐专用密钥。
如果您使用 macOS 或 Linux (Terminal):
curl https://cloud.infini-ai.com/maas/coding/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-cp-your-coding-plan-key" \
-d '{
"model": "kimi-k2.5",
"messages": [{"role": "user", "content": "测试连接,请仅回复收到。"}],
"max_tokens": 50
}'如果您使用 Windows (PowerShell):
Invoke-RestMethod -Uri "https://cloud.infini-ai.com/maas/coding/v1/chat/completions" `
-Method Post `
-Headers @{
"Content-Type" = "application/json"
"Authorization" = "Bearer sk-cp-your-coding-plan-key"
} `
-Body (@{
model = "kimi-k2.5"
messages = @(
@{ role = "user"; content = "测试连接,请仅回复收到。" }
)
max_tokens = 50
} | ConvertTo-Json -Depth 10)- 如果返回正常的 JSON 响应:说明 API Key 和 Base URL 可用。接下来请检查 OpenClaw 中填写的模型 ID、代理设置或网络连接。
- 如果返回错误码(如 401 或 404):请重新检查 API Key、Base URL 和接口路径是否正确。
常见问题
模型名称或模型 ID 应该填写什么?
请填写平台提供的实际模型 ID,并确保与平台显示的名称完全一致,例如 kimi-k2.5。
如果模型 ID 不匹配,OpenClaw 无法正确调用对应模型。
为什么发送图片后一直加载或报错?
最常见的原因有两种:当前模型未启用图像输入,或者该模型本身其实不支持图片输入。
很多用户会误以为只要模型能正常对话,就也能接受图片输入。实际上,只有明确支持图像理解的多模态模型,才应该开启图像输入。
请先查看上游服务文档,确认该模型是否明确支持图像或多模态输入;确认支持后,再在模型高级设置中启用允许图像输入。如果需要,还应将该模型设置为默认图像模型。
为什么会出现 404 或找不到网页?
通常是 Base URL 填写错误。
请确认您填写的是基础地址,而不是完整接口地址。例如,通用 LLM API 应填写:
https://cloud.infini-ai.com/maas/v1
不要在末尾附加 /chat/completions。
为什么会出现 401 或鉴权失败?
请检查以下内容:
- API Key 是否复制完整,是否包含前后空格。
- 通用 LLM API 和 Infini 编码套餐是否使用了各自对应的密钥。
- 如果您使用的是 Infini 编码套餐,请使用控制台生成的
sk-cp-密钥,不要手动修改普通密钥前缀。
如果我同时使用一个供应商的通用 LLM API 和编码套餐,API Base URL 和 API Key 不同,应该怎么配置?
按 OpenClaw 的配置逻辑,一个 provider ID 通常对应一组固定的 Base URL、鉴权信息和模型列表。只要 API Base URL 不同,即使它们仍然来自同一家服务提供方,也应拆分为不同的 provider ID;否则更容易出现鉴权、模型路由或调用目标混淆的问题。
例如,您可以分别创建:
- 一个用于通用 LLM API 的提供商,例如
infini-ai-general - 一个用于 Infini 编码套餐的提供商,例如
infini-ai-coding
然后将模型分别配置在对应的提供商下,并按需选择默认模型。
OpenClaw 是否内置图片、音频或视频生成能力?自定义 API 提供商能否提供这些能力?
OpenClaw 当前内置支持音频生成,主要用于 TTS(文本转语音)。
但本文介绍的这套自定义 API 提供商配置,也就是 models.providers.*,主要用于配置对话模型和多模态输入能力,例如文本对话或图像输入,不用于统一配置图片生成、音频生成或视频生成。
如果您希望使用:
- 图片生成:通常需要单独的 skill 或外部服务集成,不通过本文这套 provider 配置完成。
- 音频生成:应使用 OpenClaw 的 TTS 配置,而不是
models.providers.*。如果您使用的是兼容 OpenAI 的 TTS 服务,也可以通过单独的 TTSbaseUrl配置接入。 - 视频生成:当前不属于本文这套自定义 provider 配置的适用范围。
如果您的目标是接入自定义大模型对话服务,或者为模型启用图像输入,请继续使用本文中的 provider 配置方法;如果您的目标是生成图片、语音或视频,通常需要使用 OpenClaw 的其他能力或额外集成。
如果命令行提示找不到 openclaw 命令,应该怎么办?
这通常表示当前环境尚未正确安装或配置 OpenClaw CLI。
如果您不打算使用命令行,可以直接使用带图形界面的 OpenClaw 客户端完成配置。
如果您需要使用 CLI,请先确认 OpenClaw 是否已安装,并检查命令是否已加入系统路径。
通用 LLM API 的 openclaw.json 参考配置
以下示例展示的是 openclaw.json 中与自定义 provider、模型和默认 agent 模型相关的关键配置片段,便于您直接对照编辑。
警告
以下 openclaw.json 示例整理自 OpenClaw 2026.3.8 (3caab92) 版本的实际配置思路,仅作为参考,不代表已在所有版本中穷尽测试。OpenClaw 的配置结构和字段行为可能随版本变化而调整;升级、降级或切换发行版后,示例可能失效或需要修改,请谨慎使用并以您当前版本的官方文档和实际配置界面为准。
提示
如果您的 openclaw.json 已包含其他配置,例如网关、插件、频道、TTS 或工作区设置,请仅合并以下相关字段,不要直接整文件覆盖。
以下 JSON 仅为 OpenClaw 配置参考片段,不是必须原样照抄的完整配置文件。生成或修改用户配置时,请优先保留用户现有字段,仅合并与 models.providers、agents.defaults.model.primary 相关的必要项;同时请结合用户当前 OpenClaw 版本、现有 provider ID、模型能力和官方文档进行调整,不要假设示例中的字段、默认值或多模态能力在所有版本中都完全适用。
{
"models": {
"mode": "merge",
"providers": {
"infini-ai": {
"baseUrl": "https://cloud.infini-ai.com/maas/v1",
"apiKey": "sk-your-general-api-key",
"api": "openai-completions",
"models": [
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": true,
"input": ["text", "image"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 64000
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "infini-ai/kimi-k2.5"
},
"models": {
"infini-ai/kimi-k2.5": {}
}
}
}
}说明:
- 如果您接入的是通用 LLM API,请使用
https://cloud.infini-ai.com/maas/v1作为baseUrl。 apiKey应填写控制台生成的通用密钥,通常以sk-开头。- 随着平台和模型规格演进,本文 JSON 示例中展示的
contextWindow与maxTokens可能会与实际值不一致;如果两者冲突,请优先采用 模型广场 中的最新数据。 - 如果目标模型不支持图像理解,请删除
input中的"image",并且不要将其设为默认图像模型。
Infini 编码套餐的 openclaw.json 参考配置
以下 JSON 仅为 OpenClaw 编码套餐场景的参考片段,不是通用的整文件模板。生成或修改配置时,请保留用户已有的网关、插件、频道、工作区等无关字段,只合并当前 provider 与默认主模型所需的最小改动;并请注意本示例基于 OpenClaw 2026.3.8 (3caab92) 整理,模型列表、字段层级、默认值以及输入能力可能随版本变化而变化,不应机械套用。
注意
本小节的 provider ID 使用 infini-ai-coding 作为示例值。如果您改用其他 provider ID,请同步修改默认模型引用中的前缀,例如 agents.defaults.model.primary。
{
"models": {
"mode": "merge",
"providers": {
"infini-ai-coding": {
"baseUrl": "https://cloud.infini-ai.com/maas/coding/v1",
"apiKey": "sk-cp-your-coding-plan-key",
"api": "openai-completions",
"models": [
{
"id": "minimax-m2.1",
"name": "minimax-m2.1",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 200000
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 64000
},
{
"id": "glm-5",
"name": "glm-5",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 200000
},
{
"id": "glm-4.7",
"name": "glm-4.7",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 200000
},
{
"id": "minimax-m2.5",
"name": "minimax-m2.5",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 200000
},
{
"id": "minimax-m2.7",
"name": "minimax-m2.7",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 200000
},
{
"id": "deepseek-v3.2",
"name": "deepseek-v3.2",
"reasoning": true,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000,
"maxTokens": 128000
},
{
"id": "deepseek-v3.2-thinking",
"name": "deepseek-v3.2-thinking",
"reasoning": false,
"input": ["text"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000,
"maxTokens": 128000
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "infini-ai-coding/kimi-k2.5"
},
"models": {
"infini-ai-coding/kimi-k2.5": {}
}
}
}
}说明:
- 如果您接入的是 Infini 编码套餐,请使用
https://cloud.infini-ai.com/maas/coding/v1作为baseUrl。 apiKey应填写编码套餐控制台生成的专用密钥,通常以sk-cp-开头。- 本示例基于 OpenClaw
2026.3.8 (3caab92)的配置结构整理,其他版本中的字段名、层级或默认行为可能存在差异。 - 随着平台和模型规格演进,本文 JSON 示例中展示的
contextWindow与maxTokens可能会与实际值不一致;如果两者冲突,请优先采用 模型广场 中的最新数据。 - 上述编码套餐示例中的
minimax-m2.1、kimi-k2.5、glm-5、glm-4.7、minimax-m2.5、minimax-m2.7、deepseek-v3.2、deepseek-v3.2-thinking当前均按仅支持文本输入示例配置,因此input统一为["text"]。 - 如果 API Base URL 不同,即使服务仍由同一提供方提供,也应配置为不同的 provider ID。这是因为按 OpenClaw 的配置逻辑,一个 provider ID 通常对应一组固定的 Base URL、鉴权信息和模型列表;例如可以分别使用
infini-ai-general和infini-ai-coding。
附录:提供桌面安装包的 OpenClaw 相关项目
以下列表公开提供桌面安装包或可直接下载桌面分发包的 OpenClaw 相关项目。
注意
本附录仅用于生态说明,不代表 GenStudio 或 OpenClaw 官方支持这些项目。兼容性、安装方式、维护状态和安全边界,请以各项目官方说明为准。
| 项目 | 定位 | 官方入口 |
|---|---|---|
| EasyClaw | 基于 OpenClaw 的桌面端变体,主打开箱即用、本地桌面执行和较低配置门槛。 | 官网:https://easyclaw.com/ |
| PicoClaw | 轻量、跨平台实现,提供 macOS、Windows、Linux 等多个平台下载。 | 官网:https://picoclaw.io/ ;仓库:https://github.com/sipeed/picoclaw |
| QClaw | 腾讯生态中的桌面端形态,可通过聊天入口联动本地电脑执行任务,并提供桌面安装包。 | 官网:https://claw.guanjia.qq.com/ |