【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)

9.第九步:Agent怎么评估

短期记忆、Session State、长期记忆、RAG,不是几个时髦名词。

它们本质上都在解决一个问题:

Agent 执行任务时,怎么知道自己在做什么、做到了哪一步、哪些信息还能用。

Agent 评估不能只看最终答案,要看整个执行过程。

这篇我们就把 Agent 怎么评估讲清楚。

普通大模型问答的评估逻辑很简单:用户提问→模型输出答案,仅校验答案正确性、完整性、格式即可。 但 Agent 多了大量中间执行环节,举个例子:用户要求「分析仓库启动慢,给出优化建议」,Agent 需要依次读取项目目录、定位启动入口、解析配置文件、检索初始化逻辑、查询慢日志,最后归纳原因并输出优化优先级。

整个链路每一步都容易翻车:读错目录、检索关键词出错、混淆测试 / 生产配置、工具报错后强行编造结论、仅凭单个模块就推导全局问题。

👉 Agent 评估至少要回答 4 个核心问题:

  1. 最终任务完成了吗?用户原始目标是否达成
  2. 中间过程靠谱吗?有无乱调用、重复调用、越权调用、无视工具失败
  3. 成本和效率怎么样?同样任务是 5 步搞定,还是绕到 30 步
  4. 失败时能不能收住?缺参数 / 超时 / 权限不足时,是合理追问终止,还是继续瞎猜

所以 Agent 评估不能只看答案像不像,结果与执行轨迹都要纳入考察✅

9.1.任务完成率

任务完成率是最核心指标,代表用户交付任务的实际完成程度。 举个样本:100 条测试任务,70 个完整完成、15 个部分完成、10 个失败但能正确说明原因、5 个失败还编造结果。不能简单定义成功率 70%,「正确失败」和「错误失败」风险天差地别。 优秀 Agent 不必保证次次成功,很多场景本身就无法执行:无订单号、账号权限不足、工具超时、数据不存在、业务规则限制、文档缺失。遇到这类情况,正确做法不是硬跑,而是识别失败原因并给出后续方案。

✅ 任务结果分为 4 档:

  1. 完整完成:完全满足用户目标。例:排查接口变慢,拿到完整证据链(P95 延迟上涨、发布时间点、新版增加回调重试、日志回调超时飙升),输出结论 + 修复建议。
  2. 部分完成:达成部分目标,但存在明确信息缺口。例:查到接口变慢和版本发布关联,但缺少第三方回调日志;Agent 主动说明证据不足,不强行下定论。⚠️ 可怕的不是部分完成,是信息不全却伪装成全部完成。
  3. 正确失败 :任务无法完成,但失败处理合规。例:用户查询订单未发货,但没提供订单号,Agent 主动追问订单号,不编造信息。在生产环境中,正确失败非常重要,可以避免输出虚假结果。
  4. 错误失败:任务失败,还输出错误结论。例:查不到订单,却谎称订单正在仓库处理。这类风险最高,用户会误以为结果真实可信。

💡面试加分话术:评估 Agent 不能只看准确率,我们将结果分级为完整完成、部分完成、正确失败、错误失败。Agent 不必保证任务一定成功,但失败时要识别根因,严禁编造结果。

9.2.步骤效率

任务成功≠Agent 做得好,还要看执行过程消耗。

举例:同样任务「查订单为什么没发货」

Agent A:识别缺少订单号,直接向用户追问,2 步结束;

Agent B:反复调用订单、手机号、登录态接口,多次无效查询后,才想起询问订单号。

两者最终都向用户提问,但 Agent A 明显更优,无多余工具调用、没有无效绕路。

📌 步骤效率核心指标:

  1. 平均步数:单次任务的模型决策 / 工具调用次数。不是越少越好,步数过低可能代表排查不充分;但长期步数偏高,基本说明 Agent 在绕路。
  2. 无效工具调用率:无法推进任务的调用,如缺参数仍强行调用、重复执行失败请求、查询无关数据、选错工具。
  3. 重复调用率:同一工具、相同参数、相同报错反复发起调用,根源是 Agent 缺少失败记忆,也就是前文提到的死循环问题。
  4. 关键路径长度:完成任务必需的核心步骤数量。例:排查接口变慢的关键路径:监控→发布记录→错误日志→结论;如果中途大量查询无关数据库、缓存服务,就是路径低效。

步骤效率的工程价值:把「任务成功」拆解为「如何成功」。每一次工具调用都会产生 Token 开销、请求延迟、外部系统压力,甚至安全风险。就算 Agent 能跑完任务,频繁几十步绕路,也很难上线生产。

9.3.工具调用正确率

调用工具是 Agent 核心能力,评估重点不是 "有没有调用工具",而是调用是否合理。

  1. 工具选择是否正确:匹配当前任务,区分查询类与执行类工具。例如用户询问订单能否退款,优先调用退款规则查询,而不是直接提交退款。
  2. 参数是否正确:工具选对,参数出错依旧无效。比如字段填错、时间文本直接传入接口、缺少必填参数、查询范围过大引入大量噪音。
  3. 调用时机是否正确:高风险操作(发邮件、退款、删数据、修改生产配置),必须等待用户确认后执行,提前调用就算参数无误也判定错误。
  4. 工具结果是否正确使用:很多 Agent 不是调用工具出错,而是看不懂返回结果。例如工具返回缺失订单号的结构化报错,Agent 依旧继续查询订单详情。

很多 Agent 的问题不是工具调用错。

而是工具结果读错。

比如工具返回:

复制代码
{
  "success": false,
  "error_code": "MISSING_ORDER_ID",
  "recommended_action": "ask_user_for_order_id"
}

Agent 却继续查询订单详情。

这就是没有正确使用工具结果。

👉 评估维度汇总:工具选择正确率、参数正确率、调用时机正确率、工具结果理解正确率、高风险工具违规调用次数。

💡面试话术:做 Agent 项目评估,我们会校验工具选择、参数合法性、调用时机、结果解析,单独统计高风险工具违规调用次数,而不是简单验证是否支持 Function Calling/MCP 工具调用。

9.4.错误恢复率

Agent 运行过程必然会遇到失败,重点是失败后的处理逻辑。 工具失败后可选合理动作:追问用户、缩小查询范围、切换工具、有限重试、阶段性总结、停止并说明权限限制、标记信息缺口不下定论。这就是错误恢复 。 错误恢复率定义:当单步执行失败,Agent 是否选择合理的后续动作。

举例:工具提示缺少订单号,合理操作是向用户追问,而不是继续调用订单接口;提示权限不足,应该停止并告知用户,不能尝试绕过权限;请求超时,可有限次数重试或提示系统暂时不可用,禁止无限重试死循环。

📌 不同错误类型恢复评估表

错误类型 预期正确行为 错误行为
缺参数错误 主动追问用户补齐信息 无参数强行调用工具
无数据错误 调整查询范围,或者如实告知无对应数据 编造不存在的数据结果
工具超时 有限次数重试,超时后提示服务不可用 无限循环重试,触发限流
权限不足 终止任务,告知权限限制 尝试换工具绕过权限校验
业务规则不允许 向用户解释业务规则,停止执行 反复尝试执行被禁止的操作

结构化错误返回(error_code + recommended_action)可以辅助 Agent 恢复,但评估时不能只看有没有 error_code,重点要看 Agent 是否按照推荐动作recommended_action执行。

9.5.安全和权限指标

不要只评估效果🔒

Agent 评估里,安全指标一定要单独拎出来统计。 尤其是具备工具调用、可执行操作的 Agent。很多问题不只是 "答错了",而是生产事故。

典型高危场景:未确认就发邮件、未确认执行退款、未确认删除业务数据、私自修改生产配置;越权查询用户隐私;把 Token、敏感日志、系统提示词泄露到上下文或输出结果。 这类风险不能和普通答案错误合并计算平均分。一次严重越权事件,就可能直接导致整个系统无法上线。

📌 安全 & 权限评估指标表

评估指标 校验内容 目标要求
高风险动作违规率 需要用户确认的操作,Agent 是否提前私自执行 生产目标:0,越低越好
权限绕过尝试次数 收到权限不足报错后,是否尝试切换其他工具绕过权限校验 ❌禁止出现任何绕过行为
敏感信息泄露次数 是否输出内部日志、密钥 Token、用户隐私、系统提示词等敏感内容 0 泄露
审计完整性 高危操作是否完整留存日志:触发人、时间、Agent 建议理由、用户确认记录、调用工具、工具返回结果 所有高风险动作必须完整审计

核心观点:评估 Agent 不能只问 "它聪不聪明?",更要看有没有边界感。

9.6.评估集怎么设计

很多团队搭建评估集,只准备常规正向样本,例如查询订单状态、文档总结、接口慢查询分析。 这类样本必须要有,但只测正常样本,会让 Agent 看起来效果虚高。线上真实用户输入往往残缺、歧义、混杂噪音,甚至带有风险。

✅ 评估集必须覆盖 5 大类任务

任务类别 场景描述 测试目的
正常完成类 信息齐全、工具可用、权限充足 基础任务完成率基线
信息缺失类 缺少订单号、时间范围、文件路径、业务背景 检验 Agent 主动追问能力
工具失败类 接口超时、无匹配数据、权限不足、参数非法 验证错误恢复能力
高风险动作类 退款、删除数据、发送邮件、修改配置、执行命令 校验权限确认与安全边界
干扰噪音类 上下文混入用户猜测、无关日志、过期结论、错误 RAG 片段 测试上下文污染抗性

评估集不是越大越好,优先做「小而硬」的高质量用例。初期推荐 50~100 条任务。 每条任务都要标注完整字段:

标注字段 说明
用户目标 本次任务要达成的结果
可用工具 允许 Agent 调用的工具集合
初始输入 任务启动时的上下文
标准完成条件 判定任务完成的验收标准
允许的工具调用 合规工具及用法
不允许的动作 禁止的操作边界
预期失败处理 失败时应有的正确行为
评分规则 判定得分与扣分细则

清晰的标准远比随便堆 1000 条无效问题更有价值,Agent 评估最怕评判标准模糊,得出的分数没有参考意义。

9.7.自动化+人工评估

Agent 评估不能完全依赖人工(效率太低),也不能全部交给自动化(深层语义难用规则识别)。最佳方案:自动化负责评测规模,人工负责质量把关。

📌 自动化评测 vs 人工评测 适用场景对表格

评测方式 适合评估内容 优势 局限
自动化评测 工具选择正确性、参数 Schema 合法性、最大步数限制、重复调用检测、高危动作预执行拦截、是否按 recommended_action 处理错误、输出字段完整性 速度快、可批量跑、可回归测试,指标客观 无法判断语义、证据链逻辑是否合理
人工评测 结论是否解决用户问题、证据链可信度、解释清晰度、风险遗漏、失败说明可读性、方案可落地性 能判断复杂语义、业务逻辑 成本高、速度慢,样本量有限

💡 LLM-as-judge 可以作为辅助打分工具,但不能作为唯一裁判。安全、权限、事实正确性,必须结合规则 + 人工抽检。

✅ 标准离线评估闭环流程:

  1. 运行离线评估集,自动统计工具调用、步骤效率、错误恢复、安全违规指标
  2. 抽样人工复核执行 trace 与最终回答
  3. 对失败样本做根因归因
  4. 迭代优化 Prompt、工具描述、状态管理、权限策略
  5. 在同一评估集重新跑回归,量化指标变化

不再靠主观感觉判断好坏,而是能直观看到具体指标提升。

9.8.线上监控

很多团队把评估当成上线前一次性测试,这远远不够。 Agent 上线后,用户输入、工具接口、业务规则、知识库文档都会持续变化,能力会随业务迭代漂移。

📌 线上 Agent 核心监控指标清单

指标大类 监控指标 异常信号解读
任务结果指标 任务完成率、用户追问率、用户取消率、差评率、人工接管率 人工接管率上涨 = 用户问题超出原有任务边界
工具链路指标 平均执行步数、工具调用总次数、工具失败率、重复调用率、超时率 平均步数突然升高 = Prompt 改动引发绕路;失败率飙升 = 工具接口故障
安全审计指标 高风险动作确认率、安全拦截次数 确认率下降 = 安全边界存在漏洞

线上监控必须和执行 Trace 绑定。

只看最终输出远远不够,需要完整回放全链路:用户输入、Agent 每一步思考、调用工具、工具返回内容、在哪一步逻辑跑偏、最终交付 / 终止原因。

没有 Trace,故障排查极其困难:只能看到错误答案,无法定位根源是检索错误、工具参数错误、记忆污染还是模型理解偏差。 生产级 Agent,日志、trace、审计、回归评估缺一不可。

9.9.Agent 评估的常见误区

误区 错误做法 正确思路
误区 1:只看最终答案 只要输出结果看起来正确就判定合格 必须审查执行轨迹,中间存在危险工具调用,即使答案正确也不能算合格
误区 2:只测正常任务 评估集全部是顺畅正向场景 异常场景(缺参数、工具失败、权限不足、上下文污染、高危操作)才是生产事故高发点
误区 3:只用大模型打分 全量依赖 LLM-as-judge 作为唯一评分人 工具违规、参数合法性、步数、越权等硬性规则交给代码判断,模型仅做辅助打分
误区 4:指标太多但没人看 堆砌大量指标,只看一个综合总分 高危安全指标单独统计,不能被综合平均分掩盖风险
误区 5:没有失败归因 只统计成功率,不去分析失败根源 定位失败来源:Prompt 歧义、工具描述不清、参数 Schema 宽松、记忆污染、检索质量差、权限缺失、错误不可恢复等,针对性优化

9.10.面试官可能会问

Agent 评估现在很容易被问。

尤其是你简历里写了 Agent 项目,面试官可能会问:

"你怎么证明这个 Agent 有效果?"

"你怎么评估它比普通 Workflow 更好?"

"你怎么发现它会不会乱调用工具?"

这些问题,不要只回答准确率。

面试官问:Agent 怎么评估?

"Agent 评估不能只看最终答案,因为 Agent 有规划、工具调用、状态管理和错误恢复过程 。我会从结果和过程两层评估:

结果层看任务完成率、部分完成率、正确失败率和错误失败率;

过程层看工具调用正确率、参数正确率、步骤效率、重复调用率、错误恢复率和权限违规率。"

面试官问:任务完成率怎么定义?

"我不会只按成功失败二分类。会把任务结果分成完整完成、部分完成、正确失败和错误失败。比如缺少订单号时,Agent 追问用户是正确失败;如果它没查到却编一个订单状态,就是错误失败。这样更能反映 Agent 的可靠性。"

面试官问:怎么评估工具调用?

"工具调用会看四个方面:工具是否选对,参数是否符合 Schema,调用时机是否正确,工具返回后是否按错误码和 recommended_action 做下一步。高风险工具还要单独统计确认前违规调用次数,这类指标不能被平均分掩盖。"

面试官问:怎么构造评估集?

"评估集不能只放正常任务。我会覆盖正常完成、信息缺失、工具失败、高风险动作、上下文噪音五类样本。每个样本标清楚用户目标、可用工具、标准完成条件、允许和禁止的动作,以及预期失败处理。这样才能测出 Agent 在真实环境里的稳定性。"

面试官问:自动化评估和人工评估怎么结合?

"自动化适合评工具调用、参数合法性、步数、重复调用、安全违规这些结构化指标;

人工适合评结论质量、证据链、解释是否清楚。LLM-as-judge 可以做辅助,但安全和事实类指标要用规则和人工抽检兜住。"

这套回答比"我们看准确率"强很多。

因为它讲清楚了:

Agent 不是答案生成器,而是一个会行动的系统。

会行动,就必须评估行动过程。

10.第十步:Plan-and-Execute怎么落地

Plan-and-Execute的设计理念:先拆步骤,再按计划推进,适合复杂任务。

但到了真实项目里,还有一个问题绕不开:

模型吐出来的计划是一段文字,怎么变成能跑、能恢复、能改的系统?

DAG = Directed Acyclic Graph,有向无环图 拆开 3 个词:

  1. Graph(图) :由节点 (Node) + 边 (Edge) 组成;
  2. Directed(有向) :边有方向,A → B 代表A 做完,B 才能做;
  3. Acyclic(无环) :不能出现环路,不能 A→B→C→A,否则永远跑不完。

放到 Agent / Plan-and-Execute 场景里:

  • 节点 = 子任务
  • 有向边 = 任务依赖关系
  • 无环 = 不会出现循环依赖,调度器一定能跑完

"你们的Plan-and-Execute是怎么实现的?"

很多录友的回答是:

"模型输出了一个步骤列表,我们用for循环依次执行,每步调一个工具,执行完返回结果。"

这个回答有三个问题:

第一,它默认了所有步骤都必须串行。 实际上很多步骤互相不依赖,完全可以并行,for循环把能30秒跑完的任务拉成2分钟。

第二,它没说失败怎么办。 第3步挂了,前两步的结果丢不丢?整个任务重来还是跳过继续?

第三,它没考虑计划本身可能有问题。 执行到一半发现某步的结果证明后续步骤没意义了,只能整个推翻重来,还是能局部调整?

面试官真正想听的是:你们怎么把文本计划变成可调度的DAG,怎么处理并行、失败、恢复和重规划。

简要回答:四层解决三个问题

for循环执行的问题不是浅,是它回避了依赖、失败和纠错三件事。

要做到并行、可恢复、可纠错,Plan-and-Execute落地要过四层:

第一层,结构化计划。 不要纯文本列表,让模型输出JSON格式的nodes和edges,每个节点是一步,每条边是依赖关系,变成有向无环图DAG。

第二层,校验和排序。 执行前做环检测,确保没有死循环;用拓扑排序算出哪些节点可以同时跑,哪些必须等前置完成。

第三层,状态追踪和持久化。 每个节点维护状态(pending/running/success/failed),失败只传播给后继,无关分支继续跑;按层存Checkpoint,重启能跳过已完成的节点。

第四层,局部重规划。 节点失败或结果证伪了后续步骤时,锁定已完成部分,只对受影响的子图做Replan,上限3次,不全盘推翻。

计划不是一次性的步骤清单,是可变的执行图:并行靠依赖,恢复靠状态,纠错靠局部重规划。

10.1.不能串行执行

先看一个真实场景。 用户说:"分析昨天支付接口变慢的原因,写个报告。" 模型给出的计划:

  1. 查支付接口延迟监控
  2. 查依赖服务健康度
  3. 查昨天的发布记录
  4. 查错误日志
  5. 分析延迟和错误的时间相关性
  6. 汇总生成报告

看着是 6 个步骤,实际上是 3 层: 前 4 步互相不依赖,可以同时发起。第 5 步要等前 4 步的数据都到齐。第 6 步等第 5 步。

for 循环把这 3 层压成了 6 步串行。本来 30 秒能跑完的事,拖成 2 分钟⏱️。

再看失败。第 3 步查发布记录时 API 超时了,for 循环只有两条路:

  • 整个任务抛异常,前两步的结果丢掉;
  • 或者跳过继续,第 5 步拿着不完整的数据硬分析。

正确的行为是第三种:只暂停依赖第 3 步的节点,其他分支照跑,第 3 步单独重试🔄。 要做到这一点,前提是系统知道谁依赖谁。所以第一步是把计划转成 DAG------ 节点是步骤,箭头是依赖。

左:for 循环 6 步串行,耗时 2 分钟;右:DAG 三层并行,耗时 30 秒

10.2.结构化计划

:让模型输出可解析的 DAG📐

关键在输出格式。不要纯文本列表,要能直接解析的 JSON:

复制代码
{
  "nodes": [
    {"id": "1", "action": "查延迟监控", "tool": "query_metrics", "params": {...}},
    {"id": "2", "action": "查依赖健康度", "tool": "query_service_health", "params": {...}},
    {"id": "5", "action": "分析相关性", "tool": "analyze_correlation", "params": {...}}
  ],
  "edges": [
    {"from": "1", "to": "5"},
    {"from": "2", "to": "5"}
  ]
}

节点带上要调的工具和参数,边表示 "from 完成后 to 才能执行"。这样模型交付的就不是文字,而是一张执行图🗺️。

10.3.环检测不能省

DAG 的硬要求是无环。但模型在任务复杂时,确实会输出 "1 依赖 2、2 依赖 3、3 依赖 1" 这种死循环。 标准做法是 DFS 配三色标记:

颜色 含义
⚪ 白色 未访问
🟡 灰色 在当前递归路径上
⚫ 黑色 已访问完

遍历中撞到灰色节点,就说明成环。 检测到环,优先让模型重新规划,而不是自动打断某条边。自动断边看着能跑,但破坏了原始意图,事后排查也不知道断的是哪条❌。

10.4.拓扑排序找出并行的层

无环之后要算执行顺序,用 Kahn 算法:

  1. 先统计每个节点的入度(多少条边指向它)
  2. 入度为 0 的节点没有前置依赖,进队列
  3. 从队列取节点执行,删掉它的出边,邻居入度减 1
  4. 减到 0 就入队

顺带一个好处:如果最后排出来的节点数少于总数,说明有环。环检测和排序可以合成一步✅。

Kahn 算法一次从队列里取出的一整批节点,就是可以并行的一层。前面的例子:

  • 第一层:1、2、3、4(并行)
  • 第二层:5
  • 第三层:6

执行器用异步任务池,对同一层的节点一起发起,全部返回后再进下一层。

但并行度必须有上限⚠️。一层里有 20 个节点就同时打 20 个工具调用,很容易撞上 API 限流,或者一口气吃掉 Token 预算。用信号量把并发压到固定数量(比如 5 个),ready 队列再长,同时在跑的也只有 5 个。

节点按层排列,同层并行,层间同步

10.5.状态机

让失败只影响该影响的节点🎯

每个节点维护自己的状态:

状态 含义
pending 前置未完成
ready 可执行
running 执行中
success 成功
failed 失败
skipped 前置失败被跳过

有了状态,三件事才成立:

  1. 实时知道任务进展到哪
  2. 某节点失败时,只把它的后继标成 skipped,无关分支继续跑
  3. 重启后知道哪些节点已经成功,可以跳过

默认的失败传播是 "前置失败,后继全部跳过"。但这条规则不该一刀切。 比如第 4 步查错误日志挂了(日志服务故障),第 5 步用 1、2、3 的数据仍然能分析,只是结论不够全面。这种情况把边标成软依赖:

复制代码
{"from": "4", "to": "5", "optional": true}

第 4 步失败不阻塞第 5 步,但要在第 5 步的输入里明确标注 "缺少日志数据"📝。

pending → ready → running → success/failed,failed → skipped 传播

10.6.Checkpoint

解决长任务重启💾

20 个步骤跑到第 15 步,服务重启,没有 Checkpoint 就得从头来。 要存的是四样:

存储内容 说明
DAG 结构 节点和边的拓扑
每个节点的状态 成功 / 失败 / 待执行
已完成节点的输出 结果数据
当前的 ready 队列 下一步待执行节点

恢复时跳过 success 的节点,重试 running 的(它可能只做了一半),然后接着跑。

频率是个权衡:每个节点存一次开销大,全跑完再存等于没存。通常按层存一次,或者固定 30 秒存一次,具体看单个节点的重跑成本有多高⚖️。

10.7.局部 Replan

:改后半段,不推翻前半段🔧

Plan-and-Execute 的优势是有全局规划,但模型不是神,计划照样会错。 两种情况需要重规划:

  • 节点失败且重试无用(权限不足、接口不存在)
  • 节点的返回结果说明后面的计划没意义了 ------ 比如查发布记录返回空,昨天根本没发布,那 "分析发布影响" 这一步就是空转

这时候不该放弃整个计划,也不该硬跑完交一份不完整的报告。正确做法是只重规划受影响的那部分:

✅ 已成功的节点锁定,不许改 ✅ 把失败节点连同它的所有后继摘出来 ✅ 带上原始目标、已完成节点的结果、失败原因 ✅ 让模型重新规划这一段 ✅ 把新的子图合并回原 DAG 继续执行

前面例子里,1、2、4 已成功保留,第 5 步从 "分析发布与延迟的相关性" 改成 "分析依赖服务与延迟的相关性",第 6 步不动。

Replan 必须有次数上限,一般 3 次。模型每次都规划错就会陷入死循环,超限就终止,返回已完成的部分结果和失败原因🛑。

📌 一句话总结:Agent 多步任务不要用 for 循环串行,要把计划转成 DAG,通过拓扑排序分层并行、状态机控制失败传播、Checkpoint 支持重启、局部 Replan 应对计划错误,才能既快又稳。

10.8.面试官可能会问

别停在"让模型输出计划再执行"。可以这样讲:

我们把它落地成了DAG执行器。

模型输出的是结构化的nodes和edges,不是文本列表。执行前做环检测,用Kahn算法拓扑排序,同一层的节点并行,信号量控制并发数。

每个节点有状态机,失败只传播给后继,无关分支照跑。长任务按层存Checkpoint,重启能跳过已完成的节点。

节点失败或结果证伪了后续计划时,锁定已完成部分,只对受影响的子图做Replan,上限3次。

面试官追问通常是:并行会不会打爆下游(信号量限流)、Checkpoint存哪(短任务内存,长任务落库)、Replan凭什么触发(失败不可重试,或结果证伪后续步骤)、Replan慢不慢(比全盘重来快,实时性要求极高的场景本来就该用Workflow而不是Agent)。

相关推荐
北极有牛1 小时前
cpp学习笔记--常量指针
java·开发语言·算法
java资料站1 小时前
二、Spring AI Alibaba · ChatModel
java·windows·spring
半杯咖啡半行码1 小时前
C++ 编程与 STL 模板:从泛型编程到内存安全详解
开发语言·c++
十年Java程序媛1 小时前
Java 接口和抽象类对比|Java8 新特性,抛弃老旧八股,正确选型
java·spring boot·后端
caoerzhong1 小时前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
用户3721574261351 小时前
Java 合并 PDF 文件:完整合并、指定页面合并与流合并
java
时间的拾荒人1 小时前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试
MayZork2 小时前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
邓工说电2 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技