Reducers
Reducer utilities for merging and replacing lists and values in agent state.
This module provides generic and message-specific reducers for combining lists, replacing values, and appending items while avoiding duplicates.
Functions:
Name | Description |
---|---|
add_messages |
Adds messages to a list, avoiding duplicates by message_id. |
replace_messages |
Replaces the entire message list. |
append_items |
Appends items to a list, avoiding duplicates by id. |
replace_value |
Replaces a value with another. |
Classes¶
Functions¶
add_messages
¶
add_messages(left, right)
Adds messages to the list, avoiding duplicates by message_id.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
list[Message]
|
Existing list of messages. |
required |
|
list[Message]
|
New messages to add. |
required |
Returns:
Type | Description |
---|---|
list[Message]
|
list[Message]: Combined list with unique messages. |
Example
add_messages([msg1], [msg2, msg1]) [msg1, msg2]
Source code in pyagenity/utils/reducers.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
append_items
¶
append_items(left, right)
Appends items to a list, avoiding duplicates by item.id.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
list
|
Existing list of items (must have .id attribute). |
required |
|
list
|
New items to add. |
required |
Returns:
Name | Type | Description |
---|---|---|
list |
list
|
Combined list with unique items. |
Example
append_items([item1], [item2, item1]) [item1, item2]
Source code in pyagenity/utils/reducers.py
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
|
replace_messages
¶
replace_messages(left, right)
Replaces the entire message list with a new one.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
list[Message]
|
Existing list of messages (ignored). |
required |
|
list[Message]
|
New list of messages. |
required |
Returns:
Type | Description |
---|---|
list[Message]
|
list[Message]: The new message list. |
Example
replace_messages([msg1], [msg2]) [msg2]
Source code in pyagenity/utils/reducers.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
replace_value
¶
replace_value(left, right)
Replaces a value with another.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Existing value (ignored). |
required | |
|
New value to use. |
required |
Returns:
Name | Type | Description |
---|---|---|
Any |
The new value. |
Example
replace_value(1, 2) 2
Source code in pyagenity/utils/reducers.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
|