LangChain BlogAktualisiert

Erstellen Sie hervorragende, sofort verfügbare Benutzererlebnisse mit Managed Deep Agents

Wichtigste Erkenntnisse Die neue Reaktions-API für Slack-Kanäle ermöglicht es, Ladezustände und Ergebnisse für Managed Deep Agents zu erstellen, indem man einfache Heuristiken oder Entscheidungsmodell

Bildquelle · LangChain Blog

Wichtigste Erkenntnisse

  • Die neue Reaktions-API für Slack-Kanäle ermöglicht es, Ladezustände und Ergebnisse für Managed Deep Agents zu erstellen, indem man einfache Heuristiken oder Entscheidungsmodelle wie Jev verwendet.
  • Dieses neue SDK hilft dabei, benutzerfreundliche Interfaces und Ladezustände für Nutzer zu erstellen, die mit Agenten interagieren.
  • Sehen Sie, wie wir dieses Designdenken mit unseren internen Agenten und nicht-Entwickler-Nutzern anwenden.

‍

Ladezustände sind einer der am wenigsten geschätzten (und vergessenen) Designaspekte bei der Erstellung effektiver Benutzererlebnisse für Agenten.

Nach unserer Erfahrung vertrauen Benutzer Agenten, wenn sie eine Sicht auf das tun haben, was diese Agenten tatsächlich tun. Dieses Verhalten zeigt sich häufig in Form von skeuometrischem UI – einem Designkonzept, bei dem digitale Objekte realistische Gegenstände nachahmen. Das visionäre Domino’s Pizza Tracker ist eines der bemerkenswertesten Beispiele für skeuometrisches Design, das auf Agenten angewandt werden kann. Heutzutage sind digitale Ladezustände – sogar solche, die euch täuschen können – entscheidend, um jedes Benutzererlebnis verständlich und effektiv zu machen. Das neue SDK für Agent-Reaktionen für Managed Deep Agents ist ein großartiges Werkzeug, um angenehme Interferenzen und Ladezustände für Benutzer zu erstellen, die mit Ihren Agenten interagieren.

Neues Reaktionseigenschaft in den verwalteten tiefen Agenten

In v0.9 enthält Managed Deep Agents eine neue API für die Verwaltung von Reaktionen für Ihre verteilten Agenten sowie ein System zur dynamischen Zuweisung von Emoji-Antworten mit Ihrem gewählten Instrument, wie z. B. Entscheidungsmodellen, Frontier-Modellen oder traditionellen if-Anweisungen.

Der new reactions Attribut für Slack-Kanäle akzeptiert entweder eine Zeichenfolge, die ein Emoji darstellt, oder eine Funktion, die ein Emoji zurückgibt.

from managed_deepagents import channels

async def choose_emoji(context: dict) -> str:
    return "bug" if "broken" in context["text"].lower() else "eyes"

channel = channels.slack(name="Support Bot", reactions=choose_emoji)

In diesem Beispiel wählen wir standardmäßig 👀, aber die statische Analyse wird ein 🐛 zuweisen, wenn eine Nachricht das Wort „broken“ enthält.

Wir wollen, dass die Entwickler von LangChain geeignete Muster zur Zufriedenstellung des Benutzers im Ladezustand und beim Warten anwenden können, da viele Agentaufgaben über längere Zeiträume ausgeführt werden können. Die Endbenutzer, die mit Agenten interagieren, benötigen eine Bestätigung, dass die Aufgabe erhalten wurde.

Zum Beispiel haben wir kürzlich einen internen Marketing-Agenten eingestellt, um Videoinhalte zu erstellen. Während man auf die Antwort des Agenten wartet, ist es hilfreich für die Nutzer, den Fortschritt des Agenten zu verstehen.

Hier ist ein Beispiel für den Art von Video- und Motion-Grafik-Inhalten, die unser Agent erstellen kann:

https://x.com/ndrezn/status/2104962135730061688?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E2104962135730061688%7Ctwgr%5E3fb82affc6e194f89989fadec1e2161b853b60b3%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fapp.notion.com%2Fp%2FBuild-great-out-of-the-box-user-experiences-with-Managed-Deepagents-3ed808527b178002bda9fc42f4db7213

Es reicht oft nicht aus, einfach mit einem einzigen Emoji auf eine Nachricht zu antworten. Wir brauchen auch Agenten, die dem Benutzer erklären, wie sie die Aufgabe interpretiert haben, und die kontextuelle Antwort kann ein wichtiger Bestandteil des Designs des Agents sein.

Lassen Sie uns das Beispiel der grundlegenden Reaktion weiter ausbauen. Wir können einen Entscheidungsmodell wie Jev haben, der aus einem Satz von Emojis basierend auf dem Eingabezusammenhang ausgewählt wird. Jev unterstützt bis zu 255 Optionen, aber man könnte eine Entscheidungsmatrix mit mehreren Fragen erstellen (zum Beispiel, indem man die Emojis in Kategorien einteilt und Jev bittet, eine Kategorie sowie ein Emoji auszuwählen), um mehr Emojis abzufragen:

from functools import lru_cache

from langchain_typesafe import Choice, TypeSafeClassifier
from managed_deepagents import channels

# The description is what the model matches on, so describe the situation
# rather than the picture. Keep an option for anything unremarkable.
VOCABULARY = Choice(
    instructions="Which emoji best acknowledges this message?",
    criteria={ 
        "bug": "A defect or incorrect behaviour.",
        "rotating_light": "A declared incident or outage.",
        "mag": "A code review, pull request, or diff to look at.",
        "hourglass": "Waiting on someone or something else; blocked.",
        "speech_balloon": "A question, or a request to explain something.",
        "wave": "A greeting or hello.",
        "eyes": "Anything that does not clearly fit another option.",
    },
)


@lru_cache(maxsize=1)
def classifier() -> TypeSafeClassifier:
    return TypeSafeClassifier(model="typesafe/jev-latest")


async def choose_emoji(context: dict) -> str:
    answer = await classifier().ainvoke(
        {"state": context["text"][:2000], "questions": {"emoji": VOCABULARY}}
    )
    emoji = answer.choices["emoji"]
    # Below this the model has no real view, so prefer a generic reaction.
    return emoji.choice if emoji.confidence >= 0.25 else "eyes"


channel = channels.slack(name="Support Bot", reactions=choose_emoji)

In diesem Beispiel verwenden wir die neue TypeSafe Classifier, die Teil des LangChain-Toolkits ist. Es ist eine gute Möglichkeit, mit TypeSafe-kompatiblen Entscheidungsmodellen wie Jev zu interagieren, aber es ist auch möglich, andere Entscheidungsmodelle mit denselben Endpunkten zu verwenden, wie SemIf, das auf LangSmith LLM Gateway gestellt wird. Oder man kann zwischen den Modellen wechseln, um die beste Option auszuprobieren.

Dasselbe Emoji kann je nach Handlungen des Agents unterschiedliche Bedeutungen haben. Zum Beispiel könnte 🔥 von einem auf Call-Stand befindlichen Agenten bedeuten, dass die Produktion im Werk brennt und man aufstehen muss. 🔥 von einem Wachstumspartner könnte bedeuten, dass die Kampagne funktioniert und man wieder schlafen kann. Deshalb erledigen die criteria-beschreibungen mehr Arbeit als die Emoji-Namen. Das Modell passt sich an die Beschreibung der Situation an, sodass derselbe Glyphe dieselbe Bedeutung hat wie die im Arbeitsbereich bereits gegebene.

Das obige Beispiel zeigt auch, dass Sie die Vertrauensschwellen nutzen können. Wenn das Entscheidungsmodell weniger als 25 % zu seiner besten Wahl vertraut, greifen wir auf 👀 zurück. Sie könnten auch auf keine Reaktion verzichten, wenn kein der in dem Vokabular angegebenen Emojis richtig geeignet ist.

Man könnte argumentieren, dass es bei dieser Designweise Unaufrichtigkeit gibt: Da ein anderer Modell die Reaktionen bewertet, kann es zu subtilen Unterschieden in der Interpretation kommen. Aus diesem Grund ist es wichtig, effektive Beschreibungen dafür zu verfassen, wie man erwartet, dass jede Reaktion verwendet wird. Ein Bewertungsmodell wird auf bestimmte Reaktionen überbewertet, wenn deren Beschreibung zu allgemein ist – auch wenn eine andere Reaktion nicht überanpasst erscheint für ein untrainiertes Auge.

Sie können mit dem Slack-Shortcode eigene Emojis zu Ihrem Vokabular hinzufügen. Für unseren internen Inhaltsagenten hat das AI-Team eine Reihe von eigenen Emojis erstellt, die der Agent in Antworten verwenden kann. Ich mag das lc-no-em-dash, das der Agent wählt, wenn ihm befohlen wird, Inhalt zu schreiben:

Probieren Sie verschiedene Ansätze aus. Unterschiedliche Beschreibungen für Emojis (oder ganz andere Strukturen Ihres Wortschatzes) führen zu unterschiedlichen Ergebnissen. Ebenso können Sie die Anzahl der Emojis, die eine Agentur zur Verfügung hat, erweitern oder reduzieren.

Die verwalteten Deep Agents sind so konzipiert, dass alle subtilen Designinterfaces genutzt werden können, die wir für die Anwendung der Agenten als entscheidend erachten, mit einfachen, ausdrucksstarken APIs. Beginnen Sie mit der Hinzufügung von Reaktionen für Ihre bestehenden verwalteten Deep Agents unter unserer Dokumentation. Oder, wenn Sie noch kein verwaltetes Deep Agent erstellt haben, ist der beste Ort, um anzufangen, unser Quickstart.

‍

Originalquelle

LangChain Blog

Hinweise zum Inhalt

Originalveröffentlichung und Rechte liegen bei der Quelle.

Maschinelle Übersetzung · Original beachten