【学习工作】对话回声 · echolog —— 让每一次 AI 对话沉淀为个人专属知识库

【学习工作】对话回声 · echolog —— 让每一次 AI 对话沉淀为个人专属知识库

一、团队介绍

队长 · 王诗淇

我是王诗淇,某大学 2026 届本科毕业生,非计算机专业。今年3月份左右我下载 TRAE 之后,有一种"发现了新大陆"的感觉——原来我可以不用纠结于语法和工程范式,而是把脑子里的想法直接交给 AI 帮我实现出来。从那时起到现在,我持续 Vibe Coding 半年了。

初赛时我做的是一个浏览器插件。起因很朴素:我自己就是重度 AI 学习用户,经常在不同平台问各种知识,但问完一段时间就忘了。我不想让这些高质量的答案继续沉在聊天记录里,于是想做一个工具,把跨平台对话收集起来,让我能查找、整理,并生成测试题帮自己复习巩固。这就是「对话回声」最初的雏形。

队员 · 摩尔因

OK啊,看到这的评委老师们,参赛选手们以及观众朋友们大家好。这里是摩尔因 一个13岁的初中生。今年年初时加入了trae用户的大家庭,曾参加过solo大赛的报名(doge)。平常喜欢玩玩异环,听听术曲,等等扯远了。回到正题,参加这次比赛是想借此机会将自己的创意变成现实,只有自己体验过才知道,将脑中的创意做出来放在一块24英寸的玻璃板上的这种兴奋的感觉是无可比拟的。

我也很高兴能遇上一个负责任,有温度的比赛举办方和一个跟我同样热爱vibecoding的队长。

我将自己和身边朋友用AI时抱怨的部分问题在这个项目中提出了解决方案,也希望这个项目能帮助到朋友们。

分工与协作

成员 角色 主要负责
王诗淇 队长 浏览器插件, 整体架构
摩尔因 队员 软件端的前后端辅助开发
共同 其它代码的共同完善、联调、测试与产品打磨

如果说初赛是我一个人的"想法落地",复赛就是我们两个人用 TRAE 把同一个想法"造得更完整"的过程。

二、产品简介

是什么

对话回声(echolog) 是一个「浏览器插件 + 桌面软件」一体化的 AI 对话的「售后」:把你在各家 AI 平台(DeepSeek / 千问 / 豆包 / Kimi / 元宝 / 文心)上的零散对话,自动采集 → 沉淀 → 智能抽取知识点 → 沉淀成可问答、可测验、可辅助工作的知识图谱

一句话定位:

让散落在多个 AI 平台中的对话,不再结束于聊天窗口,对话结束了,但其依旧不断产生价值。

面向谁

  • 学习者(学生、终身学习者):每天在多家 AI 平台提问,但答案停留在聊天记录里,无法被复习与检验。经常学了忘,忘了学,最后连自己也不知道忘了啥。
  • 知识工作者(产品、运营、研发、咨询、研究等):会议纪要、工作沟通、决策线索散落在不同对话与文档里,缺少可追踪、可交付的统一上下文。
  • 重度 AI 用户:把 AI 当作第二大脑,但苦于没有「把对话变成资产」的入口工具。

完整功能

整个项目由两个紧耦合子工程构成「采集 → 沉淀 → 抽取 → 图谱化」的数据闭环:

你在 6 个 AI 平台对话
        ↓
web-ai-chat-collector(Chrome MV3 插件)采集(纯 DOM 提取,不拦截网络)
        ↓
本地 IndexedDB + 可选远程向量库(RAG 悬浮球就地问答)
        ↓ (在设置页启用「本地应用对接」后由用户显式触发推送)
POST /api/plugin/conversations  →  软件侧 observations 表
        ↓
graph_agent 自动抽取候选知识点(带类型初判、归一去重)
        ↓
用户在「待抽取」侧栏确认  →  随后图谱可视化
        ↓
Study 模式:测验 / 费曼解释 / 推荐复习
Work 模式:风口推荐 / 工作报告 / 对话提问

对话回声 · echolog 浏览器插件侧

  • 多平台对话采集 —— 6 家平台开箱即用:DeepSeek、千问、豆包、Kimi、腾讯元宝、百度文心;完整提取用户提问、AI 回答、深度思考过程与联网搜索引用。(基于安全考量,各平台默认不启用对话自动采集功能。用户可在设置界面手动勾选启用,以确保采集行为在知情且授权的前提下进行)
  • 纯 DOM 采集 —— 只解析已渲染浏览的页面内容,不拦截网络流量、不 monkey-patch fetch/XHR、不模拟登录点击;完整保留 Markdown 格式(标题 / 列表 / GFM 表格 / 代码块 / KaTeX 数学公式)。
  • 语义搜索 + RAG 问答 —— 对话切片嵌入为向量,悬浮问答球三模式流式输出:整理信息、生成测验、AI 问答;回答基于用户已保存的对话历史。
  • 多厂商 LLM —— 6 家预设(DashScope / DeepSeek / 智谱 / Kimi / 豆包 / MiniMax)走 OpenAI 兼容协议,支持深度思考模式切换;亦可自定义任意 OpenAI 兼容端点。
  • 多后端向量库 —— 默认本地 IndexedDB 零配置;可切换 ChromaDB / Milvus / pgvector / Supabase / Qdrant 远程库,支持跨设备与外部智能体消费。
  • SKILL 集成 —— 配套 SKILL 让外部智能体(TRAE、OpenClaw、Cursor)语义检索采集到的知识库,让你的工作助手懂你所想,知你所需。
  • 导出 —— Markdown / JSON,单条或全部。

对话回声 · echolog 软件侧

  • 双模式知识图谱 —— Study(学习)与 Work(工作)两套独立图谱,互不互通;右上角切换开关带过渡动画,切换后仅显示对应类型图谱。
  • 图谱可视化 —— 无向图渲染,节点为小卡片(常显标题 + 一句话概括 + 类型标签);支持拖拽 / 缩放 / 平移;孤立节点独立显示;延伸生成的灰色节点标记清晰。
  • 双视图 —— 图谱视图与卡片视图并列切换,数据同步无丢失。
  • 悬停详情卡 —— 悬停 300–500ms 显示五区域详情卡(标题 / 概括 / 重要点 / 延伸推荐 / 我的补充);已覆盖 11 个学科模板,未命中走通用兜底,可手动切换类型并记忆。
  • 节点延伸与编辑 —— 双击生成全部延伸(新节点标灰建边),单击推荐方向仅生成该方向一个节点;已存在节点不重复生成;可手动编辑标题 / 概括 / 类型 / 详情;用户留白可保存为疑问 / 联想 / 考点 / 易错点 / 笔记,让它“越用越懂你”。
  • Study 测验 —— 生成选择题(单选 / 多选)与费曼解释题;选择题即时判分给解析,费曼题由 Agent 语义判分给理解度评分与反馈;结果记录并关联节点。
  • Work 图谱 —— 工作对象按子类型建模(线索 / 关键人 / 承诺 / 期望 / 事件 / 决策 / 风险 / 资料 / 偏好 / 复盘);Agent 抽取归一去重建关系;节点详情卡含置信度与来源依据
  • Work 风口推荐 —— 侧栏按时间线展示风口推荐卡片,含可解释理由;「加入图谱」一键转为 Work 图谱节点。
  • Work 工作报告 —— 生成 Markdown 报告(进展 / 计划 / 风险 / 承诺跟进);可导出 .docx;HTML 预览可打印为 PDF。
  • Work 对话提问 —— Work 模式对话式提问入口,Agent 基于工作图谱上下文回答,标注来源与置信度
  • Agent 集成 —— main_agent / writer_agent / graph_agent 承载节点抽取 / 延伸 / 出题判分 / 风口 / 报告 / 提问;WebSocket 推送 Agent 流式输出与图谱变更。

相比初赛 Demo 的升级

初赛时我只交付了浏览器插件——解决"跨平台采集 + 本地 RAG 悬浮球问答 + 测验复习"这一条链路。复赛阶段的最大变化是:从「单一插件」演进为「插件 + 桌面软件」一体化形态,让对话不再止步于浏览器,而是沉淀为可长期积累、可结构化、可行动交付的个人知识资产。具体升级:

一、新增对话回声 · echolog 桌面软件

初赛没有桌面端。复赛从零搭建了 Electron + FastAPI 桌面软件,承接插件推送的对话并完成结构化沉淀,构成完整闭环:

  • 双模式知识图谱 —— Study(学习)与 Work(工作)两套独立图谱,由同一知识资产引擎串联。
  • 图谱可视化与节点详情 —— 无向图渲染、双视图切换、悬停五区域详情卡,覆盖 11 个学科模板。
  • 节点延伸与编辑 —— 双击全部延伸 / 单击方向延伸、已存在节点高亮、留白保存为疑问 / 考点 / 易错点等。
  • Study 测验升级 —— 从初赛插件内的简单测验,升级为选择题(即时判分)+ 费曼解释题(Agent 语义判分给理解度评分与反馈)的双题型闭环。
  • Work 闭环 —— 工作对象建模(线索 / 关键人 / 承诺 / 风险…)、风口推荐、工作报告(导出 .docx / 打印 PDF)、对话提问。
  • Agent 集成 —— main_agent / writer_agent / graph_agent 承载抽取 / 延伸 / 出题判分 / 风口 / 报告 / 提问,WebSocket 推送流式输出与图谱变更。

二、打通「采集 → 沉淀 → 图谱化」数据闭环

初赛的插件是"采集即结束"——对话留在浏览器 IndexedDB。复赛新增 bg/local-app.js 推送通道与后端 POST /api/plugin/conversations 接口,让插件采集的对话可以由用户显式推送到桌面软件,经 Agent 抽取候选、用户确认后入图,形成「采集 → 沉淀 → 抽取 → 图谱化」的完整闭环。

三、扩展插件平台适配覆盖

初赛插件覆盖的平台有限。复赛阶段扩展了 DOM 适配器,新增对 腾讯元宝、百度文心 平台的支持,当前开箱即用平台达到 6 家:DeepSeek、千问、豆包、Kimi、腾讯元宝、百度文心;完整提取用户提问、AI 回答、深度思考过程与联网搜索引用。

四、从「能跑」到「可信」的工程加固

  • 人机协同入图 —— Agent 生成候选 + 用户确认,所有工作节点带置信度与来源依据,区分事实 / 推断 / 用户意见。
  • 稳定性 P0 修复 —— 流式会话 ID 错配、图谱 React/D3 状态覆盖、SQLite 并发锁、WS 在线边界、插件 Observation 幂等等关键问题逐一定位与修复。
  • 桌面端可独立运行 —— Electron + PyInstaller 打包出免依赖 NSIS 安装包,后端子进程随主进程启动,开箱即用。
  • 演示完成度 —— 三套主题、首页卡片 FLIP 展开、OnboardingWizard 引导、预置演示种子图谱、断网降级路径齐备。

五、从「个人 Demo」到「两人协作」

初赛是我一个人的插件 Demo。复赛组队后,我们团队共同完善其余代码。

三、产品演示视频

TRAE AI 创造力大赛产品演示视频 https://v.douyin.com/m9ss-kSS_bI/ M@j.cn :8pm 11/07 aaa:/


四、产品创作历程

灵感来源

每天在不同 AI 平台问出很多高质量答案,但问完以后,它们通常就沉在聊天记录里。真正的问题不是没有答案,而是答案没有变成之后能复习、能跟进、能交付的资产。

我观察到三件具体的事:

  1. 跨平台沉没 —— DeepSeek 的某个推导、Kimi 的某段总结、豆包的某个表格,分散在不同账户、不同会话里。
  2. 复习缺入口 —— 学习场景下,AI 给的答案是「即时理解」,但缺乏「是否真的掌握」「什么时候该复习」的闭环。
  3. 行动缺沉淀 —— 工作场景下,AI 帮我梳理过要干的事,但这些信息没有被结构化保留,下次还得从头问一遍或自行梳理。

想解决的问题

让 AI 对话从「一次性问答」升级为「持续产生结果的个人知识资产」,并补齐三个空白:

  • 采集入口:把已经发生的对话接住,而不是让用户手动复制粘贴。
  • 结构化沉淀:把对话拆成知识点、关系、工作对象,而不是一坨 Markdown。
  • 闭环输出:让沉淀的知识继续产生复习任务、行动提醒与可交付报告。

关键设计与技术决策

决策一:为什么是「插件 + 桌面软件」一体,而不是单一形态

  • 插件 负责接住已发生的对话(DOM 采集、纯浏览器、跨平台),是最自然的入口。
  • 桌面软件 负责长期沉淀与图谱化(本地 SQLite、Agent 抽取、Work/Study 双闭环),是真正属于用户的资产容器。
  • 两者通过 POST /api/plugin/conversations 接口形成闭环:采集在浏览器、沉淀在桌面、资产在用户

决策二:为什么是「自动采集 + 智能抽取 + 用户确认入图」,而不是全自动

个人知识与工作承诺都具有高语义风险。模型适合提出候选,但不应静默替用户修改长期资产。因此:

  • 插件推送后先形成原始 Observation;
  • Agent 自动生成候选(带类型初判、归一去重);
  • 用户在「待抽取」侧栏确认后才写入正式图谱。

候选确认、Plan/Build 与高风险工具确认构成可信 Agent 的控制面——这是产品设计,不是模型能力不足。

决策三:为什么区分 Study 与 Work 两种模式

两种模式共享同一条采集、结构化、确认和图谱链路,只在资产产生后的闭环不同:

  • Study 关注理解与复习
  • Work 关注承诺、风险与交付

统一对象是用户的 AI 对话与个人上下文,统一价值是让它持续产生结果。Study 和 Work 不是两个产品,而是同一份个人上下文的学习闭环与行动闭环。

过程中的关键问题与解决思路

  • 流式结果丢失:Chat 的业务会话 ID 与 WebSocket session ID 早期未分离,导致模型已完成但前端无结果。修复为统一使用 WS session 推送。
  • 图谱点击跳动:React 与 D3 同时控制节点位置造成属性覆盖。修复为单一数据源 + 显式更新通道。
  • 并发推送重复入图:插件幂等去重 + Observation dedup_key 唯一索引 + IntegrityError 兜底。
  • 断网无反馈:流式前做配置预检,将连接 / 鉴权 / 超时 / 限流 / 服务端错误映射为中文提示,不再无反馈等待。

五、TRAE 实践过程

TRAE 不只是生成页面,而是参与了跨插件、前端、后端与测试的完整工程闭环:用它理解既有架构、补齐 WebSocket 与插件联调测试,并持续把产品反馈落实成可验证改动。人的职责是确定产品边界、批准计划、复核风险与完成真实环境验收。

开发关键步骤

初赛插件部分开发关键步骤

见初赛贴 【学习工作赛道】ai-chat-collector —— 把 AI 对话变成你的第二大脑 | 一款Chrome浏览器扩展 - TRAE AI 创造力大赛 / 【大赛初赛专区】 - TRAE 官方中文社区

复赛开发关键步骤

  • 加新功能

session id: .1118661747671820:5370eb64b6c8ea72f45dbe411598c577_6a630c823598cbe24cabc973.6a631e02c95fcd03c22e3074.6a631e02d948031de9585a0c:Trae CN.T(2026/7/24 16:10:42) ——搭建桌面端软件项目骨架

session id: .1118661747671820:9a0035854bb580e0fd152583442c5e73_6a6bf817812ca582f0dd9ffc.6a6c012f812ca582f0dda119.6a6c012fcbe3c64a496ffda2:Trae CN.T(2026/7/31 09:58:07)——优化agent工具调用

session id: 1118661747671820:1a55066de44ed6c6c2b2cf32fbe9eaa9_6a696576e45744449a1fbce2.6a696576e45744449a1fbce5.6a696576e45744449a1fbce3:TraeWork CN.0.1.44.no_sid.no_ppe.T(2026/7/29 10:29:10) —— 增加软件界面主题

session id: 1048292239354748:30bd1287e0af78bdb6e9561edf457a5b_6a70266840e84f3e23e9e3ad.6a70266840e84f3e23e9e3b0.6a70266840e84f3e23e9e3ae:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/8/3 13:26:00) ———— 桌面软件增加历史对话搜索功能

session id: 4421553661683883:73e41b88732f4e564ddf133e81296515_6a68add004a016212817e5bb.6a68add104a016212817e5be.6a68add004a016212817e5bc:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/7/28 21:25:37) ———— 新增插件侧百度文心平台支持

session id:.4421553661683883:393a3ad33fbb8d1bc7231898fd1cdd7e_6a7491e4ceafe877cd9b4f4b.6a74a819ceafe877cd9b5215.6a74a818bfb5aba9518fbcf2:Trae CN.T(2026/8/6 23:28:25) ———— 桌面应用新增导入deepseek json格式历史对话

  • 加测试

session id: 1048292239354748:3ef6c69cfa3a50dc4032fc4576642870_6a6767fd356436391331ef80.6a6767fd356436391331ef83.6a6767fd356436391331ef81:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/7/27 22:15:25) ———— 增加插件->本地应用连接单元测试

  • 优化,收尾与修bug

session id: 4421553661683883:9f6a55cff5674931fb6100b4cb414fef_6a733545ad253089228b5ecd.6a73de87f86082e4f4f883b1.6a73de87f86082e4f4f883af:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/8/6 09:08:23) ———— 修复markdown渲染bug

session id: .1048292239354748:4d02315e607fecfbe893e85c35d5d099_6a753972e921f4374c02a436.6a75483ae921f4374c02a807.6a754839e7fcace315ffbdfb:Trae CN.T(2026/8/7 10:51:38)—— 优化待抽取图谱的对话数的显示

session id: .1118661747671820:64a26f1c59c7edf956e29e534bfd6695_6a6cb00d08b52c72d2a30c64.6a6d800f08b52c72d2a31c25.6a6d800fdeaae609b12b2e5c:Trae CN.T(2026/8/1 13:11:43) —— 优化界面动画


六、技术方案分享

技术栈

浏览器插件侧 桌面软件侧
类型 Chrome MV3 扩展 Electron + FastAPI 桌面软件
主语言 JavaScript(ES2020+) TypeScript + Python 3.12
前端 原生 + turndown / marked / KaTeX React 18 + Vite 5 + Zustand + react-force-graph
后端 Service Worker(无端口) FastAPI + SQLAlchemy 2.x(异步)+ aiosqlite + FTS5
数据存储 IndexedDB(本地)+ 可选远程向量库 SQLite + FTS5(backend/data/app.db
测试 Vitest + jsdom pytest + pytest-asyncio(含 e2e)
打包 GitHub Actions pnpm dist(electron-builder + NSIS)

关键实现思路

  • 纯 DOM 采集而非网络拦截:避免 monkey-patch fetch/XHR 带来的页面副作用与平台协议变化风险,只在用户已渲染内容上提取,保留完整 Markdown。
  • Observation → 候选 → 入图 三段式:原始对话不可变,候选与正式图谱分离,确保「可追溯 + 可撤销 + 可纠正」。
  • Agent 控制面:高风险工具调用走 Plan/Build 与人工确认;WS 在线检查 + 任务注册表接管后台任务生命周期,关停时有界等待。
  • SQLite 加固:每连接 foreign_keys=ON + WAL + busy_timeout + synchronous=NORMAL + 已知锁冲突有限重试。
  • 本地优先隐私:插件原始数据默认 IndexedDB、软件端默认本机 SQLite、服务只监听 loopback;需要模型处理时请求发往用户自行配置的 LLM 端点。

七、社会价值与产品迭代规划

社会价值

  • 将“第二大脑”留在你的大脑中:我们坚信一个事实,AI能替你做出回答,但不能替你学会。只有你学会了,“第二大脑才是你的”。

  • 降低 AI 资产沉没成本:让普通用户(不限于开发者)也能把跨平台 AI 对话转化为可复用资产,缩小「重度 AI 用户」与「资产积累者」之间的鸿沟。

  • 可解释的知识系统:所有 Agent 判断带来源与置信度,避免「黑盒替用户改写长期记忆」的风险,为可信赖的个人 AI 助手提供一种工程范式。

  • 本地优先的隐私模型:默认数据不离开用户设备,LLM 端点由用户自选,契合个人知识资产对隐私的高敏感场景。

当前诚实的边界

  • 当前最适合 单机本地:模型延迟、第三方平台 DOM 变化、Service Worker 生命周期、本地配对鉴权、完整事务一致性、超大数据性能仍需继续加固。
  • 行业风口为「基于当前图谱的机会假设」,不是实时市场情报
  • 平台适配受第三方页面与协议变化影响,不承诺六平台永久稳定兼容。

迭代规划

  • 短期(决赛前) :公网多用户账户与隔离、PostgreSQL / Redis 后端、跨设备同步、实时外部数据源与引用追踪。
  • 长期:从「个人知识资产容器」演进为「个人 AI 工作长程上下文」,沉淀可被外部智能体消费的可信上下文层。

八、总结

我们的目标不是再做一个聊天框,也不是再做一个笔记工具,而是让每一次 AI 对话都留在用户身上,从一次回答,变成之后持续复习、跟进和交付的个人知识资产。

1 个赞

哈哈,我们的项目好像呀,加油!

1 个赞