枝知 v0.1 发布啦:让 AI 学习跟得上你的思路
最近,我正在学习 vibe coding。在与 AI 来回对话的学习中,遇到了一些麻烦。
于是制作了一款学习工具,叫作枝知。今天,v0.1 发布了。
它想解决一个我自己经常遇到的问题:用 AI 学习时,问题可以一直问下去,思路却很容易在追问中丢掉。
枝知让你针对不理解的内容,在浮窗中展开一段分支对话;分支里遇到新问题,还可以继续分叉。弄懂一个细节之后,再回到原来的内容接着学。你也可以让 AI 根据这些追问,重新组织原来的讲解。
下载链接在文末
起因
假设你有一些线性代数基础,想用 AI 入门 Transformer。
你问:“能给我讲讲 Transformer 的工作原理吗?”
AI 很快给出一篇结构完整的回答,从词嵌入、位置编码,一路讲到自注意力和前馈网络。看起来条理清晰,但读到自注意力时,你停住了:
“通过 Query 和 Key 的点积计算相关性,再对 Value 加权求和。”
Query、Key、Value 到底是什么?为什么点积能表示相关性?
于是,你开始追问。
解释点积时,AI 又提到了向量夹角;讲到注意力权重时,又出现了 softmax。你接着问:“为什么这里需要 softmax?”
几个来回之后,你终于理解了这个细节。可最初那篇 Transformer 讲解,已经被推到了很远的上方。你要翻回去,找到刚才读到的地方,再重新接上思路。
如果同时还有两三个没弄懂的段落,这件事就更麻烦了:先问哪个?剩下的会不会忘?另开一段对话,又要重新说明多少背景?
你原本只想补上一个知识缺口,却不得不额外管理对话、寻找上下文、记住阅读位置。
这不只是回答长短的问题,也不是文字是否逐字输出的问题。更根本的矛盾在于:对话通常按时间排成一条线,理解却经常需要从一个地方岔出去,再回到原处。
问题长出分支
枝知的第一个出发点很简单:疑问在哪里出现,就在哪里展开。
真实的求知过程,充满了分叉,相当的发散,还是刚才的例子:
[用户] Transformer 是如何工作的?(学习主线)
└── [AI] 从这几个部分来理解:
├── [AI] 一、词嵌入:将词元表示为向量……
├── [AI] 二、位置编码:补充位置信息……
│ └── [用户] 为什么需要单独表示位置?
│ └── [AI] 因为自注意力本身不包含序列顺序……
├── [AI] 三、自注意力:通过 Q、K、V 计算……
│ ├── [用户] Query、Key、Value 分别是什么?
│ │ └── [AI] 可以理解为查询、匹配线索和待汇总的信息……
│ │ └── [用户] 能用一个短句举例吗?
│ │ └── [AI] 我们来看“猫坐在垫子上”……
│ ├── [用户] 为什么用点积计算相关性?
│ │ └── [AI] 点积与向量的长度、夹角有关……
│ │ └── [用户] 点积和向量夹角有什么关系?
│ │ └── [AI] 我们从几何意义来看……
│ └── [用户] 为什么需要 softmax?
│ └── [AI] 它把分数转换为非负、和为 1 的权重……
│ └── [用户] 为什么不直接除以所有分数的和?
│ └── [AI] 原始分数可能为负,和也可能为零……
└── [AI] 四、前馈网络:对各位置的表示进一步变换……
└── [用户] 有了注意力,为什么还需要它?
└── [AI] 注意力负责聚合信息,前馈网络则……枝知为此设计了一套现代化的UI,尽可能维护思路的完整性,让整个过程更自然。
追问这个行为本身就有价值
另一个让我在意的问题是:一篇回答写得完整,不代表它适合此刻的你。
你可能熟悉矩阵运算,却没接触过机器学习;也可能已经会写模型代码,但还没有理解背后的概率知识。同一句“显然可以得到”,对不同的人,理解成本完全不同。
AI讲解的知识基础,可能和用户的知识基础并不一致。
在枝知里,你可以让 AI 结合分支中的提问,重写原来的那一段内容,并在后续回答中调整讲解的起点。在后续的问答中,AI也会利用用户的分支信息,将讲解的知识基础,与用户的知识基础对齐。
比如,在你追问了 Query、Key、Value 和 softmax 之后,可以让它重新讲一次自注意力:先用一个短句说明每一步在做什么,再引入公式,而不是继续用你还不熟悉的概念解释另一个概念。
现有文档也可以分支提问
学习的起点也不总是一个问题。更多时候,它是一篇论文、一份课程笔记,或者一段读了几遍仍然不理解的材料。
枝知 v0.1 支持导入 Markdown 文档,也支持直接导入 arXiv 论文。阅读时,你可以围绕不理解的内容发起 AI 问答、展开分支,并记下自己的笔记。
我尤其想照顾这几类场景:
- 自学一个陌生领域:沿着一个主题往下学,遇到缺失的前置知识就展开补充,理解后再回到主线。
- 精读论文:针对某个定义、公式或方法描述继续追问,把“作者写了什么”和“我理解了什么”逐步对齐。
- 复习课程材料:从已有笔记出发,围绕卡住的步骤提问,再用自己的话整理理解。
这些场景有一个共同点:你需要的往往不是 AI 再生成一大篇内容,而是把眼前这一段真正读懂。
开发计划
这一版先聚焦三件事:
- 分支对话:通过浮窗随时展开问题,分支中也可以继续分叉。
- 基于追问重写讲解:让 AI 参考分支中的疑问,调整原来的内容与后续讲解方式。
- 围绕材料学习:导入 Markdown 文档或 arXiv 论文,结合阅读、笔记与分支问答展开学习。
接下来,我在开发一个专为学习设计的记忆模块。除了偏好的讲解方式,我还希望它能区分不同学科方向的学习情况:你可能已经熟悉线性代数,却刚开始学习概率论,不应该被一个笼统的“初学者”或“进阶用户”标签概括。
这部分仍在开发中,不属于 v0.1 已完成的能力
写在最后
我给它取名“枝知”,也是因为这个想法:知识的理解,常常是在一次次追问中慢慢长出枝丫的。我想做的不是一个更擅长替你总结的工具,而是一个让你愿意继续问、也更容易接着学下去的工具。
下载链接
如果你觉得软件好用,欢迎为我点亮star
软件采用 AGPL-3.0 license 开源