weiqingy opened a new pull request, #881: URL: https://github.com/apache/flink-agents/pull/881
Linked issue: #829 ### Purpose of change This is the first of two PRs retiring the Python in-process local execution path (`local_runner` / `local_execution_environment`) in favor of validating agent logic on Flink's MiniCluster, per #829. This PR is purely additive. Several behaviors are currently exercised only through the local path (via its `from_list` / `to_list` / `get_tool_request_events` test API); before the local path can be removed, that coverage has to exist on the remote (real-Flink) path. This PR backfills it, so the follow-up deletion PR removes the local path without losing any coverage. New remote (MiniCluster) tests added: - Synchronous `durable_execute` exception propagation and keyword-argument calls — the existing remote durable-execute tests only covered the async-exception and positional-argument paths. - Built-in `chat_model_action` + `tool_call_action` content and tool binding, driven by a deterministic mock chat model (the mock stubs only LLM inference, so the built-in actions remain the code under test). - `get_resource(CHAT_MODEL)` inside an action, including custom `ResourceDescriptor` field pass-through. - MCP tool invocation and prompt retrieval, invoked directly via `get_resource(...).call(...)` with no LLM — mirroring the existing Java `MCPCrossLanguageAgent` pattern and gated only on the self-started MCP server. This is the first remote MCP coverage in the repo. - The `apply(<unknown-name>)` → `ValueError` guard on the remote builder (unit test; the guard fires before a cluster starts). - Short-term-memory workflow semantics: same-key `visit_count` accumulation across records, and auto-generated key for a record with no key. - Chat model coverage for the non-Ollama providers (Tongyi / OpenAI / AzureOpenAI) on the remote path, preserving the original per-provider credential gating. ### Tests This PR is entirely tests. Verified on a Flink MiniCluster: one end-to-end session runs 11 passed, 3 skipped (the skips are the credential-gated provider cases). The deterministic tests (durable-execute, built-in action, MCP, workflow memory) run without any external service; the MCP test self-starts the MCP server. The `apply`-guard unit test runs without a cluster. ### API No public API changes. Test-only. ### Documentation - [ ] `doc-needed` - [x] `doc-not-needed` - [ ] `doc-included` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
