上周六的活动中交流了一个问题:如何解决 AI 在大项目理解中的瓶颈。
活动结束后,我一直在思考,这个场景确实是个非常普遍的痛点,很可能会造成原本很好的工具无法使用。
于是,我决定好好的研究下,今天,就把目前的思考内容和大家分享下,抛砖引玉。
处理大项目的思路
首先,有一个背景,我们需要达成一致。
在超级模型出现前,将整个项目代码一次性塞入 AI 中是不现实,现有思路的关键都在于如何更加精确、动态地找到回答问题所需的代码片段。
整理了如下几个思路:
- 人工划分降低理解难度
- 借助工具实现代码图谱
- Claude Skills按需加载上下文
这几个思路并不是完全并列,而是可以同时使用,相互结合的。
人工划分降低理解难度
最难的,也是最简单的思路。
"难 "在于这个过程需要人工处理,工作量比较大;"简单"在于不需要额外的知识辅助,也不需要引入新的工具。
- 可以通过分层的方式,比如:服务层、业务层、数据层等。
- 可以通过分模块的方式,比如:合同模块、支付模块、日志模块等。
所有的措施都是为了缩小检索空间,只要划分后的上下文,AI 可以"吃"下,那就可以了。
借助工具实现代码图谱
上面的思路估计很多人会望而却步,毕竟,大项目最难着手的就是分析。
这时候,还有另一种思路,借助专门的"代码图谱"工具进行分析。
"代码图谱"可以理解为一种专门的"知识图谱",通过解析 AST、调用关系和数据依赖,构建项目级的语义索引,支持基于结构的精准检索。
相比纯向量检索,代码图谱更能捕捉函数调用、继承等结构化关系,适合深度理解。
我找到了一个比较不错的落地工具:Sourcegraph Cody,支持 VS Code 系列插件安装。
目前尚未来得及实测,大家感兴趣可以先行尝试。
按需加载上下文
"代码图谱"已经提供了一个比较智能的上下文自动划分思路,但这个思路更多的解决重点其实是在单次 AI 对话的上下文上。
如果某个任务特别复杂,单次 AI 对话无法解决,需要多次交互,那上下文依然会出现无法满足的情况。
这时候就需要"按需加载上下文"这种思路去进一步优化了。
这一思路主要是引入一个动态决策 的智能体,它先将复杂任务拆解为的多个步骤,并针对每一步的请求内容 ,动态分析所需的上下文(在代码图谱基础上,再次按需索取),然后循环迭代,直至计划执行完毕。
其实就是 Claude Skills 的设计思路,可以在 Plan 阶段生成的文档计划 中,支持自动/手动配置相关上下文。
但是,目前尚未找到完美的落地方案。如果你有合适推荐,欢迎留言指导。
结语
以上就是这两天了解到的AI 理解大项目的几个思路,可以结合起来,逐步应用。
你遇到大项目理解难题时,是怎么破局的?欢迎留言交流!