[{"data":1,"prerenderedAt":97},["ShallowReactive",2],{"content-query-nZKas2ntGl":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"lang":10,"date":11,"categories":12,"tags":14,"body":18,"_type":91,"_id":92,"_source":93,"_file":94,"_stem":95,"_extension":96},"\u002Fblog\u002Fwhen-ai-started-writing-my-code","blog",false,"","我是从什么时候开始不写代码的","我记得还挺清楚，是 2025 年 2 月。那时候我用的是 Cursor，有新功能要做，我就直接打开它，先说说自己想做什么，代码从第一行开始就交给 AI 写。","zh-Hans","2026-07-05",[13],"Computer technology",[15,16,17],"Chinese & 中文","AI","Experience",{"type":19,"children":20,"toc":88},"root",[21,28,33,38,43,48,53,58,63,68,73,78,83],{"type":22,"tag":23,"props":24,"children":25},"element","p",{},[26],{"type":27,"value":9},"text",{"type":22,"tag":23,"props":29,"children":30},{},[31],{"type":27,"value":32},"其实我从 2022 年就开始用 AI 了。不过早期还是自己写得多，写到一半卡住了，才去问它。到 2025 年 2 月，这个习惯已经反过来了。我会先把任务交出去，等它写完，再看结果。现在回想起来，好像也没有哪天专门下过决心，说以后再也不写代码了。只是一次次用下来，觉得这样更顺手，就这么用到了现在。",{"type":22,"tag":23,"props":34,"children":35},{},[36],{"type":27,"value":37},"刚开始用 Cursor 的时候，代码虽然不用自己敲，手上还是挺忙的。一个功能得先想好怎么做，写个设计，再拆成几件小事。每一步要给它哪些背景，提示词怎么写，我都得琢磨。任务给大了，怕它理解偏；说得太细，又像是自己先在脑子里把代码写了一遍，再翻译成话告诉它。",{"type":22,"tag":23,"props":39,"children":40},{},[41],{"type":27,"value":42},"它做完一件，我看一眼，再派下一件。等代码都改好了，还得单独交代一遍，让它做 review，把刚才动过的地方重新检查一下。那时候我花了不少心思做提示词工程，想把要求写得周全一点，省得后面来回补。有时候一个功能没多复杂，怎么把它交代明白，倒让我想了半天。",{"type":22,"tag":23,"props":44,"children":45},{},[46],{"type":27,"value":47},"后来我开始用 Claude Code，也逐渐用上了 Plan 模式。这一步对我来说挺舒服的。开工之前，我能先看看它准备怎么做，我们可以在计划里把事情聊明白。比如我只想改一个地方，它列了三个，我就趁代码还没动，把范围收回来。有些地方我自己也没想清楚，看了它的计划，才发现还差一个决定。",{"type":22,"tag":23,"props":49,"children":50},{},[51],{"type":27,"value":52},"我慢慢觉得，先聊这一轮很有必要。有时候我脑子里的想法听起来挺完整，真要写成几条明确的要求，就会冒出一堆问题。这个功能做到哪儿算结束？遇到特殊情况怎么办？哪些可以留到以后？这些事在开工前说清楚，后面就少很多“等一下，我想的其实是另外一种”。",{"type":22,"tag":23,"props":54,"children":55},{},[56],{"type":27,"value":57},"再往后，Codex 我也用上了，和 Claude Code 搭着用。随着模型越来越强，有些以前要反复交代的话，我发现可以省了。跑测试报错，它会自己去找原因，改完再跑；写完代码，也会接着检查。以前我得单独指挥 debug、review，后来有时我刚想起来这件事，它已经把处理过程和检查结果一起交过来了。",{"type":22,"tag":23,"props":59,"children":60},{},[61],{"type":27,"value":62},"这种变化是用着用着才感觉出来的。起初我还习惯性地准备下一条提示词，后来发现，它自己已经在往下做了。我需要接话的次数少了，也就能把注意力放回产品本身，想想这个功能用起来顺不顺，有没有必要做得这么复杂。",{"type":22,"tag":23,"props":64,"children":65},{},[66],{"type":27,"value":67},"现在做一个任务，我基本上只需要在一个对话里把事情交代清楚。先跟 Agent 聊想法，聊到差不多了，就把任务计划写成文档。要做什么、先做哪几件事、做到什么程度算交付，都记在里面。后面有调整，也把文档一起改掉。过一阵子再回来看，我还能知道当时为什么这样定。",{"type":22,"tag":23,"props":69,"children":70},{},[71],{"type":27,"value":72},"接下来，主 Agent 会按计划安排工作流，让不同的子 Agent 去执行，再安排 review。我中途想看看，就打开试一下。哪里觉得别扭，或者突然有了新想法，还是回到同一个对话里说。我不用再把每一件事从头交代给每一个 Agent。",{"type":22,"tag":23,"props":74,"children":75},{},[76],{"type":27,"value":77},"回过头看，2025 年 2 月以后，我敲代码的时间已经少了很多，但让 AI 顺利把活做完，我还是摸索了挺久。最开始要想的是，这段代码怎么让它写对。现在我更愿意在前面多聊一会儿，把自己到底想做什么讲清楚。很多时候，写到一半要返工，也是因为我看到成品以后，才发现自己原来想要的是另一种体验。",{"type":22,"tag":23,"props":79,"children":80},{},[81],{"type":27,"value":82},"还有个挺好笑的变化。以前是它做完一步，我就得发一条消息。现在一份计划交下去，几个 Agent 去读代码、跑测试、改完再互相检查。我在对话里说的话越来越少，它们在后台干的活却越来越多。",{"type":22,"tag":23,"props":84,"children":85},{},[86],{"type":27,"value":87},"以前琢磨半天提示词，想着下一句该怎么说。现在计划刚交代清楚，又得看看 Token 还够不够用。",{"title":7,"searchDepth":89,"depth":89,"links":90},2,[],"markdown","content:blog:when-ai-started-writing-my-code.md","content","blog\u002Fwhen-ai-started-writing-my-code.md","blog\u002Fwhen-ai-started-writing-my-code","md",1793885408849]