Nous.Teams.Supervisor (nous v0.17.2)

Copy Markdown View Source

Per-team Supervisor that manages team infrastructure processes.

Started dynamically under Nous.AgentDynamicSupervisor for each team. Supervises the Coordinator, SharedState, optional RateLimiter, and the team's agent DynamicSupervisor.

Architecture

Nous.AgentDynamicSupervisor (existing)
└── Nous.Teams.Supervisor (one per team)
    ├── Nous.Teams.Coordinator
    ├── Nous.Teams.SharedState
    ├── Nous.Teams.RateLimiter (optional)
    └── DynamicSupervisor (team's agent processes)

Quick Start

{:ok, pid} = Nous.Teams.Supervisor.start_link(
  team_id: "team_1",
  team_name: "Research Team",
  pubsub: MyApp.PubSub
)

Summary

Functions

Returns a specification to start this module under a supervisor.

Start the team supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts)

@spec start_link(keyword()) :: Supervisor.on_start()

Start the team supervisor.

Options

  • :team_id (required) — unique identifier for the team
  • :team_name — human-readable team name (default: team_id)
  • :pubsub — PubSub module for messaging
  • :budget — team budget in USD (enables RateLimiter)
  • :per_agent_budget — per-agent budget in USD
  • :rpm — requests per minute limit
  • :tpm — tokens per minute limit
  • :name — optional Supervisor name