我用Go只花了13天开发出可自我演进的AI助手
被 OpenClaw 的 Token 消耗劝退之后,我用 13 天基于 Go 语言重构了一款 AI 助手。拒绝盲目堆算力,采用 “潜意识 + 主意识” 仿生架构,搭配本地量化模型与可演进的记忆系统,彻底解决成本高、易健忘、生态差的行业痛点,项目已全开源。
在OpenClaw刚发布的当天我就疯狂地玩了一段时间,开始我还真是被它给惊艳到了。觉得它很聪明貌似好多的活会自动在后台完成至少不需要我与它反复沟通,而且还可以与飞书通信,我老婆还说我像个拿到了心爱玩具的孩子。那当然了,从业27年了已经很久没有因为某项技术而让我如此兴奋了!我感觉它能做的很多事情,很多以前想做而又分身乏术做不了的事。
但我不幸的是我发现它用得越久就变得越来越“蠢”似乎思维速度在持续地退化,而且很多对话都是直接不回复,最严重的一次是发现QWen Chat上token好像都耗光了,当时看TUI的统计是Token用量为680% / 100%! 然后,就没有然后了,直接罢工,虽然OpenClaw的更新很快,我还是从源码安装每天都去pull新的内容,但这几天“教”它的所有东西都没用了。
这两天下来的感觉是兴奋属于高开低走,它的实际智能还比不上AI开发工具,可能我是没能用上Opus吧,据说只要付得起钱一天烧个100~200刀用Opus可以玩得很爽,我无法验证这点,但从实际运行来看,OpenClaw的理念虽好,但是个烧钱怪!而且根本不是给中国人设计的,整个技能生态度极度不友好,我们不过就是上去凑热闹凑合着用,给别人捧个臭脚,会不会火起来后就像ChatGPT一样完全不欢迎中国人访问?
但我实在是太想来一把钢铁侠般的体验,如果身边真的能有一个贾维斯那将会是多么Cool的事?
拆解OpenClaw
这次算是被激到了,所以我决定尝试不用OpenClaw而是自己开发一个,不想受别人卡脖子。我没写过AI助手,但作为一个技术大男孩不会造车难道不会拆开来看吗?花了一成晚我将整个OpenClaw拆开来从架构层面全给研读了一遍。
OpenClaw 采用微内核 + 插件化架构,整体架构如下:
从结构上看,OpenClaw其实并没有什么太大的特点,Gateway可以看出是仿照 nginx 的想法来做的,Agnet loop 是直接用现成代码 pi-agnet 进行集成的,Skills 其实就更简单都是基于Cli。而且有一点更加确认了我的看法,它是个吞金怪!无论做什么事情,从对话开始到技能调用,OpenClaw都会最大限度地发给云端的大模型进行思考来得到结果。由其技能调用时,如果技能是带有调用参考指南的话,Token会瞬间消耗殆尽!
看到这里更加奠定了我想自己开发的AI助手的想法。
问题来了
首先,我不是单纯地想复刻一个OpenClaw,因为毫无意义,这事已经有不少人在做了,甚至直接Fork都接近40k Stars了。既然看到问题又想自己做一个的话那就得先想做什么,能解决什么问题。
我总结了一下OpenClaw的问题,其实也不止是OpenClaw了它只是踹开AI助手的大门的应用,我们日常用的编程工具何尝不是一个AI助手呢?它们貌似都具有以下的问题:
- 堆算力 - 谁的模型大,听谁的,谁愿意烧更多的钱谁的运行速度就越快,没想到我们开发人员也得氪金!
- 不支持中国社交通信软件生态 —— 这其实不是技术问题,要支持钉钉,QQ,微信和飞书不是一件难事,毕竟他们都有开放平台怎么接早就写在那里了;
- 记忆力低下 —— 这是个大问题,貌似没有哪个AI软件现在不是有“健忘症”的,只要会话窗口上下文塞爆了以后,一切就得重来;所以只能考智能体来缓解。
其实这些问题我相信能看到的一定不是我一个,但不会有哪家厂会去主动解决这些问题,由其是问题1,因为这会动摇它们的利益,它们就是希望可以不知不觉地让我们为更多的Token和Credit掏钱。
智能得有“脑”
如果站在技术的角度来解决上面提出的这些问题,看起来都是难题中的难题。碰巧我是个从来不喜欢从技术角度看技术的人,我更喜欢从社会的角度来看技术,我认为逻辑世界与现实世界并无差异,现实世界有的东西逻辑世界之中就一定可以找到对应的东西。
首先是堆算力的问题,这是怎么导致的?答案很明显,用大模型为你发邮件,记备忘,查天气这不是相当于找一个院士来给你算1+1=?这么低级的事件为何必须要用大模型干,还要用最新式的最贵的大模型才干得好?这不是反向证明了这样做的软件本身很弱智毫无智能可言吗?而正是这种弱智的思维不就造就Token每天都在疯狂地燃烧,大家都在讨论:“算力的终点是电力”了,但我不明白为什么就没有一个人问:到底这些算力是用来干了什么?有多少算力是真正在干有贡献于人类,在干有意义的事情?至少我没找到答案。
我的解决方案好简单:不堆算力,就要有脑!
先来看看人脑是如何工作的:
人脑是一个非常费“电”的器官,所以我们人脑在绝大多数情况下是不工作的,但这种”不用脑“的情况是靠什么维持我们身体的正常运转呢?答案是:”潜意识“。
潜意识,条件发射,身体记忆这些都是人脑的“潜意识”,我们平时所进行的各种“操作”都是通过潜意识来完成的。这些由于长期锻炼而由”习惯“形成的身体记忆是不是就是人的”技能“?人用技术能的时候是完全可以不用脑的,只要”工多“自然”艺熟“。
只有我们真正集中精神专注于思考某事的时候,我们才需要“脑”,甚至要进入”心流“状态才可能将脑力全开,达到巅峰状态。什么时候会有这种状态呢?学习,钻研问题,设计,想办法等等;当我们经常地学习,钻研问题,设计和想办法多了,我们会得到一种新的东西,而且是必须动脑才启动的:”能力“。
由此,我想到的一种解决堆算力的解决办法:写一个仿真大脑。这个大脑必须有以下的功能:
- 由潜意识层与主意识层组成;
- 潜意识层负责简单的日常任务;也就是负责”技能“的执行;(这就是大模型老在说的”技能“)
- 主意识层负责复杂逻辑推理与决策任务;也就是启动”能力“;(这就是智能体现在在做的事)
- 人脑还有一种结构,那就是左脑与右脑,左脑负责逻辑思考,右脑负责行为输出;那就更好办了,这样这个智脑完全可以用同样的机制来”堆“算力;
最后要解决一个问题,潜意识层如何不用云端模型?
既然要软件能具有智能又希望它能具有逻辑决策能力,解决方案实在是明摆着的:“本地量化大模型”。一个具有可深度思考能力的大模型才多大?只要上ollama上看一下上面就有一大堆,但要能理解中文又能深度思考的我只找到了千问3的0.6b的量化模型,它仅仅只有500多M!!!直接用Ollama试验一下,其实对话是完全没有问题的,是具有一个非常不太聪明的“人”的智力的。
别人在云端堆算力,我们在本地堆脑力行不行? 左脑负责问答,右脑负责执行”技能“。”堆算力“的问题不就解决了吗?80%的日常让本地完成,20%的技能让云端完成。
治愈“健忘症”
既然有了脑,那“健忘症”要治的话,其实也很简单嘛,上帝早就给了答案。既然仿照人脑思考与行为逻辑来设计,那为何不一学到底将人的记忆系统也用代码给复现出来呢?
先来看人的记忆系统的是怎么构成的。我们每天都会与很多人对话,这些对话中,我们记住了哪些内容呢?只有很少的人能完全记住哪一天,哪一刻,和谁说过什么。最多只能记住某些片段,对不?如果要较真的话,那只有“超忆症”患者才能记住所有的对话。但我要写一个健康的记忆系统而不是想造一个电子化的神经病。
我们的大脑对记片段的存储也很有意思,会分为长时记忆与短期记忆。长期记忆的形成是通过重复学习、经验积累、环境影响等因素来形成的,而短期记忆则是在我们需要快速处理信息时临时存储的。某些长期记忆会因为时间的流逝慢慢地变得模糊,但很少会完全忘却,它们只是被大脑“隐藏”在记忆的深处,当遇到某些特定的条件与因素就会重新激发这些记忆片段,让我们“重拾往昔”。这就是原理,如果换成设计的话可以这样做:
- 从对话中形成记忆片段(这与人脑机制相同),只要用简单聚类算法也能做到;本地大模型来做的话就更不在话下了;
- 建立记忆的权重,支持:永久记忆(存在模型中的记忆)、长期记忆与知期记忆;
- 随时间或对话的焦点强化或弱化记忆片段的权重,建立记忆的优先级,便于高速检索记忆;
- 用记忆系统扩展System Prompt,让多论对话中的短时记忆生效之余,也具备了长时记忆检索能力;
- 建立记忆的向量化索引,用嵌入式KV数据库加持,保证在检索记忆时的高效率;
完成以上5点,仿造人的记忆系统就搭建完毕了。
如何自我演进?
这就得益于记忆系统的设计了,如果每天在我们睡觉的时候开启一个计划任务,将每天的记忆全部过一遍,留其精华去其糟粕,那是不是相当于我们日常要做的“自我总结”?这些剩余的记忆片段是否就能代表了我个人的认知边界?(至少是与AI沟通下来的认知)。如果我向系统增加一个Web搜索的技能,在整理完成记忆片段之后,以我的认知边界为基础,一个记忆片段一个记忆片段地从互联网上去搜索,将相关的资料让AI全读一遍然后得到最终的精华之后再存入记忆系统,那这个过程是否就是人类的“温故而知新”呢?这就是自我演化的来源!
最后,因为我采用的是本地量化大模型,只要我以记忆系统中的数据为基础,将它们作为炼丹的原料,直接对本地量化大模型采用微调式训练,这些被提炼过的知识不就是完全成为了与我完全匹配的“能力”吗?自然而然地我就得到了这样的一个数字化分身了。
结论:增加一个Cron基制,使用AI助手可以将一切需要计划执行的任务添加其中;首先是记忆整理、认识升华以及自我演化三大任务;
整体架构
整个系统我采用**整洁架构(Clean Architecture)**的风格进行设计,将前面所有的概念演化成架构的化如下所示:
技术选型
- 语言首选 Go 1.25+,因为它的并发性能好,也有丰富的标准库,最终生成原生码,比NodeJS性能至少高出3倍以上(这是官方数据,不服自己去查);
- 本地量化大模型采用 qwen3:0.6b, 这是我最极限的选择,已经很难找到能比它小又能比它聪明的本地模型了,用这么小的模型就是为了可以达到“秒回”的效果,与之对话可以与云端模型的速度相当;
- 数据库采用 Bedger 和 SQLite,前者是超亿级超高性能的嵌入式KV数据库,后者则是一个轻量级的关系型数据库,两者结合起来可以满足我们的需求;
- 前端选React,没有其它原因就是因为它的代码量少,主要是写Vue写多了换个要写得少一点的会舒服一些;编译用Vite;
- 架构风格采用整洁架构,原因是依赖方向单一,职责清晰,代码结构简单,易于维护和扩展;
13天
以上就是我整个设计思路的思考过程,接下来的事件其实是乏善可陈,就是用各种不同的AI编程大模型与我共同结对完成这个项目,主要还是考GLM5和Doubao-Seed-2.0-Code;从构想开始到发布整个过程我总共用了13天,这也算是创下了我自己27年编码的最快记录了。
结语
为了证明我不是在吹牛,这个项目已经开源了国内国外两大主流开源平台都可以找到,如果你对这个AI助手感兴趣可以给我留言,文章内就不留链接也不留名了,原因你懂的;
更多推荐


所有评论(0)