ส่วนขยาย Chrome (browser relay)¶
ส่วนขยาย Chrome ของ OpenClaw ช่วยให้เอเจนต์ควบคุม แท็บ Chrome ที่มีอยู่ของคุณ (หน้าต่าง Chrome ปกติ) แทนการเปิดโปรไฟล์ Chrome แยกต่างหากที่จัดการโดย openclaw
การแนบ/ยกเลิกการแนบทำผ่าน ปุ่มเดียวบนแถบเครื่องมือของ Chrome
คืออะไร(แนวคิด)¶
มีองค์ประกอบสามส่วน:
- Browser control service (Gateway หรือโหนด): API ที่เอเจนต์/เครื่องมือเรียกใช้(ผ่าน Gateway)
- Local relay server (loopback CDP): ทำหน้าที่เชื่อมระหว่างเซิร์ฟเวอร์ควบคุมกับส่วนขยาย (
http://127.0.0.1:18792เป็นค่าเริ่มต้น) - ส่วนขยาย Chrome MV3: แนบกับแท็บที่กำลังใช้งานด้วย
chrome.debuggerและส่งต่อข้อความ CDP ไปยังรีเลย์
จากนั้น OpenClaw จะควบคุมแท็บที่แนบผ่านพื้นผิวเครื่องมือ browser ตามปกติ(โดยเลือกโปรไฟล์ที่ถูกต้อง)
ติดตั้ง/โหลด(แบบ unpacked)¶
- ติดตั้งส่วนขยายไปยังพาธภายในเครื่องที่เสถียร:
openclaw browser extension install
- แสดงพาธไดเรกทอรีของส่วนขยายที่ติดตั้งแล้ว:
openclaw browser extension path
- Chrome →
chrome://extensions
- เปิด “Developer mode”
- “Load unpacked” → เลือกไดเรกทอรีที่พิมพ์ออกมาด้านบน
- ปักหมุดส่วนขยาย
อัปเดต(ไม่ต้อง build)¶
ส่วนขยายถูกจัดส่งมาพร้อมกับรีลีสของ OpenClaw(แพ็กเกจ npm)ในรูปแบบไฟล์สแตติก ไม่มีขั้นตอน “build” แยกต่างหาก ไม่มีขั้นตอน “build” แยกต่างหาก
หลังจากอัปเกรด OpenClaw:
- รัน
openclaw browser extension installอีกครั้งเพื่อรีเฟรชไฟล์ที่ติดตั้งภายใต้ไดเรกทอรีสถานะของ OpenClaw - Chrome →
chrome://extensions→ คลิก “Reload” ที่ส่วนขยาย
การใช้งาน(ไม่ต้องคอนฟิกเพิ่ม)¶
OpenClaw มาพร้อมโปรไฟล์เบราว์เซอร์ในตัวชื่อ chrome ซึ่งชี้ไปที่ extension relay บนพอร์ตเริ่มต้น
การใช้งาน:
- CLI:
openclaw browser --browser-profile chrome tabs - เครื่องมือเอเจนต์:
browserพร้อมprofile="chrome"
หากต้องการชื่ออื่นหรือพอร์ตรีเลย์อื่น ให้สร้างโปรไฟล์ของคุณเอง:
openclaw browser create-profile \
--name my-chrome \
--driver extension \
--cdp-url http://127.0.0.1:18792 \
--color "#00AA00"
แนบ/ยกเลิกการแนบ(ปุ่มแถบเครื่องมือ)¶
- เปิดแท็บที่คุณต้องการให้ OpenClaw ควบคุม
- คลิกไอคอนส่วนขยาย
- แบดจ์จะแสดง
ONเมื่อแนบแล้ว - คลิกอีกครั้งเพื่อยกเลิกการแนบ
ควบคุมแท็บใดบ้าง?¶
- ไม่ได้ควบคุม “แท็บใดก็ตามที่คุณกำลังดูอยู่” โดยอัตโนมัติ
- ควบคุม เฉพาะแท็บที่คุณแนบอย่างชัดเจน โดยคลิกปุ่มบนแถบเครื่องมือ
- หากต้องการสลับ: เปิดแท็บอื่นแล้วคลิกไอคอนส่วนขยายในแท็บนั้น
แบดจ์+ข้อผิดพลาดที่พบบ่อย¶
ON: แนบแล้ว; OpenClaw สามารถควบคุมแท็บนั้นได้…: กำลังเชื่อมต่อไปยังรีเลย์ภายในเครื่อง!: ไม่สามารถเข้าถึงรีเลย์ได้(พบบ่อยที่สุด: เซิร์ฟเวอร์ browser relay ไม่ได้รันบนเครื่องนี้)
หากคุณเห็น !:
- ตรวจสอบให้แน่ใจว่า Gateway กำลังรันอยู่ในเครื่องนี้(การตั้งค่าเริ่มต้น)หรือรันโฮสต์โหนดบนเครื่องนี้หาก Gateway อยู่ที่อื่น
- เปิดหน้า Options ของส่วนขยาย; หน้านี้จะแสดงสถานะการเข้าถึงรีเลย์
Gateway ระยะไกล(ใช้โฮสต์โหนด)¶
Gateway ภายในเครื่อง(เครื่องเดียวกับ Chrome) — โดยปกติ ไม่ต้องทำอะไรเพิ่ม¶
หาก Gateway รันอยู่บนเครื่องเดียวกับ Chrome ระบบจะเริ่ม browser control service บน loopback และเริ่มเซิร์ฟเวอร์รีเลย์โดยอัตโนมัติ ส่วนขยายจะสื่อสารกับรีเลย์ภายในเครื่อง ขณะที่การเรียกจาก CLI/เครื่องมือจะไปยัง Gateway ส่วนขยายจะสื่อสารกับรีเลย์ในเครื่อง ส่วนการเรียก CLI/เครื่องมือจะไปที่ Gateway
Gateway ระยะไกล(Gateway รันที่อื่น) — ให้รันโฮสต์โหนด¶
หาก Gateway รันอยู่บนเครื่องอื่น ให้เริ่มโฮสต์โหนดบนเครื่องที่รัน Chrome Gateway จะพร็อกซีการกระทำของเบราว์เซอร์ไปยังโหนดนั้น ส่วนขยาย+รีเลย์จะคงอยู่ภายในเครื่องของเบราว์เซอร์ Gateway จะพร็อกซีการกระทำของเบราว์เซอร์ไปยังโหนดนั้น ส่วนส่วนขยาย + รีเลย์จะคงอยู่ในเครื่องของเครื่องเบราว์เซอร์
หากมีหลายโหนดเชื่อมต่อ ให้ปักหมุดหนึ่งโหนดด้วย gateway.nodes.browser.node หรือกำหนด gateway.nodes.browser.mode.
Sandboxing(คอนเทนเนอร์ของเครื่องมือ)¶
หากเซสชันเอเจนต์ของคุณถูก sandboxed(agents.defaults.sandbox.mode != "off") เครื่องมือ browser อาจถูกจำกัด:
- โดยค่าเริ่มต้น เซสชันที่ถูก sandbox มักจะชี้ไปที่ sandbox browser (
target="sandbox") ไม่ใช่ Chrome บนโฮสต์ของคุณ - การยึดควบคุมผ่าน extension relay จำเป็นต้องควบคุม browser control server บน โฮสต์
ตัวเลือก:
- ง่ายที่สุด: ใช้ส่วนขยายจากเซสชัน/เอเจนต์ที่ ไม่ถูก sandbox
- หรืออนุญาตการควบคุมเบราว์เซอร์บนโฮสต์สำหรับเซสชันที่ถูก sandbox:
{
agents: {
defaults: {
sandbox: {
browser: {
allowHostControl: true,
},
},
},
},
}
จากนั้นตรวจสอบให้แน่ใจว่าเครื่องมือไม่ถูกปฏิเสธโดยนโยบายเครื่องมือ และ(หากจำเป็น)เรียก browser พร้อม target="host".
การดีบัก: openclaw sandbox explain
เคล็ดลับการเข้าถึงระยะไกล¶
- ให้ Gateway และโฮสต์โหนดอยู่ใน tailnet เดียวกัน หลีกเลี่ยงการเปิดพอร์ตรีเลย์สู่ LAN หรืออินเทอร์เน็ตสาธารณะ
- จับคู่โหนดอย่างตั้งใจ ปิดการกำหนดเส้นทางพร็อกซีเบราว์เซอร์หากไม่ต้องการการควบคุมระยะไกล(
gateway.nodes.browser.mode="off")
การทำงานของ “extension path”¶
openclaw browser extension path จะแสดงไดเรกทอรีบนดิสก์ที่ ติดตั้งแล้ว ซึ่งมีไฟล์ส่วนขยายอยู่
CLI ตั้งใจ ไม่แสดงพาธ node_modules. ให้รัน openclaw browser extension install ก่อนเสมอเพื่อคัดลอกส่วนขยายไปยังตำแหน่งที่เสถียรภายใต้ไดเรกทอรีสถานะของ OpenClaw
หากคุณย้ายหรือลบไดเรกทอรีติดตั้งนั้น Chrome จะทำเครื่องหมายว่าส่วนขยายเสียหายจนกว่าคุณจะโหลดใหม่จากพาธที่ถูกต้อง
ผลกระทบด้านความปลอดภัย(โปรดอ่าน)¶
สิ่งนี้ทรงพลังและมีความเสี่ยง นี่เป็นความสามารถที่ทรงพลังและมีความเสี่ยง ควรปฏิบัติเสมือนว่าคุณให้โมเดล “มีมืออยู่บนเบราว์เซอร์ของคุณ”
- ส่วนขยายใช้ Chrome debugger API(
chrome.debugger) เมื่อแนบแล้ว โมเดลสามารถ: เมื่อเชื่อมต่อแล้ว โมเดลสามารถ: - คลิก/พิมพ์/นำทางในแท็บนั้น
- อ่านเนื้อหาหน้าเว็บ
- เข้าถึงทุกสิ่งที่เซสชันที่ล็อกอินในแท็บนั้นเข้าถึงได้
- สิ่งนี้ไม่ได้ถูกแยก เหมือนโปรไฟล์ที่จัดการโดย openclaw โดยเฉพาะ
- หากคุณแนบกับโปรไฟล์/แท็บที่ใช้ประจำ คุณกำลังให้สิทธิ์เข้าถึงสถานะบัญชีนั้น
คำแนะนำ:
- ควรใช้โปรไฟล์ Chrome แยกต่างหาก(แยกจากการท่องเว็บส่วนตัว)สำหรับการใช้ extension relay
- ให้ Gateway และโฮสต์โหนดใดๆอยู่เฉพาะใน tailnet; พึ่งพาการยืนยันตัวตนของ Gateway + การจับคู่โหนด
- หลีกเลี่ยงการเปิดพอร์ตรีเลย์ผ่าน LAN(
0.0.0.0)และหลีกเลี่ยง Funnel(สาธารณะ) - รีเลย์จะบล็อก origin ที่ไม่ใช่ส่วนขยาย และต้องใช้โทเคนยืนยันตัวตนภายในสำหรับไคลเอนต์ CDP
เกี่ยวข้อง: