← 返回列表

Sèrie d'entrevistes AI 7: Com definir una Skill de manera estàndard

1. Concepte central de Skill

Una Skill és una unitat de capacitat executable encapsulada dins d'un Agent o sistema d'IA. Normalment inclou:

  • Condició de dispar: Quan es crida (p. ex., instrucció d'usuari, esdeveniment del sistema).
  • Paràmetres d'entrada: Dades o context que cal rebre.
  • Lògica d'execució: Passos de processament concrets (p. ex., cridar una API, executar codi, consultar una base de coneixement).
  • Resultat de sortida: Resposta o acció retornada al qui crida.

2. Passos per definir una Skill de manera estàndard

1. Especificar el nom i la descripció de la Skill

  • Nom: Curt, únic, semàntic (p. ex., search_web, send_email).
  • Descripció: Una frase que expliqui la funció de la Skill, per facilitar la coincidència automàtica per part de l'Agent.

2. Definir l'esquema d'entrada (Input Schema)

Utilitzeu JSON Schema o un format similar, especificant el tipus de cada paràmetre, si és obligatori, el valor per defecte i les restriccions.

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Paraula clau de cerca",
      "required": true
    },
    "max_results": {
      "type": "integer",
      "description": "Nombre màxim de resultats retornats",
      "default": 10
    }
  }
}

3. Escriure la lògica d'execució (Execution Logic)

  • Lògica determinista: Cridar directament funcions, API o bases de dades.
  • Lògica no determinista: Utilitzar un LLM per generar respostes (cal proporcionar una plantilla de prompt).
  • Gestió d'errors: Definir estratègies de temps d'espera, reintents i degradació.

4. Definir el format de sortida (Output Schema)

Utilitzeu també JSON Schema per descriure l'estructura de dades retornada.

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "url": { "type": "string", "format": "uri" }
        }
      }
    }
  }
}

5. Metadades addicionals (Metadata)

  • Número de versió: Per facilitar la gestió d'iteracions.
  • Autor/mantenidor: Responsabilitat.
  • Dependències: Serveis o biblioteques externes necessàries.
  • Restriccions d'ús: Per exemple, limitacions de freqüència, requisits de permisos.

3. Exemple: Una definició completa de Skill

name: "weather_query"
description: "Consulta el temps actual segons el nom de la ciutat"
version: "1.0.0"
author: "AI Team"

input:
  type: object
  properties:
    city:
      type: string
      description: "Nom de la ciutat, com 'Beijing'"
      required: true
    unit:
      type: string
      enum: ["celsius", "fahrenheit"]
      default: "celsius"

execute:
  - step: "Cridar l'API del temps"
    api: "https://api.weather.com/v1/current"
    method: "GET"
    params:
      city: "{input.city}"
      unit: "{input.unit}"
  - step: "Formatar el resultat"
    format: "Actualment a {city} la temperatura és {temperature}°{unit}"

output:
  type: object
  properties:
    temperature:
      type: number
    condition:
      type: string
    humidity:
      type: number

4. Bones pràctiques

  • Responsabilitat única: Cada Skill fa una sola cosa, evitant un acoblament excessiu.
  • Autocontingut: Evitar dependre d'estat global extern; entrada i sortida.
  • Testable: Proporcionar dades simulades o entorns de sandbox per a proves unitàries.
  • Documentació: Escriure instruccions d'ús i exemples per a cada Skill.

Mitjançant els mètodes anteriors, una Skill definida pot ser tant programada dinàmicament per un Agent d'IA com integrada directament pels desenvolupadors al sistema, aconseguint un efecte de reutilització "escriure una vegada, utilitzar a tot arreu".

评论

暂无已展示的评论。

发表评论(匿名)