← 返回列表

AI серија интервјуа 7: Како правилно дефинисати Skill

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

Skill је скуп извршних јединица способности у Агенту или AI систему. Обично садржи:

  • Услов покретања: када се позива (нпр. корисничка команда, системски догађај).
  • Улазни параметри: подаци или контекст које треба примити.
  • Логика извршења: конкретни кораци обраде (нпр. позив API-ја, покретање кода, претрага базе знања).
  • Излазни резултат: одговор или акција која се враћа позиваоцу.

2. Кораци за правилно дефинисање Skill-а

1. Одредити назив и опис Skill-а

  • Назив: кратак, јединствен, семантички (нпр. search_web, send_email).
  • Опис: једна реченица која објашњава функцију Skill-а, ради лакшег аутоматског подударања од стране Агента.

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 тим"

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 податке или sandbox окружење за јединичне тестове.
  • Документација: написати упутства за употребу и примере за сваки Skill.

Skill дефинисан на овај начин може бити динамички распоређен од стране AI Агента, али и директно интегрисан од стране програмера у систем, остварујући поновну употребу „напиши једном, користи свуда“.

评论

暂无已展示的评论。

发表评论(匿名)