Page History
...
Capabilities
Subagent Clusters include the following capabilities.offer a number of capabilities:
- A Subagent can be a member of any number of Subagent Clusters.
- A Subagent Cluster can include a single Subagent and it can include any number of Subagents.
- A Subagent Cluster defines fixed-priority or round-robin scheduling mode to switch between Subagents.
One Subagent Cluster per Subagent
When adding a Subagent JOC Cockpit can be instructed to add a Subagent Cluster that holds the single Subagent.
- This allows to assign a job an individual Subagent to a job should the job be executed with this Subagent only.
- The name of the Subagent Cluster corresponds to the Subagent ID.
Graphviz | ||
---|---|---|
| ||
digraph {
compound=true;
rankdir=LR;
JOC [shape="rectangle",label="JOC Cockpit",style="filled",fillcolor="lightskyblue",fontname="Arial",fontsize="10pt"]
Controller [shape="rectangle",label="Controller\nStandalone / Cluster",style="filled",fillcolor="lightskyblue",fontname="Arial",fontsize="10pt"]
node [shape="record"];
Director1 [label="<f0> Agent Cluster\nDirector Agent|<f1> Integrated\nSubagent ",style="filled",fillcolor="darkorange1",fontname="Arial",fontsize="10pt"];
Subagent1_1 [shape="rectangle",label="Subagent 1",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent2_1 [shape="rectangle",label="Subagent 1",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent3_1 [shape="rectangle",label="Subagent 1",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
{ rank = same; JOC -> Controller -> Director1 }
Director1 -> Subagent1_1 [lhead=cluster_subagent_1];
Director1 -> Subagent2_1 [lhead=cluster_subagent_2];
Director1 -> Subagent3_1 [lhead=cluster_subagent_3];
subgraph cluster_subagent_1 {
label="Subagent Cluster 1"; fontname="Arial"; fontsize="10pt";
Subagent1_1 [label=" Subagent 1\n standalone ",fontname="Arial",fontsize="10pt"];
}
subgraph cluster_subagent_2 {
label="Subagent Cluster 2"; fontname="Arial"; fontsize="10pt";
Subagent2_1 [label=" Subagent 2\n standalone ",fontname="Arial",fontsize="10pt"];
}
subgraph cluster_subagent_3 {
label="Subagent Cluster 3"; fontname="Arial"; fontsize="10pt";
Subagent3_1 [label=" Subagent 3\n standalone ",fontname="Arial",fontsize="10pt"];
}
} |
Unlimited Subagents per Cluster
...
- Adding more Subagents to a round-robin cluster allows unlimited horizonal scaling.
- Some might consider it paranoid to add a larger number of Subagents to a fixed-priority cluster, however, users are free to create a chain of Subagents that can replace each other.
Graphviz | ||
---|---|---|
| ||
digraph {
compound=true;
rankdir=LR;
JOC [shape="rectangle",label="JOC Cockpit",style="filled",fillcolor="lightskyblue",fontname="Arial",fontsize="10pt"]
Controller [shape="rectangle",label="Controller\nStandalone / Cluster",style="filled",fillcolor="lightskyblue",fontname="Arial",fontsize="10pt"]
node [shape="record"];
Director1 [label="<f0> Agent Cluster\nDirector Agent|<f1> Integrated\nSubagent",style="filled",fillcolor="darkorange1",fontname="Arial",fontsize="10pt"];
Subagent1_1 [shape="rectangle",label="Subagent 1",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent1_2 [shape="rectangle",label="Subagent 2",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent1_3 [shape="rectangle",label="Subagent 3",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
{ rank = same; JOC -> Controller -> Director1 }
Director1 -> Subagent1_1 [lhead=cluster_subagent_1];
subgraph cluster_subagent_1 {
label="Subagent Cluster 1"; fontname="Arial"; fontsize="10pt";
Subagent1_1 -> Subagent1_2 [label=" round-robin ",fontname="Arial",fontsize="10pt"];
Subagent1_2 -> Subagent1_3 [label=" round-robin ",fontname="Arial",fontsize="10pt"];
Subagent1_3 -> Subagent1_1;
}
} |
Scheduling Modes
Subagents can be added for both fixed-priority and round-robin scheduling modes:
...
The JS7 allows to use mixed scheduling modes within the same cluster.
Graphviz | ||
---|---|---|
| ||
digraph {
compound=true;
rankdir=LR;
JOC [shape="rectangle",label="JOC Cockpit",style="filled",fillcolor="lightskyblue",fontname="Arial",fontsize="10pt"]
Controller [shape="rectangle",label="Controller\nStandalone / Cluster",style="filled",fillcolor="lightskyblue",fontname="Arial",fontsize="10pt"]
node [shape="record"];
Director1 [label="<f0> Agent Cluster\nDirector Agent|<f1> Integrated\nSubagent",style="filled",fillcolor="darkorange1",fontname="Arial",fontsize="10pt"];
Subagent_active [shape="rectangle",label="Active Subagent",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent_standby [shape="rectangle",label="Standby Subagent",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent1_1 [shape="rectangle",label="Subagent 1",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent1_2 [shape="rectangle",label="Subagent 2",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
Subagent1_3 [shape="rectangle",label="Subagent 3",style="filled",fillcolor="darkolivegreen2",fontname="Arial",fontsize="10pt"];
{ rank = same; JOC -> Controller -> Director1 }
Director1 -> Subagent_active [lhead=cluster_subagent_active_passive];
Director1 -> Subagent1_1 [lhead=cluster_subagent_round_robin];
subgraph cluster_subagent_active_passive {
label="Subagent Cluster: active-passive"; fontname="Arial"; fontsize="10pt";
Subagent_active -> Subagent_standby [label=" fixed-priority ",fontname="Arial",fontsize="10pt"];
}
subgraph cluster_subagent_round_robin {
label="Subagent Cluster: active-active"; fontname="Arial"; fontsize="10pt";
Subagent1_1 -> Subagent1_2 [label=" round-robin ",fontname="Arial",fontsize="10pt"];
Subagent1_2 -> Subagent1_3 [label=" round-robin ",fontname="Arial",fontsize="10pt"];
Subagent1_3 -> Subagent1_1;
}
} |
Strategies
Director Agent as Subagent Cluster Member
...
Overview
Content Tools