关于 model-audit
用于审查代码库中 AI 模型配置与调用的技能,可估算调用成本并发现优化机会,面向需要分析模型使用情况的开发者。
主要功能
- 01查找模型配置与 AI 调用
- 02将别名映射到实际模型名
- 03依据价格表估算调用成本
- 04检查缓存与批处理候选项
- 05标记模型选型及配置问题
适用场景
- 01发布前审查模型使用情况
- 02估算各功能的模型调用成本
- 03查找适合缓存的重复提示词
- 04发现硬编码或不一致的模型选择
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tushaarmehtaa/ tushar-skills --skill model-audit安装后在 Claude Code 中输入/model-audit确认已加载。
详细介绍
审计代码库中的每一次 AI 模型调用。输出包含实际成本计算的路由表,而不仅仅是模型名称。
阶段 1 — 查找模型配置
搜索模型定义位置:
grep -r "gpt-4\|claude\|gemini\|anthropic\|openai\|mistral\|groq\|llama" \
--include="*.py" --include="*.ts" --include="*.js" --include="*.env*" \
-l 2>/dev/null | head -30
grep -rn "MODEL\|model_config\|AI_MODEL\|LLM_MODEL\|OPENAI_MODEL\|ANTHROPIC_MODEL" \
--include="*.py" --include="*.ts" --include="*.env*" -l 2>/dev/null
阅读返回的每个文件。映射别名 → 实际模型字符串。示例:AI_MODEL="claude-sonnet-4-6" 或 const FAST_MODEL = "gpt-4o-mini"。
阶段 2 — 查找每一次 AI 调用
# Anthropic
grep -rn "messages\.create\|anthropic\.messages\|client\.messages" \
--include="*.py" --include="*.ts" --include="*.js"
# OpenAI
grep -rn "chat\.completions\.create\|openai\.chat\|completion\.create" \
--include="*.py" --include="*.ts" --include="*.js"
# Google / Gemini
grep -rn "generate_content\|GenerativeModel\|genai\." \
--include="*.py" --include="*.ts" --include="*.js"
# Embeddings
grep -rn "embeddings\.create\|embed_content\|embedding" \
--include="*.py" --include="*.ts" --include="*.js"
对于每次调用,记录:
- 触发调用的功能 / 文件 / 函数
- 模型别名或字面模型字符串
- 任务类型:生成、分类、摘要、嵌入、工具调用、推理
- 大致提示词大小:小(<1K tokens)、中(1–10K)、大(>10K)
- 调用频率:每次请求、每次用户操作、后台任务、一次性
阶段 3 — 定价参考(2026 年)
Anthropic Claude
| 模型 | 输入 $/1M | 输出 $/1M | 缓存写入 $/1M | 缓存读取 $/1M | 上下文 |
|---|---|---|---|---|---|
| claude-fable-5 | $10.00 | $50.00 | $12.50 | $1.00 | 1M |
| claude-opus-4-8 | $5.00 | $25.00 | $6.25 | $0.50 | 1M |
| claude-sonnet-4-6 | $3.00 | $15.00 | $3.75 | $0.30 | 1M |
| claude-haiku-4-5 | $1.00 | $5.00 | $1.25 | $0.10 | 200K |
与未缓存输入相比,提示词缓存可节省约 90% 的缓存读取成本。缓存前缀需至少包含 1024 个 tokens。
OpenAI
| 模型 | 输入 $/1M | 输出 $/1M | 缓存输入 $/1M | 备注 |
|---|---|---|---|---|
| gpt-4o | $2.50 | $10.00 | $1.25 | 支持视觉 |
| gpt-4o-mini | $0.15 | $0.60 | $0.075 | 适合高吞吐量任务 |
| gpt-4.1 | $2.00 | $8.00 | $0.50 | 上下文更长,编程能力强 |
| gpt-4.1-mini | $0.40 | $1.60 | $0.10 | 擅长遵循指令 |
| gpt-4.1-nano | $0.10 | $0.40 | $0.025 | 最便宜,仅适用于短任务 |
| o4-mini | $1.10 | $4.40 | $0.55 | 推理,经济型版本 |
| o3 | $10.00 | $40.00 | $2.50 | 高强度推理任务 |
Batch API:所有模型均可享受 50% 折扣。最低延迟约为 24 小时。适用于离线 / 异步工作负载。
Google Gemini
| 模型 | 输入 $/1M(≤200K) | 输入 $/1M(>200K) | 输出 $/1M | 备注 |
|---|---|---|---|---|
| gemini-2.5-pro | $1.25 | $2.50 | $10.00 | 最适合推理 |
| gemini-2.5-flash | $0.15 | $0.15 | $0.60 | 快速、多模态 |
| gemini-2.0-flash | $0.10 | $0.10 | $0.40 | 最便宜的 Gemini |
上下文缓存:缓存免费,按 token 每小时计费(2.5 Pro 约为每百万 tokens 每小时 $1)。
阶段 4 — 构建路由表
输出此表:
AI MODEL ROUTING — [product name]
════════════════════════════════════════════════════════════════════════════
FEATURE TASK TYPE MODEL $/1K CALLS
────────────────────────────────────────────────────────────────────────────
[feature] [task] [actual model string] $[estimate]
[feature] [task] [actual model string] $[estimate]
════════════════════════════════════════════════════════════════════════════
COST MATH (per call):
Input tokens × (input rate / 1M) + Output tokens × (output rate / 1M)
Example: 2K in, 500 out on claude-sonnet-4-6 = (2000 × $3/1M) + (500 × $15/1M)
= $0.006 + $0.0075 = $0.0135/call
UNUSED CONFIG (defined, never called):
[alias] → [model string]
DEPRECATED / RENAMED MODELS:
⚠️ [any model string that no longer exists or has been superseded]
阶段 5 — 检查缓存机会
对于每次调用中较大且稳定的前缀(系统提示词、文档、架构、示例):
- 前缀是否 ≥1024 tokens?→ 可考虑提示词缓存
- 前缀是否会因用户或请求而变化?→ 不可缓存
- 每次调用是否使用相同的系统提示词?→ 缓存它;这些 tokens 可节省约 90% 的成本
标记具有大型系统提示词但未使用 cache_control 的调用。
Anthropic 模式:
{"role": "system", "content": [{"type": "text", "text": "...", "cache_control": {"type": "ephemeral"}}]}
OpenAI(自动):对于重复前缀,gpt-4o / gpt-4.1 会自动缓存输入。
阶段 6 — 检查批处理 API 候选项
满足以下条件的调用:
- 不面向用户(后台任务、定时任务、数据集处理)
- 可以容忍数小时的延迟
- 调用量 > 每天 100 次
→ 标记为批处理候选项。批处理可节省 50% 成本(OpenAI)或最高 50%(Anthropic)。
阶段 7 — 调整模型规格
对于每次调用,检查模型对于任务来说是否性能过剩或不足:
可降级的情况(简单任务使用高成本模型):
- 分类或提取 → gpt-4.1-nano、haiku 或 gemini-2.0-flash
- 答案范围明确的简短问答 → gpt-4o-mini 或 haiku
- 生成嵌入 → text-embedding-3-small(OpenAI),$0.02/1M
- 简短文本摘要 → haiku、gpt-4.1-mini
以下情况保留高性能模型:
- 多步推理或工具调用链
- 面向用户的创意生成或长篇内容生成
- 对正确性要求较高的代码生成
- 出错后重试成本较高的任务
可升级的情况(低成本模型悄然失败):
- 使用复杂架构的工具 → 至少需要 sonnet/gpt-4o
- 长上下文推理(>50K tokens)→ 需要经验证能准确回忆长上下文的模型
- 从嘈杂输入中提取结构化信息 → 低成本模型会臆造字段名称
阶段 8 — 最终标记
OPTIMIZATION FLAGS:
CACHE [feature] — large static system prompt, not cached. Estimated savings: $X/day
BATCH [feature] — background job, 50% savings available
OVERFIT [feature] — using [expensive model] for [simple task], [cheap model] would work
SCATTER [feature] — hardcoded model string outside central config, won't update on model changes
DEPR [model string] — deprecated, may stop working; migrate to [replacement]
INCON [task type] — same task using different models in different files: [file A] uses X, [file B] uses Y
评论
支持 Markdown