「开源」知返(Ahadiff)--vibe coding 之后,你真的学到东西了吗?让知返为你解决

11 小时 14 分钟前
 attention

一个开源工具「知返 AhaDiff 」:把 AI 写的每次改动都给你讲清楚,让你 vibe coding 时不再无脑点继续

起因:使用 ai 进行 vibe coding 虽然快,但是代码中的改动却没有内化成自己的知识

我用 AI 写代码经常是这样:用 ai 写出一大段代码,我大致看一眼,回复继续;只要没出错就一直继续。如果报错或者不符合我的需求就把问题告诉 ai ,进行改动。项目完成了,各个功能都正常运行了,跑得也不错。可是有个问题,假如你回头问我「这个地方为什么这么写」,很大可能是一脸懵逼的状态,因为 ai 替我完成了 90%以上的代码改动。

并且在论坛中我经常看到类似的讨论,很多人都提及了这个问题:通过 vibe coding 指挥 AI 把活干了,效率确实高,可一个项目做完,自己好像没怎么长进,没有从中学到真东西。

我想要的其实很简单:AI 写完之后,有个东西能把这次改动给我讲清楚,为什么要这么改,这么改的作用何在,并且把这次改动的知识进行内化,形成自己脑子中的知识,于是就开发了知返这个项目。

它就干一件事:把 ai 的改动变成能查证的笔记,能让你学到真知识

知返通过读你的一次代码改动,把它变成一份完整的学习材料:形成一篇完整的「改了什么、为什么这样修改」的课程,一份每条结论都标了出处的清单。同时附带完善的测验和带复习周期的复习卡片,通过复习曲线设置,一遍遍的重复,避免相关知识的遗忘,而不仅仅只是展现相关改动的相关知识点。

运行面板:每学一次就多一条记录,带评分和质量趋势

并且为了避免 ai 的幻觉问题:笔记里每一句话,都要绑到某个文件的某一行代码上,再附带这个学习笔记对应的一个状态:

课程页:AI 把这次改动的相关知识点展现给你看

差异页:左边是代码 diff ,右侧的 claim 卡片点开,会跳转到对应 diff ,同时能看到这次改动对应的知识点

光看知识点还不够,那么我们学习完成之后测试你真的会了吗,并且根据 fsrs 算法,会加入之前做过的测验题

看懂了 lesson 的笔记知识点,不代表你真的会了,并且会用了,所以学习完课程之后还附带了测验和复习卡片

测验是 通过选择题的方式呈现给你,可在 settings 中动态设置测验题的数量。

每道题答题完成之后,能看这道题对应的知识点,以及这道题经常出错的地方

测验页:以选择题的形式呈现,答完才显示这道题目对应的代码改动

复习用的是间隔重复,就是 Anki 复习卡片那套思路,背后是 FSRS 算法。学过的东西会按遗忘曲线,在合适的时间点加入到复习部分让你再过一遍,避免看一遍就忘的情况。

复习页:到期的卡片按 Again / Hard / Good / Easy 评分

测验和复习还嫌不够的话,再来个 Challenge ( opt-in 的进阶玩法):它把某次改动做成一道挑战,让你自己先过一遍,再拿你的结果和真实 diff 逐条比对,把你漏掉、没掌握的地方挑出来,然后反馈到复习中。对着某个 run id 跑 ahadiff challenge build <run_id>,就能在 webui 中体现。

学得多了,知识会自己连成网,形成真正的概念图谱

借鉴了 llm-wiki 和 graphify 的思路。

同一个概念在好几次改动里反复出现,知返会把它们收集起来,连成一张概念图谱。

概念图谱:横跨多次改动的知识地图

每次学习都打分,能看出自己在不在进步

每跑一次,知返会从准确性、证据、覆盖率等八个维度打个 0 到 100 的分,判定这次学习算不算合格。你也可以另开一个模型当「第二评委」复核一遍,不过它只是参考,不会推翻判定。分数是透明的,点开能看到每一个维度的评分细节。

运行详情:八个维度的评分明细

觉得某次讲得还不够好?让它重学几遍,分数更高才留

打完分,你可能会觉得某次讲得还不够透,想让它再讲好一点。improve-run 能够解决这个问题。

对着某次 run 跑 ahadiff improve-run <run_id>,它会在你自己的项目里,拿这次改动把课程用更高质量重新生成几遍(默认 3 遍,专门盯着上次得分最低的那一维改进),再进行一次重新打分。只有新生成的分数确实比原来高,才会留下来

整个改进过程它不碰 git 、不改 prompt 、也不覆盖你原来那条已经保存的记录。

怎么用:先装上,然后基本就两条命令

现在已经可以直接从 pip 安装:

pip install ahadiff

装好并配好 provider 之后,核心就两步:

# 学一次最近的改动
ahadiff learn HEAD~1..HEAD

# 打开本地网页,看笔记、做测验、复习
ahadiff serve

serve 会提供 webui ,供你学习。想学暂存区里还没提交的改动,就 ahadiff learn --staged改动从哪来都行:最近的提交、暂存区、补丁文件、两个目录的对比,一共支持十种来源,不仅仅是从 git diff 中进行学习。

几个让你省心的点:

设置页:填 key 、选模型、调隐私和捕获上限,都在这

部分限制

链接

演示视频(中文,带字幕):

https://www.bilibili.com/video/BV1b57k6yEWm

如果你也常有「这代码是 AI 写的,我想从中学到真东西」这种想法,欢迎尝试👏。

让你从每次 vibe coding 中学到真东西,而不只是无脑确认/继续。

觉得有用的欢迎给这个项目点个✨

有问题的或者觉得可以改进的地方的欢迎提 pr 和 issues 。

620 次点击
所在节点    分享创造
10 条回复
409164
10 小时 57 分钟前
推广发推广
409164
10 小时 57 分钟前
不然你以为推广区设立着是干什么的?屏蔽这个节点就是为了不看到你们 vibe 的这些垃圾项目
JustBecause
10 小时 56 分钟前
同意楼上,先不论垃不垃圾,推广就去发推广分类里面
attention
10 小时 27 分钟前
@JustBecause 好的,请问下具体在哪里修改分区呢?
attention
10 小时 17 分钟前
@409164
首先对于这个帖子发的分区错误不好意思确实不太清楚,开源项目免费的要发推广,抱歉。

然后对于你的回复我觉得很莫名其妙,首先我认为在这个论坛我没有得罪过任何人?
其次直接骂别人垃圾项目是何意味?

碰到你这种也算是我倒霉了
attention
10 小时 8 分钟前
@attention 已发管理求助帖,申请移动分区
对于发错分区的情况再次致歉,打扰各位的信息流了.
ChaseNature
8 小时 23 分钟前
@attention 兄弟 看淡点 我喜欢你的项目
MuyuQ
7 小时 36 分钟前
有趣的项目,
已 start 。
limusi
7 小时 21 分钟前
项目还是挺用心的; 用来写代码是不是大材小用了, 可以卖给卖课的, 作为作业系统
kuse2001
7 小时 8 分钟前
和楼主一样,有类似的想法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1218567

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX