Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du kopplar ett skyddsräcke för innehåll till en värdbaserad agent i Microsoft Foundry. En skyddsmekanism granskar de promptar som din agent tar emot och de svar som den returnerar mot en policy för ansvarsfull AI (RAI), så att skadligt innehåll filtreras enligt din organisations säkerhetskonfiguration.
Du hänvisar till skyddsräcket med resurs-ID:t för RAI-policyn i agentdefinitionen. Plattformen tillämpar sedan policyn på agenten under körning. Du kan ange ett skyddsräcke när du distribuerar med Azure Developer CLI (azd), Python SDK eller REST-API:et. Information om vad skyddsräcken är, vilka risker de identifierar och hur du skapar ett finns i Översikt över skyddsräcken och kontroller.
Prerequisites
En värdbaserad agent eller en containeravbildning som är redo att distribueras som en. Se Distribuera en värdbaserad agent.
Ett skyddsräcke (RAI-princip) som redan har skapats på Foundry-resursen och dess fullständiga resurs-ID för Azure Resource Manager (ARM). Information om hur du skapar en finns i Konfigurera skyddsräcken och kontroller. ARM-resurs-ID:t har det här formuläret:
/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<account>/raiPolicies/<policy-name>För Azure Developer CLI-metoden: tillägget
azd ai agent, version 0.1.38-preview eller senare.För metoden Python SDK: klientbiblioteket Azure AI Projects för Python version 2.2.0 eller senare:
pip install "azure-ai-projects>=2.2.0"
Så här gäller skyddsräcken för värdbaserade agenter
En värdbaserad agentdefinition har en valfri rai_config inställning med ett rai_policy_name fält. Ange rai_policy_name som det fullständiga ARM-resurs-ID:t för guardrailens RAI-policy. Plattformen tillämpar den principen på agentens uppmaningar och svar.
När du utelämnar rai_configkörs agenten utan ett skyddsräcke för innehållssäkerhet. När du inkluderar rai_config men utelämnar rai_policy_nametillämpar plattformen standardprincipen . Microsoft.DefaultV2 Ange en anpassad princip när du behöver striktare eller organisationsspecifik filtrering.
Använd alltid det fullständiga ARM-resurs-ID:t för rai_policy_name, inte det tomma principnamnet.
Lägga till ett skyddsräcke med Azure Developer CLI
När du använder azddeklarerar du skyddsräcket för azure.ai.agent tjänsten i azure.yaml. Ange rai_config.rai_policy_name till det fullständiga ARM-resurs-ID:t för RAI-principen.
I din
azure.yamllägger du tillrai_configi agenttjänsten:services: my-agent: host: azure.ai.agent project: src/my-agent kind: hosted name: my-hosted-agent description: A hosted agent with a content safety guardrail rai_config: # Full ARM resource ID of the RAI policy on the Foundry resource. rai_policy_name: /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<account>/raiPolicies/<policy-name> protocols: - protocol: responses version: "2.0.0"Distribuera agenten:
azd deploy
Plattformen kopplar skyddsmekanismen när den skapar agentversionen.
Lägg till ett skyddsräcke med Python SDK
När du skapar en agentversion med SDK:t skickar du en RaiConfig till parametern rai_config i HostedAgentDefinition.
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
AgentEndpointProtocol,
ContainerConfiguration,
HostedAgentDefinition,
ProtocolVersionRecord,
RaiConfig,
)
from azure.identity import DefaultAzureCredential
# Format: "https://<resource-name>.services.ai.azure.com/api/projects/<project-name>"
PROJECT_ENDPOINT = "your_project_endpoint"
# Full ARM resource ID of the RAI policy.
RAI_POLICY_ID = (
"/subscriptions/<subscription-id>/resourceGroups/<resource-group>"
"/providers/Microsoft.CognitiveServices/accounts/<account>"
"/raiPolicies/<policy-name>"
)
credential = DefaultAzureCredential()
project = AIProjectClient(
endpoint=PROJECT_ENDPOINT,
credential=credential,
allow_preview=True,
)
agent = project.agents.create_version(
agent_name="my-agent",
definition=HostedAgentDefinition(
cpu="1",
memory="2Gi",
container_configuration=ContainerConfiguration(
image="your-registry.azurecr.io/your-image:tag",
),
protocol_versions=[
ProtocolVersionRecord(
protocol=AgentEndpointProtocol.RESPONSES, version="1.0.0"
)
],
rai_config=RaiConfig(rai_policy_name=RAI_POLICY_ID),
),
)
print(f"Agent created: {agent.name}, version: {agent.version}")
Referens: HostedAgentDefinition, ContainerConfiguration och RaiConfig.
Lägga till ett skyddsräcke med REST-API:et
När du skapar agenten via REST lägger du till ett rai_config objekt i definition.
BASE_URL="https://{account}.services.ai.azure.com/api/projects/{project}"
API_VERSION="v1"
TOKEN=$(az account get-access-token --resource https://ai.azure.com --query accessToken -o tsv)
curl -X POST "$BASE_URL/agents?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-agent",
"definition": {
"kind": "hosted",
"container_configuration": {
"image": "myacr.azurecr.io/my-agent:v1"
},
"cpu": "1",
"memory": "2Gi",
"protocol_versions": [
{"protocol": "responses", "version": "1.0.0"}
],
"rai_config": {
"rai_policy_name": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<account>/raiPolicies/<policy-name>"
}
}
}'
Kontrollera att skyddsräcket har tillämpats
Hämta agentens version och bekräfta att rai_config.rai_policy_name innehåller ditt policy-ID.
curl -s -X GET "$BASE_URL/agents/my-agent/versions/1?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" | jq '.definition.rai_config'
Svaret innehåller den princip som du anger:
{
"rai_policy_name": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.CognitiveServices/accounts/<account>/raiPolicies/<policy-name>"
}
Testa skyddsräcket vid körning
För att bekräfta att skyddsräcket filtrerar innehåll skickar du en uppmaning som bryter mot din säkerhetsprincip till agentens svarsslutpunkt. Plattformen granskar prompten vid inmatningen och avvisar den innan agenten startar.
curl -i -X POST "$BASE_URL/agents/my-agent/endpoint/protocols/openai/responses?api-version=$API_VERSION" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"input":"<a prompt that your policy is configured to block>","store":true}'
En blockerad fråga returneras HTTP 400 med ett content_filter fel:
{
"error": {
"code": "content_filter",
"message": "The request was blocked due to content safety policy violation at input stage.",
"type": "content_safety_error"
}
}
En prompt som uppfyller policyn returnerar HTTP 200 med agentens svar. Om en skadlig prompt inte blockeras, bekräfta att principen som rai_policy_name hänvisar till är konfigurerad för att filtrera den relevanta innehållskategorin och allvarlighetsgraden.
Relaterat innehåll
- Översikt över skyddsräcken och kontroller – vad skyddsräcken är, vilka risker de upptäcker och var de ingriper.
- Konfigurera skyddsräcken och kontroller – skapa den RAI-princip som du refererar till här.
- Distribuera en värdbaserad agent – det fullständiga distributionsarbetsflödet för värdbaserade agenter.