ThoughtDAG开源:对话上下文终于能动刀了

ThoughtDAG 将 LLM 对话历史改造成可编辑的有向无环图,用户可分支、裁剪、合并并检查模型实际收到的上下文。它解决的不是模型能力,而是上下文失控。
ThoughtDAG 把聊天记录变成了可编辑的上下文图
ThoughtDAG 是一款用可编辑有向无环图管理 LLM 对话上下文的开源工具。 2026 年 8 月 15 日,这个项目通过 Show HN 进入开发者视野:它不再把聊天记录视为一条只能不断向下滚动的时间线,而是把每轮问答做成节点,把节点之间的连线直接定义为模型下一次生成时能够读取的上下文。
这项设计看起来只是把聊天界面换成了画布,实际动的是 LLM 产品最核心、也最容易被忽略的一层:上下文组装。传统聊天产品通常替用户决定哪些历史消息进入模型,ThoughtDAG 则把这个决定权直接暴露出来。
有向无环图(Directed Acyclic Graph,DAG)是一种边具有方向、且不存在循环路径的图结构。 放进对话场景后,节点可以代表一轮提问与回答、PDF 片段、网页材料或中间结论;边则代表依赖关系,也就是“生成这个节点时,需要参考哪些上游内容”。
截至发稿,ThoughtDAG 官网展示了 Branch、Prune、Merge 和 Inspect 四个核心动作。托管演示主要用于呈现交互模型,本地版本还加入了完整 PDF 工作流、段落与图片裁剪、来源关联节点、网页搜索以及 MCP 接入。

图不是聊天记录的可视化,而是模型真正看到的上下文
ThoughtDAG 最重要的设计判断是“图本身就是上下文”,而不只是上下文的展示界面。 用户从某个节点继续提问时,系统会沿着它的入边向上遍历相关祖先节点,对这些内容进行排序,然后构造成发送给所选模型的消息序列。
这意味着删除一条边并不是整理画布,而是在修改下一次请求。如果用户保留同一个问题,却切断它与某段错误推理的连接,模型再次回答时就不会收到那条分支。相同提示词配上不同图结构,最终得到的就是不同上下文和不同答案。
传统聊天产品也可能支持“重新生成”“从此处分支”或编辑历史消息,但这些功能往往停留在会话层。用户很难确认编辑之后,系统是否仍在后台带入摘要、记忆、附件检索结果或其他隐藏消息。ThoughtDAG 的 Inspect 功能则强调在生成前预览实际输入,让上下文选择从黑箱变成可检查对象。
这一区别对普通闲聊未必重要,对长周期研究、代码调试和 Agent 工作流却很关键。模型答错一次并不可怕,可怕的是错误结论被后续十轮对话反复引用,最终混进需求说明、架构设计和代码实现中;在线性聊天里,用户通常只能另开新会话,或者用一句“忽略前面的错误”继续和已经被污染的上下文搏斗。
四个动作,分别处理四类上下文问题
ThoughtDAG 的四个核心操作对应了长对话中最常见的分叉、污染、汇总和不可见问题。 它们并不是新的模型能力,而是对模型输入进行更细粒度的人机协作。
Branch:保留原路径,同时探索另一种解释
Branch 是从现有节点创建独立推理分支的操作。 例如开发者正在排查数据库延迟,可以从同一组监控数据出发,一条分支检查慢查询,另一条分支分析锁竞争,第三条分支调查网络抖动,而不必把三套假设塞进同一条聊天记录。
分支的价值在于“并行保留假设”。传统线性对话一旦转向新假设,模型很容易把前后两套判断混在一起;ThoughtDAG 则允许不同解释共享上游证据,又保持下游推理彼此隔离。
Prune:节点留在画布上,但不再进入请求
Prune 是通过移除连接排除某条上下文路径的操作。 一段探索即使最终被证明无用,也不必从项目记录中彻底删除;用户可以把它保留在画布上作为审计材料,同时断开它与下一次生成节点的边。
这比“请忽略上面的内容”更可靠,因为后者仍然会消耗输入 Token,模型也仍然能够看到被要求忽略的信息。Prune 直接从消息组装阶段排除内容,至少在交互模型上减少了指令与旧内容互相冲突的机会。
Merge:把多条证据链重新汇入一个答案
Merge 是将多个选定分支合并为同一次生成上下文的操作。 在论文调研中,用户可以分别建立方法、实验结果和局限性三条路径,确认每条路径中的材料后,再让模型基于这三组节点撰写综合结论。
Merge 让“先分头研究,再集中写作”变成显式流程。不过,多分支合并也会带来顺序问题:如果两个节点给出冲突事实,系统以什么顺序拼接、是否标注来源、是否要求模型先解决冲突,都会影响输出。ThoughtDAG 解决了上下文选择问题,但没有自动解决证据可信度问题。
Inspect:生成前查看模型将收到什么
Inspect 是预览下一次模型请求上下文的操作。 它类似给 LLM 增加一个“发送前检查”面板,让开发者确认哪些祖先节点被选中、排列顺序如何,以及某条已裁剪分支是否真的被排除。
Inspect 可能是 ThoughtDAG 最实用、也最容易被其他产品借鉴的功能。今天大量 AI 应用会自动做历史摘要、语义检索和长期记忆,但用户看到的是完整聊天界面,模型收到的却可能只是经过压缩和筛选的片段;两者不一致,是许多“模型为什么突然失忆”问题的来源。
ThoughtDAG 与线性聊天、RAG、Agent DAG 有什么不同
ThoughtDAG 不是新的大模型、向量数据库或 Agent 编排框架,而是一层面向人的上下文编辑界面。 它管理的是“这一轮究竟把什么交给模型”,并通过图结构把选择结果持久化。
| 方案 | 核心数据结构 | 上下文由谁选择 | 是否支持显式分支 | 是否能检查实际输入 | 主要用途 | |---|---|---|---|---|---| | 传统线性聊天 | 按时间排列的消息列表 | 产品自动截断或摘要 | 通常有限 | 通常不能 | 日常问答、短对话 | | 长上下文模型 | 更长的消息与文档序列 | 用户与系统共同决定 | 不强调 | 视产品而定 | 阅读长文档、处理大代码库 | | RAG | 查询加检索片段 | 检索器自动选择 | 不强调 | 部分系统可查看引用 | 外部知识检索 | | Agent 工作流 DAG | 工具与任务执行节点 | 编排器或开发者 | 支持 | 主要检查执行轨迹 | 自动化任务与工具调用 | | ThoughtDAG | 可编辑上下文节点与有向边 | 用户显式控制 | 支持 | 支持生成前预览 | 研究、推理、写作与调试 |
RAG(检索增强生成)是先从外部知识库检索相关材料,再把材料加入模型输入的生成方式。 ThoughtDAG 可以承接 RAG 找回的结果,但它关心的是检索之后的事情:哪些材料应该继续留在推理链上,哪些应该断开,以及多组材料何时重新合并。
Agent 工作流 DAG 是用图结构描述任务、工具调用及其依赖关系的自动执行流程。 ThoughtDAG 与它表面相似,但控制对象不同:前者主要编辑模型的认知输入,后者主要编排系统的执行步骤。一个节点在 Agent 框架里可能代表“调用搜索工具”,在 ThoughtDAG 里则更可能代表“把搜索结果作为后续回答的证据”。
这也解释了 ThoughtDAG 为什么提供 MCP。MCP(Model Context Protocol)是一套让 AI 应用以统一方式连接工具、数据源和外部能力的开放协议。 MCP 能把更多材料带进工作区,ThoughtDAG 则负责决定这些材料如何进入具体生成路径,两者分别解决连接和选择问题。
它真正击中的,是长对话的“上下文污染”
上下文污染是错误、过时或无关信息持续进入后续模型请求,并逐步影响输出的现象。 模型上下文窗口从数万 Token 扩展到数十万乃至更高之后,这个问题并没有消失,反而更容易被掩盖:窗口装得下,不代表所有内容都应该装进去。
长上下文解决的是容量限制,ThoughtDAG 试图解决的是结构限制。把 200 页材料全部交给模型,和只选择与当前结论相关的 12 个节点,可能都没有超过窗口上限,但后者更容易检查来源、排除冲突,也更容易复现生成条件。
Token 成本同样值得关注。ThoughtDAG 尚未公布标准化的 Token 节省比例、延迟测试或质量基准,因此目前不能断言它一定更省钱或更准确;但从机制看,切断无关祖先节点能够减少输入长度,而多分支 Merge 也可能瞬间扩大请求。它提供的是成本控制手柄,不是成本优化保证。
这一点需要说得明确:ThoughtDAG 不会让弱模型自动变强,也不会替用户判断材料真假。它只是让用户有机会准确地修改模型看到什么。对追求一键完成任务的人来说,这甚至增加了操作负担;对需要复现、审计和控制推理过程的人来说,这种负担恰恰是价值所在。
PDF、网页搜索和 MCP,让它不只是聊天画布
ThoughtDAG 本地版试图把上下文图扩展成研究资料工作台。 根据项目当前介绍,本地设置支持从 PDF 中裁剪段落和图片,并把这些内容保存为带来源关联的节点,同时可接入网页搜索和 MCP 工具。
来源关联对研究场景尤其重要。用户可以把论文中的实验表格、方法描述和限制条件拆成不同节点,再让它们进入不同分析分支;最终合并结论时,仍能沿着图回到原始材料,而不是只剩模型生成的一段二手摘要。
但本地能力也引入了新的安全边界。PDF 和网页内容都可能包含提示注入文本,MCP 工具则可能连接文件系统、数据库或企业服务;如果外部内容被直接视为可信指令,图结构再透明也无法阻止越权调用。可视化上下文只能帮助发现风险,不能替代权限隔离、工具白名单和内容消毒。
目前最明显的短板,是图会不会比聊天更难管理
可编辑图的代价是认知负担会从系统转移给用户。 十几个节点时,分支和连线一目了然;当项目积累到数百个节点后,画布可能迅速变成另一种形式的信息噪声。
DAG 也不天然等于正确的消息序列。图只定义偏序关系,而模型最终收到的仍然是一串有顺序的消息;当多个祖先节点并列时,排序策略、角色标记、去重规则和 Token 预算都会改变结果。如果同一个证据节点经由两条路径到达合并点,系统还必须避免重复注入。
版本与协作能力将决定 ThoughtDAG 能否进入团队生产流程。开发团队会关心谁删除了哪条边、某个答案基于哪个图版本、合并冲突如何处理,以及模型、系统提示词和外部工具配置能否一起被锁定。只有图结构而没有版本快照,仍然难以做到严格复现。
项目目前也没有给出公开的标准化性能数据,包括图遍历开销、超大画布规模、不同模型下的答案质量变化和平均 Token 节省比例。对一个刚进入开发者视野的开源项目来说,这并不意外,但也意味着现阶段更适合把它看作交互范式验证,而不是已经成熟的上下文基础设施。
谁最值得现在就试
ThoughtDAG 当前更适合上下文结构复杂、且错误代价较高的专业任务。 它的目标用户不是只问三轮问题的普通聊天用户,而是需要持续维护证据、假设和结论关系的开发者与深度用户。
以下几类场景与它最匹配:
- 代码调试: 分别保留日志分析、依赖变更和环境差异三条路径,排除已证伪假设后再生成修复方案。
- 论文与行业研究: 把原始材料做成来源节点,分开分析方法、数据和局限,再合并为报告。
- 产品需求设计: 将用户反馈、技术约束和商业目标放在不同分支,避免一次讨论中的临时意见污染最终规格。
- 提示词与模型评测: 固定问题,只修改进入节点的上下文,观察同一模型在不同证据组合下的输出变化。
- 高风险内容审查: 在生成前检查实际输入,确认过时政策、错误数据或未授权文档没有混入请求。
普通问答未必需要 ThoughtDAG。图编辑比连续聊天多出选择节点、连接路径和检查输入等操作,如果任务本身没有复杂依赖,这些动作只会降低效率。它更像 Git 的分支与合并:写一段临时文本时显得多余,维护长期项目时却很难替代。
判断:上下文工程开始从后台走向前台
ThoughtDAG 的价值不在于发明了 DAG,而在于把后台的上下文组装变成用户可以直接编辑的产品对象。 过去两年,行业重点一直是更长的上下文窗口、更强的自动检索和更主动的长期记忆;ThoughtDAG 走的是相反方向——不是让系统替用户记住更多,而是让用户准确决定模型这一次该看到什么。
这条路线不会取代线性聊天,但很可能成为专业 AI 工作台的一种标准视图。未来更合理的产品形态或许不是只提供“聊天模式”与“画布模式”二选一,而是在简单任务中维持线性界面,在复杂任务中允许用户展开上下文图,并随时检查系统摘要、RAG 片段、工具结果和人工笔记之间的连接。
ThoughtDAG 目前仍是早期项目,缺少规模化测试、协作机制和公开基准,但它提出的问题比产品成熟度更重要:当 LLM 被用于数小时甚至数周的工作时,聊天记录已经不再等于上下文。谁能看到、编辑并复现模型真正收到的输入,谁才真正控制这段对话。
参考来源
- Datawhale《上下文工程》:介绍上下文构建、历史消息、记忆与自定义上下文包的组织方法。
- Model Context Protocol GitHub 仓库:MCP 开放协议的规范与项目资料,用于理解 ThoughtDAG 本地工具连接能力的技术背景。



