วิธีสร้าง OpenClaw Custom Skills ง่ายๆ

Ashley Innocent

Ashley Innocent

26 February 2026

วิธีสร้าง OpenClaw Custom Skills ง่ายๆ

Apidog สำหรับองค์กร

ติดตั้งภายในองค์กร

SSO & RBAC

รองรับ SOC 2

สำรวจ Apidog Enterprise

สรุปแบบย่อ

จุดเด่นของ OpenClaw อยู่ที่ความยืดหยุ่นผ่านระบบสกิล (skills) ด้วยสกิลที่สร้างโดยชุมชนกว่า 700 รายการที่มีให้ใช้งานผ่าน ClawHub และความสามารถในการสร้างสกิลที่กำหนดเองโดยใช้ไฟล์ SKILL.md หรือ TypeScript คุณสามารถเปลี่ยนผู้ช่วย OpenClaw ของคุณให้เป็นเครื่องมือพิเศษสำหรับงานแทบทุกประเภท คู่มือนี้ครอบคลุมทุกอย่างตั้งแต่การติดตั้งสกิลที่มีอยู่ ไปจนถึงการสร้างและเผยแพร่สกิลของคุณเอง

บทนำ

OpenClaw มีความสามารถที่ทรงพลังอยู่แล้ว แต่ศักยภาพที่แท้จริงของมันจะถูกปลดล็อกผ่านสกิล (skills) ไม่ว่าคุณจะต้องการความช่วยเหลือด้านการเขียนโค้ดเฉพาะทาง, การทำงานอัตโนมัติของ DevOps, เครื่องมือวิจัย หรือฟังก์ชันการทำงานเฉพาะสำหรับอุตสาหกรรม ก็มีสกิลสำหรับสิ่งนั้นอยู่แล้ว—และถ้าไม่มี คุณก็สามารถสร้างมันขึ้นมาได้

💡
เมื่อสร้างสกิลที่กำหนดเองที่ต้องโต้ตอบกับ API ภายนอก การมีเครื่องมือที่เหมาะสมในการทดสอบการผสานรวมเหล่านั้นเป็นสิ่งสำคัญ Apidog ช่วยให้คุณทดสอบและแก้ไขข้อผิดพลาดของปลายทาง API ที่สกิลของคุณต้องพึ่งพา เพื่อให้มั่นใจได้ถึงการผสานรวมที่เชื่อถือได้
button

ด้วยสกิลที่สร้างโดยชุมชนกว่า 700 รายการที่มีให้ใช้งานผ่าน ClawHub และความสามารถในการสร้างสกิลที่กำหนดเอง OpenClaw จึงกลายเป็นผู้ช่วย AI ที่คุณต้องการให้เป็นได้

ในคู่มือฉบับสมบูรณ์นี้ เราจะครอบคลุมถึง:

ทำความเข้าใจสกิลของ OpenClaw

สกิลคืออะไร?

สกิลคือส่วนเสริมแบบโมดูลาร์ที่เพิ่มความสามารถเฉพาะให้กับ OpenClaw ลองนึกภาพว่าเป็นปลั๊กอินที่ให้ความสามารถใหม่ๆ แก่ผู้ช่วย AI ของคุณ—ตั้งแต่การส่งอีเมลประเภทเฉพาะไปจนถึงการโต้ตอบกับ API เฉพาะ

ประเภทของสกิล

1. สกิลภาษาธรรมชาติ (SKILL.md)
รูปแบบที่ง่ายที่สุด—เขียนด้วย Markdown พร้อมส่วนหัว YAML (YAML frontmatter) สิ่งเหล่านี้กำหนดคู่มือปฏิบัติการที่ OpenClaw ทำตามเมื่อเงื่อนไขบางอย่างเป็นจริง

2. สกิล TypeScript
สกิลเต็มรูปแบบที่สร้างด้วย TypeScript ซึ่งสามารถเข้าถึง API, ประมวลผลตรรกะที่ซับซ้อน และผสานรวมเข้ากับบริการภายนอกได้อย่างลึกซึ้ง

3. สกิลแบบ CLI
สกิลที่ใช้เครื่องมือ Command-Line ทำให้ OpenClaw สามารถใช้เครื่องมือใดๆ ที่มีอยู่ในระบบของคุณได้

สกิลทำงานอย่างไร

สกิลจะถูกโหลดแบบไดนามิกเมื่อจำเป็น (การโหลดแบบทันเวลาพอดี) ซึ่งช่วยให้การใช้หน่วยความจำสามารถจัดการได้ เมื่อคำขอของผู้ใช้ตรงกับเงื่อนไขการทำงานของสกิล (triggers) OpenClaw จะดำเนินการตามคำสั่งที่กำหนดไว้ในสกิลนั้น

หมวดหมู่สกิล

ClawHub มีสกิลหลากหลายประเภทในหลายหมวดหมู่:

เว็บไซต์ทางการของ ClawHub

การติดตั้งสกิลจาก ClawHub

การค้นหาสกิล

เรียกดูตลาด ClawHub ได้ที่ clawhub.ai หรือค้นหาโดยตรงผ่าน OpenClaw:

# ค้นหาสกิล
openclaw skills search "github"

# แสดงสกิลยอดนิยม
openclaw skills popular

# เรียกดูหมวดหมู่
openclaw skills browse devops

การติดตั้งสกิล

เมื่อคุณพบสกิลที่ต้องการ การติดตั้งก็ทำได้ง่ายๆ:

# ติดตั้งสกิลเฉพาะ
openclaw skills install github-actions

# ติดตั้งด้วยเวอร์ชันเฉพาะ
openclaw skills install github-actions@1.2.0

# ติดตั้งจากผู้เผยแพร่เฉพาะ
openclaw skills install @username/skill-name

การติดตั้งสกิลที่แนะนำทั้งหมด

# ติดตั้งสกิลเริ่มต้นยอดนิยม
openclaw skills install-recommended

การยืนยันการติดตั้ง

# แสดงสกิลที่ติดตั้งทั้งหมด
openclaw skills list

# ตรวจสอบรายละเอียดสกิล
openclaw skills info github-actions

การจัดการสกิลที่ติดตั้งไว้ของคุณ

การเปิดใช้งานและปิดใช้งานสกิล

# ปิดใช้งานสกิล (ยังคงติดตั้งไว้แต่ไม่ได้ใช้งาน)
openclaw skills disable github-actions

# เปิดใช้งานสกิลที่ถูกปิดใช้งาน
openclaw skills enable github-actions

การอัปเดตสกิล

# อัปเดตสกิลเฉพาะ
openclaw skills update github-actions

# อัปเดตสกิลทั้งหมด
openclaw skills update-all

การลบสกิล

# ถอนการติดตั้งสกิล
openclaw skills uninstall github-actions

การกำหนดค่าสกิล

สกิลหลายตัวรองรับ การกำหนดค่าเอง:

# กำหนดค่าสกิล
openclaw skills config github-actions --set token=your-github-token

หรือแก้ไขไฟล์กำหนดค่าของสกิลโดยตรง:

# ~/.openclaw/skills/github-actions/config.yaml
token: your-github-token
default-branch: main
auto-merge: false

การสร้างสกิลที่กำหนดเอง

ควรสร้างสกิลที่กำหนดเองเมื่อใด

สร้างสกิลที่กำหนดเองเมื่อคุณต้องการ:

โครงสร้างสกิล

สกิลพื้นฐานประกอบด้วย:

my-custom-skill/
├── SKILL.md          # คำจำกัดความสกิล (สำหรับสกิลภาษาธรรมชาติ)
├── config.yaml       # สคีมาการกำหนดค่า
└── icon.svg          # ไอคอนสกิล (ไม่บังคับ)

สำหรับสกิล TypeScript:

my-typescript-skill/
├── src/
│   └── index.ts      # โค้ดสกิลหลัก
├── package.json
├── tsconfig.json
├── config.schema.json
└── skill.yaml        # รายการสกิล (manifest)

การสร้างสกิล SKILL.md

โครงสร้าง SKILL.md พื้นฐาน

นี่คือไฟล์ SKILL.md ที่เรียบง่ายที่สุด:

---
name: weather-alert
description: Get weather alerts for your location
triggers:
  - "weather"
  - "weather alert"
  - "forecast"
requires:
  - location
actions:
  - name: get_weather
    api: https://api.weather.com/v3
    params:
      location: "{location}"
---

# สกิลแจ้งเตือนสภาพอากาศ

สกิลนี้จะแจ้งเตือนสภาพอากาศและพยากรณ์อากาศสำหรับตำแหน่งของคุณ

## การกำหนดค่า

กำหนดตำแหน่งของคุณในการตั้งค่าสกิล:
- city: ชื่อเมืองของคุณ
- units: ระบบเมตริกหรืออิมพีเรียล

ตัวอย่างเต็ม: สกิลสรุปอีเมล

---
name: daily-email-summary
description: Receive a daily summary of your important emails
triggers:
  - "email summary"
  - "daily emails"
  - "summarize my emails"
requires:
  - email_access
  - api_key
actions:
  - name: fetch_emails
    method: gmail.users.messages.list
    params:
      q: "is:unread"
      maxResults: 10
  - name: summarize
    model: gpt-4
    prompt: "Summarize these emails in bullet points"
---

# สกิลสรุปอีเมลรายวัน

ติดตามข้อมูลในกล่องจดหมายของคุณด้วยการสรุปรายวันอัตโนมัติ

## คุณสมบัติ

- ดึงอีเมลที่ยังไม่ได้อ่านจาก Gmail
- ใช้ AI เพื่อสรุปประเด็นสำคัญ
- ส่งสรุปไปยังช่องทางที่คุณต้องการ

## การตั้งค่า

1. กำหนดค่าการเข้าถึง Gmail API ในการตั้งค่า OpenClaw ของคุณ
2. กำหนดเวลาสรุปที่คุณต้องการ
3. เลือกช่องทางการส่งของคุณ (Telegram, Discord ฯลฯ)

## ตัวอย่างการใช้งาน

คุณ: สรุปอีเมลให้ฉันหน่อย
OpenClaw: นี่คือสรุปอีเมลที่ยังไม่ได้อ่าน 8 ฉบับของคุณ:


### เงื่อนไขการทำงานขั้นสูง

ใช้เงื่อนไขการทำงานที่ซับซ้อนยิ่งขึ้น:

```markdown
---
name: smart-reminder
triggers:
  # วลีที่ตรงกัน
  - "remind me to {action}"
  # รูปแบบ
  - "remind me in {duration}"
  # ตามบริบท
  context:
    - channel: work
      patterns: ["meeting", "deadline", "project"]
---

# สกิลแจ้งเตือนอัจฉริยะ

จัดการคำขอแจ้งเตือนทั้งหมดด้วยการวิเคราะห์อัจฉริยะ

การสร้างสกิล TypeScript

สำหรับการผสานรวมที่ซับซ้อนยิ่งขึ้น สกิล TypeScript ให้การควบคุมที่สมบูรณ์

การตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ

# สร้างโปรเจกต์สกิลใหม่
openclaw skills create my-awesome-skill

# ไปยังไดเรกทอรีสกิล
cd my-awesome-skill

# ติดตั้งการพึ่งพา
npm install

# เริ่มเซิร์ฟเวอร์สำหรับพัฒนา
npm run dev

โครงสร้างสกิล TypeScript

// src/index.ts
import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';

export default class MyAwesomeSkill implements Skill {
  name = 'my-awesome-skill';
  description = 'A skill that does something awesome';

  // ถูกเรียกเมื่อโหลดสกิล
  async onLoad(context: SkillContext): Promise<void> {
    console.log('Skill loaded!');
  }

  // ถูกเรียกเมื่อสกิลตรงกับเงื่อนไขการทำงาน
  async execute(context: SkillContext): Promise<SkillResult> {
    const { userMessage, config } = context;

    // โค้ดตรรกะของสกิลของคุณจะอยู่ที่นี่
    const result = await this.doSomethingAwesome(userMessage.content);

    return {
      message: result,
      actions: []
    };
  }

  private async doSomethingAwesome(input: string): Promise<string> {
    // ใช้ตรรกะสกิลของคุณ
    return `You said: ${input}`;
  }
}

รายการสกิล (skill.yaml)

name: my-awesome-skill
version: 1.0.0
description: A skill that does something awesome
author:
  name: Your Name
  email: you@example.com

triggers:
  - pattern: "do something awesome"
    type: exact

config:
  apiKey:
    type: string
    required: true
    description: API key for the service

permissions:
  - network
  - filesystem

runtime: nodejs18

สคีมาการกำหนดค่า (config.schema.json)

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "API key for the service"
    },
    "enabled": {
      "type": "boolean",
      "default": true
    }
  },
  "required": ["apiKey"]
}

การสร้างและทดสอบ

# สร้างสกิล
npm run build

# รันการทดสอบ
npm test

# บรรจุเพื่อเผยแพร่
npm run package

ตัวอย่าง: สกิลการผสานรวมกับ GitHub

นี่คือตัวอย่างที่สมบูรณ์ยิ่งขึ้นที่แสดงการผสานรวม API:

import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';
import axios from 'axios';

export default class GitHubSkill implements Skill {
  name = 'github';
  description = 'Interact with GitHub repositories';

  async execute(context: SkillContext): Promise<SkillResult> {
    const { userMessage, config } = context;
    const message = userMessage.content.toLowerCase();

    if (message.includes('list repos')) {
      return this.listRepositories(config);
    } else if (message.includes('create issue')) {
      return this.createIssue(context);
    }

    return {
      message: 'I can help with listing repos, creating issues, and more.',
      actions: []
    };
  }

  private async listRepositories(config: any): Promise<SkillResult> {
    const response = await axios.get('https://api.github.com/user/repos', {
      headers: {
        Authorization: `token ${config.githubToken}`
      }
    });

    const repos = response.data.slice(0, 5).map((r: any) => r.name).join('\n');

    return {
      message: `Your recent repositories:\n${repos}`,
      actions: []
    };
  }

  private async createIssue(context: SkillContext): Promise<SkillResult> {
    // Extract issue details from user message
    return {
      message: 'I need more details to create an issue. Please specify the repository, title, and description.',
      actions: [
        {
          type: 'request_input',
          fields: ['repo', 'title', 'description']
        }
      ]
    };
  }
}

การเผยแพร่สกิลไปยัง ClawHub

การเตรียมสกิลของคุณสำหรับการเผยแพร่

  1. ทดสอบอย่างละเอียด: ตรวจสอบให้แน่ใจว่าสกิลของคุณทำงานได้ในสถานการณ์ต่างๆ
  2. เพิ่มเอกสารประกอบ: SKILL.md ที่ชัดเจนพร้อมตัวอย่าง
  3. ตั้งค่าสิทธิ์ที่เหมาะสม: ขอสิทธิ์การเข้าถึงที่จำเป็นเท่านั้น
  4. เพิ่มไอคอน: สร้างไอคอน SVG แบบเรียบง่าย
  5. การจัดการเวอร์ชัน: ใช้ Semantic Versioning (1.0.0, 1.1.0 ฯลฯ)

กระบวนการเผยแพร่

# เข้าสู่ระบบ ClawHub
openclaw skills login

# ตรวจสอบความพร้อมของสกิลของคุณ
openclaw skills validate

# เผยแพร่สกิลของคุณ
openclaw skills publish

ข้อกำหนดในการเผยแพร่

การจัดการเวอร์ชัน

# เพิ่มเวอร์ชัน
openclaw skills version patch  # 1.0.0 -> 1.0.1
openclaw skills version minor  # 1.0.0 -> 1.1.0
openclaw skills version major  # 1.0.0 -> 2.0.0

# เผยแพร่เวอร์ชันใหม่
openclaw skills publish

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

การติดตั้งสกิลจากบุคคลที่สาม

ข้อควรระวังด้านความปลอดภัยที่สำคัญ: เหตุการณ์ ClawHavoc ในช่วงต้นปี 2026 ได้เปิดเผยสกิลที่เป็นอันตรายบน ClawHub ควรปฏิบัติตามข้อควรระวังเหล่านี้เสมอ:

  1. ตรวจสอบผู้เผยแพร่: ติดตั้งสกิลจากผู้เผยแพร่ที่เชื่อถือได้และได้รับการยืนยันเท่านั้น
  2. ตรวจสอบสิทธิ์: ตรวจสอบว่าสกิลนั้นร้องขอสิทธิ์อะไรบ้าง
  3. ตรวจสอบโค้ด: สำหรับสกิล TypeScript ให้ตรวจสอบซอร์สโค้ด
  4. เริ่มแบบแยกส่วน: ทดสอบสกิลในสภาพแวดล้อมที่แยกต่างหากก่อน
# ตรวจสอบสิทธิ์ของสกิลก่อนติดตั้ง
openclaw skills inspect github-actions

การสร้างสกิลที่ปลอดภัย

เมื่อสร้างสกิลของคุณเอง:

# ระบุสิทธิ์ที่จำเป็นขั้นต่ำเสมอ
permissions:
  - network  # เฉพาะเมื่อจำเป็นเท่านั้น
  - filesystem  # เฉพาะเมื่อจำเป็นเท่านั้น

# อย่าฮาร์ดโค้ดข้อมูลลับ
# ไม่ดี:
const apiKey = "sk-1234567890";

# ดี:
const apiKey = process.env.API_KEY;

การกำหนดค่าความปลอดภัยที่แนะนำ

# ~/.openclaw/security.yaml
skill_security:
  require_virustotal: true
  require_verified_publisher: false  # ตั้งค่าเป็น true สำหรับการใช้งานจริง
  audit_permissions: true
  sandbox_mode: true

การพัฒนาสกิลขั้นสูง

การพึ่งพากันของสกิล

สกิลสามารถพึ่งพาสกิลอื่นได้:

# skill.yaml
dependencies:
  - name: github
    version: ">=1.0.0"
  - name: slack
    version: ">=2.0.0"

สกิลที่ขับเคลื่อนด้วยเหตุการณ์

ตอบสนองต่อเหตุการณ์ของ OpenClaw:

export default class EventSkill implements Skill {
  async onMessage(context: SkillContext): Promise<SkillResult> {
    // ถูกเรียกเมื่อมีทุกข้อความ
  }

  async onTimer(context: SkillContext): Promise<SkillResult> {
    // ถูกเรียกตามกำหนดเวลา
  }

  async onStartup(context: SkillContext): Promise<void> {
    // ถูกเรียกเมื่อ OpenClaw เริ่มต้นทำงาน
  }

  async onShutdown(context: SkillContext): Promise<void> {
    // ถูกเรียกเมื่อ OpenClaw หยุดทำงาน
  }
}

การใช้ MCP กับสกิล

รวมสกิลเข้ากับเซิร์ฟเวอร์ MCP:

# skill.yaml
mcpServers:
  - name: filesystem
    command: npx @modelcontextprotocol/server-filesystem ./data
  - name: github
    command: npx @modelcontextprotocol/server-github

การแก้ไขปัญหา

สกิลไม่โหลด

# ตรวจสอบสถานะสกิล
openclaw skills status my-skill

# ดูบันทึกสกิล
openclaw logs --skill my-skill

สาเหตุทั่วไป:

เงื่อนไขการทำงานไม่ตรงกัน

# ทดสอบการจับคู่เงื่อนไขการทำงาน
openclaw skills test-trigger "your trigger phrase"

ปัญหาด้านประสิทธิภาพ

# ตรวจสอบการใช้ทรัพยากรของสกิล
openclaw skills monitor

# ปิดใช้งานสกิลที่ใช้ทรัพยากรมากชั่วคราว
openclaw skills disable heavy-skill

บทสรุป

ระบบสกิลของ OpenClaw เปลี่ยนจากผู้ช่วย AI ธรรมดาให้กลายเป็นแพลตฟอร์มที่ทรงพลังและยืดหยุ่น ไม่ว่าคุณจะติดตั้งสกิลที่สร้างโดยชุมชนจาก ClawHub หรือสร้างโซลูชันที่กำหนดเอง ความเป็นไปได้นั้นแทบจะไร้ขีดจำกัด

ระบบนิเวศของ OpenClaw เติบโตแข็งแกร่งขึ้นด้วยสกิลใหม่ๆ แต่ละรายการ เริ่มต้นสร้างสรรค์ได้แล้ววันนี้!

💡
พร้อมที่จะสร้างแอปพลิเคชัน AI ระดับมืออาชีพแล้วหรือยัง? ดาวน์โหลด Apidog ฟรีเพื่อทดสอบและจัดการการผสานรวมบริการ AI ของคุณด้วยอินเทอร์เฟซแบบกราฟิกที่ออกแบบมาสำหรับนักพัฒนา
button
ภาพประกอบข้อกำหนดการออกแบบ Apidog

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API