02-347-7730  |  Saeree ERP - ระบบ ERP ครบวงจรสำหรับธุรกิจไทย ติดต่อเรา

เจาะลึก OpenClaw Skills

เจาะลึก OpenClaw Skills สร้าง Custom Skill ตั้งแต่ศูนย์ AI Agent
  • 3
  • เมษายน

OpenClaw Deep Dive Series EP.2 — จาก EP.1 ที่เราติดตั้ง OpenClaw และสร้าง AI Agent ตัวแรก กันไปแล้ว ตอนนี้ถึงเวลาเจาะลึก "Skills" — หัวใจที่ทำให้ OpenClaw ทำงานได้มากกว่า Chatbot ธรรมดา Skills คือชุดคำสั่งที่สอนให้ Agent ทำงานเฉพาะทาง เปรียบเหมือน Plugin ที่เพิ่มความสามารถใหม่ๆ ให้ Agent ของคุณ และที่สำคัญ — คุณสามารถสร้าง Custom Skill ของตัวเองได้! ไม่ว่าจะเป็นการดึงข้อมูลจาก Database, เรียก API ภายในองค์กร หรือสั่งงานระบบ ERP ผ่านภาษาธรรมชาติ

สรุปสั้น — สิ่งที่จะได้เรียนรู้ในบทความนี้:

  • Skill คืออะไร — Plugin ที่สอนให้ Agent ทำงานเฉพาะทาง
  • Built-in Skills — 8+ Skills ที่มีมาให้พร้อมใช้ทันที
  • Skill Architecture — Trigger, Execute, Respond ทำงานอย่างไร
  • สร้าง Custom Skill — ตัวอย่างจริง Skill "ตรวจสอบสถานะ Server"
  • Testing & Debugging — วิธีทดสอบและแก้ปัญหา Skill
  • Deploy Skill สู่ Production — พร้อมข้อควรระวังด้าน Security

OpenClaw Skills คืออะไร?

Skill คือ Plugin ที่สอนให้ AI Agent ทำงานเฉพาะทางได้ — ถ้า Agent เหมือนพนักงานใหม่ Skills ก็เหมือน "คู่มือการทำงาน" ที่สอนให้ทำงานแต่ละอย่าง เช่น คู่มือการอนุมัติเอกสาร คู่มือการตรวจสอบสต็อก หรือคู่มือการสรุปรายงาน ยิ่งมี Skill มากเท่าไหร่ Agent ก็ยิ่งทำงานได้หลากหลายมากขึ้น

Skill แต่ละตัวถูกกำหนดด้วยไฟล์ Config (YAML/JSON) ที่ระบุ ชื่อ, คำอธิบาย, Trigger Pattern (เงื่อนไขที่ทำให้ Skill ทำงาน) และ Action (สิ่งที่ Skill ทำจริง) ทำให้ระบบเป็น Modular — เพิ่ม/ลบ/แก้ไข Skill ได้โดยไม่ต้องแก้โค้ดหลักของ OpenClaw

ประเภท ความสามารถ ตัวอย่าง
Chatbot ธรรมดา ตอบคำถามแค่ Text — ไม่สามารถทำงานอื่นได้ "สวัสดีครับ มีอะไรให้ช่วยไหม?"
Agent ไม่มี Skills ทำงานทั่วไปได้ (อ่านไฟล์ รัน Command) แต่ไม่รู้งานขององค์กร "อ่านไฟล์ report.csv ให้หน่อย"
Agent + Custom Skills ทำงานเฉพาะทางขององค์กรได้ — รู้ว่า "อนุมัติใบเบิก" ต้องเรียก API ไหน "อนุมัติใบเบิกเลขที่ PO-2569-0042"

Built-in Skills — มีอะไรมาให้พร้อมใช้?

OpenClaw มี Built-in Skills มาให้หลายตัว ครอบคลุมงานพื้นฐานที่ Agent ควรทำได้:

Skill ความสามารถ ตัวอย่างคำสั่ง
file_manager อ่าน/เขียน/ลบ/ย้ายไฟล์ "สร้างไฟล์ summary.txt สรุปข้อมูล"
shell_executor รัน Shell Commands "เช็ค disk space เครื่องนี้"
web_browser ท่องเว็บ ค้นหา สกรีนช็อต "ค้นข่าว AI วันนี้ สรุปให้ 5 ข้อ"
email_handler อ่าน/ส่ง/จัดการอีเมล "ร่างอีเมลตอบลูกค้าเรื่องใบเสนอราคา"
calendar_sync ดูปฏิทิน ตั้งนัด เตือนความจำ "นัดประชุมวันศุกร์บ่าย 2"
code_interpreter รัน Python/JS Code "คำนวณ ROI จากตัวเลขนี้"
image_analyzer วิเคราะห์รูปภาพ (ถ้า Model รองรับ Vision) "ดูรูปนี้แล้วบอกว่ามีอะไรบ้าง"
api_caller เรียก REST API ภายนอก "ดึงอัตราแลกเปลี่ยนวันนี้" (เปรียบเทียบกับ Ollama API)

Built-in Skills ครอบคลุมงานทั่วไป แต่จุดแข็งที่แท้จริงของ OpenClaw คือความสามารถในการ สร้าง Custom Skill ที่ตอบโจทย์งานเฉพาะขององค์กร

Skill Architecture — ทำงานอย่างไร?

เมื่อผู้ใช้ส่งข้อความเข้ามา OpenClaw จะประมวลผลผ่าน Skill Router ซึ่งทำหน้าที่จับคู่ข้อความกับ Skill ที่เหมาะสม:

User Message → Skill Router → Match Trigger → Execute Action → Return Response
     |                |              |                |               |
  "เช็คสถานะ       ตรวจสอบ       พบ Trigger       รัน ping        ส่งผลลัพธ์
   server"       ทุก Skill     "เช็คสถานะ"      server          กลับผู้ใช้

Skill แต่ละตัวประกอบด้วย 3 ส่วนหลัก:

ส่วนประกอบ หน้าที่ ตัวอย่าง
Trigger เงื่อนไขที่ทำให้ Skill ทำงาน (keyword, pattern, intent) คำว่า "เช็คสถานะ", "server status", regex pattern
Action สิ่งที่ Skill ทำจริง (API call, file operation, computation) รัน ping server, เรียก REST API, query database
Response ผลลัพธ์ที่ส่งกลับ (text, file, image, structured data) "Server ออนไลน์ Uptime 99.9% Response Time 23ms"

ระบบ Trigger รองรับหลายรูปแบบ — ตั้งแต่ keyword matching อย่างง่าย (เช่น ถ้ามีคำว่า "สถานะ server" ให้ทำงาน) ไปจนถึง intent detection ที่ใช้ AI วิเคราะห์ว่าผู้ใช้ต้องการอะไร แม้จะพิมพ์ต่างจาก keyword ที่กำหนดไว้

สร้าง Custom Skill ตัวแรก — ขั้นตอนทีละขั้น

มาลองสร้าง Skill "ตรวจสอบสถานะ Server" ที่ ping server แล้วรายงานผลกลับให้ผู้ใช้ โดยแบ่งเป็น 4 ขั้นตอน:

Step 1: สร้างไฟล์ Skill Config

# skills/server-status.yaml

name: "server_status"
description: "ตรวจสอบสถานะ Server แล้วรายงานผล"
version: "1.0.0"

triggers:
  - type: "keyword"
    patterns:
      - "เช็คสถานะ server"
      - "server status"
      - "เซิร์ฟเวอร์ทำงานอยู่ไหม"
      - "ping server"

action:
  type: "script"
  handler: "skills/handlers/server-status.js"

response:
  format: "text"
  template: |
    สถานะ Server:
    - Host: {{host}}
    - Status: {{status}}
    - Response Time: {{responseTime}}ms
    - Uptime: {{uptime}}

Step 2: เขียน Action Logic (Handler)

// skills/handlers/server-status.js

const { exec } = require('child_process');
const util = require('util');
const execAsync = util.promisify(exec);

module.exports = async function serverStatus(context) {
  // รายการ Server ที่ต้องตรวจสอบ
  const servers = [
    { name: "Web Server", host: "192.168.10.87" },
    { name: "Database",   host: "192.168.10.88" },
    { name: "API Gateway", host: "192.168.10.89" }
  ];

  const results = [];

  for (const server of servers) {
    try {
      const start = Date.now();
      await execAsync(`ping -c 1 -W 3 ${server.host}`);
      const responseTime = Date.now() - start;

      results.push({
        host: `${server.name} (${server.host})`,
        status: "Online",
        responseTime,
        uptime: "N/A"
      });
    } catch (error) {
      results.push({
        host: `${server.name} (${server.host})`,
        status: "Offline",
        responseTime: "-",
        uptime: "-"
      });
    }
  }

  return { results };
};

Step 3: Register Skill ใน Config

# config/skills.yaml — ลงทะเบียน Skill ทั้งหมด

skills:
  # Built-in Skills
  - file_manager
  - shell_executor
  - web_browser
  - email_handler

  # Custom Skills
  - path: "skills/server-status.yaml"    # Skill ใหม่ที่เราสร้าง
  # - path: "skills/sales-report.yaml"   # เพิ่มได้เรื่อยๆ

Step 4: ทดสอบ Skill

# รัน Agent พร้อม Custom Skill
npm start -- --agent agents/my-first-agent.yaml

# ส่งข้อความทดสอบ (ผ่าน WhatsApp, Telegram หรือ CLI)
> เช็คสถานะ server

# ผลลัพธ์ที่ได้:
# สถานะ Server:
# - Web Server (192.168.10.87): Online, 23ms
# - Database (192.168.10.88): Online, 15ms
# - API Gateway (192.168.10.89): Offline

เพียง 4 ขั้นตอนก็ได้ Custom Skill ที่ใช้งานได้จริง! และเนื่องจาก Skill เป็น Modular คุณสามารถเพิ่ม Skill ใหม่ได้เรื่อยๆ โดยไม่กระทบ Skill ที่มีอยู่แล้ว

ตัวอย่างจริง — 3 Custom Skills สำหรับองค์กร

นอกจาก Skill ตรวจสอบ Server แล้ว ลองดูตัวอย่าง Custom Skills ที่องค์กรสามารถสร้างเพื่อเชื่อมกับระบบภายใน:

Skill Trigger Action Response
สรุปรายงานยอดขาย "สรุปยอดขาย", "ยอดขายเดือนนี้" ดึงข้อมูลจาก Database → คำนวณสรุป ยอดรวม, เทียบเดือนก่อน, Top 5 สินค้าขายดี
อนุมัติใบเบิก "อนุมัติใบเบิก PO-xxxx" รับเลขที่ใบเบิก → เรียก ERP API → อนุมัติ สถานะ: อนุมัติสำเร็จ, ยอด, ผู้ขอ, วันที่
แจ้งเตือนสต็อกต่ำ "เช็คสต็อก", "สินค้าใกล้หมด" Query สต็อกจาก DB → เทียบกับเกณฑ์ขั้นต่ำ รายการสินค้าที่ต่ำกว่าเกณฑ์ + แนะนำจำนวนสั่งซื้อ

ทั้ง 3 ตัวอย่างนี้แสดงให้เห็นว่า Custom Skill สามารถเชื่อมต่อกับระบบที่องค์กรมีอยู่แล้ว ไม่ว่าจะเป็น Database, REST API หรือระบบ ERP — ทำให้ AI Agent กลายเป็น "ผู้ช่วยที่รู้งาน" จริงๆ

Testing & Debugging Skills

ก่อน Deploy Skill ไปใช้งานจริง ควรทดสอบให้เรียบร้อยก่อน OpenClaw มี Test Framework ในตัว:

# ทดสอบ Skill แบบ Standalone (Unit Test)
npm run test:skill -- --skill skills/server-status.yaml

# ทดสอบพร้อม Mock Data
npm run test:skill -- --skill skills/server-status.yaml --mock

# ดู Log แบบ Verbose
npm run test:skill -- --skill skills/server-status.yaml --verbose

# ผลลัพธ์:
# [PASS] Trigger "เช็คสถานะ server" → matched
# [PASS] Trigger "server status" → matched
# [PASS] Trigger "สวัสดี" → not matched (correct)
# [PASS] Action executed → 3 servers checked
# [PASS] Response format → valid

ปัญหาที่พบบ่อยและวิธีแก้:

ปัญหา สาเหตุ วิธีแก้
Trigger ไม่ match Keyword/Pattern ไม่ตรงกับข้อความผู้ใช้ เพิ่ม Pattern ให้ครอบคลุม หรือใช้ intent detection
API Timeout API ภายนอกตอบช้าหรือไม่ตอบ ตั้ง timeout + retry logic + fallback response
Permission Denied Skill ไม่มีสิทธิ์เข้าถึง resource ตรวจสอบสิทธิ์ของ User ที่รัน Agent ดู หลักการ Least Privilege
JSON Parse Error API Response รูปแบบไม่ถูกต้อง เพิ่ม try-catch + validate response schema

ข้อควรระวังเรื่อง Security:

  • Credentials ต้องปลอดภัย — Skill ที่เรียก API ภายนอก ต้องเก็บ API Key / Password ไว้ในไฟล์ .env เท่านั้น ห้าม hardcode ลงใน Skill Config หรือ Handler โดยเด็ดขาด
  • Shell Command ต้อง whitelist — Skill ที่รัน Shell Command ต้องกำหนดรายการคำสั่งที่อนุญาตไว้ชัดเจน ป้องกันไม่ให้ผู้ใช้สั่ง rm -rf / ผ่าน Agent
  • Input Validation — ต้องตรวจสอบ Input จากผู้ใช้ทุกครั้ง ป้องกัน SQL Injection และ Command Injection
  • เปิดใช้ 2FA — สำหรับ Skill ที่ทำงานสำคัญ (เช่น อนุมัติเอกสาร โอนเงิน) ควรมีขั้นตอนยืนยันตัวตนเพิ่มเติม

Saeree ERP + Custom Skills:

ด้วย Custom Skills องค์กรสามารถสร้าง AI Agent ที่ทำงานร่วมกับระบบ ERP ได้ เช่น ตรวจสอบงบประมาณ อนุมัติเอกสาร สรุปรายงาน — Saeree ERP กำลังพัฒนา AI Assistant ที่จะเชื่อมต่อกับระบบ ERP ผ่าน Skills เหล่านี้ สนใจระบบ ERP ที่พร้อมรองรับ AI ในอนาคต ปรึกษาทีมงานฟรี ไม่มีค่าใช้จ่าย

OpenClaw Deep Dive Series — อ่านต่อ

"Skills คือสิ่งที่เปลี่ยน AI Agent จากผู้ช่วยทั่วไป เป็นพนักงานเฉพาะทางที่รู้งานขององค์กรคุณ — สร้างเองได้ไม่ต้องรอใคร"

- ทีมงาน Saeree ERP

แหล่งอ้างอิง

สนใจระบบ ERP สำหรับองค์กรของคุณ?

ปรึกษาผู้เชี่ยวชาญจาก Grand Linux Solution ฟรี ไม่มีค่าใช้จ่าย

ขอ Demo ฟรี

โทร 02-347-7730 | sale@grandlinux.com

Saeree ERP Author

เกี่ยวกับผู้เขียน

ไพฑูรย์ บุตรี

ผู้เชี่ยวชาญด้านระบบเน็ตเวิร์คและระบบความปลอดภัยเซิร์ฟเวอร์ บริษัท แกรนด์ลีนุกซ์ โซลูชั่น จำกัด