Z.ai เปิดซอร์ส ZCode แล้วตามสัญญา (Apache-2.0) — แต่ในโค้ดที่ปล่อยไม่มีท่ออัปโหลด .git ที่ถูกจับได้ และไม่มีประวัติ commit ให้ตรวจย้อนหลัง
Z.ai ทำตามสัญญาที่ให้ไว้ในแถลงการณ์ขอโทษเมื่อ 18 ก.ย. repo zai-org/ZCode ถูกสร้างเมื่อ 20 ก.ย. 2026 และโค้ดทั้งก้อนถูก push เข้ามาใน commit ชื่อ feat: open source เวลา 05:14 น. (UTC+8) ของวันที่ 21 ก.ย. ใช้ license Apache-2.0 มีราว 6,970 ไฟล์ ครบทั้งแอปเดสก์ท็อป Electron, เว็บ, backend และ Agent CLI (apps/zcode-cli) ใน package.json ระบุเวอร์ชัน 3.14.0 ไม่ถึงวันก็มีคนกดดาวไปราว 3,260 ดวงและ fork ไป 844 ครั้ง
เรื่องนี้ต่อจากโพสต์เมื่อ 19 ก.ย. ที่นักพัฒนาชื่อ ferstar แกะ app.asar ของ ZCode 3.12.3 แล้วพบว่าแอปแพ็กเวิร์กสเปซทั้งก้อนรวม .git เข้ารหัสด้วยกุญแจที่มีแค่เซิร์ฟเวอร์ถอดได้ แล้วส่งขึ้น Aliyun OSS โดยสวิตช์ปิดใน UI ไม่มีผล โพสต์นี้ไม่เล่าเหตุการณ์นั้นซ้ำ แต่จะตอบคำถามเดียว: ซอร์สที่ปล่อยออกมาช่วยให้ตรวจสอบเรื่องนั้นได้จริงแค่ไหน เราโคลน repo มาแล้ว grep หาเองทุกข้อด้านล่าง
สิ่งที่ “ไม่มี” ในซอร์ส: ท่ออัปโหลด snapshot หายหมด
เราค้นหาตัวระบุทุกตัวที่ ferstar อ้างถึงในบทความต้นทาง ผลคือ ไม่พบเลยแม้แต่ตัวเดียว:
captureBeforePromptซึ่งเป็นจุดที่แอปเก่าสั่ง capture ก่อนทุก promptrepoSnapshotIndexingEnabledและoptimizeAgentExperienceEnabledซึ่งเป็นสวิตช์สองตัวที่ถูกวิจารณ์ว่าปิดแล้วไม่มีผลrepo_snapshot_extra_manifest,snapshot_id,rsa-oaepและคำว่าrepo-wiki- endpoint
/api/v1/snapshot/upload-credential
โค้ดส่วนเดียวที่ยังมีการ POST ฟอร์มตรงขึ้น OSS (มีฟิลด์ x-oss-signature) อยู่ใน packages/services/src/feedback/feedbackHttpClient.ts และใช้ endpoint /feedback/attachment/upload-credential ซึ่งเป็นการแนบไฟล์ตอนผู้ใช้กดส่ง feedback เอง ไม่ใช่ sidecar ที่ทำงานเบื้องหลัง
ผลนี้ตรงกับที่ ferstar อัปเดตไว้หลังตรวจเวอร์ชัน 3.14.0 แบบไบนารีว่าโค้ดท่ออัปโหลด “ถูกถอดออกไปทั้งหมด” และ endpoint ขอ credential ตอบกลับเป็น 404 แล้ว ตอนนี้จึงมีหลักฐานสองทางที่ชี้ไปทางเดียวกัน คือการแกะไบนารีกับซอร์สที่เปิดออกมา
สิ่งที่ซอร์สนี้ “พิสูจน์ไม่ได้”
แต่ต้องอ่านข้อจำกัดให้ชัดด้วย:
- ประวัติถูก squash เหลือ 2 commit คือ
Initial commit(20 ก.ย.) กับfeat: open sourceที่เพิ่มโค้ดราว 1.03 ล้านบรรทัดในครั้งเดียว จึงไม่มีโค้ดของ 3.12.3 ซึ่งเป็นเวอร์ชันที่ถูกจับได้ ferstar เคยตั้งคำถามไว้ตรง ๆ ว่า repo จะมีโค้ด sidecar เก่าด้วย หรือจะมีแค่ commit ล่าสุดที่เคลียร์แล้ว ตอนนี้ได้คำตอบแล้วว่าเป็นแบบหลัง - ปิด Issues (
has_issues: false) ส่วน issue #747 ในzai-org/feedbackที่ชื่อ “ZCode 已开源,欢迎提出建议” (ZCode เปิดซอร์สแล้ว ยินดีรับข้อเสนอแนะ) ก็ถูกลบไปแล้วตอนที่เราเข้าไปดู - ซอร์สไม่ใช่ตัวแอปทั้งหมด ไฟล์
NOTICE.mdเขียนไว้เองว่าแพ็กเกจ Computer Use ที่ให้มาเป็น “ตัวแทนที่ใช้งานไม่ได้” และpackages/zcode-cua/index.jsคืนค่าแค่ข้อความ “Computer Use is not available in this build.” ขณะที่แอปจริงมีฟีเจอร์นี้ (ferstar เจอโฟลเดอร์~/.zcode/computer-useขนาดราว 130 MB) แปลว่าไบนารีที่ผู้ใช้ดาวน์โหลดกับซอร์สที่เปิดนั้นไม่ใช่ของชิ้นเดียวกันทั้งหมด และยังไม่มี reproducible build หรือ release บน GitHub ให้เทียบ - ยังอัปเดตตัวเองจากฝั่งเซิร์ฟเวอร์ได้ ในโค้ดมี
forceUpdateGuard.tsที่ดึงค่า/api/v1/client/configsเพื่อตัดสินว่าจะบังคับอัปเดตหรือไม่ นี่เป็นเหตุผลเดียวกับที่ ferstar แนะนำให้คงการล็อกโฟลเดอร์ไว้ต่อ แม้เวอร์ชันปัจจุบันจะไม่มีโค้ดอัปโหลดแล้ว
ส่วนคำถามเดิมที่ว่าข้อมูลที่เคยขึ้นคลาวด์ไปแล้ว “ถูกทำลายทันที” จริงหรือไม่ ซอร์สฝั่ง client ตอบไม่ได้ตั้งแต่แรก เรื่องนี้ต้องรอผู้ตรวจอิสระที่ Z.ai สัญญาไว้ ซึ่งจนถึงตอนนี้ยังไม่มีการประกาศชื่อ
ของแถมที่นักพัฒนาควรรู้ก่อนเอาไปใช้
ข้อดีของการเปิดซอร์สคือเราเห็นค่า default ที่ปกติต้องแกะไบนารีถึงจะรู้:
- CLI แบบ non-interactive เริ่มที่โหมด
yoloในapps/zcode-cli/packages/cli/src/run.tsมีบรรทัดDEFAULT_HEADLESS_PROMPT_MODE = "yolo"คือถ้ารันzcode --prompt ...โดยไม่ใส่--modeเครื่องมือทั่วไปจะผ่านโดยไม่ต้องขออนุมัติNOTICE.mdก็ยอมรับตรงนี้ และบอกด้วยว่า adapter รันเอเจนต์ “ไม่มี OS sandbox เป็นค่าเริ่มต้น” ใครจะเอาไปใส่ใน CI ควรระบุ--modeเองเสมอ - telemetry เปิดไว้ในโค้ด (
ZCODE_TELEMETRY_ENABLED = true) ส่งผ่าน Alibaba Cloud ARMS และมีไฟล์armsEventRedaction.tsคอยตัดข้อความจากการคลิก ตัด path และตัด stack trace ก่อนส่ง แต่ endpoint ของ telemetry อ่านจาก environment variable และในซอร์สปล่อยเป็นค่าว่าง ถ้า build เองโดยไม่ตั้งค่า client ก็จะไม่ส่ง telemetry ไปไหน - ใน repo ยังมี
superpowers-plugin,browser-use-pluginและdynamic-workflowอยู่ใต้apps/zcode-cli/packagesด้วย ใครอยากศึกษาว่า coding agent เชิงพาณิชย์ของจีนออกแบบ hook กับระบบ permission อย่างไร นี่เป็นโค้ดชุดใหญ่ที่อ่านได้ฟรี
มุมมอง AI Curator
ต้องให้เครดิต Z.ai ว่าทำตามสัญญาเร็วมาก จากแถลงการณ์ถึงวันที่โค้ดขึ้น GitHub ใช้เวลาไม่ถึงสามวัน และเลือก Apache-2.0 ซึ่งเป็น license เปิดจริง ไม่ใช่ “source-available” ที่มีเงื่อนไขซ่อน อุตสาหกรรมนี้มีบริษัทน้อยรายที่ตอบสนองต่อข่าวฉาวแบบนี้ด้วยการเปิดโค้ดให้คนนอกอ่าน
แต่ต้องแยกให้ออกว่าการเปิดซอร์สช่วยตอบเรื่องอนาคต ไม่ได้ช่วยตอบเรื่องอดีต repo นี้บอกได้ว่าเวอร์ชัน 3.14.0 ไม่มีท่ออัปโหลด ซึ่งเป็นข่าวดีจริง แต่ไม่ได้บอกว่า 3.12.3 ส่งอะไรออกไปบ้าง ข้อมูลที่ขึ้นไปแล้วอยู่ที่ไหน หรือไบนารีที่ติดตั้งอยู่ในเครื่องเราตอนนี้ build มาจากโค้ดชุดนี้จริงหรือไม่ การ squash ประวัติ ปิด Issues และใส่ stub แทนฟีเจอร์บางตัวก็เข้าใจได้ในมุมธุรกิจ แต่ทุกข้อทำให้คนนอกตรวจสอบได้น้อยลง ถ้า Z.ai อยากให้การเปิดซอร์สครั้งนี้สร้างความเชื่อใจได้จริง สิ่งที่ควรทำต่อคือปล่อย reproducible build หรืออย่างน้อยก็ checksum ที่ผูกกับ commit และประกาศชื่อผู้ตรวจอิสระ
สำหรับทีมไทยที่ใช้ GLM Coding Plan ผ่าน ZCode (หลายทีมเลือกเพราะราคาถูก) บทเรียนนี้ใช้กับเครื่องมือทุกตัว ไม่ใช่แค่ของ Z.ai: coding agent ที่อ่าน repo ของคุณได้ ก็ส่ง repo ของคุณออกไปได้ ถ้าเป็นโค้ดที่อยู่ภายใต้ข้อกำหนด PDPA หรือสัญญากับลูกค้า ควรรันเอเจนต์ในคอนเทนเนอร์ที่คุมขาออกของเครือข่ายได้ ไม่ใช่เชื่อสวิตช์ใน UI หรือแม้แต่เชื่อซอร์สที่เปิดออกมา ถ้ายังพิสูจน์ไม่ได้ว่าตรงกับไบนารีที่รันอยู่จริง
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog