Hermes Agent长期记忆系统:向量库+图数据库的Agent记忆管理架构

1. 从“金鱼记忆”到“长期记忆”:这个Agent到底在解决什么

做AI应用开发的人都有一个共同的痛点:每次对话都像在跟一个失忆症患者聊天。你昨天刚跟它说过项目背景、代码规范、业务逻辑,今天开一个新会话,它全忘了。你不得不把同样的上下文一遍又一遍地塞进提示词里,token烧得心疼,效果还不稳定。

Hermes Agent这个项目,核心要解决的就是这个问题——让AI Agent拥有跨会话的长期记忆能力。它不是简单地把聊天记录存下来再塞回去,而是构建了一套完整的记忆生命周期管理体系:记忆的写入、存储、检索、衰减、遗忘、关联、更新,每一步都有明确的策略。

我最初看到这个项目标题的时候,第一反应是“又一个做RAG的”,但仔细拆解后发现它的定位更精准:它瞄准的是Agent场景下的记忆管理,而不是通用的知识库检索。这两者的区别很大。通用RAG面向的是静态文档的检索增强,而Agent记忆面对的是动态交互过程中产生的碎片化信息——用户的偏好、历史决策、任务上下文、环境状态等等。这些东西有时效性、有优先级、有相互关联,不能一视同仁地存和取。

适合谁来参考这个项目?如果你正在做以下几类事情,Hermes Agent的思路值得仔细研究:一是构建需要长期陪伴用户的AI助手,比如个人助理、学习伴侣;二是开发多轮复杂任务编排的Agent系统,需要跨会话保持任务状态;三是做客服、销售等场景的AI应用,需要记住每个用户的历史交互。即使你不直接使用这个项目,它关于记忆分层、记忆衰减、记忆检索的设计思路也可以直接迁移到自己的系统里。

2. 记忆系统的整体架构设计:为什么不能只靠一个向量数据库

2.1 记忆分层:短期、长期、工作记忆各司其职

很多人做Agent记忆的第一反应是“存向量数据库,每次检索top-k塞进prompt”。我早期也这么干过,实测下来问题很多:检索出来的记忆要么太旧、要么太泛、要么互相矛盾,Agent拿到一堆碎片反而不知道该信哪个。

Hermes Agent的做法是把记忆分成三层,每层有不同的存储介质、生命周期和检索策略:

记忆层级存储介质生命周期典型内容检索方式
工作记忆内存/Redis单次会话当前对话上下文、临时变量直接读取
短期记忆结构化数据库数小时到数天近期任务状态、临时偏好时间衰减加权检索
长期记忆向量库+图数据库持久用户画像、稳定偏好、重要事实语义+图关联检索

这个分层设计的核心逻辑是:不同时效性的信息不应该混在一起管理。你昨天随口说“今天想吃火锅”和你说“我对海鲜过敏”是两种完全不同性质的记忆,前者过几天就没意义了,后者是终身有效的。如果都塞进一个向量库,检索时必然互相干扰。

工作记忆最简单,就是当前会话的上下文窗口,不需要额外存储。短期记忆我用Redis做过类似的实现,设置TTL自动过期,检索时按时间倒序加权。长期记忆才是真正需要花心思的地方,Hermes Agent在这里用了向量库加图数据库的组合——向量库负责语义相似度检索,图数据库负责关联关系检索。

2.2 为什么选向量库加图数据库的组合

只用向量库的问题在于:它只能做“语义相似”的检索。比如用户问“我之前说过的那个项目截止日期是什么时候”,向量检索可能召回一堆跟“项目”相关的记忆,但未必能精确定位到“截止日期”这个具体事实。而图数据库可以把“用户-项目-截止日期”这样的实体关系结构化存储,检索时沿着关系边精确导航。

我实测过一个类似方案:用向量库存对话摘要,用图数据库存实体关系。当用户问“上次跟我讨论方案的那个人叫什么”时,向量检索可能召回“讨论方案”相关的对话片段,但图数据库可以直接从“用户”节点沿着“讨论”边找到“人物”节点,精确度高出不少。

当然,这个组合也带来了复杂度。你需要同时维护两套存储系统,写入时要保证两边数据一致,检索时要合并两路结果。Hermes Agent在架构上做了抽象,把记忆的写入和检索封装成统一接口,底层存储可以替换。这个设计思路值得借鉴——不要让上层业务逻辑感知到底层用了什么存储。

2.3 记忆写入策略:什么值得记,什么应该忘

这是整个系统里最容易被忽视但最关键的部分。很多Agent记忆系统的问题不在于“记不住”,而在于“记太多”。什么都往长期记忆里塞,结果检索时噪音太大,反而降低了效果。

Hermes Agent的记忆写入有一套评分机制,我拆解下来大致包含以下几个维度:

  • 信息密度:这句话是否包含可复用的信息?“你好”“谢谢”这种寒暄就不值得记。
  • 时效性:这个信息是永久有效的还是临时的?“我下周要去出差”有时效性,“我习惯用Python”是长期偏好。
  • 情感强度:用户表达强烈情绪的内容往往更重要。“我非常不喜欢这种方案”比“这个方案还行”更值得记住。
  • 重复频率:同一个信息多次出现,说明它是稳定的偏好或事实,应该提升优先级。
  • 任务相关性:与当前进行中的任务直接相关的信息,短期记忆优先。

这套评分机制不需要很精确,但必须有。我的经验是,哪怕用一个简单的规则引擎做初筛,也比无差别全量存储效果好得多。你可以设置一个阈值,只有评分超过阈值的记忆才进入长期存储,其余的放在短期记忆里自然过期。

注意:记忆写入的评分逻辑不要做得太复杂。我见过有人用一个小模型来做记忆重要性打分,效果确实好一些,但推理成本上去了,而且引入了不确定性。对于大多数场景,基于规则的评分加上关键词提取就够用了。

3. 核心细节拆解:记忆的检索、衰减与更新怎么做

3.1 混合检索策略:语义加时间加重要性的三重排序

检索是记忆系统里最影响体验的环节。Hermes Agent的检索不是简单的向量相似度top-k,而是多路召回加融合排序。

第一路是语义检索,用embedding做相似度匹配,召回语义相关的记忆。第二路是时间加权检索,近期记忆获得更高权重,但权重随时间衰减。第三路是重要性检索,按记忆的评分排序,确保高价值记忆优先被召回。

三路结果合并时,Hermes Agent用了一个加权融合公式,我根据常见实践推测其形式大致是:

final_score = α * semantic_similarity + β * time_decay_score + γ * importance_score

其中α、β、γ是可调参数。我的经验值是α设0.5到0.6,β设0.2到0.3,γ设0.2左右。具体数值要根据你的场景调——如果是任务型Agent,时间权重可以高一些;如果是知识型助手,语义权重应该占主导。

时间衰减函数的选择也有讲究。常见的有指数衰减和线性衰减。指数衰减更符合人类记忆规律,但衰减太快会导致旧的重要记忆被淹没。Hermes Agent的做法是对不同类型的记忆用不同的衰减曲线——事实类记忆衰减慢,事件类记忆衰减快。这个细节很关键,我在实际项目里也验证过:用户的基本信息(姓名、职业)几乎不衰减,而“今天心情不好”这种状态信息几小时后就该降权。

3.2 记忆衰减与遗忘:不是bug,是feature

很多人不理解为什么记忆系统需要“遗忘”。好不容易存下来的信息,为什么要主动丢掉?

原因很简单:检索容量是有限的。你的prompt窗口就那么大,每次能塞进去的记忆条数有限。如果旧记忆永远不衰减,新记忆就挤不进来。而且旧记忆可能已经过时了,比如用户三个月前说“我最近在学Rust”,现在可能早就不学了,这条记忆如果还保持高权重,就会误导Agent。

Hermes Agent的遗忘机制分两种:被动衰减和主动清理。被动衰减就是上面说的时间加权,记忆的检索得分随时间降低,自然沉底。主动清理是定期扫描长期记忆库,把评分低于阈值的记忆归档或删除。

这里有个实操心得:删除记忆之前先做一次“记忆压缩”。比如用户过去一个月多次提到“喜欢喝美式咖啡”,这些碎片化记忆可以压缩成一条“用户偏好:美式咖啡”。这样既保留了核心信息,又减少了记忆条数。我在项目里用简单的频率统计加模板生成就能做到,不需要复杂的模型。

提示:遗忘策略一定要可配置。不同场景对记忆保留时长的要求差异很大。医疗健康类应用可能需要保留数年,而闲聊类助手一周前的对话可能就没必要留了。把衰减率和清理阈值做成配置项,方便按场景调整。

3.3 记忆更新与冲突处理:当新信息和旧记忆矛盾时怎么办

这是最棘手的部分。用户上周说“我住在北京”,这周说“我搬到上海了”。两条记忆矛盾,Agent应该信哪个?

Hermes Agent的处理策略是:新记忆写入时,先检索是否有相关旧记忆,如果有且存在冲突,则根据时间戳和置信度决定是覆盖、合并还是并存。对于事实类信息(如住址、职业),新信息通常覆盖旧信息;对于偏好类信息(如喜欢的食物),可能并存,因为偏好可以多元。

我实际踩过的坑是:不要简单粗暴地覆盖。有一次用户说“我最近不太想吃辣”,系统直接把“用户喜欢辣”这条记忆删了。结果过了一周用户又说“还是辣的好吃”,系统又得重新学。更好的做法是保留旧记忆但降低权重,同时记录新信息,让两条记忆共存,检索时按时间加权。

Hermes Agent在冲突处理上还引入了“置信度”概念。用户明确陈述的信息置信度高,从对话中推断的信息置信度低。当高置信度新信息与低置信度旧记忆冲突时,直接覆盖;当两者置信度相近时,并存并标记冲突,后续交互中继续观察。

4. 实操落地:从零搭建一个带记忆的Agent

4.1 环境准备与依赖选型

假设你要自己实现一套类似的记忆系统,我分享一下我的技术选型思路。

存储层:向量库我推荐用轻量级的方案起步,比如Chroma或Qdrant的本地模式,部署简单,API友好。图数据库用Neo4j社区版或者更轻的NetworkX(如果数据量不大)。关系型数据用SQLite或PostgreSQL存记忆的元数据(时间戳、评分、类型等)。

Embedding模型:如果追求效果,可以用OpenAI的text-embedding-3-small或开源的BGE系列。如果对成本敏感,可以用本地部署的小模型,比如all-MiniLM-L6-v2,虽然效果差一些但够用。

框架层:Hermes Agent本身是一个参考实现,你可以直接用它,也可以只借鉴思路自己写。我倾向于自己写核心逻辑,因为记忆管理跟业务耦合很深,用现成框架反而可能受限。

# 记忆存储的基本数据结构示例 class MemoryItem: def __init__(self, content, memory_type, timestamp, importance, embedding=None): self.content = content # 记忆内容 self.memory_type = memory_type # 类型:fact/preference/event self.timestamp = timestamp # 创建时间 self.importance = importance # 重要性评分 0-1 self.embedding = embedding # 向量表示 self.access_count = 0 # 被检索次数 self.last_access = timestamp # 最后检索时间

这个结构看起来简单,但每个字段都有用。access_count和last_access用于计算记忆的“热度”,热度高的记忆衰减更慢。memory_type决定了用哪种衰减曲线和检索权重。

4.2 记忆写入的完整流程

写入流程我拆成五步:

第一步,信息提取。从当前对话中提取值得记忆的片段。可以用规则(关键词匹配、句式模板)也可以用模型(让LLM判断哪些内容值得记)。我建议两者结合:规则做初筛,模型做精筛。

第二步,去重检查。计算新记忆与已有记忆的语义相似度,如果超过阈值(比如0.9),说明是重复信息,不重复写入,只更新旧记忆的时间戳和access_count。

第三步,冲突检测。检索相关旧记忆,判断是否存在矛盾。如果有矛盾,按前面说的策略处理。

第四步,评分计算。根据信息密度、时效性、情感强度等维度计算重要性评分。

第五步,持久化。写入向量库和图数据库,同时记录元数据到关系型数据库。

def write_memory(content, context, memory_store): # 1. 提取值得记忆的信息 candidates = extract_memory_candidates(content) for candidate in candidates: # 2. 去重检查 similar = memory_store.search_similar(candidate, threshold=0.9) if similar: memory_store.update_access(similar[0].id) continue # 3. 冲突检测 conflicts = memory_store.search_similar(candidate, threshold=0.7) for conflict in conflicts: if is_conflicting(candidate, conflict): resolve_conflict(candidate, conflict, memory_store) # 4. 评分 importance = calculate_importance(candidate, context) # 5. 持久化 memory_store.add(candidate, importance)

这个流程里,去重和冲突检测的阈值需要根据实际数据调。我一开始把去重阈值设成0.85,结果发现很多语义相近但实际不同的记忆被误判为重复。后来调到0.92才比较合适。这个值跟你的embedding模型有关,没有通用答案,必须实测。

4.3 记忆检索的工程实现

检索流程同样分多步:

第一步,查询理解。把用户当前输入转成检索query,可能还需要提取关键实体和时间范围。

第二步,多路召回。语义检索召回top-20,时间加权召回top-20,重要性召回top-10。

第三步,融合排序。用加权公式合并三路结果,去重后取top-k。

第四步,上下文组装。把检索到的记忆按一定格式拼接到prompt里,注意控制总token数。

def retrieve_memories(query, memory_store, top_k=5): # 多路召回 semantic_results = memory_store.semantic_search(query, top_k=20) time_results = memory_store.time_weighted_search(top_k=20) importance_results = memory_store.importance_search(top_k=10) # 融合排序 all_results = merge_and_rank( semantic_results, time_results, importance_results, weights={'semantic': 0.55, 'time': 0.25, 'importance': 0.20} ) # 去重取top-k final = deduplicate(all_results)[:top_k] # 更新访问记录 for mem in final: memory_store.update_access(mem.id) return final

上下文组装时有个技巧:不要把所有记忆平铺塞进去,而是按类型分组,用不同的模板呈现。事实类记忆用陈述句,偏好类记忆用“用户喜欢/不喜欢”的格式,事件类记忆带时间戳。这样LLM更容易理解和使用。

实操心得:检索到的记忆条数不是越多越好。我实测下来,5到8条是比较合适的范围。太少信息不够,太多会稀释注意力。而且要把最相关的放在最前面,LLM对开头的内容注意力更高。

5. 常见问题与排查技巧实录

5.1 记忆检索不准确怎么办

这是最高频的问题。用户明明之前说过某个信息,但Agent检索不出来。排查思路按以下顺序:

先检查embedding质量。拿几条检索失败的case,手动算一下query和记忆的余弦相似度。如果相似度本身就不高,说明embedding模型不适合你的场景,考虑换模型或做微调。

再检查记忆是否真的写入了。有时候是写入环节的评分太低,记忆被过滤掉了。查一下写入日志,看看那条信息有没有通过评分阈值。

然后检查时间衰减是否过猛。如果记忆写入时间较久,时间加权得分可能已经很低了。调低时间衰减系数试试。

最后检查融合排序的权重。如果语义权重太低,相关性高的记忆可能被时间新的但无关的记忆挤掉。

我整理了一个速查表:

现象可能原因排查方法解决方向
完全检索不到记忆未写入查写入日志调低写入阈值
检索到但不相关embedding质量差手动算相似度换模型/微调
旧记忆检索不到时间衰减过猛查时间得分调低衰减系数
新记忆被淹没重要性权重过低查融合得分调高重要性权重
检索结果重复去重不彻底查相似度阈值调高去重阈值

5.2 记忆冲突导致Agent行为矛盾

用户反馈Agent有时候说A有时候说B,前后不一致。这通常是记忆冲突没有处理好。

排查时先找出矛盾的记忆对,看它们的时间戳和置信度。如果旧记忆置信度更高但已经过时,说明冲突处理策略太保守,应该让新信息覆盖。如果两条记忆置信度相近且都有效,说明需要更细粒度的区分——比如用户在不同场景下有不同的偏好,应该把场景信息也作为记忆的一部分存进去。

我的经验是:冲突处理策略要跟业务场景匹配。对于事实类信息(住址、职业),激进覆盖;对于偏好类信息(口味、风格),保守并存。不要用一套策略打天下。

5.3 记忆系统拖慢响应速度

加了记忆检索之后,Agent响应变慢了。这是工程问题,排查方向:

向量检索本身很快,通常不是瓶颈。瓶颈往往在embedding计算上——每次查询都要算embedding,如果用的是API调用,网络延迟就上去了。解决方案是本地部署embedding模型,或者做query embedding缓存。

另一个瓶颈是图数据库的关联查询。如果图规模大且查询深度深,耗时会明显增加。优化方法是限制查询深度(通常2跳就够了),以及给常用查询建索引。

还有一个容易忽视的点:记忆检索和LLM推理是串行的。可以先做记忆检索,同时并行做其他准备工作,等记忆检索结果出来再一起送给LLM。这个并行化能省不少时间。

5.4 记忆存储成本失控

长期运行后,记忆库越来越大,存储和检索成本都上去了。这时候需要做记忆清理和压缩。

清理策略:定期扫描,把超过一定时间未被访问且重要性评分低的记忆归档或删除。归档可以存到冷存储(比如对象存储),需要时再恢复。

压缩策略:把多条相关记忆合并成一条摘要记忆。比如用户过去一个月有20条关于饮食的对话,可以压缩成3到5条核心偏好。压缩用LLM做摘要生成就行,成本不高。

我一般设置两个阈值:记忆总数超过1万条时触发清理,单条记忆超过90天未被访问且重要性低于0.3时进入归档候选。这两个值根据你的存储预算和场景调整。

6. 记忆系统的扩展方向与个人体会

这套记忆架构跑通之后,有几个方向可以继续深挖。

一是记忆的主动回忆。现在的检索是被动的——用户问了才去查。更高级的做法是Agent在合适的时候主动提起相关记忆,比如用户提到要去某个城市,Agent主动说“你之前说过想去那里的某个餐厅”。这需要在对话流程里加入记忆触发的时机判断。

二是跨Agent的记忆共享。如果你有多个Agent分别负责不同任务,它们之间的记忆能否互通?比如客服Agent知道用户的历史投诉,销售Agent在推荐产品时能不能参考?这需要设计记忆的权限和共享机制。

三是记忆的可解释性。用户应该能查看Agent记住了什么、为什么记住、什么时候会忘。这不仅是透明性问题,也是让用户纠正错误记忆的途径。我做过一个简单的记忆管理界面,让用户能查看和删除自己的记忆,反馈很好。

我个人在实际操作中的体会是:记忆系统的效果不取决于技术多先进,而取决于对场景的理解有多深。同样的架构,在客服场景和在学习助手场景下的最优参数完全不同。不要指望一套配置打天下,要留出足够的调优空间,并且建立一套评估机制——定期抽样检查记忆检索的准确率和召回率,用数据驱动调优。

最后分享一个小技巧:在记忆写入时,除了存内容本身,额外存一条“记忆来源”——是用户明确说的,还是Agent推断的,还是从文档里提取的。这个来源信息在冲突处理和置信度评估时非常有用,而且实现成本极低,就是多存一个字段的事。

相关新闻

便宜智能体为何难进大企业?成本、风险与合规的深度拆解

便宜智能体为何难进大企业?成本、风险与合规的深度拆解

1. 一个反直觉的现象:越便宜的方案,越难进大企业的门这两年跟不少做技术选型和采购的朋友聊天,发现一个特别有意思的现象:市面上那些报价低到离谱的智能体方案,在中小企业里跑得风生水起,可一拿到大企业的评…

2026/10/20 8:26:49 阅读更多 →
整体二分解决P3332 K大数查询:树状数组+递归分治实战解析

整体二分解决P3332 K大数查询:树状数组+递归分治实战解析

P3332 [ZJOI2013]K大数查询,这道题的常规解法是树套树,也就是线段树套权值线段树或者线段树套平衡树。但树套树写起来又长又容易出 bug,调试起来更是折磨人。如果你会整体二分,这道题就能用树状数组加递归分治的思路轻松解决&…

2026/10/20 8:26:49 阅读更多 →
DeepSeek 大模型本地部署实战:显存、量化与并发调优避坑指南

DeepSeek 大模型本地部署实战:显存、量化与并发调优避坑指南

简介:这份资源是面向大语言模型爱好者与研发人员的DeepSeek本地部署教程文档,针对希望将模型运行在自有环境、规避云端API费用与隐私风险的技术人群。内容覆盖模型简介、安装前硬件与软件依赖说明、Ollama简化部署与手动部署两条路线、Chatbox与Open-Web…

2026/10/20 8:26:49 阅读更多 →

最新新闻

AI生成架构图与流程图:10分钟完成传统1天工作

AI生成架构图与流程图:10分钟完成传统1天工作

1. 为什么架构图和流程图成了“时间黑洞”?——从真实协作场景说起我带过不下二十个跨职能项目,每次开需求评审会,总有人提前半小时到会议室,默默打开Visio或draw.io,手指在键盘上敲得飞快,嘴里还念叨着“这…

2026/10/20 9:16:21 阅读更多 →
APQP第三版落地指南:从风险、变更与采购三条主线构建量产质量策划框架

APQP第三版落地指南:从风险、变更与采购三条主线构建量产质量策划框架

简介:《APQP手册 第三版(中文版)》是一份面向汽车及零部件行业项目管理、质量策划与体系推进人员的指南性资料,系统讲解先期产品质量策划的工作实践、工具与分析技术。手册按逻辑顺序覆盖从项目策划、产品设计开发到过程确认、反馈…

2026/10/20 9:16:21 阅读更多 →
冷热电多微网双层优化配置与储能电站服务模式解析

冷热电多微网双层优化配置与储能电站服务模式解析

做综合能源规划这些年,最常被问的一句话是:冷热电多微网这东西到底比传统各自供能强在哪?强在“抠”出来的那部分效率。燃气轮机发电后的高温烟气不再直接排掉,而是进余热锅炉产蒸汽供热,再带着溴化锂机组制冷&#xf…

2026/10/20 9:16:21 阅读更多 →
飞书AI内训实战:妙记、AI搜索与多维表格自动化如何重塑协同效率

飞书AI内训实战:妙记、AI搜索与多维表格自动化如何重塑协同效率

开头从一次实测引入:飞书 AI 不只是“语音转文字”,它真正改变的是协作链条中那些低效环节。我在给一家中型企业做办公提效内训时,最常被问到的问题就是:飞书 AI 到底能干什么?很多同事已经知道有 AI 功能,…

2026/10/20 9:16:21 阅读更多 →
SAP MM常用表详解:从物料主数据到采购库存的核心表清单

SAP MM常用表详解:从物料主数据到采购库存的核心表清单

1. 为什么我建议先记住这套表而不是全量背表:先认清业务主线接触 SAP MM 的人,不管是刚入行的顾问、做接口开发的 ABAP 程序员,还是经常写报表的 Fiori 开发,几乎都会遇到同一个困境:SAP 的表太多了,光物料…

2026/10/20 9:16:21 阅读更多 →
插件化Agent框架源码拆解:内核、协议与生命周期机制

插件化Agent框架源码拆解:内核、协议与生命周期机制

1. 从“能跑就行”到“拆开看看”:我为什么要啃这套 Agent 框架第一次看到“插件化 Agent 框架”这个说法时,我的反应和大多数人一样——又是一个包装概念。毕竟这两年“Agent”这个词已经被用烂了,随便一个能调 API 的脚本都敢叫自己 Agent …

2026/10/20 9:15:12 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →