Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Desenvolvendo Flink Agents (Beta)

Última atualização: Sep 29, 2026

O Realtime Compute for Apache Flink suporta o desenvolvimento de jobs de agentes de IA em streaming e orientados a eventos, com base no framework de código aberto Apache Flink Agents. Este documento explica os conceitos principais do Flink Agents e aborda requisitos de versão, guia de início rápido, desenvolvimento personalizado, envio de jobs e gerenciamento de dependências.

Visão geral

O Apache Flink Agents é um novo subprojeto da comunidade Apache Flink para criar agentes de IA orientados a eventos. Ele utiliza o motor de streaming consolidado do Flink para trazer capacidades distribuídas, com estado, tolerantes a falhas e de streaming para os agentes de IA, tornando-os prontos para ambientes de produção corporativos.

O Flink Agents inclui módulos integrados para chamadas de grandes modelos de linguagem (LLM), uso de ferramentas, gerenciamento de memória, orquestração dinâmica e observabilidade. Com esses recursos, você cria rapidamente agentes de IA de grande escala, em execução contínua e confiáveis para produção.

O Flink Agents oferece as seguintes vantagens principais:

Capacidade

Descrição

Coordenação distribuída

O framework fornece capacidades principais como roteamento de eventos, particionamento, consistência de estado distribuído e recuperação automática de falhas, eliminando a necessidade de gerenciar várias réplicas de agentes.

Memória com estado

O Flink State gerencia a memória do agente. Ela é persistida, restaurada e redistribuída automaticamente durante os checkpoints, eliminando a necessidade de um sistema de armazenamento externo para manter a consistência do estado.

Processamento de streaming

Conforme os eventos chegam continuamente, os agentes respondem em tempo real. O motor de processamento de streaming do Flink fornece um núcleo de alto throughput e baixa latência para esse modelo operacional.

Confiabilidade de produção

Os checkpoints distribuídos permitem a recuperação automática de falhas de nó com garantias de processamento exactly-once, assegurando que não haja perda de dados ou eventos.

Tipos de agente

Você pode criar agentes de Workflow ou ReAct para diferentes casos de uso.

Tipo

Casos de uso

Descrição

Workflow Agent

Cenários com processos bem definidos

Orquestra o comportamento do agente por meio de um workflow predefinido e orientado a eventos. Para mais informações, consulte Workflow Agent.

ReAct Agent

Cenários que exigem tomada de decisão flexível

Combina Raciocínio e Ação, e permite que o LLM determine autonomamente as etapas de execução. Para mais informações, consulte ReAct Agent.

Versões e modelos

  • Ao enviar um job do Flink Agents, selecione a versão do motor VVR VVR-11.7 ou posterior. Caso contrário, o job falha por ausência de dependências de tempo de execução.

    Versão do motor VVR

    Versão do Flink

    Versão do Flink Agents

    vvr-11.7.0-flink-1.20

    1.20

    0.2.1

  • A plataforma fornece os modelos. Você não precisa solicitar uma chave de API separada para usá-los em seu job. Este recurso está em Beta e requer acesso por meio de uma lista de permissões. Para mais informações, consulte Flink AI Service (Built-in Models).

Pré-requisitos

  • product e permissões

    • Ative o Realtime Compute for Apache Flink e crie um workspace. Para mais informações, consulte Activate Realtime Compute for Apache Flink.

    • Se usar um usuário RAM ou uma função RAM, você deverá ter as permissões necessárias para o console do Flink. Para mais informações, consulte Permission management.

  • Ambiente de desenvolvimento local

    • Python: Python 3.10 ou 3.11.

    • Java: Java 11+ e Maven 3+.

Início rápido

Esta seção usa um exemplo de análise de avaliações de product para guiar você por todo o processo. Você criará um job de exemplo do Flink com um agente de análise de avaliações por meio do framework Flink Agents. Quando o job é executado, o agente chama o service de grandes modelos de linguagem (LLM) integrado do Flink para analisar as avaliações dos produtos e gera uma pontuação de satisfação (de 1 a 5) e os motivos de qualquer insatisfação.

Etapa 1: Baixe os arquivos do job de exemplo

Job em Python

Primeiro, baixe o quickstart-python.zip, que contém os seguintes arquivos:

Arquivo

Descrição

main.py

O ponto de entrada do job. Ele cria o ambiente de execução, registra a conexão do LLM e constrói o pipeline de processamento de streaming.

review_analysis_agent.py

A implementação do agente. Ela define o modelo de prompt, a configuração do ChatModel e a lógica de tratamento de ações.

Por favor, envie o pacote ZIP baixado diretamente, sem precisar descompactá-lo. As dependências Python usadas neste exemplo, como openai e dashscope, já estão pré-instaladas na imagem do motor VVR.

Job em Java

Baixe os seguintes arquivos:

Arquivo

Descrição

quickstart-java.jar

Um JAR fat de teste para envio direto.

quickstart-java-src.zip

O código-fonte Java, fornecido para referência.

Etapa 2: Envie e implante o job

  1. Em seguida, acesse o console do Realtime Compute for Apache Flink.

  2. Na coluna Actions do workspace de destino, clique em Console.

  3. No painel de navegação à esquerda, clique em File Management e, em seguida, clique em Upload Resource para enviar os arquivos do job baixados.

  4. Na página Operations > Jobs, clique em Deploy Job. Selecione Python Job ou JAR Job conforme o tipo do seu job e preencha as informações de implantação.

Configuração do job em Python

Parâmetro

Exemplo

Deployment mode

Streaming mode

Deployment name

flink-agents-quickstart-python

Engine version

vvr-11.7.0-flink-1.20

Python file address

quickstart-python.zip

Entry module

quickstart.main

Deployment target

default-queue

Configuração do job em Java

Importante

Envie também o arquivo de dependência adicional flink-agents-dist.jar.

Parâmetro

Exemplo

Deployment mode

Streaming mode

Deployment name

flink-agents-quickstart-java

Engine version

vvr-11.7.0-flink-1.20

JAR URI

quickstart-java.jar

Entry point class

org.apache.flink.agents.quickstart.Main

Additional dependency file

flink-agents-dist.jar

Deployment target

default-queue

Parâmetros de tempo de execução

Acesse Deployment Details > Runtime parameter configuration > edite > Other Configurations e adicione os itens de configuração do Flink.

  • Job em Python

    python.executable: python3.10
    python.client.executable: python3.10
    containerized.master.env.FLINK_HOME: /flink
    containerized.taskmanager.env.FLINK_HOME: /flink
    classloader.parent-first-patterns.default: java.;scala.;com.esotericsoftware.kryo;org.apache.hadoop.;javax.annotation.;org.xml;javax.xml;org.apache.xerces;org.w3c;org.rocksdb.;org.slf4j;org.apache.log4j;org.apache.logging;org.apache.commons.logging;ch.qos.logback
  • Job em Java

    classloader.parent-first-patterns.default: java.;scala.;com.esotericsoftware.kryo;org.apache.hadoop.;javax.annotation.;org.xml;javax.xml;org.apache.xerces;org.w3c;org.rocksdb.;org.slf4j;org.apache.log4j;org.apache.logging;org.apache.commons.logging;ch.qos.logback

    Descrição dos parâmetros

    Parâmetro

    Descrição

    python.executable / python.client.executable

    Especifica a versão do interpretador Python (apenas para jobs em Python).

    containerized.{master,taskmanager}.env.FLINK_HOME

    Define a variável de ambiente FLINK_HOME para o JobManager e os TaskManagers (apenas para jobs em Python).

    classloader.parent-first-patterns.default

    Define os prefixos dos nomes de pacotes carregados primeiro a partir do ClassLoader pai.

    Nota

    Configure a variável de ambiente com os prefixos containerized.master.env. e containerized.taskmanager.env. para garantir sua disponibilidade tanto para o JobManager quanto para os TaskManagers.

Etapa 3: Execute o job e visualize os resultados

  1. Na página Operations > Jobs, localize o seu job e clique em Start na coluna Actions.

  2. Na caixa de diálogo Start Job, selecione stateless start e clique em Start.

  3. O exemplo usa uma fonte de dados em memória; portanto, o job termina automaticamente após a conclusão do processamento. Aguarde o status mudar para finished e clique no nome do job para acessar a página de detalhes.

  4. Na aba TaskManager, visualize os logs e pesquise a palavra-chave Review analysis result: para conferir a saída.

Nota

Em ambientes de produção, você normalmente usa uma fonte de dados de streaming como o Apache Kafka e o job é executado continuamente.

Desenvolvendo um agente personalizado

Instale o Flink Agents

Python

Recomendamos usar um ambiente virtual (use o comando source para ativá-lo):

python3 -m venv flink-agents-env
source flink-agents-env/bin/activate
pip install flink-agents       

Para mais informações, consulte o Guia de Instalação do Flink Agents.

Java

Adicione a seguinte dependência ao seu arquivo pom.xml:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-agents-api</artifactId>
    <version>${flink-agents.version}</version>
    <scope>provided</scope>
</dependency>
Nota

Declare as dependências do Flink Agents com <scope>provided</scope>, pois o motor VVR já as fornece.

Para depurar na sua IDE local, adicione a seguinte dependência:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-agents-ide-support</artifactId>
    <version>${flink-agents.version}</version>
    <scope>provided</scope>
</dependency>

Criando o agente

A estrutura principal de um job do Flink Agents é a seguinte:

  1. Registre uma conexão de LLM: registre uma conexão ChatModel usando o AgentsExecutionEnvironment. Configure a classe do service de modelo integrado do Flink com um ResourceDescriptor. Para mais informações, consulte Modelos de Chat. Exemplo:

    @chat_model_connection
    @staticmethod
    def openai_connection() -> ResourceDescriptor:
        return ResourceDescriptor(
            clazz="flink_agents.integrations.chat_models.openai.openai_chat_model.OpenAIChatModelConnection"
        )
    
    @chat_model_setup
    @staticmethod
    def openai_chat_model() -> ResourceDescriptor:
        return ResourceDescriptor(
            clazz="flink_agents.integrations.chat_models.openai.openai_chat_model.OpenAIChatModelSetup",
            connection="openai_connection",
            model="qwen3.7-flash",
            temperature=0.7
        )
  2. Defina o agente: implemente seu agente personalizado, configure o modelo de prompt e defina a lógica de tratamento de eventos com a anotação @action (Python) ou @Action (Java).

  3. Construa o pipeline: conecte o fluxo de dados de entrada ao agente para processamento e gere os resultados da análise.

Para mais informações sobre conceitos como agente, prompt, ferramenta e memória, consulte a documentação de desenvolvimento do Flink Agents.

Testes locais

O Flink MiniCluster lida com os testes locais automaticamente, eliminando a necessidade de implantar um cluster separado.

Python

python your_agent_job.py        

Java

mvn exec:java -Dexec.mainClass="com.example.YourAgentJob"       

Para mais informações, consulte a documentação de implantação do Flink Agents.

Gerencie dependências

Dependências pré-instaladas

A imagem do motor VVR já inclui as bibliotecas principais do Flink Agents e algumas dependências relacionadas pré-instaladas.

Dependências de Python

Dependência

Descrição

flink-agents core library

A API Python do Flink Agents

openai

Interface compatível com OpenAI (inclui a plataforma Model Studio)

dashscope

alibaba cloud model studio (interface nativa para Qwen)

mcp

Model Context Protocol

Envie as dependências não pré-instaladas junto com o seu job. Para mais informações, consulte Manage Python dependencies.

Dependências de Java

O motor VVR contém apenas o JAR thin do Flink Agents (código principal). Empacote as dependências de terceiros para todas as integrações de LLM no JAR do job.

Ao implantar o job, além do seu JAR fat de negócios, envie também o flink-agents-dist.jar como dependência adicional. Esse JAR contém o tempo de execução do Flink Agents e todas as integrações suportadas pela comunidade, sendo também necessário para jobs de Agent personalizados.

Gerencie dependências de jobs em Java

Use o maven-shade-plugin para empacotar seu job em um JAR fat. Configure o escopo da dependência de acordo com as seguintes regras:

  • Dependências principais do Flink Agents (como flink-agents-api e flink-agents-runtime): defina o escopo como <scope>provided</scope> e não as empacote no JAR fat.

  • Dependências principais do Flink (como flink-streaming-java): defina o escopo como <scope>provided</scope>.

  • Dependências de integração de LLM: trate-as com base nos seguintes casos.

    • Para integrações já suportadas pela comunidade Flink Agents (como OpenAI e Anthropic): defina o escopo como <scope>provided</scope> e não as empacote no JAR fat. Para a lista completa das integrações suportadas no Flink Agents 0.2.1, consulte Provedores Integrados.

    • Para integrações ainda não suportadas pela comunidade: defina o escopo como <scope>compile</scope> e empacote-as no JAR fat.

  • Bibliotecas que entram em conflito com o Flink (como Jackson): configure o relocation no maven-shade-plugin.

Para um exemplo completo de configuração do pom.xml, consulte o arquivo quickstart-java-src.zip.

Enviando jobs para o Realtime Compute for Flink

Job em Python

O processo de envio é o mesmo de um job PyFlink padrão. Para mais informações, consulte Desenvolver um job em Python. Os principais parâmetros são:

Parâmetro

Descrição

Engine version

Selecione uma versão do motor VVR com suporte ao Flink Agents. Para versões específicas, consulte a seção 'Versões e modelos'.

Python file address

O arquivo Python de entrada do job ou o pacote ZIP.

Entry module

O nome do módulo de entrada do pacote ZIP.

Python libraries

Dependências adicionais.

Job em Java

O processo de envio é o mesmo de um job JAR do Flink padrão. Para mais informações, consulte Desenvolver um job JAR. Os principais parâmetros são:

Parâmetro

Descrição

Engine version

Selecione uma versão do motor VVR com suporte ao Flink Agents. Para versões específicas, consulte a seção 'Versões e modelos'.

JAR URI

O caminho para o JAR fat.

Entry point class

O nome totalmente qualificado da classe de entrada do job.

Parâmetros de tempo de execução comuns

Versão do interpretador Python

A imagem do motor VVR usa o Python 3.9 por padrão, mas o Flink Agents requer o Python 3.10 ou 3.11. Configure o seguinte para um job em Python:

python.executable: python3.10
python.client.executable: python3.10
containerized.master.env.FLINK_HOME: /flink
containerized.taskmanager.env.FLINK_HOME: /flink

Variáveis de ambiente personalizadas

Se o código do seu job lê configurações de variáveis de ambiente (como uma url de endpoint ou seleção de modelo), defina as variáveis para os processos do JobManager e do TaskManager usando seus respectivos prefixos:

containerized.master.env.<ENV_VAR_NAME>: <value>
containerized.taskmanager.env.<ENV_VAR_NAME>: <value>        

Exemplo de troca de modelos:

containerized.master.env.OPENAI_MODEL: qwen3.6-flash
containerized.taskmanager.env.OPENAI_MODEL: qwen3.6-flash