ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

เมื่อวานนี้ มีเหตุการณ์ที่สร้างความตื่นเต้นในวงการ AI เกิดขึ้น: ซอร์สโค้ดของ Claude Code ถูก “เปิด” แบบไม่ตั้งใจ

เนื่องจากความผิดพลาดทางวิศวกรรม Anthropic ไม่ได้ลบไฟล์ source map ออกเมื่อเผยแพร่แพ็คเกจ npm ส่งผลให้ซอร์สโค้ด TypeScript เต็มรูปแบบสามารถกู้คืนได้อย่างง่ายดาย ภายในเวลาไม่กี่ชั่วโมง โค้ดถูกดาวน์โหลด สร้างมิเรอร์ และแพร่กระจายอย่างรวดเร็วบน GitHub

วิธีการรั่วไหลแบบนี้ ถูกเรียกขานอย่างขำขันว่าเป็นการ “โอเพนซอร์ส” ในแง่หนึ่ง เมื่อ Elon Musk เห็นความคิดเห็นที่ว่า “ตอนนี้ Anthropic เปิดกว้างกว่า OpenAI แล้ว” เขาก็ตอบกลับว่า “สุดยอด😂”

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

เกี่ยวกับสาเหตุของเหตุการณ์นี้ แม้ว่า Anthropic จะยังไม่ได้ออกรายงานอย่างเป็นทางการ แต่สื่อเทคโนโลยี Decrypt ได้รับความคิดเห็นจากโฆษกคนหนึ่ง: “ในตอนเช้าวันนี้ เวอร์ชันหนึ่งของ Claude Code มีซอร์สโค้ดภายในบางส่วน ไม่มีข้อมูลลูกค้าที่ละเอียดอ่อนหรือข้อมูลรับรองใดๆ ถูกเกี่ยวข้องหรือเปิดเผย นี่เป็นปัญหาการแพ็คเกจเผยแพร่ที่เกิดจากความผิดพลาดของมนุษย์ และไม่ได้เป็นช่องโหว่ด้านความปลอดภัย เรากำลังดำเนินมาตรการเพื่อป้องกันไม่ให้เหตุการณ์เช่นนี้เกิดขึ้นอีก”

บิดาแห่ง Claude Code, Boris Cherny ก็ได้แสดงความเห็นสั้นๆ บน X ว่า นี่เกิดจาก “ความผิดพลาดของนักพัฒนา”

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

ในขณะที่สาธารณชนยังคงเฝ้าดูเหตุการณ์ “โอเพนซอร์สแบบไม่ตั้งใจ” ที่น่าตื่นเต้นนี้ กลุ่มคนอีกกลุ่มหนึ่งได้เริ่มต้นอ่านโค้ดทีละบรรทัดอย่างใจเย็น พยายามทำความเข้าใจตรรกะการออกแบบที่อยู่เบื้องหลัง กลยุทธ์ระดับระบบบางอย่างที่เดิมไม่ได้เปิดเผยต่อสาธารณะก็ถูกเปิดโปงตามมา โดยเฉพาะในด้านการปกป้องความสามารถของโมเดลและความปลอดภัยของข้อมูล Claude Code มีการออกแบบทางวิศวกรรมในระดับที่ลึกซึ้งอย่างชัดเจน

การตีความเชิงลึกจากหลายฝ่ายเกี่ยวกับซอร์สโค้ด Claude Code

ในขณะที่คนทั่วไปยังคงเฝ้าดูอยู่ นักพัฒนาจำนวนมากได้เริ่มอ่านโค้ดทีละบรรทัด พยายามทำความเข้าใจตรรกะการออกแบบเบื้องหลัง AI Agent ชั้นยอด

Claude Code มีกลไกป้องกันการกลั่น (Anti-Distillation) สองชุดในตัว

ผู้ใช้ X ชื่อ Sahil พบว่า Anthropic ได้สร้างกลไกป้องกันการกลั่นสองชุดใน Claude Code เพื่อป้องกันไม่ให้คู่แข่งใช้ข้อมูลผลลัพธ์ของมันในการฝึกโมเดล

  • กลไกหนึ่ง จะฉีดการเรียกใช้เครื่องมือปลอมลงในสตรีมผลลัพธ์ของโมเดล เพื่อทำให้ข้อมูลใดๆ ที่ถูกดักจับปนเปื้อนและใช้งานสำหรับการฝึกได้ยาก
  • อีกกลไกหนึ่ง จะสรุปรายละเอียดเฉพาะของการเรียกใช้เครื่องมือทั้งหมดให้เป็นบทคัดย่อที่คลุมเครือ ทำให้ภายนอกยากที่จะกู้คืนได้ว่า Agent ดำเนินการอะไรไปบ้างจริงๆ

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย
ที่มา: https://x.com/sahilypatel/status/2039004352367689891

สิ่งที่สามารถเรียนรู้และนำกลับมาใช้ใหม่ได้จากซอร์สโค้ด Claude Code

นักพัฒนา AlphaSignalAI ชื่อ Lior Alexander ได้วิเคราะห์ซอร์สโค้ด Claude Code อย่างลึกซึ้งและสรุปประเด็นสำคัญหลายข้อ ต่อไปนี้คือการค้นพบที่มีค่าบางส่วน:

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย
ที่มา: https://x.com/LiorOnAI/status/2039068248390688803

1. พรอมต์ระบบเป็นต้นแบบของการควบคุมพฤติกรรม

พรอมต์ระบบเต็มรูปแบบอยู่ในไฟล์ constants/prompts.ts ซึ่งอาจกล่าวได้ว่าเป็นหนึ่งในไฟล์ที่มีค่าที่สุดในโค้ดเบสทั้งหมด มันแสดงให้เห็นอย่างชัดเจนว่า Anthropic ควบคุมพฤติกรรมของ Claude อย่างแม่นยำใน Agent การเข้ารหัสระดับการผลิตอย่างไร รวมถึงแรงจูงใจในการออกแบบเบื้องหลังแต่ละคำสั่ง

  • โค้ดซ้ำสามบรรทัด ดีกว่าการสร้างนามธรรมเร็วเกินไป: ในส่วนคำสั่งการเข้ารหัส ระบบกำหนดให้ Claude อย่างชัดเจนว่าไม่ให้สร้าง helper, ฟังก์ชันเครื่องมือ หรือโครงสร้างนามธรรมสำหรับการดำเนินการครั้งเดียว และไม่ต้องออกแบบสำหรับความต้องการในอนาคตที่คาดเดา
  • ไม่เขียนคอมเมนต์โดยค่าเริ่มต้น: คอมเมนต์ที่มีแท็ก @[MODEL LAUNCH] อธิบายว่านี่เป็นเพื่อต่อสู้กับปัญหาที่โมเดลที่มีรหัสภายในชื่อ Capybara คอมเมนต์มากเกินไปโดยค่าเริ่มต้น คำสั่งกำหนดให้เพิ่มคอมเมนต์ได้ก็ต่อเมื่อ เหตุผล (WHY) ไม่ชัดเจน เท่านั้น
  • รายงานผลตามจริง: การอธิบายที่ติดแท็ก @[MODEL LAUNCH] อีกอันเปิดเผยว่า Capybara v8 มีอัตราการระบุข้อผิดพลาดผิดสูงถึง 29–30% (เทียบกับ 16.7% ของ v4) ดังนั้น พรอมต์จึงกำหนดอย่างชัดเจนว่า:
    • อย่าอ้างว่าผ่านทั้งหมดเมื่อการทดสอบล้มเหลว
    • อย่าซ่อนการตรวจสอบที่ล้มเหลวเพื่อสร้างผลลัพธ์ที่สำเร็จ
    • อย่าอธิบายงานที่ยังไม่เสร็จว่าสำเร็จแล้ว
  • การใช้ข้อจำกัดด้วยตัวเลขมีประสิทธิภาพกว่าการอธิบายที่คลุมเครือ: คอมเมนต์ในซอร์สโค้ดระบุว่า เมื่อเทียบกับการใช้คำอธิบายที่คลุมเครือเช่น “กระชับ” การใช้ข้อจำกัดจำนวนคำที่ชัดเจนสามารถลด token ผลลัพธ์ได้ประมาณ 1.2% ดังนั้น Anthropic จึงกำหนดโดยตรงว่า:
    • ข้อความระหว่างการเรียกใช้เครื่องมือ ≤25 คำ
    • คำตอบสุดท้าย ≤100 คำ
  • การออกแบบพรอมต์ภายนอกและภายในแบบแบ่งชั้น: พรอมต์ที่ผู้ใช้ภายนอกใช้เป็นเวอร์ชันย่อ (เช่น “ตรงประเด็น 尽量简短”) ในขณะที่เวอร์ชันภายใน (ที่พนักงาน Anthropic ใช้) ซับซ้อนกว่า
  • โหมด Simple ที่ซ่อนอยู่: เมื่อตั้งค่าตัวแปรสภาพแวดล้อม CLAUDE_CODE_SIMPLE=1 พรอมต์ระบบที่ซับซ้อนทั้งหมดจะถูกบีบอัดเหลือเพียงหนึ่งบรรทัด: “You are Claude Code, Anthropic’s official CLI for Claude” พร้อมด้วยไดเรกทอรีการทำงานปัจจุบันและวันที่ ไม่มีกฎการเข้ารหัส การควบคุมน้ำเสียง หรือคำสั่งการใช้เครื่องมือใดๆ

2. การด่าทอ Claude Code จะถูกทำเครื่องหมายเป็นอินพุตเชิงลบ

ในไฟล์เล็กๆ เพียง 26 บรรทัดชื่อ utils/userPromptKeywords.ts ระบบจะตรวจสอบก่อนส่งอินพุตผู้ใช้แต่ละครั้งไปยัง API ด้วยนิพจน์ปกติสองชุดเพื่อตรวจสอบว่าผู้ใช้ใช้คำหยาบคายหรือไม่

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

เกี่ยวกับเรื่องนี้ Boris Cherny บิดาแห่ง Claude Code แสดงความคิดเห็นว่า: “นี่เป็นหนึ่งในสัญญาณที่เราใช้เพื่อตัดสินว่าประสบการณ์ผู้ใช้ดีหรือไม่”

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

3. ใน Claude Code ซ่อนสัตว์เลี้ยงอิเล็กทรอนิกส์ไว้

ในไดเรกทอรี src/buddy/ ระบบสร้างเพื่อนเสมือนเฉพาะตัวและคงที่สำหรับผู้ใช้แต่ละคน (รหัสชื่อ Buddy) โดยการแฮช ID ผู้ใช้ (อิงจากตัวสร้างตัวเลขสุ่มที่มีเมล็ดพันธุ์) สายพันธุ์ รูปลักษณ์ และคุณลักษณะถูกกำหนดโดยอัลกอริทึม ทำให้เกิดประสบการณ์ส่วนบุคคลโดยไม่ต้องจัดเก็บ

ค่าแฮชนี้จะถูกแมปเพิ่มเติมเป็นการกำหนดค่าบทบาทที่สมบูรณ์ชุดหนึ่ง รวมถึง:

  • สายพันธุ์: เป็ด, ห่าน, Blob, แมว, มังกร, ปลาหมึก, นกฮูก, เพนกวิน เป็นต้น
  • หมวก: ไม่มี, มงกุฎ, หมวกทรงสูง, หมวกใบพัด เป็นต้น
  • ความหายาก: ปกติ (60%), ไม่ธรรมดา (25%), หายาก (10%) เป็นต้น

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

เป็นที่น่าสังเกตว่า Claude Code v2.1.89 ที่เพิ่งอัปเดตได้เปิดตัวฟังก์ชัน Buddy แล้ว ผู้ใช้หลังจากอัปเดตเพียงแค่พิมพ์ /buddy ก็สามารถเปิดใช้งานได้ — แม้ว่าจะกำหนดค่าโมเดลอื่นไว้ก็สามารถเปิดใช้งานสำเร็จ

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

4. มีคำกริยาโหลดในตัว 187 คำ

Claude Code มีคำกริยาสุ่ม 187 คำในตัว ซึ่งจะแสดงผลสลับกันเมื่อโมเดลกำลังคิด (เช่น Beboppin‘, Lollygagging เป็นต้น) เพื่อแทนที่ “Loading…” ที่น่าเบื่อ คำกริยาเหล่านี้แปลกประหลาด เช่น: Accomplishing, Actioning, Actualizing, Architecting, Baking…… รวมทั้งหมด 187 คำ

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

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

ซอร์สโค้ด Claude Code รั่วอย่างไม่คาดคิด: วงการ AI ตื่นตัว กลไกป้องกันการกลั่นกรองและดีไซน์คำสั่งระบบถูกเปิดเผย

5. กลไกป้องกันการกลั่น: ทำให้ข้อมูลฝึกของคู่แข่งปนเปื้อนโดยการฉีดเครื่องมือปลอม

ใน services/api/claude.ts มีกลไกที่ควบคุมโดย feature flag: เพิ่ม anti_distillation: ['fake_tools'] ใน body ของคำขอ API

5. รูปแบบผลลัพธ์ป้องกันการกลั่น

ไฟล์ streamlinedTransform.ts ใช้รูปแบบผลลัพธ์ป้องกันการกลั่น ซึ่งมีวัตถุประสงค์เพื่อป้องกันการกู้คืนกระบวนการให้เหตุผลเต็มรูปแบบโดยย้อนกลับจากผลลัพธ์โมเดล กลไกหลักรวมถึง:
* ลบกระบวนการคิด: ลบเนื้อหาการคิดภายในของโมเดลออก
* ลดความซับซ้อนการเรียกใช้เครื่องมือ: ลดความซับซ้อนการเรียกใช้เครื่องมือเฉพาะเจาะจงให้เป็นสถิติตามหมวดหมู่ (เช่น ค้นหา, อ่าน, เขียน, คำสั่ง เป็นต้น)

这使得外部攻击者难以根据捕获的输出,重建 Claude 完整的推理链路。

6. การจัดการแคชพรอมต์ที่ละเอียดอ่อนมาก

โค้ดที่ซับซ้อนที่สุดที่ไม่ใช่ UI ในโค้ดเบสคือ promptCacheBreakDetection.ts ในแต่ละการเรียกใช้ API ระบบจะแฮชพารามิเตอร์ทั้งหมดต่อไปนี้และเปรียบเทียบกับการเรียกใช้ครั้งล่าสุด:
* system prompt
* schema ของแต่ละเครื่องมือ (แฮชทีละอัน)
* ชื่อโมเดล
* เฮดเดอร์เบต้า
* สถานะโหมดเร็ว
* พารามิเตอร์ความพยายาม
* สถานะการใช้เกิน
* พารามิเตอร์ body คำขอเพิ่มเติม

การเปลี่ยนแปลงใดๆ จะถูกบันทึกและสร้างรายงานความแตกต่างที่เป็นมาตรฐาน

การปรับโครงสร้างแคช:
* system prompt ถูกแบ่งออกเป็นสองส่วนโดย SYSTEM_PROMPT_DYNAMIC_BOUNDARY: ส่วนบนเป็นเนื้อหาคงที่ที่สามารถแคชได้ ส่วนล่างเป็นเนื้อหาไดนามิกที่เปลี่ยนแปลงตามเซสชัน
* คำสั่งที่เกี่ยวข้องกับเซิร์ฟเวอร์ MCP ถูกนำออกจาก system prompt และส่งผ่านการแนบเพิ่มเติม (delta attachments) ของข้อความแทน 这是因为若将其置于 system prompt 中,每次服务器连接变化都会导致整个缓存失效。

การสืบทอดความปลอดภัยของแคช: Agent ย่อยจะสืบทอด CacheSafeParams (โครงสร้างที่ประกอบด้วยพารามิเตอร์ทั้งหมดที่ส่งผลต่อคีย์แคช) จาก Agent หลัก คอมเมนต์ซอร์สโค้ดเตือนเป็นพิเศษ: การตั้งค่า maxOutputTokens บน Agent ที่ถูก fork อาจจำกัด budget_tokens โดยไม่ตั้งใจ และทำลายความเข้ากันได้ของแคชบนโมเดลเก่า

7. โหมดลับ: ซ่อนตัวตนในการมีส่วนร่วมโอเพนซอร์ส

utils/undercover.ts ใช้โหมดลับ เมื่อพนักงาน Anthropic (USER_TYPE === 'ant') ทำงานใน repository ที่ไม่ใช่ภายใน โหมดนี้จะเปิดใช้งานโดยอัตโนมัติและเป็นค่าเริ่มต้น จะปิดก็ต่อเมื่อ git remote repository ตรงกับ whitelist ภายในเท่านั้น

เมื่อเปิดใช้งานแล้ว ระบบจะฉีดคำสั่งที่มีหัวข้อ UNDERCOVER MODE: CRITICAL ลงในพรอมต์ระบบ โดยกำหนดให้ Claude ทำงานใน repository สาธารณะ/โอเพนซอร์สในฐานะ “สายลับ” โดยห้ามมีข้อมูลภายในของ Anthropic ใดๆ ในข้อความ commit, หัวข้อ PR และเนื้อหา

ข้อมูลที่ถูกห้ามรวมถึง:
* รหัสภายในโมเดล (เช่น Capybara, Tengu เป็นต้น)
* หมายเลขเวอร์ชันโมเดลที่ยังไม่ได้เผยแพร่
* ชื่อ repository ภายใน
* ช่อง Slack
* คำว่า “Claude Code”
* คำอธิบายใดๆ เกี่ยวกับการเป็น AI
* ข้อมูลการให้เครดิตเช่น Co-Authored-By

คอมเมนต์ซอร์สโค้ดระบุชัดเจนว่า: โหมดนี้ไม่มีตัวเลือกปิดบังคับ ใช้เพื่อป้องกันการรั่วไหลของรหัสโมเดล ตราบใดที่ระบบไม่สามารถยืนยันได้ว่า repository ปัจจุบันเป็น repository ภายใน จะคงสถานะลับไว้เสมอ

8. การเรียกใช้ API ที่สูญเปล่า 250,000 ครั้งและกลไกตัดวงจร

คอมเม


⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง

☕ สนับสนุนค่ากาแฟทีมงาน

หากคุณชอบบทความนี้ สามารถสนับสนุนเราได้ผ่าน PromptPay

PromptPay QR
SCAN TO PAY WITH ANY BANK

本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/28239

Like (0)
Previous 7 hours ago
Next 1 hour ago

相关推荐