3. 长任务状态管理概述

在金融智能体的实际运行中,一次完整的业务处理往往不是单轮问答,而是跨越数十甚至上百个步骤的长任务:从客户意图识别、产品匹配、风险测评、合规校验,到材料生成、人工复核、最终归档。这类任务的核心难点不在于单步推理能力,而在于状态能否被稳定地记录、传递、恢复与收敛。本节将围绕状态的定义、生命周期、状态与上下文的关系,以及常见管理挑战展开,为后续的持久化与记忆机制打下概念基础。

一、什么是长任务中的“状态”

状态(State)是智能体在任务执行过程中,对“当前进展、已知事实、待办事项、约束条件”的结构化快照。它回答三个问题:已经完成了什么、现在处于哪一步、接下来允许做什么。与普通对话上下文不同,状态是可被程序读取、校验和持久化的数据对象,而不仅仅是自然语言历史。

在金融场景中,状态通常包含以下要素:

  • 任务标识:task_id、会话ID、客户编号,用于跨进程、跨天恢复。
  • 阶段指针:当前处于“资料收集”“风险测评”还是“合规审批”。
  • 业务事实:客户风险等级、产品代码、金额、期限等已确认字段。
  • 待办与依赖:尚未完成的步骤及其前置条件。
  • 约束与合规标记:是否触发双录、是否需人工复核、是否超限。
状态不是“聊天记录”,而是“可执行的任务契约”。它必须能被机器解析,才能支撑断点续跑、审计追溯和多智能体协作。

二、状态的生命周期

长任务状态并非静态存在,它经历从创建到销毁的完整生命周期。理解这一周期,是设计状态存储与恢复策略的前提。

  1. 初始化:任务创建时生成初始状态,写入任务标识、客户输入和初始阶段。
  2. 演进:每完成一个步骤,状态被更新,阶段指针前移,事实字段被填充或修正。
  3. 检查点:在关键节点(如提交审批前)持久化快照,用于故障恢复与审计。
  4. 挂起与恢复:等待人工复核或外部系统回调时,状态被冻结;条件满足后从检查点恢复。
  5. 收敛与归档:任务完成或终止,状态被标记为终态并归档,供合规审计使用。

下面是一个简化的状态检查点示例,展示状态在持久化时的典型结构:

{
  "task_id": "FIN-20240612-0087",
  "stage": "compliance_review",
  "facts": {
    "customer_risk": "C3",
    "product_code": "FUND-2041",
    "amount": 150000,
    "dual_recording": true
  },
  "pending": ["manual_approval", "archive"],
  "checkpoint_at": "2024-06-12T14:32:10+08:00",
  "status": "suspended"
}

三、状态与上下文的关系

状态与上下文常被混为一谈,但二者在长任务中承担不同职责。上下文是模型推理时可见的信息窗口,强调“语义相关性”;状态是任务执行的控制数据,强调“结构确定性与可恢复性”。

维度 状态(State) 上下文(Context)
本质 结构化任务数据 模型可见的信息序列
主要用途 控制流程、恢复、审计 支撑推理与生成
生命周期 跨会话、跨天持久 通常限于单次推理窗口
容量约束 可扩展存储,按需读取 受模型窗口限制
金融场景关注点 合规、可追溯、幂等 准确性、相关性、时效

实践中,二者需要协同:状态决定“该把哪些上下文喂给模型”,上下文帮助模型“理解当前状态并生成下一步动作”。如果只维护上下文而忽略状态,长任务会在窗口截断后丢失关键事实;如果只维护状态而忽略上下文,模型则缺乏语义线索,难以做出合理判断。

长任务状态生命周期与上下文协同 初始化 演进更新 检查点 挂起/恢复 收敛归档 上下文窗口(模型可见) 当前阶段摘要 关键事实 最近动作 状态按需投影为上下文,避免窗口溢出 检查点驱动上下文重建

四、常见状态管理挑战

金融长任务对状态管理提出了远高于普通对话系统的要求,以下挑战在实践中最为突出:

  • 状态膨胀与窗口溢出:任务步骤多、事实字段多,若全部塞入上下文,模型窗口迅速耗尽。需要状态与上下文分离,按阶段投影。
  • 断点恢复不一致:进程崩溃或人工挂起后,若状态未持久化或版本错乱,恢复时可能重复扣款、重复提交。必须依赖检查点与幂等设计。
  • 并发与冲突:多智能体或多人工同时操作同一任务,状态被覆盖。需要乐观锁、版本号或事件溯源。
  • 合规与审计:监管要求可追溯“谁在何时基于什么状态做了什么决策”。状态变更需留痕,不能只保留最终结果。
  • 状态漂移:模型在长任务中可能“遗忘”早期约束,导致后续动作偏离初始合规要求。需要将硬约束写入状态并在每步校验。
常见误区:把状态等同于“把历史对话全部保留”。这会导致窗口爆炸、关键事实被淹没,且无法支撑程序化恢复。正确做法是:状态结构化存储,上下文按需检索与摘要。
复盘建议:在设计长任务时,先画出状态字段清单与阶段迁移图,再决定哪些字段进入上下文、哪些只留在状态存储中。检查点应覆盖所有“不可逆操作”之前。

综上,长任务状态管理是金融智能体从“能对话”走向“能办事”的关键基础设施。状态定义了任务的骨架,生命周期决定了它如何被保存与恢复,状态与上下文的协同决定了模型能否在正确信息下做出正确决策,而对常见挑战的预判则决定了系统在真实金融环境中的稳定性与合规性。