首页 文章 精选 留言 我的

精选列表

搜索[VR 全景],共3937篇文章
优秀的个人博客,低调大师

一文解析多 Agent 编排架构模式全景

MULTI-AGENT DNA · 多 Agent 编排基因解码 # LangGraph 、CrewAI 、Swarm ...10 种多 Agent 编排 DNA 的基因级拆解 从 Token 膨胀 15× 的物理约束到 N² 冲突的数学诅咒,从 64% 基准上单 Agent 持平多 Agent 的反直觉真相到一张选型决策公式 Orchestrator-Worker / Graph State Machine / Blackboard / Swarm / Hierarchical / Pipeline / Fan-out-Fan-in / Group Chat / Handoff / Magentic KEY TAKEAWAY **1.** 多 Agent 编排不是"越多越好"。Google Research 在 **180 种 Agent 配置**的横评中发现:单 Agent 在 **64%** 的 benchmark 上与多 Agent 系统持平。多 Agent 平均只增加 **2.1 个百分点**的准确率,但成本翻倍。Token 膨胀从单 Agent 的 4× 到多 Agent 的 **15×**(Anthropic 数据)。 **2.** 10 种编排模式的 DNA 可以拆解为三个基因轴:**控制拓扑**(集中 vs 分布)、**通信模式**(直接 vs 共享 vs 委托)、**状态管理**(无状态 vs 有状态 vs Checkpoint)。每个模式在这三个轴上的坐标决定了它的延迟、成本和适用场景。 **3.** 选型不是"哪个模式最好",而是用一道公式算出你的场景应该落在哪个区间:**编排价值 = 领域隔离收益 − (Token 膨胀 + 延迟累积 + N² 冲突成本)**。当编排价值为负时,单 Agent + 更多工具就是最优解。 **阅读提示**:本文面向 AI 应用架构师 / 后端工程师 / 技术决策人。不做基础科普,假设你已了解 ReAct、Function Calling、StateGraph 等基础概念。预计阅读 20 分钟。 TABLE OF CONTENTS 01 · 为什么多 Agent 编排突然成了 2026 年 AI 工程的核心战场 02 · 物理约束钉在墙上:Token 膨胀 15×、延迟累积公式、N² 冲突诅咒 03 · 10 种编排模式的 DNA 拆解:三个基因轴定义全部拓扑 04 · 甜点区划分:按 Agent 数量 × 任务结构的四层 Bracket 05 · 没人谈的工程陷阱:64% 的 Benchmark 上多 Agent 打不过单 Agent 06 · 五种核心架构模式深度拆解:从代码原语到生产部署 07 · 五种补充模式与组合策略:Pipeline 到 Magentic 的完整光谱 08 · 选型公式与单位经济学:三个场景的成本对账 09 · Checklist:12 项编排架构决策清单 ## 01 · 为什么多 Agent 编排突然成了 2026 年 AI 工程的核心战场 2025 年到 2026 年中,三股力量把多 Agent 编排推到了 AI 工程的舞台中央。第一,OpenAI Swarm(2024.10)和 LangGraph(2024 持续迭代)相继发布,把"多 Agent"从论文概念变成了可落地的代码原语。第二,企业级 AI 应用的复杂度爆炸——合规审查需要跨 5 个文档库推理、客户支持需要跨 3 个系统查询,单个 Agent 的上下文窗口和工具数量已经到了极限。第三,Microsoft 在 2026 年 2 月发布的 Azure Architecture Center 指南正式把 Agent 编排归纳为 **6 种设计模式**(Sequential、Concurrent、Group Chat、Handoff、Magentic),给了工程团队一个标准化的分类语言。 但"多 Agent"的热度掩盖了一个关键问题:**什么时候该用多 Agent,什么时候不该用?**Google Research 在 180 种 Agent 配置的横评中给出了一个让社区相当热闹的答案:在 64% 的 benchmark 上,单 Agent(配更多工具)与多 Agent 系统表现持平。多 Agent 平均只增加 2.1 个百分点的准确率,但成本翻倍。Princeton NLP 的独立研究得出了几乎相同的结论。 这篇文章要做的事情是:把 10 种编排模式的**物理约束(Token、延迟、冲突)**全部量化,把每种模式的**三个 DNA 基因轴**拆解清楚,然后给出一道**选型公式**——让架构师能算出自己的场景该落在哪个区间。 ## 02 · 物理约束钉在墙上:Token 膨胀 15×、延迟累积公式、N² 冲突诅咒 在讨论"哪种编排模式更好"之前,先把多 Agent 系统的三道物理约束钉在墙上。后续的每一个选型结论都必须追溯到这张表里的数字。 ![](https://developer.qcloudimg.com/http-save/yehe-12521923/7a5136e3735db81dc9bd719db0e09b6e.png) 图 1 · Token 膨胀与 N² 冲突——从单 Agent 的 4× 到多 Agent 的 15×,5 Agent 即产生 10 个冲突对 |约束维度|单 Agent|多 Agent(典型)|物理含义| | --- | --- | --- | --- | |Token 膨胀倍数|~4×|~15×|每个 Agent 重复注入 system prompt + 工具描述(Anthropic)| |工具描述开销|10K–60K tokens/轮|N × (10K–60K)|60–80% 是静态描述,每轮重复付费(Anthropic)| |Pipeline 延迟|~500ms|~500ms + 950ms/Agent|4 Agent 管道 = 500ms + 3.8s 额外开销(Beam AI)| |冲突对数|0|N(N−1)/2|5 Agent = 10 冲突,10 Agent = 45 冲突(Beam AI)| |Group Chat LLM 调用|1 次|轮数 × Agent 数|5 轮 × 3 Agent = 15 次 LLM 调用(Microsoft 建议 ≤3 Agent)| |自验证开销|1×|~2.3×|Reflexive 自验证使 Token 成本翻倍(Augmentcode)| |Hub 故障传播|N/A|2–3× 成本乘数|编排者出错触发并行重试级联(Augmentcode)| 三道约束的推导公式: ``` # ① Token 膨胀模型 ``` ``` Token_total = Token_base × M_agent × M_coordination × M_tools ``` ``` # Token_base = 单次 LLM 调用的基础 tokens(prompt + response) ``` ``` # M_agent = Agent 数量 ``` ``` # M_coordination = 编排开销系数(Pipeline=1.2, Orchestrator=1.5, GroupChat=3.0) ``` ``` # M_tools = 工具描述膨胀系数(每 Agent 10K-60K tokens, 60-80% 静态) ``` ``` # 典型值:3 Agent Orchestrator, M_coord=1.5, M_tools=2.0 ``` ``` Token_total = 10K × 3 × 1.5 × 2.0 = 90K tokens(vs 单 Agent 10K = 9× 膨胀) ``` ``` # ② 延迟累积模型 ``` ``` Latency_total = Σ(L_i) + H × L_hop ``` ``` # L_i = 第 i 个 Agent 的处理延迟(典型 500ms–2s) ``` ``` # H = 跳数(Agent 间通信次数) ``` ``` # L_hop = 每跳延迟(序列化 + 网络 ~200–500ms) ``` ``` # Pipeline 4 Agent:4 × 500ms + 3 × 300ms = 2.9s ``` ``` # Hierarchical 3 层:3 × 1s + 4 × 500ms = 5.0s ``` ``` # GroupChat 5 轮 × 3 Agent:15 × 500ms = 7.5s ``` ``` # ③ N² 冲突诅咒 ``` ``` Conflicts = N(N − 1) / 2 ``` ``` # N=3 → 3 conflicts(可管理) ``` ``` # N=5 → 10 conflicts(需冲突解决策略) ``` ``` # N=10 → 45 conflicts(几乎不可行,除非严格隔离) ``` ``` # 这就是为什么 Microsoft 建议 GroupChat ≤3 Agent ``` ![](https://developer.qcloudimg.com/http-save/yehe-12521923/507b265c97a3cb062da51059ed5f3c4d.png) 图 2 · 延迟模型——Pipeline/Orchestrator 2–5s 最快,Magentic/Swarm 10–60s+ 不可预测 **结论:多 Agent 编排的三道物理约束——Token 膨胀 15×(Anthropic)、延迟逐跳累积(每跳 200–500ms)、N² 冲突诅咒(10 Agent = 45 冲突)——决定了"Agent 数量"不是线性扩展,而是在某个阈值后边际收益为负。Augmentcode 的研究指出,第 6/7 个 Agent 引入的开销通常超过其带来的价值。** 数据来源:Anthropic Token 膨胀数据(via Augmentcode)、Beam AI Pipeline 延迟基准、Microsoft Azure Architecture Center 2026.02。 ## 03 · 10 种编排模式的 DNA 拆解:三个基因轴定义全部拓扑 表面上看,10 种编排模式各不相同。但如果把每种模式拆解到**三个基因轴**上,它们的 DNA 差异就变得极其清晰: ![](https://developer.qcloudimg.com/http-save/yehe-12521923/ade1ae04372d4b201b53fd2e2149c220.png) 图 3 · 三个基因轴——控制拓扑 × 通信模式 × 状态管理,10 种模式的 DNA 坐标一目了然 **基因轴 1 · 控制拓扑(集中 vs 分布)**:谁做决策?是单一编排者统一调度,还是每个 Agent 自主决策?集中式(Orchestrator-Worker、Pipeline、Graph State Machine)可调试性高但有单点故障;分布式(Swarm、Mesh、Blackboard)容错性高但难以调试;混合式(Hierarchical、Group Chat、Magentic)在两者之间取平衡。 **基因轴 2 · 通信模式(直接 vs 共享 vs 委托)**:Agent 之间怎么交换信息?直接通信(Mesh:点对点连接)延迟最低但连接数爆炸;共享介质(Blackboard:黑板读写、Group Chat:共享对话线程)解耦但带宽受限;委托传递(Handoff:控制权转移、Pipeline:输出传递)最简洁但信息可能丢失。 **基因轴 3 · 状态管理(无状态 vs 有状态 vs Checkpoint)**:中间结果存在哪里?无状态(Swarm、Handoff)每次交互从零开始,简单但无法恢复;有状态(Graph State Machine、Hierarchical)维护全局状态,可回溯但状态同步成本高;Checkpoint(LangGraph 的 Checkpointing、Magentic 的 Task Ledger)在关键节点持久化,支持断点续跑但写入有放大效应。 |模式|控制拓扑|通信模式|状态管理|典型延迟|最大 Agent 数| | --- | --- | --- | --- | --- | --- | |Orchestrator-Worker|集中|委托|无状态|2–5s|4–8| |Graph State Machine|集中|委托 + 直接|Checkpoint|3–10s|理论无限| |Blackboard|混合|共享|有状态|5–15s|10–20| |Swarm|分布|共享(黑板)|无状态|可变|理论无限| |Hierarchical|混合|委托(垂直)|有状态|6–12s|20+| |Pipeline|集中|委托(线性)|有状态|N×500ms|4–6| |Fan-out/Fan-in|集中|委托(并行)|无状态|max(L_i)|5–10| |Group Chat|混合|共享(对话)|有状态|R×N×500ms|≤3| |Handoff|分布|委托(转移)|有状态|可变|5–10| |Magentic|混合|委托 + 共享|Checkpoint(账本)|不可预测|5–15| 三个基因轴的交叉组合理论上可以产生 3 × 3 × 3 = 27 种模式,但实际工程中只有 10 种是稳定的——其余组合要么因为状态同步成本过高而不可行,要么因为控制拓扑和通信模式不兼容(比如"分布式控制 + 委托通信"在没有黑板的情况下无法实现)。这 10 种稳定组合就是多 Agent 编排的完整基因图谱。 **结论:10 种编排模式的 DNA 可以用三个基因轴完全描述——控制拓扑(集中/分布/混合)、通信模式(直接/共享/委托)、状态管理(无状态/有状态/Checkpoint)。LangGraph 的基因是"集中 + 委托 + Checkpoint",CrewAI 是"混合 + 委托 + 有状态",Swarm 是"分布 + 共享 + 无状态"。选型不是选框架,是选基因组合。** ## 04 · 甜点区划分:按 Agent 数量 × 任务结构的四层 Bracket 用 Agent 数量(横轴)和任务结构(纵轴:确定性 vs 探索性)做四层 Bracket,每层有明确的最优编排模式: ![](https://developer.qcloudimg.com/http-save/yehe-12521923/c1f8749bbfee5236ed88a64b03c8e9a5.png) 图 4 · 选型决策树——从"单 Agent 是否够用"出发,按 Agent 数量和任务结构推导最优模式 BRACKET 1 · 1–3 AGENTS · 确定性任务 "单 Agent + 更多工具可能就够了" **Agent 数量**:1–3 个。 **Token 膨胀**:4×–8×(可控)。 **N² 冲突**:0–3 个(可忽略)。 **最优模式**:单 Agent + 工具(如果可行)→ Pipeline(如果步骤确定)→ Orchestrator-Worker(如果需要并行专业分工)。 **框架映射**:LangGraph 简单图、CrewAI Sequential。 **判定**:Google Research 的 64% 基准——在大多数简单任务上,单 Agent 配更多工具与 2–3 Agent 系统持平。先试单 Agent。 BRACKET 2 · 3–5 AGENTS · 半结构化任务 "编排的黄金区间" **Agent 数量**:3–5 个。 **Token 膨胀**:8×–15×(需要控制策略)。 **N² 冲突**:3–10 个(需要冲突解决机制)。 **最优模式**:Graph State Machine(复杂工作流)→ Fan-out/Fan-in(并行分析)→ Group Chat(≤3 Agent 的辩论/审查)。 **框架映射**:LangGraph 复杂图、AutoGen GroupChat、CrewAI Hierarchical。 **判定**:这是多 Agent 编排 ROI 最高的区间——领域隔离的收益明确超过 Token 膨胀和延迟成本。但需要严格控制 Agent 数量在 5 以内。 BRACKET 3 · 5–20 AGENTS · 跨域复杂任务 "需要层级隔离或黑板架构" **Agent 数量**:5–20 个。 **Token 膨胀**:15×+(必须用层级摘要压缩)。 **N² 冲突**:10–190 个(必须用隔离拓扑消除)。 **最优模式**:Hierarchical(组织式分工)→ Blackboard(知识发现)→ Magentic(开放式问题)。 **框架映射**:CrewAI Hierarchical Process、自定义 Blackboard、Microsoft Agent Framework Magentic。 **判定**:这个区间必须用层级或黑板来避免 N² 冲突。扁平的 Orchestrator-Worker 在 5+ Agent 时编排者上下文窗口溢出。Hierarchical 通过树形委托把全局 N² 冲突拆解为多个局部 N'² 冲突。 BRACKET 4 · 20+ AGENTS · 大规模探索 "只有 Swarm 和 Hierarchical 能活" **Agent 数量**:20+ 个。 **Token 膨胀**:无法全局管理(必须完全分布式或严格层级隔离)。 **N² 冲突**:190+ 个(扁平拓扑完全不可行)。 **最优模式**:Swarm(大规模探索/爬取)→ Hierarchical(大规模组织模拟)。 **框架映射**:OpenAI Swarm 模式、自定义 Hierarchical 集群。 **判定**:20+ Agent 的场景极其罕见。如果你的设计需要 20+ Agent,先问自己:是不是应该拆成多个独立的 3–5 Agent 子系统? ## 05 · 没人谈的工程陷阱:64% 的 Benchmark 上多 Agent 打不过单 Agent Google Research 和 Princeton NLP 的两项独立研究得出了一个让多 Agent 社区不安的结论:**在大多数基准测试上,单 Agent(配足够的工具)的表现与多 Agent 系统持平甚至更好。** Google Research 测试了 180 种 Agent 配置(不同的编排模式、不同的 Agent 数量、不同的模型组合),发现单 Agent 在 **64%** 的 benchmark 上与最优多 Agent 配置的表现差距在统计误差范围内。多 Agent 系统平均只增加 **2.1 个百分点**的准确率,但成本(Token 消耗 + LLM 调用次数)翻倍。arXiv 2604.02460 的研究更直接——在多跳推理任务上,**单 Agent 的表现优于多 Agent 系统**。 这些发现不是否定多 Agent,而是揭示了一个被严重低估的工程陷阱:**多 Agent 的编排开销(Token 膨胀、延迟累积、冲突解决)在很多场景下超过了领域隔离带来的收益**。具体来说: 陷阱 1 · Token 膨胀吃掉精度增益:多 Agent 增加的 2.1pp 准确率,被 15× 的 Token 膨胀抵消。假设 GPT-4o 定价 2.5/M input tokens,单 Agent 每次查询消耗 10K tokens(0.025),多 Agent 消耗 150K tokens( **陷阱 2 · 编排者错误级联**:Orchestrator-Worker 模式中,编排者的一个错误判断会触发所有 Worker 的并行重试,成本放大 2–3×。而单 Agent 没有这个级联风险。 **陷阱 3 · 第 6/7 个 Agent 的边际价值为负**:Augmentcode 的分析指出,每增加一个 Agent,编排开销(上下文传递、冲突解决、状态同步)的增长速度超过其专业分工带来的价值。拐点通常在第 5–6 个 Agent。 那么什么时候多 Agent 确实优于单 Agent?研究表明有三个条件(满足任一即可): **条件 A · 安全边界需求**:不同 Agent 操作不同的系统(数据库、支付、用户数据),需要权限隔离。单 Agent 持有所有权限是安全风险。 **条件 B · 并行专业化**:任务需要同时从多个独立视角分析(如金融分析:基本面 + 技术面 + 情绪面 + ESG),并行比串行快 75%。 **条件 C · 上下文窗口溢出**:任务的总上下文超过单个 Agent 的窗口容量(128K–1M tokens),必须拆分为多个 Agent 各自处理子上下文。 **结论:多 Agent 编排的默认假设应该是"不需要"——除非你的场景满足安全边界、并行专业化、或上下文溢出三个条件中的至少一个。2.1pp 的准确率增益不值 2× 的成本。正确的决策流程是:先用单 Agent + 更多工具试,不够再加第二个 Agent,再加第三个——每次加 Agent 都要验证边际收益是否为正。** ## 06 · 五种核心架构模式深度拆解:从代码原语到生产部署 10 种模式中有 5 种是生产环境中最常见的核心模式。逐一拆解每种模式的代码原语、生产特性和典型陷阱。 ![](https://developer.qcloudimg.com/http-save/yehe-12521923/e91094fc8703308ac441bdbb828deb01.png) 图 5· 五种核心模式架构拓扑——Hub-and-Spoke / DAG / 黑板 / 蜂群 / 树形 模式 1 · Orchestrator-Worker · "一个老板,多个打工仔" **DNA**:集中控制 + 委托通信 + 无状态 Worker **代码原语**:一个 Supervisor Agent 持有任务分解 prompt + Worker 列表。收到任务 → LLM 决定调用哪个 Worker → Worker 返回结果 → Supervisor 聚合。LangGraph 的 Supervisor 模式和 AutoGen 的 SelectorGroupChat 都是这种模式。 **生产特性**:延迟 2–5s(单次编排 + Worker 执行)。Worker 可水平扩展。成本比单 Agent 低 40–60%(Worker 用小模型,编排者用强模型)。 **致命限制**:编排者是单点故障和上下文瓶颈。4+ Worker 的结果聚合可能超出编排者的上下文窗口。编排者的一次错误判断触发 2–3× 成本级联。 **选型信号**:子任务独立、可并行、需要不同专业知识。典型场景:客服分流、多源数据聚合、代码生成 + 测试 + 审查。 模式 2 · Graph State Machine · "一张图定义所有可能的路径" **DNA**:集中控制 + 委托/直接通信 + Checkpoint 状态 **代码原语**:StateGraph 定义节点(Agent 或函数)和边(条件路由)。TypedDict 存储全局状态,Reducer 函数决定状态如何合并。支持有环图(Agent 可以回到之前的节点)。LangGraph 是这种模式的标杆实现——用 Pregel 超步模型执行,支持 interrupt_before/interrupt_after 做 Human-in-the-loop。 **生产特性**:延迟 3–10s(取决于图深度)。Checkpoint 支持断点续跑和状态回溯。状态可持久化到 PostgreSQL/SQLite。可观测性最好——图的执行路径可以完全可视化。 **致命限制**:图必须在部署时预定义,无法运行时动态发现新路径。状态同步有 Checkpoint 写入放大(参考之前 LangChain vs LangGraph 文章中的 15× 放大系数)。复杂图的调试需要理解图拓扑。 **选型信号**:工作流有明确的分支和循环、需要断点续跑、需要 Human-in-the-loop 审批。典型场景:审批流程、数据管道、复杂客服路由。 模式 3 · Blackboard · "一块共享黑板,Agent 自愿贡献" **DNA**:混合控制 + 共享通信 + 有状态 **代码原语**:三个组件——黑板(共享内存/数据库)、控制器 Agent(决定哪个知识源 Agent 下一个行动)、知识源 Agent(各自持有专业能力,读写黑板)。Agent 之间不直接通信,所有信息交换通过黑板。源自 1970s 的 Hearsay-II 语音识别系统,2025 年被 arXiv 2510.01285 引入 LLM 多 Agent 系统。 **生产特性**:延迟 5–15s(黑板读写开销)。Agent 可热插拔(新增/移除知识源不影响其他 Agent)。arXiv 论文报告 13%–57% 的端到端成功率提升。Google Research 在数据科学信息发现任务中使用此模式。 **致命限制**:黑板是单点瓶颈和一致性风险(并发写入冲突)。控制器的决策质量直接决定系统表现。调试需要回放黑板的完整写入历史。 **选型信号**:多种异构知识源需要协作、Agent 数量较多(10–20)、问题没有预定义的解决路径。典型场景:数据科学探索、复杂信息抽取、多源情报融合。 模式 4 · Swarm · "蜂群:没有老板,只有局部规则" **DNA**:分布控制 + 共享通信(黑板)+ 无状态 **代码原语**:两个核心概念——Handoff(Agent 间交接控制权)和 Routine(每个 Agent 的局部行为规则)。没有全局编排者,每个 Agent 只看到自己的输入和黑板状态,基于局部规则决定是自己处理还是交接给谁。OpenAI Swarm 是教育性实现。 **生产特性**:延迟可变(取决于收敛条件)。容错性最高(任何 Agent 崩溃不影响其他)。可水平扩展到理论无限的 Agent 数量。HCLTech 报告案件解决速度提升 40%。 **致命限制**:几乎不可调试(需要分布式追踪 + 黑板回放)。收敛条件必须精心设计,否则无限循环。无法保证事务一致性或严格顺序。上下文在交接中逐次丢失。 **选型信号**:最优路径未知、需要大规模探索、容错比确定性更重要。典型场景:竞品情报收集、大规模网页爬取、开放式客户支持路由。 模式 5 · Hierarchical · "组织架构的数字孪生" **DNA**:混合控制 + 委托通信(垂直)+ 有状态 **代码原语**:树形结构。顶层 Manager 持有全局目标,将任务分解为子目标委托给中层 Supervisor。每个 Supervisor 管理一组底层 Worker。每层增加一个抽象层——Manager 思考战略,Supervisor 思考战术,Worker 执行具体操作。CrewAI 的 Hierarchical Process 和 IBM 的大规模企业 Agent 系统都是这种模式。 **生产特性**:延迟 6–12s(3 层累积,每层 +2–4s)。上下文管理最好——没有单个 Agent 持有全部上下文,每层只看到自己需要的信息。分支故障隔离(一个 Supervisor 失败不影响其他分支)。支持 20+ Agent。 **致命限制**:信息在层间摘要时丢失("Manager 让 Supervisor 做 X,Supervisor 让 Worker 做 Y,但 Worker 不知道 X 的全局目标")。延迟逐层累积,3 层最少 6 秒。管理成本随层级增长。 **选型信号**:Agent 数量 20+、需要组织式分工、需要上下文隔离。典型场景:大型企业流程自动化、跨部门合规审查、模拟组织架构的 AI 团队。 ## 07 · 五种补充模式与组合策略:Pipeline 到 Magentic 的完整光谱 除了上面 5 种核心模式,还有 5 种在特定场景中不可或缺的补充模式: |模式|一句话|延迟|致命限制| | --- | --- | --- | --- | |Pipeline|固定线性顺序,N → N+1,不可回溯|N×500ms|错误级联、无并行、单阶段故障阻塞全部| |Fan-out/Fan-in|多 Agent 并行处理同一输入,结果聚合|max(L_i)|N² 冲突、API 限流、结果矛盾时聚合复杂| |Group Chat|共享对话线程,Chat Manager 控制发言|R×N×500ms|≤3 Agent(Microsoft),谄媚级联,15 次调用/5 轮| |Handoff|Agent 自主决定处理或转交,控制权转移|可变|无限交接循环、上下文逐次丢失、路由不可预测| |Magentic|Manager 动态构建 Task Ledger,迭代执行|不可预测|收敛慢、成本不可预测、目标漂移| **组合策略**是生产环境中最常见的实践。Microsoft Azure Architecture Center 明确指出:"不要试图让一个工作流适配单一模式——不同阶段可以用不同模式。"最常见的组合是:Pipeline(数据预处理)→ Fan-out/Fan-in(并行分析)→ Orchestrator-Worker(结果聚合)→ Group Chat(质量审查)。另一种高频组合是 Graph State Machine 作为骨架 + Handoff 做动态路由 + Checkpoint 做断点续跑。 **结论:10 种编排模式不是互斥的选项,而是一个光谱。从最简单的 Pipeline(固定线性)到最复杂的 Magentic(自适应规划),复杂度和成本逐层递增。生产环境的最佳实践是"组合模式"——用 Graph State Machine 做骨架,在特定节点嵌入 Fan-out/Fan-in、Handoff 或 Group Chat。但每次组合都要验证:增加的模式带来的精度增益是否超过其编排开销。** ## 08 · 选型公式与单位经济学:三个场景的成本对账 把选型逻辑浓缩为一道公式: ![](https://developer.qcloudimg.com/http-save/yehe-12521923/3c5c22a6db60afb46e47a92147b658f0.png) 图 6 · 三个场景 ROI——客服 +2.77/query(多 Agent)、知识库 −0.13(单 Agent)、合规 + ``` # 编排价值公式 ``` ``` V_orchestration = G_isolation − (C_token + C_latency + C_conflict) ``` ``` # G_isolation = 领域隔离收益(安全边界、专业化精度、上下文管理) ``` ``` # 量化方式:多 Agent vs 单 Agent 的准确率差 × 每次错误的业务成本 ``` ``` # 典型值:2.1pp × $50/错误 = $1.05/query(Google Research) ``` ``` # C_token = Token 膨胀成本 ``` ``` # = (M_multi - M_single) × tokens_base × $/M_tokens ``` ``` # 典型值:(15× - 4×) × 10K × $2.5/M = $0.275/query ``` ``` # C_latency = 延迟业务成本 ``` ``` # = (latency_multi - latency_single) × $/秒(用户流失、SLA 罚金) ``` ``` # C_conflict = N² 冲突解决成本 ``` ``` # = N(N-1)/2 × P_conflict × $/resolution ``` ``` # P_conflict = 每对冲突实际发生的概率(典型 5-20%) ``` ``` # 决策规则: ``` ``` # V > 0 → 多 Agent 有正 ROI → 选对应 Bracket 的模式 ``` ``` # V 0 才值得编排 **10 种模式** = 三个基因轴(控制拓扑 × 通信模式 × 状态管理)的全部稳定组合 → 选基因不选框架 REFERENCES [1] Google Research, "Towards a Science of Scaling Agent Systems"(2025)— 180 种 Agent 配置横评,单 Agent 在 64% 基准上持平多 Agent,+2.1pp 精度 [2] Microsoft Azure Architecture Center, "AI Agent Orchestration Patterns"(2026.02)— 6 种编排模式分类、Group Chat ≤3 Agent 建议、Magentic 模式定义 [3] arXiv 2510.01285, "LLM-Based Multi-Agent Blackboard System"(2025)— Blackboard 模式 LLM 化,13%–57% 端到端成功率提升 [4] Beam AI, "6 Multi-Agent Orchestration Patterns for Production"(2026)— Pipeline 延迟基准(950ms 开销)、N² 冲突公式、Princeton NLP 64% 数据 [5] Augmentcode, "Multi-Agent Cost Compounding: Why 3 Agents Cost 10×"(2026)— Token 膨胀 15×、工具描述 60–80% 静态、自验证 2.3× 开销 [6] LangChain, "Choosing the Right Multi-Agent Architecture"(2025)— 四种架构模式(Subagents/Skills/Handoffs/Router)、40–50% Token 节省数据 #MultiAgent #LangGraph #CrewAI #Swarm #AgentOrchestration #编排DNA 本文数据截至 2026 年 6 月,所有数值来自公开论文、官方架构指南与行业基准测试。欢迎指正。

优秀的个人博客,低调大师

Nacos 3.0 架构全景解读,AI 时代服务注册中心的演进

作者:杨翊(席翁),柳遵飞(翼严),罗鑫(子葵) Nacos /nɑ:kəʊs/是 Dynamic Na ming and Co nfiguration S ervice 的首字母简称,随着 Nacos 3.0 的发布,定位由"更易于构建云原生应用的动态服务发现、配置管理和服务管理平台"升级至" 一个易于构建 AI Agent 应用的动态服务发现、配置管理和 AI 智能体管理平台"。 Nacos 从 2018 年 7 月宣布开源以来,已经走过了第六个年头,在这六年里,备受广大开源用户欢迎,收获许多社区大奖。Nacos 在社区共同的建设下不断成长,逐步开始帮助用户解决实际问题,助力企业数字化转型,目前已经广泛使用在国内的公司中,根据微服务领域调查问卷,Nacos 在注册配置中心领域已经成为国内首选 ,占有 50%+国内市场 份额,被各行各业的头部企业广泛使用。在此期间,Nacos 的部署包下载量突破 300w 次,官网每年访问用户数超过 90w 人,被国内各主流云厂商托管服务。 随着 AI 时代到来以及 Nacos 3.0 版本的正式发布,Nacos 未来的演进目标以及架构也会随之升级。本文会对比 Nacos 3.0 与 Nacos 2.0 的架构异同,对 Nacos 3.0 的主要功能原理进行介绍。 Nacos 2.0 架构回顾 Nacos 2.0 的架构主要聚焦对性能和可扩展性进行优化和提升。 对于性能升级,Nacos 2.0 通过将通信模型从 HTTP 升级至 gRPC,从短连接模型升级到长连接模型,使得 Nacos 的通信吞吐量中极大提升;同时配合数据存储和数据结构模型的升级,进一步减少核心操作所涉及的步骤和链路,最终实现性能的 10 倍提升。 关于可扩展性升级,Nacos 2.0 通过将一些具有个性化需求的通用能力进行抽象,进行插件化改造的方式,允许 Nacos 用户和运维人员能够开发自定义插件,适配个人或企业的个性化需求。 虽然 Nacos 2.0 在性能和可扩展性实现了一些突破,但仍然还存在一些挑战。 其中一个主要的挑战就是 Nacos 的安全风险。比如:Nacos 2.0 中所有的 HTTP API 均使用 8848 端口, 这其中及包含了 1.X 客户端使用的 API,也包含了运维人员以及控制台的 API。不同类型的 API, 对于权限的需求其实是不同的,对于网络访问的连通性要求也是不同的。使用单端口并且使用唯一的鉴权开关,导致了网络的访问控制,以及鉴权控制都不是很灵活。许多用户为了方便使用,将此端口暴露在办公网甚至公网环境,同时未开启鉴权,这就造成了安全风险。 另一个问题就是默认命名空间的使用,Nacos 最初的版本中定义了命名空间作为数据资源的强隔离属性,不同命名空间之间的服务和配置不能互相发现和获取;但在最初版本中因为历史原因,注册中心和配置中心对于默认命名空间的处理方式有一定的不统一,这导致了许多用户在使用默认命名空间时经常配置错误或者出现疑惑;并且在 Nacos 2.0 提供各种插件能力之后,许多插件实现时需要额外工作进行适配,严重阻碍了插件的开发以及插件的稳定性。 随着 AI 时代来临,AI Agent 应用的部署形态在之前云原生可弹性可伸缩的基础上,要求更加轻量,更加弹性,例如 FC 场景;在这种要求下,我们需要考虑 Nacos 之前的服务发现和配置管理的能力是否还能承载 AI Agent 的应用的部署。同时,随着越来越多的 AI Agent 的应用贯穿业务全线,Nacos 能否帮助更好地管理 AI Agent 的应用,是 Nacos 在当前的挑战,同时也是新的机遇。 为了应对这些挑战以及机遇,Nacos 3.0 架构也做了对应的升级。目标是在 AI 时代成为更安全的 Registry。设计理念也由之前的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台升级为一个易于构建 AI Agent 应用的动态服务发现、配置管理和 AI 智能体管理平台。 Nacos 3.0 架构 2.1 Nacos 3.0 整体架构解析 Nacos 3.0 升级后的整体架构仍然以一致性协议、通信模块、其他模块等通用功能模块为基座,承载出注册中心、配置中心、AI Registry、协议增强等功能;同时通过各类多语言 SDK,桥接各个生态组件。架构的左右两侧,分别是 Nacos 的插件以及 Nacos 的一些拓展组件,它们一起构成了 Nacos 3.0 的整体架构。 我们来重点关注 Nacos 3.0 的新增能力,即图中绿色和棕色的部分。 这其中既包括对原本注册配置中心的增强功能,即模糊订阅,也包括了对 AI 相关能力的实现和规划,如 MCP 和管理,MCP Router,动态 Prompt 及 A2A 协议支持;同时也通过支持 xDS 协议及 Nacos Controller 继续加强和探索 Mesh 生态。 2.2 Nacos 3.0 AI Registry 架构 了解完 Nacos 3.0 的整体架构,接下来我们来看 Nacos AI 中心(AI Registry)的架构设计。作为 Nacos 3.0 规划中最重要的能力,Nacos AI Registry 的架构被分为 3 个层次,分别是模型层、``工具层和应用层。 在模型层中,主要通过对 AI 模型中一些常用的动态参数,比如 Prompt、学习率、联网参数等进行管理,采取复用在云原生应用中配置动态管理和分发能力的方式,帮助 AI 智能体在模型层进行快速调整及试错。 模型层之上是工具层,工具层主要帮助 LLM 模型和提供数据的 MCP 工具之间进行自动的发现、注册以及检索等能力,复用在云原生应用中服务的动态注册、管理、发现的能力,帮助 AI 智能体应用快速及便捷地发现 MCP 工具,同时快速过滤无关工具,减少 Token 损耗。 最顶层是 Agent 的应用层,实现 AI 应用与 AI 应用之间的发现与协作。目前规划是通过支持 A2A 等社区标准协议,同时配合 Spring AI Alibaba 等 AIAgent 应用框架,帮助 AIAgent 应用便捷的自动注册自身 AI 应用,同时发现其他 AI 应用,并能够像云原生应用一样,进行任务的分发以及结论的构成。 如果从功能视角出发,Nacos AI Registry 又可被分为针对大模型 LLM 的模型动态配置调优,针对 AI 应用平台的应用开发管理以及针对 AI Agent 应用的运行时能力增强。Nacos 希望通过不同的功能点,帮助 AI 应用像微服务云原生应用一样,能动态的调整 Prompt,学习率等参数,无需重新发布,从而帮助 AI 应用简化开发,调试过程中的繁琐操作,提高 AI 应用的开发和运行效率。 2.3 Nacos 3.0 安全架构 Nacos 2.0 中面临的一个主要的风险就是 Nacos 所有的 HTTP OpenAPI 均通过统一的端口进行暴露,同时使用了统一的鉴权开关,这使得使用者必须在便捷性和安全性中作出取舍,导致在许多部署的环境中可能存在安全风险。 Nacos 3.0 为了解决这个问题,从 Nacos 的部署架构上作出演进,独立控制台部署,拆分鉴权开关,分类 API 并默认开启控制台及管控类 API 的鉴权。 同时配合配置加密插件,``TLS 传输,来实现 Nacos 3.0 的零信任安全架构。 除了针对 Nacos 自身的安全零信任架构外,Nacos 3.0 还将与 Druid,Spring AI Alibaba/Spring Cloud Alibaba 等开源社区,及 KMS 等安全云产品合作,提供面向应用侧的数据源运行期动态轮转方案。 在这套解决方案中,数据源的凭据始终由 KMS 等凭据托管平台和系统保存,全程无人工传递和配置的过程。用户可以设置定期进行凭据的自动轮转,或在怀疑密钥泄漏时手动触发凭据轮转;触发后会通过 Nacos 动态无损的将新的加密凭据通知到 Druid 或 Spring AI Alibaba/Spring Cloud Alibaba,进行凭据的动态刷新和无损替换。这种方式极大降低了凭据泄漏的可能性,同时显著提高了安全性及出现安全风险时的收敛恢复速度。 Nacos MCP Registry 3.1 Nacos MCP Registry 架构 Nacos 3.0 最主要的能力升级就是作为 MCP Registry,支持了 MCP 服务的管理能力。 Nacos MCP Registry 支持三类 MCP 服务的注册方式: 第一类是将存量 HTTP 或 RPC 的服务,通过声明自动转化为 MCP 服务,配合 Higress 的协议转换能力,实现 0 代码改造成 MCP 服务协议,如何将存量 API 转化为 MCP 服务,详情可参见文档【1】。 第二类就是新构建的 MCP 服务注册, 配合 Spring AI 等 AI Agent 应用框架和 Nacos-MCP 的 sdk,能够做到像微服务一样自动注册到 Nacos 中进行统一的管理和维护,如何通过 Spring AI 或 Nacos-MCP 的 sdk 进行 MCP 服务的自动注册与发现,请参见文档【2】。 第三类就是已经构建好的或其他供应商提供的 MCP 服务,可以导入到 Nacos 中,进行其描述、工具列表、工具 Schema 等内容的动态修改和维护,让调试 MCP 服务变得更加简单。 3.2 Nacos MCP Router Nacos 3.0 支持用户通过 3 种方式发布 MCP 服务,并对 MCP 服务的元数据和版本进行管理,但如果最终不能将这些元数据和版本信息进行实际的使用,这些信息就没有意义。 因此 Nacos 3.0 提供 Nacos MCP Router 帮助终端使用者无需实际感知 MCP 服务列表,即可自动发现和使用需要的 MCP 服务。 Nacos MCP Router 提供两种工作模式,动态路由和动态代理。 动态路由模式将会根据 LLM 所提供的关键字信息,对注册在 Nacos 中的 MCP 服务进行相关性过滤和筛选,选择出与关键字相关的 MCP 服务进行实际的使用,从而减少对 LLM 上下文的消耗,实现路由 MCP 服务的能力。 而代理模式能够进行 MCP 协议的转换,将 stdio 和 sse 类型的 MCP 服务,代理成 streamable 类型的 MCP 服务。代理模式下的 Nacos MCP Router 不根据关键字进行筛选,仅是将注册在 Nacos 中的 stdio 和 sse 类型的 MCP 服务,转化成 streamable 类型,同时应用用户在 Nacos 上修改和编辑的 Tool 描述信息,将转化后的 MCP 服务列表,返回给 LLM 供其使用。 Nacos 3.0 RoadMap Nacos 3.0 的目标是成为全面拥抱 AI 时代的服务、配置、AI Registry 平台,因此 Nacos3.0 的 RoadMap 将会逐步实现 AI Registry 的能力,从当前的 MCP 管理,拓展到 Prompt 管理,Agent 的自动注册发现,再到 LLM 模型的参数管理和托管;同时进一步加强注册配置中心的能力和更多相关领域协议的支持(如 DNS,Mesh)。 Nacos 也希望有更多的社区贡献者加入进 Nacos 社区,帮助 Nacos 更快更好的完善和实现 Nacos3.0。 欢迎加入 Nacos 社区 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及 AI 管理。 Nacos 帮助用户更敏捷和容易地构建、交付和管理云原生 AI 应用的平台。 Nacos 是构建以"服务"为中心的现代应用架构 (例如微服务范式、云原生范式、AI 原生范式) 的服务基础设施。 Nacos 3.0 还有很多待完成的功能及大量待探索和开发的领域,欢迎大家扫码加入 Nacos 社区群及 Nacos MCP 社区讨论群,参与 Nacos 社区的贡献和讨论,在 Nacos 社区一起搭把手,让你的代码和能力有机会能在各行各业领域内进行释放能量,期待认识你和你一起共建 Nacos 社区; "Nacos 相信一切都是服务,每个服务节点被构想为一个星球,每个服务都是一个星系;Nacos 致力于帮助这些服务建立连接赋予智能,助力每个有面向星辰的梦想能够透过云层,飞在云上,更好的链接整片星空。" Nacos 官网: https://nacos.io/ Nacos 仓库地址: https://github.com/alibaba/nacos "Nacos社区群5"群的钉钉群号: 120960003144 "Nacos MCP 社区讨论群"群的钉钉群号: 97760026913 更多了解 Nacos 3.0 6 月 6 日,Nacos 在上海举办了开源开发者沙龙 MeetUp 活动,此次是 Nacos 社区成员今年首次线下分享最新的能力和实践,并邀请了 Spring AI Alibaba 和 Higress 一起分享一站式的开源解决方案。 有需要 MeetUp 的 PPT 或希望回看 MeetUp 活动视频的同学,欢迎加入本文末尾的群中获取。 同时如果对 Nacos 3.0 的架构,运行原理,最佳实践等内容感兴趣的同学,欢迎阅读 Nacos 3.0 更多相关文章: 《0 代码改造实现应用运行时数据库密码无损轮转》 《Nacos MCP Router 新版发布:支持 Docker 远程部署,MCP的多协议stido、SSE、Streamable互相转换》 《企业生产环境中,实现 MCP 服务的统一管理和智能路由的实践》 《Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态》 【1】存量 API 转换 MCP 手册 https://nacos.io/docs/latest/manual/user/ai/api-to-mcp/?spm=5238cd80.2ef5001f.0.0.3f613b7ciRMNL5 【2】MCP Server 自动注册手册 https://nacos.io/docs/latest/manual/user/ai/mcp-auto-register/?spm=5238cd80.2ef5001f.0.0.3f613b7ciRMNL5

优秀的个人博客,低调大师

2025 视频协作工具全景解析:技术跃迁与场景重构

一、技术演进:从功能工具到智能生态 2025年视频协作软件的核心竞争力已从基础功能升级为技术生态的构建。以分秒帧为例,其音视频生产协作系统,可帮助创作者在云端构建工作流,让跨地域、跨终端、跨团队的协作组可以在统一的安全平台上管理所有媒体资源、任务、反馈信息,从而更高效地创作并交付优质内容。而Frame.io V4通过与徕卡、佳能等相机厂商合作,实现C2C(Camera to Cloud)技术,摄影师拍摄的8K素材可实时同步到云端,好莱坞团队用其将素材整理时间从4小时压缩至15分钟。 在架构层面,云原生微服务成为主流。而聚连会议的分布式系统架构实现故障节点无感知修复,保障千人会议的99.9%可用性。AI技术的深度融合更催生了新物种——A梦AI软件通过智能素材匹配系统,能根据脚本自动推荐适配的音乐、字幕和转场特效,自媒体创作者用其10分钟即可生成爆款短视频。 二、场景重构:从单一协作到垂直深耕 2025年的视频协作呈现行业深度定制化特征,以下为典型场景解析: 影视工业化生产 技术突破:分秒帧与北京某市级融媒体机构合作,实现4K素材云端协作,突发新闻报道时效提升50%。其AI敏感内容审核可自动检测地图错误、人脸遮挡等问题,规避政策风险。 工具组合:Frame.io V4的智能文件夹支持按项目阶段自动分类素材,搭配Premiere Pro的AI剪辑推荐,使影视粗剪效率提升30%。 教育与培训 创新应用:聚连会议的AR沉浸式课堂将教师人像与虚拟课件融合,学生参与度提升40%。其AI学习报告可分析学生视频作业的薄弱知识点,教师周均节省8小时批改时间。 安全合规:分秒帧通过教育行业数据安全认证,支持私有化部署,防止教学内容泄露,已服务中国大学MOOC等平台。 跨国协作与会议 效率革命:Zoom的50+语言实时翻译和弱网优化技术,使其在跨国会议市场占有率达65%。但需搭配分秒帧实现“会议讨论+内容审核”闭环。 本土化方案:瞩目国际版的5万人研讨会模式支持投票、问卷等互动功能,国内企业用其替代Zoom,节省40%会议成本。 三、安全与合规:新竞争维度 2025年视频协作的安全合规要求显著提升: 数据主权:AES-256算法加密,T4级别IDC机房;SSL/TLS协议加密传输,2048位RSA密钥;Apple FairPlay DRM,全链路视频流加密,确保用户数据安全无忧。 内容安全:Adobe Premiere Pro的AI内容凭证技术可嵌入不可篡改的元数据,确保影视素材的版权归属,已被BBC采用。 行业标准:《远程音视频手机银行技术规范》的出台,推动金融行业视频协作向标准化发展,交通银行“云理财”用其将双录质检效率提升70%。 四、成本与性价比:分层市场策略 类型 代表产品 核心优势 成本对比 专业协作层 分秒帧 逐帧批注+版本管理+行业合规 企业版3999元/年起(含1TB存储) 国际高端层 Frame.io Adobe生态+好莱坞级审片 25美元/月/用户 轻量工具层 快剪辑 AI写真+智能抠图+短视频模板 免费版功能全,无广告 垂直场景层 聚连会议 AR沉浸式会议+分布式架构 企业版2388元/年(含1000人会议) 五、未来趋势:从工具到基础设施 AI全面渗透:2025年90%的视频协作工具将集成AI,Frame.io的素材智能推荐,AI功能对效率提升的贡献率将达40%。 云原生架构普及:云原生微服务架构将成为主流,分秒帧、聚连会议等厂商通过弹性扩缩容,可支撑单集群百万并发,存储成本降低60%。 硬件协同深化:徕卡SL3、佳能C400等相机的C2C功能,使素材从拍摄到云端的时间缩短至秒级,推动“拍摄即协作”的工作流变革。 安全合规升级:数据本地化、内容防篡改等功能将成为企业采购的硬性指标,预计2025年安全合规相关支出占IT预算比例将达15%。 六、选型指南:按需求精准匹配 大型企业:分秒帧(协作)+Zoom(会议)+万彩动画大师(模板),覆盖全流程协作。 跨国团队:Frame.io(剪辑)+瞩目国际版(会议),兼顾专业度与本地化。 教育机构:聚连会议(课堂)+分秒帧(作业管理),实现教学闭环。 个人创作者:快剪辑(AI)+剪映(模板),快速出片。 通过以上分析可见,2025年的视频协作已进入技术驱动场景创新的新阶段。企业需根据自身需求,在专业度、成本、安全合规等维度综合考量,选择“核心工具+垂直插件”的组合方案,方能在视频生产力革命中抢占先机。

优秀的个人博客,低调大师

得物卓越研发效能之路:原则、方法与实践全景揭秘

一、引言 在当今互联网技术日新月异和企业降本增效的时代,研发效能已经成为衡量一个团队或组织竞争力的关键指标。提升研发效能不仅能加速产品上市时间,还能提高产品质量,增强客户满意度,持续提升企业竞争力。本文旨在介绍得物如何从原则、方法到成功实践,系统性提升研发效能的过程和经验。期待与行业专家深入探讨和交流,共同推动研发效能实践的新突破。 二、背景 得物业务近几年高速发展,技术团队规模增长超过20倍,形成了千人以上的敏捷迭代开发模式。每双周的需求吞吐量达到上千个,应用构建超数万次,应用发布也超过了数千次。这对研发效能基础设施和技术实践提出了非常高的要求。在协同方面,我们通过技术效率调研、流程再造、系统升级等方法,提高了研发生产过程中跨域、跨团队、多职能协同效率;在工程方面,通过自研一站式BizDevOps研发效能平台,提高了构建效率、流水线效率和发布效率等。在不断提升业务需求价值流动效率、反馈效率和持续学习改进效率过程中,形成了得物特色研发效能解决方案和效能实践。 三、得物研发效能提升理念和原则 研发效能的定义和重要性 研发效能指的是在软件开发过程中,团队利用资源(包括时间、人力、技术等)的效率和效果。高效能的研发团队能够以更低的成本、更快的速度和更高的质量完成项目开发。提升研发效能能够帮助组织快速响应市场变化,持续提高竞争优势。 研发效率和研发效能有什么不同? 效率(Efficiency):指单位时间内的产出量,相当于生产力(Productivity)。公式为:效率 = 产出 / 所用时间。 效能(Effectiveness):指对业务有实际价值的效果和成效,强调有效性和效益。公式为:效能 = 有价值的产出 / 所用时间。 研发效能 :在软件研发中,研发效能= 对客户有价值的需求 * 效率 。在需求有效的情况下,效率越高,效能也越高。鉴于商业环境变化较快,研发团队还需具备适应环境变化的能力,以保持稳定的、有价值的交付,实现可持续发展。因此,研发效能可以表示为:研发效能 = 有效性 * 效率 * 可持续性。 研发效能的一句话定义:"持续地、安全地、高质量、高效率地交付有效价值"。 很明显,提升研发效能更加重要,但是比提升研发效率要难很多。 从经验来看,在团队早期阶段,把研发效率作为首要目标比较合适,毕竟在工具、系统、度量没有非常完备的阶段, 很难清晰地定义出研发效能。 当团队和基建成熟度到了一定阶段, 研发效能就应该成为重要的指标,这时,团队开始注重需求的价值, 而不是一味追求需求吞吐率。我们逐步对需求价值复盘达标率,有效需求交付率提出明确要求,进而提升整体研发效能。 研发效能提升理念和原则 研发效能提升的理念基于系统思考,旨在全局范围内寻找最优解。我们从全局和整个生产线的角度出发,清晰定义从业务到技术实现的端到端系统链路,并分析各个环节的流动效率,发现问题、分析问题和解决问题。 研发效能提升的原则包括精益理论、敏捷原则和持续改进。首先,我们倡导全员参与,在全过程寻找约束项,减少一切形式的浪费。其次,应用敏捷原则,通过技术效率问卷和访谈,从公认的痛点问题入手,快速响应快速迭代解决问题。最后,通过定期调研和数据度量分析,持续解决问题,形成提升效能的增强反馈循环。通过这些方法,我们能够系统化地优化研发过程,提高整体效能。 原则: 精益理论:全员参与,在全过程寻找约束项,减少一切形式的浪费。 敏捷原则:强调灵活性和快速反应能力,重视人本和交互。 持续改进:数据驱动,不断优化过程,形成改进增强反馈循环。 四、得物研发效能提升方法和实践 软件工程的发展经历了几个重要的阶段,每个阶段都旨在应对特定的挑战和需求。总结起来,这些阶段分别为了快速响应市场变化、需求变化和代码变化,以及聚焦业务价值。 首先,精益理论方法强调破除各种约束,减少一切浪费,以提高整体效率和价值交付。这一理念帮助团队专注于高价值活动,最大限度地利用资源。 接下来,敏捷开发模式,主要目的是为了快速响应不断变化的需求。通过短周期迭代和持续反馈,敏捷开发能够更灵活地适应需求的变化,提高产品的适应性和用户满意度。 随后,DevOps的提出则是为了应对代码变化带来的挑战。通过打通开发(Dev)和运维(Ops)之间的壁垒,DevOps实现了更加快速和高效的代码交付和部署,使得从代码编写到上线的整个过程更加顺畅和可靠。 现在,BizDevOps的概念进一步扩展了这一思路,旨在提升端到端的整体研发效能。BizDevOps不仅关注开发和运维的协同,还将业务(Biz)需求紧密融合到整个研发流程中,从而实现业务与技术的无缝对接。通过这种方式,BizDevOps 确保了从需求提出到最终交付的每一个环节都能够高效运转,全面提升企业的市场响应速度和价值交付能力。 得物在提升研发效能的方法和实践中,完整经历了敏捷迭代、质量工程、DevOps以及BizDevOps四个阶段的演进。结合得物技术精细化管理方法,我们逐渐形成了具有得物特色的研发效能解决方案和实践。在持续探索和应用这一系列实践的过程中,我们有效保障了在技术团队规模不断增长的同时,也实现了得物整体研发效能的稳步提升。 敏捷开发实践 得物是新一代品质生活方式平台,采用社区+电商的业务模式,具有链路复杂度高和玩法新颖等特点。近几年业务快速增长,得物技术团队需要支撑全业务域十几条业务线作业,同时保障横跨四地的研发中心千人以上规模团队的有效协同。这些因素带来了巨大的协作和管理挑战,特别是在保持业务敏捷性和快速响应市场变化方面。 敏捷开发实践 为了有效应对这些挑战,得物采取了一套特色的敏捷开发模式,能够支撑全业务域十几条产线的千人团队进行双周迭代作业。 得物敏捷开发实践, 包含以下主要特点: 标准双周迭代:通过标准的双周迭代周期,确保全业务域在规范的时间窗口内进行跨域协同和标准化排期生产,从而持续推进项目进度。 单双周灵活发布窗口:在固定迭代周期的基础上,引入单双周的灵活发布窗口,能够实现单双三四周灵活发布,提高需求上线效率。 得物特色需求管理系统:自研需求管理系统和协同面板,实现了需求的统一管理、任务分配和跟踪,极大地提高了团队的工作效率。 敏捷开发实践收益 通过实施这套敏捷开发模式,我们能够快速响应业务需求,在每次迭代中能够上线超过1000+需求,并且MRD的吞吐率达到75%以上;PRD的吞吐率更是达到80%以上,对于优先级最高的P0和P1需求,完成率达到了100%。累计下来,通过这套敏捷开发模式我们已经完成了1.2w+个项目和11w+个需求的交付。 质量工程实践 在实施敏捷开发双周迭代模式的过程中,我们面对的挑战不仅仅是需求量的庞大和迭代周期的压缩,还有跨域需求多和电商链路上下游依赖长等复杂问题。在这样的背景下,我们传统的质量保障方法,如功能测试和集成测试,已难以应对快速迭代中需求上线的质量。 为了克服这些挑战,我们实施了一系列质量管理方法和实践,核心在于质量内建的共识和质量工程实践相结合。我们认为高质量的产品并非在测试阶段才能实现,而应当在代码开发阶段就内建其中。在这样的共识下,全体成员都会参与质量内建和质量工程工作,实现了从项目起始到终结的全过程质量保障活动和实践。 质量工程体系 得物的质量工程体系涵盖了质量策划、质量保障活动和质量评估与改进三大核心过程,能够为双周敏捷开发提供全面质量管理保障,保持高水位的需求交付质量和线上服务稳定性。 「质量策划」 质量目标:设定明确的质量目标,确保项目各阶段都有清晰的质量标准。 质量指标:制定可量化的质量指标集,用于评估和监控项目的质量表现。 质量内建:在开发的每个环节中嵌入质量保障措施,确保质量从源头得到保证。 「质量保障活动」 迭代过程质量管理:通过有效的迭代质量管理,确保每个开发周期的质量和进度。通过同比环比等方式,持续优化和改进。 迭代质量评审:迭代中通过质量大盘,进行迭代质量评审,达到准出标准后,方能上线发布。 质量月:定期组织"质量月"活动,协同产研团队,集中力量解决关键质量问题,提升整体质量意识。 质量专项 : 代码审查:通过严格的代码审查,确保代码质量和规范。 代码Review:系统化的代码Review,提升代码的可维护性和稳定性。 单元测试(UT):实施单元测试,确保每个模块功能正确。 自动化测试:引入自动化测试,提高测试效率和覆盖率。 精准测试:实施精准测试策略,提升测试有效性。 流量回放:利用流量回放技术,模拟真实用户行为,验证系统功能。 线上巡检:定期进行线上基础功能巡检,及时发现和解决服务运行中的潜在问题。 线下监控:通过线下监控手段,持续跟踪系统稳定性,提升NPE等问题拦截率。 全链路压测: 通过全链路压测,保障大促和重要活动的容量支撑, 保障业务稳定性。 APP专项: 通过APP性能、APP兼容性、APP体验测试, 保障APP用户体验达到Top水平。 「质量评估与改进」 迭代质量复盘:在每个迭代结束后进行复盘,总结经验,制定改进措施。 质量月复盘:在"质量月"结束后进行复盘,评估项目和实践效果,调整后续质量策略。 研发质量季度报告:每季度发布研发质量报告,全面回顾和评估质量表现,制定长期改进计划。 质量保障活动-迭代过程质量管理 迭代过程质量管理,是值得展开介绍的质量活动之一。在迭代中,质量活动会完整覆盖到需求阶段、研发阶段、测试阶段、发布阶段和运营阶段。 通过全生产链条实施质量专项覆盖,包括自动化、流量回放、精准测试、线上巡检和线下监控等,提升缺陷拦截率和线上稳定性。 质量保障活动-迭代过程质量管理-质量大盘 质量大盘是迭代过程中质量管理的重要度量和可视化工具,能够清晰展示双周迭代中的需求总数、缺陷总数、开发与测试人日比,以及一系列内建质量协同指标,如冒烟测试一次通过率、准时提测率、缺陷日清率和缺陷引入率等。每个迭代都能提供实时反馈,帮助团队更好地进行质量改进。 质量工程实践成果 通过这些系统化的质量策划、保障活动和持续的评估与改进措施,能够确保项目在每迭代需求上线质量都能达到准出标准,并且能够持续提升产品的整体质量和用户满意度。 在观测质量指标方面, 能够看到代码新增技术债归零,缺陷引入率从过去3到现在0.7缺陷/需求以下,线上故障数持续下降,以及线上SLA达到4个9以上的明确结果。 DevOps实践 为了进一步提升研发效能,得物在敏捷开发的基础上引入了DevOps实践。通过定义研发效能的三个主要阶段:规划与协同阶段、研发与验收阶段、发布与运营阶段,并采取分阶段治理的方法,提高了整体效率。 在规划与协同阶段,我们升级了需求管理系统,融合了协同面板,从而提高了需求流转效率和上下游任务流效率。在研发与验收阶段,建立了代码管理系统、流水线系统和测试管理系统,有效提升了编码和测试验收的效率。在发布与运营阶段,通过发布系统的升级、实现蓝绿发布模式等,大幅提升了发布的稳定性和效率。 通过一系列系统升级和流程再造实践,我们显著提高了需求流动、代码流动和应用流动的效率,从而提升了价值流动效率,实现了应用快速部署和需求快速交付能力。 持续集成流水线 通过引入持续集成流水线,将原有的手动构建、部署和测试流程实现了自动化,并大幅提高了整体交付效率。以下是我们常用的几种流水线类型: Push流水线:在代码提交后处理代码审查、单元测试和构建测试,反馈效率在分钟级。 MR流水线:在代码合并请求时进行验证,确保合并前的代码质量,反馈效率在分钟级。 提测流水线:在正式测试前自动运行基础功能测试,提升冒烟测试通过率和交付完整性,反馈效率在分钟级。 集成流水线:整合多模块、多团队的代码,确保跨域跨团队实现功能的完整性,反馈效率在小时级。 发布流水线:代码经过测试环境到生产环境的发布,确保发布过程高效且无错误,反馈效率在小时级。 持续发布提效 在得物的双周版本发布中,由于应用数量超过100个且跨域需求和场景较多,应用之间的依赖性较强,导致发布梯队和批次较多,发布时间和验证时间较长。为了解决这一问题,我们采用了蓝绿发布模式,有效解除版本间的依赖,提升了发布效率。 蓝绿发布:从传统的滚动发布到更加灵活的蓝绿发布,解决大版本中上百个应用梯队发布的效率问题,确保每个发布阶段的稳定性和可靠性。 发布场景:支持多种发布模式和场景,包括前端发布、算法发布以及同城多活发布,确保不同业务需求的高效发布。 DevOps实践成果 通过DevOps实践,提高自动化的覆盖范围, 增加流水线在各个阶段和协同场景中的应用, 我们大幅提高了构建效率、部署效率和班车效率。 流水线应用成果 通过Push流水线的应用, 前置反馈代码类问题,实现需求染色环境流水线自动化部署提效;通过MR流水线应用,能够作为代码门禁,在代码合入阶段有效拦截高风险代码问题(例如:编译问题、代码扫描、Jar包检查、DTO实体规范扫描、安全扫描等); 通过提测流水线的应用能够作为研发需求代码测试准入卡口,实现自动化测试左移,保障提测质量; 通过集成流水线能够提升质量保障专项测试和集成测试效率;通过daily流水线, 能够日常巡检当日变更服务的代码质量情况和自动化Case稳定性。 这一系列流水线的应用,有效提高了需求提出到上线的效率。 MR流水线成果 MR流水线作为代码门禁,在代码合入阶段有效拦截高风险代码问题。目前迭代MR流水线各项指标保持在高水位,包括流水线成功率92%+、构建成功率98%+、代码扫描通过率99.9%、Jar包通过率88%+、Semgrep扫描通过率88%+、DTO实体规范扫描通过率99%+。 Daily流水线成果 Daily流水线全域成功率99.6%、构建成功率99.9%、部署成功率99.8%、代码扫描通过率92%、基准集成自动化成功率99.7%、迭代集成自动化成功率99.7%。 班车发布提效成果 通过蓝绿发布和发布场景优化等措施,双周大版本班车的发布时间从过去10小时以上,现已优化至2小时内。显著提高了发布效率,大幅节省了研发和测试在发布过程中的投入。 全域发布提效成果 全域构建成功率平均为97.47%,部署成功率平均为98.71%,回滚率平均为0.63%,热修平均为1.76%,整体法发布效率和稳定性保持在比较高的水位。 BizDevOps实践 为了持续降本增效和更加聚焦业务价值,持续提升研发效能。在DevOps的实践基础上,得物继续引入BizDevOps 实践,通过加强业产研运的协同,提高业务目标、产品需求和技术资源投入的关联度,提高业务有效价值的交付效率,帮助业务更好的增长。 得物一站式BizDevOps平台 为了提高Biz阶段业务目标的感知和管理,得物研发效能平台系统再次升级,通过OKR系统与需求管理系统打通,需求管理系统与时间手账关联等系统功能, 打通全链路价值流、需求流、代码流、应用流和时间流,实现一站式BizDevOps解决方案能力。 业务目标与需求关联 我们采取了以下几个关键的实践方法,包括OKR系统与需求管理系统打通,以及在需求评审和复盘环节增加需求价值判断和高优需求资源占比等分析改进: OKR与需求关联:通过将业务OKR与需求关联起来,我们确保每一项需求的提出和实施都直接对应业务重点目标,从而保障了资源的有效分配和利用,确保团队的工作重心、资源投入与业务目标保持一致。 需求价值判断: 在需求排期和评审环节, 针对低价需求打回,拒绝低价值需求流入生产阶段。 需求价值复盘:在需求上线后,我们不仅评估项目的交付质量和进度,更重要的是对其创造的价值进行复盘,通过量化分析需求给业务带来的价值,不断提高资源投入的ROI。 BizDevOps实践成果 重点需求资源投入提升:通过OKR关联需求,能够看到技术资源投入在重点需求的占比,在试点域达到80%以上。 需求价值达成率提升: 全域重点需求价值达成率保持较高水位,需要复盘重点需求价值达成率达到90%以上。 年度人效提持续提升:通过BizDevOps实践,优化资源配置与业务重心一致性,聚焦业务价值,持续提高研发效能,实现了技术团队人效的持续提升。 五、得物研发效能平台和系统 从敏捷开发实践、质量工程实践到DevOps实践和BizDevOps实践, 研发效能团队不断探索和创新, 自研大量的特色定制化工具和系统, 以加速实践落地效果,确保项目快速、高质量地交付。本节将全面介绍得物在研发效能提升方面所采用的一些具有特色的平台和系统。 在得物研发效能平台系统中,有6大核心研发效能管理系统值得重点介绍和分享,分别是需求管理系统、代码管理系统、测试管理系统、流水线管理系统、发布管理系统和时间手账系统。这些系统分别管理着研发生产流水线中的6种重要的生产过程介质:PRD、Code、TestCase、Pipeline、Service和Time。每一个系统都致力于在最短时间内高质量地交付其所管理的介质,直至其生命周期的结束。 需求管理系统 需求管理系统(PRD-Based Management)是一个以需求管理为核心的平台,旨在全面提升项目和需求管理的效率,同时促进各职能线之间的高效协同作业。该系统不仅能承载所有项目管理、需求管理、需求排期、任务拆分、缺陷管理等工作,还能够支持需求在各职能线之间的顺畅状态流转,形成一个高度集成和协同的工作平台。 功能特点: 项目/项目集管理 需求/需求池管理 敏捷迭代管理 OKR-需求关联 需求价值复盘 【RDC需求管理】 【协同管理】 代码管理系统 代码管理系统(Code-Based Management),以代码管理为核心,平台提供仓库管理、分支管理、MR管理和CR管理等功能。 支持在线阅读代码,多需求分支管理(分支规范、分支需求关联、分支版本关联、分支快捷合并移除、分支回收站等特性),线上CR、IDE插件CR以及AI辅助CR等功能。 功能特点: 仓库管理 分支管理 MR管理 CR管理 【分支管理】 【线上CodeReview】 测试管理系统 测试管理系统(TestCase-Based Management),以TestCase管理为核心, 测试可以根据测试管理系统创建用例、评审用例和执行用例。 测试管理系统,包括手工用例管理、自动化用例管理、资损用例管理等,包括功能测试、性能测试和兼容性测试用例等,是支持快速迭代的全量测试用例管理中心。 功能特点: 测试用例管理 自动化用例管理 资损用例标注 流量用例标注 测试覆盖率统计 精准测试推荐 【集成用例管理】 【自动化用例管理】 流水线管理系统 流水线管理系统(Pipeline-Based Management), 以Pipeline为中心, 包含Push流水线、MR流水线、提测流水线, 集成流水线,发布流水线等。流水线系统是持续集成与持续部署(CI/CD)核心,通过在流水线中自构建和部署,可以快速地将代码变更集成到应用和发布到环境,实现快速集成和交付。 功能特点: Push流水线 MR流水线 提测流水线 集成流水线 Daily流水线 流水线插件市场 【流水线任务管理】 【流水线插件管理】 发布管理系统 发布管理系统(Service-Based Management),以应用/制品为核心,经过应用依赖编排,根据各应用的服务特征和配置等,通过发布流水线,发布上线。 发布管理系统支持滚动发布、蓝绿发布和同城双活发布功能。 并且支持不同技术栈和发布场景, 包括前端发布、算法发布和社区发布等。 功能特点: 前端发布 算法发布 滚动发布 蓝绿发布 灰度发布 同城双活 【应用发布】 【蓝绿发布】 时间手账系统 时间手账系统(Time-Based Management),以时间管理为核心, 经过时间分配、时间投入登记、时间分析复盘和时间管理优化等过程, 形成时间管理最佳实践。在时间手账系统上,能够清晰的看到各个职能团队和项目组的时间投入分配、个人工作任务时间花费情况,以及其他工作事项的时间投入的细节。 能够帮助个人和团队优化时间管理,减少低价值工作时间投入, 提升单位时间工作效率,进而提升整体研发效能。 功能特点: 时间登记 时间分析 时间管理和优化 【时间分析】 六、得物研发效能度量和优化 研发效能度量是一个至关重要的领域,值得专门讨论和分享。首先,我们要认识到研发效能度量贯穿于软件开发的整个生命周期,它不应该仅仅被视为某个特定环节的任务。这意味着从需求分析到设计,再到编码、测试、发布,直至软件交付,每一个阶段都需要关注和实施有效的度量。 其次,度量的根本目的在于促进更有效的管理和持续改进。正如管理学大师德鲁克所强调的那样:"如果你不能度量它,你就不能管理它。"这句话指出了度量在管理过程中的核心作用,通过具体、可量化的数据,管理者能够清晰地把握研发过程的效率和成果,从而做出更加明智的决策。 最后,尽管度量的重要性不言而喻,但我们也必须警惕陷入度量指标的陷阱。度量工作应当服务于研发效能和产品质量的提升,而不是单纯为了收集数据而收集数据。我们需要确保度量工作能够真正地为研发过程带来价值,而不是成为团队的负担。简而言之,度量应当被视为提升研发效能的工具,而不是目标本身。 得物研发效能度量体系 得物研发效能度量体系包含 研发效能展示层、研发效能度量评估层、研发效能度量数据层和研发效能数仓,能够提供全流程全视角的研发效能度量能力。 「研发效能度量展示层」 质量大盘:展示迭代过程中的质量数据,包括内建质量、代码质量、测试覆盖率等指标,提供全面的质量概览。 效能大盘:展示迭代过程中的效能数据,包括交付质量、交付效率和交付能力等,帮助团队实时监控效能表现。 效能洞察:通过全域数据、单域数据和组织数据的多维度分析,提供深度的效能洞察,识别潜在问题和改进机会。 研发质量季度报告:定期发布研发质量季度报告,全面回顾和评估质量表现,提供改进建议。 研发效能季度报告:定期发布研发效能季度报告,总结效能表现和趋势,指导后续改进工作。 「研发效能度量评估层」 交付质量:评估产品在交付过程中的质量,包括缺陷数量、严重程度和解决时间等指标。 交付效率:评估团队的交付效率,包括开发周期、测试周期和发布周期等关键指标。 交付能力:评估团队在不同阶段的交付能力,包括构建效率、部署效率和系统流畅度等指标。 「研发效能度量数据层」 业务OKR和项目数据:收集和分析与业务目标和业务OKR以及项目相关的数据,评估项目进展和目标达成情况。 研发过程数据:收集研发过程中的数据,包括代码提交频率、代码审查通过率、开发工时等,监控研发流程的各个环节。 测试过程数据:收集测试阶段的数据,包括测试用例数量、测试通过率、缺陷发现率等,评估测试环节的质量和效率。 发布和线上数据:收集发布和线上运行的数据,包括发布成功率、平均故障修复时间、系统稳定性等,确保产品在生产环境中的表现稳定可靠。 研发效能度量实施步骤 指标定义和选取 首先,我们需要明确终极指标,即用户价值或需求价值。这通常是我们计算人效的关键,也是最终的结果指标。为了优化这一结果指标,我们需要识别出过程指标和约束项。通过减少约束并提高过程指标,我们可以提升最终的结果指标,从而提升整体研发效能。 其次,参考DORA 4-key-indicator指标。 DORA在其研究报告中提出了四个关键指标,用于衡量软件交付和运维性能。这些指标在实践中被证明与高绩效团队相关,可以帮助组织更好地了解其当前的软件交付能力,并找到改进的方向。这四个关键指标包括: 部署频率(Deployment Frequency):部署频率指的是在一段时间内,软件更新或新功能被部署到生产环境的次数。高绩效团队通常具有较高的部署频率,这意味着能够快速地将新功能和改进推向市场。 变更前导时间(Lead Time for Changes):变更前导时间度量了从代码提交到代码成功部署到生产环境所需的时间。较短的变更前导时间表示团队能够更快地响应市场需求和客户反馈,从而实现快速迭代和创新。 变更失败率(Change Failure Rate):变更失败率指的是部署到生产环境的更新中,需要进行紧急修复、回滚或导致服务降级的比例。较低的变更失败率意味着团队能够保持较高的软件质量,降低对生产环境的负面影响。 恢复时间(Time to Restore Service):恢复时间是指在出现故障或服务降级时,恢复正常服务所需的时间。较短的恢复时间表明团队具备较强的故障排查和修复能力,能够在问题发生时快速响应并恢复服务。 最后, 结合现有业务场景现状和研发模式, 补充现阶段比较关心的过程指标比如质量内建指标、代码质量和测试效率等。最终形成得物研发效能度量指标集。 基于得物研发协同模式,研发效能度量聚焦在规划与协同阶段, 研发与验收阶段, 和发布与运营阶段三大阶段和大能力域: 「需求管理」、「任务管理」、「缺陷管理」、「版本管理」、「代码管理」、「API管理」、「持续集成」、「测试管理」、「环境管理」、「发布管理」, 在各个能力域分别定义了比较详细的度量指标。 指标应用和改进 标准迭代度量:重点关注标准双周迭代的数据,持续跟踪和评估每个迭代周期的表现。 同比环比分析:从全域维度进行同比分析,可以评估当前全域的水位;从单域维度进行环比分析,可以监控每个迭代的进展情况,确保持续改进。 因地制宜:根据业务域所处不同阶段,选择合适的指标集,以确保度量的针对性和有效性。 效能大盘-标准迭代度量 在迭代过程中,我们通过跟踪交付效率、交付质量和交付能力的数据,深入分析具体需求和职能团队,识别改进点。通过持续跟踪和优化,确保每个迭代都能有所进步。 效能洞察-全域看板 通过研发效能数据仓库,实现数据聚合功能,我们能够在效能洞察系统中查看全域、多迭代的数据。该系统支持在研发效能的十大能力域内洞察效能水平,为持续改进提供全面的数据支持。 阶段复盘和归档 研发质量季度报告:通过季度性复盘、分析和全域全职能的质量报告,我们能够全面掌握研发质量水平。这有助于提升研发内建质量、测试质量、发布质量和线上质量。 研发效能季度报告:通过季度性复盘、分析和全域全职能的效能报告,我们能够全面了解研发效能水平。这有助于提升研发编码效率、测试效率、发布效率和整体研发效能。 七、得物研发效能团队和文化 研发效能团队 提升研发效能是一个复杂的过程,涉及到方法论、技术、工具、流程、人员和文化等多个方面。只有当这些元素协同工作,形成一个支持快速学习、持续改进和高效协作的环境时,组织才能真正实现研发效能的提升。 得物研发效能团队演化进程,大概可以分为三个阶段, 分别是工具型团队、平台型团队和业务型团队。 研发效能团队发展的三个阶段并不是刻意定义和驱动形成,而是随着组织对于研发效能需要和解决问题方法逐步演进形成。 工具型团队阶段 在这一阶段,研发效能团队主要聚焦于工具的开发和快速交付。 我们根据业务域研发、测试团队的明确需求,筛选、开发或定制化工具,以解决特定的开发、测试或部署问题。这个阶段的核心任务是提高工具开发效率,尽快向用户交付工具,减少手工操作等。工具团队的目标是解决明确定义点状问题, 比较典型的类似提供全局可用的测试环境,数据银行,自动化平台等。 平台型团队阶段 进入平台型团队阶段,研发效能团队的视野和职责范围开始扩大。我们从整个生产线和组织协同的角度出发,统一研发效能解决方案,建设一套完整研发效能解决方案。这个方案包括需求管理、代码管理、版本控制、持续集成/持续部署(CI/CD)、测试管理和发布管理等多个方面。平台型团队的目标是创建一个共享的、可复用的、标准化的研发环境,以促进不同团队之间的协作、提升整体研发效率和软件质量。 业务型团队阶段 当研发效能团队发展到业务型团队阶段时,我们需要精细化地洞察问题,提出解决方案。在这个阶段,研发效能团队不仅深入理解技术和工具,更能洞察业务场域问题,主动发现并分析问题,并提出具有价值的解决方案,解决问题。团队能够跨越技术和业务的边界,以业务价值为导向,优化研发流程,推动技术创新,促进产品和服务的持续改进。业务团队阶段的研发效能团队是组织内部变革的推动者,我们通过提升研发效能,最终实现业务目标和组织价值的最大化。 研发效能文化 得物技术团队始终以"稳定""效率""体验""成长""创新"作为核心关键词,致力于打造学习型组织,不断提升技术硬实力,立志成为上海最优秀的技术团队。 在提升研发效能的过程中,我们始终保持高度的共识和行为一致性。团队在工作中具备明确的目标、开放的沟通环境和持续学习的态度。在项目推进过程中,我们逐渐形成了一系列行为习惯: 客观透明,数据驱动:高度重视数据,以全面、全维度的参考指标驱动改进,确保每一个决策都基于客观事实。 鼓励MVP和技术创新:鼓励实践MVP和技术创新,通过探索和实验,形成最佳实践,并将其推广到全团队。 鼓励跨部门协同:鼓励打破部门壁垒,促进跨部门的相互理解和协作,提升整体效率。 持续学习和改进:倡导知识共享和持续学习的理念,鼓励团队成员分享经验和教训,不断改进和提升。 通过坚持这些行为准则,我们确保团队在研发效能提升过程中,始终保持高效协作和持续进步,推动得物技术研发效能不断提升。 技术部荣誉激励 值得一提的是,得物技术团队始终重视并积极激励那些在优秀实践中表现突出的个人和团队。为此,我们专门设立了一系列研发效能实践荣誉激励奖项,以表彰在研发效能方面取得优异成果的贡献者。具体奖项包括: 火眼金睛奖:表彰在CodeReview实践中表现卓越的团队和个人,推动代码质量的持续提升。 妙笔生花奖:奖励在API设计和API联调实践中取得卓越成果的团队和个人,促进系统接口的高效协作。 效率之星奖:鼓励在效率提升和研发效能提升实践中取得显著成效的团队和个人,提升整体开发效率。 最佳项目奖:表彰开发出卓越研发效能工具或成功实践MVP项目的团队和个人,推动技术创新和实践落地。 通过这些激励措施,我们不仅认可了优秀实践的价值,还激发了团队和个人不断追求卓越、持续改进的动力。 八、总结和展望 提升研发效能绝非一朝一夕之事,而是一项涉及全企业、要求全员参与的系统性工程。它既需自上而下的决策引导,也依赖自下而上的执行力支持。过程中不仅要求明确的策略规划和强有力的领导推动,还需要每一位团队成员的积极参与和持续贡献。我们需要构建一个开放的沟通环境,鼓励创新思维,并采纳精益敏捷的实践方法,企业才能逐步构建起一个高效、协同的研发生态系统。未来,随着AI技术不断融入研发效能的各个环节,包括智能问答系统、AI智能编码、流水线问题智能定位以及研发效能Agent应用等,我们有充分的理由相信,研发效能的提升将为企业带来显著的市场竞争力、更快速的响应速度以及更强的创新能力。 *文/ Nik 本文属得物技术原创,更多精彩文章请看:得物技术 未经得物技术许可严禁转载,否则依法追究法律责任!

优秀的个人博客,低调大师

数字新纪元:2023年元宇宙白皮书全景解读

中国信息通信研究院和虚拟现实与元宇宙产业联盟(XRMA)于 2023 年 11月 发布了《元宇宙白皮书(2023年)》。以下是该白皮书的核心内容概要: 发展背景与概念内涵: 元宇宙概念的流行反映了信息技术发展的趋势,是数字经济与实体经济融合的高级形态。 元宇宙的核心功能是数字网络空间与物理世界的开放互联与深度融合。 元宇宙的发展路径分为虚拟型和增强型两大类,涉及技术、体验、经济与社会多维视图。 体系架构与发展趋势: 元宇宙技术产业体系包括基础设施层、平台赋能层、前端体验层和创新应用层。 元宇宙将形成新信息形态、新数字器官、新经济模式、新社会景观等发展趋势。 元宇宙技术产业要素: 元宇宙产业体系的核心是前端体验层和平台赋能层。 智能终端、3D沉浸影音、沉浸式计算云服务平台和Web3数据资产与交易服务平台是关键技术要素。 发展阶段与存在问题: 元宇宙发展分为三时期五阶段,包括要素准备时期、生态塑型时期和生态成熟时期。 面临的问题包括技术生态不成熟、战略资源投入缩减、潜在风险等。 发展建议: 技术创新:加大沉浸式技术和分布式信任技术的研发投入。 产业推进:激活元宇宙生态系统,加快关键领域的落地推广。 应用示范:探索多元应用场景,提高概念落地的认知程度。 标准体系:推进元宇宙相关标准的研究与制定。 监管治理:适时开展元宇宙监管治理研究,引导形成价值共识。 国际合作:加大国际合作,提升国际影响力。 白皮书还提供了详细的图表和案例分析,以及对未来元宇宙发展的展望和建议。 报告详情可至「开源中国 APP - 报告模块」下载查看。 APP 下载地址: (目前仅提供 Android 版本)

优秀的个人博客,低调大师

美最高院甲骨文诉谷歌案全景解析

作者:邓超律师(18611123013) 安卓公司成立于2003年10月,起初的目标是为数码相机开发操作系统,但其创始人后来意识到该市场不够大,于是致力于将安卓项目打造为与移动版Windows、塞班等并肩的移动设备操作系统。谷歌公司于2005年7月收购安卓公司时,该项目还鲜为人知。但目前安卓已经成为移动设备(智能手机、平板电脑)上最流行的操作系统。安卓其实是一个内核基于Linux的开源的操作系统,但大部分(国外的)安卓设备都预装有谷歌公司的专有软件——包含Chrome浏览器、谷歌商店(GooglePlay)、谷歌地图等的谷歌移动服务(GoogleMobileServices)。而国内智能手机的操作系统则几乎都是安卓的各种分叉(fork)。 Java语言是太阳公司(Sun Microsystems)于1995年5月开发的编程语言,名字取自印度尼西亚的爪哇(Java)咖啡。太阳公司宣传Java可以“一次编写,随处运行”(write once, run anywhere,WORA),意味着Java代码可以在所有支持的平台上运行,而无需重新编译。2010年1月,甲骨文公司完成了对太阳公司的收购,对价为74亿美元。目前,Java仍然是最受欢迎的编程语言之一,被世界各地的程序员广泛使用。 Java语言是安卓系统成功的关键因素,很多安卓app都是由Java语言编写的。除了因为Java语言受众广、简单易懂之外,Java的WORA特性也许是谷歌选择Java的最主要考量。一个众所周知的事实是,为一个硬件架构编译的程序无法直接在其他硬件架构下运行。例如,微软的SurfacePro系列笔记本/平板电脑具有不止一种CPU,ARM架构的Surface Pro X无法运行为x86架构(绝大多数个人电脑的架构)编写的可执行文件(扩展名为exe)。而安卓生态系统的硬件一直是碎片化的,不同厂商采用的CPU各不相同。为照顾到这一现状,安卓选择了具有跨平台特性的Java。 为了理解为何Java代码可以不受限制地在任意系统上运行,以下对Java技术(或Java平台)进行简单说明。 Java主要包括3个部分:Java语言、Java虚拟机以及Java类库。在我们谈起Java的时候,有时仅仅是指Java语言本身,有时则是指包括这3个部分的Java平台(Java平台标准版即Java SE)。Java作为一种开源的编程语言并无太多特别之处,任何人都可以自由地使用该语言来编写软件代码。如下的HelloWorld的例子就是用Java语言编写的。 但Java的特殊之处在于其除了一套编程语言之外,还包括Java虚拟机(JavaVirtual Machine, JVM)和相应的库。虚拟机,顾名思义是一个虚拟的机器,其介于实际的硬件与应用程序之间,应用程序并非直接在实际的硬件上运行,而是在虚拟机上运行的。这样一来,Java程序就可以与实际的硬件架构无关地实现独立的跨平台运行。 库(library)则可以简单理解为能实现一些常用功能的代码集合。通过将可重复利用功能的代码作为库,程序员不必重复编写相同的代码,在使用到相应的功能时调用相应的库即可,从而可以节省资源并减少出错。但由于Java程序是在虚拟机上运行的,并不直接调用特定操作系统中内置的库,因此,Java平台提供了大量的标准库供开发者使用。 API则是应用程序编程接口(Application Programming Interface)的缩写,它是一种定义程序或库如何进行交互的函数。例如,用户可以通过API向程序发送请求,并接收程序返回的响应。如果认为纯文字描述过于抽象,那么通过以下微信小程序的API列表可以对API有更加感性的认识(https://developers.weixin.qq.com/miniprogram/dev/api/): 以“获取系统信息”的wx.getSystemInfo这一API为例,其他程序(或者用户)可以通过这个API从微信小程序获取运行微信的设备品牌、微信版本号等信息。由此可见,API不同于一般意义的软件代码,而只是一个接口(interface)。程序员可以通过API来访问库并实现某些功能,而无需知道库的内容以及库是如何运行的。(在一些解读谷歌上诉甲骨文案件的文章中,将部分的interface翻译为界面,进而分析起图形用户界面GUI的法律保护,似乎偏离了主题。不过提起GUI的法律保护,这篇由大牛撰写的文章《图形用户界面(GUI)如何有效保护?​》分析得倒是比较透彻,笔者时常找出来回味,读者也可以参考阅读。) 以上是对Java技术的简介。虽然太阳公司无法独占开源的Java语言,但Java平台的相关技术(例如JavaSE类库)却曾经是太阳公司专有的。这意味着他人在使用Java平台时,需要从太阳公司获得许可。彼时也有团体试图编写一套开源的Java平台,比如阿帕奇基金会的Harmony项目(2005年5月-2010年9月),但由于Java的标准库非常成熟且丰富,因此净室(clean room)开发出的库并不完整且兼容性不好,有的与标准库相比性能欠佳。 谷歌公司曾就JavaSE的许可问题与太阳公司进行过磋商,后者提出了约5,000万美元的报价,但协议最终未能达成,双方各执一词。谷歌公司担心太阳公司会由于将Java技术引入到安卓系统中而染指这个开源的移动操作系统;而太阳则声称谷歌的目的是从Java分叉出一个谷歌版本,并损害Java的跨平台特性。在磋商失败后,谷歌公司选择从零开始开发Java SE类库的净室版本,但是在其中使用了37个来自JAVA的API,共涉及约11,500行代码。谷歌公司还独立开发了针对移动设备(内存小、带GPS功能)优化的Dalvik虚拟机,且Dalvik虚拟机与Java虚拟机并不兼容。 2013年,谷歌公司发布了安卓4.4版Kitkat,删除了Dalvik虚拟机,并使用安卓Runtime作为替代,而后者不再包含任何Java源代码。 由于安卓大获成功并且使用了Java技术,在对太阳公司收购完成后半年的2010年8月,甲骨文公司在加州北区地方法院对谷歌公司提起了专利侵权和版权侵权的诉讼,并在之后向谷歌公司索赔90亿美元(略高于收购价格)。折算下来,1行代码的索赔额高达80万美元,有人曾经质疑甲骨文公司起诉谷歌的目的就是为了覆盖掉收购太阳公司的成本,遭到甲骨文公司的否认。 作为对比,苹果公司从一开始就不需要Java,也不需要考虑跨平台的兼容性问题,因为苹果的移动端设备一直使用的是封闭、统一的硬件架构,app可以直接在操作系统上运行。而早期的Java虚拟机在一定程度上降低了Java程序的运行效率。这就是为何在智能手机发展的初期,苹果手机可以在硬件参数与安卓手机持平甚至更差的情况下,却可以提供更流畅的操作体验的原因。 在讨论本案的法律问题之前,有必要再次简要回顾本案的事实。如下图所示, 谷歌公司在安卓系统中使用Java技术的主要目的是为了让更多熟悉使用Java语言编程的开发者加入到安卓这个新兴的生态中。因此,谷歌公司不需要改动Java语言本身(虽然自2019年起谷歌公司开始主推Kotlin语言作为开发安卓app的首选语言以代替Java)。同样,由于Java程序是由众多开发者开发以在安卓系统上运行的,因此Java程序也与本案无关。而且,安卓上的库和虚拟机(从Dalvik到Android Runtime)是谷歌公司独立开发的,谷歌公司主要的问题在于其复制了Java的37个API(源自阿帕奇的Harmony项目)。 甲骨文公司对谷歌公司发起的诉讼包括两个案由:专利侵权和版权侵权。甲骨文公司方的故事是,谷歌公司明知道Java,但是却没有像其他公司那样为Java付费。免费的安卓系统在移动端市场大获成功之后,甲骨文公司在该市场的Java技术许可收益大受影响。而谷歌公司方的故事则是,重复利用应用程序的API在软件行业已是多年的惯例。甲骨文公司没能用Java统一手机市场而眼红谷歌,因此发起了诉讼。 关于专利侵权,甲骨文公司认为谷歌公司侵犯了其6,061,520(用于进行静态初始化的方法和系统,中国同族:CN1119756C)和RE38104(用于解决生成代码中数据引用的方法和设备,无中国同族)这两项专利。谷歌则主张其技术方案未落入专利保护范围。对于前一专利,谷歌辩称其使用的是解析,而非权利要求所述的"模拟执行"来对静态初始化进行优化。对于后一专利,谷歌辩称其指令不包括符号引用。地区法院的陪审团裁定专利侵权不成立。甲骨文公司未提出上诉,因此,本次的专利纠纷暂且不表。 本案的焦点问题在于版权侵权,而软件的版权保护与其他作品又有所不同。 版权是直接受工业革命的影响而诞生和发展的,其传统的保护客体是文学艺术领域的作品。版权法的一个基本原则是版权不保护抽象的思想(此处的思想也可以是功能、事实等)而只保护具体的表达,我国的著作权法虽然没有关于思想表达二分法的明确条文(软件保护条例中有对此的专门条文),但这一原则在我国的司法实践中是普遍得到法院认可的。 软件的出现给传统的版权体系带来了挑战,软件虽然是一种文本,但是几乎没有人会像阅读小说那样去阅读软件代码;其主要作用在于被执行时使得计算机完成一定的功能,而功能又是版权法所排斥的。对于软件如何进行法律保护在历史上曾经有过多年的激烈争论,后来美国决定将软件代码视为文字作品纳入现有的版权法体系,而非独立针对软件保护进行立法。这一立法体例也被包括我国在内的绝大多数国家所接受。但由于软件的功能性文本的性质,决定了其版权保护也较为特殊。 本次纠纷的版权侵权部分的焦点问题之一在于:API是否具有可版权性。美国最高法院没有正面回答该问题,最高院的多数意见认为谷歌借鉴JavaAPI构成合理使用,因此,无论API是否具有可版权性,都不会影响案件结论。地区法院的结论是API没有版权,法院认为因为API并非是实现功能的具体代码,而只是对具体代码进行调用的函数。因此,只要具体代码不同就不构成版权侵权,API(调用函数)是否相同是无关紧要的。但上诉法院(由于本案涉及专利,因此上诉法院是联邦巡回上诉法院)推翻了地区法院的结论。上诉法院认为,API的设计具有版权法所要求的独创性,因此应该受到版权法的保护。 由于API并非是具体的实现代码(无论是人类可读的源代码还是机器可读的2进制目标代码都同样受到版权法保护),因此在甲骨文用API起诉谷歌之前,业界普遍认为使用他人的API是没问题的。包括微软、IBM、计算机协会、互联网协会等均普遍支持谷歌公司。例如,GNU/Linux就借用了一些Unix的API。一些开源软件在与私有服务进行交互时,也不可避免地要使用或复制该私有服务的API。如果甲骨文主张的侵权逻辑成立,那么这些开源代码,从底层的操作系统到应用层面的程序都面临未经许可使用或复制API的诉讼风险,并且很多小型开发商并没有资源编写独立的API。因此,最高院应该是考虑到本案可能带来的寒蝉效应,因而未对API是否可版权发表意见。 本次纠纷的版权侵权部分的另一个焦点问题在于:谷歌公司对JavaAPI的使用是否属于合理使用。地区法院的陪审团裁定,谷歌公司重新实现了37个JavaAPI属于合理使用。但是否属于合理使用是一个法律问题,因此本文重点分析法院的观点。美国版权法第107条列举了合理使用的4个要素:1.是否具有转换性;2.作品的性质;3.使用部分的量;4.对市场的影响。我国著作权法并没有合理使用条款,一般认为著作权法第22条可以类比“合理使用”。但不同于英美法系的概括性规定,作为大陆法国家的我国对于合理使用是穷尽式例举(2021年版的著作权法增加了兜底条款,但限于法律和法规规定),如果严格地机械适用该条款,那么会极大限制合理使用的情形。因此,在司法实践中,我国法院有时也参考美国版权法提到的上述4个因素,以灵活开放的标准对合理使用进行判断。在软件和网络领域,我国法院曾经认定过提供网页快照和缩略图快照属于合理使用,不构成版权侵权。 回到本案,关于合理使用,美国上诉法院和最高法院的多数意见给出了截然相反的观点。上诉法院认为谷歌的行为不满足4个要素的任何一个,因此不是合理使用;而最高院的多数意见则认为谷歌的行为构成合理使用。 要素 联邦巡回上诉法院 最高院 1.使用目的和性质 谷歌将JavaAPI用于与甲骨文相同的目的,没有一点改变且没有任何转换性。 谷歌有限使用的JavaAPI是为不同的计算环境(智能手机)创建新的平台(安卓)。 2.版权作品的性质 计算机代码具有功能性。 由于API是声明代码而非具体实现,因此更适合合理使用。 3.使用部分的量 谷歌复制的11,500行代码中只有170行是其必须使用的。 谷歌复制的11,500行代码占0.4%,目的是让程序员适应新开发环境。 4.对潜在市场的影响 Java智能手机早于安卓,安卓出现后Java的客户向甲骨文要求非常高的折扣。 安卓并非JavaSE的替代,谷歌的行为不会影响甲骨文的潜在市场,反而甲骨文由于安卓的出现可能受益。 从两级法院的结论可见,合理使用是一种极为个案化的分析方式,结果的可预测性较差。但无论各方对于此案还有何种争论,也无论最高院的反对意见多么有道理,美国最高法院以6-2的多数意见已经对此事盖棺定论了。美国最高院的判决并非像上诉法院那样提出了颠覆性意见(复制API构成版权侵权),而是肯定了软件行业一直以来使用他人API的惯例,维系了现有秩序。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册