# 工作区与成员

工作区是 Product SDK 中产品资源的作用域。先绑定工作区，再操作目录、任务、智能体或其他工作区资源；不要在未确认工作区的情况下复用资源 ID。

## 选择工作区

已知工作区 ID 时，直接获取工作区对象。只有确实允许在工作区不存在时创建时，才按名称确保工作区存在；该操作会先查找完全匹配的可见工作区，并可能创建新的工作区。

工作区名称不能替代 ID。批处理和自动化任务应保存创建、查询或操作者选择所返回的工作区 ID，并在每次写入前确认目标。

## SDK 调用

以下示例使用按名称确保工作区存在的方式。返回的 `workspace` 是后续资源操作的起点：

:::::{tab-set}

::::{tab-item} Go

```go
workspace, err := client.EnsureWorkspace(ctx, workspaceName)
if err != nil {
	return err
}
```

::::

::::{tab-item} Python

```python
workspace = client.ensure_workspace(workspace_name)
```

::::

:::::

## 管理工作区成员

工作区成员是用户账号在当前工作区内的成员身份。邀请成员、更新成员状态、设置角色或移除成员都会改变访问范围，调用前应确认成员标识、角色集合和默认角色。

邀请结果不等于用户账号已经可以访问工作区。需要等被邀请者接受邀请后，再使用返回的成员标识获取成员对象并继续设置角色。不要将旧的角色、授权或权限检查接口当作 Product SDK 的成员管理入口。

Go 使用 `workspace.InviteMember` 和 `workspace.Member`；Python 使用 `workspace.invite_member` 和 `workspace.member`。邀请所需的成员信息、角色集合和默认角色必须由调用方明确提供。

## 下一步

- [目录、数据库、表、卷和文件](catalog-tables-volumes-files)
- [使用 Product API 管理工作区与成员](../../../api/product-api/workspaces-members)
