文章摘要
文章围绕 openJiuwen 算力亲和的缓存优化展开。智能体任务规模大时,推理产生的 KV 缓存体量大,增加推理时延。传统推理引擎管理缓存存在痛点,而 openJiuwen 推出“算力亲和”能力,通过 Agent Hint 实现 KV 缓存主动协同。以蜂群任务为例展示缓存动态调整,经测试,该能力提升系统运行效率,即将开源。

Agent 读懂任务,算力读懂 Agent

当智能体承接复杂任务时,从自主规划、调用工具到多Agent协作,整个执行过程可能持续数十分钟甚至数小时。任务规模越大、协作Agent越多,推理过程中产生的KV缓存体量就越庞大,随之而来的推理时延也会显著增加。这一现象背后,藏着当前智能体推理系统的核心矛盾。

传统推理引擎的痛点:看得见缓存,看不懂任务

模型推理时会将已计算的Key/Value结果缓存(即KV Cache),避免每次生成新Token都重算全部历史上下文,但这也带来了显存占用的压力——作为AI加速芯片上成本最高的资源,显存的高效利用直接决定了系统性能。

当前主流推理引擎多依赖LRU等通用策略管理KV缓存,但智能体的执行状态远比简单的问答交互复杂:

  • 任务流程中会反复切换推理、工具调用、等待、恢复等状态
  • 上下文会动态增长、压缩,甚至回退到历史检查点
  • 多子Agent既有独立上下文,又共享系统提示词、工具定义等公共前缀
  • 会话暂时闲置和彻底结束需要不同的资源处理策略

如果推理引擎无法识别这些状态变化,只能依靠超时或通用淘汰规则被动处理缓存,就会出现该释放的缓存滞留、该保留的缓存被误删的问题,最终导致无效资源占用、重复计算,同时承压显存容量、首Token时延和系统整体吞吐能力。

因此,智能体推理的优化不能仅局限于引擎内部或应用侧的上下文压缩,真正的突破口在于打通Agent任务状态与底层算力资源的调度链路。

算力亲和:建立Agent与推理引擎的语义协同

由多团队联合打造的openJiuwen开源智能体平台,推出了智能体"算力亲和"能力——一套打通Agent框架、推理引擎与底层算力的全链路协同机制,让Agent的任务状态能够转化为算力可理解、可执行的调度信号,实现KV缓存从被动管理到主动协同的转变。

这套方案的核心思路并不复杂:既然Agent本身已经掌握完整的任务状态,那么只需要在关键状态变化时,将状态信息实时同步给推理引擎即可。这就是Agent Hint——Agent与推理引擎之间的"状态契约"。

Agent Hint并非额外的API调用或独立的中间系统,而是向推理引擎下发的一段语义信息,用于告知引擎当前会话归属、父任务关系以及这段缓存的后续处理策略。当Agent在关键状态节点发出Hint时,推理引擎就可以据此执行对应的缓存操作,整个协同围绕驱逐、卸载、预取三个核心动作展开,形成KV缓存的完整生命周期闭环。

不再让缓存只有"留在显存"或"等待淘汰"两种命运,而是可以随着任务节奏在不同存储层级间主动流动。以下是一条带Hint的请求示例:

{
  "agent_hint": {
    "session_id": "sub-1",
    "parent_session_id": "main-0",
    "context_management": {
      "edits": [{"type": "offload", "target": "tools"}]
    }
  }
}

场景演示:多Agent任务中的缓存全生命周期

我们以典型的蜂群智能体任务为例,看看算力亲和机制如何让缓存跟随任务节奏动态调整:

任务规划阶段:Leader Agent接收并拆解总任务,系统提示词、工具定义等所有成员共用的公共前缀会被预先计算并缓存,供后续子Agent直接复用,避免重复计算。

子Agent调用阶段:多智能体协同过程中,各子Agent会分步执行任务。每次被唤醒前,JiuwenSwarm框架会提前发出Prefetch信号,将上一轮的缓存取回高速显存,确保推理能够快速启动。

工具执行阶段:当某个子Agent调用外部工具进入等待状态时,其KV Cache会从HBM高速显存卸载,为活跃任务腾出宝贵的高速存储资源;一旦工具结果返回,框架会在下次推理请求发起前完成预取,确保缓存已经回到显存中,任务可以无缝恢复。

上下文压缩阶段:长任务执行过程中,每个Agent都可能根据需要压缩、裁剪自身上下文,被移出上下文的部分会同步发出卸载信号,对应缓存会自动迁移到低成本存储介质中。

会话结束阶段:单个子任务完成后,仍需复用的缓存会转入低成本存储,确认不再需要的缓存则会被直接驱逐;当整个蜂群任务全部结束时,所有关联资源会沿会话边界统一回收。

会话恢复阶段:已结束的会话可能被重新唤起,框架会在恢复前发出预取信号,将转存的缓存提前取回高速显存,让任务可以接续上次的进度继续执行。

此时,缓存调度的依据已经从传统的"最后访问时间",转变为"任务当前状态":哪些任务正在运行、哪些暂时暂停、哪些上下文即将被使用。这让KV缓存管理从通用的访问热度判断,升级为面向智能体执行工作流的语义级调度。

全链路协同:从智能体到算力的三级调度

算力亲和并非孤立的功能模块,而是openJiuwen联合专业团队打造的一套从Agent延伸到本地显存和池化存储的完整协同架构。以openJiuwen社区的典型JiuwenSwarm蜂群智能体为例,这套架构包含四个核心层级:

JiuwenSwarm感知上下文与生命周期:智能体框架本身已经掌握消息流转、工具调用、上下文压缩、子Agent创建与销毁的全部状态,这些任务流程信息本身就是现成的调度信号。框架会将资源状态清晰划分为三类:正在使用的资源加以保护,暂时闲置的资源有序让位,不再需要的资源直接释放。

SAM精细管理本地KV Cache:推理引擎内新增的会话感知管理器(SAM),将无状态的前缀缓存升级为会话感知的管理与调度系统。它会维护会话与缓存的归属关系,为活跃的长会话保留思考过程、工具中间结果等独有前缀,为已结束的会话沿清晰边界快速回收资源,让本地显存的每一次分配与淘汰都带上会话语义。

SPM协同管理池化缓存:在多实例部署场景下,业界通常会将KV Cache汇入分布式缓存池,但远端存储本身无法识别会话概念。会话感知池化管理器(SPM)会将会话语义传递到池化层,确保活跃会话持续保活,会话结束时及时交还资源,并在会话恢复前提前完成缓存预取。

昇腾算力承载多级流动:在昇腾平台上,这套机制复用了推理引擎既有的缓存加载与池化接口,降低了系统改造成本。缓存的跨层级迁移借助昇腾灵渠总线的高速互联能力,在NPU HBM、鲲鹏CPU DDR内存、SSD与远端缓存池之间快速流动,实现"调得准"与"流得快"的统一。

总结来说,JiuwenSwarm识别任务状态,Agent Hint负责传递语义,SAM与SPM负责精准调度,灵渠总线为跨层级、跨设备的数据流动提供高速通道,最终实现任务启动时缓存提前准备、任务暂停时缓存有序让位、任务恢复时缓存及时回归、任务结束时资源随即释放的理想状态。

性能提升:实测数据与效率改善

算力亲和带来的价值最终体现在整个智能体系统的运行效率上,具体可以概括为以下几个方面:

  • 更高的缓存利用率:已结束或闲置的会话不再长期占用高速显存,释放出的资源可以服务更多活跃上下文
  • 更稳定的多轮推理:活跃会话的独有前缀得到针对性保护,减少因误淘汰导致的缓存失效和重复计算
  • 更快的会话恢复:缓存预取操作前移到任务状态切换阶段,有效降低恢复后的首轮等待时延
  • 更强的多Agent承载能力:Leader与多个子Agent并行工作时,缓存随任务活跃度动态进出高速存储,可在同等硬件条件下承载更复杂的协作流程
  • 更可控的工程成本:方案通过标准接口和事件机制衔接Agent与推理系统,兼容既有缓存管理链路,无需大规模重构现有架构

openJiuwen基于SWE-bench Verified数据集开展了对比测试,覆盖Bug修复、功能开发、代码重构等典型场景,模拟10个用户并发使用JiuwenSwarm执行任务,对比开启与关闭算力亲和的效果。测试结果显示:

  • 首Token时延(TTFT)降低57.46%
  • 模型请求端到端(E2E)时延降低27.61%
  • Prefix Cache命中率提升33%
  • 池化缓存使用量峰值降低25.24%

结语:让算力从"响应请求"走向"理解任务"

面向智能体的缓存调度策略,必须能够准确判断任务当前处于执行、等待还是结束状态。只有让应用层的语义真正进入资源调度环节,长上下文、多会话、多Agent并发带来的存储压力,才能从被动应对转变为主动管理。

openJiuwen算力亲和给出的协同范式,在工程层面包含两个核心方向:向上通过开放的Agent Hint接口规范承接任务语义,向下将从本地显存到分布式缓存池的整条缓存调度链路升级为会话感知模式。

正如开篇所言:"Agent 读懂任务,算力读懂 Agent"。在相同硬件条件和任务场景下,开启算力亲和后,首Token时延降低超过57%,推理存储峰值直接节省约25%。

目前这套能力即将开源,感兴趣的开发者可以关注openJiuwen开源社区体验最新功能:

以上内容不代表本平台立场,仅供读者参考