AI Seria Wywiadów 7: Jak poprawnie zdefiniować Skill
1. Podstawowe pojęcia Skill
Skill to jednostka wykonywalna zamknięta w Agencie (inteligentnym agencie) lub systemie AI. Zazwyczaj zawiera:
- Warunki wyzwalające: kiedy jest wywoływany (np. polecenie użytkownika, zdarzenie systemowe).
- Parametry wejściowe: dane lub kontekst, które musi otrzymać.
- Logika wykonania: konkretne kroki przetwarzania (np. wywołanie API, uruchomienie kodu, zapytanie do bazy wiedzy).
- Wynik wyjściowy: odpowiedź lub akcja zwracana do wywołującego.
2. Kroki do poprawnego zdefiniowania Skill
1. Określenie nazwy i opisu Skill
- Nazwa: krótka, unikalna, semantyczna (np.
search_web,send_email). - Opis: jednozdaniowe wyjaśnienie funkcji Skill, ułatwiające automatyczne dopasowanie przez Agenta.
2. Definiowanie parametrów wejściowych (Input Schema)
Użyj JSON Schema lub podobnego formatu, aby określić typ każdego parametru, czy jest wymagany, wartość domyślną i ograniczenia.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Słowo kluczowe wyszukiwania",
"required": true
},
"max_results": {
"type": "integer",
"description": "Maksymalna liczba wyników",
"default": 10
}
}
}
3. Pisanie logiki wykonania (Execution Logic)
- Logika deterministyczna: bezpośrednie wywołanie funkcji, API lub bazy danych.
- Logika niedeterministyczna: użycie LLM do generowania odpowiedzi (wymaga szablonu promptu).
- Obsługa błędów: zdefiniowanie limitów czasu, ponawiania, strategii degradacji.
4. Definiowanie formatu wyjściowego (Output Schema)
Również użyj JSON Schema do opisania struktury zwracanych danych.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. Dodatkowe metadane (Metadata)
- Numer wersji: ułatwia zarządzanie iteracjami.
- Autor/opiekun: odpowiedzialność.
- Zależności: wymagane usługi zewnętrzne lub biblioteki.
- Ograniczenia użycia: np. limity częstotliwości, wymagania uprawnień.
3. Przykład: kompletna definicja Skill
name: "weather_query"
description: "Sprawdza aktualną pogodę dla podanego miasta"
version: "1.0.0"
author: "Zespół AI"
input:
type: object
properties:
city:
type: string
description: "Nazwa miasta, np. 'Warszawa'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "Wywołanie API pogodowego"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "Formatowanie wyniku"
format: "Aktualna temperatura w {city} wynosi {temperature}°{unit}"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
4. Najlepsze praktyki
- Pojedyncza odpowiedzialność: każdy Skill robi tylko jedną rzecz, unikaj nadmiernego sprzężenia.
- Samowystarczalność: staraj się nie polegać na globalnym stanie zewnętrznym; wejście = wyjście.
- Testowalność: dostarcz dane mockowe lub środowisko piaskownicy do testów jednostkowych.
- Dokumentacja: napisz instrukcję użycia i przykłady dla każdego Skill.
Dzięki powyższym metodom zdefiniowany Skill może być dynamicznie zarządzany przez Agenta AI, a także bezpośrednio zintegrowany przez programistów, osiągając efekt wielokrotnego użycia: "napisz raz, używaj wszędzie".
评论
暂无已展示的评论。
发表评论(匿名)