Skip to content

Commit 42bec3a

Browse files
authored
Make the tool name non-optional in ToolMessage (#43)
ToolCall has a required str property, and all our tools have a name, thus I do not see a way to get a tool result (ToolMessage) that does not have a name.
1 parent c90ecdc commit 42bec3a

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

splunklib/ai/engines/langchain.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,11 @@ def _map_message_from_langchain(message: LC_BaseMessage) -> BaseMessage:
314314
status=message.status,
315315
)
316316
case LC_ToolMessage():
317+
# If this is reached, this likely means that we passed an invalid
318+
# tool name to langchain.
319+
assert message.name is not None, (
320+
"langchain responded with a tool call that does not have a name"
321+
)
317322
return ToolMessage(
318323
name=message.name,
319324
content=str(message.content),

splunklib/ai/messages.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class ToolMessage(BaseMessage):
8585
"""
8686

8787
role: Literal["tool"] = "tool"
88-
name: str | None = field(default=None)
88+
name: str = field(default="")
8989
call_id: str = field(default="")
9090
status: Literal["success", "error"] = "success"
9191

0 commit comments

Comments
 (0)