Module: Legion::LLM::Inference::NativeToolLoop

Included in:
Executor
Defined in:
lib/legion/llm/inference/native_tool_loop.rb

Constant Summary collapse

QWEN_TOOL_USE_RE =

Tag-based markup some Qwen variants emit when a tool is selected via the chat template instead of being returned through the tool_calls field. Captures one block per tool call:

<tool_use_name>NAME</tool_use_name>
(<tool_use_parameter>KEY</tool_use_parameter>
 <tool_use_value>VALUE</tool_use_value>)+
%r{
  <tool_use_name>(?<name>[^<]+)</tool_use_name>
  (?<body>(?:\s*<tool_use_parameter>[^<]+</tool_use_parameter>
               \s*<tool_use_value>[^<]*</tool_use_value>)*)
}mx
QWEN_PARAM_RE =
%r{
  <tool_use_parameter>(?<param>[^<]+)</tool_use_parameter>
  \s*<tool_use_value>(?<value>[^<]*)</tool_use_value>
}mx