44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
classDiagram
|
|
|
|
Agent
|
|
AgentChannel
|
|
AgentChat
|
|
|
|
AgentChat <|-- AgentGroupChat
|
|
AgentGroupChat o-- Agent
|
|
AgentGroupChat --> AgentGroupChatSettings
|
|
class AgentGroupChat {
|
|
<<Final>>
|
|
+IReadOnlyList~Agent~ Agents
|
|
+AgentGroupChatSettings ExecutionSettings
|
|
+bool IsComplete
|
|
+void AddAgent(Agent agent)
|
|
+IAsyncEnumerable~ChatMessageContent~ InvokeAgentAsync()
|
|
+IAsyncEnumerable~ChatMessageContent~ InvokeAgentAsync(Agent agent)
|
|
+IAsyncEnumerable~ChatMessageContent~ InvokeAgentAsync(Agent agent, bool isJoining)
|
|
}
|
|
|
|
AgentGroupChatSettings --> SelectionStrategy
|
|
AgentGroupChatSettings --> TerminationStrategy
|
|
class AgentGroupChatSettings {
|
|
<<Final>>
|
|
+SelectionStrategy SelectionStrategy
|
|
+TerminationStrategy TerminationStrategy
|
|
}
|
|
|
|
class SelectionStrategy {
|
|
<<Abstract>>
|
|
#ILogger Logger
|
|
+Task~Agent~ NextAsync(IReadOnlyList~Agent~ agents, IReadOnlyList~ChatMessageContent~ history)*
|
|
}
|
|
|
|
class TerminationStrategy {
|
|
<<Abstract>>
|
|
+bool AutomaticReset
|
|
+int MaximumIterations
|
|
+IReadOnlyList~Agent~? Agents
|
|
#ILogger Logger
|
|
+Task~bool~ ShouldTerminateAsync(Agent agent, IReadOnlyList~ChatMessageContent~ history)
|
|
#Task~bool~ ShouldAgentTerminateAsync(Agent agent, IReadOnlyList~ChatMessageContent~ history)*
|
|
}
|