Add A2A (Agent-to-Agent) Remote Agent Support - #63
Open
SureshMuthukaruppasamy wants to merge 2 commits into
Open
SureshMuthukaruppasamy wants to merge 2 commits into
SureshMuthukaruppasamy wants to merge 2 commits into
Conversation
pieter-schutte
requested review from
a team,
HarishMalavade,
JamieWhitMac,
aurelian-valeriu-apostol-db and
opoupeney
September 28, 2026 09:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduces A2A protocol v0.3.0 support to the Fluxnova engine plugins, enabling BPMN processes to invoke remote AI agents. A remote agent can be called as a standalone service task or as an LLM-selectable tool inside an agentic ad-hoc subprocess. Adds a new standalone a2a-remote-call module and wires it into the existing agentic-subprocess modules.
What's included
New module: a2a-remote-call
JSON-RPC 2.0 invocation service (message/send) over Spring RestClient
Agent card discovery and caching (/.well-known/agent-card.json) with a refresh scheduler
BPMN parse listener + activity behaviour for fluxnova:type="a2a-remote" service tasks
ProcessEnginePlugin SPI registration and Spring Boot auto-configuration
Authentication layer: bearer and api-key support with startup config validation and 401/403 error mapping
Agentic subprocess integration
agent-tool-context-discovery: new AgentToolType enum, type-aware AgentToolEntry, catalogue discovery of A2A tasks
agent-orchestrator: async A2aRemoteInvokeJobHandler, tool-call routing by type, result-variable handling
agent-llm-connector: type-aware tool schema generation and argument mapping in conversations
shared: ToolCallRequest extended with an arguments field (backward-compatible)
Configuration
Remote agent URL, prompt, name, description, agent-ref, and timeout are declared on the BPMN service task via the a2a-remote namespace
Auth is configured per agent under fluxnova.a2a.agents..auth.*
Invocation timeout via fluxnova.a2a.timeout (default 30s)
Testing
Ships with tests in the same change: property-based tests (jqwik), integration tests (WireMock) covering standalone and agentic-subprocess flows, plus sample BPMN files. Key coverage includes standalone invocation, agentic routing, auth success/error paths, config extraction, and rejection of the deprecated agent pattern.
Compatibility notes
Record changes (AgentToolEntry, ToolCallRequest) use backward-compatible constructors, existing call sites are unaffected