在构建 AI Agent 应用时,我们常常会让大模型去“做决定”。但大模型的输出往往是模糊的文本,当我们需要它进行工具选择、风险评级或模型路由时,如何确保它的判断是结构化、可量化且具备置信度的? AgentScope Java 的 JEV 模块 提供了一套严谨的决策抽象。今天,我们将深入 JEV 的核心概念——问题类型、评审状态与执行模式,带你掌握构建高可靠性 Agent Harness 的底层逻辑。
💡 核心原则:构建一个判断时,先决定你需要的是概率、单选结果还是分级评分;再决定应用如何使用它。记住:结果符合结构,并不保证语义正确。
一、 场景代入:以“条件性退款”为例
假设用户提出诉求:“查订单,未发货再退款”。 在这个场景中,Agent 需要做出多个判断。很多开发者会习惯性地让大模型一次性输出所有决策,但这极易导致逻辑混乱。JEV 建议我们将问题拆解:
- 判断“退款工具是否适用”:订单查询和退款工具都可能适用,此时不能用一次互斥的单选(Choice)来代替,而应该对每个候选工具分别提问是非题(Noul)。
- 判断“这次分析选哪个模型”:这是一个典型的排他性选择,此时才应该使用单选(Choice)。
- 评估“该操作的风险严重程度”:需要量化风险等级,此时应使用分级评分(Score)。
⚠️ 避坑指南:即使 JEV 在语义上认为“退款操作合适”,在实际执行前,依然要检查订单事实(是否真的未发货)与执行权限。必须把业务输入、语义建议和执行结果严格分开,后续各项 API 的状态才不会被误读。
二、 精准量化:JEV 的三大问题类型
JEV 通过 SystemOneRequest 将共享的业务上下文(state)与按 ID 命名的多个问题组合在一起。设计问题时,请遵循:把业务材料放入 state,把判断标准写进问题,绝不要把金标答案或隐式授权混入待评输入中。 JEV 提供了三种核心问题类型,对应不同的决策维度:
| 问题类型 | API 类 | 返回值核心内容 | 典型应用场景 |
|---|---|---|---|
| 是非判断 (Noul) | NoulQuestion / NoulAnswer | 陈述为真的概率 | 工具是否适用、回答是否有事实依据 |
| 单选 (Choice) | ChoiceQuestion / ChoiceAnswer | 选中选项、完整概率分布和置信度 | 模型动态路由、动作多选一 |
| 评分 (Score) | ScoreQuestion / ScoreAnswer | 等级分布、加权分数和置信度 | 风险严重度评估、内容质量分级 |
三、 状态机哲学:区分“评审结果”与“执行决策”
在 Agent 的工作流中,“模型给出了建议”和“系统决定执行”是两个完全不同的概念。JEV 通过三组状态枚举,清晰地界定了评审与执行的边界:
1. 评审结果聚合:JevJudge
适用于“所有条件都必须满足”的严格审核场景。它对 Noul 条件进行聚合,输出以下状态:
- PASS:满足所有条件(若期望为 false,则按 1-p 计算满足条件的概率)。
- FAIL:明确未满足条件。
- INCONCLUSIVE:证据不足,无法得出确定结论。
- ERROR:请求或处理发生异常。
2. 执行决策状态:JevExecution.Decision
表达组件最终是否形成了有效的执行建议:
- DECIDED:形成了有效建议。(注意:DECIDED 不等于任务成功,也不等于内容合规通过,开发者必须进一步读取具体组件的结果)。
- INCONCLUSIVE / ERROR / CANCELLED / SKIPPED:分别代表判断不足、异常、被取消或被跳过。
3. 轨迹指标评估:JevMetricResult
在事后评估 Agent 轨迹时,它将状态、分类 Label、分数 Score 和可空的 Passed 严格分开。
原则:没有明确“通过策略”的分类指标,绝不应被强制转换成简单的 PASS/FAIL。
四、 敬畏未知:判断不足时保留“不确定性”
在传统的 if-else 编程中,我们习惯于非黑即白。但在 AI 决策中,低置信度、明确否定和请求失败是三种完全不同的情况。 JEV 强调按具体用途处理不确定性,绝不能把“没有有效判断”统一解释为“允许”:
- 工具选择:如果 JEV 判断置信度不足,系统应回退到原始的全量工具候选。
- 执行防护:面对高危受保护操作,判断不足应直接拒绝调用。
- 事后评估:对于无法判断的轨迹,应保留错误或弃权状态,而不是强行打分。
此外,**概率和置信度需要按具体场景进行校准。**特别是当底层使用文本模型模拟概率时,必须保留其“自报值”属性,不能直接将其等同于物理世界中测得的准确率。
五、 快速起步:从你的第一个判断开始
想要快速验证 JEV 的决策逻辑?官方提供了极佳的实践路径:
- 提交测试记录:按照客户端示例,分别提交“退款已完成”与“尚未发起退款”的对话记录,读取 Noul 返回的概率值。
- 加入阈值控制:使用条件评审(Judge API)为概率设定阈值,观察结果的处理逻辑。
- 运行预设场景:直接运行官方提供的 JevApplicationScenarios judge。它使用预设值直观展示了 PASS、FAIL、INCONCLUSIVE 三种结果分支。
注:运行预设场景的目的是帮助开发者确认应用代码的分支逻辑是否正确,而不是为了验证底层模型的准确率。
总结
构建高可靠的 Agent 系统,核心在于对不确定性的精细化管理。AgentScope Java JEV 通过严谨的问题类型定义、清晰的评审与执行状态分离,以及对“判断不足”的妥善处理,为开发者提供了一套工业级的 Agent Harness 构建范式。 不要让大模型在模糊中“猜”答案,用 JEV 让 Agent 的每一次决策都掷地有声!