ติดตั้ง 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 เมื่อเสร็จสิ้น"เอเจนต์จะดำเนินการโดยอัตโนมัติ:
- ยืนยันตัวตนด้วยโทเค็นของคุณ
- ดาวน์โหลด core skill pack (lightpanda / summarize / clawsec)
- ติดตั้งไปที่ ~/.opengoat/skills/
- อัปเดต _SKILL_INDEX.md
- รายงาน "ติดตั้ง 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
| ประเภท Cassette | Engine ที่แนะนำ | เหตุผล |
|---|---|---|
| เทรด Crypto / วิเคราะห์ตลาด | Claude | การใช้เหตุผลเชิงตรรกะ, การวิเคราะห์รูปแบบ, การตัดสินใจที่ละเอียดอ่อน |
| เขียนโค้ด / ระบบอัตโนมัติด้านเทคนิค | Claude | คุณภาพโค้ด, การ debug, ตรรกะหลายขั้นตอน |
| วิจัยกฎหมาย / ตรวจสอบสัญญา | Claude | การใช้เหตุผลอย่างรอบคอบ, ภาษาที่ละเอียดอ่อน |
| การเงิน / บัญชี / รายงาน | Claude | การวิเคราะห์เชิงโครงสร้าง, การคำนวณที่แม่นยำ |
| Google Sheets / Docs / NotebookLM / Drive | Gemini | การผสานการทำงานกับบริการ Google โดยตรง |
| YouTube / คอนเทนต์วิดีโอ | Gemini | วิเคราะห์วิดีโอได้โดยตรง, ผสานกับ YouTube Studio |
| ระบบอัตโนมัติ Gmail / Calendar | Gemini | ผสานลึกกับ Google Workspace |
| การขาย / การติดต่อ / การเขียน Copywriting | GPT-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 ด้านล่างเพื่อ:
- กำหนดสิ่งที่ agents ของคุณควรทำทุกวัน
- ตัดสินใจว่าจะเริ่มต้นด้วยชื่อ cassette และโหมดไหน
- เลือก AI engine ที่เหมาะสม
- สร้างไฟล์ SKILL และ WORKFLOW ของคุณ
- ตั้งค่า flag ใน
_SKILL_STATUS.md - ทดสอบว่า 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 สำหรับการตั้งค่าพร้อมเส้นทางและเนื้อหาไฟล์ทั้งหมดที่กรอกไว้เรียบร้อยแล้ว
สิ่งที่ต้องทำ:
- คัดลอกสคริปต์ Python ที่ AI สร้างขึ้น
- เปิดเทอร์มินัล VS Code (
Ctrl+``บน Windows /Cmd+``บน Mac) - สร้างไฟล์ใหม่ชื่อ
setup_cassette.pyในโฟลเดอร์ .opengoat ของคุณ - วางสคริปต์และบันทึก
- รันมัน:
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
- เปิด Task Scheduler → Create Basic Task
- ชื่อ:
BALIA_[CassetteName] - Trigger: Daily → ตั้งเวลาของคุณ (เช่น 21:00)
- 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
- Program:
- 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