---
title: SGM 智能群组模型概览 - 基于 SDM 实现的群组设备编程模型
summary: SGM（Smart Group Model）是 @ray-js/panel-sdk 提供的基于 OOP 的智能群组编程模型，在 SDM 智能设备模型基础上实现，能力与 SDM 兼容。SGM 专为群组场景设计，部分功能与 SDM 有区别（详见 API 文档）。使用方式、Hooks（useProps/useActions 等）、拦截器（dp-kit/logger 等）、状态管理均可参考 SDM 对应文档。通过 yarn add @ray-js/panel-sdk 安装，支持 Ray/React 项目。
questions:
  - SGM 智能群组模型是基于 SDM 实现的，两者在能力上如何兼容？
  - SGM 专为群组场景设计，与 SDM 在哪些功能上有区别（详见 API 文档）？
  - SGM 的使用方式、Hooks、拦截器和状态管理是否直接复用 SDM 的文档？
  - 如何通过 yarn add @ray-js/panel-sdk 安装并开始使用 SGM？
  - SGM 的群组场景 API 文档在哪里查阅（init 等）？
  - SGM 是否支持 SDM 的 useProps、useActions、useDevice 等 Hooks？
  - SGM 的拦截器配置（dp-kit、logger 等）是否与 SDM 拦截器完全兼容？
  - 从 SDM 单设备项目迁移到支持群组的 SGM 需要做哪些改动？
  - SGM 在群组设备批量控制时 DP 下发的行为与 SDM 单设备有什么不同？
  - SGM 是否支持 SDM 的状态管理方案（Hooks、Context、Redux、Jotai）？
---

# 智能群组模型

一个基于 OOP 的智能群组编程模型，即 Smart Group Model（SGM），在面板业务开发过程中，统一围绕着智能群组的编程范式。

此外，智能群组模型是在智能设备模型的基础上实现的，因此其能力与智能设备模型兼容。但是，由于智能群组模型是为群组场景而设计的，因此在部分功能上与设备模型有所区别。如果您需要了解这些区别，可以查阅 [API 文档](/cn/miniapp/solution-panel/ability/common/sgm/api/init)。至于其他功能，您可以参考智能设备模型的以下文档：

- [使用](/cn/miniapp/solution-panel/ability/common/sdm/usage)
- [Hooks](/cn/miniapp/solution-panel/ability/common/sdm/hooks/useProps)
- [拦截器](/cn/miniapp/solution-panel/ability/common/sdm/interceptors/usage)

## 如何使用

```shell
$ yarn add @ray-js/panel-sdk

# or

$ npm install @ray-js/panel-sdk
```

<Image src='/images/panel/sdm.gif'/>

> Ray / React 项目

<Image src='/images/panel/sdm-react.gif'/>
