LiteFlow LiteFlow
首页
  • v2.16.3 (当前版本)
  • 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.3 (当前版本)
  • 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 结果
    • 🌊 流式输出
  • 🎬 演示项目
    • 运行效果
    • 这个项目展示了什么
    • 选择一个组合
    • 获取项目与配置模型
    • 最少依赖的本地 JSON 示例
    • 运行截图中的 MySQL 容器示例
    • Jev 客服分流示例
    • 依赖尚未在 Maven 仓库中可用时
    • 从示例接入自己的业务
  • 🏪 模型配置
  • 📐 结构化输出
  • Jev 智能选择组件

    • Jev 模型与模块介绍
    • 依赖与配置
    • 编写选择组件
    • 置信度与异常处理
    • 客服演示与测试
  • Jev 布尔判断组件

    • Noul 与布尔判断组件
    • 编写布尔组件
  • 会话与记忆

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

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

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

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

🎬 演示项目

完成快速开始后,可以通过 LiteFlow Agent 示例项目体验一个完整的 Agent 应用。从浏览器发起问题,到模型选择 Skill、执行工具、返回答案,再到保存聊天记录和工作区文件,项目提供了可直接运行的前后端代码。

GitHub 地址:bryan31/liteflow-agent-example (opens new window)。项目使用 LiteFlow 2.16.2、JDK 17 和 Spring Boot 4,各模块均可独立构建和运行。

除了 Web 聊天应用,项目还提供 liteflow-agent-jev 决策演示(客服分流、是非判断与自由决策),用于交互测试自然语言选择与是非判断组件,查看置信度、概率与处理时间,详见下方“Jev 客服分流示例”。

# 运行效果

下面是 liteflow-agent-web-container-mysql 的实际运行截图。在聊天框中输入“上周哪个板块表现比较好”,等待 Agent 完成查询和回答后,点击右上角的“容器”状态入口并将鼠标停留在这里,即可查看当前会话的沙箱状态。

LiteFlow Agent MySQL 容器示例:板块表现问答与容器状态弹窗

通过侧栏可以切换历史会话、查看可用技能;聊天区域展示用户问题、执行过程和最终回答;右上角的状态弹窗展示容器 ID、名称、镜像、任务和活动时间。截图中的行情内容仅用于展示这次问答的运行效果,具体结果会随查询时间和数据源变化。

# 这个项目展示了什么

  • 流式对话与执行过程。 页面实时接收回答和工具调用事件,可以展开查看执行过程、工具输入与输出。
  • Skills 驱动任务。 项目内置 byted-stock-monitor 技能,Agent 可以读取技能说明并调用脚本查询行情。替换或增加 Skill 后,可以用于其他业务场景。
  • 会话与工作区持久化。 保存聊天历史、Agent 上下文、工作区文件和附件,支持刷新页面、重启应用后继续使用。
  • Docker 沙箱。 container 模块将命令和文件操作放在容器中执行,页面提供容器状态查看入口。
  • 文件交付。 用户要求生成文件时,Agent 可以调用 deliver_artifact,在回答中提供附件下载入口。
  • LiteFlow 编排。 Agent 是流程中的一个组件,可以与普通 Java 组件一起完成业务处理。
  • Jev 智能选择。 独立客服示例通过 JevSwitchComponent 选择服务组件,展示 SWITCH 路由、置信度阈值与人工兜底。

示例的核心流程定义在 agent/flow.el.xml 中:

<chain name="skillStreamChain">
    THEN(prepare, skillStreamAgent, recordReply);
</chain>

其中,prepare 读取并打印请求,skillStreamAgent 继承 HarnessAgentComponent,负责模型调用、技能使用和工具执行,recordReply 读取回答并写入流程输出。你可以从这条链开始,把前后两个普通组件替换成自己的参数准备、结果入库或业务通知逻辑。

# 选择一个组合

模块 命令运行位置 存储 端口
liteflow-agent-web-local-json 本机 JSON 8905
liteflow-agent-web-local-redis 本机 Redis 8904
liteflow-agent-web-local-mysql 本机 MySQL 8903
liteflow-agent-web-container-json Docker 沙箱 JSON 8902
liteflow-agent-web-container-redis Docker 沙箱 Redis 8901
liteflow-agent-web-container-mysql Docker 沙箱 MySQL 8900
liteflow-agent-jev 不使用命令工具 无需持久化存储 8906

六个 web-* 示例覆盖流式对话、聊天历史、Skills、工作区文件和附件下载。container 表示 Agent 命令使用 Docker 沙箱;JSON/Redis/MySQL 则表示数据如何保存,两者独立选择。Jev 示例独立演示语义分流,不需要配置会话存储或 Docker。

# 获取项目与配置模型

先准备 JDK 17 和 Maven,再获取示例代码:

git clone https://github.com/bryan31/liteflow-agent-example.git
cd liteflow-agent-example

Web 聊天示例默认使用 DeepSeek,可通过环境变量配置模型凭证;Jev 示例使用下文的独立 JEV_API_KEY:

export DEEPSEEK_API_KEY='填写你的 DeepSeek API Key'

也可以在所选模块的 src/main/resources/application-local.yml 中配置模型,具体格式见对应模块的 README。该文件已被项目的 .gitignore 排除。

# 最少依赖的本地 JSON 示例

在示例仓库根目录执行:

mvn -pl liteflow-agent-web-local-json spring-boot:run

启动后访问 http://localhost:8905 (opens new window)。无需数据库或 Docker。示例已开启本地命令执行并配置工作目录;需要运行技能脚本时,确认应用环境中有对应解释器和依赖。

可以提问:“生成一份示例销售数据 CSV,包含商品、数量和金额,并交付文件。”模型调用 deliver_artifact 后,页面会展示下载入口。刷新页面、重启应用后,可以验证聊天历史与附件是否保留。

# 运行截图中的 MySQL 容器示例

这个组合需要 Docker、MySQL 和 liteflow-agent-sandbox:node22 沙箱镜像。先在 LiteFlow 源码仓库 (opens new window)根目录构建镜像:

./liteflow-agent/docker/sandbox/build.sh

完成前面的模型配置后,在示例仓库根目录启动 MySQL 和应用:

docker compose -f liteflow-agent-web-container-mysql/docker-compose.yml up -d --wait
mvn -pl liteflow-agent-web-container-mysql spring-boot:run

访问 http://localhost:8900 (opens new window),新建会话并输入“上周哪个板块表现比较好”。等待回答完成后,点击右上角的“容器”入口,便可查看状态弹窗。展开回答上方的执行过程,还能查看这次查询使用了哪些工具。

MySQL 连接配置位于该模块的 src/main/resources/application.yml,默认与 Docker Compose 一致。如果连接已有 MySQL,调整连接配置即可。

该示例使用 SESSION_IDLE 生命周期,同一会话连续对话会复用容器,空闲 10 分钟后回收。聊天记录和工作区快照保存在 MySQL 中,容器回收后可在后续调用中恢复工作区文件。镜像、快照与容器复用的详细说明见 Docker 沙箱。

完整配置与 API 说明见 MySQL 容器模块 README (opens new window)。

# Jev 客服分流示例

liteflow-agent-jev (opens new window) 展示如何使用 liteflow-agent-jev 模块理解客户诉求,再由 LiteFlow 执行对应组件。Jev 的模型定位与优势见 Jev 模型与模块介绍,完整运行步骤和离线测试见客服演示与测试。

Jev 客服分流演示:输入客户消息并查看执行分支、置信度、概率与处理时间

页面左侧可以输入客户问题,或选择 14 条前端预设消息;右侧展示实际执行分支、原始置信度、各选项概率、执行路径和组件回复。支持退款、换货、物流、发票、投诉、咨询 6 类服务,无法匹配或置信度不足时进入人工协助。翻页还可切换到“是非判断”页:输入判断标准与判断内容,由 Jev 布尔判断组件驱动 IF 分支,展示“是”的概率、阈值与执行路径。

截图中,模型置信度 85% 与换货选项概率 87% 来自不同字段;当前阈值 60% 比较的是置信度。处理时间 328 ms 包含 Jev 网络调用和 LiteFlow 流程执行,端到端耗时 339 ms 还包含浏览器与示例服务之间的请求开销。截图是一条请求的运行结果,不代表准确率或延迟保证。

在示例仓库根目录执行:

export JEV_API_KEY='填写你的 TypeSafe API Key'
mvn -pl liteflow-agent-jev -am clean package -DskipTests
mvn -pl liteflow-agent-jev spring-boot:run

打开 http://localhost:8906/ (opens new window),选择预设问题后点击“开始分流”。也可以输入带否定、意图变化或多个诉求的消息,观察候选概率与最终分支。

默认 provider=typesafe,基础地址为 https://api.typesafe.ai/v1,模型为 jev-1.13.0。通过 OpenRouter 调用时,将 JEV_API_KEY 设为 OpenRouter 的凭据,并使用:

mvn -pl liteflow-agent-jev spring-boot:run -Dspring-boot.run.arguments=--liteflow.agent.jev.provider=openrouter

此时默认基础地址为 https://openrouter.ai/api/alpha,模型为 typesafe/jev-1.13,请求 /decisions。通过 liteflow.agent.jev.base-url、model、timeout 和 min-confidence 配置覆盖连接与分流参数;已显式填写的地址与模型需随 provider 一并检查,完整配置见 Jev 依赖与配置。该示例不需要 DeepSeek Key、数据库或 Docker,也不会执行实际退款或创建外部工单。

流程使用现有选择语法:

<chain name="support">
    SWITCH(supportRouter).to(refund, exchange, logistics, invoice, complaint, consult).DEFAULT(manual);
</chain>

选项及判断说明直接定义在 SupportRouter.choices() 中;例子、展示名称和缩写维护在前端 scenarios.mjs。后端 /api/support/options 只返回选项和运行参数,模型凭据留在服务端。

这个模块用于交互演示和真实接口测试。框架自动化测试则统一放在 LiteFlow 源码仓库的 liteflow-testcase-el/liteflow-testcase-el-agent-jev 中,覆盖 HTTP 协议、路由、降级、异常和超时,不需要真实 API Key。

# 依赖尚未在 Maven 仓库中可用时

先在 LiteFlow 源码仓库安装对应模块:

mvn install -pl liteflow-agent/liteflow-agent-core,liteflow-agent/liteflow-agent-openai,liteflow-agent/liteflow-agent-jev,liteflow-agent/liteflow-agent-mysql,liteflow-agent/liteflow-agent-redis,liteflow-spring-boot4-starter -am -DskipTests

再回到示例仓库运行 mvn clean package。已有同版本旧 JAR 时,也需要重新安装本次源码构建的依赖。

# 从示例接入自己的业务

客服分流场景可从 SupportRouter 开始,调整候选 ID 与判断边界,并把对应服务组件替换为真实业务逻辑。预设问题在前端独立维护,无需为修改例子调整后端 Java 代码。

建议先保留现有聊天界面,替换 SkillStreamAgentCmp 中的模型、系统提示词和业务技能,再按需要调整 skillStreamChain。会话、工作区和存储配置可参考会话存储、工作区与 Skills 技能系统。

示例中的下载接口和附件存储适配代码可作为接入参考;单独引入 Agent 模块不会自动生成 Web 聊天界面或附件下载 API。当前 Web 示例使用配置中的默认用户,接入多用户业务时,应由服务端登录身份确定用户和会话归属。

帮助我们改善此文档 (opens new window)
上次更新: 2026/09/21, 16:34:59
🌊 流式输出
🏪 模型配置

← 🌊 流式输出 🏪 模型配置→

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