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.

เลน QA ของ Matrix รัน Plugin @openclaw/matrix ที่บันเดิลมากับโฮมเซิร์ฟเวอร์ Tuwunel แบบใช้แล้วทิ้งใน Docker พร้อมบัญชี driver, SUT และ observer ชั่วคราว รวมถึงห้องที่เตรียมข้อมูลไว้แล้ว นี่คือความครอบคลุมแบบสดที่ใช้ทรานสปอร์ตจริงสำหรับ Matrix นี่เป็นเครื่องมือสำหรับผู้ดูแลเท่านั้น รีลีส OpenClaw แบบแพ็กเกจจะจงใจไม่รวม qa-lab ดังนั้น openclaw qa จึงใช้ได้จากซอร์สเช็กเอาต์เท่านั้น ซอร์สเช็กเอาต์จะโหลดรันเนอร์ที่บันเดิลมาโดยตรง - ไม่ต้องมีขั้นตอนติดตั้ง Plugin สำหรับบริบทของเฟรมเวิร์ก QA ที่กว้างขึ้น โปรดดู ภาพรวม QA

เริ่มต้นอย่างรวดเร็ว

pnpm openclaw qa matrix --profile fast --fail-fast
pnpm openclaw qa matrix แบบธรรมดาจะรัน --profile all และจะไม่หยุดเมื่อเจอความล้มเหลวแรก ใช้ --profile fast --fail-fast สำหรับเกตของรีลีส; แบ่งแค็ตตาล็อกด้วย --profile transport|media|e2ee-smoke|e2ee-deep|e2ee-cli เมื่อรันอินเวนทอรีทั้งหมดแบบขนาน

สิ่งที่เลนทำ

  1. จัดเตรียมโฮมเซิร์ฟเวอร์ Tuwunel แบบใช้แล้วทิ้งใน Docker (อิมเมจเริ่มต้น ghcr.io/matrix-construct/tuwunel:v1.5.1, ชื่อเซิร์ฟเวอร์ matrix-qa.test, พอร์ต 28008)
  2. ลงทะเบียนผู้ใช้ชั่วคราวสามราย - driver (ส่งทราฟฟิกขาเข้า), sut (บัญชี Matrix ของ OpenClaw ที่อยู่ระหว่างการทดสอบ), observer (บันทึกทราฟฟิกจากบุคคลที่สาม)
  3. เตรียมห้องที่สถานการณ์ที่เลือกต้องใช้ (main, threading, media, restart, secondary, allowlist, E2EE, verification DM ฯลฯ)
  4. เริ่ม Gateway ลูกของ OpenClaw พร้อม Plugin Matrix จริงที่จำกัดขอบเขตไว้กับบัญชี SUT; qa-channel จะไม่ถูกโหลดในลูก
  5. รันสถานการณ์ตามลำดับ โดยสังเกตเหตุการณ์ผ่านไคลเอนต์ Matrix ของ driver/observer
  6. ปิดโฮมเซิร์ฟเวอร์ เขียนรายงานและอาร์ติแฟกต์สรุป แล้วจึงออก

CLI

pnpm openclaw qa matrix [options]

แฟล็กทั่วไป

แฟล็กค่าเริ่มต้นคำอธิบาย
--profile <profile>allโปรไฟล์สถานการณ์ ดู โปรไฟล์
--fail-fastปิดหยุดหลังจากเช็กหรือสถานการณ์แรกล้มเหลว
--scenario <id>-รันเฉพาะสถานการณ์นี้ ทำซ้ำได้ ดู สถานการณ์
--output-dir <path><repo>/.artifacts/qa-e2e/matrix-<timestamp>ตำแหน่งเขียนรายงาน สรุป เหตุการณ์ที่สังเกตได้ และล็อกเอาต์พุต พาธสัมพัทธ์จะถูก resolve เทียบกับ --repo-root
--repo-root <path>process.cwd()รากของรีโพซิทอรีเมื่อเรียกจากไดเรกทอรีทำงานที่เป็นกลาง
--sut-account <id>sutID บัญชี Matrix ภายในคอนฟิก Gateway ของ QA

แฟล็กผู้ให้บริการ

เลนใช้ทรานสปอร์ต Matrix จริง แต่สามารถกำหนดค่าผู้ให้บริการโมเดลได้:
แฟล็กค่าเริ่มต้นคำอธิบาย
--provider-mode <mode>live-frontiermock-openai สำหรับการ dispatch แบบ mock ที่กำหนดผลได้ หรือ live-frontier สำหรับผู้ให้บริการ frontier แบบสด alias เดิม live-openai ยังใช้ได้
--model <ref>ค่าเริ่มต้นของผู้ให้บริการref หลัก provider/model
--alt-model <ref>ค่าเริ่มต้นของผู้ให้บริการref สำรอง provider/model เมื่อสถานการณ์สลับระหว่างการรัน
--fastปิดเปิดใช้งานโหมดเร็วของผู้ให้บริการในที่ที่รองรับ
Matrix QA ไม่รับ --credential-source หรือ --credential-role เลนจะจัดเตรียมผู้ใช้แบบใช้แล้วทิ้งภายในเครื่อง จึงไม่มีพูลข้อมูลประจำตัวร่วมให้เช่าใช้

โปรไฟล์

โปรไฟล์ที่เลือกจะกำหนดว่าสถานการณ์ใดจะรัน
โปรไฟล์ใช้สำหรับ
all (ค่าเริ่มต้น)แค็ตตาล็อกทั้งหมด ช้าแต่ครอบคลุมครบถ้วน
fastชุดย่อยสำหรับเกตของรีลีสที่ทดสอบสัญญาทรานสปอร์ตจริง: canary, mention gating, allowlist block, reply shape, restart resume, thread follow-up, thread isolation, reaction observation และการส่งมอบเมทาดาทาการอนุมัติ exec
transportสถานการณ์ระดับทรานสปอร์ตเกี่ยวกับ threading, DM, room, autojoin, mention/allowlist, approval และ reaction
mediaความครอบคลุมไฟล์แนบรูปภาพ เสียง วิดีโอ PDF และ EPUB
e2ee-smokeความครอบคลุม E2EE ขั้นต่ำ - การตอบกลับที่เข้ารหัสพื้นฐาน, thread follow-up, bootstrap สำเร็จ
e2ee-deepสถานการณ์ E2EE แบบครอบคลุมเกี่ยวกับการสูญเสีย state, backup, key และ recovery
e2ee-cliสถานการณ์ CLI ของ openclaw matrix encryption setup และ verify * ที่ขับผ่าน QA harness
การแมปที่แน่นอนอยู่ใน extensions/qa-matrix/src/runners/contract/scenario-catalog.ts

สถานการณ์

รายการ ID สถานการณ์ทั้งหมดคือ union MatrixQaScenarioId ใน extensions/qa-matrix/src/runners/contract/scenario-catalog.ts:15 หมวดหมู่ประกอบด้วย:
  • threading - matrix-thread-*, matrix-subagent-thread-spawn
  • top-level / DM / room - matrix-top-level-reply-shape, matrix-room-*, matrix-dm-*
  • streaming และความคืบหน้าของเครื่องมือ - matrix-room-partial-streaming-preview, matrix-room-quiet-streaming-preview, matrix-room-tool-progress-*, matrix-room-block-streaming
  • media - matrix-media-type-coverage, matrix-room-image-understanding-attachment, matrix-attachment-only-ignored, matrix-unsupported-media-safe
  • routing - matrix-room-autojoin-invite, matrix-secondary-room-*
  • reactions - matrix-reaction-*
  • approvals - matrix-approval-* (เมทาดาทา exec/plugin, chunked fallback, deny reactions, threads และการ routing แบบ target: "both")
  • restart และ replay - matrix-restart-*, matrix-stale-sync-replay-dedupe, matrix-room-membership-loss, matrix-homeserver-restart-resume, matrix-initial-catchup-then-incremental
  • mention gating, bot-to-bot และ allowlists - matrix-mention-*, matrix-allowbots-*, matrix-allowlist-*, matrix-multi-actor-ordering, matrix-inbound-edit-*, matrix-mxid-prefixed-command-block, matrix-observer-allowlist-override
  • E2EE - matrix-e2ee-* (การตอบกลับพื้นฐาน, thread follow-up, bootstrap, วงจรชีวิต recovery key, ตัวแปร state-loss, พฤติกรรม server backup, device hygiene, การยืนยัน SAS / QR / DM, restart, การ redact อาร์ติแฟกต์)
  • E2EE CLI - matrix-e2ee-cli-* (encryption setup, การตั้งค่าแบบ idempotent, bootstrap failure, วงจรชีวิต recovery-key, หลายบัญชี, gateway-reply round-trip, self-verification)
ส่ง --scenario <id> (ทำซ้ำได้) เพื่อรันชุดที่เลือกเอง; รวมกับ --profile all เพื่อไม่สนใจ profile gating

ตัวแปรสภาพแวดล้อม

ตัวแปรค่าเริ่มต้นผลกระทบ
OPENCLAW_QA_MATRIX_TIMEOUT_MS1800000 (30 นาที)ขอบเขตเวลาสูงสุดแบบเด็ดขาดสำหรับการรันทั้งหมด
OPENCLAW_QA_MATRIX_CANARY_TIMEOUT_MS45000ขอบเขตเวลาสำหรับการตอบกลับ canary เริ่มต้น CI สำหรับรีลีสจะเพิ่มค่านี้บนรันเนอร์ที่ใช้ร่วมกัน เพื่อไม่ให้เทิร์น Gateway แรกที่ช้าทำให้ล้มเหลวก่อนเริ่มครอบคลุมสถานการณ์ทดสอบ
OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS8000ช่วงเวลาเงียบสำหรับการยืนยันเชิงลบแบบไม่มีการตอบกลับ ถูกจำกัดไว้ที่ เวลาหมดอายุของการรัน
OPENCLAW_QA_MATRIX_CLEANUP_TIMEOUT_MS90000ขอบเขตเวลาสำหรับการรื้อถอน Docker พื้นผิวความล้มเหลวจะรวมคำสั่งกู้คืน docker compose ... down --remove-orphans
OPENCLAW_QA_MATRIX_TUWUNEL_IMAGEghcr.io/matrix-construct/tuwunel:v1.5.1แทนที่อิมเมจ homeserver เมื่อตรวจสอบกับ Tuwunel เวอร์ชันอื่น
OPENCLAW_QA_MATRIX_PROGRESSเปิด0 ปิดบรรทัดความคืบหน้า [matrix-qa] ... บน stderr 1 บังคับให้เปิด
OPENCLAW_QA_MATRIX_CAPTURE_CONTENTปกปิดแล้ว1 เก็บเนื้อหาข้อความและ formatted_body ใน matrix-qa-observed-events.json ค่าเริ่มต้นจะปกปิดเพื่อให้อาร์ติแฟกต์ CI ปลอดภัย
OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXITปิด1 ข้าม process.exit แบบกำหนดแน่นอนหลังเขียนอาร์ติแฟกต์ ค่าเริ่มต้นบังคับให้ออก เพราะแฮนเดิลคริปโตเนทีฟของ matrix-js-sdk อาจทำให้ event loop ยังทำงานต่อหลังอาร์ติแฟกต์เสร็จสมบูรณ์
OPENCLAW_RUN_NODE_OUTPUT_LOGไม่ได้ตั้งค่าเมื่อตั้งค่าโดยตัวเรียกใช้งานภายนอก (เช่น scripts/run-node.mjs) Matrix QA จะใช้พาธบันทึกนั้นซ้ำแทนการเริ่ม tee ของตัวเอง

อาร์ติแฟกต์ผลลัพธ์

เขียนไปยัง --output-dir:
  • matrix-qa-report.md - รายงานโปรโตคอล Markdown (สิ่งที่ผ่าน ล้มเหลว ถูกข้าม และเหตุผล)
  • matrix-qa-summary.json - สรุปแบบมีโครงสร้างที่เหมาะสำหรับการแยกวิเคราะห์ของ CI และแดชบอร์ด
  • matrix-qa-observed-events.json - เหตุการณ์ Matrix ที่สังเกตได้จากไคลเอนต์ไดรเวอร์และไคลเอนต์ผู้สังเกตการณ์ เนื้อหาจะถูกปกปิด เว้นแต่ OPENCLAW_QA_MATRIX_CAPTURE_CONTENT=1; เมตาดาต้าการอนุมัติจะถูกสรุปด้วยฟิลด์ที่ปลอดภัยที่เลือกไว้และตัวอย่างคำสั่งที่ตัดให้สั้นลง
  • matrix-qa-output.log - stdout/stderr รวมจากการรัน หากตั้งค่า OPENCLAW_RUN_NODE_OUTPUT_LOG จะใช้บันทึกของตัวเรียกใช้งานภายนอกซ้ำแทน
ไดเรกทอรีผลลัพธ์เริ่มต้นคือ <repo>/.artifacts/qa-e2e/matrix-<timestamp> เพื่อให้การรันต่อเนื่องไม่เขียนทับกัน

เคล็ดลับการคัดแยก

  • การรันค้างใกล้จุดจบ: แฮนเดิลคริปโตเนทีฟของ matrix-js-sdk อาจมีอายุนานกว่าฮาร์เนส ค่าเริ่มต้นจะบังคับ process.exit แบบสะอาดหลังเขียนอาร์ติแฟกต์; หากคุณยกเลิกการตั้งค่า OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXIT=1 คาดได้ว่าโปรเซสจะค้างต่อ
  • ข้อผิดพลาดการล้างข้อมูล: มองหาคำสั่งกู้คืนที่พิมพ์ออกมา (การเรียกใช้ docker compose ... down --remove-orphans) แล้วรันด้วยตนเองเพื่อปล่อยพอร์ต homeserver
  • ช่วงเวลาการยืนยันเชิงลบไม่เสถียรใน CI: ลด OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS (ค่าเริ่มต้น 8 วินาที) เมื่อ CI เร็ว; เพิ่มค่านี้บนรันเนอร์ที่ใช้ร่วมกันที่ช้า
  • ต้องการเนื้อหาที่ปกปิดแล้วสำหรับรายงานบั๊ก: รันซ้ำด้วย OPENCLAW_QA_MATRIX_CAPTURE_CONTENT=1 แล้วแนบ matrix-qa-observed-events.json ให้ถือว่าอาร์ติแฟกต์ที่ได้เป็นข้อมูลอ่อนไหว
  • Tuwunel เวอร์ชันอื่น: ชี้ OPENCLAW_QA_MATRIX_TUWUNEL_IMAGE ไปยังเวอร์ชันที่กำลังทดสอบ เลนจะตรวจเฉพาะอิมเมจค่าเริ่มต้นที่ปักหมุดไว้เท่านั้น

สัญญาการขนส่งแบบสด

Matrix เป็นหนึ่งในสามเลนการขนส่งแบบสด (Matrix, Telegram, Discord) ที่ใช้เช็กลิสต์สัญญาเดียวกันซึ่งกำหนดไว้ใน ภาพรวม QA → การครอบคลุมการขนส่งแบบสด qa-channel ยังคงเป็นชุดสังเคราะห์แบบกว้าง และตั้งใจให้ไม่เป็นส่วนหนึ่งของเมทริกซ์นั้น

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

  • ภาพรวม QA - สแต็ก QA โดยรวมและสัญญาการขนส่งแบบสด
  • QA Channel - อะแดปเตอร์ช่องทางสังเคราะห์สำหรับสถานการณ์ที่อิงกับรีโป
  • การทดสอบ - การรันการทดสอบและการเพิ่มความครอบคลุม QA
  • Matrix - Plugin ช่องทางที่อยู่ระหว่างการทดสอบ