Interface IAgentRuntime
Definiert die Laufzeitumgebung für Agenten, die das Senden von Nachrichten, Abonnements, die Agentenauflösung und die Zustandsspeicherung verwaltet.
public interface IAgentRuntime : ISaveState
- Geerbte Member
Methoden
AddSubscriptionAsync(ISubscriptionDefinition)
Fügt ein neues Abonnement hinzu, das die Laufzeit bei der Verarbeitung veröffentlichter Nachrichten verarbeiten soll.
ValueTask AddSubscriptionAsync(ISubscriptionDefinition subscription)
Parameter
subscriptionISubscriptionDefinitionDas hinzuzufügende Abonnement.
Rückgabe
- ValueTask
Eine Aufgabe, die den asynchronen Vorgang darstellt.
GetAgentAsync(AgentId, bool)
Ruft einen Agenten anhand seiner eindeutigen Kennung ab.
ValueTask<AgentId> GetAgentAsync(AgentId agentId, bool lazy = true)
Parameter
agentIdAgentIdDie eindeutige Kennung des Agenten.
lazyboolWenn
true, wird der Agent verzögert abgerufen.
Rückgabe
- ValueTask<AgentId>
Eine Aufgabe, die den asynchronen Vorgang darstellt und die Agenten-ID zurückgibt.
GetAgentAsync(AgentType, string, bool)
Ruft einen Agenten anhand seines Typs ab.
ValueTask<AgentId> GetAgentAsync(AgentType agentType, string key = "default", bool lazy = true)
Parameter
agentTypeAgentTypeDer Typ des Agenten.
keystringEin optionaler Schlüssel zur Angabe von Variationen des Agenten. Standardwert ist "default".
lazyboolWenn
true, wird der Agent verzögert abgerufen.
Rückgabe
- ValueTask<AgentId>
Eine Aufgabe, die den asynchronen Vorgang darstellt und die Agenten-ID zurückgibt.
GetAgentAsync(string, string, bool)
Ruft einen Agenten anhand seiner String-Darstellung ab.
ValueTask<AgentId> GetAgentAsync(string agent, string key = "default", bool lazy = true)
Parameter
agentstringDie String-Darstellung des Agenten.
keystringEin optionaler Schlüssel zur Angabe von Variationen des Agenten. Standardwert ist "default".
lazyboolWenn
true, wird der Agent verzögert abgerufen.
Rückgabe
- ValueTask<AgentId>
Eine Aufgabe, die den asynchronen Vorgang darstellt und die Agenten-ID zurückgibt.
GetAgentMetadataAsync(AgentId)
Ruft Metadaten für einen Agenten ab.
ValueTask<AgentMetadata> GetAgentMetadataAsync(AgentId agentId)
Parameter
agentIdAgentIdDie ID des Agenten.
Rückgabe
- ValueTask<AgentMetadata>
Eine Aufgabe, die den asynchronen Vorgang darstellt und die Agenten-Metadaten zurückgibt.
LoadAgentStateAsync(AgentId, JsonElement)
Lädt den gespeicherten Zustand in einen Agenten.
ValueTask LoadAgentStateAsync(AgentId agentId, JsonElement state)
Parameter
agentIdAgentIdDie ID des Agenten, dessen Zustand wiederhergestellt wird.
stateJsonElementDas Zustandswörterbuch, das wiederhergestellt werden soll.
Rückgabe
- ValueTask
Eine Aufgabe, die den asynchronen Vorgang darstellt.
PublishMessageAsync(object, TopicId, AgentId?, string?, CancellationToken)
Veröffentlicht eine Nachricht an alle Agenten, die für das angegebene Thema abonniert sind. Es werden keine Antworten vom Veröffentlichen erwartet.
ValueTask PublishMessageAsync(object message, TopicId topic, AgentId? sender = null, string? messageId = null, CancellationToken cancellationToken = default)
Parameter
messageobjectDie zu veröffentlichende Nachricht.
topicTopicIdDas Thema, zu dem die Nachricht veröffentlicht werden soll.
senderAgentId?Der Agent, der die Nachricht sendet. Standardwert ist
null.messageIdstringEine eindeutige Nachrichten-ID. Wenn
null, wird eine neue generiert.cancellationTokenCancellationTokenEin Token zum Abbrechen des Vorgangs bei Bedarf.
Rückgabe
- ValueTask
Eine Aufgabe, die den asynchronen Vorgang darstellt.
Ausnahmen
- UndeliverableException
Wird ausgelöst, wenn die Nachricht nicht zugestellt werden kann.
RegisterAgentFactoryAsync(AgentType, Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>>)
Registriert eine Agentenfabrik bei der Laufzeit und ordnet sie einem bestimmten Agententyp zu. Der Typ muss eindeutig sein.
ValueTask<AgentType> RegisterAgentFactoryAsync(AgentType type, Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>> factoryFunc)
Parameter
typeAgentTypeDer Agententyp, der der Fabrik zugeordnet werden soll.
factoryFuncFunc<AgentId, IAgentRuntime, ValueTask<IHostableAgent>>Eine Funktion, die die Agenteninstanz asynchron erstellt.
Rückgabe
- ValueTask<AgentType>
Eine Aufgabe, die den asynchronen Vorgang darstellt und den registrierten AgentType zurückgibt.
RemoveSubscriptionAsync(string)
Entfernt ein Abonnement aus der Laufzeit.
ValueTask RemoveSubscriptionAsync(string subscriptionId)
Parameter
subscriptionIdstringDie eindeutige Kennung des zu entfernenden Abonnements.
Rückgabe
- ValueTask
Eine Aufgabe, die den asynchronen Vorgang darstellt.
Ausnahmen
- KeyNotFoundException
Wird ausgelöst, wenn das Abonnement nicht existiert.
SaveAgentStateAsync(AgentId)
Speichert den Zustand eines Agenten. Das Ergebnis muss JSON-serialisierbar sein.
ValueTask<JsonElement> SaveAgentStateAsync(AgentId agentId)
Parameter
agentIdAgentIdDie ID des Agenten, dessen Zustand gespeichert wird.
Rückgabe
- ValueTask<JsonElement>
Eine Aufgabe, die den asynchronen Vorgang darstellt und ein Wörterbuch des gespeicherten Zustands zurückgibt.
SendMessageAsync(object, AgentId, AgentId?, string?, CancellationToken)
Sendet eine Nachricht an einen Agenten und erhält eine Antwort. Diese Methode sollte zur direkten Kommunikation mit einem Agenten verwendet werden.
ValueTask<object?> SendMessageAsync(object message, AgentId recepient, AgentId? sender = null, string? messageId = null, CancellationToken cancellationToken = default)
Parameter
messageobjectDie zu sendende Nachricht.
recepientAgentIdDer Agent, an den die Nachricht gesendet werden soll.
senderAgentId?Der Agent, der die Nachricht sendet. Sollte
nullsein, wenn von einer externen Quelle gesendet.messageIdstringEine eindeutige Kennung für die Nachricht. Wenn
null, wird eine neue ID generiert.cancellationTokenCancellationTokenEin Token zum Abbrechen des Vorgangs bei Bedarf.
Rückgabe
- ValueTask<object>
Eine Aufgabe, die den asynchronen Vorgang darstellt und die Antwort des Agenten zurückgibt.
Ausnahmen
- CantHandleException
Wird ausgelöst, wenn der Empfänger die Nachricht nicht verarbeiten kann.
- UndeliverableException
Wird ausgelöst, wenn die Nachricht nicht zugestellt werden kann.
TryGetAgentProxyAsync(AgentId)
Versucht, einen AgentProxy für den angegebenen Agenten abzurufen.
ValueTask<AgentProxy> TryGetAgentProxyAsync(AgentId agentId)
Parameter
agentIdAgentIdDie ID des Agenten.
Rückgabe
- ValueTask<AgentProxy>
Eine Aufgabe, die den asynchronen Vorgang darstellt und im Erfolgsfall einen AgentProxy zurückgibt.