【学习工作赛道】云藤 YunTeng — 从文献到引用,每句回答都有据可查的学术研究闭环工作台
1. 个人介绍
参赛形式:个人参赛
本人是一名云计算专业大二学生,我的标签大概是:全栈开发、学术场景强迫症、相信"好的工具应该让复杂的事情变简单"。平时读论文、整理笔记、写综述时,我最痛苦的不是"找不到答案",而是"AI 给了答案,却不知道它从哪来"——这个痛点直接催生了云藤。
开发云藤的过程中,我把自己同时当成产品经理、用户和工程师:既要让学术新手能 30 秒上手,也要让追求深度的研究者能看到"为什么 AI 选中这段文献"的完整证据链。从零散的想法到一个可部署、可测试、可演示的完整产品,云藤经历了初赛 Demo 到复赛完整作品的蜕变,每一步都在 Trae 的辅助下完成核心架构、算法设计与安全加固。
这不是一个只有 PPT 的作品,而是一个真正跑在线上、有真实代码、有测试、有用户的系统。
2. 产品简介(复赛版,区别于初赛 Demo)
是什么
云藤 YunTeng 是一个面向学生、研究者和终身学习者的学术研究闭环工作台,把"文献管理 → 知识检索 → AI 对话 → 引用溯源 → 学习追踪"整合为一条完整流水线,让 AI 的每句回答都可追溯到真实文献
面向谁
备考人群(公考/考研/考证)、自学者(编程/英语/专业领域)、需要持续消化大量资料的职场人。典型场景:上传一份 50 页 PDF 教材,边读边问 AI,知识自动沉淀到个人库里,系统追踪你每天学了多久、坚持了几天。
完整功能(用户使用路径):
-
模块 核心能力 产品亮点 文献库 支持 PDF、DOCX、Markdown、TXT、代码文件上传与解析,自动分块、建索引 无配置时内置 3 篇 AI/ML 预置文献,演示账号一键注入 可解释语义检索 BM25 + FTS5 + 向量混合召回,自研多信号 Reranker 精排 搜索结果展示"短语保真 / 词序一致 / 语义覆盖 / 结构优先"四路信号分数条 AI 对话 多模型路由(DeepSeek / Qwen / 豆包 / 自定义模型),SSE 流式输出 支持思考链可视化、语音朗读、图片附件、代码附件 引用闭环 LLM 输出 [cite:N]自动转可点击[ref:N]文献卡片跨 SSE chunk 流式安全转换,点击引用直接查看原文片段 智能体系统 预置学习角色 + 自定义 Agent,支持知识库绑定 Agent 市场可发布、评分、保存、一键使用 学习路径 AI 生成学习目标、周任务、自动复盘 与对话历史联动,自动抽取学习笔记 课程包市场 发布课程包(简介 + 学习路径模板 + 知识库集) 形成"内容供给 → 用户增长 → 创作者激励"生态雏形 研究看板 文献数、引用数、沙箱运行数、学习进度可视化 帮助用户追踪自己的研究行为 代码沙箱 一键运行代码片段,查看执行结果 命令白名单 + 危险模式拦截,保障安全 语音交互 语音输入 + edge-tts 多角色朗读 支持无障碍访问与多场景使用 典型使用路径
路径一:学术写作闭环
Plain Text
上传论文 PDF → 在文献库查看解析结果 → 向 AI 提问"Transformer 自注意力的演进脉络" → AI 检索知识库并流式回答 → 回答中出现 [ref:1][ref:2] 引用徽标 → 点击徽标弹出文献卡片 → 确认来源后写进自己的论文路径二:学习计划闭环
Plain Text
设定学习目标"4 周掌握 RAG 检索增强生成" → AI 生成学习路径 → 每周完成任务并勾选 → 系统自动记录进度 → Dashboard 展示完成率与下一步建议路径三:内容共创闭环
Plain Text
创建自定义 Agent"论文导师"并绑定知识库 → 发布到 Agent 市场 → 其他用户保存并使用 → 创作者获得曝光与积分
相比初赛 Demo 的升级
-
相比初赛 Demo 的重大升级
维度 初赛 Demo 复赛完整作品 产品形态 单一 AI 聊天 + 简单文件上传 完整工作台:Chat / Library / Dashboard / Marketplace / Learning / Settings 检索能力 BM25 基础搜索 两阶段检索 + 自研可解释 Reranker + MMR 多样性 引用体验 静态引用标识 流式 [cite:N]→[ref:N]转换 + 文献卡片弹窗学习功能 无 学习路径 + 任务追踪 + 自动复盘 + Anki 卡片复习 生态能力 无 Agent 市场 + 课程包市场 + 评分保存 设计系统 基础页面 云藤 Editorial v4:瑞士复兴风格、明暗双主题、响应式 + PWA 工程成熟度 少量测试 564 个测试用例,前后端全绿,CI 四作业 Trae 集成 无 MCP server 暴露 7 个工具,可在 Trae IDE 中直接调用
登录页面展示:
完整功能清单 & 用户使用路径
| 功能模块 | 详细能力 |
|---|---|
| AI 对话交互 | 接入通义千问 Qwen / DeepSeek V3 / DeepSeek R1 三大模型;流式打字机效果输出,支持长上下文多轮对话 |
| 学习智能体 | 9 个预设专业角色:论文导师、代码工程师、英语伴学、数学讲师、公考讲师、财务顾问、求职顾问、阅读助手等,切换角色自动变更 AI 专业能力与回答风格 |
| 自定义智能体 | 自由创建专属 AI 教师,自定义名称、提示词、图标、采样温度、工具调用权限,配置云端持久保存 |
| 知识库 RAG | 上传笔记、论文、代码文档等学习资料,AI 基于个人资料进行问答,实现个性化知识答疑 |
| AI 自主工具调用 | AI 自主判断是否调用工具,支持最多 5 轮链式多步推理;工具包含联网搜索、数学计算、网页抓取、知识库检索、沙箱命令执行、文件读写,无需用户手动触发 |
| 语音交互 | 语音输入提问;Edge TTS 高质量语音朗读回答,提供 4 种音色:甜美少女 / 知性御姐 / 清爽少年 / 沉稳大叔 |
| 对话分享 | 一键生成精美对话卡片,支持图片保存,分享至微信、班级社群 |
| 学习数据看板 | 学习热力图可视化活跃时段,知识图谱直观展示学习方向分布 |
| 用户账号系统 | 注册登录、JWT 身份认证、bcrypt 密码加密、AES-256-GCM 加密存储用户自定义模型 API Key |
| PWA 适配 | 手机浏览器添加至主屏幕,拥有近似原生 App 体验,支持基础离线能力 |
| 自定义模型接入 | 兼容 OpenAI 协议 API,可接入 GPT-4、Claude 等第三方模型 |
自定义智能体功能:
自定义智能体加入工具调用:
自定义模型功能:
添加了专属学习面板功能:
新增AI功能:(记忆卡片)
用户可根据需求上传文档文献让AI解析并运用到对话中
用户可根据自身需求创建课程包进行学习:
3. 产品演示视频
6.41 复制打开抖音,看看【lhoc-hy的作品】云藤AI学术研究工作台介绍 云藤AI是为学生打造的… https://v.douyin.com/kaEGxgREcVY/ u@s.EH aAT:/ :6pm 06/19
4. 产品创作历程
最初的想法
云藤的起点是一次真实的写论文经历。我需要整理一篇关于 RAG 的综述,用通用 AI 工具查资料时发现:模型给出的结论听起来很对,但我找不到它依据哪篇论文、哪个段落。这种"不可证伪"的回答在学术场景下几乎无法使用。
那一刻我意识到:学术研究者需要的不是更会"编"的 AI,而是会"举证"的 AI。每句回答都必须能追溯到真实来源。
从 Demo 到完整作品的演进
第一阶段:验证最小闭环
- 实现文件上传 + 简单 RAG 检索 + AI 对话
- 让 LLM 在回答中输出
[cite:N],前端转成可点击引用 - 初赛验证:评审认可"学术引用闭环"的差异化,但指出完成度和设计感不足
第二阶段:硬点创新——自研检索重排器
- 意识到"检索质量决定 RAG 上限",开始自研 Reranker
- 设计四路可解释信号:精确短语保真、词序一致性、语义重叠、结构信号
- 引入 MMR 多样性去重,避免多个引用都指向同一段
- 所有计算纯本地完成,不依赖外部 embedding API,保证演示稳定
第三阶段:可解释性可视化
- 后端透传
features到搜索接口 - 前端实现
RerankExplanation拆解条组件,展示四路信号分数条 - 为大赛决赛专门做了引导入口,让评审第一眼就能发现这个创新点
第四阶段:完整工作台
- 增加学习路径、课程包市场、研究看板、智能体系统
- 从一个聊天工具扩展为覆盖学术研究全流程的平台
第五阶段:工程化与安全加固
-
补齐 564 个测试用例
-
修复沙箱 RCE 绕过、API 非幂等重试、竞态处理、bcrypt 阻塞等工程隐患
-
通过 Trae 深度检查与 MCP 集成,证明"由 TRAE 助力完成"
关键设计与技术决策
-
为什么自研 Reranker 而不是直接用向量模型?
- 向量模型需要外部 API,演示环境不稳定
- 自研信号针对中文学术文献设计,连续短语命中、词序一致性等信号对中文分词难题更有效
- 可解释性是学术场景的核心诉求,黑盒向量模型无法满足
-
为什么坚持"每句回答有据可查"?
- 这是云藤与所有通用 AI 聊天工具的本质差异
- 引用徽标不只是 UI 装饰,而是可追溯的证据链
-
为什么做 MCP 集成?
- 既然云藤的核心是学术研究能力,那么让 Trae IDE 能直接调用这些能力是最自然的延伸
- 也证明这个项目不是封闭的,而是开放的、可组合的
-
双主题模式一键切换:
-
智能体市场(支持用户分享上传自己创建的智能体供其他用户保存使用)
5. TRAE 实践过程
云藤从原型到复赛成品,核心开发与重构均在 Trae 中完成。典型使用方式:对话式需求 → Trae 拆解任务 → 生成/修改代码 → 自动跑测试 → 修复问题 → 循环。
完整开发流程
步骤 1:用自然语言拆解产品架构
- 我向 Trae 描述:“我要做一个学术研究闭环工作台,包含文献库、RAG 检索、AI 对话、引用溯源、学习路径”
- Trae 协助生成前后端项目结构、数据库 schema、REST API 接口草案
- 我根据学术场景的特殊需求(如引用格式、文献分块策略)进行调整
步骤 2:核心算法共创——自研 Reranker
- 与 Trae 多轮对话确定"四路信号 + MMR"方案
- Trae 协助实现
reranker.js的初始版本 - 我补充中文分词细节和学术场景边界情况
- Trae 协助编写 11 项单元测试 + 4 项集成测试,全绿通过
步骤 3:可解释性可视化
- 后端需要把
features透传到搜索接口 - 前端需要实现
RerankExplanation组件展示四路信号分数条 - Trae 协助完成从接口改造到组件实现的完整链路,并补 e2e 测试
步骤 4:安全与工程加固
- 通过 Trae 深度检查,发现沙箱 RCE 绕过、摘要失效、API 非幂等重试、bcrypt 同步阻塞等潜在问题
- Trae 协助逐一修复并补充回归测试
- 最终后端 391 个测试、前端 173 个测试全部通过
步骤 5:MCP server 集成
- 将云藤核心能力封装为 7 个 MCP 工具:
knowledge_search:知识库语义检索chat_complete:非流式 AI 对话cite_check:跨工具事实核查rag_ask:检索后带引用回答agents_list:可用智能体列表knowledge_stats:知识库统计learning_path:学习路径与进度
- 在 Trae IDE 中可直接用自然语言调用这些工具
开发关键步骤截图
4267657368179753:221471bf560aa5690b711f3ec22282ff_6a4f68511a018475781b5ad2.6a5c54c3c9b8edd43e40d87e.6a5c54c3c9b8edd43e40d87c:TRAE Work CN.0.1.38.no_sid.no_ppe.T(2026/7/19 12:38:27)
4267657368179753:e4a642f058cb777cc3861ae06daf30e9_6a4f68511a018475781b5ad2.6a5ed9d8ad5de3ebe484b109.6a5ed9d8ad5de3ebe484b107:TRAE Work CN.0.1.38.no_sid.no_ppe.T(2026/7/21 10:30:48)
4267657368179753:811119c12586dcc422fee48869a0b433_6a4f68511a018475781b5ad2.6a609b8e1913490e7640e696.6a609b8e1913490e7640e694:TRAE Work CN.0.1.38.no_sid.no_ppe.T(2026/7/22 18:29:34)
4267657368179753:fc30f48587ed208776e61e486bfba786_6a4f68511a018475781b5ad2.6a61de8f62b6d37a23556b61.6a61de8f62b6d37a23556b5f:TRAE Work CN.0.1.38.no_sid.no_ppe.T(2026/7/23 17:27:43)
技术方案分享
自研检索重排器(核心创新点)
云藤的 Reranker 采用两阶段检索架构:
阶段 1:混合召回
- BM25 + FTS5 + 向量混合,放大 topK×3 召回候选
- 保证召回率,不错过潜在相关文献
阶段 2:多信号精排
| 信号 | 含义 | 解决的问题 |
|---|---|---|
phraseFidelity 短语保真 |
查询最长连续字符块是否在片段中连续出现 | 中文单字/双字易误命中,连续短语才是真信号 |
wordOrder 词序一致 |
查询有义词在片段中的出现顺序 | 惩罚"注意力机制"被错排成"机制注意力" |
semantic 语义覆盖 |
查询有义词的 IDF 加权覆盖度 | 不依赖 embedding API,纯词项统计获得语义近似 |
structural 结构优先 |
标题命中 + 引言/结论位置优先 | 学术文献中摘要/结论信息密度更高 |
MMR 多样性:惩罚与已选结果的冗余,保证多个引用覆盖不同研究维度。
SSE 流式引用转换
- LLM 在流式输出中可能把
[cite:1]拆成多个 chunk - 云藤实现跨 chunk 安全拼接,最终渲染为可点击的
[ref:1]文献卡片 - 同时防御 XSS:Markdown 渲染启用
skipHtml,不执行原始 HTML
工程架构
- 前端:React 18 + TypeScript + Vite + TailwindCSS + Zustand
- 后端:Node.js + Express + ESM
- 数据库:better-sqlite3 + WAL + FTS5 全文索引
- 认证:JWT + bcrypt
- 加密:AES-256-GCM + PBKDF2-SHA256
- 部署:Docker + Nginx + PM2
商业化与社会价值分析
三层变现路径
| 层级 | 方案 | 已有落地 |
|---|---|---|
| 免费增值 | 基础对话/学习记录免费;高级模型 + 长上下文 + 无限知识库订阅 | 多模型路由、用量统计已具备 |
| 内容电商 | 课程包市场:创作者上传课程包,用户用"藤豆"购买 | 发布/评分/保存/使用已上线 |
| 企业服务 | 团队版/SaaS:知识库隔离 + 权限管理 + 私有化部署 | Docker + Nginx + PM2 已具备 |
社会价值
- 开源:核心框架 MIT 开源,降低开发者接入知识库 RAG 的门槛
- 无障碍:语义化 HTML、aria-label、键盘操作、明暗双主题、语音朗读
- 教育普惠:基础学习功能免费开放,课程包市场设免费专区,离线兜底降低欠发达地区使用门槛
产品迭代规划
- 1-3 个月:订阅付费上线,接入 Stripe / 微信 / 支付宝
- 3-6 个月:课程包市场开放创作者分成
- 6-12 个月:高校/企业团队版 + 私有化部署
声明:本项目所有代码由云藤团队独立依靠trae开发,从前端 UI、后端接口、数据库设计到服务器部署全程自研,未使用其他任何编程代码平台与现成模板。
初赛晋级贴:【学习工作赛道】云藤YunTeng —— AI学习助手 - TRAE AI 创造力大赛 / 【大赛初赛专区】 - TRAE 官方中文社区


















