关于 AstrBot 的一些看法
注
只是一些主观感受,可能会有片面之处,部分描述也未必完全准确。
目前看来,AstrBot 的 WebUI 整体给我的感觉还是有些混乱。从工程角度去看,也能比较明显地感受到一些技术债已经慢慢积累起来了。
比如,项目虽然已经配置了 TypeScript,但代码里仍然存在 JavaScript,这会让人感觉类型体系并没有被真正贯彻下去。另外,一些组件也能看出比较明显的 AI 生成痕迹,结构偏臃肿,逻辑堆叠在一起,结果就是组件复杂度比较高,同时也可能带来一些性能上的影响,像页面加载速度、路由切换耗时这些地方,多少都会受到波及。
前端依赖管理这块也存在一些问题。部分第三方库是整包引入的,而不是按需打包,这会直接导致最终构建产物(dist)的体积偏大。对于 WebUI 这类项目来说,这种构建方式对加载性能的影响其实还是挺直观的。
组件设计方面同样能看出工程规范上的不足。项目里其实已经有现成的 UI 组件了,但很多地方还是选择重新实现新的组件,而不是复用已有组件,比如就存在多个 card 组件。这样做不仅会带来更多重复代码,也会让整体 UI 风格更难统一。从结构上看,项目似乎缺少一个足够明确的组件体系或者 design system。
另外,代码里还存在直接硬编码主题颜色的情况,部分地方没有使用统一的主题变量或设计 token。这又进一步放大了 UI 不统一的问题。从最后呈现出来的效果看,整个 WebUI 的视觉表现也显得有些粗糙。
如果把 AstrBot 放到一些同样由 AI 参与较多开发的项目里对比,比如 openclaw,其实两者在工程质量上未必有特别明显的差距。当然,这也并不意味着 AstrBot 就一无是处。
在国内生态里,AstrBot 的一个优势还是挺明显的,就是它对 QQ、微信等聊天平台的适配相对更完善一些,这一点确实更贴合国内用户的使用习惯。所以至少在这方面,它依然是有实际价值的。
至于 agent 能力,因为我自己并没有特别深入地用过,所以也不太想在这里做太多评价。不过从整体印象来看,这部分能力似乎还算不错。当然,现在整个 AI agent 领域本身也还处在比较早期的发展阶段,所以偶尔出现一些 bug 或者不太稳定的情况,其实也算可以理解。
如果从产品定位来看的话,AstrBot 本质上还是更像一个聊天机器人框架。毕竟这个项目最初的设计目标,本来就是围绕聊天机器人展开的。不过在这条赛道上,它也需要面对像 maibot 这样的竞争者,同时类似的机器人框架其实也并不少,比如 langbot 之类。
随着 AI 技术的发展,尤其是在 agent 概念逐渐流行之后,AstrBot 的定位似乎也开始发生了一些变化。但至少从现在来看,它给人的感觉更像是“什么都想做”,可又没有哪一部分真正做得足够深入,很多功能依然还停留在半成品阶段。
再加上历史代码本身带来的技术债,项目的维护成本也在慢慢上升。从现在的情况来看,维护这件事似乎已经开始对主要维护者形成一定压力了。
从 issue 和 PR 的数量变化里,其实也能大致看出这种趋势。另外,组织里的其他成员对 AstrBot 的参与程度似乎也比较有限,整体协作氛围和组织凝聚力不算特别强,这也进一步影响了项目的维护效率和迭代速度。
所以,AstrBot 未来究竟要往哪个方向发展,它真正的核心定位到底是什么,以及该怎么处理当前已经存在的技术债和维护压力,都是这个项目现在需要认真想清楚的问题。