microsoft / microsoft/semantic-kernel

[Feature] Official HOL Guard FunctionInvocationFilter security sample

Open
#14,323 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
28.6k
Forks
4.8k
Avg merge
14h 13m
Merged PRs (30d)
18

Description

Proposal

Add a small official Semantic Kernel sample/docs example that integrates HOL Guard at the existing IFunctionInvocationFilter boundary. This is not a request for a new generic filter API.

Semantic Kernel already demonstrates that an invocation filter can prevent execution by not calling next(context) in the FunctionInvocationApproval sample. HOL Guard can use that same boundary to evaluate a function invocation locally before execution.

Suggested sample behavior
  • install/configure HOL Guard explicitly in the sample
  • register a HolGuardFunctionInvocationFilter : IFunctionInvocationFilter
  • send the function name + arguments to the local HOL Guard decision path before next(context)
  • allow -> call next(context) exactly once
  • deny -> return a blocked result and never execute the underlying function
  • review -> require an explicit host approval callback; otherwise fail closed
  • timeout/unavailable/malformed/ambiguous Guard response -> fail closed
  • keep HOL Guard Cloud optional; local-only use should work without a Cloud login
Existing implementation evidence

We already maintain a small Semantic Kernel adapter and real invocation-contract tests here: https://github.com/hashgraph-online/hol-guard-plugin/pull/52

That proof is pinned against Semantic Kernel and tests allow/deny/review/unavailable paths, including zero downstream execution on deny. I’m proposing only an official Semantic Kernel sample/docs placement so users can discover and apply HOL Guard through the framework’s existing supported filter seam.

If this placement makes sense, I can follow the project’s fork-first workflow and keep the PR limited to the agreed sample/docs scope.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing FunctionInvocationApproval sample and the IFunctionInvocationFilter boundary, then review the HOL Guard adapter and invocation-contract tests in hashgraph-online/hol-guard-plugin pull request 52. Done means an official sample or docs example shows explicit local configuration and covers allow, deny, review, and fail-closed unavailable or malformed responses without requiring Cloud login.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
ai, documentation, security
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.