概述
在 iFlow 原版中,ThinkingModelAdapter(单例 A2)内部硬编码了 12 条模型规则,定义哪些模型支持思考模式(Thinking Mode)、推理级别、Max Tokens 及请求参数配置。当用户切换思考开关或选择不同的推理级别时,TUI 组件通过 A2.supportsThinking(model) 感知模型能力。
本 Mod 在 A2 初始化后插入一行加载代码,从 ~/.iflow/thinking-models.json 读取用户定义的规则,通过 registerModel() 注入,用户规则与内置规则以 pattern 为 key 合并(同 pattern 覆盖,异 pattern 追加)。
安装
方式一:通过 iFlow Mod 管理器
-
下载
dist/com.thinking-mode-refactor.mod-v1.0.0.iflow-mod -
在 iFlow 的 Mod 管理器中导入安装
-
重启 iFlow
方式二:手动安装
-
将
thinking-model-loader.cjs复制到 iFlow 的core/目录 -
将
thinking-models.json复制到~/.iflow/目录 -
在
iflow.js中找到A2 = new Dqe(),在其后插入,require('./thinking-model-loader.cjs').load(A2) -
重启 iFlow
配置说明
编辑 ~/.iflow/thinking-models.json 文件,在 models 数组中添加或修改规则。
规则格式
interface ModelRule {
pattern: string; // 正则字符串,匹配模型名称(必填)
supportsThinking: boolean; // 是否支持思考模式(必填)
supportedReasoningLevels?: string[]; // 支持的推理级别,默认 ["low","medium","high"]
maxThinkingTokens?: number; // 最大思考 Token 数,默认 0
thinkingRequest?: DslBlock; // 思考模式下的请求参数配置
nonThinkingRequest?: DslBlock; // 非思考模式下的请求参数配置
}
DSL 原语
DslBlock 支持以下 5 种原语,可自由组合:
| 原语 | 说明 | 示例 |
|---|---|---|
set |
设置顶层字段 | { "reasoning": true } |
delete |
删除顶层字段 | ["reasoning", "thinking_mode"] |
setNested |
点号路径设置嵌套字段 | { "thinking.type": "enabled" } |
setConditional |
条件满足时设置字段 | 按 reasoningLevel 动态设置 |
setTemplate |
模板字符串 {{var}} 替换 |
{ "thinking.max_tokens": "{{maxTokens}}" } |
示例规则
{
"models": [
{
"pattern": "^claude-3\\.5-sonnet",
"supportsThinking": true,
"maxThinkingTokens": 25000,
"thinkingRequest": {
"setNested": {
"thinking.enabled": true
},
"setTemplate": {
"thinking.max_tokens": "{{maxTokens}}",
"thinking.reasoning_level": "{{reasoningLevel}}"
}
}
},
{
"pattern": "qwen.*4b",
"supportsThinking": false,
"supportedReasoningLevels": [],
"thinkingRequest": {
"delete": ["thinking_mode", "reasoning"]
}
}
]
}
完整示例参见 thinking-models.json 文件。
合并策略
1. A2 = new Dqe() → initializeModelCapabilities() → 注册内置 12 条默认规则
2. load(A2) → 从 ~/.iflow/thinking-models.json 加载用户规则
3. registerModel 以 pattern.source 为 key 存入 Map
同 pattern → 用户规则完全替换默认
异 pattern → 追加到规则列表
边界防护
| 异常场景 | 处理方式 |
|---|---|
| 配置文件不存在 | 静默忽略,纯用默认规则 |
| JSON 语法错误 | 静默忽略 |
| pattern 正则非法 | console.warn + 跳过该条 |
| 缺少必填字段 | if 守卫 + console.warn + 跳过 |
| 无 thinkingRequest | 视为不支持 thinking |
MOD下载地址:
通过网盘分享的文件:com.thinking-mode-refactor.mod-v1.0.0.iflow-mod
链接: 百度网盘 请输入提取码 提取码: 5nhv 复制这段内容后打开百度网盘手机App,操作更方便哦
MOD管理器:
MOD打包工具: