AI serija intervjua 7: Kako standardno definirati Skill
1. Osnovni koncept Skill-a
Skill je skup izvršnih jedinica sposobnosti inkapsuliranih u Agent ili AI sistem. Obično uključuje:
- Okidački uslov: Kada se poziva (npr. korisnička naredba, sistemski događaj).
- Ulazni parametri: Podaci ili kontekst koje treba primiti.
- Logika izvršenja: Specifični koraci obrade (npr. poziv API-ja, pokretanje koda, upit u bazu znanja).
- Izlazni rezultat: Odgovor ili akcija vraćena pozivaocu.
2. Koraci za standardno definiranje Skill-a
1. Odredite naziv i opis Skill-a
- Naziv: Kratak, jedinstven, semantički (npr.
search_web,send_email). - Opis: Jedna rečenica koja objašnjava funkciju Skill-a, kako bi Agent mogao automatski da ga prepozna.
2. Definirajte ulazne parametre (Input Schema)
Koristite JSON Schema ili sličan format, jasno navedite tip svakog parametra, obaveznost, podrazumijevanu vrijednost i ograničenja.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Ključna riječ za pretragu",
"required": true
},
"max_results": {
"type": "integer",
"description": "Maksimalan broj rezultata",
"default": 10
}
}
}
3. Napišite logiku izvršenja (Execution Logic)
- Deterministička logika: Direktno pozivanje funkcije, API-ja ili baze podataka.
- Nedeterministička logika: Korištenje LLM-a za generiranje odgovora (potrebno je dati prompt template).
- Obrada grešaka: Definirajte timeout, ponovne pokušaje, strategiju degradacije.
4. Definirajte izlazni format (Output Schema)
Također koristite JSON Schema za opis strukture podataka koji se vraćaju.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. Dodatni metapodaci (Metadata)
- Verzija: Radi lakšeg upravljanja iteracijama.
- Autor/održavatelj: Odgovornost.
- Zavisnosti: Potrebne eksterne usluge ili biblioteke.
- Ograničenja korištenja: Npr. ograničenje učestalosti, zahtjevi za dozvolama.
3. Primjer: Potpuna definicija Skill-a
name: "weather_query"
description: "Provjeri trenutno vrijeme za dati grad"
version: "1.0.0"
author: "AI Tim"
input:
type: object
properties:
city:
type: string
description: "Naziv grada, npr. 'Sarajevo'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "Pozovi vremenski API"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "Formatiraj rezultat"
format: "Trenutna temperatura u {city} je {temperature}°{unit}"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
4. Najbolje prakse
- Jedinstvena odgovornost: Svaki Skill radi samo jednu stvar, izbjegavajte prekomjerno povezivanje.
- Samostalnost: Pokušajte ne zavisiti od vanjskog globalnog stanja, ulaz je izlaz.
- Testabilnost: Omogućite mock podatke ili sandbox okruženje za jedinične testove.
- Dokumentacija: Napišite upute za korištenje i primjere za svaki Skill.
Skill definiran na ovaj način može biti dinamički raspoređen od strane AI Agent-a, a također ga programeri mogu direktno integrirati u sistem, postižući efekat ponovne upotrebe "napiši jednom, koristi svugdje".
评论
暂无已展示的评论。
发表评论(匿名)