模型选择技能Skill model-selection

此技能帮助开发者为自定义AI代理任务选择适当的Claude模型(Haiku、Sonnet、Opus),基于任务复杂度、成本敏感性、质量要求和延迟需求进行权衡优化。关键词:Claude模型选择,AI智能体,成本优化,性能评估,自定义代理开发。

AI智能体 0 次安装 0 次浏览 更新于 3/11/2026

name: 模型选择 description: 为自定义代理任务选择合适模型。用于在Haiku、Sonnet和Opus之间选择,优化成本与质量权衡,或匹配模型能力到任务复杂度。 allowed-tools: Read, Grep, Glob, AskUserQuestion

模型选择技能

根据复杂度、成本和性能要求,为自定义代理任务选择正确的模型。

交互式模型选择

使用AskUserQuestion理解需求并推荐最优模型:

# 问题1:主要优先级(MCP:CLI最佳实践 - 权衡选择)
question: "您对此代理的主要优先级是什么?"
header: "优先级"
options:
  - label: "成本效率(推荐)"
    description: "最小化API成本,高容量操作"
  - label: "平衡性能"
    description: "大多数任务的良好质量和合理成本"
  - label: "最高质量"
    description: "最佳结果,不考虑成本,复杂推理"
  - label: "最低延迟"
    description: "实时响应,面向用户的交互"

# 问题2:任务复杂度(MCP:代理SDK模型选择)
question: "此代理执行的任务有多复杂?"
header: "复杂度"
options:
  - label: "简单"
    description: "转换、提取、格式化、分类"
  - label: "中等"
    description: "代码生成、分析、规划、大多数任务"
  - label: "复杂"
    description: "架构决策、多步推理、关键代码"
  - label: "变量"
    description: "一个代理中简单和复杂任务的混合"

使用这些响应应用决策树并推荐适当模型。

目的

指导为自定义代理任务选择适当的Claude模型(Haiku、Sonnet、Opus),以优化成本、速度和质量。

何时使用

  • 设计新的自定义代理
  • 优化现有代理性能
  • 平衡成本与质量
  • 满足特定延迟要求

模型概述

模型 速度 成本 质量 使用案例
Haiku 最快 最低 良好 简单任务,高容量
Sonnet 中等 非常好 大多数任务,平衡
Opus 最慢 最高 最佳 复杂推理

选择决策树

开始
  │
  ├── 任务是简单转换吗?
  │   └── 是 → Haiku
  │
  ├── 成本是主要关注点吗?
  │   └── 是 → Haiku(如果足够)或Sonnet
  │
  ├── 质量是否关键(不容错误)?
  │   └── 是 → Opus
  │
  ├── 任务是否需要复杂推理?
  │   └── 是 → Opus
  │
  ├── 延迟是否关键(实时)?
  │   └── 是 → Haiku
  │
  └── 默认 → Sonnet(最佳平衡)

按任务类型选择模型

Haiku 任务

最适合:

  • 文本转换(大写、格式化)
  • 简单分类
  • 数据提取
  • 高容量操作
  • 实时处理
  • 模式匹配
# Haiku 示例
model="claude-3-5-haiku-20241022"

# Echo 代理 - 简单转换
# 计算器 - 直接数学
# 流处理器 - 高容量,低复杂度

Sonnet 任务

最适合:

  • 代码生成
  • 代码审查
  • 规划和分析
  • 大多数自定义代理
  • 平衡性能
# Sonnet 示例
model="claude-sonnet-4-20250514"

# QA 代理 - 代码库分析
# 构建器代理 - 代码实现
# 通用代理

Opus 任务

最适合:

  • 战略规划
  • 复杂架构决策
  • 关键代码审查
  • 多步推理
  • 新问题解决
# Opus 示例
model="claude-opus-4-20250514"

# 规划器代理 - 战略决策
# 审查员代理 - 关键验证
# 架构师代理 - 系统设计

成本考虑

相对成本

模型 输入令牌 输出令牌 相对成本
Haiku 1x
Sonnet 中等 中等 ~10x
Opus ~30x

成本优化策略

  1. 从Haiku开始:测试是否简单模型足够
  2. 使用Haiku进行预处理:在主要任务之前过滤/分类
  3. 保留Opus用于关键路径:仅在质量至关重要时使用
  4. 监控成本:跟踪ResultMessage.total_cost_usd
# 成本跟踪
async for message in client.receive_response():
    if isinstance(message, ResultMessage):
        print(f"查询成本:${message.total_cost_usd:.6f}")

速度考虑

延迟配置文件

模型 第一个令牌 总时间 吞吐量
Haiku ~500ms 最高
Sonnet ~1s 中等
Opus ~2s 较慢 较低

速度优化

  1. 实时需求选择Haiku:亚秒级响应
  2. 交互式需求选择Sonnet:可接受的延迟
  3. 批处理允许Opus:延迟不那么关键

质量考虑

能力差异

能力 Haiku Sonnet Opus
简单推理
代码生成 有限 优秀
复杂规划 优秀
多步推理 有限 优秀
新问题 足够 优秀

质量要求

  • Haiku:可接受于定义良好、简单的任务
  • Sonnet:适用于大多数开发任务
  • Opus:用于关键决策所需

多模型模式

分层处理

# 层1:Haiku用于分类
classification = await classify_task(task, model="haiku")

# 层2:路由到适当模型
if classification == "简单":
    result = await process(task, model="haiku")
elif classification == "复杂":
    result = await process(task, model="opus")
else:
    result = await process(task, model="sonnet")

不同模型的多代理

# 规划器:Opus用于战略决策
planner_options = ClaudeAgentOptions(
    model="claude-opus-4-20250514"
)

# 构建器:Sonnet用于实现
builder_options = ClaudeAgentOptions(
    model="claude-sonnet-4-20250514"
)

# 审查员:Opus用于关键审查
reviewer_options = ClaudeAgentOptions(
    model="claude-opus-4-20250514"
)

输出格式

当推荐模型选择时:

## 模型选择

**任务:** [描述]
**推荐模型:** [Haiku/Sonnet/Opus]

### 决策因素

| 因素 | 权重 | 评估 |
| --- | --- | --- |
| 复杂度 | [H/M/L] | [评估] |
| 成本敏感性 | [H/M/L] | [评估] |
| 质量要求 | [H/M/L] | [评估] |
| 延迟要求 | [H/M/L] | [评估] |

### 理由

[为什么此模型合适]

### 备选方案

- 如果成本是关注点:[备选]
- 如果质量是关键:[备选]

### 配置

options = ClaudeAgentOptions( model=“[model-id]”, … )


选择清单

  • [ ] 任务复杂度评估
  • [ ] 成本约束识别
  • [ ] 质量要求定义
  • [ ] 延迟要求考虑
  • [ ] 模型选择有理由
  • [ ] 备选方案记录

关键见解

“明智选择:Claude Haiku 用于简单、快速任务。Claude Sonnet 用于平衡性能。Claude Opus 用于复杂推理。”

模型选择直接影响:

  • 用户体验(延迟)
  • 运营成本(令牌)
  • 输出质量(准确性)

交叉引用

  • @core-four-custom.md - 核心四中的模型
  • @custom-agent-design 技能 - 代理设计工作流
  • @agent-deployment-forms.md - 部署考虑

版本历史

  • v1.0.0 (2025-12-26):初始发布

最后更新

日期: 2025-12-26 模型: claude-opus-4-5-20251101