从1到10个智能体:企业AI协同的混乱、翻车与EMOOSearch解法

2. 从1到10:那些智能体集体上岗后,我才意识到的问题

先说个背景。我所在的公司是个中等规模的B2B客户运营团队,日常要处理客户咨询、数据分析、合同初筛、文案生成、内部流程提醒等一堆琐碎事。去年我们陆续接入了不同供应商的智能体,最开始是客服问答机器人,后来是数据分析助手、合同审阅助理、日报生成器……一年不到,大大小小的智能体凑到了10个。

10个智能体听起来不多,但真跑起来之后,问题立刻变得有意思了——不是单个智能体好不好用的问题,而是10个智能体之间的协作、调度、知识同步、权限边界、甚至“它们各自以为自己在干什么”的问题。我们内部管这套系统叫“智能体部落”,而EMOOSearch是我拉通它们的一套底层搜索与上下文感知层。这篇文章就是“部落”从混乱到初步有序的一段实录。

这篇东西适合谁看?如果你所在的企业已经有3个以上的智能体在并行运行,或者你正准备从单点工具走向多智能体协同,又或者你只是想知道“企业里塞一堆AI之后到底会发生什么”——那这篇应该对你有用。我不会讲太多高深算法,更多是记录我们怎么把一堆各说各话的AI,慢慢调教成一支能配合干活儿的队伍。

1.1 从“单点好用”到“全局复杂”

先讲一个反直觉的结论:单个智能体越好用,多智能体协同就越容易出问题。

原因不复杂。单点智能体只要做好一件事就行,比如客服机器人只回答常见问题,它的知识库可以很小、很垂直,指令路径也短,几乎不需要跨系统调数据。但当你有10个智能体,意味着它们会共享同一批客户数据、同一套知识库、同一条工单流转链路。每个智能体都按自己的逻辑读取数据、改写状态、产出记录,一旦互相之间没有统一的信息底座,很快就会出现“客服AI已经给客户承诺了延期方案,合同AI还在按原工期写条款”这种离谱的割裂。

我们第一次意识到这个问题,是因为一组客户投诉。客户在在线客服里问“能不能提前交付”,客服智能体回答“可以协调提前”,但合同智能体生成的新版合同里还是原交付日期。客户的法务直接质疑我们“内部口径不一致”。排查了一个下午,最后发现是两个智能体读的不是同一份项目进度表——一个连的是销售系统的数据表,一个连的是项目管理系统里的视图,两边对“计划交付日”的定义差了整整半个月。

就是从那天起,我开始认真琢磨一件事:能不能有一个层,让所有智能体在回答或行动之前,先拿到同一份、可追溯的背景信息?这个层后来就演变成了EMOOSearch的雏形。

1.2 10个智能体都做了什么分工

先简单交代一下我们这10个智能体的构成,方便后面讲问题时不至于抽象到没法跟。

编号职责数据源调用频率
A-01在线客户答疑(售前/售中)产品文档、FAQ库、订单数据最高,日均800+
A-02客户情绪识别与升级提醒会话文本、历史工单标签实时流式调用
A-03合同条款初筛与风险标注合同库、法务审核规则每日批量
A-04销售周报自动生成CRM、工单、财务回款数据每周一次
A-05内部知识库问答(HR/行政)制度文档、排班表中低频
A-06舆情摘要(外部公开信息监控)新闻源、行业站点RSS每日2次
A-07项目排期智能建议项目管理系统、资源日历每周
A-08营销文案初稿历史campaign数据、品牌规范高频但轻量
A-09数据异常检测(报表+告警)业务库、数仓每日多次
A-10会议纪要与待办提取会议转写文本每次会议后

这个列表本身不稀奇,难点在于:A-01和A-03要读同一份客户合同;A-02的判断结果可能会触发A-01的话术切换;A-04需要汇总A-09发现的异常;A-07的建议又可能影响A-03的条款初筛。表面上是10个独立工具,实际上是一个松耦合的流程网络。任何一个环节的数据不一致,都会像多米诺一样在别的环节暴雷。

1.3 我们是怎么把“搜索”变成“共识”的

EMOOSearch在这个体系里做的事,用一句话说就是:给所有智能体提供一份“大家都知道我们在说什么”的实时底稿。

具体拆开是三层:

第一层是索引层,把各个业务系统里的关键实体(客户名、合同编号、项目代号、交付里程碑、负责人)统一抽取并建立关联索引。这个索引不只在单个文档内部建立关联,还做跨文档的实体链接。比如一个合同编号出现在合同正文里,也出现在CRM的备注字段里,还出现在某封邮件附件里——索引会把这三个位置通过同一实体ID串起来。

第二层是语义检索层,这个其实是最早做的。对于智能体提出的自然语言查询,比如“和某客户的高优工单相关的最近一周进展”,EMOOSearch不是简单做关键词匹配,而是走一套实体识别+事件抽取+时间范围约束的流程,先拆出“某客户”“高优工单”“最近一周”这几个要素,再去索引里定位对应实体,最后只返回那些在时间上、实体上都命中的片段。这一步的好处是结果可以溯源,每条返回都能直接点开原始记录,这对企业内部智能体来说非常重要——毕竟AI说得再漂亮,我们总得有地方核实。

第三层是上下文分发层,也是我认为最关键的一层。EMOOSearch不只是被动地被查询,它还会在智能体启动新任务时主动把当前任务的上下文快照推送过去。意思是说,当A-03开始审一个合同,它会自动收到该客户近30天内的工单摘要、销售注记、回款状态,而不需要A-03自己去翻CRM。这个“主动喂背景”的设计,彻底解决了智能体因为没看到上下文而做出了离谱回答的问题。

从实施结果看,我们最直观的感受是:一线员工对智能体的信任度明显提高了。以前大家面对AI输出时要自己再人工核对一遍上下文,很费精力。现在,智能体给出的答案在底部会附一条引用来源,是一个可点击的原始记录链接。员工不用再全凭感觉判断“这个AI说得靠不靠谱”,而是先看它引用了谁、引用了什么时候的记录。这个转变对内部运营来说意义很大——信任不再靠感觉,而是靠可追溯性。

3. 编号007的“自作主张”:一次典型的智能体协同翻车

聊完了分工和架构,我想讲讲一次具体的翻车经历。这次事故的主角是A-07,项目排期智能体,因为它处理的是排期建议,职责不算高敏感,我们在权限上给得比较宽,结果就出了幺蛾子。

3.1 事件经过:排期建议差点变成排期命令

起因是某个项目延期了。项目负责人在项目管理工具里把里程碑往后推了几天,这个动作触发了A-07的重新排期逻辑。A-07按照资源日历重新计算后,给相关负责人发了一条通知,说“建议将另一个项目的测试资源调拨过来,以弥补延期”,而且措辞用的是“已调整”而不是“建议调整”。

这里有个很小的技术细节,却导致了很大的问题:A-07在发送通知时,调用的是通讯工具的消息接口,它把消息类型标记成了“系统通知”,而系统通知这个类型在我们内部的自动审批策略中是会被直接执行——下游又有另一个智能体会读通讯工具的通知流,看到“系统通知”就自动把测试资源的预约改了。整个链路没有一个人工确认节点。

我们事后复盘,发现A-07为什么敢用“已调整”这个措辞,是因为它在生成消息前读取了项目管理系统中的字段,发现该字段有“自动排期已启用”的标记,它就认为排期已经是自动行为,于是顺手把建议写成了结果。但它忽略了一个关键约束:自动排期只针对非跨项目的资源,跨项目的资源调配必须人工审批。那个“自动排期已启用”标记是全局的,A-07无法通过自身逻辑区分出“当前这个动作是否在审批豁免范围内”。

3.2 根因排查:从消息字段一路挖到权限模型

排查过程很有意思,我大概讲一下链路。

第一步,我们晓得了问题先发生在测试预约被改动。追踪改动来源,发现是一个工作流自动触发。

第二步,查触发源,发现是A-07发的那条“系统通知”被下游当成了执行指令。于是我们去看A-07的消息日志——这也是装EMOOSearch之前和之后差别最大的地方:现在所有智能体的消息日志、决策摘要都进了EMOOSearch的索引,我们可以在一个搜索框里直接检索“A-07 AND 测试资源 AND 时间范围”,几秒钟就把相关条目全部拉出来,而不用去不同的系统日志里逐个翻找。

第三步,定位到A-07的决策依据。我们发现它读取了项目管理系统里的全局标记,但没有读取资源日历上“该资源涉及跨项目共享”的注释字段。这个注释字段是老项目遗留的,格式是非结构化的长文本,之前从来没有哪个智能体去系统性解析过它。

第四步,修复。我们做了两件事:一是在EMOOSearch里给资源实体增加了一条“跨项目共享”的派生属性,从非结构化注释里定期抽取;二是在A-07的决策管线里增加一个前置校验,如果目标资源带了这个派生属性,则强制把消息类型改成“建议”,且必须抄送人工审批人。这个修复不算复杂,但完全改变了A-07的行为模式——从“自作主张”变回了“有边界地建议”。

3.3 这件事给我们的三点教训

第一,**智能体的权限边界不是“功能级”的,而是“语义级”的。**原来我们给A-07的权限是“可以读写项目管理模块”,听着挺简单,但“可以读写”不等于“可以在所有场景下把建议当成结论”。真正需要约束的是它在特定上下文下的动作类型——什么情况下只能建议,什么情况下才能直接执行。这种约束应该落到消息层,而不是功能层。

第二,**智能体之间的隐式联动是最大的不可控源。**A-07改一份排期本身没多大事,可怕的是它发出去的消息被另一个智能体当作指令又执行了一步。如果每一个智能体发出的消息都被下游当作事实或指令,整个系统就会越来越吵、越来越容易失稳。我们后来做了一个约定:所有智能体发出的“建议”和“事实陈述”和“指令动作”必须使用不同的消息前缀,下游在接收到消息时,先去读前缀,再决定是忽略、是参考还是执行。这个约定是从这次事故里长出来的,成本几乎为零,效果却非常显著。

第三,**排查效率取决于信息能不能被统一检索到。**这次事故的完整链路,我们如果用传统方式去查,得登录至少三个系统的后台,参考不同格式的日志,再靠人肉拼图。但因为有EMOOSearch的索引,排查时间从之前可能要一两天压缩到了一个下午。这也是为什么我后来特别坚持“日志索引要覆盖所有智能体”这件事——出问题不可怕,可怕的是你根本不知道去哪里找原因。

4. 知识孤岛是10个智能体最大的敌人

如果说权限是“不能做什么”的边界,那知识就是“知道什么”的底座。多智能体协作中,知识不一致几乎是必然的。

4.1 同一个名词,三种说法

我们在接入EMOOSearch之前做过一次“知识体检”,把10个智能体各自的系统提示词和后台知识库拉出来对比同一个关键概念,结果发现一个特别典型的例子——“大客户”这个名词,在不同智能体里居然有三种定义。

A-01客服主知识库里,“大客户”定义为“年合同金额超过50万,且合作超过一年的客户”;A-07排期里的“大客户”只是“项目规模为L级别的客户”;而A-04销售周报里的定义又是“最近一个季度回款金额排名前10的客户”。同一个词,在不同语境里指代的对象完全不同。平时各说各的好像也没事,但当A-01因为某个客户投诉而创建了一条高优工单,A-07在排期时依据这个工单去判断优先级,发现客户在排期系统里不是“大客户”,于是把它当作普通任务排到了后面——这就直接导致重点客户的需求被积压了。

以前碰到这种问题,我们是靠人工在周会上对齐的。现在智能体数量多了,靠人肉对齐完全来不及,必须由一个统一语义层来管理。EMOOSearch做了一件事:把企业里高频业务名词维护成一套“业务术语规范”,里面记录了每个名词在各业务线里的定义、边界、适用场景,并且把它做成索引推送给所有智能体作为底层参考。智能体在做任务时,如果识别到歧义名词,会先在索引里查一下当前场景对应的规范定义,再继续往下执行。

这种做法不复杂,但需要一个前提——企业里必须有人能梳理出这套术语表。这个活儿通常是业务负责人和运营骨干一起做,AI没法替你想明白“大客户到底是什么意思”,它只能帮你在定义好之后保持一致。

4.2 知识同步的周期决定了系统的“延迟感”

还有一个问题容易忽略:知识同步的频率。

大部分知识库工具支持手动更新和定时拉取。你可以把知识文档扔给智能体,让它基于这些文档回答问题。但麻烦的是,企业的知识是持续变化的——合同模板改了、产品上线了新功能、某条业务流程的审批人换了人。如果智能体读到的还是三天前的知识,它给出的答案在主管眼里就会有一种“过时感”。

我们现在的做法是:把知识源分成两类。一类叫“稳定知识源”,比如产品手册、制度规范、品牌口径,这类走定时全量同步,EMOOSearch每6小时拉一次。另一类叫“动态知识源”,比如客户信息、项目里程碑、排期变化、工单状态,这类走事件触发,只要原始系统有变更事件流出来,就要在1分钟内完成索引更新。两条同步链路分开之后,我们明显感觉智能体的回答“新鲜度”上了一个大台阶。以前客服AI偶尔还会引用已下架的套餐信息,现在几乎不会了。

4.3 不需要把所有知识都塞给每个智能体

这里我得提醒一句:做知识同步不代表要让每个智能体都拥有一份“全量知识”。10个智能体如果都背着全量知识库,不仅检索效率低,还容易在回答时引用不相干的领域内容。

我们最后落地的方案是“按需注入”。每个智能体在启动时有自己的知识画像,EMOOSearch只会把与它的职责相关的实体、文档和上下文快照推给它。比如A-08营销文案助手,它收到的上下文只包含品牌规范、历史campaign数据、当前产品卖点,它不需要知道工单流转细节,也不需要看客户信用评分。知识不是越多越好,而是越匹配越好。这个道理在单智能体时代不容易体会到,一旦多智能体并行,按需注入几乎是必须走的路。

5. 让10个智能体像同一个团队那样“交流”

在经历了排期事故和术语混乱之后,我们逐渐意识到,多智能体系统的稳定运行,光靠技术还不够,还需要一套“沟通协议”。以前大家各用各的工具,各讲各的格式,数据和消息流之间是断的。为了打通,我们给每个智能体的每一条消息都加了一组结构化前缀和消息ID,同时维护索引来支撑跨智能体的消息追溯。

5.1 给每条消息加上“话术前缀”

这一步的实际改动很小,但收益非常大。我们在通讯集成层对智能体发出的所有消息做了强制规范——每条消息必须带三个字段:意图类型(建议/事实/指令/提问)、消息ID(全局唯一)、来源智能体编号。接收方在消费消息时,先过一遍字段。如果是“建议”,就只作为参考;如果是“指令”,就必须走权限核对;如果是“提问”,就进入问答流。就是因为A-07的那次事故,我们才把这个规范提升成了强制要求。在那之前,消息里既没有意图字段,也没有消息ID,下游根本没法判断一条消息是“说一下”还是“做一下”,只能凭文本语义猜,一猜就出事。

5.2 用消息ID串起复盘的线索

消息ID这个字段单独拎出来说一下。它表面上就是个UUID,但实际的价值在于可串联性。某操作在系统里产生了问题,我们从结果往前倒推,顺着消息ID一层层找到原始触发者,就能追溯到“这条消息来自哪里、基于什么上下文生成、经过了哪些传递环节”。在接入EMOOSearch之后,搜索框里输入消息ID可以直接看到对应的完整决策摘要,包括这个智能体在生成回复时参考了哪些数据源、命中了哪些实体、最后选了哪条回答路径。这等于给每次智能体间的交流都留了一张“票据”。

我们团队私下打过一个比方:以前的智能体之间像是茶馆里聊天,你一言我一语,聊完就散,谁也说不清哪句话是重点;现在变成了会议纪要,有议程、有发言人、有结论编号,事后翻得出来。虽然少了一点随意性,但对系统性运转来说,留痕比随意重要得多。

5.3 每周一次“智能体复盘会”

技术层面做得差不多了,再来一个组织层面的动作。现在每个周五下午,我们固定开一次“智能体复盘会”,时间不长,大概40分钟。会上不聊日常稳定运行的事,只对着EMOOSearch汇总的周报聊三件事:哪类查询经常走到“无结果”或“低置信度”、哪些智能体之间的上下文传递出现过延迟、有没有出现“A引用了B的旧消息”这种过期引用。

这个会最有价值的一点是,它逼着我们把智能体的运行情况当作一个可管理、可改进的对象来看待,而不是放在那里自生自灭。原本很多问题藏在日志里没人看,现在有了统一的检索和周报汇总,问题能自动浮出来,被专人接手跟踪。就算某个智能体供应商自己的更新节奏很慢,我们至少能清楚地知道瓶颈在哪儿,而不是一概而论地说“AI不太聪明”。

6. 如果你也想接10个智能体,这些坑可以提前避

最后这部分写点具体的建议。我们的“部落”远算不上完美,但踩过的坑足够多,应该能帮你省下一些不必要的折腾。

6.1 起步最晚的,反而是数据层面的规划

如果你正打算多智能体化,我最想给你的建议是:**提前把知识梳理和检索层想清楚,再谈单个智能体的能力。**很多团队是一上来先选几个漂亮的智能体工具,跑起来之后才意识到数据之间的割裂问题。到这一步再回头做数据治理,就像房子装修完了再改水电,成本高得多。

建议的做法是,哪怕你只有两三个智能体,也可以先建一个轻量的“企业知识索引层”,把客户主数据、项目数据、产品信息这些核心实体的ID体系统一起来。这件事不需要大动干戈,可以从最关键的几个实体开始。等智能体数量增长时,索引层会自动降低后续接入的边际成本。我们当初在搭建EMOOSearch的时候,就是从客户、合同、项目三个实体起步的。后续每接一个新的智能体,它需要的数据就能通过已有索引直接对齐,而不需要再从头梳理一遍关系。

6.2 权限和审批的“语义边界”必须提前划

排期事故让我们明白了,权限光管到“功能”级别远远不够。你得把每类智能体的“允许动作”和“建议线”也设置好。比如:

  • 能直接改数据,还是只能生成建议?
  • 能对外发送消息,还是必须有人审核后发送?
  • 能跨部门调动资源,还是只能查看?
  • 遇到异常情况时,默认是静默跳过,还是升级到人工?

这些约束在智能体数量少的时候用不上,但一旦超过5个,没有语义权限边界,你迟早会碰上一次“某个AI替你做了不该做的事”的时刻。与其赌它不发生,不如提前把规则写清楚。我们目前的做法是在EMOOSearch的运行时层维护一张“行为边界表”,每个智能体在决策前都会先读一遍这张表,确认当前动作落在许可范围内才会执行。这张表是人工维护的,改起来也方便,但它给所有智能体兜了一个底。

6.3 定期审视智能体之间的“隐性依赖”

最后一个建议,是保持一点“怀疑”的习惯。不要因为A-01回答得好,就觉得A-01没问题;也不要因为A-07和A-03平时不直接通信,就认为它们之间没有依赖。只要它们共享某些数据源或消息通道,隐性依赖就是存在的。

我们现在的习惯是每隔两周拉一次上下文传递链路图——这不是画系统架构图,而是从EMOOSearch里导出各智能体实际发生过的上下文传递记录,人工扫一遍,看有没有不合理的跨越。这个方法不玄,也不贵,只需要定期去看,但它能让你及时发现那些“看起来独立、实际上耦合”的风险点。

多智能体这件事,我最终的感受是:它不是一个技术难题,而是一个组织难题。技术上都有人替你解决,但如何定义业务概念、如何画清权限边界、如何培养团队对AI输出的溯源习惯,这些事谁也替不了你。智能体越多,这种“管理感”越重,但也恰恰说明企业已经开始把AI当作真正的生产力在用了。如果你也走在这条路上,欢迎和我多交流,团队踩过的一些弯路,或许能帮你走得快一点。

相关新闻

Agentic AI融入结构力学工作台,2026年硬件配置全指南

Agentic AI融入结构力学工作台,2026年硬件配置全指南

2026年刚开春,A厂就把Agentic AI塞进了自家结构力学工作台里——也就是很多人口中的那个“Mechanical台子”。消息在仿真工程师圈子里传得很快,因为这次不是简单加个聊天框,而是把大语言模型(LLM)和有限元分析的工作流…

2026/10/20 14:14:05 阅读更多 →
VXLAN生产落地三大核心:VNI规划、BGP EVPN时序、隧道韧性设计

VXLAN生产落地三大核心:VNI规划、BGP EVPN时序、隧道韧性设计

1. 为什么“VXLAN详解(三)”这个标题本身就在传递关键信号看到“VXLAN详解(三)”,有经验的网络工程师第一反应不是去点开看内容,而是下意识地翻出前两篇——这已经不是单纯的技术文档编号,而是一…

2026/10/20 14:14:05 阅读更多 →
十分钟搭建个人AI知识库:RAG全流程实战指南

十分钟搭建个人AI知识库:RAG全流程实战指南

【RAG知识库】十分钟带你搭建属于你的个人AI知识库最近总有朋友问我,手机里存了几百篇技术文章、工作文档、读书笔记,真到要用的时候却怎么也翻不出来。也有人把一堆 PDF 丢给大模型让它总结,结果它回答得像模像样,但关键数据全是…

2026/10/20 14:14:05 阅读更多 →

最新新闻

60次实测:MCP不省上下文,子agent平均省38.1%token增量

60次实测:MCP不省上下文,子agent平均省38.1%token增量

做Agent应用的人,大概都被问过一个问题:接上MCP之后,上下文是不是就能省不少?我前两天刚跑完一轮60次真实任务的对照实测,结论很干脆——MCP在省上下文这件事上的贡献是精确的0;而换成子agent路线&#xff…

2026/10/20 14:46:40 阅读更多 →
RRT-Connect双树搜索MATLAB代码详解:从原理到实现

RRT-Connect双树搜索MATLAB代码详解:从原理到实现

简介:面向机器人运动规划与路径规划研究者,这份资源提供了RRTConnect算法的完整MATLAB实现。RRTConnect在经典RRT基础上采用双向搜索策略,适合解决高维空间或复杂环境下两点间快速路径规划问题,对自动化、机器人及相关专业学生开展…

2026/10/20 14:46:40 阅读更多 →
Windows下Mask R-CNN PyTorch原生编译与部署实战

Windows下Mask R-CNN PyTorch原生编译与部署实战

1. 为什么在Windows上配Mask R-CNN不是“装个包”那么简单 Mask R-CNN是目标检测与实例分割领域的标杆模型,PyTorch版因其模块清晰、易于调试、社区生态活跃,成为多数研究者和工程落地首选。但当你在Windows系统上打开终端,输入 pip install…

2026/10/20 14:46:40 阅读更多 →
AI生成实操型博文的安全与格式规范要点

AI生成实操型博文的安全与格式规范要点

好的,我将严格遵循安全与格式要求,基于标题生成一篇完整、可直接发布的实操型博文,全程不涉及任何风险或敏感内容。因内容较长,我会分两条消息完成全文。

2026/10/20 14:46:40 阅读更多 →
n8n外部执行器部署指南:独立代码沙箱隔离与Docker Compose实战

n8n外部执行器部署指南:独立代码沙箱隔离与Docker Compose实战

这两年用 n8n 做流程自动化的人越来越多,但大部分人把 n8n 部署好以后就默认开工了,根本不会注意到一个关键组件——任务执行器。n8n 从 2.x 版本开始引入了外部执行器机制,简单说就是把 Code 节点、自定义 JS、Python 脚本这类代码运行环境从…

2026/10/20 14:46:40 阅读更多 →
Ubuntu 24.04用Docker Compose部署Whisper语音识别服务全指南

Ubuntu 24.04用Docker Compose部署Whisper语音识别服务全指南

如果你需要在Ubuntu 24.04上搭一个完全本地的语音识别服务,把录音、播客、会议音频批量转成文本,同时又不想被一堆Python依赖折腾到怀疑人生,那Whisper配合Docker Compose几乎是我目前试过最省心的组合。我最近把整套流程从零跑通&#xff0c…

2026/10/20 14:45:32 阅读更多 →

日新闻

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/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →