Apache Flink 3.0 深度解析:从实时计算引擎到 Agent Native 基础设施——Agentic Streaming、Flink Agents 与多模态数据湖的完整实战指南
引言:当流计算遇上 AI Agent
2026年6月26日,Flink Forward Asia 2026 在深圳召开,Apache Flink 正式迈入 3.0 时代。这不是一次常规的版本迭代——Flink 从 2.0 的 Cloud Native 全面进化到 3.0 的 Agent Native,标志着实时计算领域最大的一次范式转换。
为什么这件事值得每个后端工程师、数据工程师和 AI 工程师关注?因为 Flink 3.0 回答了一个行业核心问题:当 AI Agent 需要 7×24 小时不间断地感知事件、推理决策、执行动作时,底层数据基础设施应该怎么设计?
本文将从架构演进、核心组件、代码实战、生产案例四个维度,深度拆解 Flink 3.0 的技术全貌。
一、从 BI-Driven 到 AI-Driven:数据处理的底层逻辑正在被重写
1.1 传统数据处理的三个痛点
过去十年,数据处理的核心范式是 BI-Driven:ETL 抽取 → 数据仓库存储 → 报表/仪表盘展示。这套范式在 AI Agent 时代暴露了三个致命问题:
痛点一:Stage-by-Stage 批处理导致 GPU 大量闲置。 传统架构中,数据先落盘、再处理、再落盘,每个 Stage 之间存在调度间歇。当 GPU 参与推理时,这种间歇意味着昂贵的算力在空转。以一个典型的多模态推理 pipeline 为例,传统批处理架构下 GPU 利用率往往不到 30%。
痛点二:结构化数据与多模态数据割裂。 企业数据不再只是行列式的结构化数据——视频、音频、图像、传感器信号、日志流、社交文本等多模态数据正在成为 AI 的主要输入。传统架构中,这些数据分散在不同的存储系统中,维护成本极高。
痛点三:单轮回话 vs 持续感知。 当前大多数 AI Agent 采用"用户提问 → Agent 回答"的单轮批处理模式。但真正的业务场景——金融风控、实时运维、直播分析、舆情监控——需要 Agent 持续感知外部事件流,逐步推理,自主执行决策。这要求底层基础设施支持事件驱动型的流式处理。
1.2 Flink 3.0 的回答:Agentic Streaming for AI
Flink 3.0 的核心理念可以用一句话概括:让 AI Agent 运行在流式事件之上,而不是运行在批处理之上。
具体来说,Flink 3.0 围绕三个技术支柱构建:
- Pipeline 流水线架构:CPU 与 GPU 算子在同一条 Pipeline 内统一编排、协同调度,数据通过网络直连传输,消除 Stage 间落盘开销
- 全模态数据处理:结构化数据、文本、图像、音视频、传感器信号在同一引擎内统一处理
- Flink Agents 框架:专门为事件驱动场景设计的智能体框架,提供海量事件实时处理、上下文记忆管理、Exactly-Once 一致性和高可用容错
二、架构深潜:Flink 3.0 的四层技术栈
Flink 3.0 的技术栈可以分为四层,从底向上依次是:算力层、Runtime 层、算子层、API 层。
2.1 算力层:CPU+GPU 混合调度
Flink 3.0 引入了原生的 GPU 调度能力。与传统的"先用 CPU 处理数据,再调 GPU 做推理"的分离模式不同,Flink 3.0 允许 CPU 算子和 GPU 算子在同一条 Pipeline 内协同执行。
核心设计思路:
// Flink 3.0 中的混合算子 Pipeline 示例(伪代码)
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 配置 GPU 资源
env.getConfig().setGPUResource(new GPUResource(1, "nvidia.com/gpu"));
DataStream<Event> events = env.addSource(new KafkaSource<>());
// CPU 算子:数据预处理
DataStream<ProcessedEvent> processed = events
.map(new DataPreprocessor()) // CPU: 清洗、标准化
.keyBy(Event::getEntityId)
.window(TumblingEventTimeWindows.of(Time.seconds(10)))
.aggregate(new FeatureExtractor()); // CPU: 特征提取
// GPU 算子:模型推理
DataStream<InferenceResult> results = processed
.process(new TensorRTInferenceFunction()) // GPU: TensorRT 推理
.map(new PostProcessor()); // CPU: 后处理
results.sinkTo(new ResultSink());
这里的关键创新是 TensorRTInferenceFunction——Flink 3.0 的算子模型原生支持 GPU 上下文切换,TaskManager 可以根据算子的资源声明自动在 CPU Slot 和 GPU Slot 之间调度。
2.2 Runtime 层:Exactly-Once + 状态管理
Flink 的 Runtime 层一直是其核心竞争力。在 3.0 版本中,Runtime 层针对 AI Agent 场景做了三个关键增强:
增强一:大状态增量 Checkpoint。 Agent 需要维护大量的上下文记忆(对话历史、决策状态、工具调用结果),这些状态可能达到 TB 级别。Flink 3.0 的增量 Checkpoint 机制确保只有变化的状态部分被持久化,Checkpoint 时间从分钟级降到秒级。
增强二:可查询状态(Queryable State)。 Agent 需要低延迟地访问自己的上下文状态。Flink 3.0 的 Queryable State 允许外部系统直接查询 Flink 内部状态,无需经过额外的存储层:
// 将 Agent 状态注册为可查询状态
ValueStateDescriptor<AgentContext> contextDesc =
new ValueStateDescriptor<>("agent-context", AgentContext.class);
contextDesc.setQueryable("agent-context-query"); // 注册为可查询
// Agent 状态窗口函数
public class AgentStateFunction extends KeyedProcessFunction<String, Event, Action> {
private ValueState<AgentContext> context;
@Override
public void open(Configuration parameters) {
context = getRuntimeContext().getState(
new ValueStateDescriptor<>("agent-context", AgentContext.class)
);
}
@Override
public void processElement(Event event, Context ctx, Collector<Action> out) throws Exception {
AgentContext current = context.value();
if (current == null) {
current = AgentContext.initial();
}
// 更新 Agent 上下文
current = current.update(event);
context.update(current);
// 基于上下文做出决策
if (current.shouldAct()) {
out.collect(current.decide());
}
}
}
增强三:Savepoint 兼容性。 Flink 3.0 保证从 2.x 版本的 Savepoint 可以无缝升级到 3.0,这意味着已经在生产环境运行的流处理作业可以零停机迁移到 Agent Native 架构。
2.3 算子层:多模态数据处理
Flink 3.0 在算子层引入了 DataFrame API 的多模态扩展,支持图像、音频、视频等非结构化数据的原生处理:
# PyFlink 多模态数据处理示例
from pyflink.table import EnvironmentSettings, TableEnvironment
from pyflink.table.expressions import col, lit
env_settings = EnvironmentSettings.in_streaming_mode()
t_env = TableEnvironment.create(env_settings)
# 创建多模态数据源表
t_env.execute_sql("""
CREATE TABLE video_streams (
video_id STRING,
frame_data BYTES,
frame_timestamp TIMESTAMP(3),
metadata MAP<STRING, STRING>,
WATERMARK FOR frame_timestamp AS frame_timestamp - INTERVAL '5' SECOND
) WITH (
'connector' = 'kafka',
'topic' = 'video-input',
'properties.bootstrap.servers' = 'kafka:9092',
'format' = 'raw'
)
""")
# 创建 GPU 推理结果表
t_env.execute_sql("""
CREATE TABLE inference_results (
video_id STRING,
frame_timestamp TIMESTAMP(3),
detections ARRAY<ROW<label STRING, confidence FLOAT, bbox ROW<x FLOAT, y FLOAT, w FLOAT, h FLOAT>>>,
processing_time TIMESTAMP(3)
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:postgresql://results-db:5432/inference',
'table-name' = 'results'
)
""")
# 多模态流处理 SQL:窗口聚合 + GPU 推理 UDF
t_env.execute_sql("""
INSERT INTO inference_results
SELECT
video_id,
frame_timestamp,
detect_objects(frame_data) AS detections, -- GPU UDF
PROCTIME() AS processing_time
FROM video_streams
WHERE frame_data IS NOT NULL
""")
与 Ray、Daft 等开源技术栈相比,Flink 3.0 在以下维度具有显著优势:
| 维度 | Flink 3.0 | Ray | Daft |
|---|---|---|---|
| Exactly-Once 语义 | 原生支持 | 需自行实现 | 不支持 |
| 状态管理 | TB 级增量 Checkpoint | 内存对象存储 | 无状态 |
| 流批一体 | 原生 | 不支持 | 部分支持 |
| GPU 调度 | 原生算子级 | 任务级 | 无 |
| 生产成熟度 | 大规模验证 | 中等 | 早期 |
2.4 API 层:Flink Agents 框架
这是 Flink 3.0 最核心的创新。Flink Agents 是专门为事件驱动场景设计的智能体框架,它将 Agent 的生命周期管理、上下文记忆、工具调用、决策执行全部内建在 Flink 的流处理引擎中。
Flink Agents 的核心概念:
- Event Source:事件源,可以是 Kafka Topic、数据库 CDC、传感器信号、API Webhook 等
- Agent Context:Agent 的上下文记忆,存储在 Flink 的 Keyed State 中,支持 TTL 和增量 Checkpoint
- Decision Engine:决策引擎,可以是 LLM 推理、规则引擎、ML 模型等
- Action Sink:动作执行器,可以调用外部 API、写入数据库、发送消息等
- MCP Gateway:原生支持 MCP 协议,Agent 可以通过标准接口调用外部工具
// Flink Agents 应用示例:金融风控 Agent
public class FraudDetectionAgent {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 1. 定义事件源:交易事件流
DataStream<Transaction> transactions = env
.addSource(new KafkaSource<>("transactions", ...))
.map(Transaction::fromBytes);
// 2. 定义 Agent:每个用户一个独立的 Agent 实例
DataStream<Alert> alerts = transactions
.keyBy(Transaction::getUserId)
.process(new AgentProcessFunction<Transaction, Alert>() {
private AgentContext<FraudDetectionState> agentContext;
@Override
public void open(Configuration params) {
// 初始化 Agent 上下文
agentContext = AgentContext.builder()
.stateDescriptor(new ValueStateDescriptor<>(
"fraud-state", FraudDetectionState.class))
.memoryConfig(MemoryConfig.builder()
.maxHistorySize(1000)
.ttl(Duration.ofHours(24))
.build())
.build();
}
@Override
public void processEvent(Transaction txn, Context ctx, Collector<Alert> out) {
// 获取 Agent 状态
FraudDetectionState state = agentContext.get();
// 更新上下文:添加交易到历史
state.addTransaction(txn);
// 决策:调用 LLM 或规则引擎
FraudDecision decision = evaluateFraudRisk(txn, state);
if (decision.isFraudulent()) {
Alert alert = Alert.builder()
.userId(txn.getUserId())
.transactionId(txn.getId())
.riskScore(decision.getRiskScore())
.reason(decision.getReason())
.timestamp(System.currentTimeMillis())
.build();
out.collect(alert);
// 触发后续动作:冻结账户
ctx.output(actionOutput, new FreezeAccount(txn.getUserId()));
}
// 保存状态
agentContext.update(state);
}
});
// 3. 定义动作 Sink
alerts.addSink(new AlertNotificationSink());
alerts.getSideOutput(actionOutput).addSink(new AccountActionSink());
env.execute("Fraud Detection Agent Pipeline");
}
}
三、数据底座:Apache Paimon 2.0 与 Apache Fluss 1.0
Flink 3.0 不是孤立的——它与两个 Apache 孵化项目共同构成了完整的 Agentic 数据底座。
3.1 Apache Paimon 2.0:Agentic Lake
Apache Paimon 是从 Flink 社区孵化的数据湖项目,2.0 版本的核心定位是 Agent 友好的统一多模态数据湖。
Paimon 2.0 的关键特性:
Git For Table:数据版本管理。每个表都有完整的版本历史,支持回滚、分支、合并。这对于 Agent 的决策回溯和审计至关重要——当 Agent 做出一个错误决策时,可以精确回溯到决策时刻的数据快照。
全局向量全文标量索引:Paimon 2.0 在存储层内置了向量索引、全文索引和标量索引,一份数据可以同时支持结构化 SQL 查询、全文搜索和向量相似度搜索。这意味着 Agent 可以在同一个数据底座上完成"查最新交易记录"、"搜索相关文档"、"找到语义相似的历史案例"三种操作。
REST 和 CLI 接口:Paimon 2.0 提供标准的 REST API 和 CLI 工具,不仅支持 Flink 和 Spark 读写,还支持 PyTorch 直接读取训练数据,打通了大数据引擎与 AI 引擎的全链路生态。
-- Paimon 2.0 多模态表创建示例
CREATE CATALOG paimon_catalog WITH (
'type' = 'paimon',
'warehouse' = 's3://data-lake/paimon'
);
USE CATALOG paimon_catalog;
-- 创建支持向量索引的多模态表
CREATE TABLE agent_knowledge_base (
doc_id STRING,
content STRING,
embedding ARRAY<FLOAT>, -- 向量嵌入
metadata MAP<STRING, STRING>,
created_at TIMESTAMP(3),
PRIMARY KEY (doc_id) NOT ENFORCED
) WITH (
'merge-engine' = 'deduplicate',
'vector-index.enabled' = 'true',
'vector-index.dimension' = '1536',
'vector-index.metric' = 'cosine',
'full-text-index.enabled' = 'true',
'full-text-index.columns' = 'content'
);
3.2 Apache Fluss 1.0:Real-Time Context for AI Agents
Apache Fluss 是从 Flink 社区孵化的流存储项目,1.0 版本的核心定位是 面向 Agent 的实时上下文层。
Fluss 1.0 的四大核心能力:
Lakestream:统一实时数据与历史数据。Agent 需要同时访问"刚刚发生的事件"和"历史数据",Fluss 的 Lakestream 机制将两者统一在一个存储层中,确保上下文的新鲜度和完整度。
Context Serving:低延迟上下文访问。Fluss 提供毫秒级的上下文查询能力,Agent 在做决策时可以实时检索相关上下文。
Semantic View:可治理、可审计、可追溯的语义层。Fluss 允许定义语义视图,将原始数据映射为 Agent 可理解的业务语义。
MCP Gateway:这是最值得关注的特性——Fluss 1.0 内置了 MCP(Model Context Protocol)网关,Agent 可以通过标准的 MCP 协议直接访问 Fluss 中的数据,无需编写额外的集成代码。
# Fluss MCP Gateway 配置示例
mcp-gateway:
enabled: true
port: 8080
tools:
- name: query_latest_events
description: "查询最新的事件流数据"
parameters:
topic:
type: string
description: "事件主题"
limit:
type: integer
default: 100
handler:
type: fluss-query
sql: "SELECT * FROM ${topic} ORDER BY event_time DESC LIMIT ${limit}"
- name: get_user_context
description: "获取用户的完整上下文"
parameters:
user_id:
type: string
handler:
type: fluss-query
sql: "SELECT * FROM user_context WHERE user_id = ${user_id}"
- name: search_similar_cases
description: "搜索相似的历史案例"
parameters:
query_embedding:
type: array
items: { type: number }
top_k:
type: integer
default: 5
handler:
type: vector-search
table: case_embeddings
metric: cosine
四、生产实战:大厂如何用 Flink 3.0
4.1 淘宝闪购:实时决策引擎
淘宝闪购使用 Fluss 构建了实时决策引擎,支撑免单活动、618 大促等高并发场景。核心数据:
- 存储规模:1.4PB
- 网络 IO 减少:67%
- 研发运维成本下降:50%
技术架构:
[用户行为事件] → [Kafka] → [Flink + Fluss] → [实时决策引擎]
↓
[Agent Context Store]
↓
[实时标签计算] → [推荐系统]
关键设计决策:
- 使用 Fluss 的 Keyed Table 存储用户画像,实现毫秒级的用户上下文查询
- 利用 Flink 的窗口聚合能力,实时计算用户行为模式
- 通过 Agent Context 管理每个用户的决策状态
4.2 小红书:索引链路从 Kafka 迁移到 Fluss
小红书将索引链路从 Kafka 迁移到 Fluss,取得了显著的性能提升:
| 指标 | Kafka 方案 | Fluss 方案 | 提升幅度 |
|---|---|---|---|
| 写入 CPU | 基准 | 降低 30% | 30% |
| 写入流量 | 基准 | 降低 50% | 50% |
| 在线带宽 | 基准 | 节省 30%-90% | 30-90% |
| 峰值吞吐 | 基准 | 提升约 3 倍 | 3x |
核心优化点:
- Arrow 格式写入:利用 Apache Arrow 的列式内存格式,减少序列化开销
- 按列读取:只读取需要的列,减少 IO
- 湖流一体:实时数据和历史数据统一存储,消除 ETL 链路
4.3 NVIDIA 合作:多模态实时流处理加速
NVIDIA 与阿里云在 Flink 3.0 上的深度合作主要体现在以下方面:
- NVIDIA VideoCodec:视频编解码 GPU 加速,Flink 算子可以直接调用 GPU 进行视频帧解码
- nvImageCodec:图像编解码 GPU 加速
- CV-CUDA:计算机视觉 GPU 加速库
- TensorRT LLM / vLLM / SGLang:LLM 推理 GPU 加速
这些加速库通过 Flink 的 GPU 算子接口集成,使得端到端的多模态处理 Pipeline 可以充分利用 GPU 算力。
五、与现有技术栈的对比分析
5.1 Flink 3.0 vs Kafka Streams
| 维度 | Flink 3.0 | Kafka Streams |
|---|---|---|
| 定位 | 分布式流处理引擎 | 客户端流处理库 |
| GPU 支持 | 原生 | 无 |
| 状态管理 | TB 级增量 Checkpoint | RocksDB 本地状态 |
| 多模态 | 原生支持 | 仅结构化数据 |
| Agent 框架 | Flink Agents | 无 |
| 部署模式 | 集群(Standalone/YARN/K8s) | 嵌入应用 |
5.2 Flink 3.0 vs Apache Spark Structured Streaming
| 维度 | Flink 3.0 | Spark Structured Streaming |
|---|---|---|
| 延迟 | 毫秒级 | 秒级(微批处理) |
| Exactly-Once | 原生 | 支持但有性能开销 |
| 事件时间处理 | 原生完善 | 支持但较复杂 |
| GPU 调度 | 算子级 | 任务级 |
| Agent 支持 | Flink Agents | 无 |
5.3 Flink 3.0 vs Ray
| 维度 | Flink 3.0 | Ray |
|---|---|---|
| 核心场景 | 流式数据处理 + Agent | 分布式计算 |
| 数据一致性 | Exactly-Once | 最终一致性 |
| 状态管理 | 内建 Checkpoint | 需外部存储 |
| 生产成熟度 | 大规模验证 | 中等 |
| AI 生态 | 通过 MCP/UDF 集成 | 原生 Ray AI |
六、快速上手:搭建你的第一个 Flink Agent
6.1 环境准备
# 下载 Flink 3.0(当前为预览版)
wget https://downloads.apache.org/flink/flink-3.0.0-preview/flink-3.0.0-preview-bin-scala_2.12.tgz
tar xzf flink-3.0.0-preview-bin-scala_2.12.tgz
cd flink-3.0.0-preview
# 启动本地集群
./bin/start-cluster.sh
# 下载 Fluss 1.0
wget https://fluss.apache.org/downloads/fluss-1.0.0-bin.tgz
tar xzf fluss-1.0.0-bin.tgz
# 启动 Fluss Coordinator
./fluss-1.0.0/bin/coordinator.sh start
# 启动 Fluss Tablet Server
./fluss-1.0.0/bin/tablet-server.sh start
6.2 创建 Agent 项目
<!-- pom.xml -->
<project>
<groupId>com.example</groupId>
<artifactId>flink-agent-demo</artifactId>
<version>1.0</version>
<properties>
<flink.version>3.0.0-preview</flink.version>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-agents</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-connector</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
6.3 编写一个简单的事件驱动 Agent
package com.example.agent;
import org.apache.flink.agents.api.*;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.connector.kafka.source.KafkaSource;
import org.apache.flink.api.common.eventtime.WatermarkStrategy;
public class SimpleEventAgent {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 事件源:监控系统告警
KafkaSource<AlertEvent> alertSource = KafkaSource.<AlertEvent>builder()
.setBootstrapServers("kafka:9092")
.setTopics("system-alerts")
.setGroupId("agent-consumer")
.setValueOnlyDeserializer(new AlertEventDeserializer())
.build();
DataStream<AlertEvent> alerts = env.fromSource(
alertSource,
WatermarkStrategy.forMonotonousTimestamps(),
"Alert Source"
);
// Agent 处理:每个服务一个 Agent 实例
DataStream<AgentAction> actions = alerts
.keyBy(AlertEvent::getServiceName)
.process(new AlertAgentProcessor());
// 输出动作
actions.addSink(new ActionExecutor());
env.execute("Simple Event-Driven Agent");
}
}
// Agent 处理逻辑
public class AlertAgentProcessor
extends KeyedProcessFunction<String, AlertEvent, AgentAction> {
private ValueState<ServiceContext> contextState;
@Override
public void open(Configuration params) {
contextState = getRuntimeContext().getState(
new ValueStateDescriptor<>("service-context", ServiceContext.class)
);
}
@Override
public void processElement(AlertEvent alert, Context ctx, Collector<AgentAction> out)
throws Exception {
ServiceContext context = contextState.value();
if (context == null) {
context = new ServiceContext(alert.getServiceName());
}
// 记录告警到上下文
context.addAlert(alert);
// 决策逻辑
AgentAction action = context.evaluate();
if (action != null) {
out.collect(action);
}
contextState.update(context);
}
}
七、架构设计启示:如何构建事件驱动型 Agent
从 Flink 3.0 的设计中,我们可以提炼出构建事件驱动型 Agent 的四个核心原则:
7.1 原则一:状态即记忆
Agent 的上下文记忆应该存储在流处理引擎的 Keyed State 中,而不是外部数据库。这样做的好处:
- 毫秒级访问延迟
- 自动与事件流对齐
- 通过 Checkpoint 保证一致性
- 通过 TTL 自动清理过期记忆
7.2 原则二:事件即输入
Agent 的输入应该是持续的事件流,而不是单次的请求。这要求:
- 事件源支持多种协议(Kafka、Pulsar、gRPC Stream、WebSocket)
- 事件时间处理保证时序正确性
- Watermark 机制处理乱序事件
7.3 原则三:动作即输出
Agent 的输出应该是具体可执行的动作,而不是文本回复。这要求:
- 动作 Sink 支持多种目标(API 调用、数据库写入、消息发送)
- 动作执行的幂等性保证
- 失败重试和死信队列
7.4 原则四:一致性即信任
Agent 的决策必须基于一致的数据视图。这要求:
- Exactly-Once 语义保证事件不丢失、不重复
- Checkpoint 机制支持状态回滚
- 审计日志记录每个决策的数据依据
八、总结与展望
Apache Flink 3.0 的发布标志着实时计算领域进入了一个新的时代。从 Cloud Native 到 Agent Native,Flink 不再只是一个数据处理引擎,而是成为了 AI Agent 的运行时基础设施。
核心价值总结:
- 统一的数据底座:通过 Paimon 2.0 和 Fluss 1.0,实现了结构化数据、多模态数据、实时数据、历史数据的统一存储和访问
- 原生的 Agent 支持:Flink Agents 框架提供了事件驱动型 Agent 的完整运行时
- GPU 算力的高效利用:Pipeline 流水线架构消除了 GPU 闲置问题
- MCP 协议的原生集成:Fluss MCP Gateway 让 Agent 可以通过标准协议访问数据
- 生产级的可靠性:Exactly-Once 语义、增量 Checkpoint、高可用容错
未来展望:
- Flink Agents 框架将逐步开放更多 Agent 协作模式(多 Agent 协商、Agent 编排)
- Paimon 和 Fluss 将进一步融合,形成统一的 Agentic Lake 架构
- MCP Gateway 将支持更多工具协议(A2A、Tool Calling 等)
- GPU 调度将支持更细粒度的算子级资源管理
对于开发者来说,现在是了解和学习 Flink 3.0 的最佳时机。当 AI Agent 从"玩具"走向"生产",具备流处理 + Agent 运行时双重能力的工程师,将成为最稀缺的技术人才。
本文基于 Flink Forward Asia 2026(2026年6月26日,深圳)公开技术资料整理,部分代码示例基于 Flink 3.0 Preview API 编写,正式版 API 可能有所调整。