背压(Backpressure)

当任务到达速度超过处理速度时的流控机制,防止队列无限积压。

生产方式:人写签发:晓黎学习复核:2026年9月21日被 0 个词条引用

一句话定义

背压 = 当下游处理不过来时,向上游施加压力,让它减速或停下,而不是无限接收。

为什么必须处理

没有背压的系统会经历同一个失败过程:

任务到达速度 > 处理速度
    ↓
队列持续增长
    ↓
内存占用上升
    ↓
延迟上升(排队变长)
    ↓
最终 OOM 或整体超时

关键点是:这个问题不会自愈。积压只会越来越严重,直到系统崩溃。

三种策略

策略行为适用场景
拒绝(reject)明确返回「队列满」,让调用方决定调用方能处理失败
阻塞(block)等待队列有空位(需超时保护)任务不可丢
丢弃(shed)按优先级丢弃最低者有明确优先级差异

排队为什么可能是错的

直觉上「排队」比「拒绝」更友好,但在 Agent 系统里排队会造成死锁:

父 Agent 等待子 Agent 完成
    ↓
子 Agent 需要槽位才能启动
    ↓
槽位被父 Agent 自己占用
    ↓
双方互相等待 → 死锁

DeepSeek Harness 的处理方式很明确:

At capacity, creation or cold resume rejects with ACTIVATION_LIMIT_REACHED... Admission does not queue, because a parent waiting for descendants must not wait for its own occupied slot.

规则:当等待资源的实体本身就是占用资源的一方时,必须拒绝而非排队。

在 Agent Harness 中的位置

场景背压表现
工具并发调用maxParallelToolCalls 上限
子 Agent 委派maxActiveSubagents 上限,超限拒绝
任务队列maxQueueSize + 溢出策略
模型请求并发请求数上限

相关

互链

链接来自概念卡正文里的双链,编译时能解到本期词条集的才成为站内链接。

反链(0)

还没有其它词条引用这一页。

出现在哪些课时里(0)

判据与「课时正文里能不能点出来」是同一个:那一节确实提到了它。点课时走当前页跳转, 它是导航,不是词条链接。

还没有课时讲到这一条。它是词条跑在课程前面的那一部分,不是错链。

关联图

只画这一条与它直接相连的词条,边与上面两区同源。可拖拽、可缩放,点节点是新标签。

出处

路径是本地知识库(Obsidian 库)里的位置,正文与概念卡逐字对应。

  • 概念卡原文背压(Backpressure)03_RESOURCES/概念/背压.md
  • 所属知识地图栏目概念页索引 · 可观测性与可靠性03_RESOURCES/概念/Index.md
  • 正文引用的知识库笔记第 12 讲 任务分发02_AREAS/AI开发/Harness Engineering/Agent Harness 课程/12-任务分发:从意图到执行单元.md
  • 正文引用的知识库笔记第 11 讲 Agent 通信02_AREAS/AI开发/Harness Engineering/Agent Harness 课程/11-Agent通信:消息、交接与协作协议.md

编译入库:2026年11月2日。词条由知识库编译而来, 修正要回到概念卡改,再重新编译。