# createClassicAiPlugin · Classic AI 工作区装配

创建连接模型、偏好与文档 SDK 的 AI 产品插件，适合宿主已有模型连接的场景。安装插件不会自动得到模型服务或持久会话。

创建连接模型、偏好与文档 SDK 的 AI 产品插件，适合宿主已有模型连接的场景。安装插件不会自动得到模型服务或持久会话。

`@quirekit/classic-ai` · **Commercial**

## 编辑器适用范围
层次：**Classic 产品适配**
| 编辑器 | 状态 | 所需装配与边界 |
| --- | --- | --- |
| Classic | 直接支持 | 这是 Classic 产品插件，加入 createClassicEditor 的 plugins；依赖的模型、宿主端口和服务必须按下方配置提供。 |
| Block | 未支持 | Block 不消费 Classic 产品 contribution、plugins 或分页装配。请使用共享能力和 Block 适配入口，不能直接复制此入口的 Classic 配置。 |

“直接支持”指已有上述产品装配；具体交互、宿主服务和格式支持仍有各自条件。[状态与接入规则](/plugins/compatibility)。许可独立显示。

## 接入

当前 `@quirekit/classic-ai` 的包元数据标为 private。本站使用工作区源码；外部项目需先取得对应分发包，不能把下面的公开导出理解为已经能从公共 npm 安装。

此入口属于商业组件。使用前先取得相应分发与授权；安装命令仅适用于已配置该分发源的项目。

这是产品层接入：将产品插件放入 `createClassicEditor` 的 `plugins`，不要放进 Core 的 `extensions`。必填宿主端口见下面的配置。

```ts
import { createClassicAiPlugin } from '@quirekit/classic-ai'
```

安装时按包声明选择兼容版本，外部可用版本以分发源为准。本站使用工作区 Alpha；许可标签来自入口所属包，使用条件见[支持与许可](/support)。

## 按编辑器接入

以下片段沿用已挂载的宿主元素 `element`，宿主负责容器尺寸与保存；退出页面时调用 `instance.destroy()`。已有预设装配的能力不要再重复追加；需要宿主端口的入口应先完成下方配置。

### Classic

这是 Classic 产品插件，加入 createClassicEditor 的 plugins；依赖的模型、宿主端口和服务必须按下方配置提供。

```ts
import { createClassicEditor } from '@quirekit/classic-editor'
import '@quirekit/classic-editor/styles.css'
import { createClassicWordDefaultDocument } from '@quirekit/classic-docx'
import { createClassicWordPreset } from '@quirekit/classic-docx'
import '@quirekit/classic-docx/styles.css'
import { createClassicAiPlugin } from '@quirekit/classic-ai'

const instance = createClassicEditor({
  element,
  preset: createClassicWordPreset(),
  document: createClassicWordDefaultDocument(),
  plugins: [createClassicAiPlugin()],
})
```

### Block

Block 不消费 Classic 产品 contribution、plugins 或分页装配。请使用共享能力和 Block 适配入口，不能直接复制此入口的 Classic 配置。

## 配置

字段传入创建函数的 options。标为“必填”的端口由宿主提供；undefined 表示未显式配置，下面会说明创建层的回退。

### primaryModel

初始选中的模型描述。

类型：`AiChatModelDescriptor | undefined`

默认：`undefined`

### availableModels

可供用户选择的其他模型配置。

类型：`readonly AiChatModelDescriptor[] | undefined`

默认：`undefined`

### modelSelectionStore

模型选择偏好的宿主存储接口。

类型：`AiChatModelSelectionStore | undefined`

默认：`undefined`

### authorizationModeStore

AI 文档写入策略偏好的宿主存储接口。

类型：`AiChatAuthorizationModeStore | undefined`

默认：`undefined`

### createResponder

每次编辑器挂载时创建应用 responder。

类型：`(() => AiChatResponder) | undefined`

默认：`undefined`

### resolveAgentRuntime

按请求选择模型运行时的接口。

类型：`QuireAiRuntimeResolver | undefined`

默认：`undefined`

### providerStatus

可安全展示的模型连接状态。

类型：`AiChatProviderStatus | undefined`

默认：`undefined`

### providerSettings

打开模型连接设置的产品动作。

类型：`AiChatProviderSettingsAction | undefined`

默认：`undefined`

### title

AI 工作区的可见标题。

类型：`string | undefined`

默认：`undefined`

### defaultOpen

挂载后是否自动打开 AI 侧栏。

类型：`false | true | undefined`

默认：`undefined`

### diagnostics

是否显示供开发排查的原始审阅差异。

类型：`false | true | undefined`

默认：`undefined`

### openSkillLibrary

从工作区标题区域打开技能库的回调。

类型：`(() => void) | undefined`

默认：`undefined`

### skills

完整技能库接口，在创建工作区时读取可用技能。

类型：`QuireAiSkillLibrary | undefined`

默认：`undefined`

### workflowHints

是否提供常见请求对应的工具与操作提示，默认启用。

类型：`false | true | undefined`

默认：`undefined`

## 命令与运行方式

此入口没有直接声明可枚举的命令。组合扩展的命令由子扩展提供；产品插件通过 contribution 或文件服务工作。不能把安装入口名称当作命令调用。

createResponder 与 resolveAgentRuntime 互斥，同时传入会抛出 TypeError。未提供模型连接时使用未连接 responder，不会静默向默认模型发送文档。

## 下一步

返回[全部插件](/plugins)，或阅读[配置插件](/plugins/configuration)区分配置、文档属性与命令。

继续[Classic 快速接入](/classic/quick-start)和[配置与生命周期](/classic/configuration)。开发自己的产品界面与服务时，见[产品插件开发](/build/product-plugin)。
