---
name: model-preset
version: "2.0.0"
category: tools
description: "Agent 模型代理切换专家。查看/切换 agent 模型预设（opencode-go / livedata / budget），配置单个 agent 的模型，验证模型解析结果。Use to switch agent model presets, view current model assignments, configure individual agent models, or verify model resolution."
triggers:
  zh: ["切换模型", "切换预设", "模型配置", "模型预设", "换模型", "切换provider", "查看模型", "model preset", "switch model", "模型列表", "当前模型", "用什么模型", "模型切换"]
  en: ["model preset", "switch model", "model config", "change model", "model provider", "model switch", "current model", "list models", "model status"]
license: MIT
compatibility: opespro-opencode >= 2.0.0
dependencies:
  - opespro-opencode.jsonc
  - bun >= 1.0.0
metadata:
  author: "OpesPro Team"
  created: "2026-06-29"
  updated: "2026-06-29"
  status: "stable"
  agent_profile: craftsman
---

# Agent Model Preset Manager / Agent 模型预设管理器

## Changelog / 版本履历

| 日期 | 版本 | 变更摘要 |
|------|------|---------|
| 2026-06-29 | 2.0.0 | 重构：简化配置结构，增加双语注释，统一 agent 分类 |
| 2026-06-29 | 1.0.0 | 初始版本 |

---

## Core Concept / 核心概念

**输入**: 模型切换/查看请求 | **输出**: 修改后的 agent 模型配置 + 验证结果

**负责**: 管理 `opespro-opencode.jsonc` 中所有 agent 的模型配置  
**不负责**: 修改 opencode.jsonc 的全局模型设置、创建新的 provider

---

## Iron Law / 核心铁律

1. **只修改** `.opencode/opespro-opencode.jsonc` 中的 `agents`、`active_preset`、`presets` 字段
2. **绝不修改** opencode.jsonc 或 ~/.config/opencode/opencode.jsonc
3. **切换 preset 后必须验证**: `cd opespro-opencode && bun run scripts/verify-models.ts`
4. **提供给用户的模型名称必须是完整 ID**（`provider/model` 格式，如 `opencode-go/deepseek-v4-pro`）
5. **不要删除已有 preset**，只能修改或新增

---

## Architecture Overview / 架构概览

### Model Resolution Chain / 模型解析链

Agent 的最终模型经过三个层级解析：

```
Agent .md 文件 (model/model_alias)
    ↓
config.agents[agentName] (基础配置覆盖)
    ↓
config.presets[active_preset].overrides[agentName] (预设覆盖)
    ↓
最终 model (provider/model ID)
```

### Configuration File / 配置文件

配置文件 `opespro-opencode.jsonc` 的搜索路径（按优先级）：

1. `<项目>/.opencode/opespro-opencode.jsonc`
2. `<项目>/opespro-opencode.jsonc`
3. 父目录向上遍历到 `$HOME`
4. `~/.config/opencode/opespro-opencode.jsonc`

示例配置模板位于 `opespro-opencode/opespro-opencode.jsonc.example`

---

## Available Presets / 可用预设

| Preset ID | Provider | 说明 | Agent 架构 |
|-----------|----------|------|------------|
| `opencode-go` | opencode-go | 全部 12 个 agent 使用 OpenCode Go ($10/mo) | `go/*` 别名系列 |
| `livedata` | livedata | 全部 12 个 agent 使用 livedata (自定义 API) | `ld/*` 别名系列 |
| `budget` | 混合 | 仅 architect/analyst/executor 使用轻量模型 | 部分覆盖 go/small |

### 如何切换预设

编辑配置文件，修改 `active_preset` 字段：

```jsonc
{
  "active_preset": "opencode-go"  // 改为 "livedata" 或 "budget"
}
```

---

## Available Models / 可用模型

### opencode-go Provider / opencode-go 提供者

| 别名 Key | 完整模型 ID | 模型名称 | 适用场景 |
|----------|------------|---------|---------|
| `go/reasoning` | `opencode-go/deepseek-v4-pro` | DeepSeek V4 Pro | 深度推理、复杂分析、Bug 修复 |
| `go/coding` | `opencode-go/kimi-k2.7-code` | Kimi K2.7 Code | 代码编写、构建任务 |
| `go/general` | `opencode-go/qwen3.7-plus` | Qwen3.7 Plus | 通用任务、文档、历史记录 |
| `go/max` | `opencode-go/qwen3.7-max` | Qwen3.7 Max | 高质量文档、复杂输出 |
| `go/small` | `opencode-go/glm-5.2` | GLM-5.2 | 快速推理、省钱方案、路由 |
| `go/vision` | `opencode-go/glm-5` | GLM-5 | 多模态理解、图片分析 |
| `go/knowledge` | `opencode-go/kimi-k2.5` | Kimi K2.5 | 知识检索、信息查询 |

### livedata Provider / livedata 提供者

| 别名 Key | 完整模型 ID | 模型名称 | 对应 go/* |
|----------|------------|---------|----------|
| `ld/reasoning` | `livedata/deepseek-v4-pro` | DeepSeek V4 Pro | go/reasoning |
| `ld/coding` | `livedata/qwen3-coder-plus` | Qwen3 Coder Plus | go/coding |
| `ld/coding-next` | `livedata/qwen3-coder-next` | Qwen3 Coder Next | go/coding (增强) |
| `ld/general` | `livedata/qwen3.7-plus` | Qwen3.7 Plus | go/general |
| `ld/max` | `livedata/qwen3.7-max` | Qwen3.7 Max | go/max |
| `ld/small` | `livedata/glm-5.2` | GLM-5.2 | go/small |
| `ld/vision` | `livedata/glm-5` | GLM-5 | go/vision |
| `ld/knowledge` | `livedata/kimi-k2.5` | Kimi K2.5 | go/knowledge |
| `ld/router` | `livedata/glm-4.7` | GLM-4.7 | go/small (路由专用) |

---

## Agent Model Assignments / Agent 模型分配

### Current Assignments (opencode-go / 当前分配)

| Agent | 类型 | 模型别名 | 模型 ID | 温度 | 回退 |
|-------|------|---------|---------|------|------|
| **architect** | **primary** | go/reasoning | opencode-go/deepseek-v4-pro | 0.2 | go/coding |
| **executor** | **primary** | go/coding | opencode-go/kimi-k2.7-code | 0.2 | - |
| router | subagent | go/small | opencode-go/glm-5.2 | 0.1 | go/general |
| analyst | subagent | go/reasoning | opencode-go/deepseek-v4-pro | 0.2 | go/general |
| builder | subagent | go/coding | opencode-go/kimi-k2.7-code | 0.3 | - |
| debugger | subagent | go/reasoning | opencode-go/deepseek-v4-pro | 0.1 | - |
| git-master | subagent | go/coding | opencode-go/kimi-k2.7-code | 0.1 | - |
| historian | subagent | go/general | opencode-go/qwen3.7-plus | 0.2 | - |
| craftsman | subagent | go/coding | opencode-go/kimi-k2.7-code | 0.2 | - |
| librarian | subagent | go/knowledge | opencode-go/kimi-k2.5 | 0.1 | - |
| looker | subagent | go/vision | opencode-go/glm-5 | 0.2 | - |
| scribe | subagent | go/max | opencode-go/qwen3.7-max | 0.3 | - |

### Agent Classification / Agent 分类

- **Primary agents** (用户对话入口 / user-facing): `architect` (架构编排), `executor` (通用执行)
- **Subagents** (通过 task() 调用 / called via task()): 其余 10 个

### Skill-to-Agent Mapping / 技能到 Agent 映射

| 技能 | Agent | 分类 |
|------|-------|------|
| easy (智能路由) | router | deep |
| auto (编排) | architect | deep |
| expert (专家) | executor | deep |
| ba (业务分析) | analyst | workflow |
| baseline (基线) | librarian | workflow |
| bpm-workflow (BPM) | analyst | workflow |
| bug-fixer (修Bug) | debugger | workflow |
| cockpit-page-builder | builder | visual-engineering |
| style-optimizer | builder | visual-engineering |
| git-safe | git-master | git |
| git-workflow | git-master | git |
| code-review | executor | quality |
| security-check | executor | quality |
| skill-maintainer | craftsman | meta |
| skill-refresh | craftsman | meta |
| skill-builder | craftsman | meta |
| evo-tracker | historian | tools |
| workspace-manager | executor | tools |
| module-doc | scribe | tools |
| model-preset | craftsman | tools |

---

## Usage / 使用方法

### 查看当前预设

让 AI 读取配置文件的 `active_preset` 字段并展示当前所有 agent 的模型分配。

### 切换预设

编辑 `.opencode/opespro-opencode.jsonc`，修改 `active_preset`:

```jsonc
"active_preset": "livedata"  // 切换到 livedata
```

### 修改单个 Agent 的模型

编辑 `agents.<agent_name>.model` 字段（在基础配置中，不是 preset overrides）：

```jsonc
"agents": {
  "executor": { "model": "go/max", "temperature": 0.3 }
}
```

### 创建新的 Preset

在 `presets` 中添加新条目：

```jsonc
"presets": {
  "my-preset": {
    "description": "我的自定义预设",
    "overrides": {
      "executor": { "model": "go/reasoning" }
    }
  }
}
```

### 验证模型配置

```bash
cd fof057-sjjk-dw/opespro-opencode && bun run scripts/verify-models.ts
```

---

## Verification Checklist / 验证清单

每次模型切换后必须确认：

- [ ] `active_preset` 设置为有效的 preset 名称
- [ ] 配置文件中不存在语法错误（JSONC 格式）
- [ ] 所有 agent 的模型都能成功解析（运行 verify 脚本）
- [ ] Provider 的名称和 ID 格式正确（`provider/model`）
- [ ] 新旧预设可以通过切换 `active_preset` 来回切换

---

## Red Flags / 禁止事项

- ❌ **不修改 opencode.jsonc** — 模型预设只管理 opespro-opencode.jsonc
- ❌ **不删除已有 preset** — 只修改或新增，保留回退能力
- ❌ **不使用不存在的模型 ID** — 必须先确认 provider 中存在该模型
- ❌ **不跳过验证** — 修改后必须运行验证脚本
- ❌ **不直接写 provider/model 字符串** — 优先使用别名键（如 `go/reasoning`）
