← 返回列表

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".

评论

暂无已展示的评论。

发表评论(匿名)