@SystemMessage( """ … """) @UserMessage("The user request is: '{req}'. The last received response is: '{lastResponse}'.") AgentInvocation plan(@MemoryId Object userId, String agents, String req, String lastResponse, String ctx); } AgentInvocation{agentName='exchange', arguments={originalCurrency=EUR, amount=100, targetCurrency=USD}} AgentInvocation{agentName='credit', arguments={creditUser=Kevin, amountInUSD=115.0}} AgentInvocation{agentName='withdraw', arguments={withdrawUser=Mario, amountInUSD=115.0}} AgentInvocation{agentName='done', arguments={response=100 EUR has been transferred from Mario's account to Kevin's account. Kevin's account has been credited with 115.0 USD, and the new balance is 1115.0 USD. The withdrawal of 115.0 USD from Mario's account has been completed, and the new balance is 885.0 USD.}