Fundamentals

รันไทม์ของเอเจนต์

OpenClaw เรียกใช้ รันไทม์เอเจนต์แบบฝังตัวเดียว - หนึ่งโปรเซสเอเจนต์ต่อ Gateway พร้อมเวิร์กสเปซ ไฟล์บูตสแตรป และที่เก็บเซสชันของตัวเอง หน้านี้ ครอบคลุมสัญญาของรันไทม์นั้น: เวิร์กสเปซต้องมีอะไรบ้าง ไฟล์ใดถูกฉีดเข้าไป และเซสชันบูตสแตรปกับสิ่งนั้นอย่างไร

เวิร์กสเปซ (จำเป็น)

OpenClaw ใช้ไดเรกทอรีเวิร์กสเปซเอเจนต์เดียว (agents.defaults.workspace) เป็นไดเรกทอรีทำงาน (cwd) เพียงแห่งเดียว ของเอเจนต์สำหรับเครื่องมือและบริบท

แนะนำ: ใช้ openclaw setup เพื่อสร้าง ~/.openclaw/openclaw.json หากยังไม่มี และเริ่มต้นไฟล์เวิร์กสเปซ

ผังเวิร์กสเปซฉบับเต็ม + คู่มือสำรองข้อมูล: เวิร์กสเปซเอเจนต์

หากเปิดใช้ agents.defaults.sandbox เซสชันที่ไม่ใช่เซสชันหลักสามารถแทนที่ค่านี้ด้วย เวิร์กสเปซรายเซสชันภายใต้ agents.defaults.sandbox.workspaceRoot (ดู การกำหนดค่า Gateway)

ไฟล์บูตสแตรป (ถูกฉีด)

ภายใน agents.defaults.workspace OpenClaw คาดหวังไฟล์ที่ผู้ใช้แก้ไขได้เหล่านี้:

  • AGENTS.md - คำแนะนำการปฏิบัติงาน + "หน่วยความจำ"
  • SOUL.md - บุคลิก ขอบเขต น้ำเสียง
  • TOOLS.md - บันทึกเครื่องมือที่ผู้ใช้ดูแลเอง (เช่น imsg, sag, แบบแผน)
  • BOOTSTRAP.md - พิธีเริ่มใช้งานครั้งแรกแบบครั้งเดียว (ลบหลังทำเสร็จ)
  • IDENTITY.md - ชื่อ/บรรยากาศ/อีโมจิของเอเจนต์
  • USER.md - โปรไฟล์ผู้ใช้ + วิธีเรียกที่ต้องการ

ในเทิร์นแรกของเซสชันใหม่ OpenClaw จะฉีดเนื้อหาของไฟล์เหล่านี้เข้าไปใน Project Context ของพรอมป์ระบบ

ไฟล์ว่างจะถูกข้าม ไฟล์ขนาดใหญ่จะถูกตัดแต่งและตัดทอนพร้อมเครื่องหมาย เพื่อให้พรอมป์กระชับอยู่เสมอ (อ่านไฟล์เพื่อดูเนื้อหาทั้งหมด)

หากไฟล์หายไป OpenClaw จะฉีดบรรทัดเครื่องหมาย "ไฟล์หายไป" เพียงบรรทัดเดียว (และ openclaw setup จะสร้างเทมเพลตเริ่มต้นที่ปลอดภัย)

BOOTSTRAP.md จะถูกสร้างเฉพาะสำหรับ เวิร์กสเปซใหม่เอี่ยม (ไม่มีไฟล์บูตสแตรปอื่นอยู่) ขณะที่ยังค้างอยู่ OpenClaw จะคงไฟล์นี้ไว้ใน Project Context และเพิ่มคำแนะนำบูตสแตรปในพรอมป์ระบบสำหรับพิธีเริ่มต้น แทนที่จะคัดลอกเข้าไปในข้อความผู้ใช้ หากคุณลบไฟล์นี้หลังทำพิธีเสร็จแล้ว ไฟล์ไม่ควรถูกสร้างใหม่เมื่อรีสตาร์ทภายหลัง

หลังจากสังเกตเห็นเวิร์กสเปซแล้ว OpenClaw จะคงเครื่องหมายรับรองไดเรกทอรีสถานะสำหรับพาธเวิร์กสเปซไว้ด้วย หากเวิร์กสเปซที่เพิ่งได้รับการรับรองหายไปหรือถูกล้าง การเริ่มต้นจะปฏิเสธการเพาะ BOOTSTRAP.md ใหม่แบบเงียบ ๆ ให้กู้คืนเวิร์กสเปซหรือใช้การรีเซ็ตการเริ่มใช้งานแบบเต็ม เพื่อให้ล้างเวิร์กสเปซและเครื่องหมายพร้อมกัน

หากต้องการปิดการสร้างไฟล์บูตสแตรปทั้งหมด (สำหรับเวิร์กสเปซที่เตรียมไว้ล่วงหน้า) ให้ตั้งค่า:

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

เครื่องมือในตัว

เครื่องมือหลัก (read/exec/edit/write และเครื่องมือระบบที่เกี่ยวข้อง) พร้อมใช้งานเสมอ ภายใต้นโยบายเครื่องมือ apply_patch เป็นทางเลือกและถูกควบคุมด้วย tools.exec.applyPatch TOOLS.md ไม่ได้ ควบคุมว่ามีเครื่องมือใดอยู่บ้าง แต่เป็น คำแนะนำว่าคุณต้องการให้ ใช้ เครื่องมือเหล่านั้นอย่างไร

Skills

OpenClaw โหลด Skills จากตำแหน่งเหล่านี้ (ลำดับความสำคัญสูงสุดก่อน):

  • เวิร์กสเปซ: <workspace>/skills
  • Skills เอเจนต์ของโปรเจกต์: <workspace>/.agents/skills
  • Skills เอเจนต์ส่วนตัว: ~/.agents/skills
  • ที่จัดการ/ในเครื่อง: ~/.openclaw/skills
  • ที่รวมมากับแพ็กเกจ (มาพร้อมกับการติดตั้ง)
  • โฟลเดอร์ Skills เพิ่มเติม: skills.load.extraDirs

ราก Skills สามารถมีโฟลเดอร์แบบจัดกลุ่ม เช่น <workspace>/skills/personal/foo/SKILL.md; Skills ยังคงถูกเปิดเผยด้วยชื่อ frontmatter แบบแบน เช่น foo

Skills สามารถถูกควบคุมด้วย config/env (ดู skills ใน การกำหนดค่า Gateway)

ขอบเขตรันไทม์

รันไทม์เอเจนต์แบบฝังตัวเป็นของ OpenClaw: การค้นหาโมเดล การต่อสายเครื่องมือ การประกอบพรอมป์ การจัดการเซสชัน และการส่งผ่านช่องทางใช้พื้นผิวรันไทม์แบบบูรณาการเดียวร่วมกัน

เซสชัน

ทรานสคริปต์เซสชันถูกเก็บเป็น JSONL ที่:

  • ~/.openclaw/agents/<agentId>/sessions/&lt;SessionId&gt;.jsonl

ID เซสชันมีความเสถียรและถูกเลือกโดย OpenClaw โฟลเดอร์เซสชันเดิมจากเครื่องมืออื่นจะไม่ถูกอ่าน

การชี้นำขณะสตรีม

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

/queue steer คือพฤติกรรมเริ่มต้นของการรันที่ทำงานอยู่ /queue followup และ /queue collect ทำให้ข้อความรอเทิร์นภายหลังแทนการชี้นำ /queue interrupt จะยกเลิกการรันที่ทำงานอยู่แทน ดู คิว และ คิวการชี้นำ สำหรับพฤติกรรมของคิวและขอบเขต

การสตรีมแบบบล็อกส่งบล็อกผู้ช่วยที่เสร็จสมบูรณ์ทันทีเมื่อแต่ละบล็อกเสร็จ; โดย ปิดเป็นค่าเริ่มต้น (agents.defaults.blockStreamingDefault: "off") ปรับขอบเขตผ่าน agents.defaults.blockStreamingBreak (text_end เทียบกับ message_end; ค่าเริ่มต้นคือ text_end) ควบคุมการแบ่งชิ้นบล็อกแบบอ่อนด้วย agents.defaults.blockStreamingChunk (ค่าเริ่มต้นคือ 800-1200 ตัวอักษร; ให้ความสำคัญกับการแบ่งย่อหน้า จากนั้นขึ้นบรรทัดใหม่; ประโยคเป็นลำดับสุดท้าย) รวมชิ้นที่สตรีมด้วย agents.defaults.blockStreamingCoalesce เพื่อลด สแปมบรรทัดเดี่ยว (รวมตามช่วงว่างก่อนส่ง) ช่องทางที่ไม่ใช่ Telegram ต้องใช้ *.blockStreaming: true อย่างชัดเจนเพื่อเปิดใช้การตอบกลับแบบบล็อก สรุปเครื่องมือแบบละเอียดจะถูกปล่อยเมื่อเครื่องมือเริ่มทำงาน (ไม่มี debounce); Control UI สตรีมเอาต์พุตเครื่องมือผ่านอีเวนต์เอเจนต์เมื่อมี รายละเอียดเพิ่มเติม: การสตรีม + การแบ่งชิ้น

การอ้างอิงโมเดล

การอ้างอิงโมเดลใน config (เช่น agents.defaults.model และ agents.defaults.models) ถูกแยกโดยตัดที่ / ตัวแรก

  • ใช้ provider/model เมื่อกำหนดค่าโมเดล
  • หาก ID โมเดลเองมี / (สไตล์ OpenRouter) ให้ใส่คำนำหน้า provider (ตัวอย่าง: openrouter/moonshotai/kimi-k2)
  • หากคุณละ provider ไว้ OpenClaw จะลอง alias ก่อน จากนั้นลองจับคู่ configured-provider ที่ไม่ซ้ำสำหรับ ID โมเดลนั้นแบบตรงตัว และหลังจากนั้นเท่านั้นจึงถอยกลับ ไปยัง provider เริ่มต้นที่กำหนดค่าไว้ หาก provider นั้นไม่เปิดเผยโมเดลเริ่มต้น ที่กำหนดค่าไว้อีกต่อไป OpenClaw จะถอยกลับไปยัง provider/model ที่กำหนดค่าไว้ตัวแรกแทนการแสดงค่าเริ่มต้น provider ที่ถูกลบและล้าสมัย

การกำหนดค่า (ขั้นต่ำ)

อย่างน้อย ให้ตั้งค่า:

  • agents.defaults.workspace
  • channels.whatsapp.allowFrom (แนะนำอย่างยิ่ง)

ถัดไป: แชทกลุ่ม 🦞

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

Was this useful?
On this page

On this page