Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion splunklib/ai/engines/langchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,7 @@ def unpack_tool_call(self, call: LC_ToolCall) -> LC_ToolCall:
id=call["id"],
name=call["name"],
args=unpacked_args,
type="tool_call",
)

return call
Expand Down Expand Up @@ -1142,6 +1143,7 @@ def _convert_model_response_to_model_result(
id=call.id,
name=f"{TOOL_STRATEGY_TOOL_PREFIX}{call.name}",
args=call.args,
type="tool_call",
)
for call in resp.message.structured_output_calls
)
Expand Down Expand Up @@ -1646,7 +1648,7 @@ def _map_tool_call_to_langchain(call: ToolCall | SubagentCall) -> LC_ToolCall:
name = _normalize_tool_name(call.name, call.type)
args = call.args

return LC_ToolCall(id=call.id, name=name, args=args)
return LC_ToolCall(id=call.id, name=name, args=args, type="tool_call")


def _map_content_from_langchain(
Expand Down Expand Up @@ -1754,6 +1756,7 @@ def _map_message_to_langchain(message: BaseMessage) -> LC_AnyMessage:
id=call.id,
name=f"{TOOL_STRATEGY_TOOL_PREFIX}{call.name}",
args=call.args,
type="tool_call",
)
for call in message.structured_output_calls
)
Expand Down
19 changes: 15 additions & 4 deletions tests/unit/ai/engine/test_langchain_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ def test_map_message_from_langchain_ai_with_agent_call(self) -> None:
name=f"{lc.AGENT_PREFIX}assistant",
args={"args": {"q": "test"}, "thread_id": None},
id="tc-2",
type="tool_call",
)
message = LC_AIMessage(content="done", tool_calls=[tool_call])
mapped = lc._map_message_from_langchain(message)
Expand All @@ -199,11 +200,14 @@ def test_map_message_from_langchain_ai_with_agent_call(self) -> None:
]

def test_map_message_from_langchain_ai_with_mixed_calls(self) -> None:
tool_call = LC_ToolCall(name="lookup", args={"q": "test"}, id="tc-1")
tool_call = LC_ToolCall(
name="lookup", args={"q": "test"}, id="tc-1", type="tool_call"
)
agent_call = LC_ToolCall(
name=f"{lc.AGENT_PREFIX}assistant",
args={"args": {"q": "test"}, "thread_id": None},
id="tc-2",
type="tool_call",
)
message = LC_AIMessage(content="done", tool_calls=[tool_call, agent_call])

Expand Down Expand Up @@ -280,7 +284,9 @@ def test_map_message_to_langchain_ai(self) -> None:

assert isinstance(mapped, LC_AIMessage)
assert mapped.content == "hi"
assert mapped.tool_calls == [LC_ToolCall(name="lookup", args={}, id="tc-1")]
assert mapped.tool_calls == [
LC_ToolCall(name="lookup", args={}, id="tc-1", type="tool_call")
]

def test_map_message_to_langchain_ai_with_text_content_block(self) -> None:
extras = {
Expand Down Expand Up @@ -389,6 +395,7 @@ def test_map_message_to_langchain_ai_with_agent_call(self) -> None:
name=f"{lc.AGENT_PREFIX}assistant",
args={"args": {"q": "test"}, "thread_id": None},
id="tc-2",
type="tool_call",
)
]

Expand Down Expand Up @@ -424,6 +431,7 @@ def test_map_message_to_langchain_ai_with_tool_call_with_thought_signature(
name=f"__local-startup_time",
args={"q": "test"},
id="tc-2",
type="tool_call",
)
]
assert mapped.additional_kwargs == extras
Expand Down Expand Up @@ -451,7 +459,9 @@ def test_map_message_to_langchain_tool_call_with_reserved_prefix(self) -> None:
)
assert isinstance(message, LC_AIMessage)
assert message.tool_calls == [
LC_ToolCall(name="__tool-__agent-bad-tool", args={}, id="tc-1")
LC_ToolCall(
name="__tool-__agent-bad-tool", args={}, id="tc-1", type="tool_call"
)
]

message = lc._map_message_to_langchain(
Expand All @@ -466,7 +476,7 @@ def test_map_message_to_langchain_tool_call_with_reserved_prefix(self) -> None:
)
assert isinstance(message, LC_AIMessage)
assert message.tool_calls == [
LC_ToolCall(name="__tool-__bad-tool", args={}, id="tc-2")
LC_ToolCall(name="__tool-__bad-tool", args={}, id="tc-2", type="tool_call")
]

message = lc._map_message_to_langchain(
Expand Down Expand Up @@ -535,6 +545,7 @@ def test_map_message_to_langchain_agent_call_with_agent_prefix_raises(
name="__agent-__agent-bad-agent",
args={"args": {}, "thread_id": None},
id="tc-1",
type="tool_call",
)
]

Expand Down