← 返回列表

AI серия интервюта 7: Как да дефинираме стандартно умение (Skill)

1. Основни концепции за Skill

Skill (умение) е група от изпълними способности, капсулирани в Agent (интелигентен агент) или AI система. Обикновено включва:

  • Условия за задействане: кога да бъде извикан (напр. потребителска команда, системно събитие).
  • Входни параметри: данни или контекст, които трябва да получи.
  • Изпълнителна логика: конкретни стъпки за обработка (напр. извикване на API, изпълнение на код, запитване към база знания).
  • Изходен резултат: отговор или действие, върнато на извикващия.

2. Стъпки за стандартно дефиниране на Skill

1. Определете името и описанието на Skill

  • Име: кратко, уникално, семантично (напр. search_web, send_email).
  • Описание: едно изречение, описващо функционалността на Skill, за да може Agent да го съпостави автоматично.

2. Дефинирайте входните параметри (Input Schema)

Използвайте JSON Schema или подобен формат, за да уточните типа на всеки параметър, дали е задължителен, стойност по подразбиране и ограничения.

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "ключова дума за търсене",
      "required": true
    },
    "max_results": {
      "type": "integer",
      "description": "максимален брой резултати",
      "default": 10
    }
  }
}

3. Напишете изпълнителната логика (Execution Logic)

  • Детерминирана логика: директно извикване на функция, API или база данни.
  • Недетерминирана логика: използване на LLM за генериране на отговор (изисква шаблон за prompt).
  • Обработка на грешки: дефиниране на таймаут, повторни опити, стратегии за понижаване.

4. Дефинирайте изходния формат (Output Schema)

Отново използвайте JSON Schema, за да опишете структурата на връщаните данни.

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

5. Добавете метаданни (Metadata)

  • Версия: за улеснение на итеративното управление.
  • Автор/поддържащ: отговорност.
  • Зависимости: външни услуги или библиотеки.
  • Ограничения за използване: честотни ограничения, изисквания за права.

3. Пример: пълна дефиниция на Skill

name: "weather_query"
description: "Проверка на текущото време по име на град"
version: "1.0.0"
author: "AI Team"

input:
  type: object
  properties:
    city:
      type: string
      description: "Име на град, напр. 'София'"
      required: true
    unit:
      type: string
      enum: ["celsius", "fahrenheit"]
      default: "celsius"

execute:
  - step: "Извикване на API за времето"
    api: "https://api.weather.com/v1/current"
    method: "GET"
    params:
      city: "{input.city}"
      unit: "{input.unit}"
  - step: "Форматиране на резултата"
    format: "Температурата в {city} е {temperature}°{unit}"

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

4. Най-добри практики

  • Единствена отговорност: всеки Skill прави само едно нещо, избягвайте прекомерно свързване.
  • Самодостатъчност: по възможност не разчитайте на външно глобално състояние, входът определя изхода.
  • Тестваемост: предоставете mock данни или пясъчна среда за модулни тестове.
  • Документиране: напишете инструкции за употреба и примери за всеки Skill.

Чрез горния метод дефинираните Skill могат да бъдат динамично планирани от AI Agent, както и директно интегрирани от разработчици в системата, постигайки повторна употреба „напиши веднъж, използвай навсякъде“.

评论

暂无已展示的评论。

发表评论(匿名)