Skip to content

Commit 0fba2bc

Browse files
authored
chore: compatibility with Haystack 2.24.1 Agent (#442)
1 parent c33b8f3 commit 0fba2bc

File tree

1 file changed

+15
-4
lines changed
  • haystack_experimental/components/agents

1 file changed

+15
-4
lines changed

haystack_experimental/components/agents/agent.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def __init__(
119119
max_agent_steps: int = 100,
120120
streaming_callback: StreamingCallbackT | None = None,
121121
raise_on_tool_invocation_failure: bool = False,
122-
confirmation_strategies: dict[str, ConfirmationStrategy] | None = None,
122+
confirmation_strategies: dict[str | tuple[str, ...], ConfirmationStrategy] | None = None,
123123
tool_invoker_kwargs: dict[str, Any] | None = None,
124124
chat_message_store: ChatMessageStore | None = None,
125125
memory_store: MemoryStore | None = None,
@@ -843,9 +843,20 @@ def from_dict(cls, data: dict[str, Any]) -> "Agent":
843843

844844
deserialize_tools_or_toolset_inplace(init_params, key="tools")
845845

846-
if "confirmation_strategies" in init_params and init_params["confirmation_strategies"] is not None:
847-
for name in init_params["confirmation_strategies"]:
848-
deserialize_component_inplace(init_params["confirmation_strategies"], key=name)
846+
if init_params.get("confirmation_strategies") is not None:
847+
restored: dict[str | tuple[str, ...], Any] = {}
848+
849+
for raw_key in init_params["confirmation_strategies"].keys():
850+
deserialize_component_inplace(init_params["confirmation_strategies"], key=raw_key)
851+
strategy = init_params["confirmation_strategies"][raw_key]
852+
853+
if isinstance(raw_key, list):
854+
key = tuple(raw_key)
855+
else:
856+
key = raw_key
857+
restored[key] = strategy
858+
859+
init_params["confirmation_strategies"] = restored
849860

850861
# NOTE: This is different from the base Agent class to handle ChatMessageStore deserialization
851862
if "chat_message_store" in init_params and init_params["chat_message_store"] is not None:

0 commit comments

Comments
 (0)