AgentModule + Engine kernel,但在模型接入层上新增了一层稳定抽象:
FamilyPresetHarnessPolicyModelAdapterToolPolicyContextPolicy
一句话理解
family preset 就是一个模型家族的研究默认值。 它会回答:- 用什么 transport
- 默认走什么 protocol
- fallback protocol chain 是什么
- tool schema 应该如何交付
- context 默认策略是什么
不变的部分
preset 层不会改变主链路。 它只是在 run 开始前,先把模型侧策略解析出来:v0.4 的公共表面
第一批 gold presets
QitOS v0.4 首批内建的 gold presets 是:qwenkimiminimaxgpt-ossgemma-4
- Qwen、Kimi、
gpt-oss、Gemma 4 默认走json_decision_v1 - MiniMax 保留
minimax_tool_call_v1
tool_calls 时,会优先命中 native tool-call lane。
也就是说,对 Qwen 来说:
json_decision_v1仍然是默认文本协议- 但 native tool calls 会在文本 parser chain 之前优先尝试
xml_decision_v1 -> react_text_v1则继续作为稳定 fallback
为什么不直接手写 OpenAICompatibleModel(...)
当然仍然可以。
如果你只是:
- 手工接一个单独模型
- 调试某一个 provider endpoint
- 暂时不需要 family-level defaults
- 做研究比较
- 让 examples 可复用
- 让 trace 更可解释
- protocol 选择
- fallback chain
- tool delivery mode
- context defaults
preset 元信息会出现在哪里
QitOS 通过RunSpec.metadata 把 preset / harness 信息写进 trace。
因此 qita 可以直接展示:
- family preset
- protocol
- parser
- tool delivery mode
- decision source
- native tool-call usage
- context policy
