先理解
刚接触这个知识点
补齐先备概念,读原理与反例,再用自己的话解释为什么。
从核心原理开始 →理解 → 实现 → 排错 → 取舍
用状态复杂度、恢复要求、工具契约和团队约束做取舍,而不是按框架热度选择。
知识内容核对 2026-10-03 · 原题来源核对 2026-10-02
建议先理解:
任务契约与独立验收 →幂等、未知结果与任务恢复 →Agent 评测的结果、约束与证据 →按当前基础选择起点,也可以依次深入。遇到不熟悉的概念,先回到核心原理;完成后用知识练习检查理解。
LEARN · PRACTICE · REFLECT
先沿着原理、问答和迁移案例阅读。需要检查理解时,再切换巩固练习或展开个人记录。
核心知识 · 编排抽象与业务责任的匹配
先备概念:有限状态机、持久任务、团队运维能力
框架应覆盖任务真正需要的控制与恢复复杂度,而不是替业务承担不存在的保证。选型比较同一任务的故障行为、调试成本和状态迁移边界。
三个确定工具调用可能只需要有限循环与异常处理;分支、共享状态与人工中断需要更明确的图;跨天等待和严格恢复可能需要工作流引擎。模型自主决定下一步和固定业务编排是不同维度,使用多个 Agent 不能消除恢复责任。
既有 Java 平台可能已经覆盖身份、任务持久化和审计,引入 Python 服务增加网络协议、版本、部署与故障协调。收益应来自可验证的状态编排需求,不是生态流行。工具外部幂等和权限最终仍在业务服务处理。
让同一任务经历 worker 宕机、等待批准、工具成功但回执丢失,再试状态格式变化。能恢复旧任务与能启动新 Demo 是不同能力;保留运行版本或显式迁移都要预算维护成本。这里提供比较方法,没有给出未执行的框架性能排名。
先看任务形态。短流程、少量工具和明确终止条件可以用原生 SDK 自己写有限循环;需要分支、共享状态、暂停恢复时考虑 LangGraph;跨天任务、定时等待和服务故障恢复严格时评估工作流引擎。各框架提供的抽象不同,不会自动解决权限、内容质量或外部幂等。用相同任务和故障样例比较可恢复性、排障成本、延迟和迁移边界,再决定。
列出工具数量、任务最长时长、分支数量、是否需要人工等待、故障后从哪里恢复,以及团队熟悉的语言和部署环境。两次读取后总结的流程,用一个有步骤上限和超时的循环即可;把它拆成十个 agent 往往增加上下文复制、追踪与一致性成本。只有存在独立职责、可并行任务或可测量的路由收益时,再引入多 agent。
原生模型 SDK 适合掌控请求与响应契约,需要自行实现工具分发、状态和错误分类。OpenAI Agents SDK提供工具、handoff、guardrail 与 tracing 等构件,可缩短标准 agent 循环的搭建时间;仍需确认所用模型、部署和数据处理选项符合需求。LangGraph overview强调持久化执行、流式输出和人工参与,适合把确定步骤与模型决策放入明确图结构。它不是答案质量保证,也不会替开发者完成租户授权。
若任务跨天、等待外部回调、涉及定时重试和多个业务系统,评估专门工作流引擎的事件记录、活动调度和故障恢复。Temporal 的 Activity Execution区分活动执行与重试;调用外部服务的活动仍需考虑重复执行。引入引擎会增加部署、版本管理和排障成本。也可以保留现有任务队列并补齐检查点,但要明确恢复语义,不能将队列投递成功等同业务完成。
准备一个读取工具、一个故意超时工具、一处人工暂停和一个写入动作,在候选实现中使用相同模型及输入。记录代码复杂度、状态可查询性、失败恢复行为、延迟和费用,不把不同提示词造成的结果差异归功于框架。比较进程在工具完成后退出、重复回调、恢复期间更换代码版本三种场景。模型适配、工具 schema、业务状态和权限判断封装为独立模块,框架只负责调度。结果记录为 ADR:为何选择、可接受限制、何时重新评估,并固定依赖版本和升级回归样例。选型的目标是让任务可理解、可恢复、可维护。
沿着问题的前提和约束继续向下读。先理解参考解答,再尝试收起答案,用自己的话解释因果和取舍。
第 1 层既有 Java 任务平台,何时值得引入 Python 图编排服务?
选型不仅比较抽象,还要结合现有 Java 平台与团队成本。
当分支与中断需求明显超出现有平台能力,且团队能维护跨语言契约、部署和排障时再考虑。先做隔离小服务,用稳定业务 ID 和有限 API 接入;如果 Java 平台已覆盖需求,保留单栈通常更简单,不能仅因示例用 Python 就重写核心。
第 1 层业务流程固定时,为什么可能不需要多 agent?
工作流需求与多 Agent 需求应分别证明。
固定步骤可由普通工作流保证顺序和重试,模型只处理需要语言判断的局部。多 Agent 增加消息、交接与不一致状态,未必提高效果;只有职责或上下文隔离产生真实收益才拆分,并验证交接和终态,而不是把角色名字当架构理由。
第 1 层框架升级改变状态格式,正在等待审批的任务怎么迁移?
框架状态持久化之后,还需面对升级与旧任务兼容。
对已暂停任务保留可执行旧版本,或读取旧快照并做显式、可回退迁移。检查节点名称、字段类型、工具语义与批准对象兼容;LangGraph 对暂停线程的删改节点和不兼容状态类型有边界,不能把 schema 能解析当业务兼容。
沿着这个回答继续深入
第 2 层旧字段改名,新字段意义相同,直接读取默认值可行吗?
父问描述状态迁移,子问选常见字段改名与默认值陷阱。
不可静默这样做。旧快照需要明确映射,否则缺失字段可能被当初始状态导致重做。迁移记录旧值、新值和状态版本,检查必要业务键与已执行事实;不能恢复的信息保持待处理,而不是用默认值伪造。
沿着这个回答继续深入
第 3 层迁移后的状态能通过类型检查,为何仍要故障验收?
父问有显式映射,继续区分结构兼容与行为兼容。
类型只说明字段形状,不说明恢复点、动作语义和外部效果一致。用旧任务快照推演恢复,检查不重复提交、批准仍对应同一对象、终态正确;若没有实际运行则仅报告设计审查,不能称为迁移验证通过。
先找出改变的条件,再判断原方案中哪些前提仍成立。下面的案例是教学推演,便于将原理迁移到新问题。
改变的条件:等待时长与 worker 重启概率大幅增加。
延伸问题:原内存循环如何演进?
把状态、批准对象与动作账本持久化,选择能够等待恢复的编排;比较现有任务系统增强与引擎接入成本。流程恢复后仍重验权限和资源版本。需求的时间变化促成持久机制,不自动要求多 Agent。
保持不变的原理:选型按控制和恢复需求补缺口。
改变的条件:无需自主探索,输出空间受限。
延伸问题:需要完整图服务吗?
可以用现有工作流加一次受约束模型分类,程序路由到确定步骤,并对分类失败设回退。只有分支共享状态或恢复复杂度增大时再引入图;仍保存配置和验收,不以框架多少判断能力。
保持不变的原理:最小实现应满足真实任务契约并可检查。
依据公开技术资料设计;参考资料支持技术机制,场景与评分标准为本站设计,不代表某公司面试原题。 新增问答与迁移案例用于原理讲解,来源核查与案例运行验证分别记录。
读完后可以对照这些标准解释原理、边界和取舍。掌握程度由你自评;需要进一步验证时,再完成下方小任务。
比较一次问答、小时级研究、跨天审批三种任务的技术选择。