Skip to main content

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.

OpenClaw มอบเครื่องมือให้เอเจนต์เพื่อทำงานข้ามเซสชัน ตรวจสอบสถานะ และ ประสานงานเอเจนต์ย่อย

เครื่องมือที่มีให้ใช้งาน

เครื่องมือสิ่งที่ทำ
sessions_listแสดงรายการเซสชันพร้อมตัวกรองเสริม (ชนิด, ป้ายกำกับ, เอเจนต์, ความใหม่, ตัวอย่าง)
sessions_historyอ่านทรานสคริปต์ของเซสชันที่ระบุ
sessions_sendส่งข้อความไปยังเซสชันอื่นและเลือกได้ว่าจะรอหรือไม่
sessions_spawnสร้างเซสชันเอเจนต์ย่อยแบบแยกสำหรับงานเบื้องหลัง
sessions_yieldจบเทิร์นปัจจุบันและรอผลลัพธ์ติดตามจากเอเจนต์ย่อย
subagentsแสดงรายการ ควบคุมทิศทาง หรือหยุดเอเจนต์ย่อยที่สร้างไว้สำหรับเซสชันนี้
session_statusแสดงการ์ดแบบ /status และเลือกตั้งค่าการแทนที่โมเดลรายเซสชันได้
เครื่องมือเหล่านี้ยังคงอยู่ภายใต้โปรไฟล์เครื่องมือที่ใช้งานอยู่และนโยบายอนุญาต/ปฏิเสธ tools.profile: "coding" รวมชุดประสานงานเซสชันครบถ้วน รวมถึง sessions_spawn, sessions_yield และ subagents tools.profile: "messaging" รวมเครื่องมือส่งข้อความข้ามเซสชัน (sessions_list, sessions_history, sessions_send, session_status) แต่ ไม่รวมการสร้างเอเจนต์ย่อย หากต้องการคงโปรไฟล์การส่งข้อความไว้และยังคง อนุญาตการมอบหมายงานแบบเนทีฟ ให้เพิ่ม:
{
  tools: {
    profile: "messaging",
    alsoAllow: ["sessions_spawn", "sessions_yield", "subagents"],
  },
}
นโยบายระดับกลุ่ม ผู้ให้บริการ แซนด์บ็อกซ์ และรายเอเจนต์ยังคงสามารถลบเครื่องมือเหล่านั้น หลังขั้นตอนโปรไฟล์ได้ ใช้ /tools จากเซสชันที่ได้รับผลกระทบเพื่อตรวจสอบ รายการเครื่องมือที่มีผลจริง

การแสดงรายการและอ่านเซสชัน

sessions_list ส่งคืนเซสชันพร้อม key, agentId, ชนิด, ช่องทาง, โมเดล, จำนวนโทเคน และเวลา กรองตามชนิด (main, group, cron, hook, node), label แบบตรงตัว, agentId แบบตรงตัว, ข้อความค้นหา หรือความใหม่ (activeMinutes) ได้ เมื่อคุณต้องคัดแยกแบบกล่องจดหมาย เครื่องมือนี้ยังสามารถขอ ชื่อที่ได้มาซึ่งจำกัดตามขอบเขตการมองเห็น ตัวอย่างข้อความล่าสุด หรือข้อความล่าสุดแบบจำกัดจำนวน ในแต่ละแถวได้ ชื่อที่ได้มาและตัวอย่างจะถูกสร้างเฉพาะสำหรับ เซสชันที่ผู้เรียกมองเห็นได้อยู่แล้วภายใต้นโยบายการมองเห็นเครื่องมือเซสชันที่กำหนดค่าไว้ ดังนั้นเซสชันที่ไม่เกี่ยวข้องจะยังคงถูกซ่อน sessions_history ดึงทรานสคริปต์การสนทนาสำหรับเซสชันที่ระบุ โดยค่าเริ่มต้น ผลลัพธ์ของเครื่องมือจะถูกแยกออก ให้ส่ง includeTools: true เพื่อดูผลลัพธ์เหล่านั้น มุมมองที่ส่งคืนถูกจำกัดขอบเขตและกรองเพื่อความปลอดภัยโดยเจตนา:
  • ข้อความของ assistant ถูกทำให้เป็นมาตรฐานก่อนเรียกคืน:
    • แท็กการคิดถูกลบออก
    • บล็อกโครง scaffolding ของ <relevant-memories> / <relevant_memories> ถูกลบออก
    • บล็อกเพย์โหลด XML การเรียกเครื่องมือแบบข้อความล้วน เช่น <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls> และ <function_calls>...</function_calls> ถูกลบออก รวมถึงเพย์โหลดที่ถูกตัดทอน ซึ่งไม่เคยปิดอย่างสมบูรณ์
    • โครง scaffolding การเรียกเครื่องมือ/ผลลัพธ์ที่ถูกลดระดับ เช่น [Tool Call: ...], [Tool Result ...] และ [Historical context ...] ถูกลบออก
    • โทเคนควบคุมโมเดลที่รั่วไหล เช่น <|assistant|>, โทเคน ASCII <|...|> อื่นๆ และตัวแปรแบบเต็มความกว้าง <|...|> ถูกลบออก
    • XML การเรียกเครื่องมือ MiniMax ที่ผิดรูปแบบ เช่น <invoke ...> / </minimax:tool_call> ถูกลบออก
  • ข้อความที่คล้ายข้อมูลรับรอง/โทเคนถูกปกปิดก่อนส่งคืน
  • บล็อกข้อความยาวถูกตัดทอน
  • ประวัติที่ใหญ่มากอาจทิ้งแถวเก่ากว่า หรือแทนที่แถวที่ใหญ่เกินด้วย [sessions_history omitted: message too large]
  • เครื่องมือรายงานแฟล็กสรุป เช่น truncated, droppedMessages, contentTruncated, contentRedacted และ bytes
เครื่องมือทั้งสองรับได้ทั้ง session key (เช่น "main") หรือ session ID จากการเรียกรายการก่อนหน้า หากต้องการทรานสคริปต์แบบไบต์ต่อไบต์ที่ตรงทุกประการ ให้ตรวจสอบไฟล์ทรานสคริปต์บน ดิสก์แทนการถือว่า sessions_history เป็นดัมพ์ดิบ

การส่งข้อความข้ามเซสชัน

sessions_send ส่งข้อความไปยังเซสชันอื่นและเลือกได้ว่าจะรอ การตอบกลับหรือไม่:
  • ส่งแล้วไม่รอ: ตั้งค่า timeoutSeconds: 0 เพื่อเข้าคิวและส่งคืน ทันที
  • รอคำตอบ: ตั้งค่า timeout และรับคำตอบแบบอินไลน์
เซสชันแชทที่จำกัดตามเธรด เช่น key ของ Slack หรือ Discord ที่ลงท้ายด้วย :thread:<id> ไม่ใช่เป้าหมาย sessions_send ที่ถูกต้อง ให้ใช้ key ของเซสชันช่องทางหลัก สำหรับการประสานงานระหว่างเอเจนต์ เพื่อไม่ให้ข้อความที่ส่งผ่านเครื่องมือปรากฏ ภายในเธรดที่กำลังโต้ตอบกับมนุษย์อยู่ ข้อความและคำตอบติดตาม A2A จะถูกทำเครื่องหมายเป็นข้อมูลระหว่างเซสชันใน พรอมป์ฝั่งรับ ([Inter-session message ... isUser=false]) และในแหล่งที่มาของทรานสคริปต์ เอเจนต์ฝั่งรับควรปฏิบัติต่อข้อมูลเหล่านี้เป็นข้อมูลที่ส่งผ่านเครื่องมือ ไม่ใช่ คำสั่งโดยตรงที่ผู้ใช้ปลายทางเขียนขึ้น หลังจากเป้าหมายตอบกลับ OpenClaw สามารถรัน ลูปตอบกลับไปมา ซึ่ง เอเจนต์จะสลับกันส่งข้อความ (สูงสุด session.agentToAgent.maxPingPongTurns, ช่วง 0-20, ค่าเริ่มต้น 5) เอเจนต์เป้าหมายสามารถตอบ REPLY_SKIP เพื่อหยุดก่อนกำหนด

ตัวช่วยสถานะและการประสานงาน

session_status เป็นเครื่องมือเทียบเท่า /status แบบเบาสำหรับเซสชันปัจจุบัน หรือเซสชันอื่นที่มองเห็นได้ เครื่องมือนี้รายงานการใช้งาน เวลา สถานะโมเดล/รันไทม์ และ บริบทงานเบื้องหลังที่เชื่อมโยงเมื่อมีอยู่ เช่นเดียวกับ /status เครื่องมือนี้สามารถเติมย้อนหลัง ตัวนับโทเคน/แคชที่มีข้อมูลเบาบางจากรายการการใช้งานล่าสุดในทรานสคริปต์ได้ และ model=default จะล้างการแทนที่รายเซสชัน ใช้ sessionKey="current" สำหรับ เซสชันปัจจุบันของผู้เรียก ป้ายกำกับไคลเอนต์ที่มองเห็นได้ เช่น openclaw-tui ไม่ใช่ session key sessions_yield ตั้งใจจบเทิร์นปัจจุบันเพื่อให้ข้อความถัดไปสามารถเป็น เหตุการณ์ติดตามที่คุณกำลังรอได้ ใช้หลังจากสร้างเอเจนต์ย่อยเมื่อ คุณต้องการให้ผลลัพธ์เมื่อเสร็จสิ้นมาถึงเป็นข้อความถัดไป แทนการสร้าง ลูปสำรวจ subagents เป็นตัวช่วย control-plane สำหรับเอเจนต์ย่อย OpenClaw ที่สร้างไว้แล้ว รองรับ:
  • action: "list" เพื่อตรวจสอบการรันที่ใช้งานอยู่/ล่าสุด
  • action: "steer" เพื่อส่งคำแนะนำติดตามไปยังลูกที่กำลังรันอยู่
  • action: "kill" เพื่อหยุดลูกหนึ่งตัวหรือ all

การสร้างเอเจนต์ย่อย

sessions_spawn สร้างเซสชันแบบแยกสำหรับงานเบื้องหลังโดยค่าเริ่มต้น เครื่องมือนี้ไม่บล็อกเสมอ โดยส่งคืนทันทีพร้อม runId และ childSessionKey ตัวเลือกสำคัญ:
  • runtime: "subagent" (ค่าเริ่มต้น) หรือ "acp" สำหรับเอเจนต์ฮาร์เนสภายนอก
  • การแทนที่ model และ thinking สำหรับเซสชันลูก
  • thread: true เพื่อผูกการสร้างเข้ากับเธรดแชท (Discord, Slack ฯลฯ)
  • sandbox: "require" เพื่อบังคับใช้แซนด์บ็อกซ์กับลูก
  • context: "fork" สำหรับเอเจนต์ย่อยแบบเนทีฟเมื่อลูกต้องการทรานสคริปต์ของ ผู้ขอปัจจุบัน ให้ละไว้หรือใช้ context: "isolated" สำหรับลูกที่สะอาด เอเจนต์ย่อยแบบเนทีฟที่ผูกกับเธรดจะใช้ค่าเริ่มต้นเป็น context: "fork" เว้นแต่ threadBindings.defaultSpawnContext จะระบุเป็นอย่างอื่น
เอเจนต์ย่อย leaf ค่าเริ่มต้นจะไม่ได้รับเครื่องมือเซสชัน เมื่อ maxSpawnDepth >= 2 เอเจนต์ย่อย orchestrator ระดับความลึก 1 จะได้รับ sessions_spawn, subagents, sessions_list และ sessions_history เพิ่มเติม เพื่อให้ สามารถจัดการลูกของตนเองได้ การรัน leaf ยังคงไม่ได้รับเครื่องมือ การประสานงานแบบเรียกซ้ำ หลังเสร็จสิ้น ขั้นตอนประกาศจะโพสต์ผลลัพธ์ไปยังช่องทางของผู้ขอ การส่งผลลัพธ์เมื่อเสร็จสิ้นจะรักษาการกำหนดเส้นทางเธรด/หัวข้อที่ผูกไว้เมื่อมี และหาก ต้นทางของผลลัพธ์เมื่อเสร็จสิ้นระบุเพียงช่องทาง OpenClaw ยังสามารถใช้ เส้นทางที่เก็บไว้ของเซสชันผู้ขอ (lastChannel / lastTo) ซ้ำสำหรับการส่ง โดยตรงได้ สำหรับพฤติกรรมเฉพาะ ACP โปรดดู เอเจนต์ ACP

การมองเห็น

เครื่องมือเซสชันถูกจำกัดขอบเขตเพื่อจำกัดสิ่งที่เอเจนต์มองเห็นได้:
ระดับขอบเขต
selfเฉพาะเซสชันปัจจุบัน
treeเซสชันปัจจุบัน + เอเจนต์ย่อยที่สร้างไว้
agentเซสชันทั้งหมดของเอเจนต์นี้
allเซสชันทั้งหมด (ข้ามเอเจนต์หากกำหนดค่าไว้)
ค่าเริ่มต้นคือ tree เซสชันที่อยู่ในแซนด์บ็อกซ์จะถูกจำกัดไว้ที่ tree ไม่ว่าการกำหนดค่า จะเป็นอย่างไร

อ่านเพิ่มเติม

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