Class DefaultAgentGroup

java.lang.Object
com.tnsai.coordination.groups.DefaultAgentGroup
All Implemented Interfaces:
com.tnsai.agents.groups.AgentGroup
Direct Known Subclasses:
DefaultCoalition, DefaultHierarchy, DefaultHubSpoke, DefaultMatrixOrg, DefaultNetworkMesh, DefaultPipelineOrg, DefaultSwarm, DefaultTeam

public class DefaultAgentGroup extends Object implements com.tnsai.agents.groups.AgentGroup
Default implementation of AgentGroup.

Provides thread-safe group management with:

  • Dynamic membership with policy enforcement
  • Intra-group event bus for communication
  • Scatter/gather coordination using existing ScatterGather
  • Leader election with pluggable strategies
  • Health monitoring via MembershipManager
  • Constructor Details

    • DefaultAgentGroup

      public DefaultAgentGroup(String id, String name, String description, com.tnsai.agents.groups.GroupPolicy policy)
      Creates a new DefaultAgentGroup.
      Parameters:
      id - group ID
      name - group name
      description - group description
      policy - group policy
  • Method Details

    • getId

      public String getId()
      Specified by:
      getId in interface com.tnsai.agents.groups.AgentGroup
    • getName

      public String getName()
      Specified by:
      getName in interface com.tnsai.agents.groups.AgentGroup
    • getDescription

      public Optional<String> getDescription()
      Specified by:
      getDescription in interface com.tnsai.agents.groups.AgentGroup
    • getPolicy

      public com.tnsai.agents.groups.GroupPolicy getPolicy()
      Specified by:
      getPolicy in interface com.tnsai.agents.groups.AgentGroup
    • setPolicy

      public void setPolicy(com.tnsai.agents.groups.GroupPolicy newPolicy)
      Specified by:
      setPolicy in interface com.tnsai.agents.groups.AgentGroup
    • getMembers

      public List<com.tnsai.agents.Agent> getMembers()
      Specified by:
      getMembers in interface com.tnsai.agents.groups.AgentGroup
    • addMember

      public boolean addMember(com.tnsai.agents.Agent agent)
      Specified by:
      addMember in interface com.tnsai.agents.groups.AgentGroup
    • removeMember

      public boolean removeMember(String agentId)
      Specified by:
      removeMember in interface com.tnsai.agents.groups.AgentGroup
    • hasMember

      public boolean hasMember(String agentId)
      Specified by:
      hasMember in interface com.tnsai.agents.groups.AgentGroup
    • getMember

      public Optional<com.tnsai.agents.Agent> getMember(String agentId)
      Specified by:
      getMember in interface com.tnsai.agents.groups.AgentGroup
    • findMembers

      public List<com.tnsai.agents.Agent> findMembers(Predicate<com.tnsai.agents.Agent> predicate)
      Specified by:
      findMembers in interface com.tnsai.agents.groups.AgentGroup
    • getLifecycle

      public com.tnsai.agents.groups.GroupLifecycle getLifecycle()
      Specified by:
      getLifecycle in interface com.tnsai.agents.groups.AgentGroup
    • start

      public void start()
      Specified by:
      start in interface com.tnsai.agents.groups.AgentGroup
    • stop

      public void stop()
      Specified by:
      stop in interface com.tnsai.agents.groups.AgentGroup
    • stopNow

      public void stopNow()
      Specified by:
      stopNow in interface com.tnsai.agents.groups.AgentGroup
    • dissolve

      public void dissolve()
      Specified by:
      dissolve in interface com.tnsai.agents.groups.AgentGroup
    • getEventBus

      public com.tnsai.agents.groups.GroupEventBus getEventBus()
      Specified by:
      getEventBus in interface com.tnsai.agents.groups.AgentGroup
    • broadcast

      public void broadcast(com.tnsai.communication.AgentMessage message)
      Specified by:
      broadcast in interface com.tnsai.agents.groups.AgentGroup
    • scatter

      public Map<String,String> scatter(String prompt)
      Specified by:
      scatter in interface com.tnsai.agents.groups.AgentGroup
    • scatter

      public Map<String,String> scatter(String prompt, Duration timeout)
      Specified by:
      scatter in interface com.tnsai.agents.groups.AgentGroup
    • scatterAsync

      public CompletableFuture<Map<String,String>> scatterAsync(String prompt)
      Specified by:
      scatterAsync in interface com.tnsai.agents.groups.AgentGroup
    • getMembershipManager

      public com.tnsai.agents.groups.MembershipManager getMembershipManager()
      Specified by:
      getMembershipManager in interface com.tnsai.agents.groups.AgentGroup
    • electLeader

      public Optional<com.tnsai.agents.Agent> electLeader()
      Specified by:
      electLeader in interface com.tnsai.agents.groups.AgentGroup
    • electLeader

      public Optional<com.tnsai.agents.Agent> electLeader(com.tnsai.agents.groups.LeaderElectionStrategy strategy)
      Specified by:
      electLeader in interface com.tnsai.agents.groups.AgentGroup
    • getLeader

      public Optional<com.tnsai.agents.Agent> getLeader()
      Specified by:
      getLeader in interface com.tnsai.agents.groups.AgentGroup
    • assignTask

      public Optional<com.tnsai.agents.Agent> assignTask(com.tnsai.agents.groups.GroupTask task)
      Specified by:
      assignTask in interface com.tnsai.agents.groups.AgentGroup
    • notifyTaskComplete

      public void notifyTaskComplete(String agentId)
      Notifies that a task has been completed by an agent. Decrements the agent's active task count.
      Parameters:
      agentId - the agent who completed the task
    • notifyTaskFailed

      public void notifyTaskFailed(String agentId)
      Notifies that a task has failed for an agent. Decrements the agent's active task count and increments failure counter.
      Parameters:
      agentId - the agent whose task failed
    • getMetrics

      public com.tnsai.agents.groups.GroupMetrics getMetrics()
      Specified by:
      getMetrics in interface com.tnsai.agents.groups.AgentGroup
    • addLifecycleListener

      public void addLifecycleListener(com.tnsai.agents.groups.GroupLifecycleListener listener)
      Specified by:
      addLifecycleListener in interface com.tnsai.agents.groups.AgentGroup
    • removeLifecycleListener

      public void removeLifecycleListener(com.tnsai.agents.groups.GroupLifecycleListener listener)
      Specified by:
      removeLifecycleListener in interface com.tnsai.agents.groups.AgentGroup
    • addMembershipListener

      public void addMembershipListener(com.tnsai.agents.groups.MembershipListener listener)
      Specified by:
      addMembershipListener in interface com.tnsai.agents.groups.AgentGroup
    • removeMembershipListener

      public void removeMembershipListener(com.tnsai.agents.groups.MembershipListener listener)
      Specified by:
      removeMembershipListener in interface com.tnsai.agents.groups.AgentGroup
    • toString

      public String toString()
      Overrides:
      toString in class Object