How apache/flink-agents works
Apache Flink Agents is a framework for building AI agents that execute with Flink. Users configure agents and resources, then events trigger planned actions such as chat-model calls, tool use, and context retrieval; results are emitted as events. The runtime provides durable execution and state recovery, while optional integrations supply model, vector-store, and MCP implementations. Skills extend agent context, and Python APIs and actions support cross-language use. The graph follows the documented context-retrieval and durable-state behavior; other links are limited to relationships visible in the supplied excerpts or source index.
Main entry points: ContextRetrievalAction.java Context Retrieval · AgentPlan.java Agent Plan · AgentBuilder.java Agent Builder · ChatModelAction.java Chat Action
Components 19
Agent API
- Agent Builder
api/src/main/java/org/apache/flink/agents/api/AgentBuilder.java - Event Model
api/src/main/java/org/apache/flink/agents/api/Event.java - Resource API
api/src/main/java/org/apache/flink/agents/api/resource/ResourceContext.java - Chat Messages
api/src/main/java/org/apache/flink/agents/api/chat/messages/ChatMessage.java
Plans and Actions
- Agent Plan
plan/src/main/java/org/apache/flink/agents/plan/AgentPlan.java - Chat Action
plan/src/main/java/org/apache/flink/agents/plan/actions/ChatModelAction.java - Tool Actions
plan/src/main/java/org/apache/flink/agents/plan/actions/ToolCallAction.java - Context Retrieval
plan/src/main/java/org/apache/flink/agents/plan/actions/ContextRetrievalAction.java - Model Routing
plan/src/main/java/org/apache/flink/agents/plan/routing/ModelRoutingResolver.java
Flink Runtime
- Durable Execution
runtime/src/main/java/org/apache/flink/agents/runtime/operator/DurableExecutionManager.java - Action State Store
runtime/src/main/java/org/apache/flink/agents/runtime/operator/DurableExecutionManager.java
Model Integrations
- Chat Models
integrations/chat-models/openai/src/main/java/org/apache/flink/agents/integrations/chatmodels/openai/OpenAICompletionsConnection.java - Embedding Models
integrations/embedding-models/openai/src/main/java/org/apache/flink/agents/integrations/embeddingmodels/openai/OpenAIEmbeddingModelConnection.java - Vector Stores
api/src/main/java/org/apache/flink/agents/api/vectorstores/BaseVectorStore.java
Skills and Python
- Skill Manager
runtime/src/main/java/org/apache/flink/agents/runtime/skill/SkillManager.java - Python Actions
python/flink_agents/plan/actions/context_retrieval_action.py - MCP Integration
integrations/mcp/src/main/java/org/apache/flink/agents/integrations/mcp/MCPServer.java
Other components
- Agent User
- Agent Events
Connections 20
- Agent User → Agent Builder: configures
- Agent Builder → Agent Plan: defines
- Agent Builder → Resource API: configures
- Agent Plan → Chat Action: dispatches
- Agent Plan → Tool Actions: dispatches
- Chat Action → Chat Models: invokes
- Chat Action → Chat Messages: uses
- Model Routing → Chat Models: selects
- Context Retrieval → Vector Stores: queries
plan/src/main/java/org/apache/flink/agents/plan/actions/ContextRetrievalAction.java - Context Retrieval → Event Model: emits response
plan/src/main/java/org/apache/flink/agents/plan/actions/ContextRetrievalAction.java - Context Retrieval → Resource API: looks up store
plan/src/main/java/org/apache/flink/agents/plan/actions/ContextRetrievalAction.java - Durable Execution → Action State Store: reads and writes
runtime/src/main/java/org/apache/flink/agents/runtime/operator/DurableExecutionManager.java - Durable Execution → Agent Plan: executes actions
runtime/src/main/java/org/apache/flink/agents/runtime/operator/DurableExecutionManager.java - Context Retrieval → Durable Execution: runs durably
plan/src/main/java/org/apache/flink/agents/plan/actions/ContextRetrievalAction.java - Context Retrieval → Embedding Models: uses for search
- Skill Manager → Resource API: provides context
api/src/main/java/org/apache/flink/agents/api/resource/ResourceContext.java - Python Actions → Vector Stores: queries
python/flink_agents/plan/actions/context_retrieval_action.py - Python Actions → Event Model: emits response
python/flink_agents/plan/actions/context_retrieval_action.py - Tool Actions → MCP Integration: may invoke
- Event Model → Agent Events: delivers