v0.4 之后实际改变了什么
现在qwen family preset 会把三件事绑定在一起:
- tool schema 默认通过
api_parameter交付 - 如果 endpoint 返回了
tool_calls,优先走 native lane - 文本协议链继续保留,作为稳定 fallback
default_protocol 仍然是 json_decision_v1,但对 Qwen 来说,它现在更准确的角色是文本 fallback,而不是最优路径本身。
什么时候会命中 native lane
QitOS 会在以下条件同时满足时优先走 native lane:- 模型被解析为
qwenfamily preset - harness metadata 中
native_tool_call_preferred = true - OpenAI-compatible 响应里确实带有
tool_calls
为什么不直接照搬 Qwen-Agent 的 sentinel prompt
官方 Qwen-Agent 为“不提供原生 tool channel 的 Qwen chat 接口”设计了一套专门的 function-calling prompt。 QitOS 在 OpenAI-compatible 的 Qwen 路径里不直接照搬它,原因是:- OpenAI-compatible serving 已经提供结构化的
tool_calls - 保留结构化信息比先序列化回文本再解析更干净
- 这样做也更容易被未来其他支持 native tool calls 的家族复用
- Qwen-Agent 解决的是更一般的 “Qwen chat interface” 问题
- QitOS 这里解决的是 “同一个 harness 层里如何优先用好 OpenAI-compatible served Qwen” 的问题
推荐的 qwen-plus 运行方式
建议直接用旗舰 example:
family_preset: qwentool_delivery: api_parameternative_tool_call_preferred: Truedecision_lane_preference: native_tool_calls
如何在 qita 里确认
打开qita 后,重点看这些字段:
family presetprompt protocoltool deliverydecision_sourcenative_tool_call_usednative_tool_call_fallback_reason
