@strands-agents/sdk 1.11.1 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,11 @@ import type { Agent } from './agent.js';
9
9
  import { Tool } from '../tools/tool.js';
10
10
  import type { ToolContext, ToolStreamGenerator } from '../tools/tool.js';
11
11
  import type { ToolSpec } from '../tools/types.js';
12
+ /**
13
+ * Description suffix appended to delegation tools to guide the model.
14
+ * @internal
15
+ */
16
+ export declare const DELEGATION_DESCRIPTION_SUFFIX = " Calling this tool will return its response directly to the user as the final answer. It should be the only tool called in the turn.";
12
17
  /**
13
18
  * Options for creating an agent tool via {@link Agent.asTool}.
14
19
  */
@@ -42,6 +47,16 @@ export interface AgentAsToolOptions {
42
47
  * @defaultValue false
43
48
  */
44
49
  preserveContext?: boolean;
50
+ /**
51
+ * When true, the orchestrator treats this tool's result as the final
52
+ * response and exits without an additional model call.
53
+ *
54
+ * A delegation tool's description is automatically suffixed with an instruction
55
+ * telling the model that this tool should be the only tool called in the turn.
56
+ *
57
+ * @defaultValue false
58
+ */
59
+ delegate?: boolean;
45
60
  }
46
61
  /**
47
62
  * Configuration for creating an AgentAsTool.
@@ -81,6 +96,13 @@ export declare class AgentAsTool extends Tool {
81
96
  readonly name: string;
82
97
  readonly description: string;
83
98
  readonly toolSpec: ToolSpec;
99
+ /**
100
+ * When true, the orchestrator treats this tool's result as the final
101
+ * response and exits without an additional model call.
102
+ *
103
+ * @defaultValue false
104
+ */
105
+ readonly delegate: boolean;
84
106
  private readonly _agent;
85
107
  private readonly _preserveContext;
86
108
  private readonly _initialSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-as-tool.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-as-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAqB,IAAI,EAAmB,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAY,SAAQ,IAAI;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,KAAK,CAAQ;gBAET,MAAM,EAAE,eAAe;IAwCnC;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAEjB;IAEM,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAuD7D"}
1
+ {"version":3,"file":"agent-as-tool.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-as-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAqB,IAAI,EAAmB,MAAM,kBAAkB,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,yIAC8F,CAAA;AAExI;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,WAAY,SAAQ,IAAI;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,KAAK,CAAQ;gBAET,MAAM,EAAE,eAAe;IA6CnC;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAEjB;IAEM,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB;CAuD7D"}
@@ -7,6 +7,11 @@
7
7
  */
8
8
  import { JsonBlock, TextBlock, ToolResultBlock } from '../types/messages.js';
9
9
  import { createErrorResult, Tool, ToolStreamEvent } from '../tools/tool.js';
10
+ /**
11
+ * Description suffix appended to delegation tools to guide the model.
12
+ * @internal
13
+ */
14
+ export const DELEGATION_DESCRIPTION_SUFFIX = ' Calling this tool will return its response directly to the user as the final answer. It should be the only tool called in the turn.';
10
15
  /**
11
16
  * @internal Not for external use. Use {@link Agent.asTool} to create instances.
12
17
  *
@@ -39,6 +44,13 @@ export class AgentAsTool extends Tool {
39
44
  name;
40
45
  description;
41
46
  toolSpec;
47
+ /**
48
+ * When true, the orchestrator treats this tool's result as the final
49
+ * response and exits without an additional model call.
50
+ *
51
+ * @defaultValue false
52
+ */
53
+ delegate;
42
54
  _agent;
43
55
  _preserveContext;
44
56
  _initialSnapshot;
@@ -47,6 +59,7 @@ export class AgentAsTool extends Tool {
47
59
  super();
48
60
  this._agent = config.agent;
49
61
  this._preserveContext = config.preserveContext ?? false;
62
+ this.delegate = config.delegate ?? false;
50
63
  if (!this._preserveContext && this._agent.sessionManager != null) {
51
64
  throw new Error(`Agent '${this._agent.name}' has a SessionManager, which conflicts with preserveContext=false. ` +
52
65
  'The SessionManager persists conversation history externally, but preserveContext=false resets ' +
@@ -60,6 +73,9 @@ export class AgentAsTool extends Tool {
60
73
  config.description ??
61
74
  config.agent.description ??
62
75
  `Use the ${this.name} agent by providing a natural language input`;
76
+ if (this.delegate) {
77
+ this.description += DELEGATION_DESCRIPTION_SUFFIX;
78
+ }
63
79
  this.toolSpec = {
64
80
  name: this.name,
65
81
  description: this.description,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-as-tool.js","sourceRoot":"","sources":["../../../src/agent/agent-as-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAgD3E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAY,SAAQ,IAAI;IAC1B,IAAI,CAAQ;IACZ,WAAW,CAAQ;IACnB,QAAQ,CAAU;IAEV,MAAM,CAAO;IACb,gBAAgB,CAAS;IACzB,gBAAgB,CAAsB;IAC/C,KAAK,GAAG,KAAK,CAAA;IAErB,YAAY,MAAuB;QACjC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,eAAe,IAAI,KAAK,CAAA;QAEvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,sEAAsE;gBAC9F,gGAAgG;gBAChG,mFAAmF,CACtF,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA;QAE5C,IAAI,CAAC,WAAW;YACd,MAAM,CAAC,WAAW;gBAClB,MAAM,CAAC,KAAK,CAAC,WAAW;gBACxB,WAAW,IAAI,CAAC,IAAI,8CAA8C,CAAA;QAEpE,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,kDAAkD;qBAChE;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAA;IACH,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,WAAwB;QACpC,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAA;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAEnC,qEAAqE;QACrE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,iBAAiB,CAAC,UAAU,IAAI,CAAC,IAAI,mCAAmC,EAAE,SAAS,CAAC,CAAA;QAC7F,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAA0B,CAAA;YAEpD,8CAA8C;YAC9C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjD,CAAC;YAED,mEAAmE;YACnE,sEAAsE;YACtE,sDAAsD;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAA;YACvF,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACxB,IAAI,KAAK,CAAC,IAAI,IAAI,uBAAuB,EAAE,CAAC;oBAC1C,MAAM,KAAK,CAAC,KAAK,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;gBACjD,CAAC;gBAED,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;YAEzB,wBAAwB;YACxB,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,IAAI,eAAe,CAAC;oBACzB,SAAS;oBACT,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,gBAA6B,EAAE,CAAC,CAAC;iBACzE,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,eAAe,CAAC;gBACzB,SAAS;gBACT,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,kCAAkC;aAChF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAC5C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"agent-as-tool.js","sourceRoot":"","sources":["../../../src/agent/agent-as-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * AgentDelegation — enforces delegation semantics for tool routing.
3
+ *
4
+ * When a tool is configured with `delegate: true`, this plugin ensures:
5
+ * 1. The delegation tool is the only tool called in the turn (single-call constraint)
6
+ * 2. The agent loop exits immediately after a successful delegation (via endTurn)
7
+ * 3. The AgentResult is transformed with `stopReason: 'endTurn'` and the tool's content
8
+ * 4. Streaming events from the delegate agent are surfaced natively in the parent stream
9
+ *
10
+ * The final delegation message is produced in middleware after the core loop exits.
11
+ * It is written to `agent.messages` and yielded to stream consumers, but does not
12
+ * fire `MessageAddedEvent` hooks via `invokeCallbacks`. `SessionManager` with
13
+ * `saveLatestOn: 'invocation'` (default) is unaffected; `saveLatestOn: 'message'`
14
+ * may persist the endTurn placeholder instead of the delegation content.
15
+ */
16
+ import type { Plugin } from '../plugins/plugin.js';
17
+ import type { LocalAgent } from '../types/agent.js';
18
+ /**
19
+ * Plugin that enforces delegation semantics for tool routing.
20
+ *
21
+ * Automatically registered on every agent. Acts as a no-op when no delegation tools fire.
22
+ * Implements single-call constraint, early loop exit, and result transformation.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * import { Agent } from '@strands-agents/sdk'
27
+ *
28
+ * const specialist = new Agent({ name: 'Specialist' })
29
+ * const orchestrator = new Agent({
30
+ * tools: [specialist.asTool({ delegate: true })],
31
+ * // AgentDelegation is auto-registered — no manual setup needed
32
+ * })
33
+ * ```
34
+ */
35
+ export declare class AgentDelegation implements Plugin {
36
+ readonly name = "strands:agent-delegation";
37
+ /** Per-agent delegation state, created in _onBeforeTools and consumed in _handleStream. */
38
+ private readonly _state;
39
+ initAgent(agent: LocalAgent): void;
40
+ /**
41
+ * BeforeToolsEvent hook: enforces single-call constraint against registry names
42
+ * and initializes per-batch delegation state.
43
+ */
44
+ private _onBeforeTools;
45
+ /**
46
+ * AfterToolCallEvent hook: marks the delegation tool use ID on success.
47
+ */
48
+ private _onAfterToolCall;
49
+ /**
50
+ * AfterToolsEvent hook: signals the agent loop to stop via endTurn when
51
+ * delegation succeeded.
52
+ *
53
+ * This hook runs at `HookOrder.SDK_LAST` (100). If a hook with a higher
54
+ * numeric order mutates a ToolResultBlock's status from success to error,
55
+ * the endTurn signal has already been committed and the loop will still exit.
56
+ * In practice, no SDK or vended plugin registers AfterToolsEvent hooks above
57
+ * SDK_LAST, and mutating committed ToolResultBlock status in AfterToolsEvent
58
+ * is not a documented or supported pattern.
59
+ */
60
+ private _onAfterTools;
61
+ /**
62
+ * ExecuteToolStage middleware: enforces single-call constraint and surfaces
63
+ * delegate agent streaming events natively.
64
+ *
65
+ * For delegation tools in a multi-tool batch, returns an error result without
66
+ * executing the tool. For valid single-tool delegation, unwraps inner agent
67
+ * streaming events so they appear as native events in the parent stream.
68
+ *
69
+ * A post-init middleware registered inside this one can still bypass the check
70
+ * by spreading a modified context with a different `tool` to `next()`. This is a
71
+ * framework-level trust boundary, not addressable at the plugin level.
72
+ * The sanctioned path for tool replacement is `BeforeToolCallEvent.selectedTool`.
73
+ */
74
+ private _handleToolExecution;
75
+ /**
76
+ * AgentStreamStage middleware: transforms the AgentResult on delegation.
77
+ *
78
+ * When the main loop exits via endTurn triggered by delegation (identified by
79
+ * the `endTurnViaDelegation` flag on DelegationState), this middleware replaces
80
+ * the default endTurn result with the proper delegation result: the sub-agent's
81
+ * content from the tool-result message.
82
+ */
83
+ private _handleStream;
84
+ }
85
+ //# sourceMappingURL=agent-delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-delegation.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-delegation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAA;AAwDrE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAgB,YAAW,MAAM;IAC5C,QAAQ,CAAC,IAAI,8BAA6B;IAE1C,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IAEpE,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAoDlC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa;IAmBrB;;;;;;;;;;;;OAYG;YACY,oBAAoB;IAoDnC;;;;;;;OAOG;YACY,aAAa;CAsE7B"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * AgentDelegation — enforces delegation semantics for tool routing.
3
+ *
4
+ * When a tool is configured with `delegate: true`, this plugin ensures:
5
+ * 1. The delegation tool is the only tool called in the turn (single-call constraint)
6
+ * 2. The agent loop exits immediately after a successful delegation (via endTurn)
7
+ * 3. The AgentResult is transformed with `stopReason: 'endTurn'` and the tool's content
8
+ * 4. Streaming events from the delegate agent are surfaced natively in the parent stream
9
+ *
10
+ * The final delegation message is produced in middleware after the core loop exits.
11
+ * It is written to `agent.messages` and yielded to stream consumers, but does not
12
+ * fire `MessageAddedEvent` hooks via `invokeCallbacks`. `SessionManager` with
13
+ * `saveLatestOn: 'invocation'` (default) is unaffected; `saveLatestOn: 'message'`
14
+ * may persist the endTurn placeholder instead of the delegation content.
15
+ */
16
+ import { AgentResult } from '../types/agent.js';
17
+ import { AfterToolCallEvent, AfterToolsEvent, BeforeModelCallEvent, BeforeToolsEvent, MessageAddedEvent, StreamEvent, ToolStreamUpdateEvent, } from '../hooks/events.js';
18
+ import { HookOrder } from '../hooks/types.js';
19
+ import { AgentStreamStage, ExecuteToolStage } from '../middleware/index.js';
20
+ import { Message, TextBlock, ToolResultBlock, ToolUseBlock } from '../types/messages.js';
21
+ import { AgentAsTool } from './agent-as-tool.js';
22
+ /**
23
+ * Checks whether a tool registered on the agent is a delegation AgentAsTool.
24
+ */
25
+ function isDelegationTool(agent, toolName) {
26
+ const tool = agent.toolRegistry.get(toolName);
27
+ return tool instanceof AgentAsTool && tool.delegate;
28
+ }
29
+ /**
30
+ * Converts ToolResultContent blocks into valid ContentBlocks for an assistant message.
31
+ *
32
+ * AgentAsTool only produces TextBlock or JsonBlock results. JsonBlock is not part
33
+ * of the ContentBlock union, so it is serialized to a TextBlock.
34
+ */
35
+ function toContentBlocks(block) {
36
+ return block.content.map((contentBlock) => {
37
+ if (contentBlock.type === 'jsonBlock') {
38
+ return new TextBlock(JSON.stringify(contentBlock.json));
39
+ }
40
+ return contentBlock;
41
+ });
42
+ }
43
+ /**
44
+ * Plugin that enforces delegation semantics for tool routing.
45
+ *
46
+ * Automatically registered on every agent. Acts as a no-op when no delegation tools fire.
47
+ * Implements single-call constraint, early loop exit, and result transformation.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * import { Agent } from '@strands-agents/sdk'
52
+ *
53
+ * const specialist = new Agent({ name: 'Specialist' })
54
+ * const orchestrator = new Agent({
55
+ * tools: [specialist.asTool({ delegate: true })],
56
+ * // AgentDelegation is auto-registered — no manual setup needed
57
+ * })
58
+ * ```
59
+ */
60
+ export class AgentDelegation {
61
+ name = 'strands:agent-delegation';
62
+ /** Per-agent delegation state, created in _onBeforeTools and consumed in _handleStream. */
63
+ _state = new WeakMap();
64
+ initAgent(agent) {
65
+ // Fail fast: delegation is incompatible with stateful models.
66
+ // Stateful models manage conversation state server-side. Delegation's early
67
+ // exit would leave an unclosed function call on the server, corrupting the
68
+ // next request.
69
+ if (agent.model.stateful) {
70
+ const hasDelegationTool = agent.toolRegistry.list().some((tool) => tool instanceof AgentAsTool && tool.delegate);
71
+ if (hasDelegationTool) {
72
+ throw new Error('Delegation tools (delegate: true) are not supported with stateful models. ' +
73
+ "Stateful models manage conversation state server-side, and delegation's early loop exit " +
74
+ 'would leave unclosed function calls on the server.');
75
+ }
76
+ }
77
+ agent.addHook(BeforeToolsEvent, (event) => this._onBeforeTools(event));
78
+ agent.addHook(AfterToolCallEvent, (event) => this._onAfterToolCall(event));
79
+ agent.addHook(AfterToolsEvent, (event) => this._onAfterTools(event), { order: HookOrder.SDK_LAST });
80
+ // If the loop continues past a delegation batch (e.g. a later hook cleared
81
+ // endTurn), the next model call invalidates the delegation flag.
82
+ agent.addHook(BeforeModelCallEvent, (event) => {
83
+ this._state.delete(event.agent);
84
+ });
85
+ // async function* doesn't bind lexical `this`; capture for the terminal callback.
86
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
87
+ const self = this;
88
+ agent.addMiddleware(AgentStreamStage, async function* (context, next) {
89
+ return yield* self._handleStream(context, next);
90
+ });
91
+ // ExecuteToolStage middleware: unwraps inner agent streaming events for delegation tools
92
+ // so they appear as native events in the parent agent's stream.
93
+ agent.addMiddleware(ExecuteToolStage, async function* (context, next) {
94
+ return yield* self._handleToolExecution(context, next, agent);
95
+ });
96
+ }
97
+ /**
98
+ * BeforeToolsEvent hook: enforces single-call constraint against registry names
99
+ * and initializes per-batch delegation state.
100
+ */
101
+ _onBeforeTools(event) {
102
+ if (event.agent.model.stateful)
103
+ return;
104
+ const toolUseBlocks = event.message.content.filter((block) => block.type === 'toolUseBlock');
105
+ // Initialize state for this batch.
106
+ this._state.set(event.agent, { toolUseCount: toolUseBlocks.length });
107
+ // Cancel the batch if a delegation tool is present alongside other tools.
108
+ const hasDelegation = toolUseBlocks.some((block) => isDelegationTool(event.agent, block.name));
109
+ if (hasDelegation && toolUseBlocks.length > 1) {
110
+ event.cancel =
111
+ 'This tool call was not executed. A delegation tool must be the only ' +
112
+ 'tool called in a turn. Retry with a single delegation tool call or ' +
113
+ 'use only non-delegation tools.';
114
+ }
115
+ }
116
+ /**
117
+ * AfterToolCallEvent hook: marks the delegation tool use ID on success.
118
+ */
119
+ _onAfterToolCall(event) {
120
+ if (event.agent.model.stateful || !(event.tool instanceof AgentAsTool) || !event.tool.delegate) {
121
+ // Clear stale delegation mark if a retry swapped to a non-delegation tool
122
+ const state = this._state.get(event.agent);
123
+ if (state?.toolUseId === event.toolUse.toolUseId) {
124
+ delete state.toolUseId;
125
+ }
126
+ return;
127
+ }
128
+ const state = this._state.get(event.agent);
129
+ if (!state)
130
+ return;
131
+ // Only mark if the result is successful. If error, clear any prior mark
132
+ // (e.g. from a retried attempt that succeeded previously).
133
+ if (event.result.status === 'error') {
134
+ delete state.toolUseId;
135
+ return;
136
+ }
137
+ state.toolUseId = event.toolUse.toolUseId;
138
+ }
139
+ /**
140
+ * AfterToolsEvent hook: signals the agent loop to stop via endTurn when
141
+ * delegation succeeded.
142
+ *
143
+ * This hook runs at `HookOrder.SDK_LAST` (100). If a hook with a higher
144
+ * numeric order mutates a ToolResultBlock's status from success to error,
145
+ * the endTurn signal has already been committed and the loop will still exit.
146
+ * In practice, no SDK or vended plugin registers AfterToolsEvent hooks above
147
+ * SDK_LAST, and mutating committed ToolResultBlock status in AfterToolsEvent
148
+ * is not a documented or supported pattern.
149
+ */
150
+ _onAfterTools(event) {
151
+ if (event.agent.model.stateful)
152
+ return;
153
+ const state = this._state.get(event.agent);
154
+ if (!state?.toolUseId)
155
+ return;
156
+ // Verify the tool result is still successful in the committed message.
157
+ const resultBlock = event.message.content.find((block) => block instanceof ToolResultBlock && block.toolUseId === state.toolUseId);
158
+ if (!resultBlock || resultBlock.status === 'error') {
159
+ delete state.toolUseId;
160
+ return;
161
+ }
162
+ event.endTurn = true;
163
+ state.endTurnViaDelegation = true;
164
+ }
165
+ /**
166
+ * ExecuteToolStage middleware: enforces single-call constraint and surfaces
167
+ * delegate agent streaming events natively.
168
+ *
169
+ * For delegation tools in a multi-tool batch, returns an error result without
170
+ * executing the tool. For valid single-tool delegation, unwraps inner agent
171
+ * streaming events so they appear as native events in the parent stream.
172
+ *
173
+ * A post-init middleware registered inside this one can still bypass the check
174
+ * by spreading a modified context with a different `tool` to `next()`. This is a
175
+ * framework-level trust boundary, not addressable at the plugin level.
176
+ * The sanctioned path for tool replacement is `BeforeToolCallEvent.selectedTool`.
177
+ */
178
+ async *_handleToolExecution(context, next, agent) {
179
+ // Non-delegation tools or stateful models pass through unchanged.
180
+ if (!(context.tool instanceof AgentAsTool) || !context.tool.delegate || agent.model.stateful) {
181
+ return yield* next(context);
182
+ }
183
+ // Enforce single-call constraint: delegation tool must be the only tool in the batch.
184
+ const state = this._state.get(agent);
185
+ if (state && state.toolUseCount > 1) {
186
+ return {
187
+ result: new ToolResultBlock({
188
+ toolUseId: context.toolUse.toolUseId,
189
+ status: 'error',
190
+ content: [
191
+ new TextBlock('Delegation failed: a delegation tool must be the only tool called in a turn. ' +
192
+ 'Retry with a single delegation tool call or use only non-delegation tools.'),
193
+ ],
194
+ }),
195
+ };
196
+ }
197
+ // Iterate the inner pipeline manually so we can transform events
198
+ const gen = next(context);
199
+ let result = await gen.next();
200
+ while (!result.done) {
201
+ const event = result.value;
202
+ // ToolStreamUpdateEvents from a delegation tool may contain wrapped inner agent events.
203
+ // Unwrap them: if the data is a StreamEvent instance, yield it as a native event.
204
+ if (event.type === 'toolStreamUpdateEvent') {
205
+ const innerData = event.event.data;
206
+ if (innerData instanceof StreamEvent) {
207
+ yield innerData;
208
+ }
209
+ else {
210
+ // Regular tool stream events (e.g., from the inner agent's own tools) pass through
211
+ yield event;
212
+ }
213
+ }
214
+ else {
215
+ yield event;
216
+ }
217
+ result = await gen.next();
218
+ }
219
+ return result.value;
220
+ }
221
+ /**
222
+ * AgentStreamStage middleware: transforms the AgentResult on delegation.
223
+ *
224
+ * When the main loop exits via endTurn triggered by delegation (identified by
225
+ * the `endTurnViaDelegation` flag on DelegationState), this middleware replaces
226
+ * the default endTurn result with the proper delegation result: the sub-agent's
227
+ * content from the tool-result message.
228
+ */
229
+ async *_handleStream(context, next) {
230
+ // Clear any stale state from a prior failed invocation.
231
+ this._state.delete(context.agent);
232
+ let streamResult;
233
+ try {
234
+ streamResult = yield* next(context);
235
+ }
236
+ catch (error) {
237
+ this._state.delete(context.agent);
238
+ throw error;
239
+ }
240
+ const state = this._state.get(context.agent);
241
+ this._state.delete(context.agent);
242
+ if (!state?.toolUseId || !state.endTurnViaDelegation)
243
+ return streamResult;
244
+ // Only transform if the result stopped via endTurn.
245
+ // Other stop reasons pass through unchanged.
246
+ if (streamResult.result.stopReason !== 'endTurn')
247
+ return streamResult;
248
+ // Find the delegation tool's result in agent.messages. The tool-result
249
+ // message is the last user message before the endTurn assistant message.
250
+ const messages = context.agent.messages;
251
+ let resultBlock;
252
+ for (let i = messages.length - 1; i >= 0; i--) {
253
+ const msg = messages[i];
254
+ if (msg && msg.role === 'user') {
255
+ resultBlock = msg.content.find((block) => block instanceof ToolResultBlock && block.toolUseId === state.toolUseId);
256
+ break;
257
+ }
258
+ }
259
+ if (!resultBlock || resultBlock.status === 'error')
260
+ return streamResult;
261
+ const delegationMessage = new Message({
262
+ role: 'assistant',
263
+ content: toContentBlocks(resultBlock),
264
+ });
265
+ // Replace the endTurn message the main loop appended with the delegation content.
266
+ const lastMessage = messages[messages.length - 1];
267
+ if (lastMessage?.role === 'assistant') {
268
+ messages[messages.length - 1] = delegationMessage;
269
+ }
270
+ else {
271
+ messages.push(delegationMessage);
272
+ }
273
+ yield new MessageAddedEvent({
274
+ agent: context.agent,
275
+ message: delegationMessage,
276
+ invocationState: streamResult.result.invocationState,
277
+ });
278
+ // Replace AgentResult with the delegation tool's content
279
+ return {
280
+ result: new AgentResult({
281
+ stopReason: 'endTurn',
282
+ lastMessage: delegationMessage,
283
+ invocationState: streamResult.result.invocationState,
284
+ ...(streamResult.result.metrics !== undefined && { metrics: streamResult.result.metrics }),
285
+ ...(streamResult.result.traces !== undefined && { traces: streamResult.result.traces }),
286
+ }),
287
+ };
288
+ }
289
+ }
290
+ //# sourceMappingURL=agent-delegation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-delegation.js","sourceRoot":"","sources":["../../../src/agent/agent-delegation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EAErB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAIL,OAAO,EACP,KAAK,WAAW,EAEhB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAItB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAI7D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAyC,MAAM,oBAAoB,CAAA;AAGhG,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAOtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAOrF,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAO/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjH,OAAO,EAQL,aAAa,EASd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAS,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EAAkB,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAIhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AASjD;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,YAAY,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,0BAA0B,8BAA+B,CAAA;AACtE,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAA;AAahF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,MAAM,CAAA;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAA;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAA;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,IAAI,CAAA;IACtD;;OAEG;IACH,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAA;IACrC;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;IACpC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAA;IACnD;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,CAAA;IACrF;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAC1B,CAAA;AAoED;;;;GAIG;AACH,qBAAa,KAAM,YAAW,UAAU,EAAE,cAAc;IACtD,gBAAgB;IAChB,SAAiB,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAA;IAEzC;;OAEG;IACI,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC1B;;;OAGG;IACH,SAAgB,QAAQ,EAAE,UAAU,CAAA;IACpC;;;;OAIG;IACH,SAAgB,UAAU,EAAE,UAAU,CAAA;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAE1D;;OAEG;IACI,KAAK,EAAE,KAAK,CAAA;IAEnB;;OAEG;IACI,YAAY,CAAC,EAAE,YAAY,CAAA;IAElC;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,SAAgB,EAAE,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpC;;OAEG;IACH,SAAgB,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IAC3D;;OAEG;IACH,SAAgB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAEzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD;;;;;OAKG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,uBAAuB,CAAC,CAAyB;IACzD,qEAAqE;IACrE,OAAO,CAAC,OAAO,CAAQ;IACvB,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAAO;IACrB,uDAAuD;IACvD,eAAe,EAAE,cAAc,CAAA;IAC/B,4DAA4D;IAC5D,OAAO,CAAC,aAAa,CAAiD;IACtE,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C;;;OAGG;gBACS,MAAM,CAAC,EAAE,WAAW;IAuIhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,EAC7B,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACtC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,WAAW;IAId;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EACrC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EACtD,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GACxC,MAAM,IAAI;IACb;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EACrC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EACrD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GACpD,MAAM,IAAI;IACb;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EACrC,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EACvD,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACxC,MAAM,IAAI;IACb;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EACrC,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EACjD,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GACpD,MAAM,IAAI;IA2CA,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CxC;;;OAGG;IACH,OAAO,CAAC,WAAW;IASnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED;;;;;;;;OAQG;IACH,IAAI,YAAY,IAAI,sBAAsB,GAAG,sBAAsB,CAElE;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,EAEpG;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,YAAY,CAE1B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED;;;;;OAKG;IACH,IAAI,YAAY,IAAI,WAAW,CAE9B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,MAAM,IAAI,IAAI;IAMrB;;;OAGG;IACH,OAAO,KAAK,WAAW,GAEtB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACU,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IASpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACW,MAAM,CAClB,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,aAAa,GACtB,cAAc,CAAC,gBAAgB,EAAE,WAAW,EAAE,SAAS,CAAC;IA6F3D;;;OAGG;YACY,qBAAqB;IAkDpC;;;OAGG;YACY,WAAW;IAwD1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,MAAM,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAIjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,QAAQ;IAI3D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI7C;;;;;OAKG;YACW,gBAAgB;IAQ9B;;;;;;;OAOG;YACY,OAAO;IAuWtB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAsDvB;;;;;;OAMG;YACY,YAAY;IA+H3B;;;;;;;;;OASG;YACY,0BAA0B;IA+EzC;;;;;;;;;;;;;;;OAeG;YACY,gBAAgB;IA4B/B;;;;;;;;OAQG;YACY,YAAY;IAwE3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAyC1B;;;;;;;;;;OAUG;YACW,oBAAoB;IA+BlC;;;;;;OAMG;YACW,0BAA0B;IAKxC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAIvB"}
@@ -20,6 +20,7 @@ import { SummarizingConversationManager } from '../conversation-manager/summariz
20
20
  import { NullConversationManager } from '../conversation-manager/null-conversation-manager.js';
21
21
  import { ConversationManager } from '../conversation-manager/conversation-manager.js';
22
22
  import { ContextOffloader } from '../vended-plugins/context-offloader/plugin.js';
23
+ import { AgentDelegation } from './agent-delegation.js';
23
24
  import { InMemoryStorage } from '../storage/in-memory-storage.js';
24
25
  import { HookRegistryImplementation } from '../hooks/registry.js';
25
26
  import { createMiddlewareInterrupt } from '../middleware/interrupt.js';
@@ -259,10 +260,15 @@ export class Agent {
259
260
  // guards on `event.retry`, so a user hook that already set it short-circuits
260
261
  // the strategy regardless of registration order.
261
262
  const hasOffloader = (config?.plugins ?? []).some((p) => p.name === 'strands:context-offloader');
263
+ // Always register AgentDelegation so delegation semantics work regardless of
264
+ // when a delegate tool is added (construction, plugin getTools, MCP, runtime).
265
+ // The plugin is a no-op when no delegation tools fire.
266
+ const hasAgentDelegation = (config?.plugins ?? []).some((p) => p.name === 'strands:agent-delegation');
262
267
  this._pluginRegistry = new PluginRegistry([
263
268
  this._conversationManager,
264
269
  ...retryStrategies,
265
270
  ...(config?.plugins ?? []),
271
+ ...(!hasAgentDelegation ? [new AgentDelegation()] : []),
266
272
  ...((config?.contextManager === 'auto' || config?.contextManager === 'agentic') && !hasOffloader
267
273
  ? [
268
274
  new ContextOffloader({