Chain Semantic Functions in Semantic Kernel

John Maeda has done an excellent job of putting AI into practice with his course on the Semantic Kernel. In the “Frozen Meal” section, he puts the concept into practice by chaining the semantic functions ‘Epathize’, ‘Define’, ‘Prototype’, etc.

my_result = await kernel.run_async(pluginDT["Empathize"], pluginDT["Define"], input_str = customer_comments)

What strikes me is that the example call doesn’t actually pass output to input, but uses a single parameter ‘customer_comments’ for all functions.

So basically my question is: how does the Semantic Kernel build a chain of results?

I continued the course and found ActionPlanner, which chains as I expect the kernel to do in my question. I am still curious if this is related to the call in my question. Pretty cool stuff, a recommendation.