项目技术栈与架构说明
项目简介:
agentic-ui是一个基于 React + TypeScript 的现代化 Markdown 编辑器,提供丰富的编辑功能和插件系统,支持实时预览、语法高亮、数学公式渲染等特性。
{/* 项目概述:
- 这是一个功能完整的Markdown编辑器
- 采用现代化的技术栈和架构设计
- 支持插件化扩展和自定义功能
- 提供良好的开发体验和用户界面 */}
目录
技术栈概览
{/* 技术栈说明:
- 前端框架:React 18 + TypeScript
- 编辑器核心:Slate.js
- UI组件库:Ant Design
- 样式方案:CSS-in-JS
- 构建工具:Vite
- 测试框架:Jest + Testing Library */}
核心技术
与 Ant Design X 的定位差异
@ant-design/agentic-ui 与 Ant Design X 可以独立选择,并非要求同时安装的上下游关系:
- Agentic UI 更侧重完整智能体工作台,包括多步任务、工具调用、Workspace、富 Markdown 编辑和可扩展渲染协议。
- Ant Design X 更侧重基于 Ant Design 体系快速搭建通用对话界面与模型交互。
- 已经使用本库的 Workspace、MarkdownEditor、ThoughtChain 等复合能力时,优先继续使用 Agentic UI。
- 只需要轻量聊天组件、并希望紧跟 Ant Design 官方组件体系时,可优先评估 Ant Design X。
两者可以在同一业务中按页面使用,但应统一宿主 antd 版本和主题配置,避免重复实现同一种聊天交互。
开发工具
插件生态
项目架构
{/* 架构设计说明:
- 采用模块化架构设计
- 核心编辑器与插件分离
- 支持组件化开发
- 提供完整的类型定义 */}
整体架构
数据流架构
文件夹结构
{/* 文件夹结构说明:
- 按功能模块组织代码
- 清晰的层次结构
- 便于维护和扩展
- 遵循最佳实践 */}
根目录结构
核心模块详解
1. MarkdownEditor 模块
MarkdownEditor 是整个项目的核心模块,基于 Slate.js 构建,提供了强大而灵活的 Markdown 编辑功能。
技术特点:
- 基于 Slate.js: 利用 Slate.js 的可扩展架构,提供丰富的编辑能力
- 插件化设计: 通过插件系统支持功能扩展,如数学公式、图表等
- 完整类型定义: 基于 TypeScript,提供完整的类型安全保障
- 高性能渲染: 优化的渲染机制,支持大文档编辑
主要功能:
- 富文本编辑: 支持完整的 Markdown 语法编辑
- 实时预览: 提供所见即所得的编辑体验
- 语法高亮: 多语言代码块语法高亮
- 快捷键支持: 完整的键盘快捷键系统
- 插件系统: 可扩展的插件架构
- 协作编辑: 支持多人协作编辑功能
2. MarkdownInputField 模块
MarkdownInputField 提供了一个功能丰富的输入组件,专门为快速输入和处理 Markdown 内容而设计。
技术特点:
- 轻量级输入: 相比完整编辑器,提供更轻量的输入体验
- 附件处理: 完整的文件上传和预览功能
- 智能建议: 基于上下文的内容建议和自动补全
- 快速发送: 支持快捷键发送和内容验证
主要功能:
- Markdown 输入: 支持基础 Markdown 语法输入
- 附件上传: 拖拽上传、粘贴上传等多种方式
- 文件预览: 支持图片、视频、文档等多种格式预览
- 智能建议: 自动补全、模板建议、历史记录建议
- 发送功能: 快捷键发送、内容验证、发送状态提示
3. History 模块
History 模块负责管理用户的编辑历史和会话记录,提供强大的历史管理功能。
技术特点:
- 高效存储: 使用 IndexedDB 进行本地存储,支持大量历史记录
- 智能搜索: 全文搜索、标签过滤、时间范围筛选
- 收藏管理: 重要内容收藏和分类管理
- 批量操作: 支持批量删除、导出、分享等操作
主要功能:
- 历史记录管理
- 搜索和过滤
- 收藏功能
- 批量操作
- 分页加载
4. Bubble 模块
{/* 气泡模块说明:
- 提供气泡式UI组件
- 支持消息展示
- 提供文件预览
- 支持复制功能 */}
主要功能:
- 消息气泡
- 文件预览
- 头像显示
- 列表展示
- 配置管理
5. ThoughtChainList 模块
{/* 思维链模块说明:
- 展示思维过程
- 支持动画效果
- 提供工具调用展示
- 支持深度思考展示 */}
主要功能:
- 思维链展示
- 动画效果
- 工具调用
- 成本统计
- 深度思考
6. Workspace 模块
{/* 工作空间模块说明:
- 提供工作空间功能
- 支持文件管理
- 提供浏览器功能
- 支持任务管理 */}
主要功能:
- 文件管理
- 浏览器功能
- HTML预览
- 实时跟随
- 任务管理
7. Plugins 模块
{/* 插件模块说明:
- 提供插件化架构
- 支持数学公式
- 支持图表渲染
- 支持幻灯片 */}
主要功能:
- 数学公式渲染
- 图表渲染
- 代码高亮
- 幻灯片支持
- 插件管理
8. Schema 模块
{/* 模式模块说明:
- 提供JSON Schema支持
- 动态表单生成
- 内容渲染
- 模板引擎 */}
主要功能:
- JSON Schema支持
- 动态表单
- 内容渲染
- 模板引擎
- 数据验证
核心模块说明
{/* 核心模块说明:
- 每个模块都有明确的职责
- 模块间通过接口通信
- 支持独立开发和测试
- 提供完整的类型定义 */}
模块职责划分
模块通信机制
开发环境配置
{/* 开发环境说明:
- 提供完整的开发环境
- 支持热重载和调试
- 包含代码质量工具
- 提供测试环境 */}
环境要求
- Node.js: 16.x 或更高版本
- npm: 8.x 或更高版本
- Git: 2.x 或更高版本
安装依赖
开发命令
开发工具配置
Vite 配置
TypeScript 配置
构建与部署
{/* 构建部署说明:
- 提供多种构建模式
- 支持环境配置
- 包含性能优化
- 提供部署指南 */}
构建模式
开发构建
生产构建
环境配置
开发环境
生产环境
部署指南
静态部署
Docker 部署
性能优化
代码分割
资源优化
缓存策略
总结
{/* 总结说明:
- 项目采用现代化技术栈
- 模块化架构设计
- 完整的开发工具链
- 良好的可维护性 */}
agentic-ui 项目采用现代化的技术栈和架构设计,具有以下特点:
技术优势
- 现代化技术栈:React 18 + TypeScript + Vite
- 模块化架构:清晰的模块划分和职责分离
- 插件化设计:支持功能扩展和自定义
- 类型安全:完整的 TypeScript 类型定义
- 开发体验:热重载、代码检查、测试覆盖
架构优势
- 可维护性:清晰的代码结构和模块划分
- 可扩展性:插件化架构支持功能扩展
- 可测试性:完整的测试体系和工具支持
- 性能优化:代码分割、资源优化、缓存策略
开发优势
- 开发效率:现代化的开发工具和流程
- 代码质量:ESLint、Prettier、TypeScript 保障
- 团队协作:统一的代码规范和开发流程
- 文档完善:详细的文档和示例代码
这个项目为团队提供了一个功能完整、架构清晰、易于维护的 Markdown 编辑器解决方案。
