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 结果
    • 🌊 流式输出
  • 🎬 演示项目
  • 🏪 模型配置
  • 📐 结构化输出
  • Jev 智能选择组件

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

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

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

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

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

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

🧩 编写 Agent 组件

# 创建组件

在 Spring Boot 扫描范围内创建 ChatAgentCmp.java:

import com.yomahub.liteflow.agent.context.LiteFlowAgentContext;
import com.yomahub.liteflow.agent.harness.component.HarnessAgentComponent;
import com.yomahub.liteflow.agent.model.ModelSpec;
import com.yomahub.liteflow.agent.openai.DeepSeek;
import org.springframework.stereotype.Component;

@Component("chatAgent")
public class ChatAgentCmp extends HarnessAgentComponent {

    @Override
    protected ModelSpec<?> model() {
        return DeepSeek.of("deepseek-flash").stream(true);
    }

    @Override
    protected String systemPrompt() {
        return "你是一个简洁的助手,用中文回答。";
    }

    @Override
    protected String userPrompt(LiteFlowAgentContext context) {
        Object input = getSlot().getChainReqData(getSlot().getChainId());
        return input == null ? "" : input.toString();
    }

    @Override
    protected boolean enableShellTool() {
        return false;
    }
}

model() 选择模型,systemPrompt() 定义职责,userPrompt(context) 取得本次输入。采样参数沿用模型默认值。enableShellTool() 关闭命令工具,需要执行脚本时按 Shell 工具 开启。

# 将组件加入流程

创建 src/main/resources/agent/flow.el.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE flow PUBLIC "liteflow" "liteflow.dtd">
<flow>
    <chain name="chatChain">
        THEN(chatAgent);
    </chain>
</flow>

EL 中的 chatAgent 与组件的 Spring Bean 名一致。

# 组件方法的调用时机

model() 选择模型,systemPrompt() 定义固定职责,userPrompt(LiteFlowAgentContext context) 为每次调用提供输入。模型、工具和中间件等声明在运行时构建时装配,不要在其中缓存某个请求的数据。

框架会在自定义系统提示词前加入默认行为说明:使用用户提问的语言回答,在工具调用前给出简短的动作说明。需要按本次请求补充系统提示词时,使用 transformSystemPrompt(prompt, context)。

process() 由框架统一管理,不需要覆写。组件获得的 LiteFlowAgentContext 对应本次调用,可读取会话 ID、节点 ID、请求 ID,以及完成调用后的 Token 用量;不要把它保存在组件实例字段中供下一次请求使用。

下一步:获取 Agent 结果,或直接接入流式输出。

帮助我们改善此文档 (opens new window)
上次更新: 2026/09/20, 11:49:27
⚙️ 基本配置
📤 获取 Agent 结果

← ⚙️ 基本配置 📤 获取 Agent 结果→

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