asToolDescriptorSerializer
Provides a custom serializer for tools, wrapping and unwrapping values that do not serialize into JsonObject into a custom JsonObject with value key. This wrapping/unwrapping is needed because for LLM APIs tool arguments must always be JsonObject.