B站:以SLO为核心的可用性观测与质量运营

亿级数据下的全栈可观测:五层监控与数字孪生实战 在云原生与微服务架构成为主流的今天,系统的复杂性呈指数级增长,传统的监控手段已难以应对。可观测性(Observability)作为一种更高级的理念,旨在通过指标(Metrics)、日志(Logs)和链路追踪(Traces)三大支柱,从外部输出了解系统内部状态的能力,其核心价值在于快速定位问题、保障系统稳定和优化用户体验。实现全栈可观测需要一套层次化的监控体系,从基础设施、应用运行时、分布式链路、业务逻辑到用户体验层层递进,并结合统一的数据平台进行关联分析。这不仅是技术工具的升级,更是运维理念向主动、预防和智 阅读详情

UGeek大咖说是优维科技为技术爱好者研讨云原生技术演进趋势而创办的系列活动,邀请一线互联网大厂的核心骨干主讲,分享原厂实践。本年度主题为可观测,我们希望通过一场场有趣、有料、有深度的活动,让运维圈的小伙伴聚集在一起,深度交流与学习。

11月24日,UGeek大咖说第十一期在感恩节的祝福声中落幕。从2022年春节首期至今,观众已经陪伴了我们度过了11期直播活动,在此由衷向所有的新老观众与公众号读者们表示感谢。

本期活动,我们邀请到哔哩哔哩的在线SRE负责人——武安闯老师,为我们讲解以SLO为核心的可用性观测与质量运营。武老师从可用性对象多、可用性度量难、运营需求场景多这三个维度为我们分析了可用性困局的破解方法,告诉我们如何抽丝剥茧度量服务的可用性,如何开展报警治理,如何第一时间发现线上问题。此外还给大家分享了Google SRE中最核心的SLO工程方法论及SLO实施经验,在失败与持续不断解决不同问题的过程中,让我们学习了应该如何从SLO出发来做报警治理与质量运营。

以下为直播活动精华内容摘选,供大家阅读参考。

可用性困局

我们在工作中可能会遇到这些问题,比如在谈论一个可能性的时候,可能性的对象是很多的,我们并不知道可能性是在说谁。举个例子,线上运行的一个服务或者应用,这个应用的可能性有多少?你甚至也可以说这个应用的下面的某一个接口的可能性用多少才能真正触达到用户?所以可能性度量也是很难的,包括对这些可能性的数据标准和建模也很难。因为要算可能性,首先就要知道什么是不可用。

B站的实践过程

我们提到常见的两个概念:SLO和SLI。SLI是一个服务等级的指标,这是做SLO第一步要做的,去量化服务的一些指标。

服务水平目标(SLO)指定了服务可靠性的目标水平。SLO是做出以数据为依据的可靠性决策的关键,它们是SRE实践的核心。

l 工程师稀缺,时间投入到重要服务的核心问题上

l SLO是做出工作优先级排序和可靠性相关工作的关键

l 工作按照SLO来开展,确保SLO是合理的

l 没有SLO,就没有SRE

Google实施SLO的理想流程

首先是要做SLI指标的选择,SLI的指标定义好了之后你就可以做SLO的定义了。比如前面算出的可能性,可以设一个目标,年可能性、季度可能性要达到多少。设定好之后就可以报警了。SLO里面可用性的报警是准确率最高的。有了SLI的度量和SLO之后就可以做错误预算了,比如全年可能性是9999,那么一年之内允许多少的不可用时间,这些错误预算你是可以拿到的,甚至说你在窗口再小一点,你一天可以允许多少的错误请求。

如果在一个实验窗户里面你的错误预算消耗殆尽,那我们可以制定一个错误预算的执行策略,比如说我们跟研发沟通,我们接下来的变更呢要专注于可靠性的问题,我们生产的变更尽量去冻结。同时需要一个仪表盘和报表来展示度量出的SLI的一些趋势,包括错误量,包括报表等等做一些可视化的运营,最终是要持续去改进SLO的。

SLO的第一次尝试

失败总结:

·业务分级模型过于理想,定级成本高

·业务SLI关联关系、API 元信息更新不及时,数据准确率低

·无法通过负载均衡一条Metrics计算到的可用性来覆盖业务全部故障场景

·部分部门的业务只提供内网服务,不过负载均衡,导致没有SLI数据

·SLI数据好像除了当报表外,也没什么价值

·SLO是可靠性决策的关键因素,但不是非有不可

·SLO的价值绝对不是报表,而是及时报警,发现影响·SLI指标的异常

·错误预算策略是诗与远方

·SLI度量的核心是业务功能和应用,而不是聚合业务SLI

……

再次出发

可能是业务的分级模型太过于理想了,经济成本非常高,业务下哪些接口的信息是对业务人员有影响的,哪些是没有影响的。原先性更新的,我们也更新得不及时,最终就导致我们整个数据准确率比较低。SLO是通过负载均衡来度量的,但是我们实践时发现无法通过负载均衡层面的metrics来覆盖全部的故障场景。而且有些部门的业务只提供了内网服务,没有过负载均衡,它通过服务直接发现了。那这种服务就没有SLI指标和数据了,这种服务就度量不出来。而且我们当时的数据呢除了当代表之外,也没有什么价值,对。我们后来在思考中,我发现SLO是可靠性角色的关键因素,但它并不是非有不可,因为在没有SLO工程之前,我们线上的一些五年型治理专项改进也是可以做的。比如说我们基于故障来做。所以SLO它一定有自己存在的价值,但并不是可以解决所有的问题,我们必须合理去认识它。

现场答疑互动·问答

怎么管理Slo,和哪些功能联动?

需要建设一个SLO的平台,去做一些原数据的管理。怎么联动,要做质量运营。正常运营的情况下,我们要扩展SLO的场景,我们不能把数据只放在平台。那么压测的时候我们什么情况下来熔断一个压测任务呢?就是SLO的指标产生影响的时候,同时可以把SLO数据去运营到常见的研发平台,研发最常用的平台,或者SLI的平台也可以把数据放过去,让用户每时每刻都能看到自己的。服务的可用率的情况,同时在他变更的时候也能通过这种可用率的实施的指标,让他知道这种指标对自己的服务产生价值。

SLO指标如何选取,如何度量?

那么对于可用率来讲,我们核心是要前提识别错误,我们内部也有这种需求,有一个业务不标准,线上多次出现问题。可能第一时间提到一个,就是说。呃,把这个业务部门的SLO给定一下,或者把SLO报警给覆盖一下。那么其实大家都忽略一个前提是说你要做SLO报警,首先要知道错误,所以你首先应该是做错误的标准化和错误的识别。有了错误的识别之后,你才能去度量服务的可用率。可用率出来之后,有多个维度去度量,因为很难通过一个指标去发现现行服务所有的故障,最后可能你是通过多维度的指标去发现,线上的所有故障来提升SLO的准确率和对故障召回率,除了可用率之外,B站的实践的时候还做了数据延迟的一个数据指标,度量,因为我们的场景对存储依赖特别重。你们的业务相关里面我们并没有用到很多消息对列啊,包括说我们的双环中也是从看到这边同步DB,服务如果有一个请求,Severs直接就写缓存,然后直接写DB,在这种材料里面,可能延迟关注的就是DB的主从同步延迟就行了,里面没有下一对列,也没有看到任务。所以你这种时候数据延迟举报就不是很关注。最后实际的去多量指标的时候,我们还加了业务维度的吞吐指标。因为业务冲突,指标一旦产生,比如下跌20%或者下跌30%。那一定是线上一个重大问题,然种业务冲突指标在很多公司,他们核心盯的一个业务大屏,可能就是盯业务,打盘指标。他们可能并不会很关心技术层面的指标。

如何以用户体验纬度看待服务可用性?

其实我们定SLO也就是为了体现出用户的可能性的一个受损的情况,那但实际上SLO报警出来的时候不代表用户一定受损了。因为我们前面有提到我们很多服务,它是由内网的一些调用,它并不会直接触达用户,那在上游比方说网关或者slb我可能有一些降级的策略,那么最终用户层面是无损的。但是呢SLO报警依然可以发现你的服务在线上产生了异常,你的服务产生异常之后呢?不一定对用户产生异常了,这个两个不影响,但最好你肯定在线上来讲,你有一个要跟进的case,或者要有一个跟进的一个事项,那么在用户维度,可以通过用户反馈这个指标来去衡量这个事故的严重程度,像我们内部在做一些报警的时候。我们也很关注用户反馈,那么对于一个业务模块,如果用户反馈数量超过几个,我们就认为就是线上目前可能产生一些紧急事故了,那么对用户反馈数量呢?如果只有一两个,那可能是线上某一个bug或者一个比较特殊产品才会出发的。我们都会去跟进。所以最终情况下,就是SLO的指标,让你发现所有的问题,让你可以去做一些复盘跟进,包括一些五年性的治理,但不代表是影响用户了。影响用户这个维度呢,除了SLO之外,我们可以加上用户反馈的指标,那对于b站场景我们肯定有客服团队,我们就可以很适时的拿到用户反馈的指标。那么在其他公司或者团队可能也是类似的,如果你的产品是有很多的c端用户,一般都会有客户团队,我们可以考虑去拿一个实时的用户反馈指标。

怎么从指标到定义完全不可用?

(实际的情况总是有些好用,有些不好用)

指标到定义完全不可用,实际对实际我们服务出现故障的时候很少说是百分百不可用了,一般就是说错误率10%或者20%,30%,那么这种你通过SLO的度量是可以发现的。比如说你对SLI的数据做一个一分钟的聚合,一分钟里面基于错误总请求去算一下这一分钟的一个可用率情况怎么样?那你的SLI的指标是可以清晰体现出服务这种有没有完全不可用的场景的。服务的可用不可用,给最终用户有没有受损,其实也是不是强相关的,但是你服务SLI指标产生异常一定代表你服务出问题了一定是需要SRE和研发去跟进的。

SLO指标设计时候依赖哪些采集工具?除了Prometheus或者网关accesslog,还有什么别的最佳实践?

基本上都是各个公司在用的,一个监控工具啊。

我们大量的数据也是普罗米修斯里面过来的,数据一般就是技术指标。那么网关层面,我们其实不是去解析access log的,access log成本太高了,网关层面我们是也是用的网关层面,也可以暴露一些出来。然后到朋友里面我们统一取过来。那么前面有提到我们也收集了一些业务层面的一些吞吐指标,那么这些指标因为是业务买点上报的,所以这种指标我们是没办法存破,我们的渠道,我们是存我们的数的平台,然后跟他们之间去做一些数据的订阅和采集。所以我们现在数指标采集两部分,一部分是业务指标,存我们内部其他的平台,另一种就是技术指标,我们目前统一从普罗米修斯来取。我们不会把指标分的特别散,比如说网关也从用日志来取,然后那网关如果从用日志来取,那应用理论上也可以取日志,对吧?因为应用也有日志,我们一般就通过match就好了。

中小型公司如何开展,重点先从哪些开始?

SLO的开展跟公司规模没关系,而是跟你现在的基础设施或者微服务的基础能力有关,具备这个能力了,只要你这些指标是可度量的,那么你就都可以去做SLO的实践,这个时间的核心侧重点就是把错误度量出来,然后去做报警,来发现现象问题,以及你把这些指标度量出来之后,做一些可视化的报表。把这种东西运营到上层平台里面去,这套模型其实不管你公司规模怎么样,主要是看你现在整个微服务的体系,或者你计价的体系有没有这些指标可以让你采集的,我举个例子,你现在内部覆盖均衡,都没有暴露任何指标,你想做这个事情就很难,比如说我们应用侧也没有任何指标报出来,根本拿不到错误,做这个东西也就很难,这个时候你可能只能基于日志来做,如果你服务的日志打的很非标,乱打,没有任何标准,也没有错误出来,那你也做不了这个东西的度量,所以它的核心前提是。你的基础设施或者你的微服务体系欺诈体系具备这个能力了,具备这个基础就可以做。

ML生产化落地三大支柱:稳定性、特征闭环与可观测性 机器学习模型从开发到生产并非简单封装为API,其本质是构建可运维、可验证、可诊断的工程系统。核心挑战在于服务在高并发与依赖波动下的稳定性保障,训练与推理间特征定义、计算、存储的一致性闭环,以及面向数据漂移、模型退化等ML特有问题的深度可观测能力。这三者构成MLOps落地的铁三角,缺一不可。本文结合工业级实战,详解FastAPI异步服务设计、Triton多框架推理优化、Feast特征服务解耦、Evidently数据漂移检测及OpenTelemetry+Prometheus+Neo4j三层可观测体系,覆盖电商推 阅读详情

相关推荐

生产级机器学习系统:延迟、弹性与可观测性实战指南

机器学习模型部署不是终点,而是系统工程挑战的起点。在真实业务场景中,模型的‘正确性’必须与延迟(如P99<50ms)、弹性(降级/熔断能力)和可观测性(日志-指标-链路三位一体)协同保障。尤其在金融、医疗等高后果领域,特征管道失效、数据漂移、服务雪崩等风险远超算法本身缺陷。本文聚焦MLOps核心生存维度,详解如何通过契约化集成、特征管道加固、分层加速推理及漂移实时监控,构建可信赖、可审计、可演进的生产级AI系统,让模型真正‘活’在API响应头与SLO折线图中。

weixin_34302798的博客 493

干货分享|B站《以SLO为核心的可用性观测与质量运营》

最近几年,Google SRE在国内非常流行。Google SRE方法论中提出了SLO是SRE实践的核心,SLO为服务可靠性设定了一个目标级别,它是量化线上质量的关键因素,它是用来回答一个服务到底“什么时候叫做挂了”的根本依据,也是可量化可统计的依据所在。在大多数IT和运营部门中,可观测性是一个不断发展的技术领域。为了更好地发布稳定的软件系统,企业需要持续了解性能、正常运行时间和可用性等指标。因此...

互联网运维杂谈 446

机器学习模型上线后如何持续存活:监控、弹性与可观测性实战

机器学习模型部署完成只是起点,真正挑战在于生产环境中的持续稳定运行。本文围绕模型监控、数据质量闭环、推理服务弹性、线上实验治理和运维可观测性五大核心,解析从验证环境到生产环境的关键断层——如实时数据漂移、特征陈旧、服务熔断失效等典型问题。基于17个真实落地项目经验,深入拆解KS/PSI漂移检测、温度缩放置信校准、加权熔断策略、实验矩阵归因等关键技术原理与工程价值,覆盖金融风控、电商推荐、广告点击率等高敏感业务场景。内容聚焦MLOps中‘活下来’而非‘跑起来’的硬核实践。

weixin_33736048的博客 373

越来越多地使用 SLO 来实现可观测性

在大多数 IT 和运营部门中,可观测性是一门不断发展的学科。为了更快地发布稳定的软件,运营商需要持续了解性能、正常运行时间和可用性等指标。因此,工程师正在全面增加对服务水平目标(SLO) 的使用——最近的一项研究发现,82% 的公司正在增加对 SLO 的使用。SLO 可以深入了解特定应用程序的性能,站点可靠性工程师(SRE)经常使用它来确保质量并避免服务中断。不仅如此,各个团队还在将 SLO 与业务的各个方面关联起来,以降低成本并帮助指导决策。但是,尽管许多环境具有可见性,但仍然存在差距。Nobl9 最近发

观测云的博客 546

生产级AI Agent架构设计:状态机、工具治理与可观测性

AI Agent并非增强版聊天机器人,而是具备状态管理、外部系统集成与失败处理能力的微型分布式服务。其核心原理在于将用户意图转化为可审计、可回滚、带业务语义的状态迁移过程,并通过工具抽象层实现对外部API的可靠调用。技术价值体现在稳定性提升(错误率从12%降至0.7%)、合规保障(100%审计日志)与资源可控性(实例级隔离)。典型应用场景包括客服工单自动处理、合同风险识别、私域用户分层推荐等需长周期上下文与强业务约束的领域。本文聚焦真实生产环境中的AgentCore Runtime设计、状态三明治架构与Bu

ajwh64482的博客 583

【信息科学与工程学】计算机科学与自动化——第三十八篇 质量工程 02 云数据中心质量工程

云数据中心的质量工程是一个从战略规划到持续运营的完整闭环系统,而非独立的技术活动。​ 其核心在于内建(Built-in)而非附加(Bolt-on)。顶层设计与文化筑基:从管理层确立“质量即产品、效率即生命”的战略,并培育“可观察、可测试、可防御”的工程文化。这是所有工作的前提。分层设计与全局优化全局架构层聚焦可靠性、容量、网络的宏观设计,确保地基稳固。服务单元层聚焦计算、存储、软件定义的标准化与池化,实现资源高效供给。资源单元层聚焦硬件、安全的标准化与可靠性,提供稳定、安全的原子能力。自动化交付与韧性运营。

weixin_49199313的博客 886

SLO、SLI、SLA是什么?【AIOps智能运维的方向会是SLO吗】

SLO 量化客户对可靠性的期望,找到客户对服务的可靠性感到满意的点(额外的可靠性价值微乎其微,此时新功能更加重要)

CALLMESabrina的博客 1468

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营06

13 | 司法诉讼 | 原告律师 | 争取和解优势 | 证据披露的序贯博弈 | 策略性证据释放 | 持有证据集E = {强证据e_s, 中证据e_m, 弱证据e_w}。设公众原有认知人格向量为 Pold​​=(p1​,p2​,...,pk​), 其中p_i为负面特质(如“不敬业”)。危机后, 通过行为序列 {At​}和宣传, 将公众认知向新向量 Pnew​​引导, 使得在关键维度上, Pnew​​与 Pold​​的余弦相似度降低, 并与一个正面的、可接受的“原型”(如“浪子回头”、“慈父”)对齐。

weixin_49199313的博客 1484

干货分享 | B站SLO由失败转成功,B站SRE做对了什么?

微服务系统中采集和配置了丰富的指标、报警,海量的观测指标和报警又让大家无法及时发现线上问题。如何抽丝剥茧度量服务的可用性,如何开展报警治理,如何第一时间发现线上问题,本次分享将以SRE中的SLO工程为核心来探讨一下服务的可用性观测、报警治理与质量运营。中国年轻世代高度聚集的文化社区和视频网站平台,B站也引入了SLO,并将SLO用作一个稳定性保障手段,帮服务观测线上隐患,保障服务在线上环境的可用率。Google SRE方法论中提出了SLO是SRE实践的核心,的分享,将以SRE中的SLO工程为核心,探讨。

EasyOps_DevOps的博客 581

19、云原生可观测性:SLO 与信号关联的深度解析

本文深入探讨了云原生系统中服务水平目标(SLO)的定义与实现,以及信号关联在可观测性中的关键作用。通过实际案例和工具示例,如Prometheus生态系统中的Pyrra和OpenSLO规范,解析了如何通过SLO保障系统可靠性,并通过多类型信号关联快速定位问题、优化性能。文章还介绍了信号关联在事件响应、根因分析和服务性能改进中的应用场景及未来发展趋势,帮助读者全面理解如何构建高效、稳定的云原生系统。

vv45678的博客 252

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营04

典型值:λ1​∈[−0.02,−0.01], λ2​∈[−0.01,0], η1​,η3​∈[0.1,0.3], η2​,η4​∈[0.05,0.15]参数:δ1​∈[−0.8,−0.3], δ2​∈[−0.5,−0.2], δ3​∈[−0.4,−0.1], δ4​∈[−0.6,−0.2]参数:φ1​∈[0.1,0.3], φ2​∈[−0.2,−0.05], φ3​∈[−0.1,0.1], φ4​∈[−0.3,−0.1]参数:α∈[0.3,0.6], β∈[0.2,0.4], γ∈[0.01,0.03]

weixin_49199313的博客 1214

优维全面可观测产品能力分解⑥:运维状态可观测

基于对企业在可用性管理上的痛点洞察,优维研发的【可用性管理】在统一的标准规范指引下,设定系统及应用服务的可用性目标及计算工时,以目标倒推系统的可用性维护。优维提供的【可用性管理】综合了服务的拨测成功率和SLO进行对比分析,通过可视化的形式,呈现所有系统的可用性目标与可用性指标,帮助企业有效衡量服务的可用性。在核心能力上,优维【性能管理】提供的「性能看板」功能模块,可进行系统/多服务横向对比,查看全量系统/应用服务概览,也可拆分多个生产环境,查看单系统/单应用服务的详情看板;

EasyOps_DevOps的博客 876

从零构建PEMFC仿真模型:MATLAB/Simulink中的模块化拆解与系统集成

本文详细介绍了如何在MATLAB/Simulink环境中从零构建质子交换膜燃料电池(PEMFC)仿真模型,包括电化学模型、气体供应系统和热管理系统的模块化实现。通过多物理场耦合技巧和系统集成策略,帮助工程师和研究者高效开发PEMFC控制策略,优化性能并实现实时仿真。

weixin_29294975的博客 361

从监控到可观测性:构建云原生时代的系统故障诊断能力

在分布式系统和云原生架构日益普及的今天,传统的监控体系在应对复杂、动态的故障场景时常常力不从心。监控的核心原理是基于预设规则进行指标采集、比对与告警,它擅长发现已知问题,却难以应对“未知的未知”。可观测性则是一套更高级的工程实践体系,其技术价值在于通过系统化地采集、关联和分析指标、日志、链路这三大支柱数据,赋予工程师对系统内部状态的探索式诊断能力。它从更基础的日志分析、性能指标等通用技术概念切入,强调数据的结构化、上下文化与关联性,使得工程师能够从告警现象快速下钻至根因,实现从被动响应到主动洞察的转变。在微

diaoju3333的博客 401

量化实战:用三种波动率模型给你的期货策略做个“体检”(附Python代码与螺纹钢案例)

本文深入探讨了三种专业波动率模型(Parkinson、Garman-Klass和Rogers-Satchell)在期货量化策略中的应用,并以螺纹钢期货为例,展示了如何通过Python实现这些模型进行多维度波动率分析。文章详细比较了不同模型的特点和适用场景,提供了动态仓位管理、止损策略优化等实战应用方案,帮助交易者更精准地评估市场风险,优化策略表现。

weixin_26824299的博客 460

傻白入门芯片设计,wafer/die/chip/cell(一)

芯片设计的一些基本概念

qq_46675545的博客 2万+

测试右移:上线之后还能做什么?——从可观测性到混沌工程

Day 3 讲覆盖率时,我们谈的是"代码覆盖率"——多少行 / 多少分支被测过。在右移视角下,还有三种生产特有的覆盖率覆盖率类型含义数据来源代码覆盖率多少代码被测试套件跑过(Day 3)生产路径覆盖率多少代码路径在真实流量下被跑过火焰图 / trace sampling配置覆盖率多少配置组合在生产中真实组合过dynamic config 日志数据覆盖率多少边界数据在生产中被实际触发数据样本统计代码覆盖率 90% 不等于生产无 Bug,

z_teacher的博客 183

2024最新指南:如何用Python批量下载Sentinel-2数据(附避坑清单)

本文提供2024年最新Python批量下载Sentinel-2遥感数据的完整指南,涵盖环境配置、API准备、核心下载流程实现及实战避坑清单。通过智能查询器、断点续传下载器等实用工具,帮助用户高效获取遥感数据,避免常见网络问题和数据完整性验证失败。

silver的专栏 619

从体育竞技到分布式系统:基于可观测性的复杂系统故障分析框架

在软件工程领域,可观测性(Observability)是理解复杂系统内部状态的核心概念,它通过日志、指标和追踪三大支柱,将系统从黑盒转变为白盒。其原理在于,通过收集和关联多维度的运行时数据,工程师能够透视服务间的依赖关系、性能瓶颈和异常根源。这一技术的核心价值在于,它使模糊的、基于直觉的故障归因,转变为精准的、数据驱动的根因分析,从而极大提升了系统的可维护性与韧性。在微服务架构、云原生等应用场景中,当服务出现性能抖动或调用失败时,可观测性工具链(如Prometheus、Jaeger、OpenTelemetr

weixin_34378767的博客 340

高精度导航 | RTK:2025年高精度导航算法综述,包括:原理,数据,公式,完整代码,开源代码链接

中国科学院国家授时中心的最新研究表明,PPP-AR/PPP-RTK增强算法使时间传递链路的稳定性提升超过30%,模糊度固定成功率高达93.57%,首次固定时间缩短至20分钟内。当这一愿景实现,人类社会的生产效率和资源利用率将迎来革命性提升,高精度定位将成为像电力、互联网一样的基础服务,深刻重塑我们的生活方式和文明形态。PPP-RTK作为GNSS定位领域的最前沿技术,成功融合了精密单点定位(PPP)和实时动态定位(RTK)的双重优势。,实现在无GNSS信号环境下(如隧道、地下停车场)的连续厘米级定位。

尘世冰封的专栏 1610

AI Agent协调工程与过程可观测性:从概念到生产实践

在分布式系统和微服务架构中,协调机制是确保多个组件高效协作的核心原理,它通过设计清晰的通信协议和状态管理规则来避免冲突与死锁。随着大语言模型(LLM)驱动的AI Agent技术从原型验证迈向规模化部署,协调工程(Coordination Engineering)应运而生,旨在解决多智能体系统中的任务分配、资源竞争和异常处理等工程挑战。其技术价值在于提升复杂AI系统的可靠性、可扩展性和可维护性,广泛应用于智能客服、自动化工作流和复杂决策支持等场景。与此同时,过程可观测性(Process Observabili

weixin_30732487的博客 369

23、工业物流中的多智能体路径规划与碰撞处理策略

本文探讨了工业4.0背景下工业物流中的多智能体路径规划(MAPF)与碰撞处理策略。分析了自动导引车(AGV)等移动资源的应用现状,综述了主流路径规划算法如A*、D*Lite、M*等,以及集中式与分布式碰撞检测方法。重点比较了五种碰撞避免策略:路径交叉、优先级、起始时间调整、无交叉路径和速度调整,提出了基于环境条件的策略选择流程,并通过流程图展示了评估、组合、测试与优化的全过程。文章强调应根据订单不确定性、时间约束、优先级和生产组织等因素综合选择或组合策略,以提升物流效率与系统可靠性。

mac99的博客 126

ML Enabled Application:从模型交付到应用运营的工程化实践

ML Enabled Application(机器学习增强型应用)不是简单地在软件中嵌入一个模型,而是构建具备数据感知、模型自演进与闭环反馈能力的生产级系统。其核心原理在于将模型生命周期、特征治理、在线推理与效果监控深度融入软件架构,技术价值体现在应对数据漂移、降低运维熵增、支撑业务持续迭代。典型应用场景包括智能楼宇能源预测、工业设备预测性维护、金融风控实时决策等。本文聚焦真实产线中验证的MVD(最小可行领域)方法论、Ops混凝土融合实践及乐高式架构选型,直击‘模型上线即失效’‘Pipeline频繁崩溃’‘

weixin_30791095的博客 390

华为od 面试八股文_测试/测试开发_05_含答案

华为od 面试八股文_测试/测试开发_05_含答案

MISAYAONE的博客 2558

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

生产级AI Agent落地三要素:可观测性、状态韧性与工具契约

AI Agent并非简单调用大模型的智能脚本,而是需深度嵌入业务系统的有状态服务。其核心原理在于将LLM推理链与真实API、数据库、权限体系等生产环境要素可靠协同。技术价值体现在降低人工干预率、提升任务完成确定性与故障自愈能力。典型应用场景包括智能客服工单处理、信贷审批辅助、物流调度执行与合同条款审查等高可靠性要求环节。本文聚焦Agent从Demo走向规模化生产的工程断崖,深入拆解可观测性设计、状态韧性保障及工具契约治理三大关键实践,直击300+次真实上线中高频复现的稳定性瓶颈。

dengliugong3918的博客 511

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: 优维低代码:Theme & Mode 页面主题和模式
下一篇: 看过来,2022最后一期大咖说-大厂可观测来啦~
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值