I debugged doEmbed and got all the way to listResolvedInputProcessors.
memory.getInputProcessors returns new semantic memory class every time and so the internal caching is not really doing anything (this.embeddingCache - is new instance everytime and so if (cachedEmbedding) is never true in embedMessageContent)
this increases the latency of responses and cost unnecessary money for embedding that already were embedded before...