Skip to content

Add A2A (Agent-to-Agent) Remote Agent Support - #63

Open
SureshMuthukaruppasamy wants to merge 2 commits into
mainfrom
feature/a2a
Open

SureshMuthukaruppasamy wants to merge 2 commits into
mainfrom
feature/a2a

Conversation

@SureshMuthukaruppasamy

Copy link
Copy Markdown
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant