Add external governance checkpoint sample - #14247
Open
jw-ond wants to merge 3 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new .NET Concepts/Filtering sample demonstrating how an external governance checkpoint can be evaluated before proceeding with automatic function invocation, and links it from the Concepts samples README.
Changes:
- Add
ExternalGovernanceCheckpointsample showing anIAutoFunctionInvocationFilterthat maps checkpoint verdicts to execute/pause/deny outcomes and annotates results with governance metadata. - Add SHA-256-based checkpoint reference computation for the action envelope.
- Update Concepts samples README to include the new Filtering sample link.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| dotnet/samples/Concepts/README.md | Adds the new filtering sample to the Concepts index. |
| dotnet/samples/Concepts/Filtering/ExternalGovernanceCheckpoint.cs | New sample demonstrating an external checkpoint gate for auto function invocation and result metadata. |
Suppressed comments (1)
dotnet/samples/Concepts/Filtering/ExternalGovernanceCheckpoint.cs:70
- Same issue as above:
ImportPluginFromFunctionsclones the function, so thefunctionvariable here isn’t the one stored in the kernel’s plugins (and will typically have a nullPluginName). Use the imported function instance when creating the context so the envelope reflects real auto-invocation behavior.
kernel.ImportPluginFromFunctions("CustomerAdmin", [function]);
var context = CreateAutoFunctionInvocationContext(kernel, function, new KernelArguments());
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| public static string ComputeReference(ActionEnvelope envelope) | ||
| { | ||
| byte[] envelopeBytes = JsonSerializer.SerializeToUtf8Bytes(envelope, s_serializerOptions); |
Comment on lines
+30
to
+35
| kernel.ImportPluginFromFunctions("Payments", [function]); | ||
|
|
||
| var context = CreateAutoFunctionInvocationContext( | ||
| kernel, | ||
| function, | ||
| new KernelArguments |
Comment on lines
+159
to
+162
| private sealed record ActionEnvelope( | ||
| string PluginName, | ||
| string FunctionName, | ||
| IReadOnlyDictionary<string, object?> Arguments, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test Plan