2025年9月

AI编程到今天,应该用了已经快一年时间了。慢慢的逐渐考虑它用于比较复杂的项目。
什么是复杂的项目?

  • 人工智能要理解定制的框架、开发库,而不是公开的那些。由于定制的框架和开发库缺乏公开文档,在人工智能的训练过程中,肯定不会有任何相关的资料做训练。如何能正确的使用这些框架和开发库,这是第1个复杂所在。
  • 人工智能要理解ui界面的设计,并且精确地按照涉及生成软件界面。正常情况下,ui界面一定是使用画图工具来做的。但是人工智能做ui界面,首先就遇到了内容一致性问题和将文字置于图像上的问题无法完美解决。这是第2个复杂所在。
  • 人工智能对文档中缺乏的部分,会通过幻觉自作主张的进行脑补。并且以脑补的内容作为基础填充代码的其他部分。如果没有早期发觉,它可能会污染项目的很多代码文件,导致代码最终难以修复。这是第3个复杂所在。
  • 一旦项目中的文档代码过多的时候,实现一个功能就需要引入非常多的内容作为参考才能开发。在人工智能上下文token有限的情况下,可能会导致人工智能难以正确回答。并且给人工智能输入过长的上下文会导致其注意力不集中,最终并不会完全遵循上下文的内容,甚至会遗漏很多部分。
    尝试去实现复杂的项目,就要解决上述的问题。
  • 对于定制的框架和开发库,可以先让人工智能去阅读整个开发库,去生成对应的开发文档。后面通过上下文带入开发文档,方便开发。还可以先写一个框架代码,提前将定制的库引入,这样人工智能会先阅读框架代码。并去顺着框架代码阅读引入的库。但对于api调用这种情况,还是要从文档入手。或者先让人工智能写一个api调用的库,再去写其他代码。
  • 对于现阶段人工智能还不能很好地生成图形ui设计的情况下,可以先让他设计文字形式的ui图。在文字图中标注ui元素的长宽。
  • 对于幻觉脑补,则需要对人工智能生成的代码进行立即测试,及早发现问题,避免扩散。避免生成不能测试的代码。现在还好的是,多数ai编程工具可以回退。
  • 对于引用上下文过多的情况,可以先进行模块化划分。已经划分模块的,可以将较大的模块划分成更小的模块。在每个模块中引用相对较少的上下文,并且在当前模块中实现一个较小的接口代码,其他模块引用这个接口代码,避免大模型每次都需要阅读模块代码的所有细节。
    总的原则是要把复杂的项目拆分成大模型可以很好遵循的小项目,小项目的标准是引用的上下文要少,实现的代码要少,少到大模型可以很好遵循为止。当然目前这个度还不是特别好把握。

看了把科学带回家的一篇文章名字叫:为什么在沙发上睡着很容易,在床上睡着很难。我有一个洞察是:睡不着的原因并不是脑袋里想事情,而是对未知的焦虑。相反来说,能睡着的原因是略带新鲜的完全掌控感。
人的大脑几乎是无时无刻都在想事情的,很少情况会脑袋空空如也地发呆。即便对于躺倒就睡的人在躺倒的前一刻,至少也想着要盖被子,枕枕头。而现代人的生活一般都是连续的。今天应有未做完的事情,需要明天继续做。明天怎么完成这个事情的方法,今天还没有想出来。因为工作是充斥了整个白天一整天的最主要的事物,所以到了晚上睡觉前,那些没有完成的事情就会在脑海里翻转出来,寻找解决方案。但无论你找得到方案还是找不到方案,都需要第2天白天去实施,没法躺在床上尝试的。这就意味着你无法检验这个方案到底是否可行。所以最终不管你找不找得到方案,都会焦虑的睡不着。因此归根结底,你在睡觉前脑子里想的这个事情是无法获得完全掌控感的。
所以这里的第1个洞察就是要获得完全掌控感。
那么为什么要略带新鲜呢?如果在思考的事情非常乏味,很容易丢失注意力,而转回到白天的工作上去。如果思考的事情。非常新鲜有趣,会导致自己忍不住要持续的想下去,也会睡不着。
这里就有第2个洞察,略带新鲜,目的是牵引注意力在完全掌控感之中。同时又不让注意力沉浸在新鲜感中。
由于新鲜是相对的。所以同一种方法可能对不同的人有不同的适用。