Skip to content

feat: multiagents - components#574

Merged
pgrayy merged 7 commits intostrands-agents:mainfrom
pgrayy:multiagent-components
Feb 27, 2026
Merged

feat: multiagents - components#574
pgrayy merged 7 commits intostrands-agents:mainfrom
pgrayy:multiagent-components

Conversation

@pgrayy
Copy link
Member

@pgrayy pgrayy commented Feb 25, 2026

Description

Motivation

The multi-agent module (#547) introduced Node, AgentNode, and basic state primitives. To support the upcoming Graph orchestration pattern (#433), the module needs additional shared components: edges for defining node relationships, a streaming event system for propagating execution progress, an async queue for coordinating parallel node execution, and richer state types for tracking execution lifecycle and results.

This PR adds these foundational components incrementally, keeping them decoupled from the Graph implementation itself so they can be reviewed and landed independently.

Resolves: #433 (partial)

Public API Changes

New exports from @strands-agents/sdk/multiagent:

// State types for tracking execution lifecycle
import {
  Status,              // PENDING | EXECUTING | COMPLETED | FAILED | CANCELLED
  NodeState,           // Per-node execution state
  NodeResult,          // Result of a single node execution
  MultiAgentResult,    // Aggregate result from a multi-agent execution
  MultiAgentState,     // Shared state with per-node tracking
} from '@strands-agents/sdk/multiagent'

// Edge definitions for node relationships
import { Edge, EdgeDefinition, EdgeHandler } from '@strands-agents/sdk/multiagent'

// Streaming events for execution progress
import {
  NodeStreamUpdateEvent,     // Wraps inner streaming events from a node
  NodeResultEvent,           // Emitted when a node finishes
  MultiAgentHandoffEvent,    // Emitted on node-to-node transitions
  MultiAgentResultEvent,     // Final event with aggregate result
} from '@strands-agents/sdk/multiagent'
  • NodeType moved from types.ts into nodes.ts (same public export, types.ts removed).
  • Queue is an internal component right now.

Type of Change

New feature

Testing

How have you tested the change?

I ran npm run check

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@pgrayy pgrayy changed the title multiagents - components feat: multiagents - components Feb 25, 2026
@github-actions github-actions bot added the strands-running <strands-managed> Whether or not an agent is currently running label Feb 25, 2026
@pgrayy pgrayy marked this pull request as ready for review February 25, 2026 23:09
@github-actions
Copy link

Assessment: Comment

This PR adds well-designed foundational components for multi-agent orchestration. The API design aligns well with the Python SDK patterns and follows repository conventions.

Review Categories
  • Testing: New files (edge.ts) and classes (NodeState, MultiAgentResult, MultiAgentState) need unit test coverage to maintain the 80%+ coverage requirement
  • API Review: This PR introduces significant new public APIs. Consider adding the needs-api-review label per API Bar Raising guidelines, particularly for the new state types and event classes that customers will directly use
  • Documentation: Minor TSDoc inconsistency in Node.config description

The overall architecture and code quality look solid. The incremental approach to building these components is appreciated.

@github-actions github-actions bot removed the strands-running <strands-managed> Whether or not an agent is currently running label Feb 25, 2026
@pgrayy pgrayy temporarily deployed to manual-approval February 25, 2026 23:17 — with GitHub Actions Inactive
@pgrayy pgrayy temporarily deployed to manual-approval February 25, 2026 23:17 — with GitHub Actions Inactive
@github-actions github-actions bot added strands-running <strands-managed> Whether or not an agent is currently running and removed strands-running <strands-managed> Whether or not an agent is currently running labels Feb 25, 2026
@strands-agents strands-agents deleted a comment from github-actions bot Feb 25, 2026
@pgrayy pgrayy temporarily deployed to manual-approval February 25, 2026 23:32 — with GitHub Actions Inactive
afarntrog
afarntrog previously approved these changes Feb 26, 2026
@pgrayy
Copy link
Member Author

pgrayy commented Feb 26, 2026

#433

@pgrayy pgrayy enabled auto-merge February 27, 2026 17:58
@pgrayy pgrayy disabled auto-merge February 27, 2026 19:03
@pgrayy pgrayy enabled auto-merge February 27, 2026 19:03
@pgrayy pgrayy disabled auto-merge February 27, 2026 19:13
@pgrayy pgrayy enabled auto-merge February 27, 2026 19:13
@pgrayy pgrayy disabled auto-merge February 27, 2026 20:47
@pgrayy pgrayy enabled auto-merge February 27, 2026 20:47
@pgrayy pgrayy disabled auto-merge February 27, 2026 21:15
@pgrayy pgrayy enabled auto-merge February 27, 2026 21:15
@pgrayy pgrayy added this pull request to the merge queue Feb 27, 2026
Merged via the queue into strands-agents:main with commit 27245bb Feb 27, 2026
15 of 20 checks passed
@pgrayy pgrayy deleted the multiagent-components branch February 27, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[V1] Multi-Agents - Graph

3 participants