AI-serie-interview 7: Sådan defineres en Skill korrekt
1. Kernet koncept for Skill
En Skill er en indkapslet enhed af udførbare evner i en Agent (AI-agent) eller et AI-system. Den indeholder typisk:
- Udløserbetingelse: Hvornår den kaldes (f.eks. brugerinstruktion, systemhændelse).
- Inputparametre: Data eller kontekst, der skal modtages.
- Udførelseslogik: Specifikke behandlingstrin (f.eks. kald af API, kørsel af kode, forespørgsel i vidensbase).
- Outputresultat: Svar eller handling, der returneres til den, der kalder.
2. Trin til at definere en Skill korrekt
1. Angiv Skillens navn og beskrivelse
- Navn: Kort, unikt, semantisk (f.eks.
search_web,send_email). - Beskrivelse: Beskriv Skillens funktion med én sætning, så Agenten kan matche automatisk.
2. Definer inputschema (Input Schema)
Brug JSON Schema eller et lignende format til at specificere type, om det er påkrævet, standardværdi og begrænsninger for hver parameter.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Søgeord",
"required": true
},
"max_results": {
"type": "integer",
"description": "Maksimalt antal resultater",
"default": 10
}
}
}
3. Skriv udførelseslogik (Execution Logic)
- Deterministisk logik: Kald direkte en funktion, API eller database.
- Ikke-deterministisk logik: Brug LLM til at generere svar (kræver prompt-skabelon).
- Fejlhåndtering: Definér timeout, genforsøg, nedgraderingsstrategi.
4. Definer outputformat (Output Schema)
Brug også JSON Schema til at beskrive den returnerede datastruktur.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. Tilføj metadata (Metadata)
- Versionsnummer: Let at administrere opdateringer.
- Forfatter/vedligeholder: Ansvarsfordeling.
- Afhængigheder: Eksterne tjenester eller biblioteker.
- Brugsbegrænsninger: F.eks. frekvensbegrænsning, tilladelseskrav.
3. Eksempel: En komplet Skill-definition
name: "weather_query"
description: "Hent aktuel vejr for en by"
version: "1.0.0"
author: "AI Team"
input:
type: object
properties:
city:
type: string
description: "Byens navn, f.eks. 'Beijing'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "Kald vejr-API"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "Formater resultat"
format: "Aktuel temperatur i {city} er {temperature}°{unit}"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
4. Bedste praksis
- Enkelt ansvar: Hver Skill gør kun én ting, undgå overflødig kobling.
- Selvstændig: Så vidt muligt afhæng ikke af ekstern global tilstand; input er output.
- Testbar: Tilbyd mock-data eller sandkassemiljø til enhedstest.
- Dokumenteret: Skriv brugsanvisning og eksempler for hver Skill.
Ved at definere Skills på denne måde kan de både dynamisk planlægges af AI-agenten og integreres direkte af udviklere i systemet, hvilket opnår en genbrugseffekt af “skriv én gang, brug overalt”.
评论
暂无已展示的评论。
发表评论(匿名)