大数据是指规模巨大、类型多样的数据集合,这些数据通过先进的数据处理技术进行分析,可以从中提取有价值的信息和知识。大数据通常具有以下四个特点,即4V:1. **Volume(大量)**:数据量巨大,通常需要PB(皮字节)级别的存储空间。2. **Veloci
摘要:【大数据 & AI】Flink Agents 源码解读 (3) Agent 目录【大数据 & AI】Flink Agents 源码解读 (3) Agent0x00 概要0x01 核心抽象1.1
【大数据 & AI】Flink Agents 源码解读 --- (3) --- Agent
目录【大数据 & AI】Flink Agents 源码解读 --- (3) --- Agent0x00 概要0x01 核心抽象1.1 Agent抽象1.2 Action 抽象1.3 资源抽象1.4 执行环境抽象1.5 事件抽象1.6 配置抽象0x02 Workflow Style Agent 和ReActAgent2.1 特性2.1.1 设计理念2.1.2 控制流2.1.3 定制级别2.1.4 使用场景2.1.5 开发复杂度2.1.6 总结2.2 workflow2.2.1 代码导读准备代理执行环境创建代理与 Flink 集成2.3 ReAct Agent2.3.1 代码导读准备代理执行环境创建 ReAct Agent与 Flink 集成0x03 ReActAgent3.1 定义3.2 深度定制3.2.1 ReActAgent 特色流式处理适配特定的行为模式键控状态支持LLM 集成优化资源管理方式类型信息处理错误处理机制结构化输出支持提示词模板系统工具调用集成运行时协作3.3 典型执行流程3.4 start_action 与 stop_action3.5 输入输出3.5.1 事件驱动架构3.5.2 统一的数据封装3.5.3 支持多种数据类型3.5.4 内置模板支持3.6 模板系统3.6.1 字符串模板3.6.2 消息模板3.7 FunctionTool 与 Action 的关联及注册机制3.7.1 实际转换流程Function Tool 注册到 Agent与模型交互3.7.2 AgentPlan 编译过程中工具的处理用户定义的 Function Tool 转换为 Action内置 Tool Call ActionTOOL_CALL_ACTION 如何编译到AgentPlan3.7.3 工具调用流程3.7.4 完整流程图3.7.5 代码0xFF 参考
0x00 概要
Agent是 Flink Agent 框架的核心概念,它是一个可执行单元,用于处理输入事件并生成输出事件。主要功能和特色如下:
事件驱动处理:基于事件驱动架构,响应不同类型的事件(如 InputEvent,ChatRequestEvent等),通过定义actions来处理特定事件类型。
资源管理:管理各种资源,如聊天模型、工具、提示词等。支持多种资源类型(CHAT_MOEL, TOOL, PROMPT等)。
可扩展性:支持自定义的actions和资源,可以通过继承Agent类来创建特定功能的Agent,如ReActAgent。
配置支持:支持通过配置选项自定义行为,提供统一的配置管理机制。
模块化设计:将功能分解为独立的Actions,每个action负责处理特定类型的事件。
资源抽象:通过 ResourceDescriptor 抽象资源定义,支持不同类型的资源(模型,工具,提示词等)
状态管理:提供短期内存管理机制,支持基于key的状态隔离。
多环境支持:支持本地执行环境用于调试,支持远程 Flink 环境用于生产。
0x01 核心抽象
1.1 Agent抽象
Agent 作为基类提供了:
资源管理(resources 字典)。
Action 注册机制(actions 字典)。
统一的接口供执行环境使用。
