AI-seeria intervjuu 7: Kuidas defineerida oskust standardsel viisil
1. Oskuse põhikontseptsioon
Oskus on Agendi või AI-süsteemi pakendatud täidetavate võimete kogum. See sisaldab tavaliselt:
- Käivitustingimus: Millal seda kutsutakse (nt kasutaja käsk, süsteemi sündmus).
- Sisendparameetrid: Andmed või kontekst, mida tuleb vastu võtta.
- Täitmisloogika: Konkreetsed töötlemise sammud (nt API kutsumine, koodi käivitamine, teadmusbaasi pärimine).
- Väljundtulemus: Vastus või tegevus, mis tagastatakse kutsujale.
2. Oskuse standardse defineerimise sammud
1. Määra oskuse nimi ja kirjeldus
- Nimi: Lühike, unikaalne, semantiline (nt
search_web,send_email). - Kirjeldus: Üks lause, mis selgitab oskuse funktsiooni, et Agent saaks automaatselt sobitada.
2. Defineeri sisendparameetrid (Input Schema)
Kasuta JSON Schema või sarnast vormingut, et määrata iga parameetri tüüp, kohustuslikkus, vaikeväärtus ja piirangud.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Otsingusõna",
"required": true
},
"max_results": {
"type": "integer",
"description": "Maksimaalne tulemuste arv",
"default": 10
}
}
}
3. Kirjuta täitmisloogika (Execution Logic)
- Deterministlik loogika: Otse funktsiooni, API või andmebaasi kutsumine.
- Mittedeterministlik loogika: Kasuta LLM-i vastuse genereerimiseks (vaja on prompti malli).
- Vigade käsitlemine: Määra ajalõpp, uuesti proovimine, degradeerimisstrateegiad.
4. Defineeri väljundvorming (Output Schema)
Samuti kasuta JSON Schema, et kirjeldada tagastatava andmestruktuuri.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. Lisa metaandmed (Metadata)
- Versioon: Iteratsioonide haldamiseks.
- Autor/haldaja: Vastutuse määramine.
- Sõltuvused: Vajalikud välised teenused või teegid.
- Kasutuspiirangud: Nt sageduspiirangud, õigusnõuded.
3. Näide: Täielik oskuse definitsioon
name: "weather_query"
description: "Päring hetkeilma kohta linna nime järgi"
version: "1.0.0"
author: "AI Team"
input:
type: object
properties:
city:
type: string
description: "Linna nimi, nt 'Tallinn'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "Kutsu ilma API-d"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "Vorminda tulemus"
format: "Praegu on {city} temperatuur {temperature}°{unit}"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
4. Parimad tavad
- Üks vastutus: Iga oskus teeb ainult ühte asja, vältides liigset sidumist.
- Iseseisev: Võimalikult vähe sõltuvust välistest globaalsetest olekutest, sisend määrab väljundi.
- Testitav: Paku mock-andmeid või liivakasti keskkonda ühiktestimiseks.
- Dokumenteeritud: Kirjuta iga oskuse jaoks kasutusjuhised ja näited.
Ülaltoodud meetoditega defineeritud oskust saab nii AI Agent dünaamiliselt ajastada kui ka arendajad otse süsteemi integreerida, saavutades "kirjuta üks kord, kasuta igal pool" taaskasutuse.
评论
暂无已展示的评论。
发表评论(匿名)