Skip to content
目录

AI 能力层:从基础标记到流式对话

1. 架构分层

Plate 的 AI 能力不是单插件,而是分层构建:

  1. 基础层BaseAIPlugin(AI 标记、插入、撤销等底层 transform)
  2. 交互层AIPlugin(React 侧包装)
  3. 场景层AIChatPlugin(聊天、流式、锚点、批处理)

核心文件:

  • packages/ai/src/lib/BaseAIPlugin.ts
  • packages/ai/src/react/ai/AIPlugin.ts
  • packages/ai/src/react/ai-chat/AIChatPlugin.ts

2. 依赖关系设计

AIChatPlugin 显式声明 dependencies: ['ai'],这是典型的“高层能力依赖底层语义层”做法。

好处:

  • 组合顺序可预测
  • 不会出现 chat 层调用不到 ai transform 的隐式错误

3. 状态模型设计

AIChatPlugin options 里有一组非常关键的运行态字段:

  • chatSelection / chatNodes:请求上下文边界
  • streaming / _blockPath / _blockChunks:流式写入状态
  • modeinsertchat
  • toolName:工具意图路由

这说明它不是“调用接口后直接替换文本”,而是完整的编辑事务状态机。

4. 与编辑历史的耦合处理

插件里能看到针对 AI batch/history 的处理(例如 hide/reload/undo 组合),这对“可撤销 AI 操作”非常关键。
可重点强调:AI 操作必须服从 editor 历史系统,否则用户体验会断裂。

5. 为什么 Plate 的 AI 设计值得讲

  1. 它把 AI 当作编辑器的一部分,而不是旁路工具栏功能
  2. 它保留了“选择区 -> 生成 -> 接受/拒绝/重试”的可控流程
  3. 它支持 streaming,并在插件态维护中间状态,避免全量重渲染

6. 结合仓库演进理解

迁移文档里也提示 AI 插件处于实验性阶段(在快速迭代框架里很合理)。这不是“功能不成熟”,而是明确告诉开发者:AI 层仍在高频优化路径上。

小结

Plate AI 的价值不在于“接了哪个模型”,而在于它把 AI 输出嵌进了编辑器插件架构、历史系统和选择语义中,形成可维护、可交互的编辑流程。

MIT License.