Agent Framework-Anleitungen

Erste Schritte mit einem Notebook

Machen Sie mit dem Agent Framework in einem Notebook erste Schritte mit einem „Hello World“-Agenten.

Beispiel-Kundenservicemitarbeiter

Wenn Sie sich Beispielcode für Beispiel-Kundenservicemitarbeiter ansehen möchten, laden Sie die ZIP-Datei aus diesem Google Drive-Ordner in Ihre lokale Entwicklungsumgebung herunter.

Im Verzeichnis „samples“ befinden sich Demo-Kundenservicemitarbeiter. Installieren Sie die Abhängigkeiten in der requirements.txt-Datei für einen bestimmten Demo-Agenten:

pip install  -r samples/anthropic_demo/requirements.txt

Führen Sie folgende Befehle aus:

af web samples
af run samples/hello_world

Tutorials

Auf dieser Seite finden Sie Schritt-für-Schritt-Anleitungen für gängige Aufgaben bei der Arbeit mit dem Agent Framework. Wählen Sie ein Tutorial aus, um loszulegen.

Anleitung: Eigene Daten in einen Agenten einbinden

In dieser Anleitung werden verschiedene Methoden beschrieben, wie Sie Ihre eigenen Daten, Ihr Wissen oder Dokumente an Ihren Kundenservicemitarbeiter weitergeben können. Der beste Ansatz hängt von der Größe und Art Ihrer Daten sowie vom gewünschten Gleichgewicht zwischen Latenz und Genauigkeit ab.

Eigene Daten bereitstellen

Je nach Größe, Typ und gewünschtem Kompromiss zwischen Latenz und Genauigkeit gibt es verschiedene Möglichkeiten, dem Kundenservicemitarbeiter eigene Daten, Informationen oder Dokumente zur Verfügung zu stellen.

Typ Kleiner Betrag Großer Betrag
Nur Text In Anleitung oder RAG einbetten RAG
Dokumente In Anleitung oder RAG einbetten RAG
Andere Medien 
(Bilder, Audios, Videos usw.)
WIP WIP

In den folgenden Anleitungen finden Sie weitere Informationen zu den einzelnen Ansätzen.

Daten in Anleitungen einbetten

Eine einfache Möglichkeit, dem Kundenservicemitarbeiter eine kleine Anzahl von Dokumenten zur Verfügung zu stellen, besteht darin, sie in die Anleitung einzubetten.

PDF- oder andere Textdateien können in Nur-Text konvertiert und in die Anleitung eingebettet werden.

Hinweise

  • Der Inhalt der Dateien wird an das Modell gesendet. Je größer die Datei, desto höher sind die Latenz und die Kosten.

  • Die Inhalte werden für alle Anfragen an das Modell gesendet, unabhängig davon, ob die Suchanfrage des Nutzers etwas mit den Inhalten zu tun hat.

  • Sie können für Ihre Datei Nur-Text oder ein beliebiges lesbares Textformat wie Markdown verwenden.

Sicherheitsrisiken

  • Das Einbetten von Inhalten auf diese Weise birgt einige Sicherheitsrisiken, da der Server den Inhalt der eingebetteten Dokumente als eigene Anweisungen behandeln kann.

  • Dieses Sicherheitsrisiko kann bis zu einem gewissen Grad verringert werden, indem Anfang und Ende der eingebetteten Inhalte deutlich gekennzeichnet werden, wie im Beispiel unten gezeigt.

  • Aufgrund dieses Risikos sollten Sie keine Inhalte einbetten, denen Sie nicht vertrauen, z.B. von Nutzern erstellte Inhalte.

Beispiel

Um die Anleitung lesbar zu machen, wird häufig die Datei geladen und mithilfe der F-String-Syntax von Python in die Anleitung eingefügt.

Beachten Sie, dass der Inhalt der Datei mithilfe von XML-Tags vom Rest der Anleitung getrennt wird. Sie können auch andere Trennlinien verwenden, solange sie für das Modell klar erkennbar sind. z.B. Tags wie BEGIN_USER_GUIDE / END_USER_GUIDE.

def read_file(filename):
  file_path = os.path.join(os.path.dirname(__file__), filename)
  with open(file_path, 'r') as f:
    return f.read()

agent_framework_bot = Agent(
    # ...
    instruction=f"""You are an agent that answers user's questions about the Agent Framework.

You answer users' questions based on the user guide below:
<user_guide>
{read_file('user_guide.md')}
</user_guide>
"""
)

RAG verwenden

Die Retrieval-Augmented Generation ist ein gängiges Muster, um Modellantworten mit Ihren eigenen Daten zu ergänzen. Sie ist besonders nützlich für große Datenmengen, da die Daten indexiert und nur ein kleiner Teil der Daten abgerufen wird, der für die Abfrage relevant ist.

Das Agent Framework bietet verschiedene Möglichkeiten zur Integration in verschiedene RAG-Systeme.

Szenarien Empfehlungen
Demos / Prototypen FilesRetrieval
Kleine Datenmenge
(ein paar Dokumente)
FilesRetrieval
Vollständig verwaltete RAG-Lösung VertexRagRetrieval
DIY- oder andere RAG-Lösungen LlamaIndexRetrieval

FilesRetrieval

FilesRetrieval erstellt beim Starten des Agents einen In-Memory-Vektorspeicher. Dies erhöht die Latenz und ist auf den Arbeitsspeicher und die Leistung der API-Hosting-Umgebung beschränkt. Daher eignet sich diese Option nur für Demos / Prototypen oder die Produktion mit sehr wenigen Dokumenten.

FilesRetrieval basiert auf LlamaIndex. Sie müssen es gemäß der LlamaIndex-Dokumentation einrichten.

Nach der Einrichtung können Sie Ihre Dokumente in einen Ordner legen und so ein Abruftool erstellen:

company_policies_retrieval = FilesRetrieval(
    name='company_policies',
    description='Company policies about flight cancelation and rebooking.',
    input_dir=os.path.join(os.path.dirname(__file__), 'company_policies'),
)

root_agent = Agent(
  # ...
  tools=[company_policies_retrieval],
)

VertexRagRetrieval

Die Vertex RAG-Engine ist ein vollständig verwalteter Dienst, der die Datenaufnahme, ‑transformation, ‑einbettung, ‑indexierung und ‑abfrage verarbeitet.

Folgen Sie der Kurzanleitung, um den Corpus einzurichten und Dokumente zu importieren. Fügen Sie das Tool dann Ihrem Kundenservicemitarbeiter hinzu.

company_policies_retrieval = VertexRagRetrieval(
    name='company_policies',
    description='Company policies about flight cancelation and rebooking.',
    rag_corpus_name='projects/.../locations/.../ragCorpora/...',
)
root_agent = Agent(
  # ...
  tools=[company_policies_retrieval],
)

So kann er in Echtzeit auf aktuelles Wissen zugreifen und Fragen mithilfe der Google Suche recherchieren.

Hinweise

  • Für die Fundierung mit der Google Suche können zusätzliche Gebühren anfallen.
  • Für Gemini 1.5:
    • Wenn Sie einem Kundenservicemitarbeiter das Google-Suchtool hinzufügen, können Sie für diesen Kundenservicemitarbeiter keine anderen Tools verwenden.
    • Das Google-Suchtool wird immer ausgeführt, unabhängig davon, ob für die Suchanfrage die Google Suche erforderlich ist oder nicht.
  • Gemini 2.0 und höher:
    • Sie können andere Tools verwenden, während Sie das Google-Suchtool nutzen.
    • Das Google-Suchtool wird nur ausgeführt, wenn das Modell es für erforderlich hält.
  • Drittanbietermodelle unterstützen keine Google-Suchtools.
  • Wenn Sie das Google-Suchtool verwenden möchten, müssen Sie die Richtlinien unter Google-Suchvorschläge verwenden einhalten. Dazu gehört auch, dass Sie immer ein Banner anzeigen, in dem ähnliche Suchanfragen in der Google Suche präsentiert werden. Diese Regeln gelten auch für die Entwickleroberfläche.

Beispiel

Das Google-Suchtool lässt sich ganz einfach aktivieren. Fügen Sie dazu einfach google_search zu Ihrer Toolliste hinzu.

from agents.tools import google_search

root_agent = Agent(
    # ...
    tools=[google_search],
)

Anleitung: Leistung des Kundenservicemitarbeiters bewerten

Die Bewertung Ihres Kundenservicemitarbeiters ist wichtig, damit er wie erwartet funktioniert und Ihren Qualitätsstandards entspricht. Das Agent Framework bietet mehrere Möglichkeiten, die Leistung von Kundenservicemitarbeitern mithilfe von Testdateien und Bewertungskriterien zu bewerten.

So funktioniert die Bewertung

Jede Testdatei enthält eine Liste von Abfragen, erwartete Tool-Trajektorien und Referenzantworten. Testdateien können in Ordnern organisiert werden. Optional kann ein Ordner eine test_config.json-Datei enthalten, in der die Bewertungskriterien angegeben sind.

Beispiel für eine Testdatei

Eine Testdatei enthält eine Sitzung mit Abfragen, der erwarteten Toolnutzung und Referenzantworten. Hier ein Beispiel:

[
  {
    "query": "hi",
    "expected_tool_use": [],
    "reference": "Hello! What can I do for you?\n"
  },
  {
    "query": "roll a die for me",
    "expected_tool_use": [
      {
        "tool_name": "roll_die",
        "tool_input": {
          "sides": 6
        }
      }
    ]
  },
  {
    "query": "what's the time now?",
    "expected_tool_use": [],
    "reference": "I'm sorry, I cannot access real-time information, including the current time. My capabilities are limited to rolling dice and checking prime numbers.\n"
  }
]

Bewertungskriterien

Die Bewertungskriterien in test_config.json legen fest, wie die Leistung des Kundenservicemitarbeiters gemessen wird:

  • tool_trajectory_avg_score: Bewerten Sie die Werkzeugbahnen.
  • response_match_score: Antworten auswerten.

Wenn keine Bewertungskriterien angegeben werden, wird eine Standardkonfiguration angewendet.

Beispiel für Bewertungskriterien (test_config.json)

Hier sehen Sie ein Beispiel für eine test_config.json-Datei mit benutzerdefinierten Bewertungskriterien:

{
  "criteria": {
    "tool_trajectory_avg_score": 1.0,
    "response_match_score": 0.8
  }
}
  • tool_trajectory_avg_score: Ist auf „1.0“ festgelegt, wird eine perfekte Tool-Bahn erwartet.
  • response_match_score: Ist auf 0,8 festgelegt, was einen kleinen Fehlertoleranzbereich bei den Antworten des Kundenservicemitarbeiters ermöglicht.

Möglichkeiten zur Ausführung der Bewertung

1. af web – Bewertungen über die Web-UI ausführen

Sie können Kundenservicemitarbeiter über unsere webbasierte Benutzeroberfläche interaktiv bewerten.

Schritte:
  1. Starten Sie den Webserver mit dem Befehl bash af web.
  2. In der Weboberfläche:
    • Wählen Sie einen Agent aus.
    • Klicken Sie auf Sitzung als Testdatei speichern, um eine Sitzung als Testdatei zu speichern.
    • Klicken Sie auf Testdatei ausführen, um ein Pop-up-Fenster mit Testdateien im Ordner des Kundenservicemitarbeiters aufzurufen.
Testdateien:

Testdateien werden im selben Ordner wie der Agent gespeichert. Sie können Testdateien bei Bedarf manuell aktualisieren oder hinzufügen.

2. af test – Tests über die Befehlszeile ausführen

Mit dem Befehl af test können Sie alle Testdateien in einem bestimmten Ordner ausführen. Der Ordner sollte die Agentendefinition und die Testdateien enthalten.

Beispiel:
af test samples/agent_folder

Mit diesem Befehl werden alle Testdateien (*.test.json) im angegebenen Ordner gefunden und ausgeführt.

3. pytest – Tests programmatisch ausführen

Sie können pytest auch verwenden, um Testdateien im Rahmen Ihrer Integrationstests auszuführen.

Beispielbefehl:
pytest tests/integrations/
Beispiel für Testcode:

Hier ist ein Beispiel für einen pytest-Testfall, mit dem eine einzelne Testdatei ausgeführt wird:

def test_with_single_test_file():
    """Test the agent's basic ability via a session file."""
    AgentEvaluator.evaluate(
        "tests.integration.fixture.home_automation_agent",
        "tests/integration/fixture/home_automation_agent/simple_test.test.json",
    )

Mit diesem Ansatz können Sie Agentenbewertungen in Ihre CI/CD-Pipelines oder größeren Test-Suites einbinden.