This is an automated email from the ASF dual-hosted git repository. xtsong pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/flink-agents.git
commit f182b87de3d133999c32d7029b22c14fa678fb88 Author: youjin <[email protected]> AuthorDate: Fri Jan 23 17:27:56 2026 +0800 [api][java] Introduce Hierarchical ResourceClassName for Cross-Language Resource Creation --- .../apache/flink/agents/api/resource/Constant.java | 85 ---------- .../flink/agents/api/resource/ResourceName.java | 178 +++++++++++++++++++++ .../test/ChatModelIntegrationAgent.java | 27 ++-- .../test/EmbeddingIntegrationAgent.java | 9 +- .../agents/integration/test/ReActAgentTest.java | 8 +- .../test/VectorStoreIntegrationAgent.java | 13 +- .../resource/test/ChatModelCrossLanguageAgent.java | 26 ++- .../resource/test/EmbeddingCrossLanguageAgent.java | 17 +- .../resource/test/MCPCrossLanguageAgent.java | 5 +- .../test/VectorStoreCrossLanguageAgent.java | 30 ++-- .../flink/agents/examples/ReActAgentExample.java | 4 +- .../examples/agents/CustomTypesAndResources.java | 5 +- .../examples/agents/ProductSuggestionAgent.java | 4 +- .../examples/agents/ReviewAnalysisAgent.java | 4 +- .../agents/plan/AgentPlanDeclareMCPServerTest.java | 4 +- 15 files changed, 243 insertions(+), 176 deletions(-) diff --git a/api/src/main/java/org/apache/flink/agents/api/resource/Constant.java b/api/src/main/java/org/apache/flink/agents/api/resource/Constant.java deleted file mode 100644 index 34e62a32..00000000 --- a/api/src/main/java/org/apache/flink/agents/api/resource/Constant.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.flink.agents.api.resource; - -/** - * Constant strings for pointing a resource implementation in {@link ResourceDescriptor}. - * - * <p>TODO: Could use service provider interface to simplify the definition of constant in the - * future. - */ -public class Constant { - // Built-in ChatModel - // python wrapper - public static String PYTHON_CHAT_MODEL_CONNECTION = - "org.apache.flink.agents.api.chat.model.python.PythonChatModelConnection"; - public static String PYTHON_CHAT_MODEL_SETUP = - "org.apache.flink.agents.api.chat.model.python.PythonChatModelSetup"; - - // ollama - public static String OLLAMA_CHAT_MODEL_CONNECTION = - "org.apache.flink.agents.integrations.chatmodels.ollama.OllamaChatModelConnection"; - public static String OLLAMA_CHAT_MODEL_SETUP = - "org.apache.flink.agents.integrations.chatmodels.ollama.OllamaChatModelSetup"; - - // anthropic - public static String ANTHROPIC_CHAT_MODEL_CONNECTION = - "org.apache.flink.agents.integrations.chatmodels.anthropic.AnthropicChatModelConnection"; - public static String ANTHROPIC_CHAT_MODEL_SETUP = - "org.apache.flink.agents.integrations.chatmodels.anthropic.AnthropicChatModelSetup"; - - // Azure - public static String AZURE_CHAT_MODEL_CONNECTION = - "org.apache.flink.agents.integrations.chatmodels.anthropic.AzureAIChatModelConnection"; - public static String AZURE_CHAT_MODEL_SETUP = - "org.apache.flink.agents.integrations.chatmodels.anthropic.AzureAIChatModelSetup"; - - // OpenAI - public static String OPENAI_CHAT_MODEL_CONNECTION = - "org.apache.flink.agents.integrations.chatmodels.openai.OpenAIChatModelConnection"; - public static String OPENAI_CHAT_MODEL_SETUP = - "org.apache.flink.agents.integrations.chatmodels.openai.OpenAIChatModelSetup"; - - // Built-in EmbeddingModel - // python wrapper - public static String PYTHON_EMBEDDING_MODEL_CONNECTION = - "org.apache.flink.agents.api.embedding.model.python.PythonEmbeddingModelConnection"; - public static String PYTHON_EMBEDDING_MODEL_SETUP = - "org.apache.flink.agents.api.embedding.model.python.PythonEmbeddingModelSetup"; - - // ollama - public static String OLLAMA_EMBEDDING_MODEL_CONNECTION = - "org.apache.flink.agents.integrations.embeddingmodels.ollama.OllamaEmbeddingModelConnection"; - public static String OLLAMA_EMBEDDING_MODEL_SETUP = - "org.apache.flink.agents.integrations.embeddingmodels.ollama.OllamaEmbeddingModelSetup"; - - // Built-in VectorStore - // python wrapper - public static String PYTHON_VECTOR_STORE = - "org.apache.flink.agents.api.vectorstores.python.PythonVectorStore"; - public static String PYTHON_COLLECTION_MANAGEABLE_VECTOR_STORE = - "org.apache.flink.agents.api.vectorstores.python.PythonCollectionManageableVectorStore"; - - // elasticsearch - public static String ELASTICSEARCH_VECTOR_STORE = - "org.apache.flink.agents.integrations.vectorstores.elasticsearch.ElasticsearchVectorStore"; - - // MCP - public static String MCP_SERVER = "DECIDE_IN_RUNTIME_MCPServer"; -} diff --git a/api/src/main/java/org/apache/flink/agents/api/resource/ResourceName.java b/api/src/main/java/org/apache/flink/agents/api/resource/ResourceName.java new file mode 100644 index 00000000..f542570c --- /dev/null +++ b/api/src/main/java/org/apache/flink/agents/api/resource/ResourceName.java @@ -0,0 +1,178 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.agents.api.resource; + +/** + * Hierarchical resource class names for pointing a resource implementation in {@link + * ResourceDescriptor}. + * + * <p>Structure: + * + * <ul> + * <li>Java implementation: ResourceType.PROVIDER_RESOURCEKIND + * <li>Python implementation: ResourceType.Python.PROVIDER_RESOURCEKIND + * </ul> + * + * <p>Example usage: + * + * <pre>{@code + * // Java implementation + * ResourceName.ChatModel.OLLAMA_CONNECTION + * ResourceName.ChatModel.OPENAI_SETUP + * + * // Python implementation + * ResourceName.ChatModel.Python.OLLAMA_CONNECTION + * }</pre> + */ +public final class ResourceName { + + private ResourceName() {} + + // ==================== ChatModel ==================== + public static final class ChatModel { + + // Anthropic + public static final String ANTHROPIC_CONNECTION = + "org.apache.flink.agents.integrations.chatmodels.anthropic.AnthropicChatModelConnection"; + public static final String ANTHROPIC_SETUP = + "org.apache.flink.agents.integrations.chatmodels.anthropic.AnthropicChatModelSetup"; + + // Azure + public static final String AZURE_CONNECTION = + "org.apache.flink.agents.integrations.chatmodels.anthropic.AzureAIChatModelConnection"; + public static final String AZURE_SETUP = + "org.apache.flink.agents.integrations.chatmodels.anthropic.AzureAIChatModelSetup"; + + // Ollama + public static final String OLLAMA_CONNECTION = + "org.apache.flink.agents.integrations.chatmodels.ollama.OllamaChatModelConnection"; + public static final String OLLAMA_SETUP = + "org.apache.flink.agents.integrations.chatmodels.ollama.OllamaChatModelSetup"; + + // OpenAI + public static final String OPENAI_CONNECTION = + "org.apache.flink.agents.integrations.chatmodels.openai.OpenAIChatModelConnection"; + public static final String OPENAI_SETUP = + "org.apache.flink.agents.integrations.chatmodels.openai.OpenAIChatModelSetup"; + + // Python Wrapper + public static final String PYTHON_WRAPPER_CONNECTION = + "org.apache.flink.agents.api.chat.model.python.PythonChatModelConnection"; + public static final String PYTHON_WRAPPER_SETUP = + "org.apache.flink.agents.api.chat.model.python.PythonChatModelSetup"; + + /** Python implementations of ChatModel. */ + public static final class Python { + + // Anthropic + public static final String ANTHROPIC_CONNECTION = + "flink_agents.integrations.chat_models.anthropic.anthropic_chat_model.AnthropicChatModelConnection"; + public static final String ANTHROPIC_SETUP = + "flink_agents.integrations.chat_models.anthropic.anthropic_chat_model.AnthropicChatModelSetup"; + + // Ollama + public static final String OLLAMA_CONNECTION = + "flink_agents.integrations.chat_models.ollama_chat_model.OllamaChatModelConnection"; + public static final String OLLAMA_SETUP = + "flink_agents.integrations.chat_models.ollama_chat_model.OllamaChatModelSetup"; + + // OpenAI + public static final String OPENAI_CONNECTION = + "flink_agents.integrations.chat_models.openai.openai_chat_model.OpenAIChatModelConnection"; + public static final String OPENAI_SETUP = + "flink_agents.integrations.chat_models.openai.openai_chat_model.OpenAIChatModelSetup"; + + // Tongyi + public static final String TONGYI_CONNECTION = + "flink_agents.integrations.chat_models.tongyi_chat_model.TongyiChatModelConnection"; + public static final String TONGYI_SETUP = + "flink_agents.integrations.chat_models.tongyi_chat_model.TongyiChatModelSetup"; + + private Python() {} + } + + private ChatModel() {} + } + + // ==================== EmbeddingModel ==================== + public static final class EmbeddingModel { + + // Ollama + public static final String OLLAMA_CONNECTION = + "org.apache.flink.agents.integrations.embeddingmodels.ollama.OllamaEmbeddingModelConnection"; + public static final String OLLAMA_SETUP = + "org.apache.flink.agents.integrations.embeddingmodels.ollama.OllamaEmbeddingModelSetup"; + + // Python Wrapper + public static final String PYTHON_WRAPPER_CONNECTION = + "org.apache.flink.agents.api.embedding.model.python.PythonEmbeddingModelConnection"; + public static final String PYTHON_WRAPPER_SETUP = + "org.apache.flink.agents.api.embedding.model.python.PythonEmbeddingModelSetup"; + + /** Python implementations of EmbeddingModel. */ + public static final class Python { + + // Ollama + public static final String OLLAMA_CONNECTION = + "flink_agents.integrations.embedding_models.local.ollama_embedding_model.OllamaEmbeddingModelConnection"; + public static final String OLLAMA_SETUP = + "flink_agents.integrations.embedding_models.local.ollama_embedding_model.OllamaEmbeddingModelSetup"; + + // OpenAI + public static final String OPENAI_CONNECTION = + "flink_agents.integrations.embedding_models.openai_embedding_model.OpenAIEmbeddingModelConnection"; + public static final String OPENAI_SETUP = + "flink_agents.integrations.embedding_models.openai_embedding_model.OpenAIEmbeddingModelSetup"; + + private Python() {} + } + + private EmbeddingModel() {} + } + + // ==================== VectorStore ==================== + public static final class VectorStore { + + // Elasticsearch + public static final String ELASTICSEARCH_VECTOR_STORE = + "org.apache.flink.agents.integrations.vectorstores.elasticsearch.ElasticsearchVectorStore"; + + // Python Wrapper + public static final String PYTHON_WRAPPER_VECTOR_STORE = + "org.apache.flink.agents.api.vectorstores.python.PythonVectorStore"; + + public static final String PYTHON_WRAPPER_COLLECTION_MANAGEABLE_VECTOR_STORE = + "org.apache.flink.agents.api.vectorstores.python.PythonCollectionManageableVectorStore"; + + /** Python implementations of VectorStore. */ + public static final class Python { + + // Chroma + public static final String CHROMA_VECTOR_STORE = + "flink_agents.integrations.vector_stores.chroma.chroma_vector_store.ChromaVectorStore"; + + private Python() {} + } + + private VectorStore() {} + } + + // ==================== MCP ==================== + public static final String MCP_SERVER = "DECIDE_IN_RUNTIME_MCPServer"; +} diff --git a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java index 2de3f437..476afba3 100644 --- a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java @@ -34,20 +34,12 @@ import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.event.ChatRequestEvent; import org.apache.flink.agents.api.event.ChatResponseEvent; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import java.util.Collections; import java.util.List; -import static org.apache.flink.agents.api.resource.Constant.ANTHROPIC_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.ANTHROPIC_CHAT_MODEL_SETUP; -import static org.apache.flink.agents.api.resource.Constant.AZURE_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.AZURE_CHAT_MODEL_SETUP; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_SETUP; -import static org.apache.flink.agents.api.resource.Constant.OPENAI_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.OPENAI_CHAT_MODEL_SETUP; - /** * Agent example that integrates an external Ollama chat model into Flink Agents. * @@ -76,25 +68,26 @@ public class ChatModelIntegrationAgent extends Agent { public static ResourceDescriptor chatModelConnection() { String provider = System.getProperty("MODEL_PROVIDER", "OLLAMA"); if (provider.equals("OLLAMA")) { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_CONNECTION) .addInitialArgument("endpoint", "http://localhost:11434") .addInitialArgument("requestTimeout", 240) .build(); } else if (provider.equals("AZURE")) { String endpoint = System.getenv().get("AZURE_ENDPOINT"); String apiKey = System.getenv().get("AZURE_API_KEY"); - return ResourceDescriptor.Builder.newBuilder(AZURE_CHAT_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.AZURE_CONNECTION) .addInitialArgument("endpoint", endpoint) .addInitialArgument("apiKey", apiKey) .build(); } else if (provider.equals("OPENAI")) { String apiKey = System.getenv().get("OPENAI_API_KEY"); - return ResourceDescriptor.Builder.newBuilder(OPENAI_CHAT_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OPENAI_CONNECTION) .addInitialArgument("api_key", apiKey) .build(); } else if (provider.equals("ANTHROPIC")) { String apiKey = System.getenv().get("ANTHROPIC_API_KEY"); - return ResourceDescriptor.Builder.newBuilder(ANTHROPIC_CHAT_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.ChatModel.ANTHROPIC_CONNECTION) .addInitialArgument("api_key", apiKey) .addInitialArgument("timeout", 240) .build(); @@ -108,7 +101,7 @@ public class ChatModelIntegrationAgent extends Agent { String provider = System.getProperty("MODEL_PROVIDER", "OLLAMA"); if (provider.equals("OLLAMA")) { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "chatModelConnection") .addInitialArgument("model", OLLAMA_MODEL) .addInitialArgument( @@ -116,7 +109,7 @@ public class ChatModelIntegrationAgent extends Agent { List.of("calculateBMI", "convertTemperature", "createRandomNumber")) .build(); } else if (provider.equals("AZURE")) { - return ResourceDescriptor.Builder.newBuilder(AZURE_CHAT_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.AZURE_SETUP) .addInitialArgument("connection", "chatModelConnection") .addInitialArgument("model", "gpt-4o") .addInitialArgument( @@ -124,7 +117,7 @@ public class ChatModelIntegrationAgent extends Agent { List.of("calculateBMI", "convertTemperature", "createRandomNumber")) .build(); } else if (provider.equals("ANTHROPIC")) { - return ResourceDescriptor.Builder.newBuilder(ANTHROPIC_CHAT_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.ANTHROPIC_SETUP) .addInitialArgument("connection", "chatModelConnection") .addInitialArgument("model", "claude-sonnet-4-20250514") .addInitialArgument( @@ -132,7 +125,7 @@ public class ChatModelIntegrationAgent extends Agent { List.of("calculateBMI", "convertTemperature", "createRandomNumber")) .build(); } else if (provider.equals("OPENAI")) { - return ResourceDescriptor.Builder.newBuilder(OPENAI_CHAT_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OPENAI_SETUP) .addInitialArgument("connection", "chatModelConnection") .addInitialArgument("model", "gpt-4o-mini") .addInitialArgument( diff --git a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java index 7fb83d7f..0c567cd3 100644 --- a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java @@ -30,13 +30,11 @@ import org.apache.flink.agents.api.annotation.ToolParam; import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.embedding.model.BaseEmbeddingModelSetup; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import java.util.HashMap; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_EMBEDDING_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_EMBEDDING_MODEL_SETUP; - /** * Integration test agent for verifying embedding functionality with Ollama models. * @@ -54,7 +52,8 @@ public class EmbeddingIntegrationAgent extends Agent { public static ResourceDescriptor embeddingConnection() { String provider = System.getProperty("MODEL_PROVIDER", "OLLAMA"); if (provider.equals("OLLAMA")) { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_EMBEDDING_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.OLLAMA_CONNECTION) .addInitialArgument("host", "http://localhost:11434") .addInitialArgument("timeout", 60) .build(); @@ -67,7 +66,7 @@ public class EmbeddingIntegrationAgent extends Agent { public static ResourceDescriptor embeddingModel() { String provider = System.getProperty("MODEL_PROVIDER", "OLLAMA"); if (provider.equals("OLLAMA")) { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_EMBEDDING_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.EmbeddingModel.OLLAMA_SETUP) .addInitialArgument("connection", "embeddingConnection") .addInitialArgument("model", OLLAMA_MODEL) .build(); diff --git a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java index 8c61a7fe..1baa40d1 100644 --- a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java +++ b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java @@ -26,6 +26,7 @@ import org.apache.flink.agents.api.chat.messages.ChatMessage; import org.apache.flink.agents.api.chat.messages.MessageRole; import org.apache.flink.agents.api.prompt.Prompt; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import org.apache.flink.agents.api.tools.Tool; import org.apache.flink.api.common.functions.MapFunction; @@ -49,8 +50,6 @@ import java.util.List; import static org.apache.flink.agents.api.agents.AgentExecutionOptions.ERROR_HANDLING_STRATEGY; import static org.apache.flink.agents.api.agents.AgentExecutionOptions.MAX_RETRIES; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_SETUP; import static org.apache.flink.agents.integration.test.OllamaPreparationUtils.pullModel; public class ReActAgentTest { @@ -94,7 +93,8 @@ public class ReActAgentTest { .addResource( "ollama", ResourceType.CHAT_MODEL_CONNECTION, - ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_CONNECTION) + ResourceDescriptor.Builder.newBuilder( + ResourceName.ChatModel.OLLAMA_CONNECTION) .addInitialArgument("endpoint", "http://localhost:11434") .addInitialArgument("requestTimeout", 240) .build()) @@ -155,7 +155,7 @@ public class ReActAgentTest { // create ReAct agent. private static Agent getAgent() { ResourceDescriptor chatModelDescriptor = - ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_SETUP) + ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "ollama") .addInitialArgument("model", OLLAMA_MODEL) .addInitialArgument("tools", List.of("add", "multiply")) diff --git a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/VectorStoreIntegrationAgent.java b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/VectorStoreIntegrationAgent.java index 85a7205b..2820b59c 100644 --- a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/VectorStoreIntegrationAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/VectorStoreIntegrationAgent.java @@ -29,16 +29,13 @@ import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.event.ContextRetrievalRequestEvent; import org.apache.flink.agents.api.event.ContextRetrievalResponseEvent; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.vectorstores.Document; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.ELASTICSEARCH_VECTOR_STORE; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_EMBEDDING_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_EMBEDDING_MODEL_SETUP; - public class VectorStoreIntegrationAgent extends Agent { public static final String OLLAMA_MODEL = "nomic-embed-text"; @@ -46,7 +43,8 @@ public class VectorStoreIntegrationAgent extends Agent { public static ResourceDescriptor embeddingConnection() { final String provider = System.getProperty("MODEL_PROVIDER", "OLLAMA"); if (provider.equals("OLLAMA")) { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_EMBEDDING_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.OLLAMA_CONNECTION) .addInitialArgument("host", "http://localhost:11434") .addInitialArgument("timeout", 60) .build(); @@ -59,7 +57,7 @@ public class VectorStoreIntegrationAgent extends Agent { public static ResourceDescriptor embeddingModel() { String provider = System.getProperty("MODEL_PROVIDER", "OLLAMA"); if (provider.equals("OLLAMA")) { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_EMBEDDING_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.EmbeddingModel.OLLAMA_SETUP) .addInitialArgument("connection", "embeddingConnection") .addInitialArgument("model", OLLAMA_MODEL) .build(); @@ -73,7 +71,8 @@ public class VectorStoreIntegrationAgent extends Agent { final String provider = System.getProperty("VECTOR_STORE_PROVIDER", "ELASTICSEARCH"); if (provider.equals("ELASTICSEARCH")) { final ResourceDescriptor.Builder builder = - ResourceDescriptor.Builder.newBuilder(ELASTICSEARCH_VECTOR_STORE) + ResourceDescriptor.Builder.newBuilder( + ResourceName.VectorStore.ELASTICSEARCH_VECTOR_STORE) .addInitialArgument("embedding_model", "embeddingModel") .addInitialArgument("host", System.getenv("ES_HOST")) .addInitialArgument("index", System.getenv("ES_INDEX")) diff --git a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java index c5cd05e3..0f9354a2 100644 --- a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/ChatModelCrossLanguageAgent.java @@ -34,15 +34,12 @@ import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.event.ChatRequestEvent; import org.apache.flink.agents.api.event.ChatResponseEvent; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import java.util.Collections; import java.util.List; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_CHAT_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_CHAT_MODEL_SETUP; - /** * Agent example that integrates an external Ollama chat model into Flink Agents. * @@ -69,7 +66,7 @@ public class ChatModelCrossLanguageAgent extends Agent { @ChatModelConnection public static ResourceDescriptor javaChatModelConnection() { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_CONNECTION) .addInitialArgument("endpoint", "http://localhost:11434") .addInitialArgument("requestTimeout", 240) .build(); @@ -77,19 +74,16 @@ public class ChatModelCrossLanguageAgent extends Agent { @ChatModelConnection public static ResourceDescriptor pythonChatModelConnection() { - return ResourceDescriptor.Builder.newBuilder(PYTHON_CHAT_MODEL_CONNECTION) - .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.chat_models.ollama_chat_model.OllamaChatModelConnection") + return ResourceDescriptor.Builder.newBuilder( + ResourceName.ChatModel.PYTHON_WRAPPER_CONNECTION) + .addInitialArgument("pythonClazz", ResourceName.ChatModel.Python.OLLAMA_CONNECTION) .build(); } @ChatModelSetup public static ResourceDescriptor temperatureChatModel() { - return ResourceDescriptor.Builder.newBuilder(PYTHON_CHAT_MODEL_SETUP) - .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.chat_models.ollama_chat_model.OllamaChatModelSetup") + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.PYTHON_WRAPPER_SETUP) + .addInitialArgument("pythonClazz", ResourceName.ChatModel.Python.OLLAMA_SETUP) .addInitialArgument("connection", "javaChatModelConnection") .addInitialArgument("model", OLLAMA_MODEL) .addInitialArgument("tools", List.of("convertTemperature")) @@ -99,10 +93,8 @@ public class ChatModelCrossLanguageAgent extends Agent { @ChatModelSetup public static ResourceDescriptor chatModel() { - return ResourceDescriptor.Builder.newBuilder(PYTHON_CHAT_MODEL_SETUP) - .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.chat_models.ollama_chat_model.OllamaChatModelSetup") + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.PYTHON_WRAPPER_SETUP) + .addInitialArgument("pythonClazz", ResourceName.ChatModel.Python.OLLAMA_SETUP) .addInitialArgument("connection", "pythonChatModelConnection") .addInitialArgument("model", OLLAMA_MODEL) .addInitialArgument("tools", List.of("calculateBMI", "createRandomNumber")) diff --git a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/EmbeddingCrossLanguageAgent.java b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/EmbeddingCrossLanguageAgent.java index cc533ff1..7b6f9d9d 100644 --- a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/EmbeddingCrossLanguageAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/EmbeddingCrossLanguageAgent.java @@ -28,14 +28,12 @@ import org.apache.flink.agents.api.annotation.EmbeddingModelSetup; import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.embedding.model.BaseEmbeddingModelSetup; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_EMBEDDING_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_EMBEDDING_MODEL_SETUP; - /** * Integration test agent for verifying embedding functionality with Python embedding model. * @@ -51,19 +49,18 @@ public class EmbeddingCrossLanguageAgent extends Agent { @EmbeddingModelConnection public static ResourceDescriptor embeddingConnection() { - return ResourceDescriptor.Builder.newBuilder(PYTHON_EMBEDDING_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.PYTHON_WRAPPER_CONNECTION) .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.embedding_models.local.ollama_embedding_model.OllamaEmbeddingModelConnection") + "pythonClazz", ResourceName.EmbeddingModel.Python.OLLAMA_CONNECTION) .build(); } @EmbeddingModelSetup public static ResourceDescriptor embeddingModel() { - return ResourceDescriptor.Builder.newBuilder(PYTHON_EMBEDDING_MODEL_SETUP) - .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.embedding_models.local.ollama_embedding_model.OllamaEmbeddingModelSetup") + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.PYTHON_WRAPPER_SETUP) + .addInitialArgument("pythonClazz", ResourceName.EmbeddingModel.Python.OLLAMA_SETUP) .addInitialArgument("connection", "embeddingConnection") .addInitialArgument("model", OLLAMA_MODEL) .build(); diff --git a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/MCPCrossLanguageAgent.java b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/MCPCrossLanguageAgent.java index 82123fa8..fb17b8db 100644 --- a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/MCPCrossLanguageAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/MCPCrossLanguageAgent.java @@ -27,6 +27,7 @@ import org.apache.flink.agents.api.chat.messages.MessageRole; import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.prompt.Prompt; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import org.apache.flink.agents.api.tools.Tool; import org.apache.flink.agents.api.tools.ToolParameters; @@ -37,12 +38,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.MCP_SERVER; - public class MCPCrossLanguageAgent extends Agent { @MCPServer(lang = "python") public static ResourceDescriptor pythonMCPServer() { - return ResourceDescriptor.Builder.newBuilder(MCP_SERVER) + return ResourceDescriptor.Builder.newBuilder(ResourceName.MCP_SERVER) .addInitialArgument("endpoint", "http://127.0.0.1:8000/mcp") .build(); } diff --git a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/VectorStoreCrossLanguageAgent.java b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/VectorStoreCrossLanguageAgent.java index bdcca06e..c6fd87a6 100644 --- a/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/VectorStoreCrossLanguageAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-resource-cross-language/src/test/java/org/apache/flink/agents/resource/test/VectorStoreCrossLanguageAgent.java @@ -30,6 +30,7 @@ import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.event.ContextRetrievalRequestEvent; import org.apache.flink.agents.api.event.ContextRetrievalResponseEvent; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import org.apache.flink.agents.api.vectorstores.CollectionManageableVectorStore; import org.apache.flink.agents.api.vectorstores.Document; @@ -41,12 +42,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_EMBEDDING_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_EMBEDDING_MODEL_SETUP; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_COLLECTION_MANAGEABLE_VECTOR_STORE; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_EMBEDDING_MODEL_CONNECTION; -import static org.apache.flink.agents.api.resource.Constant.PYTHON_EMBEDDING_MODEL_SETUP; - /** * Integration test agent for verifying vector store functionality with Python vector store * implementation. @@ -65,13 +60,14 @@ public class VectorStoreCrossLanguageAgent extends Agent { @EmbeddingModelConnection public static ResourceDescriptor embeddingConnection() { if (System.getProperty("EMBEDDING_TYPE", "PYTHON").equals("PYTHON")) { - return ResourceDescriptor.Builder.newBuilder(PYTHON_EMBEDDING_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.PYTHON_WRAPPER_CONNECTION) .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.embedding_models.local.ollama_embedding_model.OllamaEmbeddingModelConnection") + "pythonClazz", ResourceName.EmbeddingModel.Python.OLLAMA_CONNECTION) .build(); } else { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_EMBEDDING_MODEL_CONNECTION) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.OLLAMA_CONNECTION) .addInitialArgument("host", "http://localhost:11434") .addInitialArgument("timeout", 60) .build(); @@ -81,15 +77,15 @@ public class VectorStoreCrossLanguageAgent extends Agent { @EmbeddingModelSetup public static ResourceDescriptor embeddingModel() { if (System.getProperty("EMBEDDING_TYPE", "PYTHON").equals("PYTHON")) { - return ResourceDescriptor.Builder.newBuilder(PYTHON_EMBEDDING_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.EmbeddingModel.PYTHON_WRAPPER_SETUP) .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.embedding_models.local.ollama_embedding_model.OllamaEmbeddingModelSetup") + "pythonClazz", ResourceName.EmbeddingModel.Python.OLLAMA_SETUP) .addInitialArgument("connection", "embeddingConnection") .addInitialArgument("model", OLLAMA_MODEL) .build(); } else { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_EMBEDDING_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.EmbeddingModel.OLLAMA_SETUP) .addInitialArgument("connection", "embeddingConnection") .addInitialArgument("model", OLLAMA_MODEL) .build(); @@ -98,10 +94,10 @@ public class VectorStoreCrossLanguageAgent extends Agent { @VectorStore public static ResourceDescriptor vectorStore() { - return ResourceDescriptor.Builder.newBuilder(PYTHON_COLLECTION_MANAGEABLE_VECTOR_STORE) + return ResourceDescriptor.Builder.newBuilder( + ResourceName.VectorStore.PYTHON_WRAPPER_COLLECTION_MANAGEABLE_VECTOR_STORE) .addInitialArgument( - "pythonClazz", - "flink_agents.integrations.vector_stores.chroma.chroma_vector_store.ChromaVectorStore") + "pythonClazz", ResourceName.VectorStore.Python.CHROMA_VECTOR_STORE) .addInitialArgument("embedding_model", "embeddingModel") .build(); } diff --git a/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java b/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java index e0460dfb..4a68f6a7 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java @@ -24,6 +24,7 @@ import org.apache.flink.agents.api.annotation.Prompt; import org.apache.flink.agents.api.annotation.Tool; import org.apache.flink.agents.api.annotation.ToolParam; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import org.apache.flink.agents.examples.agents.CustomTypesAndResources; import org.apache.flink.api.common.eventtime.WatermarkStrategy; @@ -38,7 +39,6 @@ import java.io.File; import java.time.Duration; import java.util.Collections; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_SETUP; import static org.apache.flink.agents.examples.WorkflowSingleAgentExample.copyResource; /** @@ -144,7 +144,7 @@ public class ReActAgentExample { // Create ReAct agent. private static ReActAgent getReActAgent() { return new ReActAgent( - ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_SETUP) + ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "ollamaChatModelConnection") .addInitialArgument("model", "qwen3:8b") .addInitialArgument( diff --git a/examples/src/main/java/org/apache/flink/agents/examples/agents/CustomTypesAndResources.java b/examples/src/main/java/org/apache/flink/agents/examples/agents/CustomTypesAndResources.java index 0e1c96ce..2fb1da8c 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/agents/CustomTypesAndResources.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/agents/CustomTypesAndResources.java @@ -25,12 +25,11 @@ import org.apache.flink.agents.api.chat.messages.ChatMessage; import org.apache.flink.agents.api.chat.messages.MessageRole; import org.apache.flink.agents.api.prompt.Prompt; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import java.util.Arrays; import java.util.List; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_CONNECTION; - /** Custom types and resources for the quickstart agents. */ public class CustomTypesAndResources { @@ -112,7 +111,7 @@ public class CustomTypesAndResources { // Ollama chat model connection descriptor public static final ResourceDescriptor OLLAMA_SERVER_DESCRIPTOR = - ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_CONNECTION) + ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_CONNECTION) .addInitialArgument("requestTimeout", 120) .addInitialArgument("endpoint", "http://localhost:11434") .build(); diff --git a/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java b/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java index 4daac9ad..8c82ff37 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java @@ -32,13 +32,13 @@ import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.event.ChatRequestEvent; import org.apache.flink.agents.api.event.ChatResponseEvent; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.examples.agents.CustomTypesAndResources.ProductReviewSummary; import java.util.ArrayList; import java.util.List; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_SETUP; import static org.apache.flink.agents.examples.agents.CustomTypesAndResources.PRODUCT_SUGGESTION_PROMPT; /** @@ -57,7 +57,7 @@ public class ProductSuggestionAgent extends Agent { @ChatModelSetup public static ResourceDescriptor generateSuggestionModel() { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "ollamaChatModelConnection") .addInitialArgument("model", "qwen3:8b") .addInitialArgument("extract_reasoning", true) diff --git a/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java b/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java index 275b27c7..c414b1c9 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/agents/ReviewAnalysisAgent.java @@ -34,13 +34,13 @@ import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.event.ChatRequestEvent; import org.apache.flink.agents.api.event.ChatResponseEvent; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import static org.apache.flink.agents.api.resource.Constant.OLLAMA_CHAT_MODEL_SETUP; import static org.apache.flink.agents.examples.agents.CustomTypesAndResources.REVIEW_ANALYSIS_PROMPT; /** @@ -61,7 +61,7 @@ public class ReviewAnalysisAgent extends Agent { @ChatModelSetup public static ResourceDescriptor reviewAnalysisModel() { - return ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_SETUP) + return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "ollamaChatModelConnection") .addInitialArgument("model", "qwen3:8b") .addInitialArgument("prompt", "reviewAnalysisPrompt") diff --git a/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareMCPServerTest.java b/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareMCPServerTest.java index 760eae18..09d9e6a7 100644 --- a/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareMCPServerTest.java +++ b/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareMCPServerTest.java @@ -26,6 +26,7 @@ import org.apache.flink.agents.api.annotation.Action; import org.apache.flink.agents.api.context.RunnerContext; import org.apache.flink.agents.api.prompt.Prompt; import org.apache.flink.agents.api.resource.ResourceDescriptor; +import org.apache.flink.agents.api.resource.ResourceName; import org.apache.flink.agents.api.resource.ResourceType; import org.apache.flink.agents.api.tools.Tool; import org.apache.flink.agents.api.tools.ToolMetadata; @@ -42,7 +43,6 @@ import java.net.URL; import java.util.Map; import java.util.concurrent.TimeUnit; -import static org.apache.flink.agents.api.resource.Constant.MCP_SERVER; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -72,7 +72,7 @@ class AgentPlanDeclareMCPServerTest { @org.apache.flink.agents.api.annotation.MCPServer public static ResourceDescriptor testMcpServer() { - return ResourceDescriptor.Builder.newBuilder(MCP_SERVER) + return ResourceDescriptor.Builder.newBuilder(ResourceName.MCP_SERVER) .addInitialArgument("endpoint", MCP_ENDPOINT) .addInitialArgument("timeout", 30) .build();
