ai-agents-for-beginners

Pålidelige AI-agenter

(Klik på billedet ovenfor for at se videoen af denne lektion)

Bygning af pålidelige AI-agenter

Introduktion

Denne lektion vil dække:

Læringsmål

Efter at have gennemført denne lektion vil du vide, hvordan du:

Sikkerhed

Lad os først se på at bygge sikre agentiske applikationer. Sikkerhed betyder, at AI-agenten fungerer som designet. Som udviklere af agentiske applikationer har vi metoder og værktøjer til at maksimere sikkerheden:

Opbygning af et systemmeddelelsesframework

Hvis du nogensinde har bygget en AI-applikation ved hjælp af store sprogmodeller (LLMs), ved du, hvor vigtigt det er at designe en robust systemprompt eller systemmeddelelse. Disse prompts fastlægger metareglene, instruktionerne og retningslinjerne for, hvordan LLM’en vil interagere med brugeren og dataene.

For AI-agenter er systemprompten endnu vigtigere, da AI-agenterne vil have brug for meget specifikke instruktioner for at fuldføre de opgaver, vi har designet til dem.

For at skabe skalerbare systemprompts kan vi bruge et systemmeddelelsesframework til at opbygge en eller flere agenter i vores applikation:

Opbygning af et systemmeddelelsesframework

Trin 1: Opret en meta systemmeddelelse

Meta-prompten vil blive brugt af en LLM til at generere systemprompter for de agenter, vi opretter. Vi designer den som en skabelon, så vi effektivt kan skabe flere agenter, hvis det er nødvendigt.

Her er et eksempel på en meta systemmeddelelse, vi ville give til LLM’en:

You are an expert at creating AI agent assistants. 
You will be provided a company name, role, responsibilities and other
information that you will use to provide a system prompt for.
To create the system prompt, be descriptive as possible and provide a structure that a system using an LLM can better understand the role and responsibilities of the AI assistant. 

Trin 2: Opret en grundlæggende prompt

Det næste trin er at oprette en grundlæggende prompt for at beskrive AI-agenten. Du bør inkludere agentens rolle, de opgaver agenten skal udføre, og eventuelle andre ansvarsområder for agenten.

Her er et eksempel:

You are a travel agent for Contoso Travel that is great at booking flights for customers. To help customers you can perform the following tasks: lookup available flights, book flights, ask for preferences in seating and times for flights, cancel any previously booked flights and alert customers on any delays or cancellations of flights.  

Trin 3: Lever grundlæggende systemmeddelelse til LLM

Nu kan vi optimere denne systemmeddelelse ved at give meta systemmeddelelsen som systemmeddelelse og vores grundlæggende systemmeddelelse.

Dette vil producere en systemmeddelelse, der er bedre designet til at styre vores AI-agenter:

**Company Name:** Contoso Travel  
**Role:** Travel Agent Assistant

**Objective:**  
You are an AI-powered travel agent assistant for Contoso Travel, specializing in booking flights and providing exceptional customer service. Your main goal is to assist customers in finding, booking, and managing their flights, all while ensuring that their preferences and needs are met efficiently.

**Key Responsibilities:**

1. **Flight Lookup:**
    
    - Assist customers in searching for available flights based on their specified destination, dates, and any other relevant preferences.
    - Provide a list of options, including flight times, airlines, layovers, and pricing.
2. **Flight Booking:**
    
    - Facilitate the booking of flights for customers, ensuring that all details are correctly entered into the system.
    - Confirm bookings and provide customers with their itinerary, including confirmation numbers and any other pertinent information.
3. **Customer Preference Inquiry:**
    
    - Actively ask customers for their preferences regarding seating (e.g., aisle, window, extra legroom) and preferred times for flights (e.g., morning, afternoon, evening).
    - Record these preferences for future reference and tailor suggestions accordingly.
4. **Flight Cancellation:**
    
    - Assist customers in canceling previously booked flights if needed, following company policies and procedures.
    - Notify customers of any necessary refunds or additional steps that may be required for cancellations.
5. **Flight Monitoring:**
    
    - Monitor the status of booked flights and alert customers in real-time about any delays, cancellations, or changes to their flight schedule.
    - Provide updates through preferred communication channels (e.g., email, SMS) as needed.

**Tone and Style:**

- Maintain a friendly, professional, and approachable demeanor in all interactions with customers.
- Ensure that all communication is clear, informative, and tailored to the customer's specific needs and inquiries.

**User Interaction Instructions:**

- Respond to customer queries promptly and accurately.
- Use a conversational style while ensuring professionalism.
- Prioritize customer satisfaction by being attentive, empathetic, and proactive in all assistance provided.

**Additional Notes:**

- Stay updated on any changes to airline policies, travel restrictions, and other relevant information that could impact flight bookings and customer experience.
- Use clear and concise language to explain options and processes, avoiding jargon where possible for better customer understanding.

This AI assistant is designed to streamline the flight booking process for customers of Contoso Travel, ensuring that all their travel needs are met efficiently and effectively.

Trin 4: Iterér og forbedr

Værdien af dette systemmeddelelsesframework er at kunne skalere oprettelsen af systemmeddelelser for flere agenter lettere samt forbedre dine systemmeddelelser over tid. Det er sjældent, at du har en systemmeddelelse, der fungerer første gang for dit komplette brugsscenarie. At kunne lave små justeringer og forbedringer ved at ændre den grundlæggende systemmeddelelse og køre den gennem systemet vil give dig mulighed for at sammenligne og evaluere resultater.

Forståelse af trusler

For at bygge pålidelige AI-agenter er det vigtigt at forstå og afbøde risici og trusler mod din AI-agent. Lad os se på nogle af de forskellige trusler mod AI-agenter og hvordan du bedre kan planlægge og forberede dig på dem.

Forståelse af trusler

Opgave og instruktion

Beskrivelse: Angribere forsøger at ændre AI-agentens instruktioner eller mål gennem prompting eller manipulation af input.

Afhjælpning: Udfør valideringskontroller og inputfiltre for at opdage potentielt farlige prompts, før de behandles af AI-agenten. Da disse angreb typisk kræver hyppig interaktion med agenten, er det en anden måde at forhindre disse angreb på at begrænse antallet af tur i en samtale.

Adgang til kritiske systemer

Beskrivelse: Hvis en AI-agent har adgang til systemer og tjenester, der gemmer følsomme data, kan angribere kompromittere kommunikationen mellem agenten og disse tjenester. Det kan være direkte angreb eller indirekte forsøg på at opnå information om disse systemer gennem agenten.

Afhjælpning: AI-agenter bør have adgang til systemer efter behov for kun at forhindre denne type angreb. Kommunikation mellem agenten og systemet skal også være sikker. Implementering af autentificering og adgangskontrol er en anden måde at beskytte denne information på.

Ressource- og serviceoverbelastning

Beskrivelse: AI-agenter kan tilgå forskellige værktøjer og tjenester for at udføre opgaver. Angribere kan udnytte denne evne til at angribe disse tjenester ved at sende et stort antal forespørgsler gennem AI-agenten, hvilket kan resultere i systemfejl eller høje omkostninger.

Afhjælpning: Implementer politikker for at begrænse antallet af forespørgsler, en AI-agent kan lave til en service. At begrænse antallet af samtaleturs og forespørgsler til din AI-agent er en anden måde at forhindre denne type angreb på.

Forgiftning af vidensbase

Beskrivelse: Denne type angreb retter sig ikke direkte mod AI-agenten, men mod vidensbasen og andre tjenester, som AI-agenten vil bruge. Det kan involvere korrupte data eller information, som AI-agenten skal bruge for at fuldføre en opgave, hvilket fører til forudindtagede eller utilsigtede svar til brugeren.

Afhjælpning: Udfør regelmæssig verifikation af de data, som AI-agenten vil bruge i sine arbejdsgange. Sørg for, at adgangen til disse data er sikker og kun kan ændres af betroede personer for at undgå denne type angreb.

Kaskaderende fejl

Beskrivelse: AI-agenter tilgår forskellige værktøjer og tjenester for at fuldføre opgaver. Fejl forårsaget af angribere kan føre til nedbrud i andre systemer, som AI-agenten er tilknyttet, hvilket gør angrebet mere udbredt og vanskeligere at fejlfinde.

Afhjælpning: En metode til at undgå dette er at få AI-agenten til at arbejde i et begrænset miljø, som for eksempel at udføre opgaver i en Docker-container, for at forhindre direkte systemangreb. At skabe fallback-mekanismer og retry-logik, når visse systemer svarer med en fejl, er en anden måde at forhindre større systemnedbrud på.

Human-in-the-Loop

En anden effektiv måde at bygge pålidelige AI-agent systemer på er ved at bruge en Human-in-the-loop. Det skaber et flow, hvor brugerne kan give feedback til agenten under kørslen. Brugerne fungerer i praksis som agenter i et multi-agent system ved at give godkendelse eller stoppe den kørende proces.

Human in The Loop

Her er en kodeeksempel, der bruger Microsoft Agent Framework til at vise, hvordan dette koncept implementeres:

import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential

# Opret udbyderen med menneskelig godkendelse i processen
provider = AzureAIProjectAgentProvider(
    credential=AzureCliCredential(),
)

# Opret agenten med et trin til menneskelig godkendelse
response = provider.create_response(
    input="Write a 4-line poem about the ocean.",
    instructions="You are a helpful assistant. Ask for user approval before finalizing.",
)

# Brugeren kan gennemse og godkende svaret
print(response.output_text)
user_input = input("Do you approve? (APPROVE/REJECT): ")
if user_input == "APPROVE":
    print("Response approved.")
else:
    print("Response rejected. Revising...")

Konklusion

At bygge pålidelige AI-agenter kræver omhyggeligt design, robuste sikkerhedsforanstaltninger og kontinuerlig iteration. Ved at implementere strukturerede meta-promptingsystemer, forstå potentielle trusler og anvende afbødende strategier kan udviklere skabe AI-agenter, der både er sikre og effektive. Desuden sikrer integration af en human-in-the-loop tilgang, at AI-agenter forbliver tilpasset brugerens behov, samtidig med at risici minimeres. Efterhånden som AI fortsætter med at udvikle sig, vil det være afgørende at opretholde en proaktiv tilgang til sikkerhed, privatliv og etiske overvejelser for at fremme tillid og pålidelighed i AI-drevne systemer.

Kodeeksempler

Har du flere spørgsmål om at bygge pålidelige AI-agenter?

Deltag i Microsoft Foundry Discord for at møde andre lærende, deltage i kontortimer og få svar på dine spørgsmål om AI-agenter.

Yderligere ressourcer

Forrige lektion

Agentic RAG

Næste lektion

Planlægningsdesignmønster


Ansvarsfraskrivelse: Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.