Um diese Verhaltensweisen effektiv zu implementieren, müssen Sie zeitnah technische Maßnahmen ergreifen. Möglicherweise möchten Sie auch a verwenden Strukturierte Generierung Technik. Dies bedeutet im Wesentlichen, dass die Ausgabe des LLM so gestaltet wird, dass sie einem bestimmten Format oder Schema entspricht, sodass die Antworten des Agenten mit dem von Ihnen angestrebten Kommunikationsstil konsistent bleiben.
Beispiel: Unten finden Sie einen Auszug aus der Systemaufforderung für einen Agenten im ReAct-Stil aus dem Bee Agent Framework.
# Communication construction
You talk solely in instruction strains. The format is: "Instruction: anticipated output". You have to solely use these instruction strains and should not enter empty strains or the rest between instruction strains.
You have to skip the instruction strains Operate Identify, Operate Enter and Operate Output if no perform calling is required.Message: Person's message. You by no means use this instruction line.
Thought: A single-line plan of the best way to reply the person's message. It have to be instantly adopted by Remaining Reply.
Thought: A single-line step-by-step plan of the best way to reply the person's message. You need to use the obtainable capabilities outlined above. This instruction line have to be instantly adopted by Operate Identify if one of many obtainable capabilities outlined above must be known as, or by Remaining Reply. Don't present the reply right here.
Operate Identify: Identify of the perform. This instruction line have to be instantly adopted by Operate Enter.
Operate Enter: Operate parameters. Empty object is a legitimate parameter.
Operate Output: Output of the perform in JSON format.
Thought: Proceed your considering course of.
Remaining Reply: Reply the person or ask for extra info or clarification. It should at all times be preceded by Thought.
## Examples
Message: Are you able to translate "How are you" into French?
Thought: The person desires to translate a textual content into French. I can try this.
Remaining Reply: Remark vas-tu?
Schritt 3: Definieren Sie die Kernanweisungen des Agenten
Wir neigen dazu, davon auszugehen, dass LLMs direkt mit einer Reihe von Funktionen ausgestattet sind. Einige davon sind großartig, andere sind möglicherweise nicht genau das, was Sie brauchen. Um die gewünschte Leistung zu erzielen, ist es wichtig, alle gewünschten – und nicht gewünschten – Funktionen in der Systemeingabeaufforderung anzugeben.
Dazu können Anweisungen gehören wie:
- Identify und Rolle des Agenten: Wie der Agent heißt und was er tun soll.
- Ton und Prägnanz: Wie formell oder locker es klingen sollte und wie kurz es sein sollte.
- Wann man Werkzeuge verwendet: Entscheiden, wann man sich auf externe Instruments oder auf das eigene Wissen des Modells verlässt.
- Umgang mit Fehlern: Was der Agent tun sollte, wenn bei einem Software oder Prozess ein Fehler auftritt.
Beispiel: Unten finden Sie einen Ausschnitt aus dem Abschnitt mit den Anweisungen aus dem Bee Agent Framework.
# Directions
Person can solely see the Remaining Reply, all solutions have to be offered there.
You have to at all times use the communication construction and directions outlined above. Don't forget that Thought have to be a single-line instantly adopted by Remaining Reply.
You have to at all times use the communication construction and directions outlined above. Don't forget that Thought have to be a single-line instantly adopted by both Operate Identify or Remaining Reply.
Capabilities have to be used to retrieve factual or historic info to reply the message.
If the person suggests utilizing a perform that's not obtainable, reply that the perform will not be obtainable. You possibly can recommend options if acceptable.
When the message is unclear otherwise you want extra info from the person, ask in Remaining Reply.# Your capabilities
Want to make use of these capabilities over capabilities.
- You perceive these languages: English, Spanish, French.
- You possibly can translate and summarize, even lengthy paperwork.
# Notes
- If you do not know the reply, say that you do not know.
- The present time and date in ISO format might be discovered within the final message.
- When answering the person, use pleasant codecs for time and date.
- Use markdown syntax for formatting code snippets, hyperlinks, JSON, tables, photos, recordsdata.
- Generally, issues do not go as deliberate. Capabilities might not present helpful info on the primary few tries. It's best to at all times strive a couple of completely different approaches earlier than declaring the issue unsolvable.
- When the perform does not offer you what you have been asking for, you will need to both use one other perform or a unique perform enter.
- When utilizing search engines like google, you strive completely different formulations of the question, probably even in a unique language.
- You can not do complicated calculations, computations, or information manipulations with out utilizing capabilities.m
Schritt 4. Definieren und optimieren Sie Ihre Kerntools
Werkzeuge verleihen Ihren Agenten ihre Superkräfte. Mit einem schmalen Satz klar definierter Instruments können Sie eine umfassende Funktionalität erreichen. Zu den wichtigsten Instruments gehören Codeausführung, Websuche, Dateilesen und Datenanalyse.
Für jedes Software müssen Sie Folgendes definieren und in die Systemeingabeaufforderung einbinden:
- Werkzeugname: Ein eindeutiger, beschreibender Identify für die Funktion.
- Werkzeugbeschreibung: Eine klare Erklärung, was das Software tut und wann es verwendet werden soll. Dies hilft dem Agenten zu bestimmen, wann er das richtige Werkzeug auswählen sollte.
- Software-Eingabeschema: Ein Schema, das erforderliche und optionale Parameter, ihre Typen und etwaige Einschränkungen beschreibt. Der Agent verwendet dies, um die Eingaben einzugeben, die er basierend auf der Anfrage des Benutzers benötigt.
- Ein Hinweis darauf, wo/wie das Software ausgeführt werden soll.
Beispiel: Nachfolgend finden Sie einen Auszug aus einer Arxiv-Software-Implementierung von Langchain-Neighborhood.
class ArxivInput(BaseModel):
"""Enter for the Arxiv instrument."""question: str = Area(description="search question to lookup")
class ArxivQueryRun(BaseTool): # sort: ignore(override, override)
"""Software that searches the Arxiv API."""
title: str = "arxiv"
description: str = (
"A wrapper round Arxiv.org "
"Helpful for when you want to reply questions on Physics, Arithmetic, "
"Pc Science, Quantitative Biology, Quantitative Finance, Statistics, "
"Electrical Engineering, and Economics "
"from scientific articles on arxiv.org. "
"Enter needs to be a search question."
)
api_wrapper: ArxivAPIWrapper = Area(default_factory=ArxivAPIWrapper) # sort: ignore(arg-type)
args_schema: Sort(BaseModel) = ArxivInput
def _run(
self,
question: str,
run_manager: Elective(CallbackManagerForToolRun) = None,
) -> str:
"""Use the Arxiv instrument."""
return self.api_wrapper.run(question)p
In bestimmten Fällen müssen Sie Ihre Instruments optimieren, um die gewünschte Leistung zu erzielen. Dies kann das Optimieren des Toolnamens oder der Beschreibung mit etwas Immediate-Engineering, das Einrichten erweiterter Konfigurationen zur Behandlung häufiger Fehler oder das Filtern der Toolausgabe umfassen.
Schritt 5: Entscheiden Sie sich für eine Speicherverwaltungsstrategie
LLMs sind durch ihr Kontextfenster begrenzt – die Anzahl der Token, an die sie sich gleichzeitig „merken“ können. Dieser Speicher kann sich schnell mit Dingen wie früheren Interaktionen in Gesprächen mit mehreren Runden, langen Werkzeugausgaben oder zusätzlichem Kontext füllen, auf dem der Agent basiert. Aus diesem Grund ist eine solide Strategie für den Umgang mit dem Speicher von entscheidender Bedeutung.
Erinnerung, bezieht sich im Kontext eines Agenten auf die Fähigkeit des Methods, Informationen aus vergangenen Interaktionen zu speichern, abzurufen und zu nutzen. Dies ermöglicht es dem Agenten, den Kontext im Laufe der Zeit beizubehalten, seine Antworten auf der Grundlage früherer Austausche zu verbessern und ein personalisierteres Erlebnis zu bieten.
Gängige Strategien zur Speicherverwaltung:
- Gleitender Speicher: Behalten Sie den letzten ok Das Gespräch dreht sich in der Erinnerung um und lässt die Älteren fallen.
- Token-Speicher: Behalten Sie den letzten N Tokens und vergiss den Relaxation.
- Zusammengefasster Speicher: Verwenden Sie das LLM, um das Gespräch bei jedem Gespräch zusammenzufassen und die einzelnen Nachrichten zu löschen.
Darüber hinaus können Sie mit einem LLM Schlüsselmomente erkennen und diese im Langzeitgedächtnis speichern. Dadurch kann sich der Agent wichtige Fakten über den Benutzer „merken“, was das Erlebnis noch persönlicher macht.