ai-agents-for-beginners

Trustworthy AI Agents

(Klicken Sie auf das obige Bild, um das Video dieser Lektion anzusehen)

Vertrauenswürdige KI-Agenten erstellen

Einleitung

Diese Lektion behandelt

Lernziele

Nach Abschluss dieser Lektion wissen Sie, wie Sie

Sicherheit

Betrachten wir zunächst den Aufbau sicherer, agentischer Anwendungen. Sicherheit bedeutet, dass der KI-Agent wie vorgesehen funktioniert. Als Entwickler agentischer Anwendungen verfügen wir über Methoden und Werkzeuge, um die Sicherheit zu maximieren.

Aufbau eines Systemnachrichten-Frameworks

Wenn Sie jemals eine KI-Anwendung mit großen Sprachmodellen (LLMs) entwickelt haben, kennen Sie die Bedeutung der Gestaltung eines robusten System-Prompts oder einer Systemnachricht. Diese Prompts legen die Meta-Regeln, Anweisungen und Richtlinien für die Interaktion des LLMs mit dem Benutzer und den Daten fest.

Für KI-Agenten ist der System-Prompt noch wichtiger, da KI-Agenten hochspezifische Anweisungen benötigen, um die von uns für sie entwickelten Aufgaben zu erfüllen.

Um skalierbare System-Prompts zu erstellen, können wir ein Systemnachrichten-Framework für den Aufbau eines oder mehrerer Agenten in unserer Anwendung verwenden.

Building a System Message Framework

Schritt 1: Erstellen einer Meta-Systemnachricht

Der Meta-Prompt wird von einem LLM verwendet, um die System-Prompts für die von uns erstellten Agenten zu generieren. Wir gestalten ihn als Vorlage, damit wir bei Bedarf mehrere Agenten effizient erstellen können.

Hier ist ein Beispiel für eine Meta-Systemnachricht, die wir dem LLM geben würden.

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. 

Schritt 2: Erstellen eines grundlegenden Prompts

Der nächste Schritt ist die Erstellung eines grundlegenden Prompts zur Beschreibung des KI-Agenten. Sie sollten die Rolle des Agenten, die Aufgaben, die der Agent erledigen wird, und alle weiteren Verantwortlichkeiten des Agenten angeben.

Hier ist ein Beispiel

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.  

Schritt 3: Bereitstellen einer grundlegenden Systemnachricht für das LLM

Nun können wir diese Systemnachricht optimieren, indem wir die Meta-Systemnachricht als Systemnachricht und unsere grundlegende Systemnachricht bereitstellen.

Dies erzeugt eine Systemnachricht, die besser für die Führung unserer KI-Agenten geeignet ist.

**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.

Schritt 4: Iterieren und Verbessern

Der Wert dieses Systemnachrichten-Frameworks liegt darin, die Erstellung von Systemnachrichten für mehrere Agenten einfacher skalieren zu können, sowie Ihre Systemnachrichten im Laufe der Zeit zu verbessern. Es ist selten, dass eine Systemnachricht auf Anhieb für Ihren vollständigen Anwendungsfall funktioniert. Die Möglichkeit, kleine Anpassungen und Verbesserungen vorzunehmen, indem Sie die grundlegende Systemnachricht ändern und durch das System laufen lassen, ermöglicht es Ihnen, Ergebnisse zu vergleichen und zu bewerten.

Bedrohungen verstehen

Um vertrauenswürdige KI-Agenten zu entwickeln, ist es wichtig, die Risiken und Bedrohungen für Ihren KI-Agenten zu verstehen und zu mindern. Betrachten wir nur einige der verschiedenen Bedrohungen für KI-Agenten und wie Sie besser planen und sich darauf vorbereiten können.

Understanding Threats

Aufgabe und Anweisung

Beschreibung: Angreifer versuchen, die Anweisungen oder Ziele des KI-Agenten durch Prompts oder die Manipulation von Eingaben zu ändern.

Abhilfe: Führen Sie Validierungsprüfungen und Eingangsfilter durch, um potenziell gefährliche Prompts zu erkennen, bevor sie vom KI-Agenten verarbeitet werden. Da diese Angriffe in der Regel eine häufige Interaktion mit dem Agenten erfordern, ist die Begrenzung der Anzahl von Gesprächsrunden eine weitere Möglichkeit, diese Art von Angriffen zu verhindern.

Zugriff auf kritische Systeme

Beschreibung: Wenn ein KI-Agent Zugriff auf Systeme und Dienste hat, die sensible Daten speichern, können Angreifer die Kommunikation zwischen dem Agenten und diesen Diensten kompromittieren. Dies können direkte Angriffe oder indirekte Versuche sein, über den Agenten Informationen über diese Systeme zu erhalten.

Abhilfe: KI-Agenten sollten nur bei Bedarf Zugriff auf Systeme haben, um diese Art von Angriffen zu verhindern. Die Kommunikation zwischen dem Agenten und dem System sollte ebenfalls sicher sein. Die Implementierung von Authentifizierung und Zugriffskontrolle ist eine weitere Möglichkeit, diese Informationen zu schützen.

Ressourcen- und Serviceüberlastung

Beschreibung: KI-Agenten können auf verschiedene Tools und Dienste zugreifen, um Aufgaben zu erledigen. Angreifer können diese Fähigkeit nutzen, um diese Dienste anzugreifen, indem sie über den KI-Agenten eine hohe Anzahl von Anfragen senden, was zu Systemausfällen oder hohen Kosten führen kann.

Abhilfe: Implementieren Sie Richtlinien, um die Anzahl der Anfragen zu begrenzen, die ein KI-Agent an einen Dienst stellen kann. Die Begrenzung der Anzahl von Gesprächsrunden und Anfragen an Ihren KI-Agenten ist eine weitere Möglichkeit, diese Art von Angriffen zu verhindern.

Vergiftung der Wissensbasis

Beschreibung: Diese Art von Angriff zielt nicht direkt auf den KI-Agenten, sondern auf die Wissensbasis und andere Dienste, die der KI-Agent verwenden wird. Dies könnte die Beschädigung von Daten oder Informationen beinhalten, die der KI-Agent zur Erledigung einer Aufgabe verwenden wird, was zu verzerrten oder unbeabsichtigten Antworten an den Benutzer führt.

Abhilfe: Führen Sie regelmäßige Überprüfungen der Daten durch, die der KI-Agent in seinen Arbeitsabläufen verwenden wird. Stellen Sie sicher, dass der Zugriff auf diese Daten sicher ist und nur von vertrauenswürdigen Personen geändert wird, um diese Art von Angriffen zu vermeiden.

Kaskadierende Fehler

Beschreibung: KI-Agenten greifen auf verschiedene Tools und Dienste zu, um Aufgaben zu erledigen. Fehler, die von Angreifern verursacht werden, können zu Ausfällen anderer Systeme führen, mit denen der KI-Agent verbunden ist, wodurch sich der Angriff weiter ausbreitet und die Fehlerbehebung erschwert wird.

Abhilfe: Eine Methode zur Vermeidung dessen ist, den KI-Agenten in einer begrenzten Umgebung laufen zu lassen, z. B. bei der Ausführung von Aufgaben in einem Docker-Container, um direkte Systemangriffe zu verhindern. Die Erstellung von Fallback-Mechanismen und Wiederholungslogik, wenn bestimmte Systeme mit einem Fehler antworten, ist eine weitere Möglichkeit, größere Systemausfälle zu verhindern.

Mensch-in-der-Schleife

Eine weitere effektive Methode, um vertrauenswürdige KI-Agentensysteme zu entwickeln, ist die Verwendung eines Human-in-the-loop. Dies schafft einen Fluss, bei dem Benutzer während des Laufs Feedback an die Agenten geben können. Benutzer fungieren im Wesentlichen als Agenten in einem Multi-Agenten-System und geben die Genehmigung oder Beendigung des laufenden Prozesses.

Human in The Loop

Hier ist ein Code-Snippet mit AutoGen, das zeigt, wie dieses Konzept implementiert wird.


# Create the agents.
model_client = OpenAIChatCompletionClient(model="gpt-4o-mini")
assistant = AssistantAgent("assistant", model_client=model_client)
user_proxy = UserProxyAgent("user_proxy", input_func=input)  # Use input() to get user input from console.

# Create the termination condition which will end the conversation when the user says "APPROVE".
termination = TextMentionTermination("APPROVE")

# Create the team.
team = RoundRobinGroupChat([assistant, user_proxy], termination_condition=termination)

# Run the conversation and stream to the console.
stream = team.run_stream(task="Write a 4-line poem about the ocean.")
# Use asyncio.run(...) when running in a script.
await Console(stream)

Fazit

Der Aufbau vertrauenswürdiger KI-Agenten erfordert sorgfältiges Design, robuste Sicherheitsmaßnahmen und kontinuierliche Iteration. Durch die Implementierung strukturierter Meta-Prompting-Systeme, das Verständnis potenzieller Bedrohungen und die Anwendung von Abhilfemaßnahmen können Entwickler KI-Agenten schaffen, die sowohl sicher als auch effektiv sind. Darüber hinaus sorgt die Einbeziehung eines Human-in-the-loop-Ansatzes dafür, dass KI-Agenten auf die Bedürfnisse der Benutzer abgestimmt bleiben und gleichzeitig Risiken minimiert werden. Da sich die KI weiterentwickelt, wird eine proaktive Haltung in Bezug auf Sicherheit, Datenschutz und ethische Erwägungen der Schlüssel zur Förderung von Vertrauen und Zuverlässigkeit in KI-gesteuerten Systemen sein.

Haben Sie weitere Fragen zum Aufbau vertrauenswürdiger KI-Agenten?

Treten Sie dem Azure AI Foundry Discord bei, um andere Lernende zu treffen, Sprechstunden zu besuchen und Ihre Fragen zu KI-Agenten beantwortet zu bekommen.

Zusätzliche Ressourcen

Vorherige Lektion

Agentic RAG

Nächste Lektion

Planungsmuster