本周讨论:基于文档的ai coding尝试
背景
在了解完langchain的大致概念、claude的使用技巧之后,我就想着怎么了解的更深入?我觉得可以分为看和做两个上面 我在boss直聘上看到很多关于ai岗位的要求,ai漫剧(AIGC)、用langchain做agent、rag系统等,然后我还经常看到有关Harness Engineering的讨论 有赞[1]、阿里云对ai coding的思考[2]、一篇拿wiki和rag做对比的文章[3],让我思考我应该做什么能加深思考? 我对技能这种能影响agent的方式感到好奇,而且我觉得以个人来说claude code已经是很厉害的agent了,自己重搭一个agent动力不大,并且我希望能做一个我会用的东西,这样我才有动力不断迭代它 于是我想到了做一个b站推荐助手,我看b站,总感觉这个推荐不满人意,我也明白平台不可能给每个人的喜好都做得那么细致,所以我在想能不能用文档把我的偏好记录下来,然后自己做一个b站视频推荐,这样不断深化b站视频推荐的就越准,而且理论上来说所有平台推荐都可以这样
尝试一:给代码生成文档来优化ai coding
我尝试了一下有赞说的给项目做文档从而帮助ai coding,我尝试了下用ruoyi项目在有无做文档的前后问了同一个关于登录的问题, 从时间来看有文档的30s明显快于之前的5分钟,但是从效果来看,感觉claude code的全文搜索要比文档做的要细要准,当然这有可能是模块太简单了,如果是跨项目复杂流程的话、文档按照有赞的规范只做抽象细节只从代码里出的话可能会更好, 而且这是有前车之鉴的 因为这其实就是以前手写的文档变成ai来整理了而已 就是文档的结构和迭代方法需要改进,
我以前离职前做过每个我接手的项目的文档 包括主要逻辑图、数据结构图 但那些是人看的 而且需要手动维护 现在看基于文档的ai code 很轻松的方式就能做询问、整理 不由得让人唏嘘 只是一年 ai就把传统开发流程推翻了 所以这就是要紧跟技术的原因


尝试二:b站推荐助手
我的想法是claude code+浏览器自动化+偏好文档,我打算让程序根据我的偏好文件关键字去b站上搜,然后再根据我的偏好文件注意点去筛除我不喜欢的视频,我对最后生成的推荐视频做反馈让claude code更新到偏好文件里,这样就能不断优化偏好文件,推荐的视频就能更准了
最初的想法是这样的

于是我让claude code给我做了一版,大致长这样

但很明显里面有我不喜欢的视频,虽然我喜欢动物,但是我不喜欢蛇这种视频,于是我就不断的反馈我的偏好,我的偏好文件渐渐变成了这样

我在不断尝试的过程中发现了,先做一个分区的偏好调整,最后再做总和更好,还有我不断探索的过程其实就是还原b站的推荐逻辑 所以我不断的思考哪里可以调整
我想了想我的爱好其实和b站首页的分区一样,有明显的边界,这可以用标签来表示,于是我的偏好文件大致由主标签-副标签(喜欢/厌恶)-注意事项、黑名单构成 比如一开始api是ai自己在网上找的,我后面发现和我在页面上看到的不一样,于是就发现可能复用b站页面的搜索会更好, 我发现重复生成日报视频都是固定的,于是加了个推荐过就减少推荐分的逻辑
改着改着我就迷茫了,忘记了初衷是什么,现在代码是什么样子我一脸懵,逻辑、细节、业务流程我只能自己看代码,还有可能看不全, 这让我想到了我以前做开发的时候,当时也是产品改需求改了又改,搞得我的代码一团乱特别烦,我现在比较有体会,毕竟刚开始做的时候谁也不知道会遇到什么。
于是我觉得应该在项目建立初期就建一个文档 然后对着文档修改一版细节 然后让代码同步起来 也就是说我来准备好它的功能细节、实现方案 它来做开发、验证 这样不断循环找出最好的效果 以免丢失初心 我现在做过一版代码了 我明白了一些组成部分和需要注意的点 我希望做一个v2版本 用文档的方式来开发这个项目

然后在回答完它22个问题之后,它终于开始搭框架了,我也在回答的过程中不断细化我的业务,渐渐开始给出明确的实现方案了

搭完之后大致是这样的


这个v2版本我还没有完整做完,它的模块大致划分为api获取、偏好体系、ai判断、日报渲染、更新反馈,我对它的想法是每个模块做方案验证与记录,最后记录好v1版的功能迭代项来落具体实现文档与代码,然后找出问题、继续研究与记录,再做v2版功能项的文档记录与代码实现,这样不断迭代下去,可能就能避免做着做着就迷茫了的场景
这种做法没有实验过适不适合企业高复杂项目, 我觉得我和有赞的文章的区别是有赞更多的是对存量代码的文档化来提效ai coding,所以他提出了跨项目的解决方案git submodule、workspace-app-context、文档自动更新,他专注的是架构,我专注的是效果、迭代、细节实现
后面可能会继续看这个项目做的效果,也可能看看基于文档的ai coding对传统java开发的提效效果会怎样,也可能去尝试做agent
漫画推荐
《悲惨世界》

最近读的《树语》,开头还行但是后面就有点迷茫了,看豆瓣评论好像都是这种感觉,于是放弃了重新找书看。看到了《罪与罚》、《悲惨世界》就想起了这本漫画, 我是先看的《悲惨世界》漫画,之后看了《悲惨世界》书,觉得除了大主教、冉、芳汀的部分其他都不太喜欢,所以书没看完。 重看漫画,还是觉得画的很好,书的开头”只要无知与悲惨还在这片大地上滋长,这个故事就绽放着光芒“就很有感觉。感觉对于理想与现实的看法,《悲惨世界》这本书早就有了自己的答案。 看这本漫画感觉很有收获,比较推荐
其他
黑箱子编程
阮一峰的周报里提的黑箱子编程 我现在用claude编程就类似这种 但是从技术提供价值的角度来说 这个方法很实用
链接
[1] 有赞: https://mp.weixin.qq.com/s/NwU98lA_P7LpDdyhhkt-cg
[2] 阿里云对ai coding的思考: https://mp.weixin.qq.com/s/rlIyIIZOXFObNIXbPI7gDg
[3] 一篇拿wiki和rag做对比的文章: https://cloud.tencent.com.cn/developer/article/2658818
夜雨聆风