It's heavily tilted towards OpenAI and it's offerings (either through OpenAI API or through Azure). However, it works decent enough for other alternatives as well, like: huggingface or ollama. Compared to the others (CrewAI etc). I kind of feel like Semantic Kernel hasn't really solved observe ability yet. Sure you can connect what ever logging/metric solution .Net supports, but it's not as seamless like the others. Semantic Kernel is available in .Net, Java and Python. But it's quite obvious .Net is a lot more polished then the others. Python usually gets new features faster, or at least pocs or previews.
Some learnings from it all:
- It's quite easy to get started with
- I like the distinction between native plugins and textbased ones (if a plugin should run code or not)
- There is a feeling of black magic in the background, in the sense of observe ability
- A bit more manual work to get things in order, compared to the alternatives
- Rapid development, it's quite clear the development team from Microsoft is doing a lot of work with this library
All and all, if you feel comfortable with writing C#, then Semantic Kernel is totally a viable option. If you prefer python over anything else, then I would say llamaindex or langchain is probably a better option (for now).
edit: updated some formatting