网易三面:Code Agent 是怎么改代码的?三代方案演进与四个致命细节 文章目录前言一、模型的"眼睛"和"手"是分开的二、第一代:全文件重写三、第二代:Diff / Patch 格式四、第三代:字符串精确匹配替换五、字符串替换的四个致命细节六、工具签名设计七、从架构师视角看编辑工具的几个工程取舍八、面试话术:考官想听的是什么总结前言前段时间去网易面试,三面时面试官看了眼简历,说:👔 你写看过 Claude 源码,那我问一下——Code Agent 是怎么改代码的?我当时愣了一下。确实看过一些,但主要看的是上下文压缩和记忆管理,关于文件编辑的具体机制,只知道大概有个字符串替换,细节没怎么研究。我硬着头皮回答:“应该是模型生成一段替换指令,然后工具去执行字符串匹配替换?”面试官点点头,追问:👔 那如果文件里有五处一模一样的代码,工具怎么知道改哪一处?我想了想说:"根据上下文定位?"面试官继续问:👔 那如果模型看到的文件内容是十轮对话之前的,中间已经被改过了呢?这下真卡住了。回来认真研究了一下,发现这个问题比我想的要深得多——它不只是"字符串替换"那么简单,背后涉及三代方案的演进和好几个容易踩坑的边界情况。读完这篇文章,你能搞明白:模型和文件之间的"翻译层"——模型只生成文本,改文件靠工具三代编辑方案演进——全文件