← 返回列表

AIシリーズ面接7:スキルを規範的に定義する方法

一、スキルの核心概念

スキルとは、エージェント(Agent) または AIシステム にカプセル化された一連の実行可能な能力ユニットです。通常、以下を含みます:

  • トリガー条件:いつ呼び出されるか(ユーザー指示、システムイベントなど)。
  • 入力パラメータ:受け取る必要のあるデータやコンテキスト。
  • 実行ロジック:具体的な処理手順(API呼び出し、コード実行、知識ベースクエリなど)。
  • 出力結果:呼び出し元に返す応答やアクション。

二、スキルを規範的に定義する手順

1. スキルの名前と説明を明確にする

  • 名前:短く、一意で、意味のあるもの(例:search_websend_email)。
  • 説明:一文でそのスキルの機能を説明し、エージェントが自動的にマッチングできるようにする。

2. 入力スキーマ(Input Schema)を定義する

JSON Schema または類似の形式を使用し、各パラメータの型、必須かどうか、デフォルト値、制約を明確にします。

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "検索キーワード",
      "required": true
    },
    "max_results": {
      "type": "integer",
      "description": "最大返却結果数",
      "default": 10
    }
  }
}

3. 実行ロジック(Execution Logic)を記述する

  • 決定論的ロジック:関数、API、データベースを直接呼び出す。
  • 非決定論的ロジック:LLMを使用して応答を生成する(プロンプトテンプレートを提供する必要あり)。
  • エラーハンドリング:タイムアウト、リトライ、フォールバック戦略を定義する。

4. 出力形式(Output Schema)を定義する

同様にJSON Schemaを使用して、返されるデータ構造を記述します。

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "url": { "type": "string", "format": "uri" }
        }
      }
    }
  }
}

5. メタデータ(Metadata)を追加する

  • バージョン番号:反復管理を容易にする。
  • 作者/メンテナー:責任の所在。
  • 依存関係:必要な外部サービスやライブラリ。
  • 使用制限:レート制限、権限要件など。

三、例:完全なスキル定義

name: "weather_query"
description: "都市名に基づいて現在の天気を取得する"
version: "1.0.0"
author: "AI Team"

input:
  type: object
  properties:
    city:
      type: string
      description: "都市名(例:'東京')"
      required: true
    unit:
      type: string
      enum: ["celsius", "fahrenheit"]
      default: "celsius"

execute:
  - step: "天気APIを呼び出す"
    api: "https://api.weather.com/v1/current"
    method: "GET"
    params:
      city: "{input.city}"
      unit: "{input.unit}"
  - step: "結果をフォーマットする"
    format: "現在 {city} の気温は {temperature}°{unit} です"

output:
  type: object
  properties:
    temperature:
      type: number
    condition:
      type: string
    humidity:
      type: number

四、ベストプラクティス

  • 単一責任:各スキルは一つのことだけを行い、過度な結合を避ける。
  • 自己完結:可能な限り外部のグローバル状態に依存せず、入力がそのまま出力となる。
  • テスト可能:モックデータやサンドボックス環境を提供し、単体テストを実施する。
  • ドキュメント化:各スキルに使用説明と例を記述する。

上記の方法で定義されたスキルは、AIエージェントによる動的なスケジューリングが可能であると同時に、開発者が直接システムに統合することもでき、「一度書けばどこでも使える」再利用効果を実現します。

评论

暂无已展示的评论。

发表评论(匿名)