WeKnora 开源组件集成路线图
核心原则:不造轮子,集成优先。每个改造项都指定具体的开源组件 + 集成方式 + GitHub 地址。
基于:WeKnora v0.6.3 源码扫描 + IMA 2.5.6 全功能调研 + GitHub 开源组件深度评估
一、WeKnora 编辑器现状澄清
WeKnora 没有富文本编辑器。 源码中唯一的”编辑器”是 manual-knowledge-editor.vue(1117 行),本质是 <t-textarea>(TDesign 纯文本框)+ Markdown 工具栏 + marked 预览面板。Wiki 页面没有人类编辑 UI,只有 AI Agent 通过工具创建。所有聊天输入都是纯 <t-textarea>。package.json 中无任何编辑器依赖(无 TipTap/ProseMirror/Quill/Lexical)。
二、推荐开源组件总表(26 个组件)
| 改造领域 | 推荐组件 | GitHub Stars | 许可证 | 集成难度 | 说明 |
|---|---|---|---|---|---|
| AI 富文本编辑器 | TipTap 3 | 37.4k | MIT | 中 | Vue 3 原生支持,最成熟的 headless 编辑器 |
| AI 编辑器 AI 层 | AiEditor 参考架构 | 1.8k | LGPL | 低 | Web Components,内置 AI 续写/润色/翻译,参考其 AI 交互设计 |
| PPT 生成 | python-pptx | 3.4k | MIT | 低 | Python 生成 PPTX 的事实标准 |
| PPT 渲染替代 | Marp CLI | 12k | MIT | 低 | Markdown → PPTX/PDF,适合快速出片 |
| 播客/TTS | Podcastfy | 6.4k | Apache-2.0 | 低 | 端到端播客生成流水线(文本→脚本→音频) |
| TTS 引擎(免费) | edge-tts | 11.4k | MIT* | 极低 | 微软 Edge TTS,400+ 音色,免费,无需 GPU |
| TTS 引擎(本地) | ChatTTS | 39.5k | AGPL | 中 | 对话式语音,自然度高,需 GPU |
| 图片生成 | LocalAI | 47.2k | MIT | 低 | OpenAI 兼容 API,一站式 LLM+图片+TTS+STT |
| 图片生成备选 | HuggingFace Diffusers | 33.9k | Apache-2.0 | 中 | 直接 Python 集成,支持 SD/SDXL/Flux |
| 思维导图 | Markmap | 12.9k | MIT | 极低 | Markdown → 交互式脑图,npm 包直接嵌入 |
| 脑图编辑器 | Mind Elixir | 3.1k | MIT | 低 | 框架无关的脑图编辑器,支持拖拽/编辑/导出 |
| 报告生成 | GPT-Researcher | 27.9k | Apache-2.0 | 中 | 深度研究 Agent,树形探索+结构化报告+引用 |
| 报告生成备选 | STORM (Stanford) | 11.8k | Apache-2.0 | 中 | 斯坦福出品,模拟研究员对话生成报告 |
| 四层记忆 | Mem0 | 49k+ | Apache-2.0 | 低 | 独立 REST 服务 + MCP Server,Go 直接调 API |
| 记忆图谱 | Graphiti (Zep) | 8k+ | Apache-2.0 | 低 | Neo4j 时序知识图谱,专为 Agent 记忆设计 |
| 任务编排 | LangGraph | 35.8k | MIT | 中 | 图结构有状态 Agent 工作流,Plan-and-Execute |
| 任务编排备选 | CrewAI | 30k+ | MIT | 中 | 多 Agent 协作框架,角色化分工 |
| 浮窗 UI | Vue 3 Teleport + 自建 | — | — | 低 | Vue 3 内置能力,无需外部组件 |
| 实时录音 | whisper.cpp | 37k+ | MIT | 低 | 纯 C++,有 Go 绑定,可直接嵌入 Go 后端 |
| 服务端 ASR | faster-whisper | 20k | MIT | 低 | 4x 加速 Whisper,部署为 FastAPI 微服务 |
| 流式 ASR | whisper_streaming | 5k | MIT | 中 | 实时流式转写,3.3s 延迟,WebSocket 服务 |
| 技能市场 | 参考 awesome-agent-skills 格式 | 38k | CC0 | 低 | Markdown 定义技能,已被广泛验证的轻量格式 |
| 知识库广场 | Outline | 29k | BSL | 中 | API-first 知识库平台,实时协作,Docker 部署 |
| 桌面端增强 | Wails v3(已有) | 25k | MIT | — | 已集成,升级到 v3 即可获得系统托盘+全局快捷键 |
| 移动端 | Capacitor(PWA→App) | 12k+ | MIT | 低 | 将 Vue 3 前端打包为 iOS/Android 原生 App |
| 评测持久化 | 自建(简单 DB 表) | — | — | 低 | WeKnora 已有评测引擎,只需加 DB 持久化 |
三、分阶段集成方案(6 阶段)
阶段 1:AI 编辑器 + 笔记系统(第 1-4 周)
集成 TipTap 3 构建 AI 写作编辑器和智能笔记模块。
1.1 集成 TipTap 3 作为核心编辑器
组件:TipTap 3(37.4k stars,MIT,Vue 3 原生)
集成步骤:
# 前端安装
cd frontend
npm install @tiptap/vue-3 @tiptap/starter-kit @tiptap/extension-placeholder \
@tiptap/extension-highlight @tiptap/extension-image @tiptap/extension-link \
@tiptap/extension-table @tiptap/extension-task-list \
@tiptap/extension-code-block-lowlight @tiptap/extension-mermaid \
@tiptap/extension-collaboration @tiptap/extension-floating-menu \
@tiptap/extension-slash-command前端新增文件:
frontend/src/components/editor/WeKnoraEditor.vue:TipTap 编辑器主组件frontend/src/components/editor/SlashCommandMenu.vue:/斜杠命令菜单(参考 AiEditor 的 AI 菜单设计)frontend/src/components/editor/AIAssistBubble.vue:选中文本后的 AI 浮窗(改写/扩写/缩写/翻译/续写)frontend/src/extensions/tiptap/:自定义 TipTap 扩展目录KnowledgeRef.ts:@引用知识库文档的 TipTap 扩展AICompletion.ts:AI 续写扩展(SSE 流式输出到编辑器)ImageGen.ts:/image命令生成 AI 图片并插入
后端新增:
POST /api/v1/editor/ai-assist:AI 辅助写作端点(接收选中文本 + 指令 → 流式返回改写结果)config/prompt_templates/editor_ai/:6 种 AI 操作 prompt(expand/condense/polish/translate/continue/outline)
参考设计:AiEditor 的 AI 交互模式(续写/润色/翻译按钮)+ Novel 的 Slash 命令设计
工作量:2 周
1.2 智能笔记模块
数据模型(新建 2 张表):
-- migrations/versioned/000066_notes.up.sql
CREATE TABLE note_folders (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id),
tenant_id UUID NOT NULL REFERENCES tenants(id),
name VARCHAR(255) NOT NULL,
parent_id UUID REFERENCES note_folders(id),
position INT DEFAULT 0,
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE notes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id),
tenant_id UUID NOT NULL REFERENCES tenants(id),
title VARCHAR(500),
content JSONB, -- TipTap JSON 格式
content_text TEXT, -- 纯文本(全文索引用)
folder_id UUID REFERENCES note_folders(id),
status VARCHAR(20) DEFAULT 'draft', -- draft/published
is_pinned BOOLEAN DEFAULT false,
tags JSONB DEFAULT '[]',
source_type VARCHAR(20), -- manual/ai/chat/web
source_id UUID, -- 关联的 session/message/knowledge ID
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now()
);
CREATE INDEX idx_notes_tenant_user ON notes(tenant_id, user_id);
CREATE INDEX idx_notes_content_text ON notes USING gin(to_tsvector('simple', content_text));后端(5 个新文件):
internal/types/note.go+internal/types/note_folder.gointernal/application/repository/note.go+note_folder.gointernal/application/service/note.go:CRUD + 全文搜索 + 知识库关联 + PDF 导出(用wkhtmltopdf或chromedp渲染)internal/handler/note.go:RESTful APIinternal/router/router.go:注册/api/v1/notes路由组
前端(新建目录):
frontend/src/views/notes/NotesView.vue:笔记列表 + 文件夹树frontend/src/views/notes/NoteEditor.vue:集成 TipTap 的笔记编辑器frontend/src/stores/notes.ts:Pinia Store- 路由:
/platform/notes+/platform/notes/:noteId
工作量:2 周
阶段 2:内容生成矩阵(第 5-10 周)
集成 6 个开源组件,补齐 PPT/报告/播客/脑图/图片生成。
2.1 PPT 生成 — python-pptx + Marp CLI
组件:
- python-pptx(3.4k stars,MIT)— 编程式 PPTX 生成
- Marp CLI(12k stars,MIT)— Markdown → PPTX 快速转换
集成架构:
用户请求 → WeKnora Agent 检索知识库 → LLM 生成幻灯片大纲 JSON → Python 脚本(python-pptx 渲染)→ 输出 .pptx → 下载具体实现:
- 新增 Python 渲染脚本:
docreader/generators/ppt_generator.py(接收 JSON 大纲 → python-pptx 生成 PPTX) - 预设 5 个模板:
docreader/generators/templates/(.pptx 骨架文件) - Go 后端通过 gRPC 调用(复用已有的 docreader 通道),或通过 Asynq 任务调用 Python 子进程
- 备选方案:简单场景直接用 Marp CLI(
marp --pptx output.md) - API:
POST /api/v1/slides/generate(异步任务)+GET /api/v1/slides/:task_id/download
前端:
frontend/src/components/slides/SlideGenDialog.vue:输入面板frontend/src/components/slides/SlidePreview.vue:预览(PPTX 转图片展示)
工作量:1.5 周
2.2 深度研究 & 报告生成 — GPT-Researcher
组件:GPT-Researcher(27.9k stars,Apache-2.0)
为什么选它:树形研究探索(非单线循环)、并发处理、MCP 协议支持、结构化报告输出、引用标注,是目前最成熟的深度研究 Agent。
集成架构:
用户输入研究主题 → WeKnora 启动 GPT-Researcher 子进程/API 调用 → GPT-Researcher 自动规划 → 多轮搜索(复用 WeKnora 的 web_search 引擎) → 交叉验证 → 生成 Markdown 报告(含引用)→ SSE 推送进度具体实现:
- 部署 GPT-Researcher 为独立 Python 微服务(Docker 容器)
- 配置 GPT-Researcher 使用 WeKnora 已有的搜索引擎(SearXNG/Bing/Tavily 等)
- Go 后端通过 REST API 与 GPT-Researcher 通信
internal/application/service/deep_research.go:封装调用逻辑 + 进度追踪- API:
POST /api/v1/research/start+GET /api/v1/research/:id/progress(SSE)+GET /api/v1/research/:id/report - 前端:
frontend/src/views/research/DeepResearchView.vue(大纲预览 + 实时进度 + 报告渲染)
备选:STORM (Stanford)(11.8k stars)——模拟研究员多轮对话生成报告,更学术但集成复杂度更高。
工作量:2 周
2.3 播客生成 — Podcastfy + edge-tts
组件:
集成架构:
用户选择文档 → LLM 生成双人对话脚本 → edge-tts 分别生成两个角色的音频 → FFmpeg 合并音频 + 背景音乐 → 输出 MP3具体实现:
- Podcastfy 支持 edge-tts 作为后端,可直接调用其 API
- 新增 Python 脚本:
docreader/generators/podcast_generator.py - 音色配置:商务男声 / 知性女声 / 多种可选(edge-tts 400+ 音色)
- 通过 WeKnora sandbox 执行 FFmpeg 音频合并
- API:
POST /api/v1/podcast/generate(Asynq 异步,1-3 分钟)
前端:
frontend/src/components/podcast/PodcastPlayer.vue:音频播放器 + 脚本同步显示
工作量:1.5 周
2.4 思维导图 — Markmap + Mind Elixir
组件:
- Markmap(12.9k stars,MIT)— Markdown → 脑图,零转换成本
- Mind Elixir(3.1k stars,MIT)— 可编辑脑图
集成方式:
npm install markmap-view markmap-lib markmap-toolbar- 快速模式(Markmap):WeKnora 已有 Markdown 内容,Markmap 直接将 Markdown 标题层级转为交互式脑图 SVG。只需
new Markmap(svgElement, options, markmapData) - 编辑模式(Mind Elixir):用户需要拖拽/编辑节点时,用 Mind Elixir 替代。支持导入/导出 JSON + XMind 格式
- 后端:新增 prompt 模板
config/prompt_templates/mindmap_generation.yaml,LLM 输出 Mermaid mindmap 或结构化 JSON - 前端:
frontend/src/components/mindmap/MindmapViewer.vue(Markmap 渲染 + Mind Elixir 编辑切换)
工作量:1 周
2.5 AI 图片生成 — LocalAI 或 Diffusers
组件:LocalAI(47.2k stars,MIT)
为什么选它:一个 Docker 容器同时提供 OpenAI 兼容 API 的 LLM + 图片生成 + TTS + STT。如果已部署 LocalAI 作为本地 LLM 服务,图片生成是免费附赠的——直接调用 /v1/images/generations 端点即可。
集成方式:
- 如果已有 LocalAI 实例:Go 后端直接用 OpenAI 兼容 HTTP 客户端调用
POST /v1/images/generations - 如果需要独立图片服务:部署 HuggingFace Diffusers(33.9k stars,Apache-2.0)为 FastAPI 微服务
- 复用 WeKnora 已有的
internal/models/模型管理架构,新增imagegenprovider - API:
POST /api/v1/image/generate - 前端:
frontend/src/components/imagegen/ImageGenDialog.vue
工作量:0.5 周(LocalAI 已部署)或 1 周(独立部署 Diffusers)
2.6 AI 解读面板(三合一入口)
集成方式:将上述脑图 + 播客 + 测验整合为统一入口
frontend/src/views/knowledge/AIInterpretPanel.vue:三个 Tab(脑图/播客/测验)- 知识测验:复用 WeKnora 已有的
generate_questionsprompt,包装为交互式答题组件
工作量:0.5 周
阶段 3:四层记忆系统 — Mem0(第 11-15 周)
用 Mem0 作为记忆引擎,大幅降低自建成本。
3.1 集成 Mem0 作为记忆服务
组件:Mem0(49k+ stars,Apache-2.0)
为什么选它:
- 独立 REST API 服务,Go 直接通过 HTTP 调用,无需嵌入 Python 运行时
- 提供 MCP Server,WeKnora 的 MCP 框架可直接接入
- 内置用户画像(User)+ 长期记忆(Memory)+ Agent 经验三层
- 支持 Neo4j 图谱存储(与 WeKnora 已有的 Neo4j 实例共享)
- 记忆自动提取、去重、冲突解决
- 生产就绪,49k+ stars
集成架构:
用户对话 → WeKnora Chat Pipeline → MemoryPlugin → POST http://mem0:8081/v1/memories/ (存储记忆) → GET http://mem0:8081/v1/memories/?user_id=xxx (检索记忆) → 记忆自动注入 system prompt部署:
# docker-compose.yml 新增 mem0 服务
mem0:
image: mem0/mem0:latest
environment:
- NEO4J_URI=bolt://neo4j:7687 # 共享 WeKnora 已有的 Neo4j
- NEO4J_USER=neo4j
- NEO4J_PASSWORD=xxx
ports:
- "8081:8081"具体实现:
层 1:Copilot 设定(Soul)
copilot_profiles表(WeKnora 自建,简单 CRUD)- 修改
internal/agent/prompts.go的BuildSystemPromptWithOptions(),在最前面注入 persona prompt - 前端
frontend/src/views/settings/CopilotProfile.vue:设定编辑界面 - 工作量:1 周
层 2+3+4:用户画像 + 长期记忆 + 经验技巧 → Mem0
- 修改
internal/application/service/chat_pipeline/memory.go:- 替换现有的简单
FindRelatedEpisodes调用为 Mem0 API MEMORY_STORAGE事件:POST /v1/memories/存储对话记忆MEMORY_RETRIEVAL事件:GET /v1/memories/?user_id=xxx&query=xxx检索相关记忆
- 替换现有的简单
- Mem0 自动处理:记忆提取、去重、实体关联、冲突解决
- 用户画像通过 Mem0 的
user_id维度自动积累 - 经验学习通过 Mem0 的
agent_id维度存储 Agent 学到的规则 - 工作量:2 周
记忆管理 UI:
frontend/src/views/settings/MemoryManager.vue:- 调用 Mem0 API 展示所有记忆
- 支持搜索、删除、标记重要性
- 可视化实体关系图(小型 D3 组件,复用已有的 mermaid/D3 依赖)
- 工作量:1 周
3.2 Copilot 浮窗 & 全场景感知
不需要外部组件,Vue 3 内置能力即可实现:
frontend/src/components/copilot/CopilotFloat.vue:- Vue 3
<Teleport to="body">挂载到根级别 position: fixed+ 拖拽(@vueuse/core的useDraggable)- 迷你模式(圆形按钮)↔ 展开模式(聊天面板)
- Vue 3
frontend/src/composables/usePageContext.ts:- Vue Router
afterEach钩子追踪当前页面 - Pinia store 提取页面上下文(当前文档/搜索结果/笔记内容)
- 上下文自动注入 Copilot 请求
- Vue Router
- 全局快捷键
Ctrl+K:复用已有的GlobalCommandPalette.vue,增加 Copilot 模式切换 - 工作量:1.5 周
阶段 4:任务模式 — LangGraph(第 16-20 周)
用 LangGraph 实现 Plan-and-Execute 任务编排。
4.1 集成 LangGraph 作为任务编排引擎
组件:LangGraph(35.8k stars,MIT)
为什么选它:
- 图结构有状态 Agent 工作流,天然适合 Plan-and-Execute
- 内置持久化(SQLite/PostgreSQL),支持暂停/恢复/回退
- 原生支持 human-in-the-loop(中途注入)
- MIT 许可,Go 通过 REST API 调用 LangGraph Platform 或自部署
集成架构:
用户输入任务 → WeKnora Go 后端 → REST API 调用 LangGraph → LangGraph 执行计划图: [Plan] → [Step1: Search] → [Step2: Read] → [Step3: Generate] → [Review] → 每步结果通过 SSE 推送回 WeKnora 前端 → 中途注入通过 API 发送 human feedback部署:
# docker-compose.yml 新增 langgraph 服务
langgraph:
build: ./langgraph-server/ # 自定义 Dockerfile
environment:
- DATABASE_URI=postgresql://... # 共享 WeKnora 的 PostgreSQL
ports:
- "8123:8123"具体实现:
- 创建
langgraph-server/目录,包含 LangGraph Platform 的自定义 Dockerfile - 定义任务图:
langgraph-server/graphs/task_mode.py(Plan → Execute → Review 节点) - Go 后端:
internal/application/service/task_mode/task_client.go(REST 客户端) - API:
POST /api/v1/task-mode/start、GET /api/v1/task-mode/:id/stream(SSE)、POST /api/v1/task-mode/:id/feedback - 前端:
frontend/src/views/taskmode/TaskModeView.vue(任务计划可视化 + 进度条 + 中途注入面板)
备选:CrewAI(30k+ stars,MIT)——多 Agent 角色化分工,适合”研究员+写手+编辑”的协作模式。
工作量:3-4 周
阶段 5:ASR & 实时录音(第 21-25 周)
5.1 实时录音 — whisper.cpp Go 绑定
组件:whisper.cpp(37k+ stars,MIT)
为什么选它:
- 纯 C++ 实现,有 Go 绑定(
github.com/ggerganov/whisper.cpp/bindings/go),可直接嵌入 Go 后端 - 无需 Python 运行时,无需 GPU(CPU 推理足够实时)
- 支持 GGML 量化模型(400MB 即可运行)
集成方式:
- Go 后端直接调用 whisper.cpp Go 绑定
- WebSocket 端点:
/api/v1/asr/stream(实时音频流 → 文本流) - 前端:
@capacitor/voice-recorder插件录音 → WebSocket 推送音频 → 实时显示转写文本
工作量:1.5 周
5.2 服务端 ASR 增强 — faster-whisper
组件:faster-whisper(20k stars,MIT)
集成方式:
- 部署为 FastAPI 微服务(Docker 容器)
- Go 后端通过 gRPC/REST 调用
- 支持批量音频文件转写(复用已有的 Asynq 任务队列)
- 多语言支持:Whisper large-v3 支持 100+ 语言
工作量:1 周
阶段 6:技能市场 + 知识库广场(第 26-30 周)
6.1 技能市场
参考格式:awesome-agent-skills(38k stars,CC0)— Markdown 定义技能
WeKnora 已有基础:skills/preloaded/ 目录 + SKILL.md 格式 + Docker 沙箱执行
改造方案:
skill_marketplace表:id, name, description, author_id, skill_content, category, tags, downloads, rating, version, is_public- API:
/api/v1/skills-marketplace(CRUD + 搜索 + 安装/卸载) - 安装操作:将 skill_content 写入
skills/目录 →skills.Manager.Reload() - 从对话提取技能:
POST /api/v1/skills-marketplace/extract-from-chat - 前端:
frontend/src/views/skills/SkillMarketplace.vue(卡片展示 + 搜索 + 一键安装)
工作量:2 周
6.2 知识库广场
组件参考:Outline(29k stars)的 API-first 设计 + DigitalHippo 的市场 UI 模式
改造方案:
knowledge_bases表增加visibility字段(private/organization/public)kb_marketplace表:id, kb_id, description, category, tags, subscriber_count, sample_questionskb_subscriptions表:user_id + kb_id- API:
/api/v1/marketplace(搜索/浏览/订阅) - 前端:
frontend/src/views/marketplace/MarketplaceView.vue
工作量:1.5 周
四、总览时间线
月份 M1 M2 M3 M4 M5 M6 M7 M8 ├───────┼───────┼───────┼───────┼───────┼───────┼───────┤阶段1 ████████████████阶段2 ████████████████████████████阶段3 ████████████████████阶段4 ████████████████████████阶段5 ████████████████阶段6 ████████████████| 阶段 | 内容 | 周期 | 核心组件 |
|---|---|---|---|
| 1 | AI 编辑器 + 笔记 | 4 周 | TipTap 3 |
| 2 | 内容生成矩阵 | 6 周 | python-pptx, GPT-Researcher, Podcastfy, Markmap, LocalAI |
| 3 | 四层记忆系统 | 5 周 | Mem0, Graphiti |
| 4 | 任务模式 | 5 周 | LangGraph |
| 5 | ASR & 录音 | 5 周 | whisper.cpp, faster-whisper |
| 6 | 市场 & 广场 | 5 周 | awesome-agent-skills, Outline |
总计:约 30 周(7-8 个月),2-3 名全栈工程师
五、组件选型决策树
需要什么能力?├── AI 编辑器 → TipTap 3(Vue 3 原生,37.4k stars)├── PPT 生成 → python-pptx(Python 标准)+ Marp CLI(快速出片)├── 深度研究 → GPT-Researcher(27.9k stars,MCP 支持)├── 播客生成 → Podcastfy + edge-tts(免费,400+ 音色)├── 思维导图 → Markmap(零成本)+ Mind Elixir(可编辑)├── 图片生成 → LocalAI(已有 LLM 则免费附赠)├── 记忆系统 → Mem0(49k+ stars,独立 REST 服务)├── 任务编排 → LangGraph(图结构,human-in-the-loop)├── 实时 ASR → whisper.cpp(Go 绑定,嵌入后端)└── 技能市场 → 自建(参考 awesome-agent-skills 格式)本文档基于 WeKnora v0.6.3 源码扫描 + IMA 2.5.6 功能调研 + GitHub 开源组件评估生成。
最后更新:2026-06-26
