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 Агента, али и директно интегрисан од стране програмера у систем, остварујући поновну употребу „напиши једном, користи свуда“.
评论
暂无已展示的评论。
发表评论(匿名)