编程 Apache Flink 3.0 深度解析:从实时计算引擎到 Agent Native 基础设施——Agentic Streaming、Flink Agents 与多模态数据湖的完整实战指南

2026-07-06 06:42:31 +0800 CST views 10

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 持续感知外部事件流,逐步推理,自主执行决策。这要求底层基础设施支持事件驱动型的流式处理。

Flink 3.0 的核心理念可以用一句话概括:让 AI Agent 运行在流式事件之上,而不是运行在批处理之上。

具体来说,Flink 3.0 围绕三个技术支柱构建:

  1. Pipeline 流水线架构:CPU 与 GPU 算子在同一条 Pipeline 内统一编排、协同调度,数据通过网络直连传输,消除 Stage 间落盘开销
  2. 全模态数据处理:结构化数据、文本、图像、音视频、传感器信号在同一引擎内统一处理
  3. Flink Agents 框架:专门为事件驱动场景设计的智能体框架,提供海量事件实时处理、上下文记忆管理、Exactly-Once 一致性和高可用容错

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.0RayDaft
Exactly-Once 语义原生支持需自行实现不支持
状态管理TB 级增量 Checkpoint内存对象存储无状态
流批一体原生不支持部分支持
GPU 调度原生算子级任务级
生产成熟度大规模验证中等早期

这是 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

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 算力。


五、与现有技术栈的对比分析

维度Flink 3.0Kafka Streams
定位分布式流处理引擎客户端流处理库
GPU 支持原生
状态管理TB 级增量 CheckpointRocksDB 本地状态
多模态原生支持仅结构化数据
Agent 框架Flink Agents
部署模式集群(Standalone/YARN/K8s)嵌入应用
维度Flink 3.0Spark Structured Streaming
延迟毫秒级秒级(微批处理)
Exactly-Once原生支持但有性能开销
事件时间处理原生完善支持但较复杂
GPU 调度算子级任务级
Agent 支持Flink Agents
维度Flink 3.0Ray
核心场景流式数据处理 + Agent分布式计算
数据一致性Exactly-Once最终一致性
状态管理内建 Checkpoint需外部存储
生产成熟度大规模验证中等
AI 生态通过 MCP/UDF 集成原生 Ray AI

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 的运行时基础设施。

核心价值总结:

  1. 统一的数据底座:通过 Paimon 2.0 和 Fluss 1.0,实现了结构化数据、多模态数据、实时数据、历史数据的统一存储和访问
  2. 原生的 Agent 支持:Flink Agents 框架提供了事件驱动型 Agent 的完整运行时
  3. GPU 算力的高效利用:Pipeline 流水线架构消除了 GPU 闲置问题
  4. MCP 协议的原生集成:Fluss MCP Gateway 让 Agent 可以通过标准协议访问数据
  5. 生产级的可靠性: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 可能有所调整。

推荐文章

Go 单元测试
2024-11-18 19:21:56 +0800 CST
页面不存在404
2024-11-19 02:13:01 +0800 CST
浅谈CSRF攻击
2024-11-18 09:45:14 +0800 CST
PHP解决XSS攻击
2024-11-19 02:17:37 +0800 CST
程序员茄子在线接单