Agent Skills 和 Harness / ai #49

“龙虾”热后,各种Agent层出不穷,各种新概念也是层出不穷,颇有点招架不住的态势。不过,再怎么难,也得跟上潮流,死磕到底。

skills4.jpg
Skills图示(来源:网络)

一、Agent Skills(智能体技能)

基本概念

Agent Skills 是 AI Agent 的能力单元,指智能体能够执行的具体任务或功能模块。每个 Skill 封装了特定的工具调用、API 接口、数据处理逻辑或业务功能,使 Agent 能够完成从简单查询到复杂多步骤操作的各类任务。

核心特征

特征说明
模块化每个 Skill 独立封装,可插拔复用
原子性单一职责,完成一个明确的功能
可组合多个 Skills 可串联形成工作流
自描述包含名称、描述、参数定义等元信息

编写规范

Agent Skill 通常包含以下结构:

# Skill 元信息
name: "skill_name"           # 技能标识名(英文,小写+下划线)
description: "描述该技能的功能"  # 让LLM理解何时调用该技能
version: "1.0.0"

# 输入参数定义
parameters:
  - name: "param1"
    type: string | number | boolean | array | object
    description: "参数说明"
    required: true/false
    default: "默认值"        # 可选
    
# 执行逻辑
execution:
  type: "api_call" | "code" | "llm" | "workflow"
  # 根据类型定义具体执行内容
  
# 返回值定义
returns:
  type: object
  description: "返回结果说明"
  schema:
    # JSON Schema 定义

实际示例

示例:天气查询 Skill

name: "get_weather"
description: "查询指定城市的当前天气和未来3天预报。当用户询问天气、温度、降雨情况时调用。"
version: "1.0.0"

parameters:
  - name: "city"
    type: string
    description: "城市名称,如'北京'、'上海'"
    required: true
  - name: "days"
    type: number
    description: "预报天数,1-7天"
    required: false
    default: 3

execution:
  type: "api_call"
  endpoint: "https://api.weather.com/v1/current"
  method: "GET"
  headers:
    Authorization: "Bearer ${WEATHER_API_KEY}"
  params:
    city: "{{city}}"
    days: "{{days}}"

returns:
  type: object
  description: "天气信息"
  schema:
    current:
      temperature: number
      condition: string
      humidity: number
    forecast: array

二、Harness(测试/执行框架)

概念定义

Harness( harness 原意为"马具/安全带")在 AI 领域通常指测试框架执行环境。LangChain 作者 Vivek Trivedy定义: Agent = Model + Harness
如果你不是模型,那就是 Harness。

这句话听起来有点绝对,但确实抓住了关键。Harness 本质上就是模型之外的一切:代码、配置,以及各种执行逻辑。模型本身只是能力的来源,只有通过 Harness 把状态、工具调用、反馈循环和约束机制串起来,它才真正变成一个 Agent。

harness.jpg
harness图示(来源:知乎)

用于:

  • Skill 测试:验证 Skill 的正确性和鲁棒性
  • Agent 评估:评估 Agent 在多轮对话、复杂任务中的表现
  • 执行控制:管理 Skill 的调用流程、错误处理、资源限制

核心功能

功能说明
沙箱执行隔离环境运行 Skill,防止安全风险
输入验证校验参数类型、必填项、取值范围
模拟测试Mock 外部依赖,测试 Skill 逻辑
性能监控记录执行时间、资源消耗
错误捕获统一异常处理,防止 Agent 崩溃

传统框架解决的是"如何构建 AI 智能体",而Harness解决的是完全不同的问题:"智能体如何可靠地运行"。模型正在逐渐吸收框架约 80% 的功能(智能体定义、消息路由、任务生命周期……),但剩余 20%——持久化、确定性重放、成本控制、可观测性、错误恢复——正是驾驭层存在的价值。Harness 是整个行业正在经历的范式转移。

Birgitta Böckeler 的总结最为精辟:

"为了获得更高的 AI 自主性,运行时必须受到更严格的约束。增加信任需要的不是更多自由,而是更多限制。"就像高速公路上的护栏——正是因为有护栏,你才敢踩到 120 码。