docs/decisions/0022-skfunction.md
The Semantic Kernel must define an abstraction to represent a Function i.e. a method that can be called as part of an AI orchestration.
Currently this abstraction is the ISKFunction interface.
The goal of the ADR is decide if this is the best abstraction to use to meet the long term goals of Semantic Kernel.
SKFunction implementations. If we do we this may cause problems as we add new functionality to the Semantic Kernel e.g. what if we define a new hook type?ISKFunction interfaceSKFunction base classISKFunction InterfaceSKFunction Case Classinternal so we can prevent extensions until we know there are valid use cases.SKFunction.Chosen option: "SKFunction base class", because we can provide some default implementation and we can restrict creation of new SKFunctions until we better understand those use cases.