เวิร์กสเปซของเอเจนต์¶
- workspace คือบ้านของเอเจนต์ เวิร์กสเปซคือบ้านของเอเจนต์ เป็นไดเรกทอรีทำงานเพียงแห่งเดียวที่ใช้กับเครื่องมือจัดการไฟล์และบริบทของเวิร์กสเปซ ควรเก็บไว้เป็นส่วนตัวและปฏิบัติกับมันเหมือนหน่วยความจำ 18. เก็บไว้เป็นส่วนตัวและปฏิบัติต่อมันเหมือนหน่วยความจำ
ส่วนนี้แยกจาก ~/.openclaw/ ซึ่งใช้เก็บคอนฟิก ข้อมูลรับรอง และเซสชัน
- สำคัญ: workspace คือ cwd เริ่มต้น, ไม่ใช่ sandbox แบบแข็ง 20. เครื่องมือ
จะแก้พาธสัมพัทธ์โดยอ้างอิงจาก workspace แต่พาธแบบสัมบูรณ์ยังสามารถเข้าถึง
ตำแหน่งอื่นบนโฮสต์ได้ เว้นแต่จะเปิด sandbox 21. หากคุณต้องการการแยก ให้ใช้
agents.defaults.sandbox(และ/หรือการตั้งค่า sandbox ต่อเอเจนต์) สำคัญ: เวิร์กสเปซคือ cwd ค่าเริ่มต้น ไม่ใช่ sandbox แบบตายตัว เครื่องมือจะ resolve พาธแบบ relative เทียบกับเวิร์กสเปซ แต่พาธแบบ absolute ยังสามารถเข้าถึงตำแหน่งอื่นบนโฮสต์ได้ เว้นแต่จะเปิดใช้ sandboxing หากต้องการการแยกที่ชัดเจน ให้ใช้agents.defaults.sandbox(และ/หรือคอนฟิก sandbox แบบต่อเอเจนต์) เมื่อเปิดใช้ sandboxing และworkspaceAccessไม่เป็น"rw"เครื่องมือจะทำงานภายในเวิร์กสเปซของ sandbox ภายใต้~/.openclaw/sandboxesไม่ใช่เวิร์กสเปซบนโฮสต์ของคุณ
ตำแหน่งค่าเริ่มต้น¶
- ค่าเริ่มต้น:
~/.openclaw/workspace - หากตั้งค่า
OPENCLAW_PROFILEและไม่เป็น"default"ค่าเริ่มต้นจะเป็น~/.openclaw/workspace-<profile> - สามารถ override ได้ใน
~/.openclaw/openclaw.json:
{
agent: {
workspace: "~/.openclaw/workspace",
},
}
openclaw onboard , openclaw configure หรือ openclaw setup จะสร้างเวิร์กสเปซและ seed ไฟล์ bootstrap หากยังไม่มี
หากคุณจัดการไฟล์ในเวิร์กสเปซเองอยู่แล้ว สามารถปิดการสร้างไฟล์ bootstrap ได้:
{ agent: { skipBootstrap: true } }
โฟลเดอร์เวิร์กสเปซเพิ่มเติม¶
-
การติดตั้งรุ่นเก่าอาจสร้าง
~/openclawไว้แล้ว การติดตั้งรุ่นเก่าอาจเคยสร้าง~/openclawการเก็บไดเรกทอรีเวิร์กสเปซหลายแห่งพร้อมกันอาจทำให้เกิดความสับสนด้านการยืนยันตัวตนหรือสถานะไม่ตรงกัน เนื่องจากจะมีเวิร์กสเปซที่ทำงานอยู่ได้เพียงแห่งเดียวในแต่ละครั้ง -
คำแนะนำ: ควรมี workspace ที่ใช้งานอยู่เพียงหนึ่งเดียว 24. หากคุณไม่ใช้ โฟลเดอร์เพิ่มเติมเหล่านั้นแล้ว ให้เก็บถาวรหรือย้ายไปที่ถังขยะ (เช่น
trash ~/openclaw) คำแนะนำ: ควรมีเวิร์กสเปซที่ใช้งานอยู่เพียงหนึ่งเดียว หากไม่ใช้โฟลเดอร์เพิ่มเติมแล้ว ให้เก็บถาวรหรือย้ายไปยังถังขยะ (เช่นtrash ~/openclaw) หากตั้งใจเก็บหลายเวิร์กสเปซ ให้ตรวจสอบว่าagents.defaults.workspaceชี้ไปยังเวิร์กสเปซที่ใช้งานอยู่
openclaw doctor จะเตือนเมื่อพบไดเรกทอรีเวิร์กสเปซเพิ่มเติม
แผนผังไฟล์ในเวิร์กสเปซ (แต่ละไฟล์หมายถึงอะไร)¶
ไฟล์มาตรฐานที่ OpenClaw คาดว่าจะมีอยู่ภายในเวิร์กสเปซมีดังนี้:
AGENTS.md- คำแนะนำการทำงานสำหรับเอเจนต์และวิธีใช้หน่วยความจำ
- โหลดเมื่อเริ่มทุกเซสชัน
-
เหมาะสำหรับกฎ ลำดับความสำคัญ และรายละเอียด “วิธีการประพฤติ”
-
SOUL.md - บุคลิก โทน และขอบเขต
-
โหลดทุกเซสชัน
-
USER.md - ข้อมูลว่าผู้ใช้คือใครและควรเรียกอย่างไร
-
โหลดทุกเซสชัน
-
IDENTITY.md -
- ชื่อ บุคลิก และอีโมจิของเอเจนต์
-
สร้าง/อัปเดตระหว่างพิธี bootstrap
-
TOOLS.md -
- บันทึกเกี่ยวกับเครื่องมือและธรรมเนียมการใช้งานในเครื่องของคุณ
-
ไม่ได้ควบคุมความพร้อมใช้งานของเครื่องมือ เป็นเพียงแนวทางเท่านั้น
-
HEARTBEAT.md - เช็กลิสต์ขนาดเล็กแบบไม่บังคับสำหรับการรัน heartbeat
-
ควรสั้นเพื่อหลีกเลี่ยงการใช้โทเคนมากเกินไป
-
BOOT.md - เช็กลิสต์เริ่มต้นระบบแบบไม่บังคับที่รันเมื่อ Gateway รีสตาร์ต หากเปิดใช้ internal hooks
-
ควรสั้น และใช้ message tool สำหรับการส่งออกภายนอก
-
BOOTSTRAP.md - พิธีการรันครั้งแรกแบบครั้งเดียว
- จะถูกสร้างเฉพาะเวิร์กสเปซใหม่เอี่ยมเท่านั้น
-
ลบทิ้งหลังจากพิธีเสร็จสมบูรณ์
-
memory/YYYY-MM-DD.md - บันทึกหน่วยความจำรายวัน (หนึ่งไฟล์ต่อวัน)
-
แนะนำให้อ่านของวันนี้และเมื่อวานเมื่อเริ่มเซสชัน
-
MEMORY.md(ไม่บังคับ) - หน่วยความจำระยะยาวที่คัดสรรแล้ว
- โหลดเฉพาะในเซสชันหลักแบบส่วนตัว (ไม่ใช่บริบทที่แชร์/กลุ่ม)
ดู Memory สำหรับเวิร์กโฟลว์และการล้างหน่วยความจำอัตโนมัติ
skills/(ไม่บังคับ)- Skills เฉพาะเวิร์กสเปซ
-
จะ override Skills ที่จัดการ/บันเดิลไว้เมื่อชื่อซ้ำกัน
-
canvas/(ไม่บังคับ) - ไฟล์ Canvas UI สำหรับการแสดงผลโหนด (เช่น
canvas/index.html)
- หากไฟล์ bootstrap ใดหายไป OpenClaw จะใส่ตัวบ่งชี้ว่า "missing file" ลงใน
เซสชันและทำงานต่อ หากไฟล์ bootstrap ใดหายไป OpenClaw จะใส่ตัวบ่งชี้ “missing file” เข้าไปในเซสชันและดำเนินการต่อ ไฟล์ bootstrap ที่มีขนาดใหญ่จะถูกตัดทอนเมื่อถูกฉีดเข้าไป สามารถปรับขีดจำกัดได้ด้วย
agents.defaults.bootstrapMaxChars(ค่าเริ่มต้น: 20000)openclaw setupสามารถสร้างค่าเริ่มต้นที่ขาดหายไปใหม่ได้โดยไม่เขียนทับไฟล์ที่มีอยู่ openclaw setupสามารถสร้างค่าเริ่มต้นที่หายไปใหม่ได้โดยไม่เขียนทับไฟล์ที่มีอยู่
สิ่งที่ไม่ได้อยู่ในเวิร์กสเปซ¶
สิ่งเหล่านี้อยู่ภายใต้ ~/.openclaw/ และไม่ควร commit ลงในรีโปเวิร์กสเปซ:
~/.openclaw/openclaw.json(คอนฟิก)~/.openclaw/credentials/(โทเคน OAuth คีย์API)~/.openclaw/agents/<agentId>/sessions/(ทรานสคริปต์เซสชัน + เมตาดาตา)~/.openclaw/skills/(Skills ที่จัดการ)
หากต้องย้ายเซสชันหรือคอนฟิก ให้คัดลอกแยกต่างหากและเก็บออกจากระบบควบคุมเวอร์ชัน
สำรองข้อมูลด้วย Git (แนะนำ แบบส่วนตัว)¶
- ปฏิบัติต่อ workspace เหมือนหน่วยความจำส่วนตัว ปฏิบัติกับเวิร์กสเปซเหมือนหน่วยความจำส่วนตัว ใส่ไว้ในรีโป git แบบ ส่วนตัว เพื่อให้มีการสำรองและกู้คืนได้
ให้รันขั้นตอนเหล่านี้บนเครื่องที่ Gateway ทำงานอยู่ (เพราะเวิร์กสเปซอยู่ที่นั่น)
1. เริ่มต้นรีโป¶
หากติดตั้ง git แล้ว เวิร์กสเปซใหม่เอี่ยมจะถูกเริ่มต้นอัตโนมัติ หากเวิร์กสเปซนี้ยังไม่ใช่รีโป ให้รัน: 30. หาก workspace นี้ยังไม่ใช่รีโป ให้รัน:
cd ~/.openclaw/workspace
git init
git add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/
git commit -m "Add agent workspace"
2. เพิ่มรีโมตแบบส่วนตัว (ตัวเลือกที่เป็นมิตรกับผู้เริ่มต้น)¶
ตัวเลือก A: GitHub web UI
- สร้างรีโปใหม่แบบ ส่วนตัว บน GitHub
- อย่าเริ่มต้นด้วย README (เพื่อลดปัญหา merge conflict)
- คัดลอก URL รีโมตแบบ HTTPS
- เพิ่มรีโมตและ push:
git branch -M main
git remote add origin <https-url>
git push -u origin main
ตัวเลือก B: GitHub CLI (gh)
gh auth login
gh repo create openclaw-workspace --private --source . --remote origin --push
ตัวเลือก C: GitLab web UI
- สร้างรีโปใหม่แบบ ส่วนตัว บน GitLab
- อย่าเริ่มต้นด้วย README (เพื่อลดปัญหา merge conflict)
- คัดลอก URL รีโมตแบบ HTTPS
- เพิ่มรีโมตและ push:
git branch -M main
git remote add origin <https-url>
git push -u origin main
3. การอัปเดตอย่างต่อเนื่อง¶
git status
git add .
git commit -m "Update memory"
git push
อย่า commit ความลับ¶
แม้จะเป็นรีโปส่วนตัว ก็ควรหลีกเลี่ยงการเก็บความลับไว้ในเวิร์กสเปซ:
- คีย์API โทเคน OAuth รหัสผ่าน หรือข้อมูลรับรองส่วนตัว
- ทุกอย่างภายใต้
~/.openclaw/ - ดัมพ์แชตดิบหรือไฟล์แนบที่มีความอ่อนไหว
หากจำเป็นต้องเก็บการอ้างอิงที่อ่อนไหว ให้ใช้ placeholder และเก็บความลับจริงไว้ที่อื่น (ตัวจัดการรหัสผ่าน ตัวแปรสภาพแวดล้อม หรือ ~/.openclaw/)
ตัวอย่าง .gitignore สำหรับเริ่มต้นที่แนะนำ:
.DS_Store
.env
**/*.key
**/*.pem
**/secrets*
การย้ายเวิร์กสเปซไปยังเครื่องใหม่¶
- โคลนรีโปไปยังพาธที่ต้องการ (ค่าเริ่มต้น
~/.openclaw/workspace) - ตั้งค่า
agents.defaults.workspaceให้เป็นพาธนั้นใน~/.openclaw/openclaw.json - รัน
openclaw setup --workspace <path>เพื่อ seed ไฟล์ที่ขาดหายไป - หากต้องการเซสชัน ให้คัดลอก
~/.openclaw/agents/<agentId>/sessions/จากเครื่องเดิมแยกต่างหาก
หมายเหตุขั้นสูง¶
- การทำ multi-agent routing สามารถใช้เวิร์กสเปซที่แตกต่างกันต่อเอเจนต์ ดู Channel routing สำหรับการกำหนดค่าการ routing 31. ดู Channel routing สำหรับการตั้งค่าการกำหนดเส้นทาง
- หากเปิดใช้
agents.defaults.sandboxเซสชันที่ไม่ใช่หลักสามารถใช้เวิร์กสเปซ sandbox แบบต่อเซสชันภายใต้agents.defaults.sandbox.workspaceRoot