Entropic 2.3.8
Local-first agentic inference engine
Loading...
Searching...
No Matches
entropic::Qwen36Adapter Class Reference

Qwen 3.6 MoE chat adapter. More...

#include </home/runner/work/entropic/entropic/src/inference/adapters/qwen36_adapter.h>

Inheritance diagram for entropic::Qwen36Adapter:
Collaboration diagram for entropic::Qwen36Adapter:

Public Member Functions

std::string chat_format () const override
 Chat format: ChatML.
 
ParseResult parse_tool_calls (const std::string &content) const override
 Parse XML function calls; fall back to tagged JSON.
 
Message format_tool_result (const ToolCall &tool_call, const std::string &result) const override
 Wrap tool result in <tool_response> tags.
 
std::string format_system_with_vision (const std::string &base_system, bool has_vision) const override
 Append vision instructions to the system prompt when active.
 
std::string format_content_parts (const std::vector< ContentPart > &parts) const override
 Format multimodal content parts (OpenAI-native).
 
 ChatAdapter (std::string tier_name, std::string identity_prompt)
 Construct adapter with tier identity.
 
- Public Member Functions inherited from entropic::ChatAdapter
 ChatAdapter (std::string tier_name, std::string identity_prompt)
 Construct adapter with tier identity.
 
std::string format_system_prompt (const std::string &base_prompt, const std::vector< std::string > &tool_jsons) const
 Assemble system prompt: identity + context + tools.
 
bool is_response_complete (const std::string &content, const std::vector< ToolCall > &tool_calls) const
 Check if response represents task completion.
 

Protected Member Functions

std::string format_tools (const std::vector< std::string > &tool_jsons) const override
 Format tools as <tools>...</tools> with OpenAI function JSON.
 
- Protected Member Functions inherited from entropic::ChatAdapter
std::vector< ToolCallparse_tagged_tool_calls (const std::string &content) const
 Parse <tool_call>JSON</tool_call> tagged blocks.
 
std::vector< ToolCallparse_bare_json_tool_calls (const std::string &content) const
 Parse bare JSON lines containing "name" key.
 
std::string extract_thinking (const std::string &content) const
 Extract <think>...</think> content.
 
std::string strip_think_blocks (const std::string &content) const
 Strip all <think>...</think> blocks from content.
 
std::optional< ToolCalltry_recover_json (const std::string &json_str) const
 Attempt JSON recovery on malformed tool call string.
 
std::optional< ToolCallparse_single_tool_call (const std::string &json_str) const
 Parse a single JSON tool call string.
 

Additional Inherited Members

- Protected Attributes inherited from entropic::ChatAdapter
std::string tier_name_
 Identity tier name.
 
std::string identity_prompt_
 Assembled identity prompt.
 
std::unordered_set< std::string > tool_prefixes_
 Known tool prefixes.
 

Detailed Description

Qwen 3.6 MoE chat adapter.

Overrides: XML tool call parsing (qwen3_coder format), <tools> tag formatting, <tool_response> result wrapping, vision system prompt extension. Reuses base-class think-block handling.

Version
2.1.9

Definition at line 55 of file qwen36_adapter.h.

Member Function Documentation

◆ chat_format()

std::string entropic::Qwen36Adapter::chat_format ( ) const
inlineoverridevirtual

Chat format: ChatML.

Returns
The string "chatml". @utility
Version
2.1.9

Implements entropic::ChatAdapter.

Definition at line 65 of file qwen36_adapter.h.

◆ ChatAdapter()

entropic::ChatAdapter::ChatAdapter ( std::string  tier_name,
std::string  identity_prompt 
)

Construct adapter with tier identity.

Parameters
tier_nameIdentity tier (e.g. "eng", "lead").
identity_promptAssembled identity prompt.
Version
1.8.2
Parameters
tier_nameIdentity tier name.
identity_promptAssembled identity prompt.
Version
1.8.2

Definition at line 66 of file adapter_base.cpp.

◆ format_content_parts()

std::string entropic::Qwen36Adapter::format_content_parts ( const std::vector< ContentPart > &  parts) const
overridevirtual

Format multimodal content parts (OpenAI-native).

Format content parts using the OpenAI content-array convention.

Qwen 3.6 uses the same OpenAI content-array convention as Qwen 3.5 — early fusion, no special image tags.

Parameters
partsContent parts from a message.
Returns
JSON string in the OpenAI content-array format.
Version
2.1.9
Parameters
partsContent parts from a message.
Returns
JSON string in the OpenAI content-array format.

Reimplemented from entropic::ChatAdapter.

Definition at line 283 of file qwen36_adapter.cpp.

◆ format_system_with_vision()

std::string entropic::Qwen36Adapter::format_system_with_vision ( const std::string &  base_system,
bool  has_vision 
) const
overridevirtual

Append vision instructions to the system prompt when active.

Parameters
base_systemBase system prompt text.
has_visionWhether vision capability is available for the tier.
Returns
Formatted system prompt.
Version
2.1.9
Parameters
base_systemBase system prompt text.
has_visionWhether vision is enabled for the tier.
Returns
System prompt, with vision instructions appended if active.

Reimplemented from entropic::ChatAdapter.

Definition at line 267 of file qwen36_adapter.cpp.

◆ format_tool_result()

Message entropic::Qwen36Adapter::format_tool_result ( const ToolCall tool_call,
const std::string &  result 
) const
overridevirtual

Wrap tool result in <tool_response> tags.

Wrap tool result in <tool_response> tags as a user message.

Parameters
tool_callExecuted tool call.
resultExecution result text.
Returns
User-role message containing the wrapped result.
Version
2.1.9
Parameters
tool_callExecuted tool call (name available for logging only).
resultExecution result text.
Returns
User-role message with the wrapped result.

Reimplemented from entropic::ChatAdapter.

Definition at line 176 of file qwen36_adapter.cpp.

◆ format_tools()

std::string entropic::Qwen36Adapter::format_tools ( const std::vector< std::string > &  tool_jsons) const
overrideprotectedvirtual

Format tools as <tools>...</tools> with OpenAI function JSON.

Format tool definitions as a <tools> JSON array section.

Parameters
tool_jsonsTool definition JSON strings.
Returns
Formatted tools section to inject into the system prompt.
Version
2.1.9

Matches Qwen's qwen3_coder template expectations: a # Tools header, an OpenAI-function-formatted JSON array inside <tools> tags, then the call-format reminder.

Parameters
tool_jsonsTool definition JSON strings.
Returns
Section to inject into the system prompt.

Reimplemented from entropic::ChatAdapter.

Definition at line 201 of file qwen36_adapter.cpp.

◆ parse_tool_calls()

ParseResult entropic::Qwen36Adapter::parse_tool_calls ( const std::string &  content) const
overridevirtual

Parse XML function calls; fall back to tagged JSON.

Parse tool calls from Qwen 3.6 output.

Parameters
contentRaw model output.
Returns
ParseResult with cleaned content and tool calls.
Version
2.1.9

Primary path: XML function calls (qwen3_coder format). Fallback: tagged JSON via the base class — covers stray <tool_call>{...}</tool_call> outputs.

Parameters
contentRaw model output.
Returns
ParseResult.

Implements entropic::ChatAdapter.

Definition at line 66 of file qwen36_adapter.cpp.


The documentation for this class was generated from the following files: