Skip to content

ติดตั้ง Core Skill Pack

เอเจนต์ของคุณทำงานแล้ว มาให้งานจริงครั้งแรกกับพวกเขากันเลย BALIA OS มาพร้อมกับสามสกิลในตัวที่พร้อมใช้งานทันที

Skillหน้าที่
lightpandaค้นหาเว็บและดึงข้อมูลอย่างรวดเร็ว
summarizeสรุปข้อความยาวหรือหน้าเว็บโดยอัตโนมัติ
clawsecตรวจสอบความปลอดภัยและกักกันสกิลใหม่

ใน Section 4 คุณใช้สคริปต์เดิมนี้เพื่อติดตั้ง Security Guardian นี่คือการรันครั้งที่สอง — เพื่อติดตั้ง core skill pack (lightpanda / summarize / clawsec) (ถ้าคุณยังไม่ได้ดาวน์โหลด ให้กลับไปที่ Section 4 และดาวน์โหลด install_core_pack.py ก่อน)

ให้เอเจนต์รันตัวติดตั้ง

วางนี้ในเทอร์มินัล VS Code แล้วกด Enter เพื่อรัน

Token คืออะไร?

คือสตริงหลัง ?token= ในลิงก์เข้าถึงที่ส่งมาให้คุณหลังการซื้อ

ตัวอย่าง: https://guide.baliaos.com/?token=BALIA-XXXX-XXXX-0001 ในกรณีนี้ token คือ BALIA-XXXX-XXXX-0001

หากหาอีเมลไม่พบ กรุณาติดต่อฝ่ายสนับสนุน

openclaw agent --agent security-guardian "กรุณารันคำสั่งต่อไปนี้:
python install_core_pack.py --lang th
(token จะถูกอ่านโดยอัตโนมัติจากไฟล์ .env ของคุณ)
รายงานไปยัง Discord เมื่อเสร็จสิ้น"

เอเจนต์จะดำเนินการโดยอัตโนมัติ:

  1. ยืนยันตัวตนด้วยโทเค็นของคุณ
  2. ดาวน์โหลด core skill pack (lightpanda / summarize / clawsec)
  3. ติดตั้งไปที่ ~/.opengoat/skills/
  4. อัปเดต _SKILL_INDEX.md
  5. รายงาน "ติดตั้ง Core Skill Pack สำเร็จ" ไปยัง Discord

เมื่อได้รับการยืนยันจาก Discord แล้ว ไปอ่านด้านล่างต่อได้เลย


Skills และ Cassettes คืออะไร

ตอนนี้ agents ของคุณทำงานอยู่แล้ว มีตัวตน มีขั้นตอนการรายงาน และมีช่อง Discord เป็นของตัวเอง แต่ในตอนนี้พวกเขายังไม่รู้ว่ากำลังทำงานอยู่ในโดเมนไหน ไม่รู้ว่าตัวเองกำลังบริหารร้านอาหาร ดูแลการเทรด หรือสนับสนุนงานด้านกฎหมาย

Skills คือไฟล์ความรู้ที่คุณเขียนขึ้นและมอบให้ agents แต่ละ skill สอนให้ agent รู้วิธีทำงานเฉพาะอย่าง เช่น การจัดการการจอง การสร้างรายงาน P&L หรือการเขียนโพสต์ SNS ยิ่งคุณให้ skill มากเท่าไหร่ agent ก็ยิ่งทำสิ่งต่าง ๆ ได้มากขึ้นเท่านั้น

cassette คือโฟลเดอร์ของ skills ที่รวมเข้าด้วยกันภายใต้ธีมเดียวกัน ผู้ประกอบการร้านอาหารอาจมี cassette ชื่อ restaurant-ops นักสร้างคอนเทนต์อาจมี cassette ชื่อ youtube และ cassette ชื่อ social-media agent คนเดียวกันสามารถใช้ cassette ที่แตกต่างกันได้ ขึ้นอยู่กับว่าวันนั้นต้องทำงานอะไร

cassette ทุกตัวเป็น ON โดยค่าเริ่มต้น ไฟล์เดียว — memory/_SKILL_STATUS.md — แสดงรายการ cassette ทั้งหมดพร้อมสถานะ ON/OFF ไม่มี "โหมดปัจจุบัน" ให้ต้องสลับ — cassette ทั้งหมดของคุณพร้อมใช้งานพร้อมกันเสมอ และ agent จะเลือกใช้ cassette ที่ตรงกับงานที่คุณสั่งให้เองโดยอัตโนมัติ (จาก SKILL.md ของแต่ละ cassette ที่อธิบายว่ามันมีไว้ทำอะไร) คุณจะปิด cassette เป็น OFF เฉพาะในกรณีหายากที่ต้องการหยุดมันชั่วคราว — เช่น เมื่อ cassette สองตัวขัดแย้งกัน (ดู "หาก Cassette สองตัวขัดแย้งกัน" ด้านล่าง)

หมายความว่า:

  • marketing-outreach และ ai-meeting-daily สามารถเป็น ON และทำงานพร้อมกันได้ทั้งคู่
  • การปิด cassette หนึ่งตัวเป็น OFF ไม่กระทบตัวอื่น
  • การตั้งค่า agent ไม่เคยเปลี่ยน — เปลี่ยนแค่ STATUS ของ cassette เท่านั้น

โครงสร้างโฟลเดอร์ของ Cassette

$env:USERPROFILE\.opengoat\
├── memory\
│   └── _SKILL_STATUS.md              ← รายการ ON/OFF ของ cassette ทั้งหมด
└── skills\
    ├── youtube\
    │   ├── SKILL.md                  ← cassette นี้ทำอะไร, เครื่องมือ, กฎ
    │   └── WORKFLOW.md                ← ขั้นตอนการทำงานแบบทีละขั้น
    ├── restaurant-ops\
    │   ├── SKILL.md
    │   └── WORKFLOW.md
    └── trade\
        ├── SKILL.md
        └── WORKFLOW.md

_SKILL_STATUS.md แสดงรายการ cassette ทั้งหมดพร้อม STATUS flag ตัวอย่างเช่น:

| Cassette Name    | STATUS | Description                  |
|------------------|--------|-------------------------------|
| youtube          | ON     | YouTube content pipeline      |
| trade            | ON     | Market analysis and reporting |

เมื่อคุณสั่งงานให้ agent มันจะจับคู่สิ่งที่คุณขอกับ SKILL.md ของทุก cassette ที่เป็น ON แล้วเลือกใช้ตัวที่เหมาะสมที่สุด — คุณสามารถระบุชื่อ cassette ตรง ๆ ได้เช่นกัน ("Work in trade mode: ...") เพื่อความชัดเจน ถ้า cassette ตัวใดเป็น OFF agent จะข้าม cassette นั้นไปโดยสิ้นเชิง แม้ว่างานนั้นจะตรงกับมันก็ตาม

งานตามตารางเวลา (เช่น การตรวจสุขภาพประจำวันหรือรายงานตอนกลางคืน) จะทำงานโดยไม่คำนึงว่า cassette ใดเป็น ON หรือ OFF — งานเหล่านี้ถูกกำหนดไว้ใน AGENTS.md ของ agent ไม่ใช่ใน cassette ใด ๆ


การเลือก AI Engine ที่เหมาะสม

cassette แต่ละประเภทเหมาะกับ AI model ที่แตกต่างกัน ตั้งค่านี้ครั้งเดียวตอนที่สร้าง cassette

ประเภท CassetteEngine ที่แนะนำเหตุผล
เทรด Crypto / วิเคราะห์ตลาดClaudeการใช้เหตุผลเชิงตรรกะ, การวิเคราะห์รูปแบบ, การตัดสินใจที่ละเอียดอ่อน
เขียนโค้ด / ระบบอัตโนมัติด้านเทคนิคClaudeคุณภาพโค้ด, การ debug, ตรรกะหลายขั้นตอน
วิจัยกฎหมาย / ตรวจสอบสัญญาClaudeการใช้เหตุผลอย่างรอบคอบ, ภาษาที่ละเอียดอ่อน
การเงิน / บัญชี / รายงานClaudeการวิเคราะห์เชิงโครงสร้าง, การคำนวณที่แม่นยำ
Google Sheets / Docs / NotebookLM / DriveGeminiการผสานการทำงานกับบริการ Google โดยตรง
YouTube / คอนเทนต์วิดีโอGeminiวิเคราะห์วิดีโอได้โดยตรง, ผสานกับ YouTube Studio
ระบบอัตโนมัติ Gmail / CalendarGeminiผสานลึกกับ Google Workspace
การขาย / การติดต่อ / การเขียน CopywritingGPT-4oการสนทนาที่เป็นธรรมชาติ, การสร้างอีเมล
การสื่อสารหลายภาษาGPT-4o หรือ Geminiประสิทธิภาพหลายภาษาที่แข็งแกร่ง
E-commerce / วิจัยสินค้าClaude หรือ GPT-4oความลึกในการวิจัย, ผลลัพธ์แบบโครงสร้าง

ถ้า Claude เหมาะกับกรณีการใช้งานของคุณ คุณพร้อมแล้ว — มันถูกตั้งค่าไว้แล้วในส่วนที่ 3

สำหรับ Gemini หรือ GPT-4o คุณจะต้องเพิ่ม API key ลงในไฟล์ .env คำแนะนำอยู่ใน Step 7 ของ AI concierge ด้านล่าง


ไอเดีย Skill แยกตามอุตสาหกรรม

ยังไม่แน่ใจว่าจะสร้าง skill อะไร? นี่คือจุดเริ่มต้นแยกตามกรณีการใช้งาน

ร้านอาหาร / อาหารและเครื่องดื่ม

  • การจัดการการจองและตารางรายวัน
  • การติดตามคำสั่งซื้อจากซัพพลายเออร์และการแจ้งเตือนสินค้าคงคลัง
  • การโพสต์ SNS ของลูกค้า (เมนูพิเศษประจำวัน, กิจกรรม)
  • การติดตามรีวิวและการร่างคำตอบ
  • สรุปรายได้รายสัปดาห์

E-Commerce / สินค้าจริง

  • การสร้างรายการสินค้า
  • การติดตามราคาของคู่แข่ง
  • การสรุปสถานะออร์เดอร์
  • การร่างคำตอบสำหรับคำถามของลูกค้า
  • รายงานยอดขายรายเดือน

นักสร้างคอนเทนต์ / YouTuber

  • การสร้างไอเดียชื่อและ thumbnail
  • การร่างโครงร่างสคริปต์
  • การจัดการตารางอัปโหลด
  • การสรุปตัวชี้วัดประสิทธิภาพ
  • การร่างคำตอบสำหรับ comment ในชุมชน

ฟรีแลนซ์ / ที่ปรึกษา

  • การร่างการสื่อสารกับลูกค้า
  • รายงานสถานะโครงการ
  • การติดตามใบแจ้งหนี้และการติดตามผล
  • การตรวจสอบข้อกำหนดในสัญญา (ทำเครื่องหมายข้อที่ผิดปกติ)
  • การสรุปบันทึกเวลา

ธุรกิจขนาดเล็ก / ทั่วไป

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

อุตสาหกรรมของคุณไม่อยู่ในรายการนี้? ไม่เป็นไร — AI concierge ในส่วนนี้จะช่วยให้คุณกำหนด skills ของคุณเองตั้งแต่ต้น ตามสิ่งที่คุณต้องการให้ทีมทำจริง ๆ


ส่วนนี้ทำงานอย่างไร

แนะนำ: ใช้ prompt ของ AI concierge ด้านล่าง — มันจะสร้างไฟล์ cassette ทั้งหมดของคุณ และสร้างสคริปต์ Python สำหรับการตั้งค่าที่สร้างทุกอย่างโดยอัตโนมัติ หลังจากการสนทนากับ AI ให้ไปที่ Step 2 — รันสคริปต์การตั้งค่า และรันมัน ไม่ต้องสร้างไฟล์ด้วยตนเอง

ถ้าสคริปต์การตั้งค่าล้มเหลว: AI concierge ยังแสดงเนื้อหาเต็มของแต่ละไฟล์ด้วย คุณสามารถสร้างไฟล์ด้วยตนเองใน VS Code เป็นทางเลือกสำรอง

ใช้ prompt ของ AI concierge ด้านล่างเพื่อ:

  1. กำหนดสิ่งที่ agents ของคุณควรทำทุกวัน
  2. ตัดสินใจว่าจะเริ่มต้นด้วยชื่อ cassette และโหมดไหน
  3. เลือก AI engine ที่เหมาะสม
  4. สร้างไฟล์ SKILL และ WORKFLOW ของคุณ
  5. ตั้งค่า flag ใน _SKILL_STATUS.md
  6. ทดสอบว่า agent ของคุณโหลดโหมดที่ถูกต้อง

วาง prompt ลงในแชท AI ของคุณ แนบ Team Design Document จากส่วนที่ 2 ของคุณด้วย


▶ วางสิ่งนี้ลงใน AI ของคุณเพื่อเริ่มต้น

แนบ Team Design Document ก่อนส่ง

คุณกำลังช่วยฉันสร้าง Skills และ Cassette สำหรับ BALIA OS —
ระบบปฏิบัติการ AI แบบหลายเอเจนต์

ฉันได้แนบ Team Design Document ไว้แล้ว กรุณาอ่านก่อนเริ่มต้น
เพื่อทราบชื่อเอเจนต์ บทบาท และโครงสร้าง workspace ของฉัน

แนวคิดที่ต้องเข้าใจก่อนเริ่มต้น:

Skills คือไฟล์ความรู้ที่ฉันเขียนและมอบให้ agents ของฉัน
แต่ละ skill สอนให้ agent รู้วิธีทำงานเฉพาะอย่าง

Cassette คือโฟลเดอร์ของ skills ที่รวมเข้าด้วยกันภายใต้ธีมเดียวกัน (โหมดหนึ่ง)
cassette ทุกตัวเป็น ON โดยค่าเริ่มต้นและทำงานพร้อมกันได้ —
agents ของฉันจะเลือกใช้ cassette ที่ตรงกับงานที่ฉันสั่งเอง

ไฟล์เดียว — memory/_SKILL_STATUS.md — แสดงรายการ cassette ทั้งหมด
พร้อมสถานะ ON/OFF มันคือแหล่งข้อมูลเดียวที่บอกว่า cassette ใดพร้อมใช้งาน
มันไม่ใช่ "โหมดปัจจุบัน" — สามารถมีหลายแถวเป็น ON พร้อมกันได้

โครงสร้างโฟลเดอร์:
$env:USERPROFILE/.opengoat/
  memory/
    _SKILL_STATUS.md            ← รายการ ON/OFF หนึ่งแถวต่อ cassette
  skills/
    [ชื่อ-cassette]/
      SKILL.md                  ← cassette นี้ทำอะไร, เครื่องมือ, กฎ
      WORKFLOW.md                ← ขั้นตอนการทำงานแบบทีละขั้นของ cassette นี้

เมื่อฉันสั่งงานให้ agent:
1. agent ตรวจสอบว่า cassette ใดเป็น ON ใน memory/_SKILL_STATUS.md
2. มันจับคู่คำสั่งของฉันกับ SKILL.md ของแต่ละ cassette ที่เป็น ON
   (หรือฉันสามารถระบุชื่อ cassette ตรง ๆ ได้ เช่น "Work in trade mode: ...")
3. มันใช้ SKILL.md และ WORKFLOW.md ของ cassette ที่ตรงกัน

งานตามตารางเวลาจะทำงานโดยไม่คำนึงว่า cassette ใดเป็น ON — งานเหล่านี้อยู่ใน AGENTS.md

กรุณาแนะนำฉันทีละขั้นตอน ถามคำถามเดียวในแต่ละครั้ง
รอคำตอบของฉันก่อนดำเนินการต่อ

STEP 1 — สิ่งที่ฉันต้องการให้ทีมทำ
ถามฉันว่า: "อธิบายสิ่งที่คุณต้องการให้ทีม AI ของคุณทำทุกวัน
ไม่ต้องคิดเรื่องวิธีการทำ — แค่บอกผลลัพธ์ที่คุณต้องการเห็น
และงานที่คุณต้องการให้ทำ"

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

STEP 2 — จับคู่งานกับ agent
อ่าน Team Design Document ของฉัน
จับคู่แต่ละงานกับ agent ที่เหมาะสมที่สุดตามบทบาทของพวกเขา
แสดงการจับคู่ให้ฉันดู: "งาน → Agent"
ถามว่า: "รู้สึกว่าถูกต้องไหม? มีอะไรที่คุณอยากย้ายไหม?"

STEP 3 — ตั้งชื่อ cassette (โหมด)
จากงานเหล่านี้ เสนอชื่อ cassette — ชื่อโหมด
(สั้น ตัวพิมพ์เล็ก คั่นด้วยยัติภังค์ เช่น restaurant-ops, youtube, trade)
ชื่อนี้จะกลายเป็นชื่อโฟลเดอร์และแถวใหม่ใน memory/_SKILL_STATUS.md
ขอให้ฉันยืนยันหรือเสนอชื่ออื่น

STEP 4 — เลือก AI engine
สำหรับแต่ละ agent ที่มีงานจับคู่ไว้ แนะนำ engine ที่ดีที่สุด:

- Claude: ตรรกะ, การวิเคราะห์, การเขียนโค้ด, กฎหมาย, การเงิน, คริปโต
- Gemini: บริการ Google (Sheets, Docs, Drive, Gmail, Calendar,
  YouTube Studio, NotebookLM) — อะไรก็ตามในระบบนิเวศ Google
- GPT-4o: อีเมลขาย, การติดต่อลูกค้า, การเขียนคัดลอก, การสนทนาตามธรรมชาติ

อธิบายเหตุผลของคุณในหนึ่งประโยคต่อ agent หนึ่งคน
ถ้าทุกงานเหมาะกับ Claude ให้ยืนยันว่าไม่ต้องการ API key เพิ่มเติม
ถ้าต้องการ Gemini หรือ GPT-4o ให้แจ้งไว้ — เราจะจัดการ key ใน Step 7

ขอให้ฉันยืนยันก่อนดำเนินการต่อ

STEP 5 — สร้าง SKILL.md
สร้างไฟล์ skill ด้วยโครงสร้างนี้:

---
# SKILL.md — [ชื่อ-cassette]
Version: 1.0
Last Updated: [วันที่วันนี้]
Primary Agent: [ชื่อ agent]
AI Engine: [engine]

## What This Cassette Does
[2-3 ประโยค: โดเมนนี้ครอบคลุมอะไร ผลิตผลลัพธ์อะไร]

## When To Use This Cassette
[1-2 ประโยคอธิบายประเภทของคำสั่งที่ควรกระตุ้น
cassette นี้ — นี่คือสิ่งที่ agent ใช้จับคู่กับคำขอของคุณ]

## Skills in This Cassette
[รายการ skill ที่เป็นรูปธรรม — สิ่งที่ agent รู้วิธีทำ]

## Tools Available
[รายการเครื่องมือที่ใช้ได้ใน cassette นี้: การค้นหาเว็บ, อ่าน/เขียนไฟล์,
การรายงาน Discord, การเรียก API, บริการ Google ฯลฯ]

## Operating Rules
1. ก่อนเริ่มทำงาน ตรวจสอบว่าแถวของ cassette นี้ใน memory/_SKILL_STATUS.md
   ถูกตั้งเป็น ON ถ้าเป็น OFF ให้ข้ามทั้งหมด — ไม่ต้องรายงาน Discord
2. [กฎสำคัญเฉพาะสำหรับโดเมนนี้]
3. [กฎสำคัญเฉพาะสำหรับโดเมนนี้]
4. รายงานงานทั้งหมดที่เสร็จสิ้นไปที่ Discord ก่อนจบเซสชัน
5. ห้ามดำเนินการนอกขอบเขตของ cassette นี้โดยไม่ได้รับอนุมัติจากผู้บังคับบัญชา
6. บันทึกผลลัพธ์ทั้งหมดไว้ที่ skills/[ชื่อ-cassette]/outputs/

## What This Cassette Does NOT Handle
[ขอบเขตที่ชัดเจน — อะไรที่อยู่นอกขอบเขตของ cassette นี้]

## Output Format
[สิ่งที่ agent ผลิต: รายงาน, ไฟล์, ข้อความ Discord ฯลฯ]
---

แสดงให้ครบถ้วน ถามว่ามีอะไรต้องปรับปรุงไหม

STEP 6 — สร้าง WORKFLOW.md
สร้างไฟล์ workflow ด้วยโครงสร้างนี้:

---
# WORKFLOW.md — [ชื่อ-cassette]
Version: 1.0
Last Updated: [วันที่วันนี้]

## Before Starting
1. ตรวจสอบว่าแถวของ cassette นี้ใน memory/_SKILL_STATUS.md เป็น ON
2. โหลด SKILL.md จากโฟลเดอร์เดียวกันนี้

## Task Procedures

### [ชื่องาน 1] — [ตารางเวลา]
Trigger: [สิ่งที่เริ่มงานนี้]
Steps:
1. [การดำเนินการที่เป็นรูปธรรม]
2. [การดำเนินการที่เป็นรูปธรรม]
3. [การดำเนินการที่เป็นรูปธรรม]
Output: [สิ่งที่ผลิตออกมา]
Save to: skills/[ชื่อ-cassette]/outputs/
On error: [สิ่งที่ต้องทำถ้าเกิดข้อผิดพลาด]

### [ชื่องาน 2] — [ตารางเวลา]
[โครงสร้างเดียวกัน]

[ทำต่อสำหรับงานทั้งหมด]

## Session End (Every Session — Required)
ส่งรายงานสิ้นสุดเซสชันไปที่ Discord:
"✅ [ชื่อ-cassette] session complete.
Tasks completed: [รายการ]
Output: skills/[ชื่อ-cassette]/outputs/
Issues: [ข้อผิดพลาดใด ๆ]"

## Error Handling
ถ้าขั้นตอนใดล้มเหลว:
1. บันทึกข้อผิดพลาดที่แน่ชัด
2. ดำเนินงานที่เหลือต่อถ้าเป็นไปได้
3. รวมข้อผิดพลาดทั้งหมดไว้ในรายงาน Discord ตอนสิ้นสุดเซสชัน
4. ห้ามลองดำเนินการที่ทำลายซ้ำโดยไม่ได้รับอนุมัติจากผู้บังคับบัญชา

## Scheduled Tasks
งานเหล่านี้ทำงานตามตารางเวลาของตัวเอง โดยไม่คำนึงถึง cassette อื่น —
เป็นอิสระจากว่า cassette อื่นเป็น ON หรือ OFF
---

แสดงให้ครบถ้วน ถามว่ามีอะไรต้องปรับปรุงไหม

STEP 7 — ตั้งค่า API key (ถ้าจำเป็น)
ทำเฉพาะถ้า Gemini หรือ GPT-4o ได้รับการแนะนำใน Step 4:

สำหรับ GEMINI:
"Gemini เหมาะสมที่สุดสำหรับการผสานรวมบริการ Google
วิธีรับ API key ของคุณ:"
1. ไปที่ https://console.cloud.google.com/
2. เข้าสู่ระบบด้วยบัญชี Google ของคุณ
3. หากมีข้อความแจ้ง คุณอาจได้รับสิทธิ์เครดิตฟรี $300 —
   คลิก "Try for free" ถ้ามีตัวเลือกนี้
4. ในแถบค้นหาด้านบน พิมพ์ "Gemini API" แล้วเลือก
5. คลิก "Enable" ถ้ายังไม่ได้เปิดใช้งาน
6. ไปที่ "Credentials" ในเมนูซ้าย → "Create Credentials"
   → "API key"
7. คัดลอก key
8. เพิ่มไปที่ไฟล์ .env:
   GOOGLE_API_KEY=your-key-here
ยืนยัน: "เพิ่ม Gemini API key แล้ว"

สำหรับ GPT-4o (OpenAI):
1. ไปที่ platform.openai.com
2. เข้าสู่ระบบหรือสร้างบัญชี
3. คลิกโปรไฟล์ของคุณ → "API keys" → "Create new secret key"
4. ตั้งชื่อว่า "balia-os"
5. คัดลอก key (เริ่มต้นด้วย sk-)
6. เพิ่มไปที่ไฟล์ .env:
   OPENAI_API_KEY=your-key-here
ยืนยัน: "เพิ่ม OpenAI API key แล้ว"

ถ้าใช้ Claude เพียงอย่างเดียว: ข้ามขั้นตอนนี้ไปทั้งหมด

STEP 8 — สร้างโครงสร้างโฟลเดอร์ cassette
แนะนำให้ฉันสร้างโฟลเดอร์ในเทอร์มินัล VS Code:

Windows:
  cd $env:USERPROFILE\.opengoat\skills
  mkdir [ชื่อโหมด]
  mkdir [ชื่อโหมด]\outputs

Mac:
  mkdir -p ~/.opengoat/skills/[ชื่อโหมด]/outputs

จากนั้นแนะนำให้ฉันบันทึกไฟล์เหล่านี้ลงในโฟลเดอร์ cassette:
- SKILL.md
- WORKFLOW.md

จากนั้นแนะนำให้ฉันเพิ่ม cassette นี้ลงใน memory/_SKILL_STATUS.md:
"เปิด memory/_SKILL_STATUS.md ใน VS Code ถ้าไฟล์นี้ยังไม่มี
ให้สร้างขึ้นพร้อม header นี้:

# SKILL CASSETTE STATUS
# ON/OFF is managed in this file only.

| Cassette Name | STATUS | Description |
|---|---|---|

เพิ่มแถวใหม่: | [ชื่อโหมด] | ON | [คำอธิบายหนึ่งบรรทัด] |
บันทึก"

หลังจากกำหนดไฟล์ทั้งหมดแล้ว สร้างสคริปต์ Python สำหรับการตั้งค่า
ที่จะสร้างทุกอย่างโดยอัตโนมัติ สคริปต์ต้อง:
- ทำงานได้ทั้งบน Windows และ Mac (ใช้ os.path.expanduser สำหรับ ~)
- สร้างโฟลเดอร์ทั้งหมดด้วย os.makedirs(exist_ok=True)
- เขียน SKILL.md และ WORKFLOW.md ด้วยการเข้ารหัส UTF-8
- เพิ่ม (หรืออัปเดต) แถวของ cassette นี้ใน memory/_SKILL_STATUS.md
  พร้อมสร้างไฟล์ด้วย header ข้างต้นถ้ายังไม่มี
- แสดง ✅ [ชื่อไฟล์] สำหรับแต่ละไฟล์ที่สร้าง
- แสดง "Setup complete." ในตอนท้าย

สคริปต์นี้มีเส้นทางไฟล์และเนื้อหาทั้งหมดกรอกไว้เรียบร้อยแล้ว —
ผู้ใช้เพียงรันมันในเทอร์มินัล VS Code ด้วย:
  python setup_cassette.py

บอกฉัน: "คัดลอกสคริปต์นี้ บันทึกไว้ในชื่อ setup_cassette.py
ในโฟลเดอร์ .opengoat ของคุณ แล้วรันในเทอร์มินัล VS Code
คุณจะเห็น ✅ สำหรับแต่ละไฟล์ที่สร้าง"

STEP 9 — ทดสอบ cassette
แนะนำให้ฉันส่งคำสั่งทดสอบ โดยระบุชื่อ cassette ตรง ๆ:

openclaw agent --agent ceo "Work in [ชื่อโหมด] mode: กรุณาทำสิ่งต่อไปนี้:
1. ยืนยันว่า memory/_SKILL_STATUS.md แสดง [ชื่อโหมด] เป็น ON
2. โหลด SKILL.md และ WORKFLOW.md ของ cassette นี้
3. ยืนยันว่าคุณเข้าใจงานของคุณใน cassette นี้
4. โพสต์รายงานความพร้อมไปที่ช่อง Discord ของคุณ"

ถามฉันว่า: "agent ตอบว่าอย่างไร?
คุณเห็นรายงานความพร้อมใน Discord ไหม?"
ถ้าใช่: การติดตั้ง cassette ได้รับการยืนยันแล้ว
ถ้าไม่: ช่วยฉันแก้ไขปัญหา

FINAL OUTPUT
เมื่อยืนยันเรียบร้อยแล้ว แสดงสรุปนี้:

---
CASSETTE INSTALLED
Cassette name: [ชื่อโหมด]
Primary agent: [ชื่อ agent]
Files created:
  memory/_SKILL_STATUS.md ✅ (row added: [ชื่อโหมด] — ON)
  skills/[ชื่อโหมด]/SKILL.md ✅
  skills/[ชื่อโหมด]/WORKFLOW.md ✅
  skills/[ชื่อโหมด]/outputs/ ✅
AI Engine: [engine]
Additional API keys: [added / not needed]
Status: ON — agent confirmed readiness
---

พร้อมสำหรับ Section 7

เริ่มเลย ถามคำถามแรกกับฉัน

ขั้นตอนที่ 2 — รันสคริปต์การตั้งค่า

เมื่อ AI concierge สร้างไฟล์ cassette ของคุณเสร็จแล้ว มันจะสร้างสคริปต์ Python สำหรับการตั้งค่าพร้อมเส้นทางและเนื้อหาไฟล์ทั้งหมดที่กรอกไว้เรียบร้อยแล้ว

สิ่งที่ต้องทำ:

  1. คัดลอกสคริปต์ Python ที่ AI สร้างขึ้น
  2. เปิดเทอร์มินัล VS Code (Ctrl+`` บน Windows / Cmd+`` บน Mac)
  3. สร้างไฟล์ใหม่ชื่อ setup_cassette.py ในโฟลเดอร์ .opengoat ของคุณ
  4. วางสคริปต์และบันทึก
  5. รันมัน:
    python setup_cassette.py

คุณจะเห็น ✅ สำหรับแต่ละไฟล์ที่สร้าง แค่นั้นเลย — ไม่ต้องสร้างไฟล์ด้วยตนเอง ไม่ต้องสับสนเรื่อง path

สิ่งที่สคริปต์ทำโดยอัตโนมัติ:

  • สร้างโครงสร้างโฟลเดอร์ทั้งหมด
  • เขียน SKILL.md และ WORKFLOW.md พร้อมเนื้อหาที่ถูกต้อง
  • สร้างโฟลเดอร์ outputs/
  • เพิ่มแถวของ cassette นี้ลงใน memory/_SKILL_STATUS.md (STATUS: ON)

ถ้าคุณเห็น ❌ ในผลลัพธ์ ให้คัดลอกข้อผิดพลาดและขอให้ AI concierge ของคุณแก้ไข


การใช้งาน Cassette

cassette ทุกตัวเป็น ON โดยค่าเริ่มต้น — ไม่มีขั้นตอน "สลับโหมด" เพียงแค่บอก agent ตัวไหนก็ได้ว่าให้ใช้ cassette ไหน ที่จุดเริ่มต้นของคำสั่งของคุณ:

openclaw agent --agent ceo "Work in trade mode: give me today's summary."

agent จะจับคู่ "trade mode" กับ cassette ที่เป็น ON ใน memory/_SKILL_STATUS.md โหลด SKILL.md และ WORKFLOW.md ของ cassette นั้น แล้วนำมาใช้กับคำขอของคุณ คุณยังสามารถอธิบายงานโดยไม่ระบุชื่อ cassette ก็ได้ — agent จะจับคู่มันกับ SKILL.md ของแต่ละ cassette ที่เป็น ON โดยอัตโนมัติ

การหยุด cassette ชั่วคราว: เปิด memory/_SKILL_STATUS.md แล้วตั้ง STATUS ของ cassette นั้นเป็น OFF agent จะข้าม cassette นั้นไปจนกว่าคุณจะเปิดกลับเป็น ON


การเพิ่ม Cassette เพิ่มเติมในภายหลัง

เมื่อธุรกิจของคุณเติบโต ให้เพิ่มโฟลเดอร์ cassette เพิ่มเติม:

skills/
├── youtube/
├── trade/
├── restaurant-ops/
└── legal-research/      ← เพิ่มได้ทุกเมื่อ

สร้าง cassette ใหม่แต่ละอันด้วยวิธีเดียวกัน: สร้าง SKILL.md และ WORKFLOW.md ผ่าน AI concierge แล้วรันสคริปต์การตั้งค่า มันจะถูกเพิ่มลงใน memory/_SKILL_STATUS.md เป็น ON โดยอัตโนมัติ — ไม่ต้องสลับอะไร แค่บอก agent ให้ใช้มัน


BALIA Skill Market — เปิดตัว Q4 2026

เมื่อตลาดเปิด สองสิ่งจะพร้อมใช้งาน:

ซื้อ cassette — cassette ที่พัฒนาโดย BALIA (Crypto Trade, YouTube, E-Commerce, Polymarket BOT) และ cassette ที่ชุมชนสร้างขึ้น ผ่านการตรวจสอบและอนุมัติแล้ว ติดตั้งลงในโฟลเดอร์ cassette ของคุณได้เหมือนโหมดอื่น ๆ

ขาย cassette — ถ้าคุณสร้าง cassette ที่ใช้งานได้ดี ให้ส่งมัน ทุกการส่งจะผ่านการตรวจสอบความปลอดภัยและการตรวจสอบประสิทธิภาพ เมื่อได้รับการอนุมัติ มันจะถูกลิสต์ในตลาดและสร้างรายได้ให้คุณทุกครั้งที่มีคนติดตั้งมัน

รายละเอียดที่ @BALIA_OS บน X เมื่อตลาดเปิด


ระบบ Skill Cassette — การควบคุม ON/OFF

cassette ของคุณถูกจัดการด้วยไฟล์เดียว: memory/_SKILL_STATUS.md cassette ใหม่จะถูกเพิ่มเป็น ON โดยค่าเริ่มต้น

| Cassette Name       | STATUS | Description                        |
|---------------------|--------|------------------------------------|
| marketing-outreach  | ON     | SNS / email / YouTube outreach     |
| ai-meeting-sales    | ON     | Sales team AI meeting (Leo)        |
| ai-meeting-daily    | ON     | Daily operations meeting           |
| research-market     | ON     | Market research automation         |

วิธีหยุด cassette ชั่วคราว: เปลี่ยน ON เป็น OFF ในไฟล์นี้ แค่นั้นเลย

เมื่อ cassette เป็น ON:

  • agent ตัวใดก็ตามที่งานของมันตรงกับ cassette นี้จะโหลด cassette ขึ้นมา
  • ดำเนินงาน
  • รายงานไปที่ Discord: "✅ [cassette-name] executed successfully."

เมื่อ cassette เป็น OFF:

  • agent จะข้าม cassette นี้ไป แม้ว่างานนั้นจะตรงกับมันก็ตาม
  • ยังคงรายงานไปที่ Discord: "⏭️ [cassette-name] skipped — STATUS: OFF"

ทุกการดำเนินการจะถูกรายงาน ไม่ว่าจะทำงานหรือไม่ก็ตาม คุณจะรู้เสมอว่าเกิดอะไรขึ้น


หาก Cassette สองตัวขัดแย้งกัน

เนื่องจากทุก cassette เป็น ON โดยค่าเริ่มต้น จึงเป็นไปได้ที่สอง cassette จะทับซ้อนกัน — เช่น cassette สองตัวที่ต่างก็โพสต์ไปยังช่อง Discord เดียวกัน หรือทั้งสองพยายามใช้ agent เดียวกันสำหรับงานที่ขัดแย้งกันในเวลาเดียวกัน

ขณะนี้ยังไม่มีการตรวจจับความขัดแย้งโดยอัตโนมัติ ถ้าคุณสังเกตเห็นว่า cassette สองตัวเหยียบกันเอง ให้เปิด memory/_SKILL_STATUS.md แล้วตั้งค่าตัวใดตัวหนึ่งเป็น OFF ด้วยตัวเอง วิธีนี้จะแก้ไขความขัดแย้งได้ทันที — agent จะข้าม cassette ใดก็ตามที่ถูกตั้งเป็น OFF

การตรวจจับความขัดแย้งโดยอัตโนมัติโดย Security Guardian พร้อมข้อเสนอแนวทางแก้ไข มีแผนจะเพิ่มในอัปเดตครั้งต่อไป


การตั้งเวลา Cassette — การดำเนินการตามเวลาที่กำหนด

cassette บางตัวถูกออกแบบมาให้ทำงานตามเวลาที่กำหนด — การประชุมประจำวัน รายงานตอนเช้า สรุปรายสัปดาห์ ลงทะเบียนสิ่งเหล่านี้กับตัวจัดตารางเวลา (scheduler) ของระบบปฏิบัติการของคุณ

ตัวจัดตารางเวลาจะเรียกใช้ cassette agent จะตรวจสอบ _SKILL_STATUS.md ถ้าเป็น ON → ดำเนินการ + รายงาน Discord ถ้าเป็น OFF → ข้าม + รายงาน Discord

⚠️ สองกฎสำหรับ Cassette ที่ตั้งเวลาไว้

  • ระบุชื่อ cassette/โหมดในคำสั่งลงทะเบียนเองเสมอ — ตัวจัดตารางเวลาไม่มีทางอื่นที่จะรู้ว่าต้องรัน cassette ไหน ดังนั้น trigger action ต้องระบุมันไว้ชัดเจน (ดู [cassette-name] ในตัวอย่างด้านล่าง)
  • อย่าลงทะเบียน cassette ที่ตั้งเวลาไว้สองตัวในช่วงเวลาเดียวกัน การรันสองตัวพร้อมกันอาจทำให้แย่งกันใช้ agent เดียวกันหรือช่อง Discord เดียวกัน ให้เว้นระยะห่างกันอย่างน้อยสองสามนาที

Windows — Task Scheduler

  1. เปิด Task Scheduler → Create Basic Task
  2. ชื่อ: BALIA_[CassetteName]
  3. Trigger: Daily → ตั้งเวลาของคุณ (เช่น 21:00)
  4. Action: Start a program
    • Program: openclaw
    • Arguments: agent --agent [agentid] "Work in [cassette-name] mode: run today's scheduled task."
    • Start in: C:\Users\%USERNAME%\.opengoat
  5. Finish

วิธีหยุด cassette ที่ตั้งเวลาไว้ชั่วคราวโดยไม่ต้องแตะตัวจัดตารางเวลา: → ตั้ง STATUS เป็น OFF ใน _SKILL_STATUS.md ตัวจัดตารางเวลายังคงทำงานอยู่ agent จะตรวจสอบ STATUS ข้ามไป และรายงาน ไม่ต้องเปลี่ยนอะไรในตัวจัดตารางเวลาเลย


Mac — launchd

สร้าง ~/Library/LaunchAgents/com.balia.[cassette-name].plist:

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.balia.[cassette-name]</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/openclaw</string>
    <string>agent</string>
    <string>--agent</string>
    <string>[agentid]</string>
    <string>Work in [cassette-name] mode: run today's scheduled task.</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>21</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
</dict>
</plist>

โหลดมัน:

launchctl load ~/Library/LaunchAgents/com.balia.[cassette-name].plist

วิธีหยุดชั่วคราว: ตั้ง STATUS เป็น OFF ใน _SKILL_STATUS.md พฤติกรรมเหมือนกับ Windows