CLI commands

ช่องทาง

openclaw channels

จัดการบัญชีช่องทางแชตและสถานะรันไทม์ของบัญชีเหล่านั้นบน Gateway

เอกสารที่เกี่ยวข้อง:

คำสั่งทั่วไป

bash
openclaw channels listopenclaw channels list --allopenclaw channels statusopenclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123openclaw channels resolve --channel slack "#general" "@jane"openclaw channels logs --channel all

channels list แสดงเฉพาะช่องทางแชต โดยค่าเริ่มต้นจะแสดงบัญชีที่กำหนดค่าไว้ พร้อมแท็กสถานะ installed, configured และ enabled ของแต่ละบัญชี (ใช้ --json สำหรับเอาต์พุตที่เครื่องอ่านได้) ส่ง --all เพื่อแสดงช่องทางที่รวมมากับระบบแต่ยังไม่มีบัญชีที่กำหนดค่าไว้ รวมถึงช่องทางในแค็ตตาล็อกที่ติดตั้งได้แต่ยังไม่มีอยู่บนดิสก์ด้วย การยืนยันตัวตนของผู้ให้บริการและการใช้งานโมเดลอยู่ในส่วนอื่น: ใช้ openclaw models auth list สำหรับโปรไฟล์การยืนยันตัวตนของผู้ให้บริการ และใช้ openclaw status หรือ openclaw models list สำหรับการใช้งาน/โควตา

สถานะ / ความสามารถ / การแปลงชื่อ / บันทึก

  • channels status: --channel <name>, --probe, --timeout <ms> (ค่าเริ่มต้น 10000), --json
  • channels capabilities: --channel <name>, --account <id> (ต้องใช้ร่วมกับ --channel), --target <dest> (ต้องใช้ร่วมกับ --channel), --timeout <ms> (ค่าเริ่มต้น 10000 และจำกัดสูงสุดที่ 30000), --json
  • channels resolve <entries...>: --channel <name>, --account <id>, --kind <auto|user|group> (ค่าเริ่มต้น auto), --json
  • channels logs: --channel <name|all> (ค่าเริ่มต้น all), --lines <n> (ค่าเริ่มต้น 200), --json

channels status --probe เป็นเส้นทางตรวจสอบแบบสด: เมื่อเชื่อมต่อ Gateway ได้ ระบบจะเรียกใช้การตรวจสอบ probeAccount และ auditAccount ซึ่งเป็นทางเลือกสำหรับแต่ละบัญชี ดังนั้นเอาต์พุตจึงอาจรวมสถานะ การรับส่งข้อมูลพร้อมผลการตรวจสอบ เช่น works, probe failed, audit ok หรือ audit failed หากไม่สามารถเชื่อมต่อ Gateway ได้ channels status จะเปลี่ยนไปใช้ข้อมูลสรุปจากการกำหนดค่าเท่านั้น แทนเอาต์พุตการตรวจสอบแบบสด

อย่าใช้ openclaw sessions, sessions.list ของ Gateway หรือเครื่องมือ sessions_list ของเอเจนต์เป็นตัวบ่งชี้สภาพซ็อกเก็ตของช่องทาง ส่วนเหล่านั้นรายงาน แถวการสนทนาที่จัดเก็บไว้ ไม่ใช่สถานะรันไทม์ของผู้ให้บริการ หลังจากรีสตาร์ตผู้ให้บริการ Discord บัญชีที่เชื่อมต่ออยู่แต่ไม่มีความเคลื่อนไหวอาจทำงานเป็นปกติ แม้ยังไม่มีแถวเซสชัน Discord ปรากฏขึ้นจนกว่าจะเกิดเหตุการณ์สนทนาขาเข้าหรือขาออกครั้งถัดไป

เพิ่ม / ลบบัญชี

bash
openclaw channels add --channel telegram --token <bot-token>openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"openclaw channels remove --channel telegram --delete

channels remove ทำงานเฉพาะกับ Plugin ช่องทางที่ติดตั้ง/กำหนดค่าไว้เท่านั้น สำหรับช่องทางในแค็ตตาล็อกที่ติดตั้งได้ ให้ใช้ channels add ก่อน หากไม่ระบุ --delete ระบบจะถามว่าต้องการปิดใช้งานบัญชีหรือไม่และจะเก็บการกำหนดค่าไว้ ส่วน --delete จะลบรายการการกำหนดค่าโดยไม่ถามยืนยัน สำหรับ Plugin ช่องทางที่มีรันไทม์รองรับ channels remove จะขอให้ Gateway ที่กำลังทำงานหยุดบัญชีที่เลือกก่อนอัปเดตการกำหนดค่าด้วย เพื่อให้การปิดใช้งานหรือการลบบัญชีไม่ทิ้งตัวรับฟังเดิมให้ทำงานต่อไปจนกว่าจะรีสตาร์ต

แฟล็กสำหรับการเพิ่มแบบไม่โต้ตอบที่ใช้ร่วมกันในทุกช่องทาง ได้แก่ --account <id>, --name <name>, --token, --token-file, --bot-token, --app-token, --secret, --secret-file, --password, --cli-path, --url, --base-url, --http-url, --auth-dir และ --use-env (การยืนยันตัวตนจากตัวแปรสภาพแวดล้อม ใช้ได้เฉพาะบัญชีเริ่มต้นในช่องทางที่รองรับ) แฟล็กเฉพาะช่องทางประกอบด้วย:

ช่องทาง แฟล็ก
Google Chat --webhook-path, --webhook-url, --audience-type, --audience
iMessage --cli-path, --db-path, --service, --region
Matrix --homeserver, --user-id, --access-token, --password, --device-name, --initial-sync-limit
Nostr --private-key, --relay-urls
Signal --signal-number, --cli-path, --http-url, --http-host, --http-port
Tlon --ship, --url, --code, --group-channels, --dm-allowlist, --auto-discover-channels
WhatsApp --auth-dir

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

เมื่อเรียกใช้ openclaw channels add โดยไม่มีแฟล็ก ตัวช่วยแบบโต้ตอบอาจถามข้อมูลต่อไปนี้:

  • รหัสบัญชีของแต่ละช่องทางที่เลือก
  • ชื่อที่แสดงซึ่งเป็นตัวเลือกสำหรับบัญชีเหล่านั้น
  • Route these channel accounts to agents now?

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

คุณยังสามารถจัดการกฎการกำหนดเส้นทางเดียวกันภายหลังด้วย openclaw agents bindings, openclaw agents bind และ openclaw agents unbind (ดู เอเจนต์)

เมื่อเพิ่มบัญชีที่ไม่ใช่บัญชีเริ่มต้นลงในช่องทางที่ยังใช้การตั้งค่าระดับบนสุดแบบบัญชีเดียว OpenClaw จะย้ายค่าระดับบนสุดเหล่านั้นเข้าไปในแมปบัญชีของช่องทางก่อนเขียนบัญชีใหม่ การย้ายจะใช้บัญชีที่มีชื่อเดิมซ้ำเมื่อช่องทางมีบัญชีดังกล่าวเพียงบัญชีเดียว หรือเมื่อ defaultAccount ชี้ไปยังบัญชีหนึ่ง มิฉะนั้นค่าจะถูกบันทึกไว้ที่ channels.<channel>.accounts.default

พฤติกรรมการกำหนดเส้นทางยังคงสอดคล้องกัน:

  • การผูกเฉพาะช่องทางที่มีอยู่เดิม (ไม่มี accountId) จะยังคงตรงกับบัญชีเริ่มต้น
  • channels add จะไม่สร้างหรือเขียนการผูกใหม่โดยอัตโนมัติในโหมดไม่โต้ตอบ
  • การตั้งค่าแบบโต้ตอบสามารถเพิ่มการผูกที่มีขอบเขตเฉพาะบัญชีได้ตามต้องการ

หากการกำหนดค่าของคุณอยู่ในสถานะแบบผสมอยู่แล้ว (มีบัญชีที่ตั้งชื่อไว้ และยังตั้งค่าระดับบนสุดแบบบัญชีเดียวอยู่) ให้เรียกใช้ openclaw doctor --fix เพื่อย้ายค่าที่มีขอบเขตเฉพาะบัญชีเข้าไปยังบัญชีที่ถูกเลือกให้เลื่อนระดับสำหรับช่องทางนั้น

เข้าสู่ระบบและออกจากระบบ (แบบโต้ตอบ)

bash
openclaw channels login --channel whatsappopenclaw channels logout --channel whatsapp
  • channels login รองรับ --account <id> และ --verbose; channels logout รองรับ --account <id>
  • channels login และ logout สามารถอนุมานช่องทางได้เมื่อมีช่องทางที่กำหนดค่าไว้เพียงช่องทางเดียวที่รองรับการดำเนินการนั้น หากมีหลายช่องทาง ให้ระบุ --channel
  • channels logout จะเลือกใช้เส้นทาง Gateway แบบสดเมื่อเชื่อมต่อได้ เพื่อให้การออกจากระบบหยุดตัวรับฟังที่ทำงานอยู่ก่อนล้างสถานะการยืนยันตัวตนของช่องทาง หากไม่สามารถเชื่อมต่อ Gateway ภายในเครื่องได้ ระบบจะเปลี่ยนไปล้างข้อมูลการยืนยันตัวตนภายในเครื่องแทน แต่เมื่อใช้ gateway.mode: "remote" ข้อผิดพลาดของ Gateway จะทำให้คำสั่งล้มเหลว
  • หลังเข้าสู่ระบบสำเร็จ CLI จะขอให้ Gateway ภายในเครื่องที่เชื่อมต่อได้เริ่มต้นบัญชี ส่วนในโหมดระยะไกล ระบบจะบันทึกข้อมูลการยืนยันตัวตนไว้ภายในเครื่องและแจ้งว่ารันไทม์ระยะไกลไม่ได้ถูกรีสตาร์ต
  • เรียกใช้ channels login จากเทอร์มินัลบนโฮสต์ Gateway คำสั่ง exec ของเอเจนต์จะบล็อกขั้นตอนการเข้าสู่ระบบแบบโต้ตอบนี้ ควรใช้เครื่องมือเข้าสู่ระบบของเอเจนต์ที่เป็นส่วนหนึ่งของช่องทาง เช่น whatsapp_login จากแชตเมื่อมีให้ใช้งาน

การแก้ไขปัญหา

  • เรียกใช้ openclaw status --deep เพื่อตรวจสอบในวงกว้าง
  • ใช้ openclaw doctor สำหรับการแก้ไขแบบมีคำแนะนำ
  • openclaw channels status จะเปลี่ยนไปใช้ข้อมูลสรุปจากการกำหนดค่าเท่านั้นเมื่อไม่สามารถเชื่อมต่อ Gateway ได้ หากกำหนดค่าข้อมูลรับรองของช่องทางที่รองรับผ่าน SecretRef แต่ข้อมูลรับรองนั้นไม่พร้อมใช้งานในเส้นทางคำสั่งปัจจุบัน ระบบจะรายงานว่าบัญชีนั้นได้รับการกำหนดค่าแล้วพร้อมหมายเหตุว่าสมรรถนะลดลง แทนที่จะแสดงว่ายังไม่ได้กำหนดค่า

การตรวจสอบความสามารถ

ดึงข้อมูลบอกใบ้เกี่ยวกับความสามารถของผู้ให้บริการ (เจตนา/ขอบเขตเมื่อมีให้ใช้งาน) พร้อมการรองรับฟีเจอร์แบบคงที่:

bash
openclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123

หมายเหตุ:

  • --channel เป็นตัวเลือก หากไม่ระบุ ระบบจะแสดงทุกช่องทาง (รวมถึงช่องทางที่ Plugin จัดหาให้)
  • --account ใช้ได้เฉพาะเมื่อใช้ร่วมกับ --channel
  • --target ยอมรับ channel:<id> หรือรหัสช่องทางที่เป็นตัวเลขล้วน และใช้กับ Discord เท่านั้น สำหรับช่องเสียงของ Discord การตรวจสอบสิทธิ์จะระบุ ViewChannel, Connect, Speak, SendMessages และ ReadMessageHistory ที่ขาดหายไป
  • การตรวจสอบจะเฉพาะเจาะจงตามผู้ให้บริการ: อัตลักษณ์บอตและเจตนาของ Discord พร้อมสิทธิ์ของช่องทางที่เป็นตัวเลือก; ขอบเขตบอตและผู้ใช้ของ Slack; แฟล็กบอตและ Webhook ของ Telegram; เวอร์ชันดีมอนของ Signal; โทเค็นแอปและบทบาท/ขอบเขต Graph ของ Microsoft Teams (พร้อมคำอธิบายประกอบเมื่อทราบ) ช่องทางที่ไม่มีการตรวจสอบจะรายงาน Probe: unavailable

แปลงชื่อเป็นรหัส

แปลงชื่อช่องทาง/ผู้ใช้เป็นรหัสโดยใช้ไดเรกทอรีของผู้ให้บริการ:

bash
openclaw channels resolve --channel slack "#general" "@jane"openclaw channels resolve --channel discord "My Server/#support" "@someone"openclaw channels resolve --channel matrix "Project Room"

หมายเหตุ:

  • ใช้ --kind user|group|auto เพื่อบังคับประเภทเป้าหมาย
  • เมื่อมีหลายรายการที่ใช้ชื่อเดียวกัน การแปลงชื่อจะเลือกผลลัพธ์ที่กำลังใช้งานอยู่ก่อน
  • channels resolve เป็นแบบอ่านอย่างเดียว หากบัญชีที่เลือกกำหนดค่าผ่าน SecretRef แต่ข้อมูลรับรองนั้นไม่พร้อมใช้งานในเส้นทางคำสั่งปัจจุบัน คำสั่งจะส่งคืนผลลัพธ์ที่แปลงไม่ได้พร้อมหมายเหตุว่าสมรรถนะลดลง แทนที่จะยกเลิกการทำงานทั้งหมด
  • channels resolve ไม่ติดตั้ง Plugin ช่องทาง ให้ใช้ channels add --channel <name> ก่อนแปลงชื่อสำหรับช่องทางในแค็ตตาล็อกที่ติดตั้งได้

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

Was this useful?
On this page

On this page