# 选择开发方式：API、SDK 或 CLI

先按任务选择模型调用或产品资源操作，再根据运行位置和所需控制程度选择 API、SDK 或 CLI。

## 快速选择

| 你要完成的任务 | 建议方式 | 原因 |
| --- | --- | --- |
| 从应用调用模型对话、Responses、向量或重排序 | Genesis 模型 API | 直接使用对应的模型接口和响应形态。 |
| 使用现有 OpenAI 或 Anthropic 客户端调用兼容接口 | Genesis 兼容 SDK | 保留熟悉的 SDK 调用方式，同时使用 Genesis Base URL 和凭据。 |
| 精确控制 Product HTTP 方法、Header、字段和响应 | Product API | 适合服务间集成、Webhook 和没有 SDK 封装的接口。 |
| 在 Go 或 Python 应用中操作工作区资源 | Product SDK | 提供类型化客户端、工作区作用域对象和任务封装。正式分发入口可用后再从零安装。 |
| 在终端、运维脚本或 CI 中操作工作区资源 | `moi-cli` | 适合命令发现、JSON 输出和短流程自动化。正式分发入口可用后再从零安装。 |

## 接入配置不能混用

| 方式 | Base URL | 凭据与作用域 |
| --- | --- | --- |
| Genesis 模型 API / OpenAI SDK | 控制台「使用」页复制的完整 Genesis Base URL | Bearer 凭据；模型 ID 来自当前凭据的模型列表。 |
| Anthropic SDK | 按 Anthropic SDK 页面从 Genesis 地址配置 origin/root；SDK 会自行追加 Messages 路径 | 使用 `auth_token` 传入 Genesis 访问凭据，并按接口要求设置 Anthropic 版本。 |
| Product API | 包含 `/newmoi` 的完整 Product API Base URL | `X-API-Key` 传递 PAT；工作区资源还需工作区 ID。 |
| Product SDK | 与 Product API 相同的完整 Product Endpoint | PAT；先列出工作区，再创建工作区作用域对象。 |
| `moi-cli` | 与 Product API 相同的完整 Product Endpoint | PAT；先运行 `workspace list`，再保存工作区 ID。 |

`moi-cli` 不用于调用 Genesis 模型。Product SDK 也不是 OpenAI 或 Anthropic 兼容 SDK；它操作的是工作区范围内的产品资源。

## 仍然无法确定时

- 需要核对准确 HTTP 契约时，从 Product API 或 Genesis 接口参考开始。
- 需要在应用中串联多个 Product 对象时，优先评估 Product SDK 是否已有对应任务封装。
- 需要交互式检查或把少量命令放入脚本时，使用 `moi-cli`。
- SDK 或 CLI 没有对应能力时，回到 Product API，不根据命令名或方法名猜测接口。

## 下一步

- [调用 Genesis 模型](../quickstart/genesis.md)
- [调用 Product API](../quickstart/product-api.md)
- [使用 Product SDK](../quickstart/product-sdk.md)
- [使用 MOI-CLI](../quickstart/moi-cli.md)
