Freigeben über


Agent-Komponenten

Wichtig

Einige Informationen in diesem Artikel beziehen sich auf ein vorab veröffentlichtes Produkt, das vor der kommerziellen Veröffentlichung möglicherweise erheblich geändert wird. Microsoft übernimmt mit diesen Informationen keinerlei Gewährleistung, sei sie ausdrücklich oder konkludent.

Dieser Artikel bietet eine konzeptionelle Übersicht über die wichtigsten Komponenten, die definieren, wie benutzerdefinierte Security Copilot-Agents funktionieren, und hilft Ihnen, deren Struktur, Verhalten und Betriebslogik zu verstehen.

Agent

Ein Agent in Security Copilot ist eine eigenständige halb- oder vollständig autonome Berechnungsentität, die ein bestimmtes Ziel erreicht. Es wird durch seine Fähigkeit definiert, seine Umgebung wahrzunehmen und darauf zu reagieren, Entscheidungen zu treffen und Ergebnisse zu erzielen, um sein Ziel zu erreichen. Der Entwurf eines Agents informiert den Agent darüber, wie er sein Ziel erreichen kann, indem er entscheidet, welche Funktionen verwendet werden sollen, ob es sich um ein großes Sprachmodell (LLM), verbundene Tools (Skills) oder beides handelt. Die Entscheidungen des Agents basieren auf seinen Eingaben und Anweisungen, die dazu führen können, dass der Agent vordefinierte Logik verwendet oder einen LLM auffordert, diese Anweisungen zu interpretieren und zu befolgen.

Agents werden über einen Trigger aktiviert, der eine Agentausführung erstellt und jeden Schritt (oder jede Aufgabe) ausführt, bis ein Ergebnis erzielt wird. Während der gesamten Agent-Ausführung entscheidet es sich basierend auf den Anweisungen, ob ein LLM oder ein verbundenes Tool zum Abschließen einer Aufgabe verwendet wird.

Agents können mit Tools, externen Ressourcen, die über die LLM- und Agent-Anweisungen hinausgehen, interagieren, indem sie eine von zwei Auswahlstrategien verwenden:

  • Statisches Tool: Ein fester Satz von Ressourcen, die der Agent aufrufen kann, wie in der Agent-Definition aufgeführt, für einen einzelnen Schritt oder die gesamte Agent-Ausführung. Wenn dies so definiert ist, kann der LLM innerhalb eines Agents nicht entscheiden, Tools außerhalb des Definierten aufzurufen. Dies kann die Geschwindigkeit und die Relevanz der Toolergebnisse verbessern. Ein Threat Intelligence-Agent, der vordefinierte Quellen aufrufen soll, kann auf diese Weise entworfen werden.

  • Dynamisches Tool: Toolaufrufe werden während der Agent-Ausführung basierend auf Kontext, Argumentation oder Eingaben für den Agent ausgewählt. Tools, die dem Agent zur Verfügung gestellt werden, können zur Laufzeit eingeführt werden. Agents, die auf Bedingungen reagieren müssen, die bei einer Agent-Ausführung auftreten, können auf diese Weise entworfen werden. Beispielsweise kann ein Agent, der eine Entität anreichert, basierend auf dem Entitätstyp, der als Eingabe für den Agent bereitgestellt wird, unterschiedlich ausgeführt werden.

Entwickler und Security Copilot Benutzer können Agents mithilfe eines der beiden Methoden zur Toolauswahl basierend auf dem Ziel des Agents entwerfen. Das Ziel hilft auch zu informieren, ob das Ergebnis des Agenten einer Einzelperson, einem Team oder organization dient. Wenn Agents mit einer Identität ausgeführt werden, sollten der Bereich des Ergebnisses und die Berechtigungen der Identität aufeinander abgestimmt werden.

Unabhängig davon, ob Sie einen einfachen Warnungs-Selektierungs-Agent erstellen oder ein Multi-Agent-System für komplexe Untersuchungen orchestrieren, bietet dieser Artikel die grundlegenden Kenntnisse, die Sie für die Arbeit mit dem Security Copilot Agent-Framework benötigen, von der Toolauswahl über den Manifestentwurf bis hin zur Triggerkonfiguration und Governance.

Abbildung der Agent-Komponenten in Security Copilot

Anweisungen

Anweisungen sind Anweisungen, die einem Agenten erteilt werden, um seine Ziele zu definieren, seine Entscheidungsfindung zu informieren und sein Ergebnis zu beschreiben. Beispielsweise können Sie einen Selektierungs-Agent anweisen, sich auf Vorfälle mit hohem Schweregrad zu konzentrieren, oder einen Daten-Agent anweisen, nur Informationen zu pullen, die bestimmten Regeln entsprechen. Anweisungen helfen Agents dabei, genau und konsistent zu bleiben.

Tool

Bei einem Tool (Skill) handelt es sich um Ressourcen, auf die außerhalb der Agentanweisungen und llM zugegriffen wird, auf die ein Security Copilot-Agent zugreifen kann, um das Ergebnis zu vervollständigen. Stellen Sie sich ein Tool als Funktion in einer herkömmlichen Programmiersprache vor. Es hat einen Namen, einige Argumente und führt beim Aufruf eine klar definierte Aufgabe aus und gibt ein Ergebnis zurück.

Benutzer können die gewünschten Tools erstellen, die Security Copilot aufrufen können, um spezielle Aufgaben auszuführen oder mit externen Systemen zu interagieren.

Zum Beispiel:

  • Beantworten Von Lösungs- oder Reputationsfragen zu einer Entität, die noch nicht gesehen wurde, z. B. "Wer hat sich registriert? www.contoso.com?'

  • Beantworten Sie Fragen zu kundenspezifischen Daten, z. B. "Incident 1234 wirkt sich auf welche Benutzer aus?"

  • Interaktion mit externen Systemen, z. B. "Zurücksetzen des Kontokennworts für "testaccount@contoso.com".

  • Abrufen von kundenspezifischem Wissen aus einer Wissensquelle wie SharePoint.

Plug-In

Eine Sammlung verwandter Tools, die Benutzer in Security Copilot aktivieren können, wenn sie für die Erstellung neuer Eingabeaufforderungs-, Promptbook- oder agentic-Funktionen relevant sind. Für Agents erweitern Plug-Ins, was ein Agent tun kann, indem er Zugriff auf Ressourcen außerhalb eines Agents und LLM erhält. Ein Beispiel ist ein Plug-In, das eine API verwendet, um eine Verbindung mit einem externen Dienst herzustellen, z. B. die Reputationssuche, wobei zugrunde liegende Tooldefinitionen für das Plug-In eine Reputationsbewertung, zugehörige Schadsoftware, Threat Intelligence usw. zurückgeben können.

Toolformate

Security Copilot Plattform unterstützt mehrere Möglichkeiten zum Erstellen und Hosten von Tools (Skills), die verschiedenen Anforderungen entsprechen. Sie können Agents mit einer der unterstützten Skills erstellen. Die unterstützten Toolformate sind wie folgt:

Toolformat Am besten geeignet für Beispielanwendungsfall
API Integration externer oder interner Systeme Automatisieren von Kennwortzurücksetzungen, Abrufen von Bedrohungsinformationen aus APIs, Auslösen von Wartungsworkflows
GPT Stellt Definitionen für die Verarbeitung natürlicher Sprache bereit, die in zugrunde liegenden LLMs nicht nativ verfügbar sind. Domänenspezifische Definitionen, Zusammenfassen von Incidents in eindeutigen Formaten
KQL Abfragen von Microsoft-Datenquellen (Microsoft Defender, Microsoft Sentinel) Abrufen von Anmeldeprotokollen, Erkennen von Anomalien
AGENT Orchestrieren von mehrstufigen Workflows mit großen Sprachmodellen (LARGE Language Models, LLMs) und untergeordneten Tools Machen Sie sich mit der Hostingsituation einer URL vertraut, und verketten Sie mehrere Tools zur Untersuchung.
MCP Dynamische Integrationen mit mehreren Tools, die von einem MCP-Server verfügbar gemacht werden; Security Copilot ermittelt Tools zur Laufzeit. Aggregieren von Bedrohungen oder Orchestrieren der Behebung über mehrere Tools über mcp server.

Agentdefinition

Die Agentdefinition dient als Blaupause für einen Agent und ist eine wichtige Komponente der Manifestdatei. Es ist einer der Schlüssel der obersten Ebene im Manifest und gibt die Kernkonfiguration, die Funktionen und das Verhalten des Agents an. Es gibt Folgendes an:

  • Beschreibende Details/Metadatendetails (z. B. Name, Beschreibung).
  • Triggerdefinitionen, die beschreiben, welche Ereignisse die Ausführung des Agents bewirken.
  • Zugeordnete Tools oder Toolverweise, die der Agent zum Abschließen seiner Arbeit verwendet.

Als Security Copilot Entwickler sind die von Ihnen erstellten Agent-Definitionen für die Analysten verfügbar, um die Ergebnisse auszuführen und anzuzeigen.

Agent-instance

Ein Agent instance ist die bereitgestellte Version einer Agentdefinition in einem bestimmten Arbeitsbereich. Jede instance:

  • Behält seine eigene Identität oder Anmeldeinformationen bei.
  • Speichert instance spezifische Erinnerungen und Feedback.
  • Mehrere Mandanten und Arbeitsbereiche können über eine eigene instance derselben Agent-Definition verfügen. Konfigurationsänderungen oder Arbeitsspeicherupdates für eine instance haben keine Auswirkungen auf andere.

Manifest

Das Manifest definiert die Definition, Identität, Tools und Betriebslogik des Agents in einem strukturierten YAML- oder JSON-Format. Ähnlich wie bei einer Konfigurationsdatei in herkömmlichen Softwaresystemen gibt das Manifest Folgendes an:

  • Der einzigartige Zweck und die Aufgaben des Agents
  • Allgemeine Betriebsrichtlinien
  • Entscheidungslogik
  • Die Tools, die aufgerufen werden müssen
  • Andere Agents, die während der Ausführung aufgerufen werden können

Das Manifest enthält Metadaten (Agentdefinitionen und -fähigkeiten), die der Agent verwenden kann, wie diese Fähigkeiten gruppiert werden und welche Aktionen er ausführen kann. Die Manifestdatei wird gepackt und als Teil des Workflows des Agents auf der Security Copilot-Plattform bereitgestellt. SOC-Analysten interagieren über diese Plattform mit dem Agent, und der Agent reagiert auf Eingabeaufforderungen oder Ereignisse basierend auf der Manifestkonfiguration und Toollogik.

Hinweis

In den Beispielen wird das YAML-Format aufgeführt, da es für Menschen übersichtlicher zu lesen ist und Kommentare enthalten kann, aber beide Formate funktionieren gleichermaßen gut. Das JSON-Format ist mit dem YAML-Format identisch, verwendet aber stattdessen die JSON-Syntax.

Agent-YAML

Dies ist ein Beispiel für eine Beispieldatei manifest.yaml .


Descriptor:
  Name: Contoso.SecurityOperations.Samples-090925
  Description: DCA URL Geolocation Agent
  DisplayName: DCA URL Geolocation Agent

SkillGroups:
- Format: AGENT
  Skills:
  - Name: URL_Location_DCA_Agent_Entrypoint-090925
    Description: The entrypoint into the URL Location Agent
    Interfaces:
    - Agent
    Inputs:
    - Required: true
      Name: URL
      Description: A URL the agent should investigate
    Settings:
      Model: gpt-4.1
      Instructions: |
            <|im_start|>system
            You are an AI agent that helps a security analyst understand the hosting situation of a URL (the input).
            You'll do this by following a three-step process:
            1) Use ExtractHostname to find the hostname from the URL provided as input
            2) Use GetDnsResolutionsByIndicators to extract IP Addresses that the hostname has been observed resolving to. This may produce a list of IP Addresses.
            3) One-at-a time, use lookupIpAddressGeolocation to look up the geolocation of an IP address.

            Produce a simply formatted response telling the security analyst which locations that URL is being served from.  
            If you encounter an error share that.  
            Always return something the user knows that something happened.
            
            <|im_end|>
            <|im_start|>user
            {{URL}}
            <|im_end|>

    ChildSkills:
    - lookupIpAddressGeolocation
    - ExtractHostname_DCA-090925
    - GetDnsResolutionsByIndicators
- Format: GPT
  Skills:
  - Name: ExtractHostname_DCA-090925
    DisplayName: ExtractHostname_DCA-090925
    Description: ExtractHostname_DCA-090925
    Inputs:
    - Name: URL
      Description: A URL string
      Required: true
    Settings:
      ModelName: gpt-4.1
      Template: |-
        <|im_start|>system
        Return the hostname component of the URL provided as input.  For example:
        - If the input is 'https://www.mlb.com/', return 'www.mlb.com'
        - If the input is 'http://dev.mycompany.co.uk/sign-up/blah?a=12&b=12&c=32#23', return 'dev.mycompany.co.uk'
        - If the input is 'ftp:/x.espon.com', return 'x.espon.com'
        <|im_end|>
        <|im_start|>user
        {{URL}}
        <|im_end|>
- Format: KQL
  Skills:
    - Name: RecentUrlClicks_DCA-090925
      Description: Returns 10 recently clicked URLs
      Settings:
        Target: Defender
        Template: UrlClickEvents | sort by TimeGenerated desc | limit 10 | project Url

AgentDefinitions:
  - Name:  URLLocationAgent-090925
    DisplayName: URLLocationAgent
    Description: An agent to help an analyst understand URL hosting 
    Publisher: Contoso
    Product: SecurityOperations
    RequiredSkillsets:
      - Contoso.SecurityOperations.Samples-090925
      - ThreatIntelligence.DTI
      - DCA_SampleAPIPlugin
    AgentSingleInstanceConstraint: None
    Settings:
      - Name: LookbackWindowMinutes
        Label: Max Lookback Window in minutes
        Description: The maximum number of minutes to find clicked URLs
        HintText: You should probably enter 5
        SettingType: String
        Required: true
    Triggers:
      - Name: Default
        DefaultPeriodSeconds: 300
        FetchSkill: Contoso.SecurityOperations.Samples-090925.RecentUrlClicks_DCA-090925
        ProcessSkill: Contoso.SecurityOperations.Samples-090925.URL_Location_DCA_Agent_Entrypoint-090925

Der Agent folgt einem dreistufigen Prozess, um die untergeordneten Skills aufzurufen:

  • ExtractHostname: Verwendet das GPT-Tool ExtractHostname_DCA-090925 , um den Hostnamen aus der URL zu analysieren.

  • GetDnsResolutionsByIndicators: Verwendet den Microsoft Threat Intelligence-Skillsatz , um die dem Hostnamen zugeordneten IP-Adressen abzurufen. Sie müssen das Plug-In unter Quellen > verwalten benutzerdefiniert aktivieren. Stellen Sie sicher, dass RequiredSkillsets: ThreatIntelligence.DTI hinzugefügt werden muss, ohne welches GetDnsResolutionsByIndicators Tool nicht aufgerufen wird.

  • lookupIpAddressGeolocation: Ist die operationId in der OpenAPI-Spezifikation, auf die im API-Plug-In DCA_SampleAPIPlugin verwiesen wird, um Geolocationdaten für jede IP-Adresse nachzuschlagen. Eine Referenz finden Sie unter Build-API-Beispiel.

Auslöser

Ein Trigger startet den Workflow eines Agents. Es kann manuell gestartet oder so festgelegt werden, dass es nach einem Zeitplan ausgeführt wird. Sobald der Trigger aktiviert wurde, folgt der Agent seinem Plan und führt die Aktionen automatisch aus.

Agents arbeiten basierend auf einem strukturierten Aktionsplan und führen diesen Plan aus. Beispielsweise kann ein Phishing-Selektierungs-Agent bestimmen, welche Tools oder anderen Agents von seinen vorkonfigurierten Funktionen aufgerufen werden sollen. Die im Trigger definierten Tools wie FetchSkill und ProcessSkill dienen als Einstiegspunkte in den Workflow des Agents, der die Ausführung der Aufgabe leitet.

Im folgenden Beispiel:

Triggers:
      - Name: Default
        DefaultPeriodSeconds: 300
        FetchSkill: Contoso.SecurityCopilot.Samples-090925_1b.RecentUrlClicks_DCA-090925_1b
        ProcessSkill: Contoso.SecurityCopilot.Samples-090925_1b.URL_Location_DCA_Agent_Entrypoint-090925_1b
        Settings:

1.Alle 5 Minuten wird aufgerufen RecentUrlClicks_DCA-090925_1b , um neue Daten abzurufen.

2.Anschließend wird der ProcessSkill URL_Location_DCA_Agent_Entrypoint-090925_1b für jedes zurückgegebene Element aufgerufen, um auf die Daten zu reagieren.

Jeder dieser Zyklen ist eine Triggerausführung, und jeder Aufruf von ProcessSkill ist eine Triggerausführung. Diese Skillaufrufe werden in Sitzungen ausgeführt, die dem Agent-instance und Trigger zugeordnet sind, und verwenden die dem Agent zugeordnete Identität.

FetchSkill und ProcessSkill

FetchSkill

Wenn ein Trigger bei einer Agent-Ausführung aktiviert wird, sammelt fetchSkill , falls konfiguriert, Daten. ProcessSkill definiert, wie Agents während der Ausführung auf diese Daten reagieren. Nachdem die Daten abgerufen wurden, übernimmt das ProcessSkill-Verfahren, das diese Daten als Eingabe verwendet, um bestimmte Aktionen oder Analysen durchzuführen. Diese beiden Komponenten arbeiten zusammen, um dynamische, datengesteuerte Workflows zu ermöglichen. Wenn der FetchSkill-Wert festgelegt ist, ruft der Trigger zuerst fetchSkill auf.

Wichtig

Fetch- und ProcessSkills müssen nach Skillset zusammengefasst werden. Sie müssen das Format Skillset name.Skill nameaufweisen.

Aus dem Beispiel für Trigger ist RecentUrlClicks_DCA.Skill name ist Skillset name die Descriptor.name (z. B. Contoso.SecurityCopilot.Samples-090925_1b). Der vollqualifizierte Qualifikationsname lautet also Contoso.SecurityCopilot.Samples-090925_1b. RecentUrlClicks_DCA.

ProcessSkill

Wenn ein FetchSkill definiert ist, wird für jedes Ausgabeobjekt der ProcessSkill aufgerufen, wobei die Ausgabewerte als Eingaben für processSkill verwendet werden. Wenn kein FetchSkill definiert ist, wird processSkill aufgerufen.

{
    [
        {
            "Incident": 1,
            "name": "Item One",
            "created_at": "2024-02-17T12:34:56Z"
        },
        {
            "Incident": 2,
            "name": "Item Two",
            "created_at": "2024-02-17T12:35:30Z"
        },
        {
            "Incident": 3,
            "name": "Item Three",
            "created_at": "2024-02-17T12:36:10Z"
        }
    ]
}

Im Beispiel wird ProcessSkill dreimal mit Incident, nameund created_at als Eingaben aufgerufen.

Arbeitsbereich

Ein Container für die Arbeit. Agents arbeiten im Kontext eines Arbeitsbereichs. Der Arbeitsbereich bietet eine Steuerungseinheit für Zugriff, Konfiguration, Verbrauch und Datenverarbeitung.

Arbeitsspeicher

Der Arbeitsspeicher ermöglicht es Agents, den Kontext über Interaktionen hinweg beizubehalten, sodass intelligentere und personalisiertere Antworten möglich sind. Durch das Speichern relevanter Informationen wie vergangene Aktionen, Benutzereinstellungen oder Incidentverlauf können Agents Kontinuität gewährleisten und die Entscheidungsfindung im Laufe der Zeit verbessern.