From 01d741574fe9ed0e161787413112408141b3157c Mon Sep 17 00:00:00 2001 From: mrchatam <287639636+mrchatam@users.noreply.github.com> Date: Fri, 11 Sep 2026 23:06:17 +0000 Subject: [PATCH 1/2] docs: remove duplicate 'the' in ADR 0041 --- docs/decisions/0041-function-call-content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/decisions/0041-function-call-content.md b/docs/decisions/0041-function-call-content.md index cdd86619f877..a0166e05d058 100644 --- a/docs/decisions/0041-function-call-content.md +++ b/docs/decisions/0041-function-call-content.md @@ -356,7 +356,7 @@ foreach (FunctionCallContent functionCall in functionCalls) Questions: - How to pass the original `FunctionCallContent` to connectors along with the function result. It's actually not clear atm whether it's needed or not. The current rationale is that some models might expect properties of the original function call, such as arguments, to be passed back to the LLM along with the function result. An argument can be made that the original function call can be found in the chat history by the connector if needed. However, a counterargument is that it may not always be possible because the chat history might be truncated to save tokens, reduce hallucination, etc. - How to pass function id to connector? -- How to communicate exception to the connectors? It was proposed to add the `Exception` property the the `FunctionResult` class that will always be assigned by the `KernelFunction.InvokeAsync` method. However, this change will break C# function calling semantic, where the function should be executed if the contract is satisfied, or an exception should be thrown if the contract is not fulfilled. +- How to communicate exception to the connectors? It was proposed to add the `Exception` property the `FunctionResult` class that will always be assigned by the `KernelFunction.InvokeAsync` method. However, this change will break C# function calling semantic, where the function should be executed if the contract is satisfied, or an exception should be thrown if the contract is not fulfilled. - If `FunctionResult` becomes a non-steaming content by inheriting `KernelContent` class, how the `FunctionResult` can represent streaming content capabilities represented by the `StreamingKernelContent` class when/if it needed later? C# does not support multiple inheritance. **Pros** From d5125d5093a56755866829c2cef34dfece7cb7cc Mon Sep 17 00:00:00 2001 From: mrchatam Date: Sat, 12 Sep 2026 23:45:28 +0000 Subject: [PATCH 2/2] docs: add missing 'to' in ADR 0041 Exception property sentence Address Copilot review feedback. --- docs/decisions/0041-function-call-content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/decisions/0041-function-call-content.md b/docs/decisions/0041-function-call-content.md index a0166e05d058..5ad1b730b8a6 100644 --- a/docs/decisions/0041-function-call-content.md +++ b/docs/decisions/0041-function-call-content.md @@ -356,7 +356,7 @@ foreach (FunctionCallContent functionCall in functionCalls) Questions: - How to pass the original `FunctionCallContent` to connectors along with the function result. It's actually not clear atm whether it's needed or not. The current rationale is that some models might expect properties of the original function call, such as arguments, to be passed back to the LLM along with the function result. An argument can be made that the original function call can be found in the chat history by the connector if needed. However, a counterargument is that it may not always be possible because the chat history might be truncated to save tokens, reduce hallucination, etc. - How to pass function id to connector? -- How to communicate exception to the connectors? It was proposed to add the `Exception` property the `FunctionResult` class that will always be assigned by the `KernelFunction.InvokeAsync` method. However, this change will break C# function calling semantic, where the function should be executed if the contract is satisfied, or an exception should be thrown if the contract is not fulfilled. +- How to communicate exception to the connectors? It was proposed to add the `Exception` property to the `FunctionResult` class that will always be assigned by the `KernelFunction.InvokeAsync` method. However, this change will break C# function calling semantic, where the function should be executed if the contract is satisfied, or an exception should be thrown if the contract is not fulfilled. - If `FunctionResult` becomes a non-steaming content by inheriting `KernelContent` class, how the `FunctionResult` can represent streaming content capabilities represented by the `StreamingKernelContent` class when/if it needed later? C# does not support multiple inheritance. **Pros**