LiteFlow LiteFlow
首页
  • v2.16.2 (当前版本)
  • What's New

    • What' s New In LiteFlow v2.16.2?
    • What' s New In LiteFlow v2.16.1?
    • What' s New In LiteFlow v2.16.0?
  • 历史版本

    • v2.15.X
    • v2.13.X
    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 2.16.2 Agent 升级说明
    • 2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
AI Agent
AI Skill
IDEA 插件
  • 答疑解惑

    • 常见问题
    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念?
  • 项目与社区

    • 项目介绍
    • 项目成员
    • 更新记录
    • 参与开发
    • 加入群聊
    • 谁在使用
赞助
GitHub (opens new window)

广告采用随机轮播方式显示 ❤️成为赞助商
首页
  • v2.16.2 (当前版本)
  • What's New

    • What' s New In LiteFlow v2.16.2?
    • What' s New In LiteFlow v2.16.1?
    • What' s New In LiteFlow v2.16.0?
  • 历史版本

    • v2.15.X
    • v2.13.X
    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 2.16.2 Agent 升级说明
    • 2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
AI Agent
AI Skill
IDEA 插件
  • 答疑解惑

    • 常见问题
    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念?
  • 项目与社区

    • 项目介绍
    • 项目成员
    • 更新记录
    • 参与开发
    • 加入群聊
    • 谁在使用
赞助
GitHub (opens new window)
  • 🤖 LiteFlow Agent 简介
  • 快速开始

    • 📦 引入依赖
    • ⚙️ 基本配置
    • 🧩 编写 Agent 组件
    • 📤 获取 Agent 结果
    • 🌊 流式输出
  • 🎬 演示项目
  • 🏪 模型配置
  • 📐 结构化输出
  • Jev 智能选择组件

    • Jev 模型与模块介绍
      • Jev 是什么
      • 用在流程中的优势
      • 模块负责什么
      • 本章内容
    • 依赖与配置
    • 编写选择组件
    • 置信度与异常处理
    • 客服演示与测试
  • 会话与记忆

    • 💬 会话标识
    • 🧠 会话存储
    • 🔄 多轮对话
    • 🗂️ 聊天历史
    • 📝 长对话与长期记忆
  • 工作空间与工具

    • 📂 工作区与执行环境
    • 📄 文件工具与产物
    • 🐚 Shell 工具
    • 🐳 Docker 沙箱
    • 🔧 Java 业务工具
    • 🔌 MCP 工具
  • 🎯 Skills 技能系统
  • 高级编排

    • 🔀 条件路由与并行调用
    • 🤝 多 Agent 协作
    • 🙋 工具调用前人工确认
    • 🧭 子代理与计划
    • 🌐 远程 A2A 调用
  • 运行机制与可观测

    • 🔁 迭代次数与超时
    • 📋 执行日志与事件
    • 🪝 中间件扩展
  • 📖 扩展点速查
  • ⚡ 配置速查
  • 🛡️ 执行与访问边界
  • 🔍 故障排查
  • ⬆️ 升级到 2.16.2
  • AI Agent编排
  • Jev 智能选择组件
铂赛东
2026-09-20
目录

Jev 模型与模块介绍

liteflow-agent-jev 把自然语言判断接入 LiteFlow 的 SWITCH。业务组件提供输入、判断说明和候选 ID,Jev 选择其中一个选项,LiteFlow 再执行对应组件或子链。它适合客服分流、工单分类,以及根据用户意图选择业务流程或 Agent。

本模块从 LiteFlow 2.16.2 开始提供,需要 JDK 17+。

# Jev 是什么

Jev 是 TypeSafe 提供的结构化决策模型,官方称其为 System One 模型。它针对一份输入状态回答范围明确的问题,直接返回程序可读取的选择、评分或概率,适合放在流程的判断环节。TypeSafe 官方介绍 (opens new window)

Jev 提供三类原语:

原语 解决的问题 返回内容
Choice 从已知选项中选择一个,例如退款、换货、咨询 所选选项、各选项概率、置信度
Score 按事先定义的等级评分,例如工单紧急程度 评分、等级概率、置信度
Noul 判断一个条件是否成立,例如是否明确要求退款 条件为真的概率,范围为 0~1

liteflow-agent-jev 当前接入的是 Choice。 每执行一次 JevSwitchComponent,会发起一次选择请求。本模块目前不提供 Score、Noul 组件,也不自动合并多个选择节点的请求。

# 用在流程中的优势

  • 可以处理语义条件。 比如“暂时先不退了,能不能换一件大一号的”,需要理解否定和意图变化,单靠退款、换货关键词容易分错。
  • 输出范围明确。 选择结果来自业务提供的候选集合,框架再校验 ID 是否属于当前 .to(...),不需要从一段自由文本中提取目标组件名。
  • 能表达不确定性。 业务可以根据置信度决定是否自动分流;没有合适选项或置信度不足时,进入 DEFAULT 分支。
  • 调用过程短。 一次分类只请求一次结构化判断,不需要为了选择分支先启动完整的工具调用循环。官方按输入 Token 计费、输出 Token 免费,价格以模型页面 (opens new window)为准;实际耗时仍受输入长度、网络和服务状态影响。

这些优势适用于选项清楚、判断范围有限的任务。复杂的多步推理、回复生成仍可交给后续 Agent;金额计算、时间比较、权限判断等确定性逻辑继续由业务代码处理。Jev 当前主要以英文训练,中文场景应使用自己的数据验证。当前能力边界 (opens new window)、语言支持 (opens new window)

# 模块负责什么

JevSwitchComponent 位于 com.yomahub.liteflow.agent.jev 包,直接继承 NodeSwitchComponent。业务无需实现 processSwitch(),框架负责:

  1. 校验候选 ID、描述和置信度阈值。
  2. 使用独立的 Jev 配置,按 provider 通过 TypeSafe 的 System One 接口或 OpenRouter 的 Decisions API 发起 Choice 请求。
  3. 校验响应,并通过 onDecision() 提供完整的原始结果。
  4. 返回目标 ID,或返回空字符串触发现有的 DEFAULT 机制。

该模块只依赖 liteflow-core,不要求引入 liteflow-agent-core、配置聊天模型、初始化会话存储或启动 Docker。使用 Spring Boot 时,再引入对应的 LiteFlow starter。Jev 的目标可以是普通组件,也可以是已注册的 Agent 组件或子链。

# 本章内容

本章按照接入顺序介绍 Jev 选择组件:

小节 内容
依赖与配置 引入模块,选择 TypeSafe/OpenRouter,配置 API Key、地址、模型、超时与阈值
编写选择组件 声明输入、指令与候选 ID,接入 SWITCH 并获取结果
置信度与异常处理 区分置信度与选项概率,配置人工兜底和异常处理
客服演示与测试 启动浏览器演示,查看运行截图和离线测试命令
帮助我们改善此文档 (opens new window)
📐 结构化输出
依赖与配置

← 📐 结构化输出 依赖与配置→

Theme by Vdoing | Copyright © 2020-2026 铂赛东 | MIT License
沪ICP备18012955号-2