﻿---
title: "消息队列"
description: "控制 Session 正在运行时新消息的处理顺序。"
image: "https://kxen.ai/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://kxen.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 消息队列

消息队列解决同一个 Session 在 Agent 尚未完成时再次发送消息的问题。

<pre class="mermaid">{`
stateDiagram-v2
  state "当前 run" as Running
  state "等待队列" as Queued
  state "取消当前 run" as Cancelling
  state "已取消" as Cancelled
  [*] --> Running
  Running --> Queued: queue
  Queued --> Running: 当前 run 完成
  Running --> Cancelling: interrupt
  Cancelling --> Running: 启动新 run
  Running --> Cancelled: Abort
  Cancelled --> [*]
`}</pre>

## Queue 模式

`queue` 是默认行为。新消息进入当前 Session 的等待队列，当前 run 完成后按顺序继续处理。它适合补充后续任务，不会打断正在执行的工具调用。

队列状态持久化为 `queued` 和 `in_flight`。每条 delivery 拥有稳定 ID，后端先 claim 并落盘，再用同一 ID 幂等追加 Session 用户消息，持久化成功后才 acknowledge。应用在 claim 后异常退出时会重放 `in_flight`；如果崩溃发生在 JSONL append 和 acknowledge 之间，重放会识别同一 message ID，不重复追加也不静默丢失。后续模型执行是否完成不改变用户消息已经持久化的事实。

## Interrupt 模式

`interrupt` 会先取消当前 run，再处理新消息。它适合立即纠正方向，但当前回合尚未完成的结果不会继续执行。

设置入口位于 Settings 的通用区域。修改后对后续发送生效。

## Abort

Abort 直接取消当前 run，优先于 Approval 等待和长命令等待。取消后必须产生明确终态。等待队列不会把已经取消的工具调用恢复到后台继续执行。

## 使用边界

队列只保证同一 Session 内的消息顺序。不同 Session、Subagent、Workflow Agent 和 Team member 由各自的运行状态和 MRM 资源限制协调。

Source: https://kxen.ai/workspace/message-queue/index.mdx
