Fundamentals

พื้นที่ทำงานของเอเจนต์

พื้นที่ทำงานคือโฮมของเอเจนต์: ไดเรกทอรีทำงานที่ใช้สำหรับเครื่องมือไฟล์ และบริบทของพื้นที่ทำงาน ให้เก็บเป็นส่วนตัวและถือว่าเป็นหน่วยความจำ

ส่วนนี้แยกจาก ~/.openclaw/ ซึ่งจัดเก็บการกำหนดค่า ข้อมูลรับรอง และเซสชัน

ตำแหน่งเริ่มต้น

  • ค่าเริ่มต้น: ~/.openclaw/workspace
  • หากตั้งค่า OPENCLAW_PROFILE และค่าไม่ใช่ "default" ค่าเริ่มต้นจะเปลี่ยนเป็น ~/.openclaw/workspace-<profile>
  • เมื่อตั้งค่า OPENCLAW_WORKSPACE_DIR ค่านี้จะแทนที่ทั้งสองค่าข้างต้น
  • เอเจนต์ที่ไม่ใช่ค่าเริ่มต้น (agents.list[]) ซึ่งไม่ได้ระบุพื้นที่ทำงานอย่างชัดเจน จะใช้ <state-dir>/workspace-<agentId> ไม่ใช่พื้นที่ทำงานเริ่มต้นที่ใช้ร่วมกัน

แทนที่ค่าใน ~/.openclaw/openclaw.json:

json5
{  agents: {    defaults: {      workspace: "~/.openclaw/workspace",    },  },}

การแทนที่ค่ารายเอเจนต์: agents.list[].workspace

openclaw onboard, openclaw configure หรือ openclaw setup จะสร้างพื้นที่ทำงานและเติมไฟล์เริ่มต้นหากยังไม่มี

หากจัดการไฟล์พื้นที่ทำงานด้วยตนเองอยู่แล้ว ให้ปิดการสร้างไฟล์เริ่มต้น:

json5
{ agents: { defaults: { skipBootstrap: true } } }

โฟลเดอร์พื้นที่ทำงานเพิ่มเติม

การติดตั้งรุ่นเก่าอาจสร้าง ~/openclaw การเก็บไดเรกทอรีพื้นที่ทำงานหลายแห่งไว้อาจทำให้เกิดความสับสนด้านการยืนยันตัวตนหรือสถานะคลาดเคลื่อน เนื่องจากมีพื้นที่ทำงานที่ใช้งานอยู่ได้ครั้งละหนึ่งแห่งเท่านั้น

แผนผังไฟล์พื้นที่ทำงาน

ไฟล์มาตรฐานที่ OpenClaw คาดว่าจะอยู่ภายในพื้นที่ทำงาน:

AGENTS.md - คำแนะนำการทำงาน

คำแนะนำการทำงานสำหรับเอเจนต์และวิธีใช้หน่วยความจำ โหลดเมื่อเริ่มต้นทุกเซสชัน เหมาะสำหรับกฎ ลำดับความสำคัญ และรายละเอียดเกี่ยวกับ "วิธีปฏิบัติตัว"

SOUL.md - บุคลิกและน้ำเสียง

บุคลิก น้ำเสียง และขอบเขต โหลดทุกเซสชัน คู่มือ: คู่มือบุคลิกภาพ SOUL.md

USER.md - ผู้ใช้คือใคร

ข้อมูลว่าผู้ใช้คือใครและควรเรียกผู้ใช้อย่างไร โหลดทุกเซสชัน

IDENTITY.md - ชื่อ อารมณ์ และอีโมจิ

ชื่อ อารมณ์ และอีโมจิของเอเจนต์ สร้างหรืออัปเดตระหว่างขั้นตอนเริ่มต้น

TOOLS.md - แนวทางการใช้เครื่องมือภายในเครื่อง

หมายเหตุเกี่ยวกับเครื่องมือภายในเครื่องและแนวทางการใช้งาน ไม่ได้ควบคุมความพร้อมใช้งานของเครื่องมือ เป็นเพียงคำแนะนำเท่านั้น

HEARTBEAT.md - รายการตรวจสอบ Heartbeat

รายการตรวจสอบขนาดเล็กที่ไม่บังคับสำหรับการเรียกใช้ Heartbeat ควรเขียนให้สั้นเพื่อหลีกเลี่ยงการใช้โทเค็นสิ้นเปลือง

BOOT.md - รายการตรวจสอบเมื่อเริ่มต้น

รายการตรวจสอบเมื่อเริ่มต้นที่ไม่บังคับ ซึ่งทำงานโดยอัตโนมัติเมื่อ Gateway เริ่มใหม่ (เมื่อเปิดใช้ ฮุกภายใน) ควรเขียนให้สั้น และใช้เครื่องมือข้อความสำหรับการส่งออก

BOOTSTRAP.md - ขั้นตอนการใช้งานครั้งแรก

ขั้นตอนการใช้งานครั้งแรกแบบครั้งเดียว สร้างเฉพาะสำหรับพื้นที่ทำงานใหม่เอี่ยมเท่านั้น ลบไฟล์นี้หลังดำเนินขั้นตอนเสร็จสมบูรณ์

memory/YYYY-MM-DD.md - บันทึกหน่วยความจำรายวัน

บันทึกหน่วยความจำรายวัน (หนึ่งไฟล์ต่อวัน) แนะนำให้อ่านของวันนี้และเมื่อวานเมื่อเริ่มเซสชัน

MEMORY.md - หน่วยความจำระยะยาวที่คัดสรรแล้ว (ไม่บังคับ)

หน่วยความจำระยะยาวที่คัดสรรแล้ว: ข้อเท็จจริงที่คงทน ค่ากำหนด การตัดสินใจ และบทสรุปสั้น ๆ เก็บบันทึกโดยละเอียดไว้ใน memory/YYYY-MM-DD.md เพื่อให้เครื่องมือหน่วยความจำเรียกคืนได้เมื่อต้องการ โดยไม่ต้องแทรกลงในทุกพรอมต์ โหลด MEMORY.md เฉพาะในเซสชันหลักที่เป็นส่วนตัวเท่านั้น (ไม่ใช่บริบทที่ใช้ร่วมกันหรือแบบกลุ่ม) ดูขั้นตอนการทำงานและการล้างหน่วยความจำอัตโนมัติที่ หน่วยความจำ

skills/ - Skills ของพื้นที่ทำงาน (ไม่บังคับ)

Skills เฉพาะพื้นที่ทำงาน เป็นตำแหน่ง Skills ที่มีลำดับความสำคัญสูงสุดสำหรับพื้นที่ทำงานนั้น โดยอยู่เหนือ Skills ของเอเจนต์ในโปรเจกต์ Skills ส่วนตัวของเอเจนต์ Skills ที่มีการจัดการ Skills ที่รวมมาให้ และ skills.load.extraDirs เมื่อชื่อซ้ำกัน

canvas/ - ไฟล์ UI ของ Canvas (ไม่บังคับ)

ไฟล์ UI ของ Canvas สำหรับการแสดงผลบน Node (เช่น canvas/index.html)

สิ่งที่ไม่ได้อยู่ในพื้นที่ทำงาน

รายการต่อไปนี้อยู่ภายใต้ ~/.openclaw/ และไม่ควรคอมมิตไปยังรีโพซิทอรีพื้นที่ทำงาน:

  • ~/.openclaw/openclaw.json (การกำหนดค่า)
  • ~/.openclaw/state/openclaw.sqlite (สถานะการตั้งค่าพื้นที่ทำงานที่ใช้ร่วมกันและเอกสารรับรอง)
  • ~/.openclaw/agents/<agentId>/agent/auth-profiles.json (โปรไฟล์การยืนยันตัวตนของโมเดล: OAuth + คีย์ API)
  • ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite (แถวเซสชัน บันทึกบทสนทนา และสถานะรันไทม์รายเอเจนต์)
  • ~/.openclaw/agents/<agentId>/agent/codex-home/ (บัญชีรันไทม์ Codex รายเอเจนต์ การกำหนดค่า Skills, Plugins และสถานะเธรดแบบเนทีฟ)
  • ~/.openclaw/credentials/ (สถานะช่องทาง/ผู้ให้บริการ รวมถึงข้อมูลนำเข้า OAuth แบบเดิม)
  • ~/.openclaw/agents/<agentId>/sessions/ (ต้นทางการย้ายข้อมูลแบบเดิมและอาร์ติแฟกต์สำหรับการเก็บถาวร/การสนับสนุน)
  • ~/.openclaw/skills/ (Skills ที่มีการจัดการ)

หากต้องการย้ายเซสชันหรือการกำหนดค่า ให้คัดลอกแยกต่างหากและอย่านำเข้าไปอยู่ในการควบคุมเวอร์ชัน

OpenClaw รุ่นเก่าเขียนไฟล์ประกอบพื้นที่ทำงาน openclaw-workspace-state.json, .openclaw/workspace-state.json และ .attested รันไทม์ปัจจุบัน ใช้เฉพาะฐานข้อมูล SQLite ที่ใช้ร่วมกันสำหรับสถานะดังกล่าว หาก Doctor รายงาน ไฟล์ใดไฟล์หนึ่งเหล่านี้ ให้เรียกใช้ openclaw doctor --fix; Doctor จะนำเข้าสถานะ แบบเดิมที่ถูกต้องและลบต้นทางหลังจากตรวจสอบแถวในฐานข้อมูลแล้วเท่านั้น

การสำรองข้อมูลด้วย Git (แนะนำ ให้เป็นส่วนตัว)

ถือว่าพื้นที่ทำงานเป็นหน่วยความจำส่วนตัว ให้นำไปไว้ในรีโพซิทอรี Git แบบ ส่วนตัว เพื่อให้มีข้อมูลสำรองและสามารถกู้คืนได้

เรียกใช้ขั้นตอนเหล่านี้บนเครื่องที่ Gateway ทำงานอยู่ (ซึ่งเป็นตำแหน่งที่พื้นที่ทำงานอยู่)

  • เริ่มต้นรีโพซิทอรี

    หากติดตั้ง Git แล้ว พื้นที่ทำงานใหม่เอี่ยมจะถูกเริ่มต้นโดยอัตโนมัติ หากพื้นที่ทำงานนี้ยังไม่ใช่รีโพซิทอรี ให้เรียกใช้:

    bash
    cd ~/.openclaw/workspacegit initgit add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/git commit -m "Add agent workspace"
  • เพิ่มรีโมตส่วนตัว

    เว็บ UI ของ GitHub

    1. สร้างรีโพซิทอรี ส่วนตัว ใหม่บน GitHub
    2. อย่าเริ่มต้นด้วย README (เพื่อหลีกเลี่ยงข้อขัดแย้งในการผสาน)
    3. คัดลอก URL รีโมตแบบ HTTPS
    4. เพิ่มรีโมตและพุช:
    bash
    git branch -M maingit remote add origin <https-url>git push -u origin main

    GitHub CLI (gh)

    bash
    gh auth logingh repo create openclaw-workspace --private --source . --remote origin --push

    เว็บ UI ของ GitLab

    1. สร้างรีโพซิทอรี ส่วนตัว ใหม่บน GitLab
    2. อย่าเริ่มต้นด้วย README (เพื่อหลีกเลี่ยงข้อขัดแย้งในการผสาน)
    3. คัดลอก URL รีโมตแบบ HTTPS
    4. เพิ่มรีโมตและพุช:
    bash
    git branch -M maingit remote add origin <https-url>git push -u origin main
  • การอัปเดตอย่างต่อเนื่อง

    bash
    git statusgit add .git commit -m "Update memory"git push
  • อย่าคอมมิตข้อมูลลับ

    ตัวอย่างเริ่มต้นที่แนะนำสำหรับ .gitignore:

    gitignore
    .DS_Store.env**/*.key**/*.pem**/secrets*

    การย้ายพื้นที่ทำงานไปยังเครื่องใหม่

  • โคลนรีโพซิทอรี

    โคลนรีโพซิทอรีไปยังพาธที่ต้องการ (ค่าเริ่มต้น ~/.openclaw/workspace)

  • อัปเดตการกำหนดค่า

    ตั้งค่า agents.defaults.workspace เป็นพาธนั้นใน ~/.openclaw/openclaw.json

  • เติมไฟล์ที่หายไป

    เรียกใช้ openclaw setup --workspace <path> เพื่อเติมไฟล์ที่หายไป

  • คัดลอกเซสชัน (ไม่บังคับ)

    หากต้องการเซสชัน ให้คัดลอก ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite จากเครื่องเก่าแยกต่างหาก คัดลอก ~/.openclaw/agents/<agentId>/sessions/ เฉพาะเมื่อต้องการข้อมูลนำเข้าสำหรับการย้ายข้อมูลแบบเดิมหรืออาร์ติแฟกต์สำหรับการเก็บถาวร/การสนับสนุนด้วย

  • หมายเหตุขั้นสูง

    • การกำหนดเส้นทางแบบหลายเอเจนต์สามารถใช้พื้นที่ทำงานที่แตกต่างกันสำหรับแต่ละเอเจนต์ผ่าน agents.list[].workspace ดูการกำหนดค่าเส้นทางที่ การกำหนดเส้นทางช่องทาง
    • หากเปิดใช้ agents.defaults.sandbox เซสชันที่ไม่ใช่เซสชันหลักสามารถใช้พื้นที่ทำงานแซนด์บ็อกซ์รายเซสชันภายใต้ agents.defaults.sandbox.workspaceRoot

    ที่เกี่ยวข้อง

    • Heartbeat - ไฟล์พื้นที่ทำงาน HEARTBEAT.md
    • แซนด์บ็อกซ์ - การเข้าถึงพื้นที่ทำงานในสภาพแวดล้อมแบบแซนด์บ็อกซ์
    • เซสชัน - พาธจัดเก็บเซสชัน
    • คำสั่งถาวร - คำแนะนำถาวรในไฟล์พื้นที่ทำงาน
    Was this useful?
    On this page

    On this page