手把手搭建个人AI记忆系统:Hermes + Hindsight + GBrain 全栈实践

发布时间:2026/8/5 12:40:12

手把手搭建个人AI记忆系统:Hermes + Hindsight + GBrain 全栈实践
写在前面你有没有想过和AI助手的对话能像人类一样拥有持久记忆你上周讨论过的项目方案、上个月定下的技术选型、甚至去年的某个灵感——AI都能记得清清楚楚。这不是科幻这是我们果壳科技正在做的事。我们花了两天时间搭建了一套完整的个人AI记忆系统。今天把全过程分享出来包括架构设计、技术选型、部署细节以及踩过的每一个坑。指标数值条记忆3601向量空间维度1024迁移耗时45分钟额外硬件成本0元一、系统架构1.1 整体设计三个层次各司其职层次职责代表系统会话层日常对话、任务调度、笔记归档Hermes Obsidian记忆层长期记忆的存储、检索、关联Hindsight GBrain向量层把自然语言转换成数学表示Qwen3-Embedding-0.6B1.2 为什么需要两套记忆系统 很多人会问有 Hindsight 不就够了吗为什么还要 GBrain答案是分工不同。系统擅长类比数据量Hindsight事实记忆谁说了什么、什么时候、偏好习惯 日记本569条GBrain知识图谱概念关系、代码结构、时间线 笔记本3032个chunkHindsight从对话中提取事实片段比如“老板喜欢喝美式咖啡”“项目截止日期是下周三”“SSH密钥配置在~/.ssh/id_ed25519”它是一个**“记忆银行”**存的是结构化的事实。GBrain管理知识网络比如“Qwen3-Embedding是阿里通义千问团队开发的”“Hindsight用PostgreSQL存储向量”“GBrain和Hindsight的Embedding服务需要统一”它是一个**“第二大脑”**存的是概念和关系。⚠️ 关键洞察两者互补缺一不可。单一系统无法同时满足记住对话内容和理解知识结构的需求。二、技术选型为什么选 Qwen3-Embedding-0.6B2.1 什么是EmbeddingEmbedding 是把自然语言转换成向量一串数字的过程。苹果 → [0.12, -0.34, 0.56, ..., -0.23] (1024个浮点数)两个句子的向量越接近说明它们的语义越相似。这就是**“语义搜索”**的基础——不依赖关键词匹配而是理解你真正想问什么。2.2 选型过程我们评估了多个中文Embedding模型模型维度C-MTEB评分内存占用特点bge-small-zh-v1.551261.59~130MB轻量够用但维度偏低bge-base-zh-v1.576864.89~400MB性能均衡Qwen3-Embedding-0.6B102466.33~1.5GB维度高表达力强✅Qwen3-Embedding-4B256070~8GB性能顶级但杀鸡用牛刀2.3 最终选择Qwen3-Embedding-0.6B1. 数据量决定了不需要大模型我们的数据量是 3600 条GBrain 3032 chunks Hindsight 569 memories。这个量级0.6B 的模型绑绑有余。4B 模型的提升在小数据集上几乎感知不到但内存占用多出 5 倍。2. 1024维是甜蜜点768维是很多模型的默认选择但1024维多出33%的表达空间在处理中文这种信息密度高的语言时更有优势。2560维虽然更强但对于我们的数据量来说是浪费。3. Qwen系列的中文理解是第一梯队阿里的通义千问团队在中文NLP上的积累不用多说。Qwen3-Embedding在C-MTEB上得分66.33比bge系列高3-5分。4. 部署简单模型兼容 sentence-transformers 格式用TEI一键启动OpenAI兼容API任何支持OpenAI embedding的工具都能直接对接。三、部署实战3.1 部署Embedding服务第一步下载模型# 从 HuggingFace 下载国内用 hf-mirror.com 加速HF_ENDPOINThttps://hf-mirror.com huggingface-cli download\Qwen/Qwen3-Embedding-0.6B\--local-dir /home/xiaoyu/models/Qwen3-Embedding-0.6B模型大小约 1.2GB下载完成后验证fromsentence_transformersimportSentenceTransformer modelSentenceTransformer(/home/xiaoyu/models/Qwen3-Embedding-0.6B)embeddingmodel.encode([测试文本])print(f维度:{embedding.shape})# 应该是 (1, 1024)第二步启动TEI服务我们用systemd管理TEI服务确保开机自启# 创建 systemd servicecat/etc/systemd/system/tei-embedding.serviceEOF [Unit] DescriptionTEI Embedding Service Afternetwork.target [Service] Typesimple Userxiaoyu ExecStart/usr/local/bin/tei \ --model-id /home/xiaoyu/models/Qwen3-Embedding-0.6B \ --port 8082 \ --max-client-batch-size 32 Restarton-failure RestartSec10 [Install] WantedBymulti-user.target EOF# 启动并设置开机自启sudosystemctl daemon-reloadsudosystemctlenabletei-embeddingsudosystemctl start tei-embedding第三步验证服务# 健康检查curlhttp://localhost:8082/health# → {status:ok,model:Qwen3-Embedding-0.6B,max_length:8192}# 测试embeddingcurl-XPOST http://localhost:8082/v1/embeddings\-HContent-Type: application/json\-d{model: Qwen3-Embedding-0.6B, input: 你好世界}响应中会返回1024个浮点数这就是你好世界的向量表示。3.2 GBrain迁移768维→1024维GBrain是一个知识图谱系统之前用的是bge-base-en-v1.5模型768维。我们需要把所有向量从768维迁移到1024维。步骤一备份数据库pg_dump-Upostgres-dgbrain/tmp/gbrain-backup-$(date%Y%m%d).sql⚠️ 重要提醒这一步千万别省。向量迁移是破坏性操作出问题只能回滚。步骤二修改向量维度-- 连接数据库psql-U postgres-d gbrain-- 清除旧向量维度不匹配必须先清空UPDATEcontent_chunksSETembeddingNULLWHEREembeddingISNOTNULL;-- 修改列类型ALTERTABLEcontent_chunksALTERCOLUMNembeddingTYPEvector(1024);步骤三批量重建向量这里是第一个坑。GBrain自带的gbrain reindex命令有内置超时机制3000条数据的任务会被SIGTERM杀掉。我们尝试了多次每次都在416条左右被杀。最终方案绕过CLI用Python脚本直连PostgreSQL 调用TEI APIimportpsycopg2importrequestsimportjson# 连接数据库connpsycopg2.connect(hostlocalhost,dbnamegbrain,userpostgres)curconn.cursor()# 获取需要embed的chunkscur.execute(SELECT id, chunk_text FROM content_chunks WHERE embedding IS NULL ORDER BY id)rowscur.fetchall()# 批量调用TEI APIapi_urlhttp://localhost:8082/v1/embeddingsmodelQwen3-Embedding-0.6Bbatch_size32foriinrange(0,len(rows),batch_size):batchrows[i:ibatch_size]texts[r[1][:2000]forrinbatch]# 截断过长文本ids[r[0]forrinbatch]resprequests.post(api_url,json{model:model,input:texts},timeout120)ifresp.status_code200:embeddings[item[embedding]foriteminresp.json()[data]]forchunk_id,embinzip(ids,embeddings):cur.execute(UPDATE content_chunks SET embedding %s::vector WHERE id %s,(json.dumps(emb),chunk_id))conn.commit()print(f进度:{min(ibatch_size,len(rows))}/{len(rows)})# 创建HNSW索引加速向量搜索cur.execute( CREATE INDEX idx_chunks_embedding_hnsw ON content_chunks USING hnsw (embedding vector_cosine_ops) WITH (m16, ef_construction200) )conn.commit()这个脚本跑完后GBrain的3032个chunks全部迁移到1024维空间。3.3 Hindsight迁移ONNX→共享TEIHindsight之前用的是本地ONNX模型multilingual-e5-small384维。我们改成指向共享的TEI服务。步骤一修改配置文件编辑/home/xiaoyu/.hindsight/profiles/hermes.env# 注释掉原来的本地ONNX配置# HINDSIGHT_API_EMBEDDINGS_PROVIDERlocal# HINDSIGHT_API_EMBEDDINGS_ONNX_MODEL_IDintfloat/multilingual-e5-small# 新增OpenAI兼容配置HINDSIGHT_API_EMBEDDINGS_PROVIDERopenaiHINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEYnot-neededHINDSIGHT_API_EMBEDDINGS_OPENAI_MODELQwen3-Embedding-0.6BHINDSIGHT_API_EMBEDDINGS_OPENAI_BASE_URLhttp://localhost:8082/v1 踩坑提示Hindsight的TEI模式不兼容我们的服务它期望调用/info端点所以用OpenAI兼容模式。步骤二修改向量维度psql-U postgres-d hindsight-- 清除旧向量UPDATEmemory_unitsSETembeddingNULLWHEREembeddingISNOTNULL;-- 修改维度ALTERTABLEmemory_unitsALTERCOLUMNembeddingTYPEvector(1024);步骤三重启服务sudosystemctl restart hindsight-api验证日志中出现Embeddings: OpenAI provider initialized (model: Qwen3-Embedding-0.6B, dim: 1024)步骤四重建向量Hindsight没有暴露reindex API同样用Python脚本直连PG操作importpsycopg2importrequestsimportjson connpsycopg2.connect(hostlocalhost,dbnamehindsight,userpostgres)curconn.cursor()cur.execute(SELECT id, text FROM memory_units ORDER BY id)rowscur.fetchall()# 同样的批量embed逻辑...# 569条记忆约2分钟完成3.4 最终验证# GBrain状态psql-Upostgres-dgbrain-c\SELECT count(*) as embedded, (SELECT count(*) FROM content_chunks) as total FROM content_chunks WHERE embedding IS NOT NULL;# embedded | total# -----------------# 3032 | 3032# Hindsight状态psql-Upostgres-dhindsight-c\SELECT count(*) as embedded, (SELECT count(*) FROM memory_units) as total FROM memory_units WHERE embedding IS NOT NULL;# embedded | total# -----------------# 569 | 569# 搜索测试curlhttp://127.0.0.1:9092/v1/default/banks/hermes/memories/recall\-HContent-Type: application/json\-d{query: 老板的联系方式, limit: 3}四、踩坑记录坑1gbrain reindex 命令反复超时现象gbrain reindex --markdown每次跑到416条左右就被SIGTERM杀掉。原因gbrain内置的OpenAI SDK有超时机制300秒超时对3000条数据不够用。解决方案绕过CLI用Python脚本直连PostgreSQL 调用TEI API。✅ 收获没有超时限制可以精确控制batch size出错可以精确定位到哪条数据坑2Hindsight的TEI模式不兼容现象配置HINDSIGHT_API_EMBEDDINGS_PROVIDERtei后服务启动报错RuntimeError: Failed to connect to TEI server at http://localhost:8082: Client error 404 Not Found for url http://localhost:8082/info原因Hindsight的TEI客户端期望调用/info端点获取模型信息但我们的TEI服务没有这个端点。解决方案改用OpenAI兼容模式指向http://localhost:8082/v1/embeddings。坑3Hindsight无reindex API现象想通过API触发向量重建但找不到对应的端点。原因Hindsight设计上不提供reindex API它期望embedding在retain时自动计算。解决方案直接操作数据库用Python脚本批量更新embedding列。虽然粗暴但有效。坑4env文件的注释行干扰现象用sed替换HINDSIGHT_API_EMBEDDINGS_PROVIDERlocal时把注释掉的同名行也改了。原因grep/sed默认不区分注释行和有效行。解决方案替换时用^HINDSIGHT_API_EMBEDDINGS_PROVIDERlocal$精确匹配不带#前缀。五、成本与收益5.1 成本项目成本硬件0元现有服务器内存增加约1GB软件0元全部开源时间约45分钟完成全量迁移人力1人AI助手自动执行5.2 收益跨系统语义搜索同一个问题同时搜到Hindsight的事实记忆和GBrain的知识图谱。比如问老板喜欢什么Hindsight返回喜欢喝美式咖啡GBrain返回果壳科技创始人经营AI Agent业务。中文理解提升Qwen3对中文的语义理解明显优于之前的英文模型。测试中搜索服务器配置能正确匹配到Ubuntu 24.04, 16核27G这样的技术细节而旧模型可能会漏掉。统一维护一个Embedding服务一套配置两个系统共享。以后升级模型只需要改一个地方。六、下一步计划Obsidian知识库自动化每日笔记自动归档、会话自动同步到Obsidian情报扫描系统每日定时扫描AI/Agent领域动态自动生成简报跨系统搜索API封装统一的搜索接口支持一次查询同时检索Hindsight和GBrain模型升级路径当数据量增长到1万条以上时考虑升级到Qwen3-Embedding-4B七、写在最后个人AI记忆系统不是什么遥不可及的东西。一台16核27G的普通服务器、几个开源项目、一点耐心就能搭建出属于自己的第二大脑。关键不是技术多复杂而是想清楚你要记什么、怎么记、怎么用。技术只是实现手段思维方式才是核心。我们果壳科技一直在探索AI Agent的可能性这只是开始。如果你也在折腾类似的系统欢迎交流。关于作者‍ 果壳科技 · 聂小雨专注AI Agent与知识管理系统的实践者。我们相信每个人都有权拥有自己的第二大脑。 联系我们GitHub技术栈Hermes Agent Hindsight GBrain Qwen3-Embedding-0.6B服务器Ubuntu 24.0416核27GB内存完整部署脚本和配置文件见 GitHub仓库

相关新闻

深入解析x86架构:从历史演进到现代应用与问题排查

深入解析x86架构:从历史演进到现代应用与问题排查

2026/8/5 12:40:12

1. 项目概述:为什么今天还要深挖x86架构? 如果你在IT行业里摸爬滚打超过五年,或者哪怕只是对计算机硬件、操作系统、软件开发有过一些折腾,那么“x86”这个词对你来说,就像空气一样无处不在,却又常常被忽略…

基于 AgentScope 构建金融级智能体底座实战

基于 AgentScope 构建金融级智能体底座实战

2026/8/5 12:40:12

01 产品定位与核心愿景Cloud Native▍1.1 FinXScope 是什么FinXScope 是阿里云新金融技术服务团队基于 AgentScope Java 构建的金融级 AI 原生智能体底座。作为整个 Agent Harness 体系的核心组成部分,FinXScope 充分复用 AgentScope Java 在智能体编排、工具集成、…

CANoe模拟SOMEIP通信调试实战

CANoe模拟SOMEIP通信调试实战

2026/8/5 12:40:12

工作中往往需要调试someip服务,CANoe5650可以作为很好的调试工具,可以模拟someip的通信,也可以模拟其中的一端与实际ECU通信。本文介绍在以arxml为输入时如何通过CANoe调试someip服务。 新建工程 这里可以创建两类工程,一种是仿真的,一种是实际通信的,分别适用于完全仿…

Draw.io ECE电路设计库:快速绘制专业级电子电路图的完整解决方案

Draw.io ECE电路设计库:快速绘制专业级电子电路图的完整解决方案

2026/8/5 13:40:15

Draw.io ECE电路设计库:快速绘制专业级电子电路图的完整解决方案 【免费下载链接】Draw-io-ECE Custom-made draw.io-shapes - in the form of an importable library - for drawing circuits and conceptual drawings in draw.io. 项目地址: https://gitcode.com…

日语常用语场景化学习指南:从生存交流到网络亚文化

日语常用语场景化学习指南:从生存交流到网络亚文化

2026/8/5 13:40:15

1. 从“常用”二字说起:为什么你背的单词用不上? 每次看到“常用日语”这个词,很多朋友的第一反应可能就是去搜一份“N5/N4高频词汇表”,或者打开APP开始背“あいうえお”。但作为一个在日语学习和实际应用中摸爬滚打了十多年的过…

嵌入式开发新范式:在CCS中集成本地AI代码助手提升C/C++开发效率

嵌入式开发新范式:在CCS中集成本地AI代码助手提升C/C++开发效率

2026/8/5 13:40:15

1. 先搞清楚“AI硬控嵌入式”到底想解决什么问题 看到“AI硬控嵌入式”这个标题,很多做嵌入式开发的朋友可能会有点懵。这到底是在讲用AI写嵌入式代码,还是用AI控制嵌入式设备,或者是把AI模型塞进嵌入式开发环境里? 结合“第二弹…

如何快速解锁AMD GPU性能:ROCmLibs终极优化指南

如何快速解锁AMD GPU性能:ROCmLibs终极优化指南

2026/8/5 13:40:15

如何快速解锁AMD GPU性能:ROCmLibs终极优化指南 【免费下载链接】ROCmLibs-for-gfx1103-AMD780M-APU ROCm Library Files for gfx1103 and update with others arches based on AMD GPUs for use in Windows. 项目地址: https://gitcode.com/gh_mirrors/ro/ROCmL…

企业微信模板消息实战:从原理到Python代码实现

企业微信模板消息实战:从原理到Python代码实现

2026/8/5 13:40:15

1. 项目概述:企业微信模板消息的实战价值 在企业内部系统开发或自动化流程构建中,消息触达的及时性与规范性至关重要。想象一下,当一笔订单完成、一个审批流程结束、或者服务器出现异常告警时,如果相关的通知能自动、精准地推送到…

Linux路由转发配置与故障排查:从原理到实践

Linux路由转发配置与故障排查:从原理到实践

2026/8/5 13:30:14

1. 项目概述:为什么需要开启Linux路由转发? 在服务器运维或者网络工程师的日常工作中,你可能会遇到这样的场景:你有一台运行着Linux系统的服务器,它有两张网卡,分别连接着两个不同的网络(比如&a…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Go + 云原生微服务架构实战:2026 企业级开发完整指南

Go + 云原生微服务架构实战:2026 企业级开发完整指南

2026/8/5 0:09:22

Go 云原生微服务架构实战:2026 企业级开发完整指南 CNCF 最新数据显示,2026 年云原生相关岗位增速同比上涨 62%。Kubernetes、Docker、Etcd、Prometheus 等云原生基础设施全部由 Go 语言编写。Go 语言凭借简洁的语法、出色的并发模型、极快的编译速度和…

LangChain项目上线就翻车?团队接手的拦路虎从来不是代码

LangChain项目上线就翻车?团队接手的拦路虎从来不是代码

2026/8/5 0:09:22

聊《一个LangChain项目上线后,最先暴露的并不是代码问题》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 摘要:我见过太多LangChain Demo能跑的项目,一交出去就崩。不是模…

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南

2026/8/5 0:09:22

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现只能在特定客户端播放?当你想在车载音响、…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/4 13:34:51

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…