axb的自我修养 26-02-17 00:11
微博认证:微博原创视频博主

趁着值班更新了Wegent开源版发布1.5.1 版本,没发布什么大的功能更新,主要是把架构重新做了梳理。

之前最大的问题是,项目支持了太多的功能,但是没有一层合理的抽象:

入口有网页、API 和 IM 三种

功能分对话、编码、定时器和知识库四种

执行器还分自研 Agent、Claude Code和 Agno三种

执行环境还要再分本地、远程和一次性三种

分支达到了惊人的 108 种组合,最早项目并没有这么多功能的时候AI 写的代码问题不大,但是随着项目功能的增加,AI 写代码的时候并没有很好的做抽象和重构,而是不由自主的偏向了在每个执行路径上加各种 if 的套路,改个小功能可能要加几十个 if,这对于项目的维护是完全不能接受的。

这次重构,其实是把核心链路按照新的架构思路,完全重写了一遍。虽然我一直在努力的控制变更范围,但是这几天还是大概删掉重写了 4-5 万行代码。在AI 野蛮生长能力的加持下,会在犄角旮旯里翻出各种匪夷所思却又能正常运行的代码,这一顿重构下来,难度不亚于当年我重构微博底层平台……

目前离最终重构的完成版大概还要有好几个版本的迭代,但是目前基本的架子已经差不太多,基本把各个模块的烂代码都控制在了模块内部,后面只需要做模块级别的重构,而不需要再把整个项目重写了。

感觉我10 年前写的烂代码系列文章又可以更新了……[淡淡的]

发布于 北京