Colloquio Serie AI 7: Come Definire una Skill in Modo Standard
1. Concetto Principale di Skill
Una Skill è un'unità di capacità eseguibile incapsulata in un Agente o Sistema AI. Di solito include:
- Condizione di attivazione: quando viene chiamata (es. comando utente, evento di sistema).
- Parametri di input: dati o contesto da ricevere.
- Logica di esecuzione: passaggi specifici di elaborazione (es. chiamata API, esecuzione di codice, interrogazione di knowledge base).
- Risultato di output: risposta o azione restituita al chiamante.
2. Passaggi per Definire una Skill in Modo Standard
1. Specificare Nome e Descrizione della Skill
- Nome: breve, univoco, semantico (es.
search_web,send_email). - Descrizione: una frase che spiega la funzionalità della Skill, utile per l'abbinamento automatico dell'Agente.
2. Definire lo Schema di Input (Input Schema)
Utilizzare JSON Schema o formato simile, specificando tipo, obbligatorietà, valore predefinito e vincoli per ogni parametro.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Parola chiave di ricerca",
"required": true
},
"max_results": {
"type": "integer",
"description": "Numero massimo di risultati",
"default": 10
}
}
}
3. Scrivere la Logica di Esecuzione (Execution Logic)
- Logica deterministica: chiamata diretta a funzioni, API o database.
- Logica non deterministica: utilizzo di LLM per generare risposte (fornire template di prompt).
- Gestione errori: definire timeout, tentativi, strategie di degradazione.
4. Definire lo Schema di Output (Output Schema)
Utilizzare JSON Schema per descrivere la struttura dei dati restituiti.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. Metadati Aggiuntivi (Metadata)
- Versione: per gestione iterativa.
- Autore/Maintainer: responsabilità.
- Dipendenze: servizi esterni o librerie necessari.
- Limitazioni d'uso: es. limiti di frequenza, requisiti di autorizzazione.
3. Esempio: Definizione Completa di una Skill
name: "weather_query"
description: "Recupera il meteo attuale per una città"
version: "1.0.0"
author: "AI Team"
input:
type: object
properties:
city:
type: string
description: "Nome della città, es. 'Roma'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "Chiamata API meteo"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "Formatta risultato"
format: "Attualmente a {city} la temperatura è {temperature}°{unit}"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
4. Best Practice
- Singola responsabilità: ogni Skill fa una sola cosa, evitare accoppiamento eccessivo.
- Autocontenuta: non dipendere da stato globale esterno, input produce output.
- Testabile: fornire dati mock o ambiente sandbox per test unitari.
- Documentata: scrivere istruzioni d'uso ed esempi per ogni Skill.
Con i metodi sopra, una Skill può essere sia schedulata dinamicamente da un Agente AI, sia integrata direttamente dagli sviluppatori nel sistema, ottenendo il riutilizzo "scrivi una volta, usa ovunque".
评论
暂无已展示的评论。
发表评论(匿名)