一个小项目,把项目说明 PROJECT . md、用户故事 PLAN . md、原型图 prototype ,都给到了 AI ( opus 4.5 ),希望 AI 能一次性长时间编码。
AI 倒是吭哧吭哧编码了 20 分钟,我满怀期待,结果一看,4 个前端 tab 页对应的 4 个功能,基本不能用。感觉就像一个不负责任的人,连自测都没有测过!
AI 编程出现的问题,并不是不能理解需求。第一次给它原型图,它从中抽取的功能点非常准。但实现时,有几个问题:
1 是有些要求它直接忽略了。比如我希望渲染一个节点网络,用户可以点击某节点,展开和收起它的相邻节点。这个功能描述,在原型中和 PLAN 中都是有的,但 AI 做的时候似乎直接忽略了。也许它做了,但功能没有用,看过程,它也是有自测的。
2 是prompt 不能描述所有的信息,没描述的 AI 可能就考虑不到。比如给每个节点添加了一个+号按钮,用来表示收起和展开,但拖拽节点时,这个+号按钮并不会跟随移动。
总结一下就是,长程编码任务,AI 不能很好的完成,总有挂一漏万的感觉,虽然都说要小步快跑,但是毕竟麻烦啊;而隐含的常识,AI 有欠缺,感觉必须非常详细的说明。
我现在对 AI 的感觉是,AI 修 bug ,编码单个功能,感觉是不在话下的。但涉及到长程的、意图推测的,就不太行。
回归到第一性原理,我尝试把 AI 编码过程,看作是一个在巨大的空间中,寻找解的过程。一个编程任务,就是要在这个巨大的多维空间中,寻找到一个解。
一旦从这个视角看,很多问题就容易理解了:
约束
解的空间是巨大的,要想办法快速找到解。
约束是在给定的空间内求解,剪枝,缩小搜索范围。
如果约束越多,解空间越小,理论上应该更容易找到解。但实践中:
约束太少 --> 解空间太大,AI 乱跑,找到的解不符合要求;
约束太多 --> 可能根本没有解(约束互相矛盾);
架构
因为一个任务,可能有非常多的解。
不同的架构其实对应了不同的区域的解。架构其实是将解的求解范围,约束在了一个范围区域。
所以架构很重要,要早确定。一旦确定了架构,后续的求解过程,就都在这个范围区域内进行了,除非用户手动要求调整架构,求解才会「经由用户指定的路径」跳转到另一块区域。
验证
验证和反馈,是一种修正的信息,让现有的解结合修正的信息,往正确的解集上靠。让不符合的解,走向正确的解。
全局和局部
代码的各个部分之间存在耦合,一些修改,可能会影响到很多地方。问了 AI ,说在修改一个"全局相关"的东西(效率、架构)时,实际上是在高维度上移动,这会同时影响很多低维度的投影。
而局部的 bug 修复,或单个功能的实现,是在低维度上移动,也就是在局部范围内寻找解,它的影响范围有限。
vibe coding 实践的对应物
Rules = 显式的全局约束,定义解空间的边界;
Skills = 预定义的子空间/模式,是已知的"好解区域";
Examples = 锚点,直接在解空间中标记"这里有解";
隐性知识
人类的隐性知识,其实也是对解的一种筛选或者约束。AI 没有这些隐性知识,或者没有实际用到它们,那就意味着求得的解不符合这些隐性约束。
不过,抽象的思考总是很容易,实践起来困难重重。
从上面的分析,得到的都是些 trivial 的东西,我感觉「架构要早行」这个印象比较深刻。但总的来说,仍然没有得到一个最佳实践。
最佳实践到底是什么啊?!
1
cat9life 14 小时 42 分钟前
从一开始你就错了。
目前还做不到很长时间的自主编码,不要在这方面浪费你的精力除非你就是 ai 行业大佬在探索边界。真能够“自主”Manus 就卖不到 20 亿刀乐。 |
2
chtcrack 14 小时 37 分钟前
目前最佳途径是增加你自己的认知,知道大模型的上下文是有限的..记住这点..
|
3
RotkPPP 14 小时 36 分钟前
现在这个话题算是 v 站日经了
|
4
jmliang 14 小时 32 分钟前
让 AI 先指定计划,分阶段完成,每个阶段自己验收一下,有问题就让 Ai 改,没问题继续执行后续计划
|
5
hi2hi 14 小时 21 分钟前
创建 project.md ,AI 推到 plan.md ,人工预审 plan.md ,提出调整意见;根据项目复杂程度,决定是否拆分更细化的 plan-*.md ;
开始 ai coding 先让 AI 检测本次 coding 是否符合 plan ; 人工查看本次 coding 重要模块; 担当测试工程师,开测,开始和 AI 掰头 |
6
yrom 13 小时 30 分钟前 哪有什么「最佳实践」这种银弹。比如 Cursor 的开发团队,他们研究 Agentic Coding 可以算顶尖吧?最近拿出来吹的让 GPT-5.2 连续运行 7 天写出来的几百万行代码的浏览器,不说很多大佬扒它裤子看本质就是个「调包侠」,烧这么久 Token 出来的玩具,开源放出来工程质量一塌糊涂,编都编不起来
|
7
sillydaddy OP @yrom 感谢分享,这个新闻我得看看去。
|
8
sillydaddy OP @hi2hi #5 前期基本是按照你说的,plan 做好了,大概的用户故事都是有的,但就像主题里说的,没有做到特别细,但就是很多没有明确的,AI 就会掉链子了。我想尝试的还是希望减少人工介入。
|
9
hi2hi 13 小时 5 分钟前
@sillydaddy 这一方面还是差了点,或者说,还是预期太高了;
超长的上下文整理的,整个项目不断产生的记忆自动化向量处理等等。。。。还是很难,目前 再等两年,你现在往前看看,已经算是翻天覆地的变化了( |
10
doraemonki 12 小时 54 分钟前 via Android
基础原理:
一次任务占用的上下文越少,AI 越聪明!!! 一次任务占用的上下文越少,AI 越聪明!!! 编码之前做写好分阶段计划,写计划的时间占至少占了 60% ,code review 修 bug 时间占 30%,实现代码是很快的。 最初版的计划必须不断改,起码让 AI 改 10 轮吧,不断质问 AI 这计划合理吗,这计划有问题吗,不考虑兼容性这计划最佳设计应该是怎么样的(不同方式提问很有不同角度的惊喜) 另外跟人一样,设计代码应该追求语义清晰,代码可读性与良好的项目结构能帮助 AI 快速定位修改位置。 请直接使用 opus4.5 等最聪明的模型,搭配严格的项目规范+测试,保证你 vibe coding 直接起飞。 参考 vibe coding 最佳实践之约束带来自由 https://www.v2ex.com/t/1182388 |
11
Cyron 11 小时 57 分钟前 via iPhone 不清楚你有没有在一开始把架子搭好,还是完全空白的项目开始
我一般会预估这个任务的 context 用量,如果超过了 50%容易导致上下文腐坏,agent 会迫于压力敷衍了事 cursor 之前发了个博客说各家都在做上下文工程,这个问题会逐渐得到改善 建议就是,先搭好架子,让 agent 专注实现;再就是别指望一次生成,先拆 task ,然后分 session 逐个完成;另外可以引入 playwright mcp ,让 agent 获得反馈 我们团队是这样做的,可以看看我之前的分享 https://www.v2ex.com/t/1183407 |
12
JoeJoeJoe PRO 现在的变化太快了, 今天的最佳实践, 到明天说不定就不是最佳了.
就是每天学一点点小技巧, 能用上, 觉得好用就算赚了 如果在未来和年轻人回忆现在, 我们也可能只是说一句: 你们赶上了好时候, 我们当时的 AI 辅助可复杂了! |
13
y1y1 11 小时 45 分钟前
写点小函数差不多得了
|
14
wszzh 11 小时 3 分钟前
最佳实践就是实践
|
15
dnfQzjPBXtWmML 10 小时 59 分钟前
没有
不过每次只生成一个模块可以提高成功率,改乱了进了死胡同也可以直接要求 LLM 全部删掉重写,重写的代码往往是没问题的 |
16
Sylphiette 10 小时 56 分钟前
模型技术和 Agent 生态都还在发展,而且发展的还很快
现阶段可以了解下 https://github.com/github/spec-kit |
17
sillydaddy OP @doraemonki #10 测试 driven 这个马上安排上,即使是 UI 界面这种,也搞一个文字版的测试用例,看看效果怎么样。
@Cyron #11 感谢分享,现在正弄 Cursor 的 rules ,正用的上。 @JoeJoeJoe #12 是啊,我太想一口吃个胖子了。 @Sylphiette #16 好的,spec 也给安排上。 |
18
AEDaydreamer 10 小时 6 分钟前
现在的 coding agent 还是每次让它 plan1-3 个模块好一点. 整个系统就是丢三落四.
|
19
meeop 9 小时 51 分钟前
当然是像自动驾驶一样,全自动完成全部工作,作为人只需要提出需求,监督过程,审查结果,而且通常情况,这部分也不必须做,你只是发布命令和想法即可
目前的技术还做不到,小项目勉强能做到,不过目测非常快,很可能今年或者近几年就能无限接近上述目标 所以,长远看,这个问题也没必要问,等 agent 进化即可,反正你现在做的所有改进,最多几个月内 agent 就能追平,几乎是纯无用功 |
20
myluke 7 小时 19 分钟前
我很认同这个哥们说的和比喻。
AI 是能力的放大器,更是建筑师的包工头 怎么说? Vibe Coding 软件真的要走得远,本质是你要理解什么是 Vibe Coding Vibe Coding 和建筑师很像 你终于有一天是建筑师了,只用坐在办公室了,不用亲自打地基、了解材料热力学特性、走网络、做软装和外墙造型了,你只用坐在办公室规划图纸就好了 Vibe Coding 的最后就是建筑师职业 但是一个优秀的建筑师,以前肯定知道怎么造楼的方方面面,跑过无数次工地,被各种大的小的事情坑过无数遍,无数遍经验造就了设计师的能力 编程也是一样的,你只有趟过无数个坑,你才不会被 AI 坑到,你才会在 AI 走入死胡同的时候拉它出来,给它新的方向,你才会虽然不看代码,但是看表现就能知道它代码结果哪里没设计好 而这一切都源于你做过,你擅长,你知道怎么收尾 AI 本质就是在你知道的认知领域,按照你的指挥,帮你干体力活,如果你已经做过很多模块,新的软件只是把过去的模块重新组合创造,那么 AI 很合适,因为它像一个任劳任怨的同事再给你干苦活累活 如果你没有干过建筑师,你才盖了一个毛坯房,你就觉得自己牛逼,但是你会发现,你盖到 2 楼你就盖不下去了,你不知道怎么通过合适的提示词控制 “AI 这棵树怎么精确生长”, 你的业余的话只会给 AI 增加过多的冗余代码,直到有一天,上下文超过 AI 的脑容量,你再说什么它都是糊涂的 本质 Vibe Coding 到商业化的方法途径就是三个: 1. 自己曾经是商业化落地的程序员,蹚过无数坑 2. 新的软件本质是新的架构,大脉络一定要清晰,脉络不清晰,楼盖不高 3. 骨架改好了,其实剩下的事情很简单,在某一个维度(约束上下文),人类做测试,AI 微调,知道水电、软装和外墙装好 |
21
rick13 6 小时 21 分钟前
现在没有最佳实践
|
22
cskeleton 5 小时 58 分钟前
还能继续拆,我让 AI 写一个开发计划,然后拆分成 n 个步骤,每个步骤写一个 workflow ,然后让 AgentA 写一个,写完让 B 来 review ,但是这样人工介入比较多了,拆太细 AI 写得也快,还达不到一口气写 20 分钟这种。倒是很后期要修改或者 debug ,cursor 能一口气跑几 M tokens 。
|
25
sillydaddy OP @cskeleton #24 我看到 cursor 有 subagent ,是不是这个呢? subagent 一般怎么用啊,比较困惑这一点。如果是为了减少单个对话的上下文,是不是每个子任务都让 subagent 去做呢?
|
26
nijux 55 分钟前
可以尝试下 Google 的 Antigravity 教程 https://codelabs.developers.google.com/getting-started-google-antigravity?hl=zh-cn#0 然后试着 https://codelabs.developers.google.com/building-with-google-antigravity?hl=zh-cn#4 做个小应用找找感觉
|