当AI学会了写代码
——从对话辅助到自动生成的工程辅助之路
一、最初的认知:AI只是一个"高级搜索引擎"
几个月前,我对AI写代码的理解还停留在"可以帮我查查某个Python函数的用法"或者"帮我优化一下这行正则表达式"。那时候我觉得,AI写代码和百度搜代码的区别,无非是AI更会"编"一些,查到的代码能直接用而已。
转折发生在一个偶然的瞬间。那天我需要写一个批量处理Excel文件的小工具——把某省几十个项目的成本分析表合并成一个总表,还要做分类汇总。这种活以前都是手动折腾半天,那天我试着把需求用自然语言描述给AI,它直接生成了一个完整的Python脚本,我复制到命令行运行,几秒钟就搞定了。
就是那一刻,我意识到AI写代码这件事,已经不是"辅助查资料"的层面了,而是"直接替你干活"的层面。
二、从"要代码"到"用工具"的质变
让AI写一个脚本,本质上是在干一件事情:把人的意图翻译成机器能执行的指令。这件事以前只能由程序员做,现在AI可以代劳了。但真正的突破,不仅仅是AI能写代码,而是AI开始学会"使用工具"。
在我的智能体体系里,有一个叫MCP(Model Context Protocol)的协议层,它让AI具备了执行外部工具的能力。举个例子:
> 人:"把这个文件夹里所有的表格合并成一个"
> AI的大脑(大模型)分析任务 → 分解步骤
> → 调用"终端工具"列出文件夹内容
> → 调用"Python工具"编写合并脚本
> → 调用"文件工具"保存结果
> → 返回给用户:"已处理完成,共合并15个文件"
看到区别了吗?以前是"我给AI一个需求,AI给我一段代码,我复制粘贴运行,再把结果告诉AI"。现在是"我告诉AI一个目标,AI自己调用工具、自己写代码、自己执行、自己给你结果"。在这个链条里,人从"执行者"变成了"决策者"——你只需要说你要什么,AI帮你把中间过程全部搞定。
三、踩过的坑:翻车才是最好的老师
AI写代码当然不是万能的。以下几个坑,我是实打实踩过的:
3.1 幻觉代码
AI有时候会写出使用了不存在函数或库的代码。比如调了个pandas.DataFrame.auto_merge()——这个函数根本不存在,是AI自己"发明"的。解决方案是:永远不要直接复制粘贴跑,先让AI加try-except,或者让它跑完告诉我执行结果。
3.2 上下文遗忘
在一个长对话中,AI写了一个复杂的脚本,运行出错了。你告诉它"X行有个bug",它修改了X行,但把第5行之前已经写好的逻辑也改了。解决方案是:让AI只专注于修改指定部分,或者把长任务拆分成多个短对话。
3.3 环境差异
AI给出的代码在自己的环境里没问题,但在我的WSL和Windows混搭环境里路径分隔符、编码格式、权限都不一样。比如Windows路径是D:\data\,WSL里是/mnt/d/data/。解决方案是:在prompt里把环境信息交代清楚——"我在WSL Ubuntu里跑,Python版本3.10,需要处理的中文文件编码是gbk"。
四、AI写代码的实际应用场景
在工程领域的这几个月,我把AI写代码的能力用在了以下几个最有价值的方向上:
- 数据清洗与报表自动化:把分包队伍报上来的格式各异的Excel表格,统一清洗成标准格式,自动生成汇总分析报表。搞定这个,每个月的经济活动分析会少熬三个夜。
- 文档批量处理:批量修改Word文档的页眉页脚、页码格式;把几十份施工日志转换成标准排版。以前分包给文印店干,一次几百块;现在几秒钟搞定。
- 自动化测试脚本:在智能体的日常运维中,写自动检测脚本,每天定时检查各个服务是否在线、磁盘空间是否够用。省去了每天登录检查的重复劳动。
- 数据可视化:把成本数据和进度数据直接生成HTML图表,嵌入日报周报里。不需要学什么ECharts,告诉AI"我要一个柱状图,X轴是月份,Y轴是实际成本vs计划成本,红色显示超出部分"——几秒钟出图。
五、最关键的一课:从"写代码"到"纠代码"
如果用一句话总结这几个月来的感悟,那就是:AI写代码的能力越强,人的"纠错能力"就越重要。
以前我自己写代码,是一个字一个字地打,每一行都知道为什么这么写。现在AI帮我写,我成了一个"审核者"——看它写的代码对不对、效率高不高、有没有安全隐患。这种角色的转变,对人的要求反而更高了:你不需要会自己造轮子,但必须能判断AI造的轮子跑不跑得起来、安不安全。
这就像一个项目经理不需要会亲自绑钢筋、支模板,但他得知道绑得对不对、支得稳不稳。AI就是你的施工队,而你是质检员兼项目经理。
总结:
AI学到的最重要的技能,不是写代码本身,而是"用代码解决问题"的方法论。而我们学到的最重要的技能,是如何让AI更好地帮我们解决问题。人和AI的关系,不是替代,而是协作——你负责想做什么,AI负责怎么做。这个分工一旦理顺了,生产力释放的程度,远超你最初的想象。