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

6 月 7 日
 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 。

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

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

碰到你这种也算是我倒霉了
attention
6 月 7 日
@attention 已发管理求助帖,申请移动分区
对于发错分区的情况再次致歉,打扰各位的信息流了.
ChaseNature
6 月 7 日
@attention 兄弟 看淡点 我喜欢你的项目
MuyuQ
6 月 7 日
有趣的项目,
已 start 。
limusi
6 月 7 日
项目还是挺用心的; 用来写代码是不是大材小用了, 可以卖给卖课的, 作为作业系统
kuse2001
6 月 7 日
和楼主一样,有类似的想法
attention
6 月 8 日
@limusi 佬,你是第二个这样说的了,哈哈哈。
有人建议我做成考研考公的。
看来大家觉得这一块可以发展发展,主要我考虑的是相关软件和开源项目对于这一类痛点问题,是不是做的比较成熟了,还值不值得进一步开发,做成相关项目/软件
attention
6 月 8 日
@MuyuQ 感谢您的支持
attention
6 月 8 日
@ChaseNature 感谢支持,只能说世界大了什么人都有。
不知道为啥敌意这么大,这人我也没惹过他。
发错分区确实是我的问题,直接说一声就好,就像上面那位朋友提醒的,发错分区了。
莫名其妙骂别人用心做出来的项目是垃圾,真是理解不了。
attention
6 月 8 日
@kuse2001 欢迎用起来,哈哈哈👏
limusi
6 月 8 日
@attention 因为我是过来人 :)
从 UI 可以看出你的巧思, 内有乾坤; 想必日常生活工作细节也是 organized 秩序控
但是可能曲高和寡, 如果用户已经在你船上,可以玩得很好各种 wow, 但是大部分人没有这个 mindset 先跳到你这首船.
除非有人逼他, 反人性的作品, 通常这种命运...
所以你那个建议你做成考试项目的人,很有洞察力, 哪些考试者就是为了单一目标要反复自驱的, 找几个目标用户采访采访..
反正我是不会用,写完代码能运行,就是通过考试了... 我不想复习概念了,属于 over learning
你找找有记笔记习惯的人,这些人可能会真的用起来.
attention
6 月 8 日
@limusi 感谢指点,我思考下这一块🙏

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

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

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

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

© 2021 V2EX