# 查询智能体搭建可用资源

读取当前工作区中可用于搭建智能体的资源集合。

```text
GET https://moi.matrixorigin.cn/newmoi/workspaces/{workspace_id}/agent-builder/resources
```

## 调用前准备

准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。

下方示例使用：

- `$AI_STUDIO_API_KEY`：实际个人访问令牌，通过 `X-API-Key` Header 传递。
- `$WORKSPACE_ID`：目标工作区 ID，通过 `X-Workspace-ID` Header 传递，同时作为路径中的 `workspace_id`。

## 路径参数

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `workspace_id` | string | 是 | 工作区 ID。 |

## 请求示例

```bash
curl "https://moi.matrixorigin.cn/newmoi/workspaces/$WORKSPACE_ID/agent-builder/resources" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID"
```

## 成功响应

成功时返回 `200`。将该响应作为候选方案请求中的 `resources`，不要自行构造资源引用。

```json
{
  "code": 0,
  "data": {
    "models": [
      {
        "name": "<MODEL_NAME>",
        "model_config_ref": "mc_01"
      }
    ],
    "tools": [
      {
        "name": "<TOOL_NAME>"
      }
    ],
    "skills": [
      {
        "name": "<SKILL_NAME>"
      }
    ],
    "knowledge_bases": [
      {
        "name": "<KNOWLEDGE_BASE_NAME>"
      }
    ]
  }
}
```

响应字段如下。

本文中，字段路径中的 `[]` 表示数组中的每一项。例如，`items[].name` 表示 `items` 数组中每一项的 `name` 字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | integer | 成功时为 `0`。 |
| `data.models` | array | 当前工作区可用于搭建的模型、工具、技能和知识库。 |
| `data.tools` | array | 当前工作区可用于搭建的模型、工具、技能和知识库。 |
| `data.skills` | array | 当前工作区可用于搭建的模型、工具、技能和知识库。 |
| `data.knowledge_bases` | array | 当前工作区可用于搭建的模型、工具、技能和知识库。 |
| 各数组项的 `name` | string | 候选配置引用资源时使用的名称。 |
| `data.models[].model_config_ref` | string | 模型项可返回的模型配置、模型名称和展示名称。 |
| `data.models[].model_name` | string | 模型项可返回的模型配置、模型名称和展示名称。 |
| `data.models[].display_name` | string | 模型项可返回的模型配置、模型名称和展示名称。 |

## 错误响应

```json
{
  "code": 5,
  "message": "<错误信息>"
}
```

### 常见 HTTP 错误

```{list-table}
:header-rows: 1
:widths: 12 22 32 34

* - HTTP 状态码
  - 错误代码
  - 常见原因
  - 建议操作
* - `401`
  - `6`（`UNAUTHENTICATED`）
  - 缺少有效身份凭据。
  - 检查 API Key。
* - `403`
  - `5`（`PERMISSION_DENIED`）
  - 当前身份没有智能体搭建权限。
  - 检查工作区授权。
* - `413`
  - `14`（`RESOURCE_EXHAUSTED`）
  - 可用资源清单超过接口允许的大小。
  - 缩小资源范围后重试。
* - `500`
  - `1`（`INTERNAL`）
  - 资源清单读取失败。
  - 稍后重试；持续失败时联系支持。
* - `503`
  - `15`（`UNAVAILABLE`）
  - 创作资源服务或授权依赖不可用。
  - 稍后重试。
```

## 后续操作

使用资源清单[生成智能体候选方案](propose-candidate.md)。
