
DeepThink v1.8.0 发布说明自托管的多用户本地 AI Agent Loop Engineering 系统支持桌面端 浏览器 移动端Powered By AI Genius InstituteAI 光剑发布日期2026-10-17v1.8.0 是一个能力边界扩张版本主轴是全新模块知识库Knowledge Base把腾讯开源的 WeKnora 知识库内核整体复刻到 DeepThink 原生的 TypeScript / React 栈上——文档切分为带原文绝对字符偏移的分块、分块级向量化、向量 关键词双路 RRF 融合检索以及带引用溯源的 RAG 问答并在同一版本内补齐扫描件 OCR与系统内置开源向量模型服务。在此之前DeepThink 的 Agent 能写代码、能跑 Loop、能被监控但它读不了企业自己的文档没有文档入库没有检索没有引用。Agent 的知识只能来自上下文窗口和它自己爬到的网页。企业最需要 Agent 掌握的那部分知识——制度、临床方案、运维手册、历史项目文档——恰恰都在本地。本版本共33 个 commitSchema v72 → v73新增知识库 6 张实体表 4 张 FTS5 / vec0 虚拟表无破坏性 API 变更。 新能力知识库子系统WeKnora 复刻需求与技术方案见docs/prd/2026-10-16-weknora-full-replica/、docs/tech_solution/2026-10-16-weknora-full-replica/导航入口「知识库」→/knowledge-bases。1. 检索内核让「引用哪一个字的哪一段」可验证复刻的核心约束不是能搜到而是每一条引用都能回到原文的确切位置text.slice(chunk.startAt, chunk.endAt) chunk.content这条不变式写在分块器里、被单测与端到端用例逐块断言。它换来的能力是检索结果里的引用可以按偏移回源到原文高亮而不是给用户一段大致在这里的文字。没有它文档 ID 页码这种粗粒度引用在大纲结构的中文文档上基本无法核验。层实现分块src/kb/chunker.tsheading/heuristic/recursive三策略 父子分块父块只用于命中后回溯上下文不进向量索引融合src/kb/fusion.tsRRFK60向量 0.7 / 关键词 0.3检索src/kb/search.tskeyword/vector/hybrid三模式双路得分与诊断信息原样返回给「检索测试台」重排src/kb/rerank.ts可选 cross-encoder默认关闭未配置即不改动融合顺序问答src/kb/rag.ts流式 / 非流式回答带编号引用引用可展开看原文父子分块的口径容易误读已在文档中明示当某个 section 的正文小于子块尺寸时“父块 唯一子块”不产生父行——这不是漏做是 WeKnora 的语义。实测bodyRepeat150的 6693 字夹具切出 42 块14 父 28 子bodyRepeat40的 2073 字夹具切出 14 块0 父 14 子两条都用独立用例锁定。2. 检索增强把问不准拆成五个可单独关闭的开关子项能力默认查询改写 / 扩展纯本地生成变体只作用关键词臂向量臂不动变体命中给救援分关查询理解改写 意图识别意图决定走 FAQ 桶还是文档桶开FAQ 索引标准问 / 相似问分别建向量检索时分桶相似问带负向否决问的是相似问不能把整条 FAQ 当答案给出去库类型为 FAQ 时预生成问题Doc2Query为分块预生成可能的提问并一并向量化弥补用户问法与文档写法的措辞鸿沟关重排可选 cross-encoder候选上限 50关默认关闭的项不是半成品全部有单测与 UI 验收关闭时不改变任何既有结果本身也是被断言的。3. 文档接入11 种格式 四条入口入口说明单文件上传单文件 ≤ 100MBpdf / docx / pptx / xlsx / epub / xmind / html / csv / json / markdown / textURL 抓取走 SSRF 防护链字面量校验 → DNS 解析校验 → 逐跳重定向校验手写 Markdown直接写正文与上传共用同一条入库链路内容哈希判重口径一致整目录 / 整包目录选择webkitdirectory与拖拽目录webkitGetAsEntry递归zip整包走服务端解包逐条回执zip 容器格式pptx / xlsx / epub / xmind共用src/document-parser-zip.tspptx按 rels 页序输出不是文件名序实测夹具slides-reordered.pptx的文件名序与真实页序相反xlsx表头与行绑定成 Markdown 表格——按单元格平铺切块会一落刀就把剂量和药名拆开epub按spine序toc顺序才与阅读顺序一致xmind层级转标题层级游离主题children.detached不渲染三条安全闸条目数 ≤ 5,000、解压前按uncompressedSize累计 ≤ 200MB、拒绝路径穿越../ 绝对路径 / NUL。老二进制格式.doc/.xls/.pptmagicD0 CF 11 E0给出明确的请另存为提示而不是笼统的不支持。4. 扫描件 OCR 系统内置开源模型服务需求原文「扫描件要支持9999 那个实例要配向量模型直接系统内置部署使用开源的向量模型服务。」内置模型服务src/local-model.ts探测 / 拉起 / 流式拉取 / 维度探测。维度是问出来的而不是硬编码——vec0建表时固定维度写错要等第一次检索失败才暴露。扫描件 OCRsrc/ocr.tssrc/kb/ocr-ingest.ts纯图片 PDF 渲染成 PNG 交给视觉模型转写表格按 Markdown 保留行列。光栅化用pdfjs-distnapi-rs/canvas——两者都是既有依赖本轮没有新增任何 npm 依赖。三个必须踩过的坑全部用实测数据定方案坑实测处理思维链视觉模型烧光上下文qwen3-vl:8b单页 51s300s3 页夹具丢 1 页287 页估算 6–12 小时默认改用qwen2.5vl:7b单页 14–20s3 页全中287 页约 38 分钟Ollama 的 OpenAI 兼容端点静默忽略options.num_ctx/v1/chat/completions传 16384/api/ps仍是 4096改走原生/api/chat「截断」被当成「空白页」done_reasonlength 空正文被记为emptyPages不报错截断与空白分开判定失败在正文留痕OCR 必须后台跑287 页 × 十几秒但上传当场会校验开关 / 服务 / 模型是否就绪不满足直接 400 指路设置页——不让用户等半小时才看到失败。5. Agent 真正用得上三个内置工具kb_search/kb_read_document/kb_list_documents注册进 Agent 运行时。知识库不是给人在网页上搜着玩的——它要能被 Agent 在任务执行中直接调用否则仍然只是另一个文档管理后台。6. 落地取舍Think Before Coding显式暴露决策取舍引用以字符偏移为准不以页码为准中文大纲文档的第 3 段无法核验代价是分块器必须严格维持偏移不变式任何后处理如去空白都不能偷偷改 content父块不进向量索引检索单元是子块更小、更准父块只在命中后回溯上下文代价是一次完整问答要读两次分块表FAQ 与文档分桶FAQ 问的是标准答案能不能命中文档问的是正文哪一段相关混在一个桶里向量相似度会互相污染相似问另做负向否决OCR 只支持 PDF光栅化依赖页的模型epub / xmind / xlsx 没有页强行走 OCR 只会得到一个错误——如实暴露边界关键词臂是子串/短语语义FTS5 trigram中文整句在纯 keyword 模式不命中靠向量臂覆盖。这是已知边界不是缺陷失败分类要可见目录 / 整包上传绝不静默吞条目隐藏项、不支持格式、超上限每一条都带 reason 出现在回执里 知识库线修复的缺陷全部按 issue 工作流沉淀本版本新增19 篇issue 复盘文档docs/issues/2026-10-1*.md8 节完整结构。其中影响最大的几条#现象根因为什么单测没拦住1「上传文档」按钮点了完全没反应用户上线实例上报button被包在label里规范要求 label 对 interactive content 后代的点击什么都不做Playwright 的setInputFiles()直接给 input 赋值绕过了点按钮这一跳2PDF 上传 100% 失败pdfParse is not a functionpdf-parsev2 改成具名类导出旧写法退化成模块命名空间对象PDF 解析此前零覆盖3扫描件上传成功、状态就绪却检索不到任何东西pageJoiner默认值给每页伪造-- n of 287 --标记空值守卫永远不触发与 #2 同一函数同样零覆盖4长文档尾部内容永远检索不到embedding 层对超长文本静默截断8000 字符用例都用短文档5中文关键词检索恒为 0 命中FTS5unicode61 整句短语匹配语义用例用英文 token6分块偏移与内容对不上引用无法回源分块后做了文本整理offset 未同步只断言了块数 07删除知识库必然 500DELETE语句上误用.all()删除路径无覆盖8FAQ 条目建完不被向量化POST / PUT 未触发起始嵌入FAQ 库也没有重建索引入口只验了条目 CRUD 返回 2009纯标题文档如 xmind入库失败Chunking produced no chunksheading 分块逐段跳过空 body整篇只剩标题时一块不剩被 xmind 解析器放大成必现10切一次页签后「上传目录」静默退化成普通文件框webkitdirectory只在首次挂载的节点上打补丁条件渲染会换节点探针恰好跑在首屏11.html上传与 URL 抓取 100% 失败require is not definedESM 运行时里用了requirevitest / tsx 的转换层会注入require兼容对象测试永远是绿的12重建索引后列表仍显示「已向量化 0」冗余计数列只由 ingest 管线维护rebuild 绕过了它接口返回的attempted/success全都是对的13URL 入库存在 SSRF可被诱导读取云元数据fetch只判了^https?://且redirect: follow安全用例此前没有14make start-prod服务的是桌面版内置前端Makefile 启动路径优先用了桌面端 dist静态检查看的是源码不是启动脚本15make stop-prod报「已停止」几秒后旧看门狗又拉起来停止时未先停看门狗没人测过停两次共性这 15 条里没有一条是靠再读一遍代码发现的。它们长在单测够不到的地方——用户点得到吗、真实 ESM 运行时跑得通吗、接口返回 200 之后数字对不对。这也直接改变了本版本的验收口径e2e 必须打在dist编译产物上并且「用户点得到」一律用waitForEvent(filechooser)真实点击不用setInputFiles()绕过按钮。 其余修复不在知识库线上项根因修复WebSearch 长期静默失效resolveZhipuApiKey()硬编码/home/me/...最初那台开发机的路径且能力绑死单一付费后端新增shared/web-search.ts5 个可插拔后端zhipu / tavily / bocha / serper / 免 key Bing 抓取四级优先级 设置页连通性自检顺带修掉filterByDomain的endsWith缺陷notexample.com不再越权放行容器构建 Go 工具链下载单点失败dl.google.com国内解析到一组 GGC 节点部分 443 不响应--retry打的是同一个坏 IP多源按序回退阿里云 → 南大 → 官方先落盘 gzip -t校验再解包macOS 桌面版单实例静默退出残留挂载 单实例锁已沉淀排查文档docs/issues/2026-10-15-desktop-pack-launch-single-instance.md✅ 验证单元 / 集成测试npx vitest run Test Files 183 passed | 4 skipped (187) Tests 2477 passed | 16 skipped (2493)较 v1.7.0161 文件 / 2082 条26 文件 / 411 条0 失败。跳过 16 条全部来自 5 个环境条件跳过的用例组ISOLATED/RUN/dbAvailable未满足这 5 个文件自 v1.7.0 起未改动本轮也没有新增任何skip标记git diff v1.7.0..main -- tests/中.*skip为 0 条。v1.7.0 记录的是 14 条差值来自两次测量时的环境条件不同不是本轮新增。真实浏览器 UI 验收Playwright 本机 Chrome非 mock轮次范围结果P1 内核父子分块 / FAQ / Doc2Query / 查询改写 / 查询理解18/18P1 PDF用户真实文件、真实点击拿filechooser10/10内置模型服务 OCR隔离实例:9898真 Ollama、预置关键词夹具21/21P2 文档接入打在dist产物上10 种格式矩阵 目录 整包35/359999 生产实例部署后复跑含用户上报的那个库只读14/14P2 验收的关键数值格式矩阵 10 种全部「就绪」且已向量化 分块目录上传3/3 · 成功 3保留dirtree/protocol/visit.md相对路径.draft.md与.cache/未入库整包 zip解包后入库 3 · 跳过 3 · 失败 0跳过项逐条给理由。截图全部归档在docs/test_report/2026-10-16-weknora-full-replica/screenshots*/。生产实例 9999部署链路npm run buildnpm run build:web→make stop-prod→make start-prod PORT9999→ 上线自检模型服务本机 Ollama 0.40.3向量bge-m31024 维、OCRqwen2.5vl:7b不依赖任何外部 API Key上线自检脚本tests/e2e/kb-9999-livecheck.mjs可复跑已知缺口如实列出不声称解决缺口状态图片类文档png/jpg没有独立入库通道P2 只做到识别并拒绝/按文本吃下真正的图片通道属 P3拖拽上传路径无 e2e 覆盖只有间接覆盖目录选择走的是同一套collectDroppedFiles纯函数ParserEngineRules的 OCR 通道只有单测覆盖未做真实 UI 端到端关键词臂对中文整句不命中设计边界FTS5 trigram 子串语义靠向量臂覆盖「重建索引」单次最多嵌 200 分块、前端只调一次分块多的库需点多次才补齐向量维度在建表时固定换模型且维度变化必须「重建索引」P3rerank 深化 / Wiki / GraphRAG、P4fork/rewind / artifacts / steering、P5SSO / 多租户 / Langfuse未启动 升级说明Schema 自动迁移 v72 → v73启动时创建知识库 6 张实体表 4 张 FTS5 / vec0 虚拟表无数据改写、无破坏性变更。新增路由族/api/paas/knowledge-bases/*34 个端点库 / 文档 / 分块 / FAQ / 检索 / 问答。新增页面「知识库」→/knowledge-bases与详情页文档 / 分块 / 检索测试台 / 问答 / FAQ 五个页签。新增 Agent 工具kb_search/kb_read_document/kb_list_documents随 Agent 运行时自动注册。向量化需要模型配置在「设置 → 模型服务」配置向量模型。推荐直接用系统内置的开源模型服务本机 Ollamabge-m3不需要任何外部 API Key。扫描件 OCR 需要视觉模型同样是内置服务提供qwen2.5vl:7b配置ocr.json即可未配置时上传扫描件会在上传当场被拒绝并指路设置页不会静默入库噪声。SQLite 需启用 sqlite-vec向量索引依赖sqlite-vec扩展启动日志出现vector index enabled即正常。既有链路零改动知识库是完全新增的子系统不影响对话 / 图编排 / Loop / 监督者 / 开放平台 / 运行监控。 获取方式AtomGitgitatomgit.com:AIGeniusInstitute/deepthink.gitGitHubgitgithub.com:AIGeniusInstitute/deepthink.git桌面端安装包见各平台 Release 资产macOS .dmg / Windows .exe / Linux AppImagegitfetch--tagsorigingitcheckout v1.8.0# 或直接拉取 main 分支已包含 v1.8.0 全部内容 版本统计项值Commit33文件变更219 files changed, 34059 insertions(), 582 deletions(-)新增文件 194 个含验收截图Schemav72 → v73知识库 6 张实体表 4 张虚拟表HTTP 端点34/api/paas/knowledge-bases/*支持格式11pdf / docx / pptx / xlsx / epub / xmind / html / csv / json / markdown / text测试187 文件 / 2493 用例2477 passed / 16 skipped较 v1.7.0 26 文件 / 411 条新增需求文档知识库复刻 内置模型服务 的 意图 / PRD / 技术方案 / 执行状态 / 带截图测试报告新增 issue 复盘19 篇8 节完整结构UI 验收18/18P1 内核 10/10PDF 21/21OCR 35/35P2 14/149999 上线 致谢让每一家企业都拥有一支永不停歇、持续进化的 AI 超级研发团队——从工具使用者到代码创造者最终成长为可自我繁衍的超级智能体。让我们在通往 AGI 的道路上一起前行。