会话删除

从会话历史中移除会话

session/delete 方法允许客户端从 Agent 的 session/list 结果中移除会话。这为用户提供了一种在 ACP 客户端和 Agent 之间管理会话历史的标准方式。

在删除会话之前,客户端必须先完成初始化阶段并验证 Agent 支持此能力。

会话删除流程

检查支持

在尝试删除会话之前,客户端必须通过检查 initialize 响应中的 sessionCapabilities.delete 字段来验证 Agent 是否支持此能力:

{
  "jsonrpc": "2.0",
  "id": 0,
  "result": {
    "protocolVersion": 1,
    "agentCapabilities": {
      "sessionCapabilities": {
        "delete": {}
      }
    }
  }
}

如果 sessionCapabilities.delete 被省略或为 null,则 Agent 不支持删除会话,客户端不得尝试调用 session/delete。提供 {} 表示 Agent 支持该方法。

删除会话

客户端通过调用 session/delete 并传入要从会话历史中移除的会话 ID 来删除会话:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "session/delete",
  "params": {
    "sessionId": "sess_abc123def456"
  }
}
参数类型必需描述
sessionIdSessionId要删除的会话的唯一标识符。

成功时,Agent 返回空结果:

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {}
}

语义

已删除的会话不再出现在未来的 session/list 结果中。

删除已删除的会话或从未存在的会话应当静默成功。

Agent 可以实现软删除或硬删除。ACP 仅指定面向用户的会话列表行为。

对已删除会话执行 session/load 的行为由实现定义。

删除活跃会话的行为由实现定义。