跳到主要内容

第 1.7.3 节:用状态字段和迁移表描述多轮任务进度

状态字段与迁移表不能只停留在口头约定,还需要落实为字段、校验和失败处理。完成本节后,你应该能够把状态字段与迁移表落成字段表、校验规则、错误处理和验收样例。

实现步骤或决策流程​

推荐技术流​

步骤做什么为什么
1先定义任务生命周期明确任务从创建、等待信息、调用工具、等待审批到完成的阶段。
2设计状态字段让系统知道当前步骤、缺失信息、工具结果和停止原因。
3区分会话状态和长期记忆防止把临时信息错误保存成长期记忆。
4设计上下文构造规则控制进入模型的历史、状态摘要和工具结果。
5设计状态迁移表明确什么事件会让状态从一步进入下一步。
6设计恢复策略工具失败、用户中断、输出无效后能继续处理。
7设计停止条件防止循环、重复追问和重复调用工具。
8设计记忆写入策略只保存有价值、被允许、可删除的信息。
9记录状态变更日志让问题能被追踪、复盘和审计。
10用多轮验收样例测试证明系统不是只会单轮回答。

这条技术流的核心理由是:状态管理要先于复杂编排。没有稳定状态,LangGraph(智能体状态图框架)和多智能体都会变成混乱流程。

字段契约​

会话字段​

字段含义示例验收要求
session_id(会话编号)一段多轮交互的编号用户一次售后咨询窗口同一会话内补充信息能接上前文。
user_id(用户编号)当前用户身份登录用户编号或访客编号不让用户口头输入冒充身份。
channel(渠道)用户来自哪里网站、App(应用程序)、企业微信影响转人工和通知方式。
session_status(会话状态)会话是否活跃active、waiting_user、closed关闭后不能继续误用旧上下文。
started_at(开始时间)会话开始时间本次咨询创建时间用于过期和统计。
last_active_at(最后活跃时间)最后一次交互时间用户补充订单号的时间用于会话恢复和超时。
session_summary(会话摘要)会话关键事实摘要用户投诉售后,缺订单号用摘要替代全部历史。

任务状态字段​

字段含义客服项目示例风险控制
task_id(任务编号)当前处理任务编号一次退款咨询任务一个会话可以有多个任务时避免混乱。
intent(意图)当前任务类型refund_request、order_status、complaint来自第 1.5 章分流结果。
risk_level(风险等级)当前风险low、medium、high高风险默认保守处理。
current_step(当前步骤)任务进行到哪里waiting_for_order_id、checking_order、preparing_ticket决定下一步动作。
missing_fields(缺失字段)还缺哪些信息order_id、contact_info防止信息不足时调用工具。
used_tools(已用工具)已调用工具列表get_order_status、search_policy防止重复调用和便于复盘。
tool_results(工具结果)工具结果摘要订单已发货,政策需人工审核不保存不必要敏感字段。
approval_required(需要审批)是否需要人工确认true 或 false控制高风险动作。
retry_count(重试次数)当前任务失败或重试次数1、2、3达到上限后转人工。
stop_reason(停止原因)本轮为什么停止completed、need_info、handoff、failed用于日志和面试说明。

记忆字段​

字段含义可保存示例不应保存示例
memory_id(记忆编号)一条长期记忆的编号用户偏好短信通知真实 API Key(接口密钥)。
memory_type(记忆类型)偏好、摘要、经验、规则communication_preference(沟通偏好)未核实的订单状态。
owner_scope(归属范围)属于个人、团队还是系统用户个人偏好、客服团队经验无归属的敏感数据。
source_trace_id(来源追踪编号)这条记忆来自哪次交互某次用户明确确认的偏好无来源的模型猜测。
expires_at(过期时间)何时失效30 天后重新确认永久保存敏感内容。
access_policy(访问策略)谁能读取当前用户、客服主管、管理员所有人都能读。
delete_policy(删除策略)如何删除或撤回用户请求删除时移除无法删除。

记忆字段的核心原则是:能不记就不记,必须记就说明原因、权限和期限。

状态迁移表​

状态迁移表说明“什么事件发生后,任务状态如何变化”。它比自然语言说明更容易验收。

读图重点:状态机把禁止跳步写清:没有订单号不查订单,没有审批不建高风险工单,失败超限必须转人工。

当前状态触发事件下一个状态系统动作
new_task(新任务)用户提交退款投诉waiting_for_order_id(等待订单号)追问订单号,记录高风险。
waiting_for_order_id(等待订单号)用户补充订单号ready_to_check_order(可查订单)校验订单号格式,准备工具调用。
ready_to_check_order(可查订单)工具权限通过checking_order(正在查订单)调用查订单工具。
checking_order(正在查订单)工具成功ready_to_search_policy(可查政策)保存订单结果摘要。
checking_order(正在查订单)工具失败recoverable_error(可恢复错误)记录失败次数,判断是否重试。
ready_to_search_policy(可查政策)政策要求人工waiting_approval(等待审批)创建工单草稿或转人工。
waiting_approval(等待审批)用户确认creating_ticket(创建工单中)进入创建工单工具。
creating_ticket(创建工单中)工单创建成功completed(完成)返回工单编号和处理摘要。
recoverable_error(可恢复错误)重试次数未超限previous_step(回到上一步)重试或要求用户补充信息。
recoverable_error(可恢复错误)重试次数超限handoff(转人工)停止自动处理,转人工。

真实项目里,状态迁移表可以直接变成产品验收材料。客户和面试官都能看懂系统如何推进任务。

制作步骤​

第 1 步:定义任务生命周期​

先写清楚一个客服任务有哪些阶段。不要只写“用户提问,Agent(智能体)回答”。以退款投诉为例,阶段至少包括:

  • 新任务。
  • 等待用户补充订单号。
  • 可查订单。
  • 正在查订单。
  • 可查政策。
  • 准备工单。
  • 等待人工确认。
  • 创建工单。
  • 完成。
  • 转人工或失败。

第 2 步:列出状态字段​

每个阶段都要问:

  • 这个阶段需要哪些输入?
  • 已经知道哪些事实?
  • 还缺哪些字段?
  • 是否调用过工具?
  • 是否需要人工确认?
  • 失败后能否恢复?
  • 什么情况下停止?

这些问题会反推出本章的任务状态字段。

第 3 步:设计上下文构造规则​

不要把全部历史都给模型。建议只放:

  • 当前用户输入。
  • 当前任务状态摘要。
  • 必要的最近一两轮对话。
  • 关键工具结果摘要。
  • 本轮可选动作。
  • 安全边界。

这样既能保持连续性,又能控制 Token(文本计量单位)、成本和错误。

第 4 步:设计状态迁移​

用表格写清楚“当前状态、触发事件、下一个状态、系统动作”。状态迁移表是从普通聊天系统进入 Agent 工程系统的关键。

第 5 步:设计恢复策略​

恢复策略要覆盖:

  • 用户补充缺失信息后继续。
  • 工具失败后重试或转人工。
  • 模型输出无效后重试或降级。
  • 会话超时后询问是否继续旧任务。
  • 高风险任务等待人工确认。

第 6 步:设计记忆策略​

记忆策略至少回答:

  • 什么信息可以保存?
  • 为什么保存?
  • 保存多久?
  • 谁能读取?
  • 用户能否删除?
  • 信息过期后如何处理?

如果回答不上来,就不要写入长期记忆。

第 7 步:设计验收样例​

状态管理必须用多轮样例验收。至少准备:

  • 用户缺订单号后补充订单号。
  • 查订单工具失败后重试。
  • 用户中断后回来继续。
  • 高风险退款请求进入人工确认。
  • 输出校验失败后降级。
  • 长期记忆不保存敏感信息。

什么时候不该使用长期记忆​

长期记忆不是越多越好。下面这些场景不适合直接记:

场景原因推荐做法
订单状态会变化,且属于业务系统事实每次从订单系统查询。
退款结果涉及资金和审批以售后系统为准。
API Key(接口密钥)或凭据高敏感信息永远不进入记忆。
用户身份证、银行卡等敏感信息隐私和合规风险高避免保存,必要时用合规系统处理。
模型猜测的用户偏好可能不准确只有用户明确确认后才能保存。
临时投诉情绪可能只和当前事件有关放入会话状态,不写长期记忆。

状态管理追求的是可控,不是无限记忆。

和后续章节的关系​

后续主题本章如何铺垫
RAG(检索增强生成)状态决定什么时候需要查知识库,工具结果和检索片段如何进入上下文。
MCP(模型上下文协议)MCP 提供外部工具生态,但工具结果仍要写入状态和日志。
LangGraph(智能体状态图框架)LangGraph(智能体状态图框架)可以把本章状态迁移表实现成状态图。
多智能体多个 Agent 之间交接任务时,必须交接状态摘要和权限边界。
部署和监控状态日志是监控失败率、转人工率和工具成功率的基础。

第 1.7 章的状态设计,是后面复杂编排的地基。

版本与资料来源​

本节聚焦状态、会话、记忆、恢复、停止条件和面试表达。

主要资料入口:

过时风险:Agent 框架、状态图框架和记忆模块会持续变化。涉及具体实现前,必须重新核对官方文档和版本说明。

继续学习​