Agent记忆系统设计:短期对话管理与长期向量存储的完整实践指南
最近在做Agent相关的一个项目被问得最多的一个问题就是“我的机器人一聊长就忘前面说过的事后面全不记得这记忆到底怎么设计”我一看很多人是把所有对话历史一股脑塞进Prompt塞到报错塞到账单爆炸。这个方向从一开始就跑偏了。真正合理的记忆方案其实就一句话——短期记忆负责记对话让当前上下文保持连贯长期记忆负责存向量把跨会话的关键信息沉淀下来。这篇文章就顺着这个思路把短期对话管理、长期向量化存储、两者的衔接和踩坑点完整拆一遍。正在做聊天机器人、Agent应用、智能助手的开发者尤其适合完整读完。1. 先想清楚Agent到底需要哪几种记忆1.1 “短期记对话长期存向量”到底在说什么我习惯把Agent的记忆系统类比成人脑的工作记忆和长期记忆。短期记忆处理的是“当前正在发生的事情”用户上一句说了什么、现在在聊什么话题、刚才答应过什么、问题解决到哪一步了。这部分内容必须立刻能用所以它存在于Prompt上下文里跟着每一次请求一起交给模型。长期记忆处理的是“跨会话依然有用的事情”用户喜欢简洁的回答、上次提过一个项目需求、他明确说过自己是做跨境电商的、昨天聊到的那份文档链接。这部分内容要存下来但不能全塞进上下文否则几轮对话之后Token就爆了而且大部分历史信息对当前回答毫无帮助只会干扰模型。所以“短期记对话”的意思是用一套窗口管理机制把当前会话里最有价值的对话内容保留在上下文里“长期存向量”的意思是把值得跨会话留存的信息做结构化清洗后用Embedding转成向量存入向量数据库以后聊到相关内容时再检索回来。前者管“连续性”后者管“沉淀”。两者不是替代关系是不同生命周期、不同读写方式的两套存储。为什么不能只靠“全量对话历史”我在项目里实测过把20轮对话全塞进去回答质量反而下降模型容易被早期无关信息带偏而且每次请求的成本肉眼可见地涨。更致命的是这种方案完全无法跨会话记忆——用户第二天再来历史清空一切重来。所以记忆设计的第一步不是选数据库而是先想清楚你的Agent到底该记哪些东西。1.2 记忆设计的第一步先定义“记住什么”很多人一上来就问“用什么数据库”“用什么Embedding模型”但我做下来的经验是这些问题应该排在最后。先回答一个更基础的问题哪些信息值得进入记忆系统我一般把Agent的记忆内容分成五类事实型——用户的基本信息、业务背景、明确说过的事实“我在做跨境独立站”偏好型——用户的表达风格、回答偏好“不要长篇大论”事件型——发生过的事、时间节点、事务进度“上周五讨论过付款流程改造”技能/指令型——用户希望Agent掌握的自定义规则“以后推荐产品时优先说性价比”状态型——某个任务的中间状态“这个需求还在等客户确认”这里面有个很容易犯的错把一次性信息当成长期记忆。比如用户顺口吐槽了一句“今天网好卡”这种话对后续对话没有价值不应该进入长期存储。再比如“帮我查一下明天的天气”查完之后这条指令就过期了属于状态型记忆用完就该失效。在设计记忆时每种类型要对应明确的“生命周期”事实型长期保留状态型短期有效事件型保留一段时间后可以被压缩成摘要。还要想清楚记忆的粒度。把“用户喜欢简洁回答”这种偏好存成一个记忆条目粒度适中但如果你把“用户上周一说喜欢A型风格周二说喜欢B型风格周三又说更喜欢C型风格”逐字存三条检索出来模型反而不知道听谁的。所以记忆写入之前必须做归一化和冲突处理这不是技术问题是认知问题——先想清楚这个Agent在什么场景下为用户提供什么服务记忆才有意义。2. 短期记忆的落地姿势对话上下文怎么管2.1 别把messages数组无脑堆给模型短期记忆在技术上其实就是一段对话上下文最常见的实现是维护一个messages数组里面按次序放着system、user、assistant消息。问题是这个数组不能无限增长。你在对接大模型接口时每次请求都会把整个messages发过去Token数按内容长度累加而且很多模型有上下文窗口上限。对话一长不是报错就是费用飙升。我的基本方案是“Token预算窗口裁剪”。假设你的模型上下文窗口是8K Token你可以把记忆策略设置为系统指令固定占1K短期对话最多占5K剩下2K留给本轮输入、工具返回和模型输出。对话超出5K时从最旧的消息开始丢弃或者把过时的结论折叠掉直到总量回到预算内。这样做的道理很简单对话信息的重要性通常是离现在越近越重要最新几轮往往决定当前回答而10轮之前的内容已经很少能直接影响回答了。给你一个简单的实现示意MAX_CONTEXT_TOKENS 5000 def build_context(messages, budgetMAX_CONTEXT_TOKENS): used 0 reversed_msgs [] # 从最新消息开始向前保留 for msg in reversed(messages): cost estimate_tokens(msg[content]) if used cost budget: break reversed_msgs.append(msg) used cost return list(reversed(reversed_msgs))这段代码的思路就是倒着塞塞不下了就停。实际项目里你还需要考虑system消息必须保留、工具调用产生的临时消息可以被丢弃、多轮里连续相同的辅助消息可以合并。窗口裁剪不是最优方案但它简单可靠作为短期记忆的地基完全够用。2.2 早期对话别直接丢先“摘要折叠”窗口裁剪有个天然缺陷早期对话里可能有对后续很重要的信息直接丢掉短期记忆就出现断层。比如用户在第3轮说过“我的项目预算上限是5万”第20轮问“那这个方案费用够吗”如果第3轮的对话被窗口挤掉了模型不知道预算约束就可能给出不靠谱的建议。所以我在实际项目里的做法是加一层“摘要折叠”。当对话快超过Token预算时把早期的一部分对话提取出来交给模型生成一段结构化摘要替换掉原始消息。摘要里要包含几个固定字段对话主题、用户目标、已确认的条件、遗留的待办事项、用户表达过的偏好。这样早期信息没有彻底消失而是被压缩成了密度更高的形式继续留在上下文里供模型参考。具体的流程是这样的触发条件是短期对话Token数超过阈值比如4K触发后把最早的对话比如前10轮发送给模型生成摘要然后用一条“system”消息把这个摘要放回上下文同时删掉这10轮原始消息。我踩过的坑是摘要不能无限膨胀。每折叠一次摘要本身也在消耗Token折叠多了摘要比原文还长。所以要给摘要设置上限比如不超过1K如果摘要快超限就需要对摘要做二次摘要把更久远的内容进一步压缩。2.3 别忘了维护“会话状态表”短期对话里除了messages数组还应该维护一张会话状态表。这个表格记录的是当前会话即时性的关键状态比如现在正在处理的任务是什么、用户上一步要求我做什么、有没有等待用户确认的信息、是否需要主动追问。这些信息有时能很自然地写在对话里但从状态表读取比从对话历史里推断要可靠得多、快得多。举个例子用户说“帮我写一份活动方案预算控制在1万以内考虑到线上传播”。你把这个意图解析出来后可以维护一个JSON状态对象{ current_task: 撰写活动方案, confirmed_facts: [预算上限1万, 倾向线上传播], pending_items: [需要确认活动时间, 需要确认目标人群], last_topic: 活动方案策划 }这个状态对象在每次对话后增量更新下一次请求时作为结构化信息注入Prompt。它的价值在于即使对话历史很长模型也能快速锁定当前进行到哪里。状态表与对话历史的区别是对话历史记录“说了什么”状态表记录“事情进行到什么程度了”。两者配合短期记忆才是完整的而不是只有原始文本流。3. 长期记忆的落地姿势向量化存储与检索3.1 写入向量库之前先做好清洗与结构化长期记忆的核心载体是“记忆条目”和向量库。但很多人犯的第一个错是把原始对话直接切片Embedding然后扔进向量库。这带来的问题是检索回来的是片段缺少上下文也缺少可操作性。比如用户说“我不喜欢太长的邮件”如果直接把这个句子存成向量之后你确实可能检索到它但它没有关联到这个用户的身份、没有时间来源、没有重要度用起来很生硬。我在项目里的标准流程是先从不适合直接入库的对话日志中捞候选信息再结构化成一个记忆条目。所谓结构化就是把信息整理成相对完整的自然语言表述同时附上元数据。一个典型的记忆条目长这样{ id: mem_20250115_001, content: 用户偏好简洁的邮件回复一般不超过200字且希望包含明确的下一步行动, user_id: u_10086, session_id: s_20250114_003, entity: [邮件偏好], memory_type: preference, importance: 0.8, created_at: 2025-01-14T22:10:00Z, last_accessed_at: 2025-01-16T09:30:00Z }content是给模型看的主体元数据是给检索系统用的。为什么必须要有元数据因为检索时我们经常需要过滤只查某个用户的记忆、只要偏好类、不要半年前已过期的内容。如果只有向量没有元数据只能做全局相似度搜索这种搜索在单用户场景还能凑合在多用户、复杂业务场景下几乎不可用。至于写入时机常见的触发点有三个用户显式说“记住”这个优先级最高但要先做语义理解明确“记住的到底是什么”重大信息出现用户在对话里说出了关键偏好、业务流程、明确数字系统通过规则或模型判断后入库会话结束或定期处理批量回顾本次会话提取值得沉淀的条目对话抽取不是每次回复都做而是异步做、批量做避免在主请求链路里增加延迟。3.2 Embedding模型和向量库怎么选Embedding模型的选择直接影响记忆召回质量。我选的依据一般是对中文或你的目标语言的支持效果、向量维度、单条文本长度的适应能力、推理成本。社区里有一些在中文场景表现不错的开源Embedding系列一般用512到1024维即可太高的维度会拖慢检索太低了精度又不够。这里我要提醒一个容易被忽略的点Embedding模型会更新换代。你今年用A模型给存量记忆做了向量化明年换成了效果更好的B模型新写进去的记忆向量分布和旧的分布不同会导致检索召回混乱。我的经验是在记忆条目的元数据里记录embedding_model_version换模型时做一次全量重算或者分批迁移。向量数据库选型上我比较看重这几点是否支持元数据过滤、相似度检索性能、持久化和备份是否方便、是否支持横向扩展、社区生态是否活跃。如果只是个人项目或者创业早期用轻量级的开源向量库完全够如果数据量到千万级、QPS比较高就需要考虑分布式方案。这个选择没有绝对的好坏只有是否匹配你的当前规模和团队维护能力。记忆条目的粒度也要在这里说清楚。把一整场对话存成一个向量检索时精度损失严重把每个句子存成一条又太碎检索出来要拼凑信息还容易重复。我的经验是以“一句话概括一个完整信息”为粒度既便于检索命中也便于模型直接引用。3.3 检索与融合从向量库拿什么、怎么拿检索这一步作为长期的记忆如何进入当前对话的决定性环节经常被低估。很多人以为把用户问题Embedding后去向量库做相似度搜索把Top3结果塞进Prompt就完事其实里面有不少细节。第一检索query的构造不能用用户的原话。用户的问题往往是上下文相关的比如他问“那上次说的那个方案怎么样了”如果直接拿这句话去检索向量库里很难命中之前关于“那个方案”的记忆条目。正确的做法是先用模型或规则结合当前的短期记忆把提问改写成一个完整的检索query比如“用户上次提到的跨境电商支付方案进展如何”。这个改写动作能显著提升召回质量。第二TopK的选择要动态。固定Top3在数据少时可能不够数据多时又可能塞入噪声。我一般采用“候选召回重排序”的思路向量库先召回Top20或Top50再用一个打分规则做重排规则里考虑向量相似度、时间衰减、重要度、记忆类型是否匹配。最终只把得分最高的3到5条记忆放入Prompt。这样做比单纯提高向量库TopK更精准也省钱。第三检索结果要格式化之后注入上下文而不是把原文字符串直接拼接进去。我会把每条记忆转成这样的文本形式“相关历史记忆用户曾在某时间提到某事项偏好为某风格当前状态为待确认”。这样模型读到的信息带来源、带上下文比裸标签可信得多。4. 长期记忆的“保养”更新、遗忘与防错4.1 记忆要有版本能被重写和合并长期记忆不是写进去就完了它是会过期的、会冲突的、会重复的。拿“用户喜欢简洁”这个偏好来说他今天可能明确说“不用太简短给我详细一点”。如果新记忆直接覆盖旧记忆整个记忆体系就乱套如果两条同时并存模型每次都会看到互相矛盾的指令。正确的做法是引入“版本化更新”机制。当新记忆与旧记忆指向同一实体或同一主题时不直接新增一条而是把旧记忆标记为“superseded”已被取代新记忆作为最新版本入库。检索时只返回最新版本。这个版本信息就用元数据里的一个字段记录例如superseded_by指向新记忆的id。另外相似记忆的合并也很重要。多轮对话里用户可能换着说法表达同一个偏好直接入库会导致向量库里有很多语义接近的冗余条目。我处理的方式是写入前先做一次相似度检索如果已有记忆的相似度超过0.9就不新增而是把新信息合并进旧条目比如补充一个具体数字或时间。这样能控制记忆总量检索时也不会出现一堆同义结果。4.2 遗忘机制让记忆活起来而不是堆起来长期记忆要无限增长吗当然不是。一是成本问题二是准确性问题——一堆陈年旧记忆会不断干扰当前判断。我的设计是把“遗忘”变成一种主动策略而不是被动接受系统删除。时间衰减检索评分时距离当前时间越久分数越低。事件型记忆的衰减速度要比偏好型快。比如用户两个月前的一句话偏好与两周前的那这边一句相比权重自然要低。容量上限给每个用户的长期记忆设置条目上限超过后按“重要度最低且最近未访问”的优先级淘汰。这其实是一个池子的概念重要的自然留下不重要的慢慢腾出位置。用户可控删除必须给用户一个明确的“删除记忆”入口这既是需求也是隐私保护的基本要求。用户说“把关于我公司财务的信息都忘了”系统要能精确删除对应记忆。遗忘机制要特别注意衰减不能做得太狠。如果任何记忆超过一个月就降权到几乎不可见那长期记忆就退化成短期记忆了。重要性更高的记忆应该衰减得更慢或者干脆不衰减。这需要你根据业务来定义不同记忆类型的半衰期。4.3 防止脏数据与记忆污染记忆系统的最大隐患不是记不住而是记住了一些不该记的、错误的东西然后在关键时刻误导Agent。比如模型自己推测错了用户意图却把推测结果当成事实写进长期记忆后面每次对话都被这个错误记忆带偏。所以我要专门设一条规矩记忆写入前要经过“校验”。校验分两层一层是格式校验必须是一个完整、无歧义、可独立理解的信息另一层是真实性校验区分这是用户明确说的还是模型推断出来的。如果是模型推断要降低重要度并标注“inferredtrue”或者干脆不写入长期记忆。还有一些敏感信息比如用户的密钥、身份证号、支付信息设计上就应该拦截在记忆写入前。这不是技术问题是伦理和合规问题但这个筛子必须在记忆系统的最前端就做好。5. 短长期记忆如何协同一条数据的前半生5.1 从对话到长期记忆的完整链路单独理解短期和长期记忆还不够要在一个真实项目里跑通你需要把整条链路理清楚。我把它展开成一个闭环流程用户发送消息系统先把消息追加进短期messages数组同时更新会话状态表。系统根据短期上下文构造检索query去向量库召回相关长期记忆经重排后选出TopN。将系统指令、短期对话窗口、检索到的长期记忆、状态表一起组装成最终Prompt调用模型。模型生成回复追加进短期messages数组并检测本轮对话是否有值得写入长期记忆的候选信息。如果候选信息满足条件异步构建记忆条目做相似度去重、冲突处理、元数据补全再向量化写入长期记忆库。会话结束时对整段对话做一次摘要折叠更新短期上下文并再次扫描遗漏的重要信息。这个流程里有几个关键设计点一是检索必须在对话收到后立刻发生这样模型回答时能利用长期记忆二是写入是异步的不能阻塞用户响应三是摘要折叠可以放在会话中触发不必等会话结束。5.2 触发写入的几种模式长期记忆写入不能依赖“一拍脑袋”要有一套可解释的触发机制。我常用四种模式组合使用事件触发用户明确说“请记住”“以后都要这样”这个必须触发且重要度直接拉高。语义触发对话内容与已有记忆类别高度相关比如用户开始谈项目预算而你已有“项目预算”实体此时新信息触发合并写入。定时触发每N轮对话做一次快速扫描防止漏掉重要信息。会话结束触发做一次完整回顾生成会话摘要并提取跨会话有价值的信息。我在实际调试中发现定时触发这个机制很容易被漏掉因为很多团队只做了事件触发导致大量隐含偏好没有沉淀。我建议至少保留一个“每5轮或每10轮轻量扫描一次”的逻辑只做抽取不阻塞主流程这样漏记的概率会降到很低。6. 常见问题与排查实录6.1 问题速查表记忆系统是分布式链路每个环节都可能出问题。我把实际踩过的坑整理成一张速查表现象可能原因排查思路对话一长就报超限短期窗口没有按Token裁剪或Token估算误差太大检查裁剪逻辑是否在会话中触发打印每条消息的Token占用和总用量对话长但回答变差窗口裁剪把关键约束丢掉了在截掉的消息里根据关键词和摘要判断是否有用户明确提到的数字、偏好、条件长期记忆检索出一堆无关结果检索query直接用用户原话TopK设置过高Embedding模型不匹配改成改写后的query降低TopK加元数据过滤条件记忆互相矛盾缺少版本化机制新旧记忆共存给记忆加superseded机制检索只返回最新版本回答中频繁提用户早就忘了的旧事时间衰减没生效或重要度权重太低检查时间衰减系数给不同类型的记忆设不同半衰期记忆写入很多但用起来却找不到条目粒度太粗或检索字段不匹配检查写入记忆的embedding内容是否完整尝试调整粒度用一句话一个信息点换Embedding模型后召回明显变差新旧向量分布不一致在元数据里记录模型版本规划全量重算或分批迁移6.2 我的调试建议先做个记忆可视化面板最后说一个我体会很深的事记忆系统是黑盒你很难知道模型到底用了哪条记忆、哪条记忆没有被检索到、哪条记忆写坏了。我强烈建议你在一开始就给记忆系统做一个最简单的面板哪怕只是打印日志。面板上至少展示三块内容当前短期上下文里包含哪些消息、摘要、状态对象各占多少Token本次请求实际检索到了哪些长期记忆每条的来源和得分是多少本轮对话触发了几次写入分别写入了什么内容重要度是多少有了这个面板排查问题就是在看证据而不是靠猜。我在一个真实项目里就是靠这个面板发现某类记忆迟迟没被写入原因是触发判断里有个字段拼错了。这种问题如果你没有可视化日志可能好几天都定位不到。6.3 我自己踩过的最深的坑分享一个反复出现的坑短期记忆和长期记忆的边界没划清导致同一个信息既在短期上下文里又在长期记忆里模型经常自相矛盾。后来我定了一条规矩——凡是当前会话内产生的信息除非用户明确要求记住或者有跨会话价值否则不写入长期记忆凡是已经写入长期记忆的信息就不再往短期上下文里重复塞原始句子最多放一条“该信息已有记录如需更新可修改”的提示。这条规矩不算复杂但立竿见影模型回答的稳定性明显提高。另外对记忆条目的写入频率一定要做限流。有些人设计的系统每轮对话都往向量库写几条用户问了几十轮库里面出现几百条高度重复的记忆检索时十条有八条是同一个意思。这时候召回精度必然崩。我当时做了一个很笨但有效的措施写入前先做一轮相似度检查相似度超过阈值就只更新旧条目的last_accessed_at不新增。这样库里数据量稳住了检索效果也稳了。做记忆系统这个事情最大的感受是技术上没有太多神秘的地方窗口、摘要、向量、检索、更新、遗忘每个模块都是成熟技术难的是把它们组织成一个符合业务直觉的系统。你先想明白业务到底需要Agent记住什么再决定怎么记这个顺序千万别搞反。跑通了一个最小闭环之后再逐步加版本、加衰减、加可视化整个系统就会越来越像一个真正会“记得事儿”的助手了。

相关新闻

前端任务进度卡0/1:三个静默失败点的定位与工程修复

前端任务进度卡0/1:三个静默失败点的定位与工程修复

1. 现象确认:任务卡在 0/1,但不是没跑先说明一下背景。我这边内部效率工具里有一个叫 WorkBuddy 的模块,每天会推一批小任务,其中有一个“探索优秀灵感”的任务,规则是:从推荐卡片里点开一篇内容&#xff0…

2026/10/18 9:40:32 阅读更多 →
高德地图SDK反编译解析:RouteOverlay与AMapUtil核心逻辑还原

高德地图SDK反编译解析:RouteOverlay与AMapUtil核心逻辑还原

简介:本资源是一套面向Android开发者与GIS初学者的高德地图集成实战资料包,聚焦地图标注、路线规划及定位功能的代码级实现。适用于导航类App开发、校园/园区位置服务系统搭建等场景,帮助开发者快速掌握高德地图SDK核心API调用与UI交互逻辑。…

2026/10/18 9:40:32 阅读更多 →
PHP缓存与数据库不一致:从原理到实战的解决方案详解

PHP缓存与数据库不一致:从原理到实战的解决方案详解

1. 从一次线上事故说起:缓存和数据库为什么总是“打架”这张标题我盯了很久,因为“缓存与数据库不一致”几乎是每个PHP开发者在业务量上去之后都会撞上的墙。先讲个我亲历的场景:某个电商项目的商品详情页,Redis里存了一份商品库存…

2026/10/18 9:40:32 阅读更多 →

最新新闻

告别木偶Agent:用分层任务拆解构建可靠智能体系统

告别木偶Agent:用分层任务拆解构建可靠智能体系统

做Agent开发这几年,我踩过最大的坑就是亲手造出一个又一个木偶Agent——demo阶段看起来什么都会,工具调用行云流水,一丢到真实场景就崩得稀碎。后来我把这些翻车案例翻来覆去地复盘,发现根源几乎一致:大多数人都在用一…

2026/10/18 10:21:42 阅读更多 →
瑞幸把咖啡做进 CLI:用 TaoToken 统一 Key 打通终端点单工作流

瑞幸把咖啡做进 CLI:用 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/18 10:21:42 阅读更多 →
2026年03月26日全球AI前沿动态:TaoToken统一Key看大模型、智能体与机器人开源进展

2026年03月26日全球AI前沿动态: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/18 10:21:42 阅读更多 →
从MCP协议到Awesome MCP Servers:AI工具链的选型与落地实践指南

从MCP协议到Awesome MCP Servers:AI工具链的选型与落地实践指南

如果你最近在关注AI应用开发,肯定绕不开一个词:MCP。只要打开代码托管平台搜一下“awesome-mcp-servers”,就能看到一个被无数人收藏过的仓库,它把散落在各处的MCP服务器、客户端、SDK和教程整理成了一份索引清单。这篇文章不打算…

2026/10/18 10:21:42 阅读更多 →
【清华代码熊】Coding 测评 GLM 5.1、DeepSeek V4,TaoToken 统一 Key 怎么选?

【清华代码熊】Coding 测评 GLM 5.1、DeepSeek V4,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/18 10:21:42 阅读更多 →
主流大模型API聚合平台2026年横评:词元之河与硅基流动等五家对比

主流大模型API聚合平台2026年横评:词元之河与硅基流动等五家对比

先把概念说清楚:大模型 API 聚合平台,是把多家厂商的推理能力统一为标准接口的云端中间层——一个 API Key 加一个接入地址,就能在模型之间自由切换。它的三大价值很直接:接口统一(多数兼容 OpenAI 格式,代…

2026/10/18 10:20:41 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →