当前位置: 首页 > news >正文

Agent 能不能上线,关键看评估能不能真正控制业务流程

目录

介绍

一、Agent 不能只“跑流程”,必须“被评估控制流程”

二、评估不是一个点,而是两道“业务闸门”

1)Action Evaluation:这件事能不能做?

2)Reply Evaluation:这句话能不能发?

三、真正的评估必须能“阻断执行”,而不是“记录结果”

四、评估不能只靠 LLM,要“规则 + 模型”双层结构

1)确定性规则(必须用代码)

2)LLM 语义判断(补充层)

五、Reply Evaluation:不能让模型“自由发挥”

六、评估失败必须触发“安全降级”

七、结构化输出是评估可执行的前提

八、评估必须进入审计,而不是只用于运行时

九、评估必须可测试,否则无法上线

1)模型输出错误

2)审批拒绝

3)幂等性

十、评估在整个 Harness 中的位置

最后

评估的本质


介绍

很多 Agent Demo 都能跑通一条完整链路:理解用户问题、查询业务数据、调用工具,最后生成回复。但“能跑通”和“能上线”之间,还有很长一段距离。以一个 AI 客服 Agent 为例,用户说:我买的产品有问题,已经联系过一次客服,但一直没人处理。我想退款。

Agent 需要完成分诊、查询订单、查询历史工单、判断退款政策、决定处理动作、申请审批、执行退款并生成客户回复。

从技术上看,这是一个典型的多阶段 Agent Workflow:

但真正决定系统能不能上线的,不是这些步骤本身,而是评估(Evaluation)是否真的进入了流程控制层。

很多系统虽然也有“评估”,但评估只是事后打分:生成一个 report,告诉你“好不好”,却不能阻止错误发生,也不能改变执行路径。

这种评估,本质上只是测试日志,而不是生产机制。

一、Agent 不能只“跑流程”,必须“被评估控制流程”

在传统程序中,业务规则是确定性的:输入相同 → 输出必然相同

但 Agent 不一样。同一句“我要退款”,模型可能:

  • 识别成退款请求,也可能当成投诉

  • 正确调用退款工具,也可能遗漏审批条件

  • 在退款未完成时,直接告诉用户“已退款成功”

因此生产系统不能这样写:

var response = await agent.RunAsync(userInput); await SendToCustomerAsync(response.Text);

问题不在于“能不能运行”,而在于:你默认模型输出是可信的,并直接进入业务系统

在客服场景中,这会带来三类风险:

  • 判断错误:不符合政策的订单被误判为可退款

  • 执行错误:金额错误或重复退款

  • 表达错误:未完成退款却对客户承诺“已到账”

所以 Harness 的职责不是“调用模型”,而是:控制模型、约束模型、在模型失败时接管流程

二、评估不是一个点,而是两道“业务闸门”

在完整客服链路中,评估至少出现两次关键拦截:

1)Action Evaluation:这件事能不能做?

发生在执行动作之后:

builder .AddEdge(policy, action) .AddEdge(action, actionEval) .AddEdge(actionEval, response) .AddEdge(response, replyEval) .WithOutputFrom(replyEval);

这里的关键是:

  • Action 负责“做什么”(退款/换货/升级)

  • Action Evaluation 负责“能不能做”

例如:Action Evaluation:这件事能不能做?

它保护的是:

  • 资金安全

  • 权限边界

  • 合规性

2)Reply Evaluation:这句话能不能发?

发生在回复生成之后:

.AddEdge(response, replyEval) .WithOutputFrom(replyEval);

它检查:

  • 是否泄露内部字段

  • 是否包含敏感信息

  • 是否错误承诺(如“已退款成功”)

例如:Reply Evaluation:这句话能不能发?

它保护的是:

  • 客户体验

  • 信息安全

  • 合规表达

关键区别

Action Evaluation:防止“做错事”

Reply Evaluation:防止“说错话”

只做其中一个都会出问题:

  • 只有 Reply Evaluation → 说得很好但做错事

  • 只有 Action Evaluation → 做对了但对客户说错话

三、真正的评估必须能“阻断执行”,而不是“记录结果”

很多系统的问题在于:evaluation = true/false,但流程继续执行。这在生产中是不可接受的。

评估必须直接参与控制流:

if (!compliance.Allowed) { finalAction = new ActionProposal( ActionKind.Escalate, RefundAmount: 0, RequiresApproval: true, Reason: compliance.Reason); } else if (proposal.Kind == ActionKind.Refund) { var decision = await approvals.RequestAsync(proposal); if (decision?.Approved == true) { await refunds.RefundAsync(...); } else { finalAction = new ActionProposal( ActionKind.Escalate, Reason: "审批未通过"); } }

这里体现的是评估的本质:评估不是描述风险,而是控制风险

四、评估不能只靠 LLM,要“规则 + 模型”双层结构

在 Action Evaluation 中,一个关键设计是:

1)确定性规则(必须用代码)

例如:

var overLimit = action.RefundAmount > policy.AutomaticLimit;

适用于:

  • 金额

  • 权限

  • 状态

  • 审批条件

特点:

  • 可测试

  • 可审计

  • 稳定

2)LLM 语义判断(补充层)

用于:

  • 是否合理

  • 是否遗漏上下文

  • 是否符合客户意图

推荐结构

规则层(Code)-> 语义层(LLM)

如果反过来:全靠 LLM 判断规则,系统一定会不稳定。

五、Reply Evaluation:不能让模型“自由发挥”

模型生成回复后,不能直接发送:

state.CustomerReply = resp.Text;

因为可能出现:

您的退款已成功(内部 risk_level=low,execute_refund 已完成)

问题包括:

  • 泄露内部字段

  • 暴露工具名称

  • 提前承诺未完成操作

本地评估比 LLM 更可靠

例如:

var phoneRegex = new Regex(@"\b1[3-9]\d{9}\b"); var emailRegex = new Regex(@"\b[\w.-]+@[\w.-]+\.\w+\b");

适用于:

  • PII

  • 卡号

  • 邮箱

  • 内部字段

内部信息泄露检查​​​​​​​

var internalTerms = new[] { "execute_refund", "policy_compliant", "risk_level", "{", "}" };

本质是:客户不应该看到系统内部结构

六、评估失败必须触发“安全降级”

评估失败不能只是 log:​​​​​​​

if (!passed) { reply = SafeFallback(...); }

安全降级必须保证:

  • 不泄露信息

  • 不承诺未完成动作

  • 不依赖模型补救

例如:​​​​​​​

if (receipt is not null) { return "退款已受理,将原路退回"; }

关键原则:只有状态真实存在,才能表达状态

七、结构化输出是评估可执行的前提

如果输出是自然语言:看起来可以退款,但建议人工确认

系统无法判断:

  • 是否退款

  • 金额是多少

  • 是否需要审批

因此必须结构化:​​​​​​​

public class ActionResult { public string Action { get; set; } public decimal RefundAmount { get; set; } public bool RequiresHumanApproval { get; set; } }

但要注意:JSON 正确 ≠ 业务正确

所以必须双层校验:Schema 校验(格式)+ 业务校验(规则)

八、评估必须进入审计,而不是只用于运行时

评估结果必须结构化记录:​​​​​​​

{ "evaluation": { "passed": true, "checks": [ { "name": "no_pii_leakage" }, { "name": "no_internal_leakage" } ] } }

同时进入审计系统:

await audit.WriteAsync("refund.approval_decided", ...);

区别是:

  • Evaluation:当下是否安全

  • Audit:事后为什么这么做

九、评估必须可测试,否则无法上线

生产系统必须能模拟:

1)模型输出错误

Assert.DoesNotContain("13800138000", result.CustomerReply);

2)审批拒绝

Assert.Equal(0, refund.Calls);

3)幂等性

Assert.Equal(1, refund.Calls);

核心不是:模型是否聪明

而是:系统在模型出错时是否仍然安全

十、评估在整个 Harness 中的位置

完整流程应该是:

最后

Agent 的能力上限取决于模型,但上线能力取决于评估系统。

企业真正关心的不是:它能不能回答问题

而是:

  • 能不能不乱退款

  • 能不能不泄露信息

  • 能不能在不确定时停下来

  • 能不能在错误发生前被拦住

因此必须建立一条清晰的信任链:

模型输出 ≠ 可执行结果

结构化输出 ≠ 业务正确

评估结果 = 流程控制器

高风险动作 = 必须审批

评估失败 = 必须降级

所有关键决策 = 必须可审计

评估的本质

评估不是“打分”,而是三件事:

你理解对了吗?

这件事可以做吗?

这个结果可以交付吗?

模型决定 Agent 能做什么。评估决定企业敢不敢让它真的去做。

引入地址

http://www.cnnetsun.cn/news/4041129.html

相关文章:

  • Knowledge Graph Augmented Large Language Models for Disease Prediction
  • AgentScope 2.0:专为托管AI智能体打造的企业级云原生平台
  • ColabFold 批量处理实战:一次跑完几百条序列的蛋白质结构预测完整流程
  • 微信公众号数据采集完整指南:3个实战场景玩转搜狗微信搜索爬虫
  • JPEXS Free Flash Decompiler 实战指南:一条命令跑通 SWF 反编译、修复与资源提取全流程
  • ARM架构KVM虚拟化支持现状分析
  • 单片机常用型号参考
  • 137、顶会注意力机制复现(二):PKINet上下文先验注意力适配YOLOv12——ICCV2023核心思想解析与Area Attention替换实验涨点对比
  • 189、LLC谐振变换器的样机调试实战(可靠性测试)
  • AI时代开发者如何避免“结论泛滥”:从代码搬运到系统思维的实践指南
  • langgraph笔记(2) fastapi笔记
  • 微信聊天记录导出完整指南:从本地备份到年度报告一次搞定
  • Win11玩不动老游戏?DDrawCompat:让DirectDraw老游戏起死回生的开源兼容层
  • 零代码开源自动化工具上手:宏录制把每天1小时的重复劳动缩短到10分钟
  • CoreWeave崛起背后:AI原生基础设施如何重塑GPU云服务与Kubernetes实践
  • 把画图变成写代码:Draw.io Mermaid插件快速上手指南
  • Claude转 word 工具推荐:首选「AI 导出鸭」平板版,专为 iPad/安卓平板打造,深度适配 Claude 的 Markdown 与代码输出,一键无损转换 Word,完美保留公式图表与高亮。
  • AutoDock Vina 分子对接实战:30 分钟跑通从配体到结合能的全流程
  • Rocky Linux 8.6 整机系统备份与迁移方案文档文档用途
  • 微博备份完整指南:如何用 Speechless 扩展把任意公开微博导出为 PDF
  • 【MYSQL】MYSQL学习的一大重点:MySQL连接池原理与分析简易网站数据流动是如何进行
  • Echarts折线图进阶配置:从基础到专业的视觉与交互优化指南
  • Flutter面试冲刺:30天从原理到实战,打造高含金量教程App
  • 告别凌晨两点的机箱轰鸣:免费开源风扇控制软件 FanControl 完整改造实录
  • 手机智谱清言怎么导出文档?AI 导出鸭搞定表格、公式与批量归档
  • 98.C语言易混难点:字符数组与字符串指针的底层差异
  • 三步搞定DLSS版本升级:我用DLSS Swapper告别糊画面的完整教程
  • 深耕液压配套服务赛道,打通设备稳定运行最后一公里
  • 3 分钟导出全成就:YaeAchievement 原神成就数据导出工具实战手册
  • Adobe破解工具完整上手:5步跑通Adobe全家桶免费激活全流程