← 返回列表

AI ซีรีส์สัมภาษณ์ 7: วิธีกำหนด Skill อย่างเป็นมาตรฐาน

หนึ่ง แนวคิดหลักของ Skill

Skill คือหน่วยความสามารถที่สามารถดำเนินการได้ซึ่งถูกห่อหุ้มอยู่ใน Agent หรือ ระบบ AI โดยทั่วไปประกอบด้วย:

  • เงื่อนไขการเรียกใช้: เมื่อใดที่ถูกเรียก (เช่น คำสั่งผู้ใช้, เหตุการณ์ของระบบ)
  • พารามิเตอร์นำเข้า: ข้อมูลหรือบริบทที่ต้องรับ
  • ตรรกะการดำเนินการ: ขั้นตอนการประมวลผลเฉพาะ (เช่น การเรียก API, รันโค้ด, ค้นหาฐานความรู้)
  • ผลลัพธ์: การตอบสนองหรือการกระทำที่ส่งกลับไปยังผู้เรียก

สอง ขั้นตอนการกำหนด Skill อย่างเป็นมาตรฐาน

1. ระบุชื่อและคำอธิบายของ Skill

  • ชื่อ: สั้น, ไม่ซ้ำ, มีความหมาย (เช่น search_web, send_email)
  • คำอธิบาย: อธิบายฟังก์ชันของ Skill ในหนึ่งประโยค เพื่อให้ Agent จับคู่โดยอัตโนมัติ

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 สร้างการตอบสนอง (ต้องมีเทมเพลต prompt)
  • การจัดการข้อผิดพลาด: กำหนด timeout, การลองใหม่, กลยุทธ์ลดระดับ

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)

  • หมายเลขเวอร์ชัน: เพื่อการจัดการเวอร์ชัน
  • ผู้เขียน/ผู้ดูแล: ความรับผิดชอบ
  • การพึ่งพา: บริการภายนอกหรือไลบรารีที่จำเป็น
  • ข้อจำกัดการใช้งาน: เช่น การจำกัดความถี่, ข้อกำหนดสิทธิ์

สาม ตัวอย่าง: นิยาม Skill ที่สมบูรณ์

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

สี่ แนวปฏิบัติที่ดีที่สุด

  • ความรับผิดชอบเดียว: แต่ละ Skill ทำเพียงสิ่งเดียว หลีกเลี่ยงการพึ่งพากันมากเกินไป
  • พึ่งพาตนเอง: พยายามไม่พึ่งพาสถานะภายนอก global รับเข้าแล้วส่งออก
  • ทดสอบได้: จัดเตรียมข้อมูลจำลองหรือสภาพแวดล้อม sandbox สำหรับการทดสอบหน่วย
  • จัดทำเอกสาร: เขียนคำแนะนำการใช้งานและตัวอย่างสำหรับแต่ละ Skill

ด้วยวิธีการข้างต้นในการกำหนด Skill จะทำให้สามารถถูก Agent AI จัดการแบบไดนามิก และนักพัฒนาสามารถรวมเข้ากับระบบได้โดยตรง บรรลุผลการนำกลับมาใช้ใหม่แบบ "เขียนครั้งเดียว ใช้ได้ทุกที่"

评论

暂无已展示的评论。

发表评论(匿名)