Durable-Workflow-Temporal与Agent控制面分工
Durable Workflow · Temporal 与 Agent 控制面分工 返回 04-README ⬅️ 03-Java-Agent编排 ➡️ 02-Buy领域智能体定位回答 Staff 白板「LangGraph checkpoint 够了为什么还要 Temporal」——Agent 环内状态vs跨天业务流程的分工。Java 编排选型见 03LangGraph interrupt 见 04-Agent框架checkpoint 语义见 96 §2.0、13 §9.4。L1 · 是什么1.1 一句话定义Temporal或同类 durable execution 引擎管理长寿命、多角色、强审计的业务流程Agent RuntimeSpring AI loop / LangGraph管理秒–分钟级的推理–工具循环。二者通过Activity 边界衔接Workflow 定「何时、谁批、是否可重试」Agent 定「这一步怎么推理、调哪些 tool」。1.2 选型决策树秒–分钟小时–天是否是否任务时长?Agent RuntimeLangGraph / Spring AI需要人工审批链?Temporal / Camunda仅进程续跑?LangGraph CheckpointPostgres/Redis每步 Activity 内调 Agent场景推荐反例客服单轮 RAGSpring AI loop上 Temporal 过重退款 3 天多级审批Temporal Agent Activity纯 checkpoint 难审计 SLA99% 完成 OOMLangGraphcheckpoint 续跑Temporal 不替代步内状态大促批处理补发Temporal批 Workflow同步 HTTP Agent1.3 与 Spring Statemachine 对照03方案甜区与 TemporalSpring Statemachine单 JVM、表单式状态无跨进程 durabilityPlan-Execute 自研中等复杂度自研持久化 ≈ 半套 TemporalTemporal分布式、重试、定时器、审计生产首选长流程L2 · 架构分工2.1 两平面模型Agent 数据面Temporal 控制面RefundWorkflowActivity: collectSlotsActivity: runAgentPlanActivity: waitHumanApprovalActivity: executeRefundSpring AI / LangGraphLLMTools / RAGCheckpoint步内状态Workflow History审计存储内容续跑问题Workflow History活动完成记录、定时器、信号「审批到了吗」Agent Checkpointmessages、plan[]、tool 轨迹「这一步 LLM 跑到哪」向量库知识「政策文本是什么」——不用于续跑2.2 Activity 设计原则Activity 要幂等executeRefund(orderId, idempotencyKey)。Activity 粒度 业务原子步不是「一次 LLM call」。LLM 环放在 Activity 内Activity 超时 LLM P99 工具链。HITL 用Workflow.awaitCondition/ Signal不要阻塞 HTTP 线程。2.3 Java 示意Temporal Java SDK · L1API 以 Temporal Java SDK 为准以下为面试示意结构。WorkflowInterfacepublicinterfaceRefundWorkflow{WorkflowMethodRefundResultrun(RefundRequestreq);}publicclassRefundWorkflowImplimplementsRefundWorkflow{privatefinalRefundActivitiesactsWorkflow.newActivityStub(RefundActivities.class,ActivityOptions.newBuilder().setStartToCloseTimeout(Duration.ofMinutes(5)).setRetryOptions(RetryOptions.newBuilder().setMaximumAttempts(3).build()).build());OverridepublicRefundResultrun(RefundRequestreq){SlotBundleslotsacts.collectSlots(req);AgentPlanplanacts.runAgentPlan(req,slots);// 内部 Spring AI checkpointacts.waitHumanApproval(req.orderId(),plan.riskSummary());returnacts.executeRefund(req.orderId(),req.idempotencyKey());}}Agent Activity 内部仍可用 03 Plan-Execute Redis checkpointTemporal 只保证Activity 级至少一次执行与超时重试。2.4 LangGraph interrupt vs Temporal Signal机制层次典型用法LangGraphinterrupt()Agent 图内人审单会话暂停/恢复TemporalSignal业务流程经理手机点「批准」恢复 WorkflowTemporalQuery只读状态工单系统展示进度组合客服 Agent 图内interrupt收集材料 → Workflow 进入waitHumanApproval→ Signalapproved→ 下一 Activity 调写工具。L3 · 生产要点3.1 版本与部署对象策略Workflow 代码Workflow.getVersion()做兼容迁移Temporal L1Agent 四维Activity 入参带release_id11-RegistryWorker 部署Agent Worker 与 Temporal Worker可同 Pod 可拆拆则 gRPC 调 Agent 服务3.2 失败模式ID现象分工RUN_99P_CRASH最后一步 OOMCheckpoint续跑步内Workflow 不重放已完成 ActivityRUN_99P_DUPLICATE_WRITE重试双写Activity幂等键 业务去重表RUN_RESUME_FULL_REPLAN恢复后计划漂移Checkpoint 存plan[]状态禁止全量重规划96 §4ACTIVITY_TIMEOUTLLM 太慢调超时 / 环内降级小模型3.3 观测Workflowworkflow_idorder_id等业务键。Agent span挂parent_trace Activity span。统一release_id进 08-可观测。3.4 与 Camunda / Step Functions引擎何时口述Temporal云原生、代码即流程、强重试语义Camunda已有 BPMN 资产、业务分析师改图AWS Step Functions全 AWS、Agent 在 Lambda 内Staff 原则选已落地引擎不为了面试换栈。L4 · Staff 答辩4.1 STAR-M-P退款审批 3 天超时要素内容S退款需 L1/L2 审批平均 2.8 天纯 Redis session 丢状态T可审计、可恢复、不重复退款ATemporal WorkflowrunAgentPlanActivity 内 Spring AI审批 SignalexecuteRefund幂等键M会话丢失因无 durable workflowP重复退款 0审计 100% 关联workflow_id4.2 大厂追问答Q1 · 全用 LangGraph 行不行答步内可以跨天审批、定时器、多系统回调应用 Workflow 引擎。否则自研调度 ≈ 重写 Temporal。Q2 · Activity 里 LLM 调用 90s 怎么办答startToCloseTimeout P99环内 streaming超长则拆 Activity或异步回调 Pattern。Q3 · Temporal 与 Kafka答Kafka事件通知Temporal状态机与重试。Agent 侧「任务完成」可发 Kafka编排不交给 Kafka 消费组随意重试。Q4 · Python Agent Java Workflow答常见Java Temporal WorkerPython Agent gRPC Activity见 05-python-agent §集成。契约protobuf release_id。Q5 · 何时用 Spring Statemachine 代替 Temporal答单服务、无跨天、团队无 Temporal 运维时 Statemachine 够用多服务、审计、定时器选 Temporal。4.3 与03 Supervisor 组合模式TemporalSupervisor跨服务退款审批Workflow 主Activity 内单次runAgentPlan同 JVM 多 Worker 争用不推荐EventBus Supervisor定时催办Workflow Timer—原则Supervisor 不解跨天跨天用 Workflow 等 Signal。4.4 部署拓扑白板Spring Boot APITemporal Worker PodTemporal Cloud / Self-hostedAgent ServiceLLM GatewayCheckpoint PostgresAPI只startWorkflow不阻塞等 LLM。Agent Service可独立扩缩Activity 通过 gRPC 调用。Checkpoint与 Workflow DB分库——避免混表。4.5 测试策略层测什么WorkflowTemporal Test Workflow Environment时间跳跃ActivityMock Agent断言幂等键AgentGolden trajectory104.6 容量与 SLO指标建议Workflow 并发按审批人数量与峰值单量估算与 Agent GPU 分开扩容Activity 超时LLM P99 × 1.5 tool 链History 保留合规域 ≥1 年与审计系统对接Worker 版本与release_id联动Workflow.getVersion做兼容4.7 常见追问速答Q能否用 Kafka 代替 Temporal— Kafka 传事件不负责「等到周三经理批准」这类状态会自研调度器。QCamunda BPMN— 已有 BPMN 资产优先 Camunda绿场 Java 云原生常用 Temporal。QServerless— Activity 调 Lambda 可行长连接 LLM仍建议专用 Agent 服务。Q与 96 原型 G— 批处理 G 用 Temporal单会话 A/B 用 Agent checkpoint。§8 决策速查表面试翻牌症状首选用户等 3 天审批Temporal Signal单会话 20 步工具环LangGraph checkpoint每晚批处理 10 万单Temporal 队列仅 JVM 内 2h 流程Spring Statemachine 03跨服务补偿Temporal Saga§9 与 Registry / Eval 联动Activity 入参必须带release_id11。Workflow 升级用Workflow.getVersion()禁止Activity 内隐式读「最新 prompt」。发布前Golden 含长流程用例审批超时、Signal 恢复→ eval/golden 扩展。§10 白板 45min 脚本段画/说决策树§1.2两平面Workflow History vs Checkpoint退款序列§2.3 Java 示意Signal HITL§2.4STAR§4.15. 面试前 Checklist画决策树checkpoint vs Temporal画两平面Workflow History vs Agent Checkpoint述Activity 四原则幂等、粒度、超时、HITL Signal对比LangGraph interrupt vs Temporal Signal口述STAR退款审批列RUN_99P_* 与 Activity 重试关系6. 导航关联路径Java 编排03-Java-Agent编排LangGraph04-Agent框架Playbook 可靠性13 §9.4Registry11-Registry参考架构2796 Catalog96 §2.5 RUN_*官方文档与源码一级依据写作规范docs/official-sources-registry.md §0L1 · 官方文档Temporal — DocumentationTemporal — Java SDK DevelopLangGraph — InterruptsLangGraph — Persistence / CheckpointsL2 · 官方源码temporalio/sdk-javalangchain-ai/langgraph