strands.handlers
¶
Various handlers for performing custom actions on agent state.
Examples include:
- Processing tool invocations
- Displaying events from the event stream
strands.handlers.callback_handler
¶
This module provides handlers for formatting and displaying events from the agent.
CompositeCallbackHandler
¶
Class-based callback handler that combines multiple callback handlers.
This handler allows multiple callback handlers to be invoked for the same events, enabling different processing or output formats for the same stream data.
Source code in strands/handlers/callback_handler.py
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
__call__(**kwargs)
¶
Invoke all handlers in the chain.
Source code in strands/handlers/callback_handler.py
54 55 56 57 |
|
__init__(*handlers)
¶
Initialize handler.
Source code in strands/handlers/callback_handler.py
50 51 52 |
|
PrintingCallbackHandler
¶
Handler for streaming text output and tool invocations to stdout.
Source code in strands/handlers/callback_handler.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
__call__(**kwargs)
¶
Stream text output and tool invocations to stdout.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
**kwargs
|
Any
|
Callback event data including:
|
{}
|
Source code in strands/handlers/callback_handler.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
__init__()
¶
Initialize handler.
Source code in strands/handlers/callback_handler.py
10 11 12 13 |
|
null_callback_handler(**_kwargs)
¶
Callback handler that discards all output.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
**_kwargs
|
Any
|
Event data (ignored). |
{}
|
Source code in strands/handlers/callback_handler.py
60 61 62 63 64 65 66 |
|
strands.handlers.tool_handler
¶
This module provides handlers for managing tool invocations.
AgentToolHandler
¶
Bases: ToolHandler
Handler for processing tool invocations in agent.
This class implements the ToolHandler interface and provides functionality for looking up tools in a registry and invoking them with the appropriate parameters.
Source code in strands/handlers/tool_handler.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
|
__init__(tool_registry)
¶
Initialize handler.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tool_registry
|
ToolRegistry
|
Registry of available tools. |
required |
Source code in strands/handlers/tool_handler.py
20 21 22 23 24 25 26 |
|
preprocess(tool, tool_config, **kwargs)
¶
Preprocess a tool before invocation (not implemented).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tool
|
ToolUse
|
The tool use object to preprocess. |
required |
tool_config
|
ToolConfig
|
Configuration for the tool. |
required |
**kwargs
|
Any
|
Additional keyword arguments. |
{}
|
Returns:
Type | Description |
---|---|
Optional[ToolResult]
|
Result of preprocessing, if any. |
Source code in strands/handlers/tool_handler.py
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
process(tool, model, system_prompt, messages, tool_config, callback_handler, **kwargs)
¶
Process a tool invocation.
Looks up the tool in the registry and invokes it with the provided parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tool
|
Any
|
The tool object to process, containing name and parameters. |
required |
model
|
Model
|
The model being used for the agent. |
required |
system_prompt
|
Optional[str]
|
The system prompt for the agent. |
required |
messages
|
List[Any]
|
The conversation history. |
required |
tool_config
|
Any
|
Configuration for the tool. |
required |
callback_handler
|
Any
|
Callback for processing events as they happen. |
required |
**kwargs
|
Any
|
Additional keyword arguments passed to the tool. |
{}
|
Returns:
Type | Description |
---|---|
Any
|
The result of the tool invocation, or an error response if the tool fails or is not found. |
Source code in strands/handlers/tool_handler.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
|