diff --git a/samples/hosted-agent/sample-catalog.json b/samples/hosted-agent/sample-catalog.json index b4ce6cd..a5cfad2 100644 --- a/samples/hosted-agent/sample-catalog.json +++ b/samples/hosted-agent/sample-catalog.json @@ -1,7 +1,7 @@ { - "commitSha": "be4706c76acfe44e2ae99c2818efdc4c5ab25bd9", + "commitSha": "5642c45da33220d5bb95bbe08fa67f34373bd96d", "repo": "https://github.com/microsoft-foundry/foundry-samples/", - "generatedAt": "2026-09-23T05:22:25Z", + "generatedAt": "2026-09-28T05:42:37Z", "dimensions": { "language": { "title": "Select a Language", @@ -1155,6 +1155,15 @@ "description": "Agent that uses custom persistence stores for conversation chains and response records.", "path": "samples/python/hosted-agents/langgraph/responses/13-custom-store", "requiresModel": true + }, + { + "language": "python", + "framework": "agent-framework", + "protocol": "invocations", + "displayName": "Content Safety Guardrail", + "description": "Hosted Python agent using an RAI content safety guardrail (Invocations protocol).", + "path": "samples/python/hosted-agents/agent-framework/invocations/02-content-safety-guardrail", + "requiresModel": true } ], "patterns": [ @@ -2090,23 +2099,25 @@ "title": "Content Safety Guardrail", "categoryId": "security-governance-ops", "details": { - "summary": "Apply a Responsible AI policy to check prompts and responses in the hosting platform.", - "whatItDoes": "Associates an RAI policy with the hosted agent so the platform applies configured input and output checks. These checks reduce risk but do not guarantee safe outputs.", + "summary": "Apply a Responsible AI policy to check prompts and responses in the hosting platform. Supports both Responses and Invocations protocols; the Invocations protocol requires additional invocationsModeration configuration to locate text fields.", + "whatItDoes": "Associates an RAI policy with the hosted agent so the platform applies configured input and output checks. These checks reduce risk but do not guarantee safe outputs. On the Responses protocol the platform can find message text automatically; on the Invocations protocol you must supply an invocationsModeration block (inputPaths, outputPaths, streamSelectors, etc.) so the platform knows which fields to screen.", "whyUseIt": "Explore definition-level safety configuration separately from application code.", - "exampleScenario": "Compare how the configured policy handles permitted and blocked test prompts.", + "exampleScenario": "Compare how the configured policy handles permitted and blocked test prompts. For Invocations, also test that inputPaths/outputPaths/streamSelectors match your request/response shape so the policy actually screens the intended fields.", "bestFit": "Teams evaluating platform safety configuration for hosted agents.", "capabilities": [ "References an RAI policy", "Applies configured platform checks", - "Separates policy setup from basic chat code" + "Separates policy setup from basic chat code", + "Requires invocationsModeration to screen custom request/response shapes (Invocations only)" ], - "whatItGenerates": "A Python chat agent with policy-aware hosting configuration. Merely copying the code does not activate a cloud policy.", + "whatItGenerates": "A Python chat agent project that declares an RAI policy in its hosting configuration. The Invocations protocol variant in this set includes an invocationsModeration example showing how to map request/response fields and streamed frames; the Responses variant relies on the platform's known message shape.", "requirements": [ "Model deployment, RAI policy" ] }, "templatePaths": [ - "samples/python/hosted-agents/agent-framework/responses/16-content-safety-guardrail" + "samples/python/hosted-agents/agent-framework/responses/16-content-safety-guardrail", + "samples/python/hosted-agents/agent-framework/invocations/02-content-safety-guardrail" ] }, {