| name | self-improvement |
| description | บันทึกการเรียนรู้ ข้อผิดพลาด และการแก้ไขเพื่อการปรับปรุงอย่างต่อเนื่อง ใช้เมื่อ: (1) คำสั่งหรือการทำงานล้มเหลว (2) ผู้ใช้แก้ไขข้อมูล (3) ผู้ใช้ร้องขอความสามารถที่ไม่มี (4) API หรือเครื่องมือภายนอกล้มเหลว (5) พบแนวทางที่ดีกว่าสำหรับงานที่ทำซ้ำ หรือต้องการทบทวนการเรียนรู้ก่อนเริ่มงานสำคัญ |
| metadata | null |
ทักษะการปรับปรุงตนเอง (Self-Improvement Skill)
บันทึกการเรียนรู้และข้อผิดพลาดลงในไฟล์ Markdown เพื่อการปรับปรุงอย่างต่อเนื่อง Agent ที่เขียนโค้ดสามารถนำสิ่งเหล่านี้ไปประมวลผลเพื่อแก้ไข และการเรียนรู้ที่สำคัญจะถูกส่งเสริมไปยังหน่วยความจำของโครงการ
ข้อมูลอ้างอิงฉบับย่อ
| สถานการณ์ | การดำเนินการ |
|---|
| คำสั่ง/การดำเนินการล้มเหลว | บันทึกลงใน .learnings/ERRORS.md |
| ผู้ใช้แก้ไขคุณ | บันทึกลงใน .learnings/LEARNINGS.md พร้อมหมวดหมู่ correction |
| ผู้ใช้ต้องการคุณสมบัติที่ขาดหายไป | บันทึกลงใน .learnings/FEATURE_REQUESTS.md |
| API/เครื่องมือภายนอกล้มเหลว | บันทึกลงใน .learnings/ERRORS.md พร้อมรายละเอียดการรวม |
| ความรู้ล้าสมัย | บันทึกลงใน .learnings/LEARNINGS.md พร้อมหมวดหมู่ knowledge_gap |
| พบแนวทางที่ดีกว่า | บันทึกลงใน .learnings/LEARNINGS.md พร้อมหมวดหมู่ best_practice |
| ทำให้รูปแบบที่เกิดซ้ำง่ายขึ้น/แข็งแกร่งขึ้น | บันทึก/อัปเดต .learnings/LEARNINGS.md ด้วย Source: simplify-and-harden และ Pattern-Key ที่เสถียร |
| คล้ายกับรายการที่มีอยู่ | เชื่อมโยงกับ **See Also**, พิจารณาเพิ่มลำดับความสำคัญ |
| การเรียนรู้ที่ใช้ได้ในวงกว้าง | ส่งเสริมไปยัง CLAUDE.md, AGENTS.md, และ/หรือ .github/copilot-instructions.md |
| การปรับปรุงขั้นตอนการทำงาน | ส่งเสริมไปยัง AGENTS.md (OpenClaw workspace) |
| ข้อควรระวังของเครื่องมือ | ส่งเสริมไปยัง TOOLS.md (OpenClaw workspace) |
| รูปแบบพฤติกรรม | ส่งเสริมไปยัง SOUL.md (OpenClaw workspace) |
การตั้งค่า OpenClaw (แนะนำ)
OpenClaw เป็นแพลตฟอร์มหลักสำหรับ skill นี้ โดยใช้การฉีด prompt แบบ workspace พร้อมการโหลด skill อัตโนมัติ
การติดตั้ง
Via ClawdHub (recommended):
clawdhub install self-improving-agent
Manual:
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
สร้างใหม่สำหรับ OpenClaw จาก repo ต้นฉบับ: https://github.com/pskoett/pskoett-ai-skills - https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement
โครงสร้าง Workspace
OpenClaw จะแทรกไฟล์เหล่านี้ในทุกเซสชัน:
~/.openclaw/workspace/
├── AGENTS.md # Multi-agent workflows, delegation patterns
├── SOUL.md # Behavioral guidelines, personality, principles
├── TOOLS.md # Tool capabilities, integration gotchas
├── MEMORY.md # Long-term memory (main session only)
├── memory/ # Daily memory files
│ └── YYYY-MM-DD.md
└── .learnings/ # This skill's log files
├── LEARNINGS.md
├── ERRORS.md
└── FEATURE_REQUESTS.md
การสร้างไฟล์บันทึกการเรียนรู้
mkdir -p ~/.openclaw/workspace/.learnings
จากนั้นสร้างไฟล์บันทึก (หรือคัดลอกจาก assets/):
LEARNINGS.md — การแก้ไข, ช่องว่างความรู้, แนวทางปฏิบัติที่ดีที่สุด
ERRORS.md — ความล้มเหลวของคำสั่ง, ข้อยกเว้น
FEATURE_REQUESTS.md — ความสามารถที่ผู้ใช้ร้องขอ
เป้าหมายการส่งเสริม
เมื่อการเรียนรู้พิสูจน์แล้วว่าสามารถนำไปใช้ได้ในวงกว้าง ให้ส่งเสริมไปยังไฟล์ workspace:
| ประเภทการเรียนรู้ | ส่งเสริมไปยัง | ตัวอย่าง |
|---|
| รูปแบบพฤติกรรม | SOUL.md | "กระชับ, หลีกเลี่ยงข้อจำกัดความรับผิดชอบ" |
| การปรับปรุงขั้นตอนการทำงาน | AGENTS.md | "สร้าง sub-agent สำหรับงานที่ใช้เวลานาน" |
| ข้อควรระวังของเครื่องมือ | TOOLS.md | "Git push ต้องกำหนดค่าการตรวจสอบสิทธิ์ก่อน" |
การสื่อสารระหว่างเซสชัน
OpenClaw มีเครื่องมือสำหรับแบ่งปันการเรียนรู้ระหว่างเซสชัน:
- sessions_list — ดูเซสชันที่ใช้งานอยู่/ล่าสุด
- sessions_history — อ่านบันทึกของเซสชันอื่น
- sessions_send — ส่งการเรียนรู้ไปยังเซสชันอื่น
- sessions_spawn — สร้าง sub-agent สำหรับงานเบื้องหลัง
ทางเลือก: เปิดใช้งาน Hook
สำหรับการแจ้งเตือนอัตโนมัติเมื่อเริ่มต้นเซสชัน:
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement
openclaw hooks enable self-improvement
ดู references/openclaw-integration.md สำหรับรายละเอียดทั้งหมด
การตั้งค่าทั่วไป (สำหรับ Agent อื่นๆ)
สำหรับ Claude Code, Codex, Copilot หรือ Agent อื่นๆ ให้สร้าง .learnings/ ในโปรเจกต์ของคุณ:
mkdir -p .learnings
คัดลอกเทมเพลตจาก assets/ หรือสร้างไฟล์พร้อมส่วนหัว
เพิ่มการอ้างอิงไปยังไฟล์ Agent AGENTS.md, CLAUDE.md หรือ .github/copilot-instructions.md เพื่อเตือนตัวเองให้บันทึกการเรียนรู้ (นี่เป็นทางเลือกแทนการแจ้งเตือนแบบ hook)
ขั้นตอนการทำงานของการปรับปรุงตนเอง
เมื่อเกิดข้อผิดพลาดหรือการแก้ไข:
- บันทึกลงใน
.learnings/ERRORS.md, LEARNINGS.md, หรือ FEATURE_REQUESTS.md
- ตรวจสอบและส่งเสริมการเรียนรู้ที่ใช้ได้ในวงกว้างไปยัง:
CLAUDE.md - ข้อเท็จจริงและข้อตกลงของโครงการ
AGENTS.md - ขั้นตอนการทำงานและระบบอัตโนมัติ
.github/copilot-instructions.md - บริบทของ Copilot
รูปแบบการบันทึก
รายการบันทึกการเรียนรู้
เพิ่มไปยัง .learnings/LEARNINGS.md:
## [LRN-YYYYMMDD-XXX] หมวดหมู่
**บันทึกเมื่อ**: เวลามาตรฐาน ISO-8601
**ลำดับความสำคัญ**: ต่ำ | ปานกลาง | สูง | วิกฤต
**สถานะ**: รอดำเนินการ
**ขอบเขต**: frontend | backend | infra | tests | docs | config
### Summary
คำอธิบายหนึ่งบรรทัดเกี่ยวกับสิ่งที่เรียนรู้
### Details
บริบททั้งหมด: เกิดอะไรขึ้น, อะไรผิด, อะไรถูก
### Suggested Action
การแก้ไขหรือการปรับปรุงที่เฉพาะเจาะจง
### Metadata
- ที่มา: การสนทนา | ข้อผิดพลาด | ข้อเสนอแนะจากผู้ใช้
- ไฟล์ที่เกี่ยวข้อง: path/to/file.ext
- แท็ก: tag1, tag2
- ดูเพิ่มเติม: LRN-20250110-001 (หากเกี่ยวข้องกับรายการที่มีอยู่)
- คีย์รูปแบบ: simplify.dead_code | harden.input_validation (ไม่บังคับ, สำหรับการติดตามรูปแบบที่เกิดซ้ำ)
- จำนวนครั้งที่เกิดซ้ำ: 1 (ไม่บังคับ)
- เห็นครั้งแรก: 2025-01-15 (ไม่บังคับ)
- เห็นครั้งล่าสุด: 2025-01-15 (ไม่บังคับ)
---
รายการบันทึกข้อผิดพลาด
เพิ่มไปยัง .learnings/ERRORS.md:
## [ERR-YYYYMMDD-XXX] ชื่อทักษะหรือคำสั่ง
**บันทึกเมื่อ**: เวลามาตรฐาน ISO-8601
**ลำดับความสำคัญ**: สูง
**สถานะ**: รอดำเนินการ
**ขอบเขต**: frontend | backend | infra | tests | docs | config
### Summary
คำอธิบายสั้นๆ เกี่ยวกับสิ่งที่ล้มเหลว
### Error
ข้อความแสดงข้อผิดพลาดจริงหรือผลลัพธ์
### Context
- คำสั่ง/การดำเนินการที่พยายาม
- อินพุตหรือพารามิเตอร์ที่ใช้
- รายละเอียดสภาพแวดล้อมหากเกี่ยวข้อง
### Suggested Fix
หากระบุได้ อะไรที่อาจแก้ไขปัญหานี้ได้
### Metadata
- ทำซ้ำได้: ใช่ | ไม่ | ไม่ทราบ
- ไฟล์ที่เกี่ยวข้อง: path/to/file.ext
- ดูเพิ่มเติม: ERR-20250110-001 (หากเกิดซ้ำ)
---
รายการบันทึกคำขอคุณสมบัติ
เพิ่มไปยัง .learnings/FEATURE_REQUESTS.md:
## [FEAT-YYYYMMDD-XXX] ชื่อความสามารถ
**บันทึกเมื่อ**: เวลามาตรฐาน ISO-8601
**ลำดับความสำคัญ**: ปานกลาง
**สถานะ**: รอดำเนินการ
**ขอบเขต**: frontend | backend | infra | tests | docs | config
### Requested Capability
สิ่งที่ผู้ใช้ต้องการทำ
### User Context
ทำไมพวกเขาถึงต้องการมัน, พวกเขากำลังแก้ปัญหาอะไร
### Complexity Estimate
ง่าย | ปานกลาง | ซับซ้อน
### Suggested Implementation
สิ่งนี้สามารถสร้างได้อย่างไร, สิ่งที่อาจขยายได้
### Metadata
- ความถี่: ครั้งแรก | เกิดซ้ำ
- คุณสมบัติที่เกี่ยวข้อง: existing_feature_name
---
การสร้าง ID
รูปแบบ: TYPE-YYYYMMDD-XXX
- TYPE:
LRN (การเรียนรู้), ERR (ข้อผิดพลาด), FEAT (คุณสมบัติ)
- YYYYMMDD: วันที่ปัจจุบัน
- XXX: หมายเลขลำดับหรืออักขระ 3 ตัวแบบสุ่ม (เช่น
001, A7B)
ตัวอย่าง: LRN-20250115-001, ERR-20250115-A3F, FEAT-20250115-002
การแก้ไขรายการ
เมื่อปัญหาได้รับการแก้ไข ให้อัปเดตรายการ:
- เปลี่ยน
**สถานะ**: รอดำเนินการ → **สถานะ**: แก้ไขแล้ว
- เพิ่มบล็อกการแก้ไขหลังจาก Metadata:
### การแก้ไข
- **แก้ไขเมื่อ**: 2025-01-16T09:00:00Z
- **Commit/PR**: abc123 หรือ #42
- **หมายเหตุ**: คำอธิบายสั้นๆ เกี่ยวกับสิ่งที่ทำ
ค่าสถานะอื่นๆ:
in_progress - กำลังดำเนินการ
wont_fix - ตัดสินใจที่จะไม่แก้ไข (เพิ่มเหตุผลในบันทึกการแก้ไข)
promoted - เลื่อนระดับไปยัง CLAUDE.md, AGENTS.md หรือ .github/copilot-instructions.md
การส่งเสริมสู่หน่วยความจำโครงการ
เมื่อการเรียนรู้สามารถนำไปใช้ได้ในวงกว้าง (ไม่ใช่การแก้ไขครั้งเดียว) ให้ส่งเสริมไปยังหน่วยความจำโครงการถาวร
เมื่อใดควรส่งเสริม
- การเรียนรู้สามารถนำไปใช้ได้กับหลายไฟล์/คุณสมบัติ
- ความรู้ที่ผู้มีส่วนร่วม (มนุษย์หรือ AI) ควรรู้
- ป้องกันข้อผิดพลาดที่เกิดซ้ำ
- จัดทำเอกสารข้อตกลงเฉพาะของโครงการ
เป้าหมายการส่งเสริม
| เป้าหมาย | สิ่งที่ควรอยู่ในนั้น |
|---|
CLAUDE.md | ข้อเท็จจริงของโครงการ, ข้อตกลง, ข้อควรระวังสำหรับการโต้ตอบกับ Claude ทั้งหมด |
AGENTS.md | ขั้นตอนการทำงานเฉพาะ Agent, รูปแบบการใช้เครื่องมือ, กฎการทำงานอัตโนมัติ |
.github/copilot-instructions.md | บริบทของโครงการและข้อตกลงสำหรับ GitHub Copilot |
SOUL.md | แนวทางพฤติกรรม, รูปแบบการสื่อสาร, หลักการ (OpenClaw workspace) |
TOOLS.md | ความสามารถของเครื่องมือ, รูปแบบการใช้งาน, ข้อควรระวังในการรวม (OpenClaw workspace) |
วิธีการส่งเสริม
- กลั่นกรอง การเรียนรู้ให้เป็นกฎหรือข้อเท็จจริงที่กระชับ
- เพิ่ม ไปยังส่วนที่เหมาะสมในไฟล์เป้าหมาย (สร้างไฟล์หากจำเป็น)
- อัปเดต รายการเดิม:
- เปลี่ยน
**สถานะ**: รอดำเนินการ → **สถานะ**: ส่งเสริมแล้ว
- เพิ่ม
**Promoted**: CLAUDE.md, AGENTS.md หรือ .github/copilot-instructions.md
ตัวอย่างการส่งเสริม
Learning (verbose):
โครงการใช้ pnpm workspaces พยายาม npm install แต่ล้มเหลว
ไฟล์ล็อกคือ pnpm-lock.yaml ต้องใช้ pnpm install
In CLAUDE.md (concise):
## บิวด์และการพึ่งพา
- ตัวจัดการแพ็คเกจ: pnpm (ไม่ใช่ npm) - ใช้ `pnpm install`
Learning (verbose):
เมื่อแก้ไข API endpoints ต้องสร้าง TypeScript client ใหม่
การลืมสิ่งนี้ทำให้เกิดความไม่ตรงกันของประเภทในขณะรันไทม์
In AGENTS.md (actionable):
## หลังการเปลี่ยนแปลง API
1. สร้างไคลเอ็นต์ใหม่: `pnpm run generate:api`
2. ตรวจสอบข้อผิดพลาดของประเภท: `pnpm tsc --noEmit`
การตรวจจับรูปแบบที่เกิดซ้ำ
หากบันทึกสิ่งที่คล้ายกับรายการที่มีอยู่แล้ว:
- ค้นหาก่อน:
grep -r "keyword" .learnings/
- เชื่อมโยงรายการ: เพิ่ม
**See Also**: ERR-20250110-001 ใน Metadata
- เพิ่มลำดับความสำคัญ หากปัญหายังคงเกิดซ้ำ
- พิจารณาการแก้ไขเชิงระบบ: ปัญหาที่เกิดซ้ำมักบ่งชี้ถึง:
- เอกสารหายไป (→ ส่งเสริมไปยัง CLAUDE.md หรือ .github/copilot-instructions.md)
- ระบบอัตโนมัติหายไป (→ เพิ่มไปยัง AGENTS.md)
- ปัญหาทางสถาปัตยกรรม (→ สร้างตั๋วหนี้ทางเทคนิค)
ฟีดการทำให้ง่ายขึ้นและแข็งแกร่งขึ้น
ใช้ขั้นตอนการทำงานนี้เพื่อนำรูปแบบที่เกิดซ้ำจาก skill simplify-and-harden และเปลี่ยนให้เป็นคำแนะนำ prompt ที่คงทน
ขั้นตอนการนำเข้า
- อ่าน
simplify_and_harden.learning_loop.candidates จากสรุปงาน
- สำหรับผู้สมัครแต่ละราย ให้ใช้
pattern_key เป็นคีย์ dedupe ที่เสถียร
- ค้นหา
.learnings/LEARNINGS.md สำหรับรายการที่มีคีย์นั้น:
grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.md
- หากพบ:
- เพิ่ม
Recurrence-Count
- อัปเดต
Last-Seen
- เพิ่มลิงก์
See Also ไปยังรายการ/งานที่เกี่ยวข้อง
- หากไม่พบ:
- สร้างรายการ
LRN-... ใหม่
- ตั้งค่า
Source: simplify-and-harden
- ตั้งค่า
Pattern-Key, Recurrence-Count: 1 และ First-Seen/Last-Seen
กฎการส่งเสริม (ข้อเสนอแนะ System Prompt)
ส่งเสริมรูปแบบที่เกิดซ้ำไปยังไฟล์บริบท Agent/system prompt เมื่อทั้งหมดเป็นจริง:
Recurrence-Count >= 3
- พบในงานที่แตกต่างกันอย่างน้อย 2 งาน
- เกิดขึ้นภายใน 30 วัน
เป้าหมายการส่งเสริม:
CLAUDE.md
AGENTS.md
.github/copilot-instructions.md
SOUL.md / TOOLS.md สำหรับคำแนะนำระดับ workspace ของ OpenClaw เมื่อเหมาะสม
เขียนกฎที่ส่งเสริมเป็นกฎการป้องกันสั้นๆ (สิ่งที่ต้องทำก่อน/ขณะเขียนโค้ด) ไม่ใช่การเขียนรายงานเหตุการณ์ยาวๆ
การทบทวนเป็นระยะ
ทบทวน .learnings/ ณ จุดพักธรรมชาติ:
เมื่อใดควรทบทวน
- ก่อนเริ่มงานสำคัญใหม่
- หลังจากเสร็จสิ้นคุณสมบัติ
- เมื่อทำงานในพื้นที่ที่มีการเรียนรู้ในอดีต
- รายสัปดาห์ระหว่างการพัฒนา
การตรวจสอบสถานะอย่างรวดเร็ว
- นับรายการที่รอดำเนินการ
grep -h "Status\*\*: pending" .learnings/*.md | wc -l
- แสดงรายการที่มีลำดับความสำคัญสูงที่รอดำเนินการ
grep -B5 "**ลำดับความสำคัญ**: สูง" .learnings/*.md | grep "^## \["
- ค้นหาการเรียนรู้สำหรับพื้นที่เฉพาะ
grep -l "Area\*\*: backend" .learnings/*.md
การดำเนินการทบทวน
- แก้ไขรายการที่แก้ไขแล้ว
- ส่งเสริมการเรียนรู้ที่เกี่ยวข้อง
- เชื่อมโยงรายการที่เกี่ยวข้อง
- ยกระดับปัญหาที่เกิดซ้ำ
ตัวกระตุ้นการตรวจจับ
บันทึกโดยอัตโนมัติเมื่อคุณสังเกตเห็น:
การแก้ไข (→ การเรียนรู้ที่มีหมวดหมู่ correction):
- "ไม่ นั่นไม่ถูกต้อง..."
- "จริงๆ แล้วมันควรจะเป็น..."
- "คุณเข้าใจผิดเกี่ยวกับ..."
- "นั่นล้าสมัยแล้ว..."
คำขอคุณสมบัติ (→ คำขอคุณสมบัติ):
- "คุณช่วย...ได้ไหม"
- "ฉันหวังว่าคุณจะ...ได้"
- "มีวิธีที่จะ...ไหม"
- "ทำไมคุณถึง...ไม่ได้"
ช่องว่างความรู้ (→ การเรียนรู้ที่มีหมวดหมู่
knowledge_gap):
- ผู้ใช้ให้ข้อมูลที่คุณไม่รู้
- เอกสารที่คุณอ้างอิงล้าสมัย
- พฤติกรรม API แตกต่างจากที่คุณเข้าใจ
ข้อผิดพลาด (→ รายการข้อผิดพลาด):
- คำสั่งส่งคืนรหัสออกที่ไม่ใช่ศูนย์
- ข้อยกเว้นหรือ stack trace
- ผลลัพธ์หรือพฤติกรรมที่ไม่คาดคิด
- หมดเวลาหรือการเชื่อมต่อล้มเหลว
แนวทางลำดับความสำคัญ
| ลำดับความสำคัญ | เมื่อใดควรใช้ |
|---|
critical | บล็อกการทำงานหลัก, ความเสี่ยงข้อมูลสูญหาย, ปัญหาความปลอดภัย |
high | ผลกระทบสำคัญ, ส่งผลต่อขั้นตอนการทำงานทั่วไป, ปัญหาที่เกิดซ้ำ |
medium | ผลกระทบปานกลาง, มีวิธีแก้ไขชั่วคราว |
low | ความไม่สะดวกเล็กน้อย, กรณีพิเศษ, สิ่งที่ควรมี |
แท็กพื้นที่
ใช้เพื่อกรองการเรียนรู้ตามภูมิภาคของ codebase:
| พื้นที่ | ขอบเขต |
|---|
frontend | UI, ส่วนประกอบ, โค้ดฝั่งไคลเอ็นต์ |
backend | API, บริการ, โค้ดฝั่งเซิร์ฟเวอร์ |
infra | CI/CD, การปรับใช้, Docker, คลาวด์ |
tests | ไฟล์ทดสอบ, ยูทิลิตี้การทดสอบ, ความครอบคลุม |
docs | เอกสาร, ความคิดเห็น, READMEs |
config | ไฟล์การกำหนดค่า, สภาพแวดล้อม, การตั้งค่า |
แนวทางปฏิบัติที่ดีที่สุด
- บันทึกทันที - บริบทจะสดใหม่ที่สุดหลังจากเกิดปัญหา
- ระบุให้ชัดเจน - Agent ในอนาคตจำเป็นต้องเข้าใจอย่างรวดเร็ว
- รวมขั้นตอนการทำซ้ำ - โดยเฉพาะสำหรับข้อผิดพลาด
- เชื่อมโยงไฟล์ที่เกี่ยวข้อง - ทำให้การแก้ไขง่ายขึ้น
- แนะนำการแก้ไขที่เป็นรูปธรรม - ไม่ใช่แค่ "ตรวจสอบ"
- ใช้หมวดหมู่ที่สอดคล้องกัน - ช่วยให้สามารถกรองได้
- ส่งเสริมอย่างจริงจัง - หากไม่แน่ใจ ให้เพิ่มลงใน CLAUDE.md หรือ .github/copilot-instructions.md
- ทบทวนเป็นประจำ - การเรียนรู้ที่ล้าสมัยจะสูญเสียคุณค่า
ตัวเลือก Gitignore
เก็บการเรียนรู้ไว้ในเครื่อง (ต่อผู้พัฒนา):
.learnings/
ติดตามการเรียนรู้ใน repo (ทั่วทั้งทีม):
อย่าเพิ่มลงใน .gitignore - การเรียนรู้จะกลายเป็นความรู้ที่ใช้ร่วมกัน
ไฮบริด (ติดตามเทมเพลต, ละเว้นรายการ):
.learnings/*.md
!.learnings/.gitkeep
การรวม Hook
เปิดใช้งานการแจ้งเตือนอัตโนมัติผ่าน agent hooks นี่เป็น การเลือกเข้าร่วม - คุณต้องกำหนดค่า hooks อย่างชัดเจน
การตั้งค่าด่วน (Claude Code / Codex)
สร้าง .claude/settings.json ในโปรเจกต์ของคุณ:
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/activator.sh"
}]
}]
}
}
สิ่งนี้จะแทรกการแจ้งเตือนการประเมินการเรียนรู้หลังจากแต่ละ prompt (โอเวอร์เฮดประมาณ 50-100 โทเค็น)
การตั้งค่าแบบเต็ม (พร้อมการตรวจจับข้อผิดพลาด)
{
"hooks": {
"UserPromptSubmit": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/activator.sh"
}]
}],
"PostToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "./skills/self-improvement/scripts/error-detector.sh"
}]
}]
}
}
สคริปต์ Hook ที่มีอยู่
| สคริปต์ | ประเภท Hook | วัตถุประสงค์ |
|---|
scripts/activator.sh | UserPromptSubmit | เตือนให้ประเมินการเรียนรู้หลังจากงาน |
scripts/error-detector.sh | PostToolUse (Bash) | ทริกเกอร์เมื่อเกิดข้อผิดพลาดของคำสั่ง |
ดู references/hooks-setup.md สำหรับการกำหนดค่าและการแก้ไขปัญหาโดยละเอียด
การแยก Skill อัตโนมัติ
เมื่อการเรียนรู้มีคุณค่าเพียงพอที่จะกลายเป็น skill ที่นำกลับมาใช้ใหม่ได้ ให้แยกออกมาโดยใช้ตัวช่วยที่ให้มา
เกณฑ์การแยก Skill
การเรียนรู้มีคุณสมบัติสำหรับการแยก skill เมื่อมีสิ่งใดสิ่งหนึ่งต่อไปนี้เป็นจริง:
| เกณฑ์ | คำอธิบาย |
|---|
| เกิดซ้ำ | มีลิงก์ See Also ไปยังปัญหาที่คล้ายกัน 2+ รายการ |
| ยืนยันแล้ว | สถานะเป็น resolved พร้อมการแก้ไขที่ใช้งานได้ |
| ไม่ชัดเจน | ต้องมีการดีบัก/ตรวจสอบจริงเพื่อค้นพบ |
| ใช้ได้ในวงกว้าง | ไม่ใช่เฉพาะโครงการ; มีประโยชน์ใน codebase ต่างๆ |
| ผู้ใช้ระบุ | ผู้ใช้พูดว่า "บันทึกสิ่งนี้เป็น skill" หรือคล้ายกัน |
ขั้นตอนการแยก
- ระบุผู้สมัคร: การเรียนรู้ตรงตามเกณฑ์การแยก
- เรียกใช้ตัวช่วย (หรือสร้างด้วยตนเอง):
./skills/self-improvement/scripts/extract-skill.sh skill-name --dry-run
./skills/self-improvement/scripts/extract-skill.sh skill-name
- ปรับแต่ง SKILL.md: กรอกเทมเพลตด้วยเนื้อหาการเรียนรู้
- อัปเดตการเรียนรู้: ตั้งค่าสถานะเป็น
promoted_to_skill, เพิ่ม Skill-Path
- ตรวจสอบ: อ่าน skill ในเซสชันใหม่เพื่อให้แน่ใจว่ามันเป็นอิสระ
การแยกด้วยตนเอง
หากคุณต้องการสร้างด้วยตนเอง:
- สร้าง
skills/<skill-name>/SKILL.md
- ใช้เทมเพลตจาก
assets/SKILL-TEMPLATE.md
- ปฏิบัติตาม Agent Skills spec:
- YAML frontmatter พร้อม
name และ description
- ชื่อต้องตรงกับชื่อโฟลเดอร์
- ไม่มี README.md ภายในโฟลเดอร์ skill
ตัวกระตุ้นการตรวจจับการแยก
สังเกตสัญญาณเหล่านี้ที่บ่งชี้ว่าการเรียนรู้ควรกลายเป็น skill:
ในการสนทนา:
- "บันทึกสิ่งนี้เป็น skill"
- "ฉันเจอสิ่งนี้บ่อยๆ"
- "สิ่งนี้จะมีประโยชน์สำหรับโครงการอื่นๆ"
- "จำรูปแบบนี้ไว้"
ในรายการบันทึกการเรียนรู้:
- ลิงก์
See Also หลายรายการ (ปัญหาที่เกิดซ้ำ)
- ลำดับความสำคัญสูง + สถานะแก้ไขแล้ว
- หมวดหมู่:
best_practice ที่สามารถนำไปใช้ได้ในวงกว้าง
- ข้อเสนอแนะจากผู้ใช้ที่ชื่นชมโซลูชัน
เกณฑ์คุณภาพ Skill
ก่อนการแยก ตรวจสอบ:
การสนับสนุนหลาย Agent
skill นี้ทำงานร่วมกับ AI coding agent ที่แตกต่างกันด้วยการเปิดใช้งานเฉพาะ Agent
Claude Code
การเปิดใช้งาน: Hooks (UserPromptSubmit, PostToolUse)
การตั้งค่า: .claude/settings.json พร้อมการกำหนดค่า hook
การตรวจจับ: อัตโนมัติผ่านสคริปต์ hook
Codex CLI
การเปิดใช้งาน: Hooks (รูปแบบเดียวกับ Claude Code)
การตั้งค่า: .codex/settings.json พร้อมการกำหนดค่า hook
การตรวจจับ: อัตโนมัติผ่านสคริปต์ hook
GitHub Copilot
การเปิดใช้งาน: ด้วยตนเอง (ไม่รองรับ hook)
การตั้งค่า: เพิ่มไปยัง .github/copilot-instructions.md:
## Self-Improvement
หลังจากแก้ไขปัญหาที่ไม่ชัดเจน ให้พิจารณาบันทึกลงใน `.learnings/`:
1. ใช้รูปแบบจาก self-improvement skill
2. เชื่อมโยงรายการที่เกี่ยวข้องด้วย See Also
3. ส่งเสริมการเรียนรู้ที่มีคุณค่าสูงให้เป็น skills
ถามในแชท: "ฉันควรบันทึกสิ่งนี้เป็นการเรียนรู้หรือไม่?"
การตรวจจับ: การตรวจสอบด้วยตนเองเมื่อสิ้นสุดเซสชัน
OpenClaw
การเปิดใช้งาน: การฉีด Workspace + การส่งข้อความระหว่าง Agent
การตั้งค่า: ดูส่วน "การตั้งค่า OpenClaw" ด้านบน
การตรวจจับ: ผ่านเครื่องมือเซสชันและไฟล์ workspace
คำแนะนำที่ไม่ขึ้นกับ Agent
ไม่ว่าจะเป็น Agent ใด ให้ใช้การปรับปรุงตนเองเมื่อคุณ:
- ค้นพบสิ่งที่ไม่ชัดเจน - โซลูชันไม่เกิดขึ้นทันที
- แก้ไขตัวเอง - แนวทางเริ่มต้นผิดพลาด
- เรียนรู้ข้อตกลงของโครงการ - ค้นพบรูปแบบที่ไม่ได้จัดทำเป็นเอกสาร
- พบข้อผิดพลาดที่ไม่คาดคิด - โดยเฉพาะอย่างยิ่งหากการวินิจฉัยทำได้ยาก
- ค้นพบแนวทางที่ดีกว่า - ปรับปรุงโซลูชันเดิมของคุณ
การรวม Copilot Chat
สำหรับผู้ใช้ Copilot ให้เพิ่มสิ่งนี้ลงใน prompts ของคุณเมื่อเกี่ยวข้อง:
หลังจากเสร็จสิ้นงานนี้ ให้ประเมินว่าควรบันทึกการเรียนรู้ใดๆ ลงใน .learnings/ โดยใช้รูปแบบ self-improvement skill หรือไม่
หรือใช้ quick prompts:
- "บันทึกสิ่งนี้เป็นการเรียนรู้"
- "สร้าง skill จากโซลูชันนี้"
- "ตรวจสอบ .learnings/ สำหรับปัญหาที่เกี่ยวข้อง"