热榜都在吵 Agent Skills 到底有没有用,我拿 3 个模型跑了同一个 Skill,发现真正的坑在这

12 阅读4分钟

最近掘金热榜有个挺有意思的争论——「你给 AI 用的 Agent Skills 可能毫无作用,甚至还拖后腿」。

说实话,看到标题的时候我第一反应是:终于有人说了。

但仔细想想,作为一个用 Claude Code + Agent Skills 干了不少活的人,我的体感好像又不太一样。Skills 在我这确实有用啊,代码审查、自动化部署,都比裸跑 prompt 好不少。

于是我做了个实验:用同一个 Agent Skill,分别跑在 3 个不同的模型上,看看到底是 Skill 的问题还是模型的问题。

实验设计

Skill 选的是一个比较典型的「代码审查」场景:给一段 Python 代码,让 AI 找 bug、提优化建议、输出结构化报告。

测试代码故意埋了 3 个问题:

  1. 一个明显的空指针异常
  2. 一个 SQL 注入漏洞
  3. 一个性能问题(N+1 查询)
def get_user_orders(user_id):
    user = db.query(f"SELECT * FROM users WHERE id = {user_id}")
    orders = []
    for order_id in user.order_ids:
        order = db.query(f"SELECT * FROM orders WHERE id = {order_id}")
        orders.append(order)
    return {"user": user.name, "orders": orders}

三个模型:Claude Opus 4.6、GPT-4o、DeepSeek V4。Skill 定义完全一样,走的是标准的 system prompt + 结构化输出格式。

结果:差距大到离谱

Claude Opus 4.6

3 个问题全部命中,而且给的修复方案非常完整:

  • 空指针:建议加 if not user: return None
  • SQL 注入:直接改成参数化查询 db.query("SELECT * FROM users WHERE id = ?", [user_id])
  • N+1 问题:建议用 JOIN 一次查出来,甚至给了 SQLAlchemy 的 joinedload 写法

结构化输出格式完美符合 Skill 定义的 schema。整体感觉就是——它不只是在"完成任务",而是真的理解了你想干嘛。

GPT-4o

找到了 2 个问题(SQL 注入和空指针),漏掉了 N+1

更尴尬的是,输出格式跟 Skill 定义的 schema 有偏差——它自己加了一些字段,少了一些字段。如果你的下游程序依赖这个 schema 做解析,直接就挂了。

不过公平地说,它找到的那两个问题,分析质量还是不错的。

DeepSeek V4

只找到了 1 个问题(SQL 注入),空指针和 N+1 都没提。输出格式倒是基本符合 schema,但内容太简略,修复建议就一句话。

胜在速度快、价格便宜。如果是简单的 lint 级别检查,够用了。

同一个 Skill,为什么结果天差地别?

这其实揭示了一个很多人忽略的问题:Agent Skill 的效果,至少一半取决于底层模型的能力。

Skill 本质上是一套结构化的 prompt + 约束。它能不能发挥作用,取决于模型能不能:

  1. 准确理解 Skill 定义的任务和约束
  2. 严格遵循 输出格式(这对 Agent 工作流至关重要)
  3. 具备足够的领域知识 来完成具体任务

所以"Agent Skills 没用"这个结论太武断了。更准确的说法应该是:用错模型的 Agent Skills 没用。

实际开发中怎么选模型?

如果你在做 AI Agent 开发,我的经验是这样的:

第一步:先用最强模型验证 Skill 设计。 如果 Opus 4.6 都搞不定,那大概率是 Skill 本身设计有问题,别赖模型。

第二步:用中等模型测试鲁棒性。 如果 GPT-4o 能完成 80% 以上的任务,说明你的 Skill 定义够清晰。

第三步:看成本和速度。 有些简单任务用 DeepSeek 或 GPT-4o-mini 就够了,没必要全上最贵的。

这就带来一个很现实的需求:你需要能快速在不同模型之间切换测试。

我自己的做法是用一个支持多模型的 API 服务,代码里改一个 model 参数就能切换,不用为每个模型单独申请 key、处理不同的 SDK 格式。比如我现在用的方案,走 OpenAI 兼容格式,一个 base_url 搞定:

from openai import OpenAI

# 一个接口,多个模型随便切
client = OpenAI(
    api_key="your-key",
    base_url="https://api.ofox.ai/v1"
)

models = ["claude-opus-4-6", "gpt-4o", "deepseek-chat"]

for model in models:
    resp = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "system", "content": skill_prompt},
            {"role": "user", "content": code_to_review}
        ]
    )
    print(f"\n=== {model} ===")
    print(resp.choices[0].message.content)

跑一遍下来,3 分钟就能对比出哪个模型最适合你的 Skill。比一个个去各家官网注册、配环境、调格式省事太多了。

结论

热榜上那篇说 Agent Skills 拖后腿的文章,观点不完全错——如果你用了不匹配的模型,Skill 不仅没用,确实可能因为强制输出格式反而限制了模型发挥。

但解决方案不是放弃 Skills,而是:

  1. 为每个 Skill 找到最适合的模型(不同任务,最优模型可能不同)
  2. Skill 定义要足够清晰,降低模型理解门槛
  3. 关键环节用强模型,辅助环节用轻量模型,成本和效果都能兼顾

AI Agent 的时代才刚开始,Skill 生态会越来越成熟。现在觉得"不好用",更多是我们还没摸清每个模型的脾气而已。


以上测试基于 2026 年 2 月各模型最新版本,实际效果与 prompt 设计、模型更新有关。如果你也在做 Agent 开发,欢迎评论区聊聊你的踩坑经验。