diff --git a/.gitignore b/.gitignore index dd3ca40..141eb19 100644 --- a/.gitignore +++ b/.gitignore @@ -71,9 +71,14 @@ env/ # local storage api/storage/ +apps/api/storage/ # agent memory (runtime data, user-specific — not for version control) api/data/memory/ +apps/api/data/memory/ + +# local runtime caches +apps/api/tmp/ # daily rotating log files api/logs/ diff --git a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/3acf8dfe-1723-4896-a9e6-23a547d5737a.md b/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/3acf8dfe-1723-4896-a9e6-23a547d5737a.md deleted file mode 100644 index 901fdac..0000000 --- a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/3acf8dfe-1723-4896-a9e6-23a547d5737a.md +++ /dev/null @@ -1,3 +0,0 @@ -# test - -this is a tiny ingestion regression check \ No newline at end of file diff --git a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/41b24de4-9d20-48d8-bc3c-9fe8fdeb4934.md b/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/41b24de4-9d20-48d8-bc3c-9fe8fdeb4934.md deleted file mode 100644 index 1822a81..0000000 --- a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/41b24de4-9d20-48d8-bc3c-9fe8fdeb4934.md +++ /dev/null @@ -1,7 +0,0 @@ -# Codex Ingestion Smoke Test - -This source is used to verify the pending -> processing -> indexed pipeline. - -- queue routing -- after commit dispatch -- worker consumption diff --git a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/72708d3a-a42e-4a96-9fe2-28081462ed31.md b/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/72708d3a-a42e-4a96-9fe2-28081462ed31.md deleted file mode 100644 index 1822a81..0000000 --- a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/72708d3a-a42e-4a96-9fe2-28081462ed31.md +++ /dev/null @@ -1,7 +0,0 @@ -# Codex Ingestion Smoke Test - -This source is used to verify the pending -> processing -> indexed pipeline. - -- queue routing -- after commit dispatch -- worker consumption diff --git a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/85239377-83ad-478b-b819-f36d894bb9e3.pdf b/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/85239377-83ad-478b-b819-f36d894bb9e3.pdf deleted file mode 100644 index e1571d1..0000000 Binary files a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/85239377-83ad-478b-b819-f36d894bb9e3.pdf and /dev/null differ diff --git a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9b726fd-1b6f-4444-a297-0dbdb73fdd3c.md b/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9b726fd-1b6f-4444-a297-0dbdb73fdd3c.md deleted file mode 100644 index 1822a81..0000000 --- a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9b726fd-1b6f-4444-a297-0dbdb73fdd3c.md +++ /dev/null @@ -1,7 +0,0 @@ -# Codex Ingestion Smoke Test - -This source is used to verify the pending -> processing -> indexed pipeline. - -- queue routing -- after commit dispatch -- worker consumption diff --git a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9e24316-a846-4e3c-8b20-52234859609e.md b/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9e24316-a846-4e3c-8b20-52234859609e.md deleted file mode 100644 index d3b8c27..0000000 --- a/apps/api/storage/notebooks/9a2371fa-8a99-4436-b330-f35bf43c893c/a9e24316-a846-4e3c-8b20-52234859609e.md +++ /dev/null @@ -1,240 +0,0 @@ -# LyraNote 本科毕设全局设计说明(论文版) - -> 文档用途:用于本科毕业论文中的“研究背景、系统设计、技术特点、关键难点与创新点”章节初稿。 -> -> 版本日期:2026-03-26 -> -> 适用对象:论文作者、答辩评审、项目协作者 - ---- - -## 摘要 - -LyraNote 是一个面向个人研究与知识管理场景的 AI 驱动系统,目标是将传统“知识存储工具”升级为“可持续协作的研究伙伴”。系统围绕“私有知识优先”的设计原则,整合了 RAG 检索增强、多 Agent 编排、长期记忆、主动感知、深度研究与可视化生成界面(GenUI)等能力,形成从信息采集、理解、生成到反馈演化的闭环。 - -与常见 AI 笔记产品相比,LyraNote 不仅提供被动问答,还重点探索 AI 的主动性与持续性:在用户未显式提问时,系统仍可基于上下文状态进行低干扰主动辅助;在长周期任务中,系统支持定时调度与自动投递;在多轮交互中,系统通过多层记忆与画像机制持续提升个性化质量。该系统具有较强工程实现价值与研究讨论价值,适合作为“智能知识系统 + Agent 工程化”方向的本科毕设课题。 - ---- - -## 1. 研究背景与意义 - -### 1.1 研究背景 - -当前主流知识管理工具(笔记类应用、文档类应用)普遍存在两类不足: - -1. 知识层面:多来源信息可存储但难以深度理解,跨文档关联弱,检索结果与用户真实任务脱节。 -2. AI 层面:大多停留在“你问我答”的被动模式,缺乏持续状态感知、长期个性化与任务自动执行能力。 - -与此同时,通用大模型虽然具备强生成能力,但在真实研究流程中仍面临幻觉、上下文窗口限制、长任务中断、可解释性不足、部署复杂等问题。基于此,LyraNote 以“面向研究场景的 AI 原生第二大脑”为目标,尝试把 LLM 能力转化为可持续、可控、可落地的系统能力。 - -### 1.2 研究意义 - -1. 应用意义:提高个人研究与学习效率,减少“搜集-整理-输出”的重复劳动。 -2. 工程意义:构建可扩展的 AI 系统架构,验证多 Agent、记忆系统、事件驱动链路在真实产品中的可行性。 -3. 学术意义:为“从被动对话到主动协作”的 AI Agent 产品化路径提供可复用方法与实验设计。 - ---- - -## 2. 研究目标与问题定义 - -### 2.1 总体目标 - -构建一个支持“知识摄取—语义检索—深度研究—结构化表达—长期演化”的 AI 研究笔记系统,实现 AI 从工具属性向伙伴属性的演进。 - -### 2.2 核心研究问题 - -1. 如何让 AI 回答建立在用户私有知识之上,而不是泛化互联网知识? -2. 如何在复杂任务中提升质量与稳定性,避免单 Agent 架构的能力拥挤? -3. 如何让 AI 在不打扰用户的前提下实现主动感知与主动辅助? -4. 如何在工程上实现可扩展、可维护、可自托管的系统架构? - ---- - -## 3. 系统总体架构设计 - -### 3.1 分层总体架构 - -LyraNote 采用“前端交互层 + 后端服务层 + AI 能力层 + 基础设施层”的分层设计: - -1. 前端交互层(Next.js + Tiptap + SSE) -用于笔记编辑、对话交互、研究进度可视化、结构化内容展示。 -2. 后端服务层(FastAPI) -负责路由编排、鉴权、业务规则与 API 暴露。 -3. AI 能力层(Agents + Skills + Memory) -负责检索、写作、深度研究、工具调用、记忆更新与主动洞察。 -4. 基础设施层(PostgreSQL/pgvector + Redis + Celery + S3 兼容存储) -负责结构化数据、向量索引、异步任务、对象存储与调度。 - -### 3.2 关键数据闭环 - -系统形成“源→知识→对话→笔记→再入库”的闭环: - -1. 用户导入 PDF/网页/Markdown。 -2. 后端异步完成解析、分块、向量化并入库(RAG 索引)。 -3. 对话阶段基于检索证据生成回答并附引用。 -4. 用户将结果沉淀为笔记、摘要或报告(Artifact)。 -5. 笔记可再次作为来源进入知识库(Note-as-Source),形成持续演化。 - -### 3.3 AI 核心架构 - -#### 3.3.1 多 Agent 协作架构(System A) - -采用“主 Agent(Orchestrator)+ 专家 Agent(RAG/Research/Writing/Memory/Web)”的两层决策: - -1. 主 Agent 负责任务级路由(把问题交给最合适的专家)。 -2. 专家 Agent 负责步骤级执行(检索、搜索、写作、记忆更新等)。 - -该设计缓解了单 ReAct 循环能力拥挤、复杂任务步骤不足的问题。 - -#### 3.3.2 Soul 持续思维与表达机制(System B) - -通过活动感知、后台思维循环和表达门控机制,让 AI 在用户静默期仍可进行低频高价值思考,并在合适时机以可忽略的方式推送洞察。 - -#### 3.3.3 用户画像与记忆体系(System C) - -系统从“碎片记忆”升级到“多层记忆 + 用户画像”: - -1. 记忆层存储偏好、事实、场景与反思信息。 -2. 画像层按周期进行综合,形成对用户研究方向、能力水平、表达偏好的立体表征。 -3. 画像结果回注到路由决策与回答策略,实现长期个性化。 - ---- - -## 4. 核心特点(面向论文阐述) - -### 4.1 私有知识优先的 RAG 管道 - -系统在 Query 改写、多路检索、混合排序、重排与去重环节进行优化,重点解决多轮指代、召回不足和内容冗余问题。根据优化设计预期: - -1. 召回率提升约 25%~35%。 -2. 精确率提升约 20%。 -3. 首次响应延迟下降约 30%。 - -### 4.2 深度研究(Deep Research)能力 - -区别于单轮问答,深度研究支持“规划→检索→递归扩展→综合成文”的多阶段流程,支持 Quick/Deep 两种预算模式,并通过 SSE 反馈研究过程。为提升鲁棒性,研究任务与连接流解耦,支持刷新恢复与断点续传。 - -### 4.3 GenUI 结构化表达能力 - -通过统一 `genui` 协议将模型输出映射为可交互组件(图表、表格、时间轴、矩阵、看板等),提升研究结果可读性与可操作性,使 AI 输出从“纯文本”升级为“可视化知识单元”。 - -### 4.4 主动感知与自动化执行 - -系统提出“微交互渗透→上下文智能→自主行动”的三层主动架构: - -1. 在索引完成、编辑停顿、页面切换等时机提供低打扰提示。 -2. 通过定时任务实现持续任务自动执行(采集、生成、投递)。 -3. 将 AI 从一次性交互扩展为长期运行助手。 - -### 4.5 可自托管与工程可扩展性 - -1. 认证从外部 Clerk 迁移到本地单用户方案(bcrypt + JWT + 初始化向导),降低部署门槛。 -2. 存储层引入 `StorageProvider` 抽象,统一本地与 S3 兼容后端,支持横向扩展与多环境部署。 -3. 后端引入分层重构思路(Router/Service/Modules/Infrastructure),提升可维护性与测试性。 - ---- - -## 5. 关键难点与解决思路 - -### 难点 1:检索质量与多轮语义理解 - -问题:用户问题口语化、上下文省略、语义跨度大,导致检索召回不稳定。 -解决:引入对话感知 Query 改写、多 Query 并行、向量+全文混合检索、MMR 去重与 Cross-Encoder 重排。 - -### 难点 2:深度研究任务长链路稳定性 - -问题:若研究流程与 SSE 连接强耦合,用户刷新页面会导致任务中断。 -解决:任务后台化(独立运行)+ 事件缓冲 + 状态查询,支持断点续传与结果恢复。 - -### 难点 3:上下文窗口与成本控制 - -问题:深度研究在多轮检索后易超出上下文窗口,且联网搜索有调用成本。 -解决:学习结果摘要压缩、结果数量上限、检索阈值触发 Web Search、关键词去重与模式化预算(Quick/Deep)。 - -### 难点 4:主动性与用户体验平衡 - -问题:主动提示过多会造成干扰。 -解决:采用“适时、适量、可忽略”原则,限制触发频率与展示密度,允许用户关闭或忽略。 - -### 难点 5:系统复杂度持续上升 - -问题:功能扩展导致路由臃肿、职责混乱、可维护性下降。 -解决:推进 Service 分层、模块化 Agents、统一 Provider 接口、Schema 规范化,降低耦合度。 - -### 难点 6:自托管部署与多环境兼容 - -问题:文件存储、认证依赖、异步任务在不同部署环境中易出兼容性问题。 -解决:认证本地化、存储抽象化、任务队列标准化(Celery + Redis)、配置集中化管理。 - ---- - -## 6. 论文可主张的创新点 - -1. 提出并实现“多 Agent 协作 + Soul 持续感知 + 用户画像演化”的三系统耦合架构。 -2. 将 AI 交互从“被动问答”扩展到“主动感知与任务执行”的产品形态。 -3. 在研究报告场景中实现 Deep Research 的工程化闭环(多阶段推理、可恢复任务、可复用产物)。 -4. 提出并落地面向生成式应用的统一 GenUI 协议,增强 LLM 输出可视化表达能力。 -5. 结合记忆与技能系统,实现“能力可插拔 + 个性可演化”的长期 Agent 机制。 - ---- - -## 7. 论文实验与评估建议(可直接写入实验章节) - -### 7.1 建议评估维度 - -1. 检索效果:Recall@K、Precision@K、nDCG。 -2. 回答质量:事实一致性、引用覆盖率、结构完整度。 -3. 任务能力:复杂任务完成率、平均完成时长、失败重试率。 -4. 主动交互:建议点击率、忽略率、用户主观满意度。 -5. 个性化效果:开启/关闭记忆后的质量差异、长期 `quality_score` 变化。 -6. 工程性能:首 token 延迟、平均响应时延、任务吞吐量、资源消耗。 - -### 7.2 建议对比实验 - -1. 单 Agent vs 多 Agent(复杂任务完成率对比)。 -2. 无记忆 vs V1 记忆 vs V2 记忆(个性化质量对比)。 -3. 被动模式 vs 主动模式(交互效率与满意度对比)。 -4. 纯文本输出 vs GenUI 输出(信息理解效率与可用性对比)。 - ---- - -## 8. 局限性与后续工作 - -1. 深度研究仍依赖外部搜索服务,成本与稳定性受第三方接口影响。 -2. 多 Agent 路由效果对 Prompt 与结构化输出稳定性敏感。 -3. 主动机制目前主要面向单用户场景,多用户协作机制有待拓展。 -4. 评估体系仍需更大规模用户实验来验证泛化性。 - -后续可重点推进: - -1. 更细粒度的路由评估与自动纠偏机制。 -2. 更强的多模态研究能力(图像/表格/代码执行)。 -3. 研究任务模板化与可复现实验流水线。 -4. 面向团队协作的多租户与权限机制。 - ---- - -## 9. 文档依据(可作为论文内部参考来源) - -1. `architecture.md`(系统总架构、AI 流水线) -2. `lyra-soul-system.md`(多 Agent + Soul + 画像) -3. `memory-system-v2.md`(五层记忆体系) -4. `skills-system.md`(可插拔技能架构) -5. `deep-research.md`(多阶段研究流程与任务解耦) -6. `rag-optimization.md`(检索优化链路) -7. `genui-integration.md`(GenUI 协议) -8. `proactive-ai-system.md`(主动感知体系) -9. `scheduled-tasks.md`(定时任务自动化) -10. `backend-architecture-refactor.md`(后端分层重构) -11. `storage-system.md`(存储抽象) -12. `single-user-auth.md`(单用户自托管认证) - ---- - -## 附:论文写作使用建议 - -1. 可将第 1-3 节作为“绪论 + 总体设计”。 -2. 可将第 4-5 节拆为“关键技术实现”。 -3. 可将第 6-7 节作为“创新点与实验设计”。 -4. 可将第 8 节作为“总结与展望”。 - diff --git a/patch_home.js b/patch_home.js deleted file mode 100644 index 96c1888..0000000 --- a/patch_home.js +++ /dev/null @@ -1,140 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const filePath = path.join(process.cwd(), "apps/desktop/src/pages/home/home-page.tsx"); -let content = fs.readFileSync(filePath, "utf-8"); - -// replace SUGGESTIONS -content = content.replace( - /const SUGGESTIONS = \[\s*"分析知识库核心主题",\s*"生成结构化研究摘要",\s*"对比不同来源观点",\s*"根据笔记制定学习计划",\s*\]/g, - `const SUGGESTIONS = [ - { icon: , text: "帮我分析知识库中的核心主题" }, - { icon: , text: "为我的研究生成一份结构化摘要" }, - { icon: , text: "对比不同来源中的相似观点" }, - { icon: , text: "根据笔记内容生成学习计划" }, -]` -); - -// replace render -content = content.replace( - /return \(\s*
[\s\S]*?\)\n\}/, - \`return ( -
- {/* Title Area */} - -
- AI Avatar -
-
-

- 有什么我可以帮你的? -

-

- 基于你的知识库,我可以帮你分析、总结和探索任何内容 -

-
-
- - {/* Suggestions Grid */} - - {SUGGESTIONS.map((s, idx) => ( - handleSuggestion(s.text)} - className="flex items-center gap-2.5 px-4 py-3.5 rounded-xl text-left text-[12.5px] transition-colors" - style={{ - background: "rgba(255,255,255,0.015)", - border: "1px solid rgba(255,255,255,0.05)", - color: "var(--color-text-secondary)", - }} - > - {s.icon} - {s.text} - - ))} - - - {/* Input card */} - - textareaRef.current?.focus()} - > -