CLI commands
เอเจนต์
openclaw agent
เรียกใช้ Agent หนึ่งรอบผ่าน Gateway หากคำขอไปยัง Gateway ล้มเหลว ระบบจะถอยกลับไปใช้ Agent แบบฝังตัว หรือส่ง --local เพื่อบังคับใช้การทำงานแบบฝังตัวตั้งแต่ต้น
ส่งตัวเลือกระบุเซสชันอย่างน้อยหนึ่งรายการ ได้แก่ --to, --session-key, --session-id หรือ --agent
ที่เกี่ยวข้อง: เครื่องมือส่งของ Agent
ตัวเลือก
-m, --message <text>: เนื้อหาข้อความ--message-file <path>: อ่านเนื้อหาข้อความจากไฟล์ UTF-8-t, --to <dest>: ผู้รับที่ใช้สร้างคีย์เซสชัน--session-key <key>: คีย์เซสชันที่ระบุอย่างชัดเจนเพื่อใช้กำหนดเส้นทาง--session-id <id>: รหัสเซสชันที่ระบุอย่างชัดเจน--agent <id>: รหัส Agent ซึ่งมีลำดับความสำคัญเหนือการผูกการกำหนดเส้นทาง--model <id>: แทนที่โมเดลสำหรับการเรียกใช้ครั้งนี้ (provider/modelหรือรหัสโมเดล)--thinking <level>: ระดับการคิดของ Agent (off,minimal,low,medium,highรวมถึงระดับกำหนดเองที่ผู้ให้บริการรองรับ เช่นxhigh,adaptiveหรือmax)--verbose <on|off>: บันทึกระดับความละเอียดสำหรับเซสชัน--channel <channel>: ช่องทางการส่ง หากละไว้จะใช้ช่องทางของเซสชันหลัก--reply-to <target>: แทนที่เป้าหมายการส่ง--reply-channel <channel>: แทนที่ช่องทางการส่ง--reply-account <id>: แทนที่บัญชีที่ใช้ส่ง--local: เรียกใช้ Agent แบบฝังตัวโดยตรง (หลังโหลดรีจิสทรี Plugin ล่วงหน้า)--deliver: ส่งคำตอบกลับไปยังช่องทาง/เป้าหมายที่เลือก--timeout <seconds>: แทนที่ระยะหมดเวลาของ Agent (ค่าเริ่มต้น 600 หรือagents.defaults.timeoutSeconds);0ปิดการหมดเวลา--json: แสดงผลเป็น JSON
ตัวอย่าง
openclaw agent --to +15555550123 --message "status update" --deliveropenclaw agent --agent ops --message "Summarize logs"openclaw agent --agent ops --message-file ./task.mdopenclaw agent --agent ops --model openai/gpt-5.4 --message "Summarize logs"openclaw agent --session-key agent:ops:incident-42 --message "Summarize status"openclaw agent --agent ops --session-key incident-42 --message "Summarize status"openclaw agent --session-id 1234 --message "Summarize inbox" --thinking mediumopenclaw agent --to +15555550123 --message "Trace logs" --verbose on --jsonopenclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"openclaw agent --agent ops --message "Run locally" --localหมายเหตุ
- ส่ง
--messageหรือ--message-fileเพียงหนึ่งรายการเท่านั้น--message-fileจะตัด BOM UTF-8 ที่อยู่ต้นไฟล์และคงเนื้อหาหลายบรรทัดไว้ โดยจะปฏิเสธไฟล์ที่ไม่ใช่ UTF-8 ที่ถูกต้อง - คำสั่งแบบเครื่องหมายทับ (เช่น
/compact) ไม่สามารถเรียกใช้ผ่าน--messageได้ CLI จะปฏิเสธและชี้ไปยังคำสั่งเฉพาะโดยตรงแทน (openclaw sessions compact <key>สำหรับ Compaction) - การเรียกใช้ด้วย
--localและการถอยกลับไปใช้แบบฝังตัวเป็นการทำงานครั้งเดียว: ทรัพยากร MCP local loopback ที่รวมมาให้และเซสชัน stdio ของ Claude แบบอุ่นที่เปิดสำหรับการเรียกใช้นั้นจะถูกยุติหลังจากได้รับคำตอบ เพื่อให้การเรียกใช้จากสคริปต์ไม่ทิ้งโปรเซสลูกในเครื่องไว้ ส่วนการเรียกใช้ที่ทำงานผ่าน Gateway จะเก็บทรัพยากร MCP loopback ที่ Gateway เป็นเจ้าของไว้ภายใต้โปรเซส Gateway ที่กำลังทำงาน - เมื่อใช้
--agent,--channelและ--toร่วมกัน การกำหนดเส้นทางเซสชันจะเป็นไปตามผู้รับมาตรฐานของช่องทางและsession.dmScopeช่องทางที่มีข้อมูลประจำตัวผู้รับสำหรับส่งออกเท่านั้นที่เสถียร จะใช้เซสชันที่ผู้ให้บริการเป็นเจ้าของซึ่งแยกออกจากเซสชันหลักของ Agent ส่วน--reply-channelและ--reply-accountมีผลต่อการส่งเท่านั้น --session-keyเลือกคีย์เซสชันที่ระบุอย่างชัดเจน คีย์ที่ขึ้นต้นด้วย Agent ต้องใช้รูปแบบagent:<agent-id>:<session-key>และเมื่อระบุทั้งสองรายการ--agentต้องตรงกับรหัส Agent ในคีย์ คีย์เปล่าที่ไม่ใช่ค่าพิเศษจะถูกจำกัดขอบเขตตาม--agentเมื่อระบุ หรือใช้ Agent เริ่มต้นที่กำหนดค่าไว้ในกรณีอื่น ตัวอย่างเช่น--agent ops --session-key incident-42จะกำหนดเส้นทางไปยังagent:ops:incident-42คีย์ตามตัวอักษรglobalและunknownจะไม่มีขอบเขตเฉพาะเฉพาะเมื่อไม่ได้ระบุ--agentเท่านั้น--jsonสงวน stdout ไว้สำหรับการตอบกลับ JSON ส่วนข้อมูลวินิจฉัยจาก Gateway, Plugin และการถอยกลับไปใช้แบบฝังตัวจะส่งไปยัง stderr เพื่อให้สคริปต์แยกวิเคราะห์ stdout ได้โดยตรง- JSON จากการถอยกลับไปใช้แบบฝังตัวจะมี
meta.transport: "embedded"และmeta.fallbackFrom: "gateway"เพื่อให้สคริปต์ตรวจพบการเรียกใช้แบบถอยกลับได้ - หาก Gateway ยอมรับการเรียกใช้ แต่ CLI หมดเวลาขณะรอคำตอบสุดท้าย การถอยกลับไปใช้แบบฝังตัวจะใช้รหัสเซสชัน/การเรียกใช้
gateway-fallback-*ใหม่ และรายงานmeta.fallbackReason: "gateway_timeout"พร้อมฟิลด์เซสชันสำหรับการถอยกลับ แทนที่จะแย่งใช้ทรานสคริปต์ที่ Gateway เป็นเจ้าของหรือแทนที่เซสชันเดิมโดยไม่แจ้ง SIGTERM/SIGINTจะขัดจังหวะคำขอที่ทำงานผ่าน Gateway ซึ่งกำลังรออยู่ หาก Gateway ยอมรับการเรียกใช้แล้ว CLI จะส่งchat.abortสำหรับรหัสการเรียกใช้นั้นก่อนออกด้วย การเรียกใช้ด้วย--localและการถอยกลับไปใช้แบบฝังตัวจะได้รับสัญญาณเดียวกัน แต่จะไม่ส่งchat.abortหากคีย์ภายในสำหรับป้องกันการเรียกใช้ซ้ำมีการเรียกใช้ที่ทำงานอยู่สำหรับเซสชันนี้แล้ว การตอบกลับจะรายงานstatus: "in_flight"และ CLI ที่ไม่ใช่ JSON จะแสดงข้อมูลวินิจฉัยทาง stderr แทนคำตอบว่าง สำหรับตัวครอบ cron/systemd ภายนอก ให้มีการบังคับยุติเป็นมาตรการสำรอง เช่นtimeout -k 60 600 openclaw agent ...เพื่อให้ตัวควบคุมสามารถเก็บกวาดโปรเซสได้หากไม่สามารถรอให้การปิดระบบเสร็จสิ้น- เมื่อคำสั่งนี้กระตุ้นให้สร้าง
models.jsonใหม่ ข้อมูลรับรองของผู้ให้บริการที่จัดการด้วย SecretRef จะถูกบันทึกเป็นเครื่องหมายที่ไม่ใช่ความลับ (เช่น ชื่อตัวแปรสภาพแวดล้อม,secretref-env:ENV_VAR_NAMEหรือsecretref-managed) โดยจะไม่บันทึกข้อความลับแบบข้อความธรรมดาที่ผ่านการแก้ค่าแล้ว การเขียนเครื่องหมายมาจากสแนปช็อตการกำหนดค่าต้นทางที่ใช้งานอยู่ ไม่ใช่จากค่าความลับของรันไทม์ที่ผ่านการแก้ค่าแล้ว
สถานะการส่ง JSON
เมื่อใช้ --json --deliver การตอบกลับ JSON ของ CLI จะมี deliveryStatus ระดับบนสุด เพื่อให้สคริปต์แยกแยะการส่งที่สำเร็จ ถูกระงับ สำเร็จบางส่วน และล้มเหลวได้:
{ "payloads": [{ "text": "Report ready", "mediaUrl": null }], "meta": { "durationMs": 1200 }, "deliveryStatus": { "requested": true, "attempted": true, "status": "sent", "succeeded": true, "resultCount": 1 }}การตอบกลับ CLI ที่ทำงานผ่าน Gateway จะคงรูปแบบผลลัพธ์ดิบจาก Gateway ไว้ที่ result.deliveryStatus ด้วย
deliveryStatus.status เป็นค่าใดค่าหนึ่งต่อไปนี้:
| สถานะ | ความหมาย |
|---|---|
sent |
การส่งเสร็จสมบูรณ์ |
suppressed |
ตั้งใจไม่ส่ง (เช่น ฮุกการส่งข้อความยกเลิก หรือไม่มีผลลัพธ์ที่มองเห็นได้) เป็นสถานะสิ้นสุดและจะไม่ลองใหม่ |
partial_failed |
ส่งเพย์โหลดอย่างน้อยหนึ่งรายการสำเร็จก่อนที่เพย์โหลดรายการถัดมาจะล้มเหลว |
failed |
ไม่มีการส่งถาวรที่เสร็จสมบูรณ์ หรือการตรวจสอบก่อนส่งล้มเหลว |
ฟิลด์ทั่วไป:
requested: เป็นtrueเสมอเมื่อมีออบเจ็กต์นี้attempted: เป็นtrueเมื่อเส้นทางการส่งถาวรทำงานแล้ว และเป็นfalseสำหรับความล้มเหลวก่อนส่งหรือเมื่อไม่มีเพย์โหลดที่มองเห็นได้succeeded: เป็นtrue,falseหรือ"partial"โดย"partial"ใช้คู่กับstatus: "partial_failed"reason: เหตุผลรูปแบบตัวพิมพ์เล็กคั่นด้วยขีดล่างจากการส่งถาวรหรือการตรวจสอบก่อนส่ง ค่าที่ทราบ ได้แก่cancelled_by_message_sending_hook,no_visible_payload,no_visible_result,channel_resolved_to_internal,unknown_channel,invalid_delivery_targetและno_delivery_targetส่วนการส่งถาวรที่ล้มเหลวอาจรายงานขั้นตอนที่ล้มเหลวด้วย ให้ถือว่าค่าที่ไม่รู้จักเป็นข้อมูลทึบแสง เนื่องจากชุดค่านี้อาจเพิ่มขึ้นได้resultCount: จำนวนผลลัพธ์การส่งผ่านช่องทาง เมื่อมีข้อมูลsentBeforeError: เป็นtrueเมื่อความล้มเหลวบางส่วนส่งเพย์โหลดอย่างน้อยหนึ่งรายการก่อนเกิดข้อผิดพลาดerror: เป็นtrueสำหรับการส่งที่ล้มเหลวหรือล้มเหลวบางส่วนerrorMessage: มีเฉพาะเมื่อบันทึกข้อความข้อผิดพลาดพื้นฐานของการส่งได้ ความล้มเหลวก่อนส่งจะมีerror/reasonแต่ไม่มีerrorMessagepayloadOutcomes: ผลลัพธ์รายเพย์โหลดที่เป็นทางเลือก ซึ่งอาจมีindex,status,reason,resultCount,error,stage,sentBeforeErrorหรือเมทาดาทาของฮุกเมื่อมีข้อมูล
ที่เกี่ยวข้อง
Was this useful?