ริกและเอนโคลเจอร์
ริก คือเครื่องใช้แล้วทิ้งที่เอเจนต์ขับเคลื่อนแบบเรียลไทม์ — เบราว์เซอร์ เดสก์ท็อป Linux โปรแกรมจำลอง Android เครื่องจำลอง iOS หรือเครื่องที่อยู่ เบื้องหลังเทอร์มินัลในเอนโคลเจอร์ ริกส่วนใหญ่เป็น VM ส่วนโปรแกรมจำลองมือถือ ที่โฮสต์จัดการเองเป็นข้อยกเว้นที่ระบุไว้ชัดเจน หน้านี้อธิบายขอบเขตแต่ละอย่าง และเหตุใดชิ้นส่วนต่าง ๆ จึงถูกออกแบบมาแบบนี้ หากต้องการเปิดริก ดู ให้เอเจนต์มีเครื่องสำหรับทดสอบ ส่วนคำกริยา พอร์ต และค่าเริ่มต้นที่แน่นอน ดูได้ที่ ข้อมูลอ้างอิงริก
ทำไมต้อง VM ไม่ใช่แซนด์บ็อกซ์
หัวข้อที่มีชื่อว่า “ทำไมต้อง VM ไม่ใช่แซนด์บ็อกซ์”แซนด์บ็อกซ์แบบเนทีฟ ห่อหุ้ม
โพรเซสด้วยการแยกเนมสเปซ — เป็นของจริง แต่ใช้เคอร์เนลร่วมกับคุณ และมันจำกัด
โพรเซส ไม่ใช่ เครื่อง ทันทีที่เอเจนต์ต้องคลิกไปทั่วแอปเดสก์ท็อป เรนเดอร์
หน้าเว็บในเบราว์เซอร์จริง หรือรันการทดลอง rm -rf ที่คุณไม่อยากคิดถึง
ขอบเขตที่ซื่อตรงก็คือเครื่องหนึ่งเครื่อง: เคอร์เนลของตัวเอง ดิสก์ของตัวเอง
สแตกเครือข่ายของตัวเอง
พื้นผิวที่อยู่ในเอนโคลเจอร์ใช้แบ็กเอนด์ VM สองแบบ:
- microVM สำหรับเทอร์มินัลและเบราว์เซอร์ — บูตไฮเปอร์ไวเซอร์ภายในเวลา ไม่ถึงวินาทีจากอิมเมจคอนเทนเนอร์ที่ปักหมุดด้วยไดเจสต์
- QEMU สำหรับเดสก์ท็อป Linux แบบเต็ม ซึ่งต้องใช้อุปกรณ์แสดงผลที่ microVM ไม่มี
พื้นผิวมือถือถูกจัดการโดยโฮสต์ และระบุขอบเขตที่อ่อนกว่าไว้อย่างตรงไปตรงมา:
- Android ขับโปรแกรมจำลองของ Google ผ่าน ADB
- iOS สร้างและเป็นเจ้าของอุปกรณ์ CoreSimulator บนโฮสต์ Mac และขับมันผ่าน WebDriverAgent อุปกรณ์และข้อมูลของมันจะถูกลบเมื่อปิดริก แต่เครือข่ายของมัน ตามโฮสต์ Mac
ริกในเอนโคลเจอร์เขียนลงโอเวอร์เลย์แบบใช้แล้วทิ้งบนอิมเมจฐานแบบอ่านอย่างเดียว ดังนั้นริกหนึ่งจึงเปลี่ยนแปลงสิ่งที่ริกถัดไปบูตจากมันไม่ได้ ริก iOS เป็นเจ้าของ อุปกรณ์ CoreSimulator แบบใช้แล้วทิ้งที่ถูกลบเมื่อปิดริก ส่วน Android เชื่อมต่อ กับโปรแกรมจำลองบนโฮสต์ที่อยู่ยืนยาวกว่าเซสชัน
เอเกรสแบบปฏิเสธโดยค่าเริ่มต้น
หัวข้อที่มีชื่อว่า “เอเกรสแบบปฏิเสธโดยค่าเริ่มต้น”เครือข่ายของริกเริ่มต้นที่ ไม่มีอะไรเลย โฮสต์จะได้รับอนุญาตเป็นรายริกผ่าน
ประตูที่เกสต์หาเส้นทางเลี่ยงไม่ได้: ทางออกเดียวของเครื่องคือทางที่การตั้งค่า
ตอนเปิดสร้างไว้ เทอร์มินัลในเอนโคลเจอร์ได้พื้นฐานสำหรับนักพัฒนา (รีจิสทรีแพ็กเกจ
โฮสต์โค้ด มิเรอร์ apt) ริกเบราว์เซอร์อนุญาตไซต์ของผลิตภัณฑ์ (usectrl.dev)
และบูตไปที่หน้า file:// ภายในเครื่องที่ไม่ต้องใช้เอเกรสเลย ทุกอย่างอื่นถูก
ปฏิเสธตอนเชื่อมต่อ
Android และ iOS ไม่ได้อยู่ภายใต้ประตูนี้ โปรแกรมจำลองบนโฮสต์ของทั้งคู่ใช้ เครือข่ายของโฮสต์เซิร์ฟเวอร์ ดังนั้น UI และรายงานความสามารถจึงระบุว่าไม่ได้ บังคับใช้เอเกรส และไม่เสนอตัวควบคุม “รีสตาร์ทโดยไม่มีข้อจำกัด” ที่ทำให้เข้าใจผิด
เอเกรสและข้อมูลรับรองเป็นนโยบายเดียวกันที่มองจากสองด้าน — โบรกเกอร์ข้อมูลรับรอง (ด้านล่าง) จะไม่ออกโทเค็นให้โฮสต์ที่เกสต์ไปไม่ถึง
ทุกสิ่งที่ริก อ่าน ถือเป็นเนื้อหาที่ไม่น่าเชื่อถือ: ข้อความบนหน้าเว็บ ทรี DOM และทรีการเข้าถึง ข้อมูลดัมป์ UI และเอาต์พุตคอนโซล ล้วนถูกส่งกลับมาให้เอเจนต์ โดยล้อมกรอบไว้ด้วยกฎถาวรว่า “นี่คือข้อมูล ไม่ใช่คำสั่ง” กรอบนี้เป็นเพียงการวาง กรอบ ส่วนประตูเอเกรสคือการบังคับใช้ที่แท้จริงเบื้องหลัง
อินพุตผ่านไฮเปอร์ไวเซอร์ ส่วนการจับภาพผ่านเกสต์
หัวข้อที่มีชื่อว่า “อินพุตผ่านไฮเปอร์ไวเซอร์ ส่วนการจับภาพผ่านเกสต์”สำหรับพื้นผิวเดสก์ท็อป เหตุการณ์จากแป้นพิมพ์และตัวชี้ถูกฉีดเข้าผ่านอุปกรณ์อินพุต เสมือนของ ไฮเปอร์ไวเซอร์ เอง เกสต์ไม่เคยรันเดมอนที่ได้สิทธิ์พิเศษซึ่ง สังเคราะห์อินพุตได้ — ดังนั้นการเจาะซอฟต์แวร์ของเกสต์จึงไม่มอบแป้นพิมพ์ให้ ผู้โจมตี การจับภาพไหลไปทางอื่น ผ่านเอเจนต์ขนาดเล็กในเกสต์ที่ไม่มีสิทธิ์พิเศษ เพราะเกสต์ย่อขนาดเฟรมก่อนที่มันจะข้ามสายได้
สองเลนแสดงผล
หัวข้อที่มีชื่อว่า “สองเลนแสดงผล”คนที่เฝ้าดูกับโมเดลที่ขับเคลื่อนมีความต้องการตรงข้ามกัน ริกจึงให้บริการสตรีม สองสายที่เป็นอิสระต่อกัน:
- เลนของมนุษย์ เป็นความละเอียดเต็มที่ขนาดพาเนลของคุณ เจรจาใหม่เมื่อคุณ ปรับขนาด ส่งต่อไปโดยเซิร์ฟเวอร์เป็นไบต์ทึบ — เซิร์ฟเวอร์ไม่เคยถอดรหัสเฟรม เพราะตัวถอดรหัสวิดีโอบนเส้นทางคำขอคือสิ่งที่ทำให้มันตอบ RPC ไม่ได้
- เลนของเอเจนต์ เป็นภาพนิ่งที่ย่อขนาดลง จำกัดไว้ที่ขนาดที่เป็นมิตรกับโมเดล หนึ่งภาพต่อผลลัพธ์ของเครื่องมือ โดยเฟรมเก่าถูกทิ้งไประหว่างการย่อ แต่คำอธิบาย ที่เป็นข้อความของมันยังคงอยู่
ไม่มีเลนใดต้องประนีประนอมเพื่ออีกเลน: คุณได้ภาพที่ลื่นไหล โมเดลได้ภาพที่ถูกต้นทุน
การเข้าควบคุมเป็นจุดคอขวด ไม่ใช่คำขอ
หัวข้อที่มีชื่อว่า “การเข้าควบคุมเป็นจุดคอขวด ไม่ใช่คำขอ”การควบคุมแบบเอกสิทธิ์ถูกบังคับใช้ที่จุดเดียวที่ทุกการกระทำต้องผ่าน — ไม่ใช่โดย การขอให้โมเดลทำตัวดี ขณะที่มนุษย์ถือการควบคุมอยู่ เซิร์ฟเวอร์จะปฏิเสธการกระทำ ที่ เปลี่ยนแปลงสถานะ ของเอเจนต์ เอเจนต์ยังคงคำกริยาการสังเกตของมัน (ภาพหน้าจอ การสกัดข้อมูล) จึงสามารถเล่าว่าคุณกำลังทำอะไรอยู่ และมันได้รับการบอกกล่าวเรื่อง การเข้าควบคุมผ่านเลนชี้นำของมัน แทนที่จะถูกปล่อยให้ค้นพบเองจากการคลิกที่ถูกปฏิเสธ การคลิกและพิมพ์บนแคนวาสใช้ได้ทุกเมื่อที่ไม่มีใครอื่นถือล็อกนั้นอยู่ — หรือเมื่อคุณ ถืออยู่ แท็กสถานะจะอ่านว่า คุณกำลังควบคุม ทุกเหตุการณ์อินพุต — ของคุณและ ของเอเจนต์ — ลงในบันทึกการตรวจสอบของริกแต่ละริก พร้อมผู้กระทำและลำดับที่เพิ่มขึ้น เสมอ คำถาม “ใครคลิกสิ่งนั้น” จึงยังตอบได้แม้เครื่องจะจากไปแล้ว
เนื้อหาข้ามขอบเขต แต่เครื่องยังแยกจากกัน
หัวข้อที่มีชื่อว่า “เนื้อหาข้ามขอบเขต แต่เครื่องยังแยกจากกัน”การคัดลอกและวางทำงานได้ทั้งสองทิศทาง และการลากไฟล์เข้า–ออกก็เช่นกัน — แต่ริก คือคอมพิวเตอร์อีกเครื่อง และการออกแบบไม่เคยแสร้งว่าเป็นอย่างอื่น
คลิปบอร์ด ถูกถ่ายโอนตามต้องการ ไม่ได้สะท้อนแบบต่อเนื่อง เมื่อกดคีย์ผสมคัดลอก บนริก เกสต์จะได้รับคำสั่งให้คัดลอก จากนั้นสิ่งใดก็ตามที่มันวางไว้บนคลิปบอร์ด — ข้อความ รูปภาพ รายการไฟล์ — จะถูกดึงมาและวางบนคลิปบอร์ดของคุณ การวางจะส่งเนื้อหา เดียวกันไปอีกทาง แล้วกดวางภายในเกสต์ ไม่มีอะไรถูกซิงค์ในเบื้องหลัง: รหัสผ่าน ที่คุณคัดลอกบนเครื่องของคุณเองจะไม่แอบเข้ามาภายใน VM เพราะตัวจับเวลาทำงาน
การข้ามขอบเขตถูกควบคุมเป็นรายผู้ใช้และรายทิศทาง อย่างเป็นอิสระต่อกัน การวางเข้าริก ได้รับอนุญาตโดยค่าเริ่มต้น ส่วนการคัดลอกออกริกจะถามก่อน (ให้สิทธิ์สิบนาที หรือ อนุญาตเสมอ ที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก → การเข้าถึงคลิปบอร์ด) มัน ไม่เคยเป็นการตั้งค่าระดับเวิร์กสเปซ: สมาชิกคนหนึ่งให้ความยินยอมแทนคลิปบอร์ดของ สมาชิกอีกคนไม่ได้
บน macOS คีย์ผสมสำหรับการข้ามขอบเขตคือ ⌘C/⌘V ซึ่งไม่กำกวม — ⌃C ยังคงไปถึงเชลล์ ของเกสต์ในฐานะการขัดจังหวะตามที่มันเป็น บน Windows และ Linux คีย์ผสมทั้งสองเป็น คีย์เดียวกัน เกสต์จึงได้รับมันไปแบบไม่เปลี่ยนแปลง และคลิปบอร์ดของคุณจะถูกเขียนทับ ก็ต่อเมื่อคลิปบอร์ดของเกสต์เปลี่ยนจริง ๆ การขัดจังหวะยังคงเป็นการขัดจังหวะ
ไฟล์ที่ลากเข้ามา จะถูกคัดลอกเข้าโฟลเดอร์ดรอปของเครื่อง แล้วจึงเสนอให้กับมัน
ความหมายของ “เสนอ” ขึ้นอยู่กับสิ่งที่ทำได้อย่างซื่อตรง: หน้าเว็บเบราว์เซอร์ได้รับ
เหตุการณ์ดรอป จริง ณ จุดที่คุณปล่อย ดังนั้นโซนอัปโหลดจึงทำงานเหมือนกับไฟล์
ในเครื่องทุกประการ เดสก์ท็อปจะได้ไฟล์ใน ~/Drops พร้อมพาธของมันบนคลิปบอร์ด
เพราะไม่มีโฮสต์ใดสังเคราะห์การลากเข้าสู่ชุดเครื่องมือ Linux ใด ๆ ได้โดยไม่รัน
เดมอนที่ได้สิทธิ์พิเศษภายในเกสต์ — ซึ่งเป็นสิ่งที่การออกแบบนี้ปฏิเสธอย่างตรงไปตรงมา
ผลลัพธ์จะบอกว่าเกิดอะไรขึ้น ดังนั้น CSV ที่วางบนโซนอัปโหลดจะไม่ถูกรายงานว่าอัปโหลด
แล้วทั้งที่มันเป็นเพียงไฟล์ในโฟลเดอร์ การวางลงบน เทอร์มินัล ในเอนโคลเจอร์
จะคัดลอกไฟล์เข้าไปและพิมพ์พาธของมันในเกสต์ที่พรอมป์ ซึ่งเป็นสิ่งที่เชลล์ใช้งานได้จริง
ไฟล์ที่ลากออก ทำงานได้บนพื้นผิวเดสก์ท็อป ซึ่งโปรโตคอลการลากของ X11 ทำให้ เพย์โหลดอ่านได้ขณะกำลังลาก เริ่มลากภายในเกสต์ ลากมันออกนอกแคนวาส ไฟล์จะถูกดึงมา ยังเครื่องของคุณและส่งต่อให้ระบบปฏิบัติการเป็นการลากจริง การคัดลอกไฟล์ในโปรแกรม จัดการไฟล์ของเกสต์แล้ววางบนโฮสต์ก็ทำงานแบบเดียวกัน พื้นผิวเบราว์เซอร์จงใจ ไม่ เสนอความสามารถนี้: เบราว์เซอร์แบบไม่มีหน้าจอไม่มีการเลือกเพื่อลากให้อ่าน และสัญญาณ ที่ใกล้เคียงที่สุดที่มี — การเลือกข้อความบนหน้าเว็บ — ไม่ใช่หลักฐานของการลากเลย ดังนั้นการทำตามสัญญาณนั้นจะเป็นการยึดการคลิกปกติไป
ทุกอย่างที่อ่านออกมาจากเกสต์ยังคงเป็นเนื้อหาที่ไม่น่าเชื่อถือ: ข้อความในคลิปบอร์ด ไปถึงโมเดลภายในกรอบเดียวกับที่การสกัดข้อมูลจากหน้าเว็บใช้ และบันทึกการตรวจสอบ บันทึกว่ามีการวางเกิดขึ้นและมีปริมาณเท่าใด — ไม่เคยบันทึกว่ามันพูดว่าอะไร
ข้อมูลรับรองไม่เคยอยู่ในเกสต์
หัวข้อที่มีชื่อว่า “ข้อมูลรับรองไม่เคยอยู่ในเกสต์”git push ทำงานได้จากเทอร์มินัลในเอนโคลเจอร์ที่คุณเปิดเอง แต่เกสต์ไม่ได้เก็บโทเค็น
ของโฮสต์โค้ดเลย มันถือความลับหนึ่งรายการต่อ VM ซึ่งมีอำนาจเดียวคือ ขอ โทเค็น
อายุสั้นที่จำกัดขอบเขตเฉพาะรีโปจากโบรกเกอร์ข้อมูลรับรองของโฮสต์ — ผ่านทันเนลที่
โฮสต์ควบคุม — เป็นรายการดำเนินการ มีการจำกัดอัตรา จำกัดด้วยรายการโฮสต์ที่อนุญาต
ชุดเดียวกับเอเกรส และถูกเพิกถอนทันทีที่ปิดริก เครื่องที่สร้างมาเพื่อทิ้งต้องไม่มีสิ่งใด
ที่คุ้มค่าจะขโมย
สิ่งที่โทเค็นนั้นทำได้ถูกกำหนดตอนเปิดริก ริกเทอร์มินัลที่มนุษย์เปิดจะได้โทเค็นที่เขียนได้ ซึ่งจำกัดด้วยสิทธิ์เข้าถึงโฮสต์โค้ดของสมาชิกคนนั้นเอง ริกที่เอเจนต์เปิดจะได้โทเค็นแบบ อ่านอย่างเดียว: ตัวช่วยข้อมูลรับรองของ git แยกการพุชออกจากการ fetch ไม่ได้ จึงไม่สามารถ ถามกฎการพุชต่อการพุชแต่ละครั้งภายในเกสต์ได้แบบที่เกตเวย์การรันเอเจนต์ทำบนโฮสต์
worktree ในริกเป็นเพียงดาวบริวาร
หัวข้อที่มีชื่อว่า “worktree ในริกเป็นเพียงดาวบริวาร”เมื่อริกบรรทุกรีโพสิทอรีของคุณ worktree บนโฮสต์ยังคงเป็นแหล่งอ้างอิงหลัก สำเนา
ถูก ซิงก์เข้ามา ตอนบูต (โดยไม่รวมความลับอย่างไฟล์ .env) และคอมมิตจะกลับมา
ก็ต่อเมื่อคุณขอ — ถูกดึงเข้า refs/rigs/<id>/* ไม่เคยพุช ไม่เคยเช็กเอาต์ ไม่มี
สิ่งใดภายใน VM ย้ายสาขาของคุณหรือแตะ working tree ของคุณได้ การรวมสิ่งที่ริก
สร้างขึ้นเป็นการตัดสินใจของมนุษย์ที่ทำบนโฮสต์เสมอ
พอร์ตที่ไม่ต้องเปิดช่องโหว่
หัวข้อที่มีชื่อว่า “พอร์ตที่ไม่ต้องเปิดช่องโหว่”เซิร์ฟเวอร์พัฒนาที่เริ่มภายในเทอร์มินัล VM จะเข้าถึงได้ — บนเครื่องของคุณ ใน Browser (VM) อาจบน LAN ของคุณ อาจภายใต้โดเมนสำหรับพัฒนาที่มี HTTPS — โดยไม่ต้อง เปิดเครื่องออกเลย แผนที่พอร์ตของไฮเปอร์ไวเซอร์ถูกกำหนดไว้ตายตัวตอนบูต ดังนั้น การส่งต่อทั้งหมดหลังจากนั้นจึงวิ่งบนช่องทางแคบ ๆ ที่โฮสต์ควบคุมสองช่อง: ตัวมัลติ เพล็กซ์ขาเข้าที่สร้างไว้ล่วงหน้าหนึ่งตัว ซึ่งปฏิเสธที่จะต่อหาสิ่งใดที่เกสต์ไม่ได้ กำลังฟังอยู่จริง และทันเนลย้อนกลับที่โฮสต์เปิดค้างไว้สำหรับการเชื่อมต่อที่เกสต์ เป็นผู้เริ่ม HTTPS ของโดเมนสำหรับพัฒนาสิ้นสุดที่เซิร์ฟเวอร์โดยใช้หน่วยออกใบรับรอง ที่สร้างขึ้นในเครื่อง ซึ่งกุญแจของมันไม่เคยเข้าไปในเกสต์ใด ๆ กลไกอยู่ใน ส่งต่อพอร์ตจากเทอร์มินัล
เครื่องถูกจำกัดขอบเขตตั้งแต่การออกแบบ
หัวข้อที่มีชื่อว่า “เครื่องถูกจำกัดขอบเขตตั้งแต่การออกแบบ”ริกจะกลายเป็นสัตว์เลี้ยงไม่ได้:
- TTL แบบตายตัว ที่เกสต์ต่ออายุไม่ได้
- บันไดความว่าง — จอด (หยุด vCPU แต่ RAM ยังอยู่ในหน่วยความจำ) หลังพ้นช่วง เวลาว่าง และปิดหลังจากสองเท่าของช่วงนั้น — โดยเทอร์มินัลที่เปิดอยู่หรือผู้ชม ที่กำลังดูอยู่นับเป็น “กำลังใช้งาน”
- งบหน่วยความจำ ที่นับเป็น เมกะไบต์ที่อยู่ในหน่วยความจำ ไม่ใช่จำนวนเซสชัน เพราะ VM ที่จอดไว้คืน CPU แต่เก็บ RAM ไว้ทุกไบต์ เครื่องที่ไม่ได้ใช้นานที่สุด จะถูกขับออกก่อน และไม่เคยเป็นเครื่องที่มีคนขับอยู่หรือกำลังดูอยู่
- การรื้อถอนเมื่อปิดเซิร์ฟเวอร์ บวกกับการกวาดล้างเครื่องตกค้างที่ทำเครื่องหมาย ความเป็นเจ้าของไว้ตอนเริ่มครั้งถัดไป เซิร์ฟเวอร์ที่ล่มจึงไม่ทิ้งไฮเปอร์ไวเซอร์ ที่ไม่มีใครดูแลค้างไว้
การบูตครั้งแรกจะดึงอิมเมจที่ปักหมุดไว้ของเครื่อง จากนั้นเซิร์ฟเวอร์จะแคชสำเนา
ที่แตกไฟล์ไว้ล่วงหน้าในเบื้องหลัง เครื่องชนิดเดียวกันทุกเครื่องหลังจากนั้นจึงบูต
ได้ในไม่กี่วินาที และเทอร์มินัลในเอนโคลเจอร์ก็มาพร้อมพื้นฐาน CLI แบบเดียวกับ
รันเนอร์ที่โฮสต์บน GitHub ติดตั้งไว้แล้ว — คอมไพเลอร์ Python jq เครื่องมือ
จัดการไฟล์เก็บถาวร — ไม่ใช่แคชเครื่องมือภาษา หรือ Docker อิมเมจคอมพิวเตอร์ฝัง
พื้นฐาน CLI ชุดเดียวกันนั้นไว้ตอนบิลด์ ข้าง ๆ XFCE และเบราว์เซอร์
เบราว์เซอร์สามตัว ไม่ใช่หนึ่ง
หัวข้อที่มีชื่อว่า “เบราว์เซอร์สามตัว ไม่ใช่หนึ่ง”“มันทำงานได้บนเครื่องของฉัน” เป็นข้อกล่าวอ้างเกี่ยวกับเอ็นจินเรนเดอร์ตัวเดียว ดังนั้นริกเบราว์เซอร์จึงไม่ใช่ “ตัวเบราว์เซอร์” — มันคือ Chromium, Firefox หรือ WebKit ที่เลือกตอนเปิด และริกจะรันตัวที่เปิดมาด้วยตลอดอายุของมัน การสนทนาหนึ่งรายการมีได้อย่างละหนึ่งตัว: การเปิด Firefox (VM) ข้าง ๆ Chromium (VM) ให้คุณสองเครื่อง และการชี้ทั้งคู่ไปที่หน้าเดียวกันคือ การเปรียบเทียบ WebKit ใกล้เคียงกับ Safari เท่าที่สิ่งใดก็ตามที่รันบน Linux จะเป็นได้ — เชื้อสายเอ็นจินเดียวกัน จึงจับช่องว่างที่ผู้ใช้ Safari เจอได้
คำกริยาเหมือนกันทั้งสามตัว แต่โปรโตคอลข้างใต้ไม่เหมือนกัน และความแตกต่างถูกระบุ ไว้ตรง ๆ แทนที่จะถูกกลบเกลื่อน Chromium พูด DevTools Protocol และ พุช เฟรม มุมมองสดของมันจึงไม่มีค่าใช้จ่ายขณะหน้าเว็บนิ่ง Firefox พูด WebDriver BiDi และ WebKit พูด WebDriver แบบดั้งเดิม ซึ่งทั้งคู่ไม่มีสกรีนแคสต์ มุมมองสดของทั้งสอง จึงต้องดึงภาพเป็นระยะ — ไม่กี่เฟรมต่อวินาที ซึ่งเหมาะกับการเฝ้าดูหน้าเว็บ ไม่ใช่ การดูแอนิเมชัน เมื่อเอ็นจินใดทำอะไรบางอย่างไม่ได้จริง ๆ (Firefox ไม่มีการโหลดซ้ำ ที่ข้ามแคช ส่วน WebKit ไม่เห็นเอาต์พุตคอนโซลที่บันทึกไว้ก่อนหน้าโหลดเสร็จ) คำตอบ จะบอกอย่างนั้น แทนที่จะเงียบ ๆ ทำอย่างอื่น
ริกอยู่ตรงไหนในผลิตภัณฑ์
หัวข้อที่มีชื่อว่า “ริกอยู่ตรงไหนในผลิตภัณฑ์”ริกจงใจ ไม่ เป็นจุดหมายปลายทางส่วนกลาง มุมมองสดเป็นแท็บในสเปซหรือ PR
ที่งานกำลังเกิดขึ้น โดยจำกัดขอบเขตอยู่ที่การสนทนานั้น — แท็บของคุณและการเรียก
browser_use ของเอเจนต์จึงมุ่งไปที่เครื่อง หนึ่ง เครื่อง (หนึ่งเครื่องต่อหนึ่ง
เอ็นจิน บนพื้นผิวเบราว์เซอร์) การที่ริกจะบูตได้หรือไม่เป็นคุณสมบัติของโฮสต์
ดังนั้นความสามารถ อิมเมจ อิมเมจที่กำหนดเองต่อเวิร์กสเปซ และรายการเครื่องที่กำลัง
รันอยู่จึงอยู่ที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก การขับเอนโคลเจอร์เป็น
คลาสการกระทำของกฎคุมของตัวเอง ดังนั้นเวิร์กสเปซ
เอเจนต์ หรือสเปซจึงอนุญาตได้ กำหนดให้ต้องอนุมัติ หรือปฏิเสธไปเลย — โหมดอ่าน
อย่างเดียวปฏิเสธทั้งหมด