Skill Workshop เป็นฟีเจอร์ทดลอง ฟีเจอร์นี้ปิดใช้งานตามค่าเริ่มต้น heuristics สำหรับการจับข้อมูลและพรอมป์ของผู้ตรวจทานอาจเปลี่ยนระหว่างรุ่นได้ และควรใช้การเขียนอัตโนมัติเฉพาะใน workspace ที่เชื่อถือได้หลังจากตรวจสอบผลลัพธ์ในโหมด pending ก่อนเท่านั้น Skill Workshop คือหน่วยความจำเชิงขั้นตอนสำหรับ Skills ใน workspace ช่วยให้ agent แปลง workflow ที่ใช้ซ้ำได้ การแก้ไขจากผู้ใช้ วิธีแก้ที่ได้มาด้วยความยากลำบาก และข้อผิดพลาดที่เกิดซ้ำ ให้เป็นไฟล์Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
SKILL.md ภายใต้:
- หน่วยความจำ เก็บข้อเท็จจริง ความชอบ เอนทิตี และบริบทในอดีต
- Skills เก็บขั้นตอนที่ใช้ซ้ำได้ซึ่ง agent ควรทำตามในงานในอนาคต
- Skill Workshop เป็นสะพานจากรอบการทำงานที่มีประโยชน์ไปสู่ skill ของ workspace ที่คงทน พร้อมการตรวจสอบความปลอดภัยและการอนุมัติแบบเลือกได้
- วิธีตรวจสอบ asset GIF แบบเคลื่อนไหวที่มาจากแหล่งภายนอก
- วิธีแทนที่ asset ภาพหน้าจอและตรวจสอบขนาด
- วิธีเรียกใช้สถานการณ์ QA เฉพาะ repo
- วิธีดีบักความล้มเหลวของ provider ที่เกิดซ้ำ
- วิธีซ่อมบันทึก workflow ในเครื่องที่ล้าสมัย
- ข้อเท็จจริงอย่าง “ผู้ใช้ชอบสีน้ำเงิน”
- หน่วยความจำอัตชีวประวัติแบบกว้าง
- การเก็บถาวร transcript ดิบ
- secret, credential หรือข้อความพรอมป์ที่ซ่อนอยู่
- คำสั่งแบบใช้ครั้งเดียวที่ไม่เกิดซ้ำ
สถานะเริ่มต้น
Plugin ที่มาพร้อมระบบเป็นฟีเจอร์ทดลองและปิดใช้งานตามค่าเริ่มต้น เว้นแต่จะเปิดใช้อย่างชัดเจนในplugins.entries.skill-workshop
manifest ของ Plugin ไม่ได้ตั้งค่า enabledByDefault: true ค่าเริ่มต้น enabled: true ภายใน schema config ของ Plugin จะมีผลเฉพาะหลังจากเลือกและโหลด entry ของ Plugin แล้วเท่านั้น
ทดลองหมายความว่า:
- Plugin ได้รับการรองรับมากพอสำหรับการทดสอบแบบ opt-in และการใช้งานภายใน
- พื้นที่จัดเก็บ proposal, threshold ของผู้ตรวจทาน และ heuristics สำหรับการจับข้อมูลสามารถพัฒนาเปลี่ยนแปลงได้
- การอนุมัติแบบ pending เป็นโหมดเริ่มต้นที่แนะนำ
- auto apply มีไว้สำหรับการตั้งค่าส่วนตัวหรือ workspace ที่เชื่อถือได้ ไม่ใช่สภาพแวดล้อมที่ใช้ร่วมกันหรือมี input จำนวนมากที่ไม่น่าเชื่อถือ
เปิดใช้งาน
config ขั้นต่ำที่ปลอดภัย:- เครื่องมือ
skill_workshopพร้อมใช้งาน - การแก้ไขที่ใช้ซ้ำได้อย่างชัดเจนจะถูกจัดคิวเป็น proposal แบบ pending
- การตรวจทานตาม threshold สามารถเสนอการอัปเดต skill ได้
- จะไม่มีการเขียนไฟล์ skill จนกว่า proposal แบบ pending จะถูกนำไปใช้
approvalPolicy: "auto" ยังคงใช้ scanner และเส้นทาง quarantine เดียวกัน โดยจะไม่นำ proposal ที่มี finding ระดับ critical ไปใช้
การกำหนดค่า
| Key | ค่าเริ่มต้น | ช่วง / ค่า | ความหมาย |
|---|---|---|---|
enabled | true | boolean | เปิดใช้ Plugin หลังจากโหลด entry ของ Plugin แล้ว |
autoCapture | true | boolean | เปิดใช้การจับข้อมูล/ตรวจทานหลังจบรอบเมื่อ agent ทำงานสำเร็จ |
approvalPolicy | "pending" | "pending", "auto" | จัดคิว proposal หรือเขียน proposal ที่ปลอดภัยโดยอัตโนมัติ |
reviewMode | "hybrid" | "off", "heuristic", "llm", "hybrid" | เลือกการจับการแก้ไขที่ชัดเจน ผู้ตรวจทาน LLM ทั้งสองอย่าง หรือไม่ใช้เลย |
reviewInterval | 15 | 1..200 | เรียกใช้ผู้ตรวจทานหลังจากรอบที่สำเร็จจำนวนเท่านี้ |
reviewMinToolCalls | 8 | 1..500 | เรียกใช้ผู้ตรวจทานหลังจากพบการเรียก tool จำนวนเท่านี้ |
reviewTimeoutMs | 45000 | 5000..180000 | timeout สำหรับการเรียกใช้ผู้ตรวจทานแบบฝังตัว |
maxPending | 50 | 1..200 | จำนวน proposal แบบ pending/quarantined สูงสุดที่เก็บไว้ต่อ workspace |
maxSkillBytes | 40000 | 1024..200000 | ขนาดไฟล์ skill/support ที่สร้างได้สูงสุด |
เส้นทางการจับข้อมูล
Skill Workshop มีเส้นทางการจับข้อมูลสามแบบคำแนะนำจากเครื่องมือ
โมเดลสามารถเรียกskill_workshop ได้โดยตรงเมื่อพบขั้นตอนที่ใช้ซ้ำได้ หรือเมื่อผู้ใช้ขอให้บันทึก/อัปเดต skill
นี่คือเส้นทางที่ชัดเจนที่สุดและทำงานได้แม้ใช้ autoCapture: false
การจับข้อมูลด้วย heuristic
เมื่อเปิดใช้autoCapture และ reviewMode เป็น heuristic หรือ hybrid Plugin จะสแกนรอบที่สำเร็จเพื่อหาวลีการแก้ไขจากผู้ใช้ที่ชัดเจน:
next timefrom now onremember tomake sure toalways ... use/check/verify/record/save/preferprefer ... when/for/instead/usewhen asked
- งาน GIF แบบเคลื่อนไหว ->
animated-gif-workflow - งานภาพหน้าจอหรือ asset ->
screenshot-asset-workflow - งาน QA หรือสถานการณ์ ->
qa-scenario-workflow - งาน GitHub PR ->
github-pr-workflow - fallback ->
learned-workflows
ผู้ตรวจทาน LLM
เมื่อเปิดใช้autoCapture และ reviewMode เป็น llm หรือ hybrid Plugin จะเรียกใช้ผู้ตรวจทานแบบฝังตัวที่กระชับหลังจากถึง threshold
ผู้ตรวจทานจะได้รับ:
- ข้อความ transcript ล่าสุด จำกัดไว้ที่ 12,000 อักขระสุดท้าย
- Skills ของ workspace ที่มีอยู่สูงสุด 12 รายการ
- อักขระสูงสุด 2,000 ตัวจากแต่ละ skill ที่มีอยู่
- คำสั่งแบบ JSON เท่านั้น
disableTools: truetoolsAllow: []disableMessageTool: true
{ "action": "none" } หรือ proposal หนึ่งรายการ ฟิลด์ action คือ create, append หรือ replace - ควรใช้ append/replace เมื่อมี skill ที่เกี่ยวข้องอยู่แล้ว ใช้ create เฉพาะเมื่อไม่มี skill ที่มีอยู่ที่เหมาะสม
ตัวอย่าง create:
append จะเพิ่ม section + body ส่วน replace จะแทนที่ oldText ด้วย newText ใน skill ที่ระบุชื่อ
วงจรชีวิตของ proposal
การอัปเดตที่สร้างขึ้นทุกครั้งจะกลายเป็น proposal พร้อมด้วย:idcreatedAtupdatedAtworkspaceDiragentIdแบบเลือกได้sessionIdแบบเลือกได้skillNametitlereasonsource:tool,agent_endหรือreviewerstatuschangescanFindingsแบบเลือกได้quarantineReasonแบบเลือกได้
pending- รอการอนุมัติapplied- เขียนไปยัง<workspace>/skillsrejected- ถูกปฏิเสธโดย operator/modelquarantined- ถูกบล็อกโดย finding ระดับ critical จาก scanner
maxPending
ข้อมูลอ้างอิงเครื่องมือ
Plugin ลงทะเบียนเครื่องมือตัวแทนหนึ่งรายการ:status
นับข้อเสนอตามสถานะสำหรับพื้นที่ทำงานที่ใช้งานอยู่
list_pending
แสดงรายการข้อเสนอที่รอดำเนินการ
status ที่ใช้ได้:
pendingappliedrejectedquarantined
list_quarantine
แสดงรายการข้อเสนอที่ถูกกักกัน
skill-workshop: quarantined <skill>
inspect
ดึงข้อเสนอตาม id
suggest
สร้างข้อเสนอ เมื่อใช้ approvalPolicy: "pending" (ค่าเริ่มต้น) รายการนี้จะเข้าคิวแทนการเขียน
Request immediate write in auto mode (apply: true)
Request immediate write in auto mode (apply: true)
approvalPolicy: "pending" แม้ apply: true ก็ยังเข้าคิวข้อเสนอ ตรวจสอบก่อน แล้วจึงใช้
การดำเนินการ apply หลังได้รับการอนุมัติForce pending under auto policy (apply: false)
Force pending under auto policy (apply: false)
Append to a named section
Append to a named section
Replace exact text
Replace exact text
apply
ใช้ข้อเสนอที่รอดำเนินการ
เมื่อใช้ approvalPolicy: "pending" การดำเนินการนี้จะขอการอนุมัติจากผู้ปฏิบัติงานก่อนเขียน
Skills ของพื้นที่ทำงาน
apply จะปฏิเสธข้อเสนอที่ถูกกักกัน:
reject
ทำเครื่องหมายข้อเสนอว่าถูกปฏิเสธ
write_support_file
เขียนไฟล์สนับสนุนภายในไดเรกทอรี Skills ที่มีอยู่หรือที่เสนอ
ไดเรกทอรีสนับสนุนระดับบนสุดที่อนุญาต:
references/templates/scripts/assets/
maxSkillBytes สแกน และเขียนแบบอะตอมมิก
การเขียน Skill
Skill Workshop เขียนเฉพาะภายใต้:- แปลงเป็นตัวพิมพ์เล็ก
- ช่วงของอักขระที่ไม่ใช่
[a-z0-9_-]จะกลายเป็น- - อักขระที่ไม่ใช่ตัวอักษรและตัวเลขที่ต้น/ท้ายจะถูกลบออก
- ความยาวสูงสุดคือ 80 อักขระ
- ชื่อสุดท้ายต้องตรงกับ
[a-z0-9][a-z0-9_-]{1,79}
create:
- หาก Skill ยังไม่มีอยู่ Skill Workshop จะเขียน
SKILL.mdใหม่ - หากมีอยู่แล้ว Skill Workshop จะต่อท้ายเนื้อหาไปที่
## Workflow
append:
- หาก Skill มีอยู่ Skill Workshop จะต่อท้ายในส่วนที่ร้องขอ
- หากไม่มีอยู่ Skill Workshop จะสร้าง Skill ขั้นต่ำแล้วต่อท้าย
replace:
- Skill ต้องมีอยู่แล้ว
- ต้องมี
oldTextอยู่ตรงกันแบบสมบูรณ์ - แทนที่เฉพาะรายการแรกที่ตรงกันแบบสมบูรณ์เท่านั้น
โมเดลความปลอดภัย
Skill Workshop มีตัวสแกนความปลอดภัยสำหรับเนื้อหาSKILL.md และไฟล์สนับสนุน
ที่สร้างขึ้น
ผลการตรวจพบระดับวิกฤตจะกักกันข้อเสนอ:
| รหัสกฎ | บล็อกเนื้อหาที่… |
|---|---|
prompt-injection-ignore-instructions | บอกให้เอเจนต์ละเว้นคำสั่งก่อนหน้า/คำสั่งที่มีลำดับสูงกว่า |
prompt-injection-system | อ้างถึงพรอมป์ระบบ ข้อความนักพัฒนา หรือคำสั่งที่ซ่อนอยู่ |
prompt-injection-tool | สนับสนุนให้เลี่ยงสิทธิ์/การอนุมัติของเครื่องมือ |
shell-pipe-to-shell | รวม curl/wget ที่ไพป์เข้า sh, bash, หรือ zsh |
secret-exfiltration | ดูเหมือนส่งข้อมูล env/process env ผ่านเครือข่าย |
| รหัสกฎ | เตือนเมื่อ… |
|---|---|
destructive-delete | คำสั่งลักษณะ rm -rf แบบกว้าง |
unsafe-permissions | การใช้สิทธิ์ลักษณะ chmod 777 |
- เก็บ
scanFindings - เก็บ
quarantineReason - ปรากฏใน
list_quarantine - ไม่สามารถนำไปใช้ผ่าน
apply
แนวทางพรอมป์
เมื่อเปิดใช้งาน Skill Workshop จะแทรกส่วนพรอมป์สั้นๆ ที่บอกเอเจนต์ ให้ใช้skill_workshop สำหรับหน่วยความจำขั้นตอนที่คงทน
แนวทางนี้เน้น:
- ขั้นตอน ไม่ใช่ข้อเท็จจริง/ความชอบ
- การแก้ไขจากผู้ใช้
- ขั้นตอนที่สำเร็จซึ่งไม่ชัดเจน
- ข้อผิดพลาดที่เกิดซ้ำ
- การซ่อม Skill ที่ล้าสมัย/บาง/ผิด ผ่าน append/replace
- การบันทึกขั้นตอนที่นำกลับมาใช้ได้หลังจากลูปเครื่องมือยาวๆ หรือการแก้ไขที่ยาก
- ข้อความ Skill แบบคำสั่งสั้นๆ
- ไม่มีการดัมป์ทรานสคริปต์
approvalPolicy:
- โหมด pending: เข้าคิวคำแนะนำ ใช้
applyหลังได้รับการอนุมัติอย่างชัดเจน - โหมด auto: นำการอัปเดต workspace-skill ที่ปลอดภัยไปใช้ เว้นแต่
apply: falseจะเข้าคิวแทน
ค่าใช้จ่ายและพฤติกรรมรันไทม์
การจับข้อมูลแบบฮิวริสติกไม่เรียกใช้โมเดล การตรวจทานด้วย LLM ใช้การรันแบบฝังบนโมเดลเอเจนต์ที่ใช้งานอยู่/ค่าเริ่มต้น เป็นแบบ อิงเกณฑ์ ดังนั้นโดยค่าเริ่มต้นจะไม่รันทุกเทิร์น ผู้ตรวจทาน:- ใช้บริบท provider/model ที่กำหนดค่าเดียวกันเมื่อมี
- ถอยกลับไปใช้ค่าเริ่มต้นของเอเจนต์รันไทม์
- มี
reviewTimeoutMs - ใช้บริบทเริ่มต้นแบบเบา
- ไม่มีเครื่องมือ
- ไม่เขียนอะไรโดยตรง
- ทำได้เพียงปล่อยข้อเสนอที่ผ่านตัวสแกนปกติและเส้นทาง การอนุมัติ/กักกัน
รูปแบบการใช้งาน
ใช้ Skill Workshop เมื่อผู้ใช้พูดว่า:- “next time, do X”
- “from now on, prefer Y”
- “make sure to verify Z”
- “save this as a workflow”
- “this took a while; remember the process”
- “update the local skill for this”
- มีรูปแบบเหมือนทรานสคริปต์
- ไม่ใช่คำสั่ง
- มีรายละเอียดเฉพาะครั้งที่เป็นเสียงรบกวน
- ไม่ได้บอกเอเจนต์ถัดไปว่าต้องทำอะไร
การดีบัก
ตรวจสอบว่า Plugin โหลดอยู่หรือไม่:| อาการ | สาเหตุที่เป็นไปได้ | ตรวจสอบ |
|---|---|---|
| เครื่องมือไม่พร้อมใช้งาน | รายการ Plugin ไม่ได้เปิดใช้งาน | plugins.entries.skill-workshop.enabled และ openclaw plugins list |
| ไม่มีข้อเสนออัตโนมัติปรากฏ | autoCapture: false, reviewMode: "off", หรือไม่ผ่านเกณฑ์ | การกำหนดค่า สถานะข้อเสนอ บันทึก Gateway |
| ฮิวริสติกไม่ได้จับข้อมูล | ถ้อยคำของผู้ใช้ไม่ตรงกับรูปแบบการแก้ไข | ใช้ skill_workshop.suggest อย่างชัดเจน หรือเปิดใช้ผู้ตรวจทาน LLM |
| ผู้ตรวจทานไม่ได้สร้างข้อเสนอ | ผู้ตรวจทานส่งคืน none, JSON ไม่ถูกต้อง, หรือหมดเวลา | บันทึก Gateway, reviewTimeoutMs, เกณฑ์ |
| ข้อเสนอไม่ถูกนำไปใช้ | approvalPolicy: "pending" | list_pending แล้วจึง apply |
| ข้อเสนอหายไปจากรายการรอดำเนินการ | ใช้ข้อเสนอซ้ำ ตัดรายการรอดำเนินการสูงสุด หรือถูกนำไปใช้/ปฏิเสธ/กักกันแล้ว | status, list_pending พร้อมตัวกรองสถานะ, list_quarantine |
| มีไฟล์ Skill อยู่แต่โมเดลมองไม่เห็น | สแนปช็อต Skill ไม่ได้รีเฟรช หรือการ gating ของ Skill ตัดออก | สถานะ openclaw skills และสิทธิ์ของ workspace skill |
skill-workshop: queued <skill>skill-workshop: applied <skill>skill-workshop: quarantined <skill>skill-workshop: heuristic capture skipped: ...skill-workshop: reviewer skipped: ...skill-workshop: reviewer found no update
สถานการณ์ QA
สถานการณ์ QA ที่อิง repo:qa/scenarios/plugins/skill-workshop-animated-gif-autocreate.mdqa/scenarios/plugins/skill-workshop-pending-approval.mdqa/scenarios/plugins/skill-workshop-reviewer-autonomous.md
reviewMode: "llm" และทดสอบรอบผู้ตรวจทานแบบฝัง
เมื่อไม่ควรเปิดใช้งานการนำไปใช้อัตโนมัติ
หลีกเลี่ยงapprovalPolicy: "auto" เมื่อ:
- เวิร์กสเปซมีขั้นตอนที่ละเอียดอ่อน
- เอเจนต์กำลังทำงานกับอินพุตที่ไม่น่าเชื่อถือ
- Skills ถูกแชร์ในทีมขนาดใหญ่
- คุณยังปรับพรอมป์หรือกฎสแกนเนอร์อยู่
- โมเดลจัดการเนื้อหาเว็บ/อีเมลที่เป็นภัยบ่อยครั้ง