反物质维度
69.50M · 2026-03-22
作为一名 Web 开发者,你可能已经玩过各种大语言模型(LLM)的 Chat 界面。它们博学多才,能写诗也能改 Bug,但当你试图让它“帮我查一下昨天的订单并给客户发一封补偿邮件”时,它通常只能尴尬地提供一段伪代码,而无法真正执行。
这就是目前 AI 应用从“玩具”走向“工具”的瓶颈:模型有大脑(智力),但没有手脚(执行力)。今天我们要聊的主题 Agent Skills(智能体技能) ,正是为 AI 装上“手脚”的核心机制。通过它,你可以将复杂的业务逻辑封装成 AI 可调用的能力单元,让 LLM 真正介入到你的现有业务系统中。
想象你在负责一个内部研发运维助手的开发。你希望开发者通过自然语言直接询问:“生产环境的 CPU 负载高吗?如果高,请帮我扩容两个实例。”
如果你只用普通的 LLM API:
你必须在 Prompt 里写死所有的判断逻辑,或者手动解析 LLM 返回的文本。这就像是在写一个巨大的 switch-case,试图从自然语言中正则匹配出用户的意图。这种做法既脆弱又难以维护,一旦用户换种说法,逻辑就会崩溃。
传统方式的痛点:
通俗来讲,Agent Skill 相当于为 LLM 定义的“语义化插件”或“具备说明文档的 API 接口” 。
在传统的后端开发中,我们编写 微服务(Microservices) 。每个服务都有 Swagger 文档,规定了输入参数和返回格式。
在 Agent 开发中,Skill 就像是给 LLM 看的 SDK。你不需要告诉 AI 什么时候调用它,你只需要告诉 AI:“我有这个技能,它的功能是什么,需要什么参数”。
在工程实现上,Agent Skills 遵循一个“规划-执行-反馈”的闭环(ReAct 模式):
Plaintext
[用户输入: "帮我重启负载过高的 API 服务"] | v [Agent 决策层] (大脑分析:需要查看负载 -> 需要重启) | +----[匹配技能: get_system_metrics] (参数: service_name) | | | v | [执行后端 API/脚本] ----> [返回结果: CPU 95%] | | v | [再次决策] <-------------------------+ (大脑判断:确实过高,执行重启) | +----[匹配技能: restart_service] (参数: service_name) | | | v | [执行 K8s 指令] --------> [返回结果: Success] | | v | [生成最终回复: "服务已重启,目前负载已降至 20%"]
类似于主流 Agent 框架(如 LangGraph 或 AutoGPT)中的智能体环路图(Agent Loop Diagram) 。
在生产环境中,我们推荐使用 Pydantic 来定义强类型的输入 Schema。这能确保 AI 传递的参数符合后端接口要求。
from langchain.tools import tool
from pydantic import BaseModel, Field
from typing import Optional
# 1. 定义输入参数模型 (类似 Request DTO)
class RefundSchema(BaseModel):
order_id: str = Field(description="订单号,格式为 ORD-12345")
reason: str = Field(description="用户申请退款的原因")
amount: Optional[float] = Field(None, description="退款金额,不填则全额退款")
# 2. 定义技能 (类似 Controller 里的 Action)
@tool("apply_refund_skill", args_schema=RefundSchema)
def apply_refund_skill(order_id: str, reason: str, amount: Optional[float] = None):
"""
【重要:供 AI 阅读的描述】
当用户明确要求对某个订单进行退款或取消并要求退钱时调用此技能。
它会连接财务系统并返回处理流水号。
"""
# 这里写具体的业务逻辑,如调用内部微服务
print(f"正在执行退款逻辑: {order_id}, 原因: {reason}")
# 返回给 AI 的结果,它会自动将其转化为自然语言告知用户
return {
"status": "success",
"refund_id": "REF_2026_001",
"message": "退款申请已提交,预计 24 小时内到账。"
}
当技能变多时,合理的目录结构能极大提升可维护性。建议采用类似插件系统的组织方式:
my-agent-service/ ├── app.py # 入口:加载 Agent 和所有技能 ├── agents/ # 存放不同角色的 Prompt 和逻辑 │ ├── support_agent.py # 客服智能体配置 │ └── ops_agent.py # 运维智能体配置 ├── skills/ # 核心:技能仓库 │ ├── __init__.py # 统一暴露技能 │ ├── order_manager.py # 订单相关技能 (查询、退款) │ ├── notify_service.py # 通知相关技能 (发邮件、发 Slack) │ └── db_querier.py # 数据查询技能 (只读 SQL) ├── schema/ # 存放通用的 Pydantic 模型 └── utils/ # 工具类:API Client、Logger
Agent Skills 实现了 “意图与执行的分离” 。开发者只需关注如何编写稳健的原子技能(Code),而复杂的逻辑编排(Workflow)则交由 LLM 根据用户意图动态完成。
从 只读技能(查询类)开始,逐步过渡到 状态变更技能(操作类)。在 2026 年的开发环境下,利用现成的框架(如 LangChain、Vercel AI SDK)可以让你在半小时内就完成第一个具备技能的 AI 助手。