Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
templateGraphvizSubgraphs
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
templateGraphvizSubgraphs
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
templateGraphvizSubgraphs
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

...