This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Thursday, 29 January 2026
没有深口袋的深度研究 @.
当“"”Dep Institute Research's " 降落在AID高级工具里时,我很好奇这是什么? “, 实际上是什么呢?”所以我把它拆开了。 当我理解到这个结构后, 我意识到I' 已经建造了大部分的.?
在这一方法中,削减步骤的力度消除了需要大型, 昂贵模式以产生令人满意的结果的必要性。
包括多-源代码检索@,}实体提取_, 知识图表\ ,}和嵌入{- 基础排名*,}它们与清晰RAG和DocSummerizer系列分享
缺失的部分并非缺乏能力 @,, 而是理解如何有效运用这些现有元素@.什么?
在商业工具中, “,”““”“Deep Research”“””通常是指一种工作模式。
或
重要
或
请注意计划研究方法@,是否多-step search @/browsing}MS K3}在很多源头中讀 *{((通常在網上) <+}你上传的>/}连接文件),}然後寫一份更長的報告 引用<.
此值的一大部分是改进输入“:”的拉动, 使其在新产品中比任何型号@-+#信号源都高 #’+#培训数据切除“MS K4_off date @,}(证据)<,>和减少模型转换的可能性.{
例如 @: OpenAI 深层研究, 双子深层研究,和 双重深层研究 “( ”也称为““ 研究模式 ” ” 在他们的UIQ/ docs @). }
DoomSummarizer 遵循相同的工作流程@, @ but it’_%s 设计完成, 因此大部分的“ “” 读@MS K3} 减少 “ ”” 的工作是确定性的和本地的 @,} 而LLM主要用于合成 •.}
如果降级的步数是坚挺的 , 你不需要一个大的’ 昂贵的模型来取得好的结果吗?
之间 更清晰 和DocSummarizer系列,我已经拥有了大部分的建筑块 ': moto\ - source recreaking ,\ 实体提取>,\ 知识图形@,\ 嵌入-\ 以排名'.#
丢失的碎片是 @' @t 能力@.}它就是 管弦“.”你如何接收所有这些信号 并把它们结合到某种与一个小型号“?”一致的东西?
由末日滚动 , 命名为 .* 因为它是末日卷轴 所以您不必按末日翻滚 MSSK3 指向您的源头*,* 设置一个旋律\ MS K6}获得合成=. *
但是这篇文章是关于这个工具的“.”和“It's '”的内容。
这是 部分#5 调制解压缩器序列@. @
如果您想要第一个基础文件“ :” : @ info/ plain
这也是 时框工具.
[-=YTET -伊甸园字幕组=- 翻译:
标准 RAG 已使用语义检索@ : @ 块文档\ ,} 嵌入它们 @ MS K2, 并获取最相似的区块的顶部@ MISK3Qk@ MPK4}
痛苦是最后一步: 你最终还是把一堆吵闹的',"重叠块扔进一个LLM, 要求它调和重复的,"重量来源," . 并保持一条连贯的线"MS K4" 这管用, 但是它把你推向大环境窗口和昂贵的模式"MSC6"
如果你做了更多的工作 之前 LLM看到任何东西 ?
这个图案就是这个模式 : 在生成前减少“.” 使用原始文件,并明确将其减少到基本信号“:” 嵌入“MS K2” 级别 ,” 突出部分 “,” 实体概况“MSC5” 当LLM看到任何东西时 “MS K6” 辛勤工作完成后
flowchart TD
subgraph REDUCE["REDUCE: Distil to Signals"]
Q[Query] --> Decompose[Composite Decomposition]
Decompose --> S1[Subquery 1]
Decompose --> S2[Subquery 2]
S1 & S2 --> Fetch[Multi-Source Fetch]
Fetch --> Embed[ONNX Embed Each Item]
Embed --> Rank[6-Signal RRF Fusion]
Rank --> TextRank[TextRank Extraction]
TextRank --> NER[Entity Extraction]
NER --> Profile[Entity Profile Vectors]
Profile --> Segments[Salient Segment Extraction]
end
subgraph SYNTH["SYNTHESIZE"]
Segments --> Standard["Standard Path - 1 LLM Call"]
Segments --> LongForm["Long-Form Path - N+3 LLM Calls"]
end
style REDUCE fill:#1a1a2e,color:#e0e0e0
style SYNTH fill:#162447,color:#e0e0e0
降低的阶段是确定性=:嵌入,排名 ,实体提取_,TextRank},段评分=MS K5没有LLM调用吗?.
合成是唯一的LLM step. 对于标准查询来说,减少的信号足够干净 一通呼叫 对于长@ - for longQMSK1_form documents MS K2}一个寄件器计划结构和主模型生成的区块, 以平行的 @( please**{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}N+3** 调用N区-).+
有关此模式的更多详情@,}请查看 减少的RAG.
查询需要成为搜索动作@. @%
本地小型监控模式 @(0.6B 在我的情况下@, JSON mode,°C温度#0.1) 将原始查询解释成结构化的意向{,}然后由YAML-驱动的来源路由器将该意图转换为具体的抓取_.}
flowchart TD
Q["User Query"] --> Sentinel["Sentinel: JSON Interpretation - categories, intent, entities, - temporal hints, tone"]
Sentinel --> Router["Source Router - YAML category → source mapping"]
Router --> S1["gnews:AI safety"]
Router --> S2["search:AI regulation"]
Router --> S3["bbc:technology"]
Router --> S4["reddit • hn"]
S1 & S2 & S3 & S4 --> Fetch["Parallel Fetch - circuit breaking + rate limiting"]
Fetch --> Merge["Merge + Deduplicate - → reduce phase"]
style Sentinel fill:#1e3a5f,color:#e0e0e0
style Router fill:#0d3b2e,color:#e0e0e0
监控器提取结构化字段@: @%
源选择 在六个阶段发生 :
"from HackerNews" → hn 直接进去research 或 deep_dive 增加 arxivgnews:OpenAI)与 per-}来源电路破解@.}同步获取的源标识符
Vibes 在点击任何 API . 之前修改搜索条件 --vibe doom 查询前缀 “"”与“..."”中的问题有关。@, 重塑在任何排名发生之前会回来的东西 #.#
如果您想要回弹性比特的背景@ ,\ 查看 使用 Polly 重试 (路断路器)和 排队系统中的后压 ( 速率限制和后压 ).
多数搜索系统都将新的 Internal 安全规则视为“?"”,
监控器分解化合物查询“:”
{
"is_composite": true,
"subqueries": [
"What's new in AI safety?",
"What are the latest AI regulations?"
]
}
有趣的选择是,接下来会发生什么? “. ” 每个子查询都有自己的ONX嵌入的“(se”。 ONNX:}本地运行 ML 模型当评分文章时 , 我接受 最大余弦相近性 在所有子拼贴嵌入中 @ , @ not the busic=. @
为什么最大=? 一篇完美解答 @"_AAI Security@"应该被惩罚? 任何 您问题的一部分 @ , @ it suggests@ MS K1} 替代的, @ 平均=\ ,} # 奖励那些模糊地触碰了一切的粗俗文章 @ MPK4 @
我有6个排名的信号 . 它们有完全不同的规模
flowchart LR
subgraph Signals
BM25[BM25 - Keyword Match]
Fresh[Freshness - 48h Half-Life]
Auth[Authority - HN/Reddit Score]
QSim[Query Similarity - Cosine]
Vibe[Vibe Alignment - Cosine]
Qual[Quality - Clickbait Detector]
end
subgraph RRF[RRF Fusion]
direction TB
R[Rank Each Signal - Independently]
F["score = Σ weight × 1/(60 + rank)"]
end
BM25 & Fresh & Auth & QSim & Vibe & Qual --> R --> F
style RRF fill:#1e3a5f,color:#e0e0e0
HN点指向千兆赫. 孔径相似度为 @-1 新鲜度衰减指数=%. 你可以安全地将这些相加和成*.
这里的关键信号是 BM25} 横跨多个字段的 BMZ(BM_BM25FMS K3}如果您想要 BM{25,}的背景, 请查看 DocSummarizer 部件 *\ 3 {.
相互排名融合 (Cormack 和 al., @ @ MS K2通过忽略原始分数来解决这个问题@:每个信号列项目独立=,}然后您将它合并起来 列内: score = Σ weight × 1/(k + rank) MSKO 与 k=60).
如果您想要全背景的 RRF, part @ 3 覆盖它@.}这里是扭曲 适应查询类型哨兵侦测到意图 , 和计分器重塑自己
开始于一个笑话 @. @ 现在它#'}是我最喜欢的功能@.
@ "vibe"是{'没有提示性措辞@.It'}a 第一级- 级排名信号 嵌入回收管道@: @%
flowchart LR
V["--vibe doom"] --> Expand["Query Expansion - 'concerning risks issues in...'"]
V --> Embed["Vibe Embedding - 'vulnerability breach layoffs - recession crisis warning...'"]
Embed --> Score["Cosine Similarity - per article"]
Score --> RRF["RRF Signal - weight: 0.4"]
style V fill:#8b0000,color:#e0e0e0
当你设置一个氛围时 发生了三件事情
自定义感应效果相同@ . @ --vibe "contemplative philosophical"-}您的文字既成为查询前缀,也成为排序目标.}这个系统与自定义的'没有区别 它只是嵌入您给它的任何内容
这里的' @%s a mistake I first_:}计算文档中共享的实体=.}
两篇文章都提到 @"_California}":
共享实体计数@: @ @ @ 1. @ 因此相关Q!}显然错误 @.
修正的目的是将实体视为矢量=% ,}而不是字符串=.
这是 限制的模糊模式@:_NER模式提议实体@,}但确定权重决定什么重要
每个文件都得到一个 加权实体概况 (a 384-dim 矢量编码 减去 实体的出现和它们的独特性
weight = TF × IDF × confidence × type_weight
profile = L2_normalize(Σ entity_embedding × weight)
flowchart TD
subgraph Doc1["Article: OpenAI Safety Team"]
E1["OpenAI (ORG) - IDF: high - weight: 2.1"]
E2["California (LOC) - IDF: low - weight: 0.3"]
E3["Safety Team (MISC) - IDF: high - weight: 1.8"]
end
subgraph Doc2["Article: Almond Farming"]
E4["California (LOC) - IDF: low - weight: 0.3"]
E5["Almond Farmers (MISC) - IDF: high - weight: 1.9"]
E6["Drought (MISC) - IDF: medium - weight: 1.2"]
end
Doc1 --> P1["Profile Vector - Dominated by OpenAI + Safety"]
Doc2 --> P2["Profile Vector - Dominated by Farming + Drought"]
P1 -. "low similarity" .- P2
style Doc1 fill:#1a1a2e,color:#e0e0e0
style Doc2 fill:#2d1a2e,color:#e0e0e0
@"_California"}以国防军为主的关键是 .}{MSK01#MSK1}(在文章的吨数中出现*-}低度以色列国防军},弱小信号{.{posible sign *"*OpenAIMSNSKQK7}是不同的高度的USDRZK9}
聪明的部份 : 饱和 TF“. ”而不是原始提及计数“, ”我使用 1 + log(mentions)@._Q_BARBAR_一个实体在长篇文章中提到“50}('})多次,
实体概况是 @'}不只是用于理解文档@.}它们='re a 检索尺寸“. ” 每个多普伦%🥱t's实体配置文件都以 HNSW 图“ (DuckDB}#'s VSS 延伸域=), 启用 OZ(log Nñ) 发现关键字搜索会完全错失的语义相关文章@.}
如果您想要更多关于 HNSW 和 DuckDB 的详细信息, 请查看 图图RAG 部分 *2: 最低可视图形.
flowchart TD
subgraph Retrieval["Three-Layer Retrieval (UNION)"]
L1["Lucene FTS - keyword matches"]
L2["Embedding HNSW - semantic similarity"]
L3["Entity Profile HNSW - entity fingerprint match"]
L1 & L2 & L3 --> Union["Union of all candidates"]
end
subgraph Enrich["Post-RRF Enrichment"]
Top["Top 5 Ranked Items"] --> Agg["Aggregate Profile - mean of entity profiles"]
Agg --> Graph["HNSW Search - min similarity: 0.30"]
Graph --> Related["+3 Related Articles - scored below existing items"]
end
Union --> RRF["RRF Fusion"] --> Enrich
style Retrieval fill:#1a1a2e,color:#e0e0e0
style Enrich fill:#0d3b2e,color:#e0e0e0
这在两个阶段起作用 :
检索期间@: @ @% laginel 在寄件人从查询 < , > 中提取 < MPK1> 实体时 , 使用相同的 TF}{×} IMS4} 公式@ ._ 此搜索 HNSW 索引中带有类似实体指纹的物品 MS K5} * 最小相似的 _0.25.} 关于 " OpenAI 安全问题的一篇文章@" 表面 即使它从未提及确切的查询术语\ MEK9 因为它的实体配置“ MSKO10” 由高端的 MS- K11 & IDF "* OpentAI MSQ13}\ k14 MSC15\ security # MSG16}
排位后: 排名前端的5项目中,其实体概况已平均成一个总矢量□.。 对于关键字和嵌入层完全遗漏了. 创称文章得分略低于排位最低的项目MS K4,并按所发现的标记 *"*via实体 *"**@.}这抓住了新闻文章提到的主要消息来源,
使用Union=:Lucene Keyword的三层引信匹配“∪嵌入HNSW”匹配“MSC2实体配置文件 HNSW match.联盟有意扩大范围,超过交叉点@. 它捕捉到任何单一信号都可能浮现.RF聚变的项目
后退路径 @ ( @ for corpora 没有实体剖面图@ MS K1}使用 SQL 实体co- @ acurence 计数 @ MPK3 @HAVING shared_count >= 2“). ”它管用,但“'”和“Os Os ( N²) ”代替了“OZ( log Nó). ” --backfill-entity-profiles 将现有的公司迁移到 HNSW 路径@. @%
这是正常路径 @ . @ scroll "AI safety and regulation" 选中此项@ . @% 在缩小阶段后将您的源代码切入到排序@ I, dedudiplated,}实体 @ MS K3 profiled seclue@ MPK4}合成为单一调用@:}
flowchart TD
subgraph REDUCE["Reduce Phase (ALL DETERMINISTIC)"]
Items[Fetched Items] --> Embed[ONNX Embed All Items]
Embed --> RRF[6-Signal RRF Fusion]
RRF --> TR[TextRank Compression]
TR --> Seg[Segment Extraction + Salience Scoring]
Seg --> Dedup[Deduplication + Relevance Floor]
end
subgraph SYNTH["Synthesis (1 LLM CALL)"]
Dedup --> Rerank["Semantic Re-Rank - by query similarity"]
Rerank --> Budget["Smart Evidence Budgeting - redistribute unused chars"]
Budget --> Gen["Single LLM Call - with curated evidence"]
Gen --> Output[Final Summary]
end
style REDUCE fill:#0d3b2e,color:#e0e0e0
style SYNTH fill:#1e3a5f,color:#e0e0e0
减让阶段是辛勤工作的时候 当LLM看到任何东西时 它会收到:
[E1] Title | topic | relevance 内容已缩短到预算一个LLM调用". that' 来支付 削减的RAG@:# 选择@,_ 排名 @ ,% dedudition},和预算编制都发生在LLM看到什么之前
长-Form (--template blog-article,})是另外一种野兽 MS K1 你' 正在生成一个来自数十个来源的多@-剖面文档。 您需要各区间的一致性, 而无需昂贵的LLM压缩电话 =.
答案是 限制的模糊背景拖动@.}这些确定性机制 保持了交叉的-}部门一致性,同时允许平行一代人.}
flowchart TD
subgraph Phase1["Phase 1: Evidence Preparation (DETERMINISTIC)"]
Articles[Top 20 Articles] --> Segments[Chunk into Segments]
Segments --> Salience[Score Salience per Segment]
Salience --> EmbedSeg[Embed Each Segment]
end
subgraph Phase2["Phase 2: Document Planning (1 SENTINEL CALL)"]
EmbedSeg --> Summary[Build Evidence Summary]
Summary --> Sentinel["Sentinel: Generate Outline - with theme keywords per section"]
Sentinel --> EmbedThemes[Embed Section Themes]
end
subgraph Phase3["Phase 3: Evidence Assignment (DETERMINISTIC)"]
EmbedThemes --> Assign["Score: 60% theme similarity - + 25% salience + 15% relevance"]
Assign --> Dedup[Cross-Section Deduplication]
Dedup --> Gate["Quality Gates - • Min salience 0.35 - • Min theme sim 0.45 - • Max 2 per source per section"]
end
subgraph Phase4["Phase 4: Section Generation (N+2 LLM CALLS)"]
Gate --> Intro["Intro (sequential)"]
Intro --> Body["N Body Sections (parallel) - max 3 concurrent"]
Body --> Conclusion["Conclusion (sequential)"]
end
subgraph Phase5["Phase 5: Validation (DETERMINISTIC)"]
Conclusion --> Validate[Citation Validation - URL + Entity Grounding]
end
subgraph Phase6["Phase 6: Assembly (DETERMINISTIC)"]
Validate --> Assemble[Final Document Assembly]
end
style Phase1 fill:#0d3b2e,color:#e0e0e0
style Phase2 fill:#1e3a5f,color:#e0e0e0
style Phase3 fill:#0d3b2e,color:#e0e0e0
style Phase4 fill:#1e3a5f,color:#e0e0e0
style Phase5 fill:#0d3b2e,color:#e0e0e0
style Phase6 fill:#0d3b2e,color:#e0e0e0
计数LLM 调用: 1 (_sentinel大纲)}MS K2 1 @(#intro@)} +# N 内 -=YTET -伊甸园字幕组=- 翻译: 1 ( -结论 -) _= {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}N+3六个阶段中的四个是决定性的
平行区段生成的问题是一致性 . 如果各区位不知道其他区块是怎么说的 你就会重复和流传\ , 通常的方法就是相继代 MS K4,这"'慢且废弃上下文窗口\ .}
取代, 每一部分都得到 a 环境受限情况 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}然后'Qs建立起来
flowchart LR
subgraph Context["Per-Section Context (ALL DETERMINISTIC)"]
RS["Running Summary - 1400 char budget - recent 2 sections: full - older: heading only"]
NP["Negative Prompts - 'Do NOT discuss: X, Y, Z' - from covered concepts"]
EC["Entity Continuity - re-introduce entities - last seen 2+ sections ago"]
Props["Propositions - ~15 atomic facts - per section"]
Evidence["Curated Evidence - max 12 segments - quality-gated"]
end
Context --> LLM["LLM generates - with full awareness - of document state"]
style Context fill:#1a1a2e,color:#e0e0e0
在平行模式“,”中,Intro 生成第一个 “(”设置了基线“MS K2”机体部分,同时运行“(”至“MSC4” SemaphoreSlim 每一个都排除了内向主题,但互不相容...")," 而结论是最后一个"MS K2" 不包括所有东西"=)."
序列模式给予更紧密的一致性@(each 节将所有先前的概念合并排除,但对于大文档来说,平行是~3x
每个章节都需要证据 , 但不是 任何 每个区段都有复合分数 : 60%主题相似 @(cosine 距离区域@'}主题嵌入#),} M25% 显著 @(#该部分内容如何? 15%文章关联性 这个评分完全是决定性的 . 没有LLM决定什么是相关的
然后是大门
LLM 目标字数根据证据质量调整. 坚固的证据 @( @salience @ @s≥}#0.6,} @sIMK4}来源@,}{*4+}片段 200)}♪→}完整单词计数 *.弱点证据=Z({\saliense @sak K11{z0.45,spirent)}→}_}MPK14〞这防止了在证据不足时产生幻觉
在证据到达LLM ,之前 它被原子化成 Dense-X检索纸每个部分被打破 分为六类原子事实 索偿 * 一般性事实陈述* 引用引号 @(_ 直接来自源@),} 统计统计 ( 数和量度), 定义定义的定义 ("X是Y"),{ 进程 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080} 列入实体名称的事实 “(”重点针对一个特定实体“).”
“~15” 提议=,}使用语义相似性 @(not字符串匹配). 将每一节的“MSKO}提案”改为“MSk0 proposes@MSK 1 ” 。 LLM 接收按源{,}分类的结构化圆点,而不是原始段落_.
当LLM写下一节,时 削减阶段已经给了它"MS K1"
一个小模型可以做出色的工作 使用这种预兆- programing.
当文章太长 证据管道,我需要压缩它们.}但是我想用一个LLM电话来概括=.>
TextRank {(}米哈塞亚& TarauMS K2 2004) 它有决定性的吗?
flowchart LR
Text[Article Text] --> Split[Split into Sentences]
Split --> EmbedS[Embed Each Sentence]
EmbedS --> Graph["Build Similarity Graph - (cosine > 0.15 = edge)"]
Graph --> PR["PageRank - (20 iterations, d=0.85)"]
PR --> Select["Select Top-K - in Original Order"]
style Graph fill:#1e3a5f,color:#e0e0e0
每个句子都有一个嵌入的“.”和“0.15”上的相近之处, 成为图表边缘@.PageRank发现最多的 中央中心 这些是最能代表文档的句子。
关键细节@: @% 选中的句子被返回 按原始文件顺序排列. 这保留了叙事流程. 你得到一个一致的总结, 不是一袋随机的重要句子_.
以毫秒.}°C的相近性通过 SIMD@-+Q加速运行 TensorPrimitives (System.Numerics.Tensors“) (AVX2, AVX□-512,或ARM近地物体,在运行时选中的“).”
文章提到其他条款, 这些提及常常包含最佳证据: 新闻文章总结的最佳来源@-}
DoomSummarizer 跟随链接@,}但有选择性地 @. – 每个候选链接都得分:
link_score = 0.7 × query_relevance(anchor_context) + 0.3 × segment_salience
片段显著结合的地方 @: @%
在相关楼层以下的链接 @(0.15) 被跳过@. 系统沿循新闻反向金字塔黑字塔#:}重要连接往往在早期出现在井中-写文章_.
含有内容杂交的缓存结果和 ETags @ .} 第二次运行是快速@ MS K1 见 回应 Caching @,ETags,和有条件请求.
但您可以完全跳过网路 .
crawl 将网站输入本地知识库@. @ 它从种子 URL=,}(尊重深度和页数限制)中,
doomsummarizer crawl https://docs.example.com --name example-docs --depth 3 --max-pages 200
全部内容@: @ 完整内容 @ , @ ONNX 嵌入% I, @ 实体配置 @ MPK3 @ SQLite FTS5}关键索引 (-} text search),}情绪和主题分数 @}通过嵌入锚=,# 没有 LLMZMS K10} 递增-_crawls send If-None-Match / If-Modified-Since 在没有 ETag 支持的服务器上返回 HTTP {304}和跳过后处理. CHA\ ,}\ SHA=256}*内容 hashhes catch plus
曾经完全在离线下爬过,查询 :
doomsummarizer scroll "how does authentication work?" --name example-docs
缩略 --name 本地 KB 而不是网络源@. @% 同三-_Slayer recreditionfire:}FTSQMZ5}完整的-,}嵌入 HNSW 搜索的HNS
没有外部服务@,No Docker @,}没有 API 键#.}一个数百页的爬行知识库,以几兆字节和毫秒时间进行查询。
doomsummarizer scroll "AI safety and regulation" --vibe doom --debug
Composite query detected: 2 subqueries
• What's new in AI safety?
• What are the latest AI regulations?
Searching...
├─ Lucene: 18 keyword matches (regulation^3, safety^2)
├─ Embedding: 12 semantic matches (max-sim across 2 subqueries)
├─ RRF fusion: 22 candidates, 6 signals
├─ Entity HNSW: +3 related via entity profiles
├─ TextRank: compressed 4 long articles
└─ Final: 12 items
Long-form: Phase 1 - 187 segments from 12 articles
Long-form: Phase 2 - "AI Safety Landscape" - 5 sections
Long-form: Phase 3 - Evidence assigned (cross-section dedup: 8 removed)
Long-form: Phase 4 - Generating sections...
这些是洞察力 . 带他们去使用 在你自己的系统里
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.