Hermes入门优先级路线:消息模型、任务编排、错误处理与可观测性

1. 为什么“入门顺序”比“功能清单”更重要

1.1 三个月踩坑后的真实感受

刚接触 Hermes 的前两周,我跟大多数人一样,一头扎进功能列表里,看到什么新鲜就试什么。结果三个月下来回头看,真正让我效率发生质变的,其实只有四件事,其余大量时间都花在了“看起来很重要、实际上用不上”的弯路上。这篇文章不打算给你一份完整的功能说明书,那种东西官方文档比我写得好。我想做的是把这三个月的经验压缩成一条入门优先级路线,告诉你先学什么、后学什么、什么可以暂时不碰。

Hermes 这个工具本身的定位,是围绕消息传递、任务编排和异步处理展开的一套运行时框架。它的能力边界很宽,从简单的消息队列到复杂的多步骤任务流都能覆盖。正因为宽,新手最容易犯的错就是“什么都想学”,最后什么都没学透。我见过太多人在群里问的问题,其实都是因为跳过了最基础的那一层,直接去搞高级特性,结果连报错都看不懂。

所以这篇文章适合两类人:一类是刚拿到 Hermes、还没跑通第一个完整流程的新手;另一类是用了一段时间但总觉得“使不上劲”、效率上不去的中级使用者。我会把四件事按学习顺序讲清楚,每一件都告诉你为什么先学它、具体怎么练、练到什么程度算过关,以及我踩过的那些坑。

1.2 四件事的优先级逻辑

先给结论,这四件事的推荐顺序是:

  1. 消息模型与生命周期——这是 Hermes 的世界观,不理解它,后面全是死记硬背。
  2. 任务编排与依赖管理——这是 Hermes 真正区别于普通队列的地方。
  3. 错误处理与重试策略——决定你的系统是玩具还是能上生产的。
  4. 可观测性与调试手段——出问题时你能不能自己救自己。

这个顺序不是随便排的。它遵循的是“先建立心智模型,再掌握核心能力,然后补上健壮性,最后学会自救”的认知路径。很多人反过来,先学调试工具,结果连正常流程都没跑通,调试工具也帮不了你。也有人跳过第一件直接学编排,写出来的任务流逻辑混乱,自己都说不清消息在哪一步变成了什么状态。

提示:如果你时间极其有限,只能先学一件,那就学第一件。消息模型是 Hermes 的地基,地基歪了,上面盖什么都是危房。

接下来我逐件拆解,每一件都会给出具体的练习方法和判断标准。

2. 第一件事:吃透消息模型与生命周期

2.1 消息不是“数据包”,而是有状态的生命体

新手最容易把 Hermes 里的消息理解成一个“数据包”——发出去、被消费、结束。这个理解在简单场景下能用,但一旦涉及重试、超时、死信,就会彻底崩溃。Hermes 的消息是有完整生命周期的,它在不同阶段有不同的状态,而每个状态之间的转换都有明确的触发条件。

我建议你花整整一周时间,只做一件事:把一条消息从创建到销毁的全过程画出来。不是看文档画,而是自己动手跑,用日志把每个状态转换点打出来。你会经历的状态大致包括:创建、入队、被投递、处理中、处理成功、处理失败、进入重试、进入死信、最终归档。每个状态的名字可能因版本而异,但逻辑是相通的。

为什么这件事必须最先做?因为后面所有的编排、重试、监控,本质上都是在操作这些状态。你不知道消息现在处于哪个状态,就不知道该用什么手段去干预它。这就像医生看病,连病人现在是什么状况都不清楚,怎么开药?

2.2 用一条消息跑通全生命周期

具体怎么练?我给你一个我当初用的方法。先写一个最简单的生产者,发一条消息,消息体里带一个自增的序号。然后写一个消费者,在处理的每个关键节点打印日志,日志里必须包含消息 ID 和当前时间戳。接着故意制造三种情况:正常处理、处理时抛异常、处理超时。观察这三种情况下消息的状态流转有什么不同。

这个练习看起来简单,但信息量极大。你会第一次直观地看到:原来失败的消息不会立刻消失,它会进入重试队列;原来重试次数是有限制的,超过之后会进死信;原来死信里的消息是可以被重新捞出来处理的。这些认知,光看文档是建立不起来的,必须亲手跑一遍。

我当初在这一步犯的错是:只看了文档里的状态图,觉得自己懂了,结果实际跑的时候发现日志里的状态和文档对不上。后来才明白,文档画的是理想状态,实际运行中还有各种中间态和竞态条件。所以我的建议是,文档看一遍就够,剩下全靠动手。

2.3 过关标准:能预测消息的下一步

怎么判断自己这一关过了?我的标准是:随便给你一条消息的当前状态和一个外部事件(比如消费者崩溃、网络超时、手动干预),你能准确预测它接下来会变成什么状态。如果你能做到这一点,说明你的心智模型已经建立起来了。

这个能力在实际工作中价值巨大。比如线上突然出现大量消息堆积,你能立刻判断出是消费者处理太慢,还是重试风暴导致的。再比如你想做一个“延迟消息”功能,你知道该在生命周期的哪个环节插入延迟逻辑,而不是瞎试。

注意:不同版本的 Hermes 在状态命名和转换细节上可能有差异,但核心逻辑是一致的。学的时候抓逻辑,不要死记状态名。

3. 第二件事:掌握任务编排与依赖管理

3.1 从“单条消息”到“任务流”的思维跃迁

第一件事让你理解了单条消息,第二件事要让你理解多条消息之间的关系。这是 Hermes 真正强大的地方,也是很多人用不出效果的原因——他们始终停留在“发一条、收一条”的模式里,没有用上编排能力。

任务编排的核心问题是:一个业务操作往往需要多个步骤,这些步骤之间有先后依赖,有的可以并行,有的必须串行,有的需要根据上一步的结果决定下一步走哪条分支。Hermes 提供了描述这些关系的机制,你需要学会用它来表达你的业务逻辑。

我见过一个典型的反面案例:某开发者用 Hermes 处理订单,把“扣库存”“生成订单”“发通知”三个步骤写成三个独立的消息,然后在一个消费者里依次调用。这本质上还是同步思维,完全没有用上编排。正确做法是把这三个步骤定义成一个任务流,让 Hermes 去管理它们之间的依赖和状态。

3.2 依赖关系的三种基本形态

任务编排里的依赖关系,归根结底就三种:串行、并行、条件分支。串行是 A 完成才能做 B;并行是 A 和 B 可以同时做,都完成了再做 C;条件分支是根据 A 的结果决定做 B 还是做 C。把这三种形态练熟,你就能表达绝大多数业务逻辑。

练习方法:找一个你熟悉的业务流程,比如“用户注册后发欢迎邮件并初始化账户”,把它拆成任务流。先画图,标出每个步骤的依赖关系,然后用 Hermes 的编排语法写出来。写完跑一遍,故意让中间某个步骤失败,观察整个任务流的行为——是整体回滚,还是部分重试,还是跳过继续。

这里有个关键概念叫补偿。在分布式环境里,你很难做到真正的“回滚”,更多时候是用补偿操作来抵消已完成的步骤。比如扣了库存但订单创建失败,补偿操作就是把库存加回去。Hermes 的编排机制支持你定义补偿逻辑,这是它比裸消息队列强的地方。我当初就是没重视补偿,结果线上出现数据不一致,排查了一整天才找到原因。

3.3 编排的边界:什么时候不该用

学编排的同时,也要知道它的边界。不是所有多步骤操作都适合用任务编排。如果步骤之间没有真正的依赖,只是碰巧写在一起,那用普通的消息处理就够了。如果步骤执行时间极短、失败概率极低,用编排反而增加了复杂度。

我的经验法则是:当步骤之间存在状态依赖,且失败后需要差异化处理时,才用编排。否则就是过度设计。我早期就犯过这个错,把一个简单的两步操作硬是写成了任务流,结果调试起来比原来麻烦三倍。

提示:编排的复杂度是随步骤数量指数上升的。超过七个步骤的任务流,建议拆成多个子流,否则维护成本会让你怀疑人生。

4. 第三件事:把错误处理和重试策略做扎实

4.1 错误不是异常,是常态

前两件事让你能跑通正常流程,第三件事决定你的系统能不能扛住不正常的情况。很多人写代码时默认“一切都会顺利”,错误处理随便写个 catch 就完事。在 Hermes 这种异步环境里,这种态度是致命的,因为错误不会立刻反馈给你,它会潜伏在队列里,等到某个时刻集中爆发。

Hermes 的错误处理有几个层次:单条消息的处理失败、任务流中某个步骤的失败、整个任务流的失败。每个层次的处理策略不同。单条消息失败,通常用重试解决;步骤失败,可能需要补偿或者跳过;任务流失败,往往需要人工介入或者走降级逻辑。

我建议你专门花时间做一件事:给每一种可能的失败场景定义处理策略。不是写代码,而是先写文档。列出所有你能想到的失败点,然后逐个决定:重试几次?重试间隔多久?重试失败后怎么办?是进死信、告警、还是走降级?这份文档写清楚了,代码自然就清晰了。

4.2 重试策略的参数怎么定

重试策略里最容易被拍脑袋决定的就是参数:重试次数和重试间隔。很多人直接抄别人的配置,结果要么重试太频繁导致雪崩,要么重试太慢导致用户等太久。参数应该根据业务特性来定。

重试次数取决于失败的性质。如果是网络抖动这种瞬时故障,三次左右通常够用;如果是依赖服务重启,可能需要更多次,但间隔要拉长。重试间隔建议用指数退避,第一次等一秒,第二次等两秒,第三次等四秒,以此类推,并加一个随机抖动避免同时重试。这个策略能有效缓解重试风暴。

我踩过的一个坑是:没有区分“可重试错误”和“不可重试错误”。比如参数校验失败,这种错误重试一万次也不会成功,但我的代码无脑重试,白白浪费资源还掩盖了真正的问题。后来我加了一个判断:只有特定类型的异常才触发重试,其余直接进死信并告警。

4.3 死信队列不是垃圾桶

死信队列经常被当成垃圾桶,消息扔进去就没人管了。这是非常危险的做法。死信队列里的每一条消息,都代表一个需要人工关注的问题。我的做法是:死信队列必须配告警,有新消息进入就通知负责人;同时定期review死信内容,找出共性问题并修复根因。

更进一步,可以给死信消息做一个简单的管理界面,支持查看、重放、丢弃。重放功能特别有用,当你修复了 bug 之后,可以把死信里的消息重新投递,让它们走正常流程。这个功能实现起来不复杂,但能省下大量手工补数据的时间。

注意:死信消息可能包含敏感数据,做管理界面时要注意权限控制,别让不该看的人看到。

5. 第四件事:建立可观测性与调试能力

5.1 看不见的系统等于不可控的系统

前三件事做完,你的 Hermes 应用已经能正常工作了。但“能工作”和“可运维”之间还有一道鸿沟,这道鸿沟就是可观测性。可观测性包括三个支柱:日志、指标、追踪。在 Hermes 场景下,这三样东西的重要性比普通应用更高,因为异步系统的行为更难直观理解。

日志方面,关键是结构化和关联性。每条日志都要带消息 ID 和任务流 ID,这样你才能把散落在不同消费者、不同时间点的日志串起来。我早期用纯文本日志,排查问题时靠 grep,效率极低。后来改成 JSON 格式,配合日志平台,排查效率提升了一个数量级。

指标方面,至少要监控这几个:队列深度、消息处理速率、失败率、重试率、死信数量、处理延迟的分布。这些指标能让你在问题恶化之前就发现苗头。比如队列深度持续上升,说明消费能力跟不上生产速度,可能需要扩容或者优化处理逻辑。

5.2 追踪一次完整的任务流

追踪是最容易被忽略但最有价值的一环。当一条消息经过多个消费者、多个步骤之后,你需要一个工具能把它走过的路径完整呈现出来。Hermes 通常支持在消息头里传递追踪上下文,你要做的就是确保这个上下文在每一步都被正确传递和记录。

我建议你做一个练习:随便挑一条线上的消息,用追踪工具把它的完整路径画出来,标出每一步的耗时。你会发现很多意想不到的事情,比如某个步骤耗时远超预期,或者某两个步骤之间有不必要的等待。这些发现直接指向优化点。

调试方面,Hermes 通常提供了一些本地调试手段,比如模拟消息投递、单步执行任务流。这些工具要尽早学会用,不要等到出问题才去翻文档。我当初就是线上出故障时才第一次用调试工具,手忙脚乱,如果提前练过,处理时间至少能缩短一半。

5.3 告警要精准,不要狼来了

可观测性做得好不好,最终体现在告警质量上。告警太多,大家会麻木,真出问题时反而没人理;告警太少,问题会漏掉。我的经验是:只对“需要人立刻行动”的情况告警,其余的都做成仪表盘,定期看就行。

比如死信数量超过阈值,这需要人介入,告警;队列深度短时上升,可能是正常波动,不告警,但仪表盘上要能看到。处理延迟的 P99 超过阈值,告警;P50 上升,先观察。这套规则要根据业务特性调整,没有标准答案。

提示:告警阈值不要拍脑袋定,先跑一段时间收集基线数据,再基于基线设置。我当初就是拍脑袋设的阈值,结果天天误报,最后把告警关了,反而更危险。

6. 那些我劝你先别碰的东西

6.1 高级特性是陷阱

Hermes 有很多高级特性,比如动态扩缩容、多集群部署、复杂的路由规则。这些东西听起来很酷,但新手碰它们就是浪费时间。原因很简单:这些特性解决的是规模化之后的问题,而你连单机流程都没跑顺,规模化对你来说是伪需求。

我见过有人一上来就研究多集群部署,结果连本地环境都没配好。这就像还没学会走路就想跑马拉松。我的建议是:在单机环境下把前四件事练到滚瓜烂熟,再考虑高级特性。而且很多高级特性在单机环境下根本无法验证,你学了也是纸上谈兵。

6.2 性能优化要等有性能问题再做

另一个常见的弯路是过早优化。有人刚跑通流程就开始调参数、改配置,追求极致的吞吐量。但问题是,你连瓶颈在哪都不知道,优化什么?性能优化必须基于实测数据,没有数据支撑的优化都是瞎猜。

我的做法是:先让系统跑起来,收集一段时间的指标,找到真正的瓶颈,再针对性优化。大多数情况下,瓶颈不在 Hermes 本身,而在你的业务逻辑或者下游依赖。把精力花在优化业务逻辑上,收益比调 Hermes 参数高得多。

6.3 不要重复造轮子

Hermes 生态里有很多现成的工具和库,比如监控面板、管理界面、测试工具。这些东西能直接用就用,不要自己从头写。我当初觉得自己写更可控,结果花了大量时间在造轮子上,而这些时间本可以用来深入理解核心概念。

当然,用现成工具的前提是你要理解它的原理,否则出了问题还是抓瞎。所以我的建议是:先用现成的,用熟了再考虑要不要自己实现。大多数情况下,现成工具已经足够好,你不需要自己造。

7. 三个月后回头看:哪些时间花得值

7.1 值得的时间投入

回头看这三个月,我觉得最值的时间投入是前两周啃消息模型。那两周我几乎没写什么业务代码,就是反复跑消息、看日志、画状态图。当时觉得进度慢,但后面学编排和错误处理时,我发现理解速度比同期的人快很多,因为底层逻辑已经通了。

第二值的是做错误处理的文档。我花了一整天列出所有失败场景并定义策略,这份文档后来成了团队的标准参考。每次有新成员加入,我都让他们先读这份文档,能省下大量解释时间。

第三值的是搭建可观测性。虽然初期投入不小,但上线后每次出问题都能快速定位,这个回报是持续的。

7.2 浪费的时间

浪费最多的时间是研究高级特性。我花了大概两周看多集群部署的文档,还搭了个测试环境,结果发现根本用不上,而且因为基础不牢,很多概念理解错了,后来还得重新学。

第二浪费的是过早优化。我曾经花了好几天调参数,想把吞吐量提升百分之十,结果后来发现瓶颈在下游数据库,调 Hermes 参数根本没用。

第三浪费的是自己写管理界面。我写了一个死信管理页面,花了三天,后来发现社区有个现成的工具,功能比我写的全,配置一下就能用。

7.3 给后来者的建议

如果你刚开始学 Hermes,我的建议很直接:按我说的顺序来,前四件事每件花一到两周,总共两个月能打下扎实基础。剩下的时间再去看高级特性和性能优化。不要被功能列表迷惑,不要追求“什么都会”,先把核心的四件事练到能闭着眼睛操作。

另外,一定要动手。看文档只能建立模糊的印象,只有亲手跑、亲手调、亲手踩坑,知识才会变成你的。我见过太多人文档读了一堆,一上手就懵,就是因为缺少动手环节。

最后,别怕犯错。Hermes 的学习曲线不算陡,但也不平。犯错是正常的,关键是从错误中总结出属于自己的经验。我文章里写的这些坑,你未必都会踩,但你一定会踩到我没踩过的坑。那没关系,踩完了记下来,你就比昨天的自己更强了。

这个内容后续还可以这样扩展:如果你已经过了入门阶段,可以研究一下 Hermes 和周边生态的集成,比如和监控系统、配置中心、服务发现的配合。这些集成能让你的 Hermes 应用更贴近生产环境的要求。不过那是下一个阶段的事了,先把基础打牢再说。

相关新闻

PPT模板即代码:用ppt-master实现幻灯片工程化生成

PPT模板即代码:用ppt-master实现幻灯片工程化生成

1. 项目概述:这不是一个PPT模板库,而是一套可编程的幻灯片生成引擎“ppt-master”这个词最近在技术圈和内容创作社区里悄悄升温,但很多人第一反应是——“又一个PPT模板网站?”其实完全不是。我第一次看到这个词是在某次内部工具分…

2026/10/20 23:29:04 阅读更多 →
2025薪资倒挂背后:计算机领域黄金赛道与入局路线图

2025薪资倒挂背后:计算机领域黄金赛道与入局路线图

先说一个我身边的真实观察。这几年陆续有朋友从传统行业跳进计算机领域,有人从建筑设计转去做三维可视化,有人从机械制造转去做工业软件,还有人从财务转去做数据分析。有意思的是,他们的薪资几乎都是翻着跟头往上走,有…

2026/10/20 23:29:04 阅读更多 →
每周arXiv论文太多?这套筛选-精读-复现-选题方法论请收好

每周arXiv论文太多?这套筛选-精读-复现-选题方法论请收好

做机器学习研究的人,每周一打开arXiv的CS.LG列表,基本和看天气一样,是固定节目。这周也一样,我照例把整个列表从头刷到尾,顺便翻完摘要,挑出值得精读的几篇。说实话,干这行久了,我对…

2026/10/20 23:29:04 阅读更多 →

最新新闻

Apktool 安装与配置完整指南:APK 逆向工具从源码快速上手

Apktool 安装与配置完整指南:APK 逆向工具从源码快速上手

Apktool 安装与配置完整指南:APK 逆向工具从源码快速上手 【免费下载链接】Apktool A tool for reverse engineering Android apk files 项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool 拿到一个闭源 APK,想改个字符串、挪个布局、动…

2026/10/21 1:23:59 阅读更多 →
Citra 3DS模拟器:3 步在电脑上跑通 3DS 游戏

Citra 3DS模拟器:3 步在电脑上跑通 3DS 游戏

Citra 3DS模拟器:3 步在电脑上跑通 3DS 游戏 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 🎮 没有掌机也能玩 3DS 游戏 手边只有电脑,抽屉里却有一堆 3DS 卡带。Citra 3…

2026/10/21 1:23:59 阅读更多 →
万有递归元:用递归思维重构三观的元理论指南

万有递归元:用递归思维重构三观的元理论指南

递归这个词这两年被各路文章讲得快包浆了,但你真想把递归当成一种审视自己三观的工具时,会发现市面上大多数讨论都停在"函数调用自己"这个层面,再往深走就没人愿意趟了。我第一次接触"万有递归元"这个概念时,…

2026/10/21 1:23:59 阅读更多 →
终极隐私保护指南:如何通过awesome-shizuku守护你的Android数据安全

终极隐私保护指南:如何通过awesome-shizuku守护你的Android数据安全

终极隐私保护指南:如何通过awesome-shizuku守护你的Android数据安全 在Android设备使用过程中,隐私泄露和数据安全问题日益突出。awesome-shizuku作为精选的Android应用列表,汇集了众多利用Shizuku技术的优质应用,为用户提供了强…

2026/10/21 1:23:59 阅读更多 →
用Playwright打造新闻热搜自动采集爬虫:从环境搭建到定时运行

用Playwright打造新闻热搜自动采集爬虫:从环境搭建到定时运行

我平时有收集新闻热搜做数据分析的习惯,早先靠手一个个复制粘贴,点一次页面就得停下整理一次,后来实在受不了这个重复劳动,就写了这个基于 Playwright 的自动化爬虫脚本。如果你也在做内容监测、竞品动态跟踪,或者单纯…

2026/10/21 1:23:59 阅读更多 →
8-120V宽压Buck芯片XZ1823选型与48V转12V实战

8-120V宽压Buck芯片XZ1823选型与48V转12V实战

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

2026/10/21 1:22:58 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在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 阅读更多 →