网易首页 > 网易号 > 正文 申请入驻

代码明明有结构,AI为什么非要当小说读?

0
分享至

去年这个时候,我正在做Eloquence——一个数据可视化的编程语言。Claude Code刚发布,我和大多数开发者一样兴奋得不行。一个能写代码、读文件、跑命令的Agent,未来终于触手可及了。

我立刻把它用起来。然后开始等待。十秒、四十秒。Agent正在代码库里搜索——一个函数名、一处调用、一个引用。Find。Grep。Read。循环往复。有时候找到了,更多时候没找到,再试一次。有时候它确信自己找到了,其实没有,然后自信地改了代码。第二天早上我发现烂摊子:一个重命名的函数漏了三处调用,一个变量到处都改了唯独漏了两层嵌套里的回调,一个"修复"引入了比原问题更糟的bug。


我没怪模型。模型很聪明,它只是在完成被交代的任务:把我的代码库当作一长串无结构的字符流,尽其所能地推理。但越看它工作——越等、越收拾残局——我脑子里有个问题越来越响:为什么我的AI Agent在读我的代码库时,像在读一本小说?

代码不是文本。代码是数据。

眯起眼看任何程序,你看到的是结构。函数嵌在文件里,文件嵌在模块里,模块通过命名空间连接。调用跨越边界,名称解析到定义,类型流过参数。一个文件第412行的符号,与另一个文件第17行的符号有明确关系。这一切都不是暗示,而是显式编码在语法里的——编译器、linter、语言服务器几十年前就懂这些。

代码是图。代码是树。代码本质上是有形状的数据。

你用过的好IDE都知道这一点。所以"重命名符号"不是全局查找替换,而是遍历语法树、更新每一处引用、放过同名但无关的标识符。所以"跳转到定义"毫秒级返回。工具界早就知道源代码有结构。

然后我们把源代码交给LLM——史上最强的语言工具——却要求它像操作小说段落一样操作代码。

这让我很困扰。一直困扰。

有个例子终于让我想通了。想象你在写小说,主角叫Alice。几百页里,你用几十种方式指代她:Alice、she、her、the girl、the heroine、她姐姐起的昵称、第十二章获得的头衔。所有这些都指向同一个人。

现在编辑让你把她改名成Maya。一个以文本为先的LLM会尽力而为:搜索"Alice",替换为"Maya"。但它会漏掉"she",会搞混另一个也叫Alice的配角,会把"Alice in Wonderland"的引用也改掉。它处理的是字符,不是实体。

而结构化工具——编译器、IDE——知道Alice是一个符号,知道它的所有引用形式,知道它的作用域边界。重命名是精确的、完整的、瞬间的。

这就是差距。我们给AI的是文本接口,但代码需要的是数据接口。

过去一年,Coding Agent爆发式增长。Cursor、Windsurf、Devin、GitHub Copilot Workspace——它们都在用同样的基础范式:把代码当作token流,用RAG检索片段,让模型推理上下文。这个范式能工作,但天花板很明显。

看看Agent在代码库里的典型行为:搜索文件名、grep关键词、读取相关文件、猜测关联、尝试修改、验证结果。每一步都是在用文本工具模拟结构感知。就像用望远镜当显微镜——不是不能用,是处处别扭。

更深层的问题是,LLM的上下文窗口再大,也装不下大型代码库的全部结构关系。GPT-4的128K token约等于10万行代码——一个中等项目的几十分之一。而代码的语义关联往往是稀疏且长距离的:一个接口定义在核心模块,实现在服务层,调用散落在十几个前端组件里。这种关系用文本检索很难捕捉。

业界并非没有意识到。GitHub的Copilot正在实验代码图(code graph)集成,Sourcegraph的Cody用LSIF(Language Server Index Format)索引仓库,一些团队在做AST-aware的RAG。但这些是补丁,不是范式转移。

真正的结构性变化需要重新设计AI与代码的交互接口。不是"给我相关文件",而是"这个符号在哪里被定义、被调用、被类型约束";不是"搜索字符串",而是"查询调用图";不是"读取代码",而是"遍历语法树"。

这听起来像回归传统工具,但关键差异在于:传统工具是确定性的、规则的、脆弱的;AI可以是概率性的、灵活的、泛化的。结合两者——用结构索引给AI导航,用生成能力处理模糊需求——可能是更优解。

我现在的做法是混合架构:用tree-sitter解析代码结构,构建轻量级符号索引,让Agent在需要时查询关系而非搜索文本。重命名一个函数时,Agent拿到的是引用列表,不是候选文件。修改一个类型时,它知道哪些调用点需要检查。这减少了猜测,降低了幻觉,加快了响应。

但这也暴露了生态的断裂。每个语言的解析器不同,每个项目的构建配置不同,IDE和CI和Agent各自维护一套理解。没有通用的"代码数据层"让AI接入。

这可能是下一个基础设施机会。就像数据仓库统一了业务数据的查询接口,代码库也需要一个标准化的语义层——不是替代Git,而是让AI能高效地"看见"结构。Language Server Protocol(LSP)是一个起点,但它为交互式设计,非为批量查询优化。LSIF和SCIP是尝试,但采用率有限。

更激进的设想是:如果代码存储本身结构化呢?不是文本文件,而是带有语义标记的AST数据库,diff操作在结构层面而非行层面。这听起来遥远,但Git的底层已经是内容寻址的Merkle树,我们只是在上层用了文本接口。

回到那个困扰我的问题。一年后,Claude Code和它的同类进步了很多——更快、更准、更少幻觉。但底层范式没变。它们仍在读小说,只是读得更快了。

代码是数据。这个基本事实被忽视,不是因为技术不可能,而是因为路径依赖:LLM从NLP诞生,文本是最自然的接口;Git和文件系统统治开发流程,文本是最兼容的格式。但AI Coding的下一个跃迁,可能恰恰需要打破这个惯性。

不是让AI更像人类读代码,而是让代码更像AI能处理的数据。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
73岁车田正美再执笔,圣斗士星矢天界篇第一话正式登场!

73岁车田正美再执笔,圣斗士星矢天界篇第一话正式登场!

坠入二次元的海洋
2026-05-14 18:04:37
父母的无效人脉能让人多恼火?网友:亲戚水电,两代人都踩雷了!

父母的无效人脉能让人多恼火?网友:亲戚水电,两代人都踩雷了!

另子维爱读史
2026-05-14 20:24:27
上海楼市爆了!

上海楼市爆了!

地产观点
2026-05-14 18:00:07
俄总统新闻秘书:只要美国不再把经贸合作与乌克兰问题挂钩,俄愿同美开展商业往来

俄总统新闻秘书:只要美国不再把经贸合作与乌克兰问题挂钩,俄愿同美开展商业往来

极目新闻
2026-05-14 09:58:58
成本超2亿,票房仅41万,收手吧黄渤,别让百亿影帝成一个笑话

成本超2亿,票房仅41万,收手吧黄渤,别让百亿影帝成一个笑话

靠谱电影君
2026-05-14 18:02:24
入朝前夕,毛主席听取林帅建议:换掉13兵团主将!两年后才知高明

入朝前夕,毛主席听取林帅建议:换掉13兵团主将!两年后才知高明

搜史君
2026-05-08 13:00:16
美国胃有多爱中餐?特朗普给出在美中餐馆数据,直呼“惊人”

美国胃有多爱中餐?特朗普给出在美中餐馆数据,直呼“惊人”

澎湃新闻
2026-05-14 21:07:15
醒醒吧中国导演!看完《给阿嬷的情书》,才知资方是影视搅屎棍

醒醒吧中国导演!看完《给阿嬷的情书》,才知资方是影视搅屎棍

秋姐居
2026-05-12 19:26:44
南京一市民在湖边晨练时,发现湖面上有条一米多长的大蛇:这边看到这么大的蛇确实不多见;网友调侃:“白素贞”也出来晨练

南京一市民在湖边晨练时,发现湖面上有条一米多长的大蛇:这边看到这么大的蛇确实不多见;网友调侃:“白素贞”也出来晨练

台州交通广播
2026-05-14 15:50:46
上海乒羽主任:樊振东是国乒独一无二的领军人物 比王楚钦高出一块

上海乒羽主任:樊振东是国乒独一无二的领军人物 比王楚钦高出一块

818体育
2026-05-14 23:56:01
刘和平:蹲过2年大牢却混成副书记,还被百姓称为“青天大老爷”

刘和平:蹲过2年大牢却混成副书记,还被百姓称为“青天大老爷”

云霄纪史观
2026-05-14 17:59:05
三个月交易超7亿美元?特朗普“炒股账本”曝光,硅谷和华尔街巨头一个不少

三个月交易超7亿美元?特朗普“炒股账本”曝光,硅谷和华尔街巨头一个不少

华尔街见闻官方
2026-05-15 05:44:51
从未来可期到万年不红,被卖还数钱的陈瑶,才是娱乐圈一股清流

从未来可期到万年不红,被卖还数钱的陈瑶,才是娱乐圈一股清流

好贤观史记
2026-05-13 14:50:58
5月16日午后开始,连续6天!北京开启多雨模式

5月16日午后开始,连续6天!北京开启多雨模式

新浪财经
2026-05-15 00:25:49
黄仁勋被问英伟达是否会向华为出售芯片:这是个多么奇怪的问题啊

黄仁勋被问英伟达是否会向华为出售芯片:这是个多么奇怪的问题啊

泡泡网
2026-05-14 17:50:15
刚向191国发出通知,大陆转头放行台当局,郑丽文公开力挺一中

刚向191国发出通知,大陆转头放行台当局,郑丽文公开力挺一中

千羽解读
2026-05-14 10:17:47
原来老一辈才是最敢买的!网友:一旦有了条件就开始放飞自我!

原来老一辈才是最敢买的!网友:一旦有了条件就开始放飞自我!

夜深爱杂谈
2026-05-14 20:28:51
枪声响起!小马科斯大势已去,菲军方紧急切割,中菲关系或迎转机

枪声响起!小马科斯大势已去,菲军方紧急切割,中菲关系或迎转机

影孖看世界
2026-05-14 23:06:05
暴涨95%!“最大芯片”公司成功上市!英伟达要当心了

暴涨95%!“最大芯片”公司成功上市!英伟达要当心了

EETOP半导体社区
2026-05-15 07:32:03
特朗普访华代表团集体使用一次性手机,禁止连接中国公共WiFi

特朗普访华代表团集体使用一次性手机,禁止连接中国公共WiFi

桂系007
2026-05-15 00:05:27
2026-05-15 09:07:00
报错免疫体
报错免疫体
一名在需求评审和数据异常中反复横跳的产品运营。
2870文章数 26关注度
往期回顾 全部

科技要闻

两年联姻一地鸡毛,传苹果OpenAI濒临决裂

头条要闻

欢迎宴会座位公开:马斯克黄仁勋与中国企业家同桌吃饭

头条要闻

欢迎宴会座位公开:马斯克黄仁勋与中国企业家同桌吃饭

体育要闻

争议抽象天王山,和季后赛最稳定中锋

娱乐要闻

何九华官宣当爸!全程不提孩子妈

财经要闻

特朗普的北京时刻

汽车要闻

双零重力座椅/AI智能体/调光天幕 启境GT7内饰发布

态度原创

家居
时尚
亲子
公开课
军事航空

家居要闻

精神奢享 对话塔尖需求

看《给阿嬷的情书》,带纸巾,别带懂王

亲子要闻

“67岁自然怀孕”的天赐妈妈,现状曝光:7年前的预言,正在应验

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

乌克兰首都基辅遭空袭 死亡人数增至12人

无障碍浏览 进入关怀版