เพื่อป้องกันไม่ให้เกิดอุบัติเหตุแบบเดียวกันขึ้นอีก
ฉันคงจะดีใจถ้าทุกคนได้อ่านสิ่งนี้ เพื่อให้เงิน 1.5 ล้านเยนของเรามีความหมายขึ้นมาบ้าง!!! 🥺
ทำสิ่งนี้ไปก่อน
- ตั้งค่าขีดจำกัดการใช้งานรายเดือนขององค์กร Claude Team (แน่นอน)
- ตั้งค่าขีดจำกัดต่อบริการสำหรับ Claude Code Review
- เปลี่ยนทริกเกอร์ Claude Code Review จาก "ต่อการพุช" เป็น "ครั้งเดียว"
- ถ้าคุณสามารถสตรีมบันทึกธุรกรรมบัตรเครดิตไปยังช่องเฉพาะได้ ก็ลองจับตาดูคร่าวๆ (นี่คือวิธีที่ฉันสังเกตเห็นในครั้งนี้)
- ใช้มาตรการป้องกันและควบคุมอย่างละเอียด
การตั้งค่าขีดจำกัดการใช้งานรายเดือนขององค์กร Claude Team
จาก https://claude.ai/admin-settings/usage

ใน Enterprise คุณสามารถตั้งค่าขีดจำกัดที่ละเอียดกว่าแค่รายเดือนได้ ดังนั้นจึงคุ้มค่าที่จะใช้ประโยชน์จากสิ่งเหล่านั้น
ขีดจำกัดต่อบริการของ Claude Code Review
จาก https://claude.ai/admin-settings/usage

เปลี่ยนทริกเกอร์ Claude Code Review จาก "ต่อการพุช" เป็น "ครั้งเดียว"
จาก https://claude.ai/admin-settings/usage

เกิดอะไรขึ้น
ในเย็นวันเสาร์อันเงียบสงบ ความรู้สึกไม่สบายใจก็แผ่กระจายไปทั่วองค์กร


เงิน 1.5 ล้านเยนกำลังถูกดูดเข้าไปใน Claude Code Review 😇
ทำไมถึงเกิดขึ้น
เพื่อสรุปให้สั้น สิ่งต่อไปนี้กำลังเกิดขึ้น:
Claude Code Review ทำงาน
↓
มีการเพิ่มความคิดเห็นรีวิว
↓
AI Agent (Codex/Claude ฯลฯ) ตัดสินใจว่าจำเป็นต้องแก้ไขหรือไม่
↓
AI Agent แก้ไขและคอมมิต/พุชถ้าจำเป็น
↓
Claude Code Review ทำงานอีกครั้งโดยถูกกระตุ้นจากการพุช
↓
Rebase/force push แพร่กระจายไปยัง Stacked PR ที่ตามมา
↓
Claude Code Review ทำงานบน PR ที่ตามมาด้วย
↓
ทำซ้ำไม่สิ้นสุด ♾️
ใน repository ที่เรากำลังพัฒนา เราได้นำ Claude Code Review มาใช้ ซึ่งจะรีวิวโค้ดสำหรับ GitHub PR โดยอัตโนมัติ นอกจากนี้ ในครั้งนี้เราใช้ AI agent เพื่อจัดการกับการเปลี่ยนแปลงที่ค่อนข้างใหญ่ โดยแบ่งเป็นหลาย PR และเรียงซ้อนกันเป็นเส้นตรงจาก upstream ไปยัง downstream (ชุดของ PR ดังกล่าวเรียกว่า Stacked PR) ยิ่งไปกว่านั้น Claude Code Review เป็นบริการแบบจ่ายตามการใช้งานตามจำนวน token
Stacked PR
feat/branch-1 (PR 1)
↓
feat/branch-2 (PR 2)
↓
feat/branch-3 (PR 3)
↓
…
↓
feat/branch-N (PR N)
เมื่อมองย้อนกลับไป ต้นทุนเฉลี่ยของรีวิวเหล่านี้คือ $25.81 ต่อรีวิว 😱

แม้แต่ในบล็อกทางการของ Anthropic ก็อธิบายว่า Code Review มุ่งเน้นการรีวิวเชิงลึกและจะมีราคาแพงกว่าตัวเลือกแบบเบาเช่น Claude Code GitHub Action แต่ฉันไม่เคยคิดว่ามันจะมากขนาดนี้...
ครั้งนี้ เพื่อทำการเปลี่ยนแปลงขนาดใหญ่ เราได้สร้าง Stacked PR หลายรายการขณะใช้ AI agent หลายตัวในเครื่อง Claude Code Review จะถูกดำเนินการเมื่อ PR เหล่านี้ถูกสร้างขึ้น โดยปกติแล้วมนุษย์จะตรวจสอบเนื้อหารีวิวและตัดสินใจว่าจะจัดการหรือไม่ แต่ในครั้งนี้ สมมติว่ามนุษย์จะตรวจสอบครั้งสุดท้าย เราได้มอบหมายการตอบสนองหลัก—รวมถึงการตัดสินใจว่าจะจัดการกับรีวิวหรือไม่—ให้กับ AI agent
เจาะลึกปัญหา
1. การดำเนินการฟีเจอร์ที่ซับซ้อนโดยใช้ Stacked PR หลายรายการ
งานนี้เกี่ยวข้องกับการเปลี่ยนแปลงที่ค่อนข้างใหญ่ เราแบ่งเป็นหลาย PR เพราะการใส่ทุกอย่างใน PR เดียวทำให้การรีวิวยากและต้องพิจารณาลำดับการปล่อย การแบ่ง PR ไม่ใช่ความผิดพลาด ปัญหาคือมันเป็น Stacked PR แบบเส้นตรง
ใน Stacked PR ถ้าคุณแก้ไข upstream PR, downstream PR จะต้องรวมการเปลี่ยนแปลงเหล่านั้น กล่าวอีกนัยหนึ่ง การพุชไปยัง upstream ทำให้เกิดการแพร่กระจาย rebase/push ไปยัง downstream
โครงสร้างนี้เข้ากันไม่ได้กับการตั้งค่า Claude Code Review ที่ทำงานทุกครั้งที่มีการพุช
2. ปล่อยให้การตอบสนองรีวิวทั้งหมดเป็นหน้าที่ของ AI
เนื่องจากรีวิวทำงานทุกครั้งที่มีการพุชและความคิดเห็นรีวิวเพิ่มขึ้น เราจึงมอบหมายงานต่อไปนี้ให้กับ AI agent:
- ตรวจสอบความคิดเห็นรีวิวที่ยังไม่ได้รับการแก้ไข
- ตัดสินใจว่าจะจัดการหรือข้ามไป
- ถ้าจัดการ ให้แก้ไขและผ่านการทดสอบในเครื่อง
- คอมมิต/พุช
- ตอบกลับความคิดเห็นรีวิวและแก้ไขให้เรียบร้อย
- เฝ้าดูรีวิวเพิ่มเติมสักระยะหลังจากการพุช
เป้าหมายเดิมคือให้การตอบสนองของ AI ต่อข้อเสนอแนะเสร็จสิ้นภายในเวลาที่ฉันทำการตรวจสอบการทำงานและรีวิว
ถ้าเรามั่นใจว่ามนุษย์เป็นผู้ตัดสินใจขั้นสุดท้ายเกี่ยวกับนโยบายการตอบสนองต่อความคิดเห็นรีวิว เราอาจจะป้องกันสิ่งนี้ได้
3. มันยังคงทำงานต่อไปแม้หลังเลิกงาน
ฉันกำลังรันและตรวจสอบกระบวนการข้างต้นแม้หลังเลิกงาน แต่ฉันควรหยุดมันอย่างน้อยเมื่อเลิกงาน นี่คือจุดที่ต้องทบทวนอย่างแท้จริง
เนื่องจากฉันใช้ AI agent ในเครื่องแบบสมัครสมาชิก ความรู้สึกว่าต้นทุน API กำลังเพิ่มขึ้นในขณะนั้นจึงน้อยมาก ในทางกลับกัน Claude Code Review ที่ทำงานฝั่ง GitHub กำลังกินการใช้งานขององค์กร Anthropic ใน Anthropic Console ต้นทุนเฉลี่ยสำหรับ repository เป้าหมายแสดงเป็น $25.81/รีวิว การประเมินความรู้สึกต้นทุนนี้ต่ำเกินไปก็เป็นหนึ่งในจุดที่ต้องทบทวน
ฉันสร้างสถานการณ์ที่ AI แบบจ่ายตามการใช้งานถูกดำเนินการเป็นเวลานาน ในขณะที่มีช่องว่างระหว่างต้นทุนในเครื่องที่รับรู้กับต้นทุนที่เรียกเก็บจริง
อะไรที่ผิดพลาด
1. มองข้ามการตั้งค่า "ทริกเกอร์ทุกครั้งที่มีการพุช" สำหรับรีวิวที่มีราคาแพงเกินไป
ครั้งนี้ การตั้งค่า Anthropic Console คือให้รีวิวทำงานทุกครั้งที่มีการพุช แม้ว่าฟีเจอร์รีวิวทุกครั้งที่มีการพุชจะสะดวก แต่ข้อเสนอแนะอาจถี่ทุกครั้งที่มีการเปลี่ยนแปลง ดังนั้นควรพิจารณาทริกเกอร์อย่างรอบคอบ
2. ประเมินความเข้ากันได้ระหว่าง Stacked PR และรีวิวอัตโนมัติผิด
Stacked PR เป็นวิธีที่มีประสิทธิภาพในการแบ่ง PR ออกเป็นหน่วยที่รีวิวได้ อย่างไรก็ตาม การแก้ไข upstream PR ต้องมีการ rebase ของ downstream PR และการพุชไปยัง downstream PR ก็กระตุ้นให้เกิดรีวิวที่นั่นเช่นกัน สิ่งที่ควรจะเป็นรีวิวเดียวสำหรับหนึ่ง PR กลับแพร่กระจายไปยัง N PR ใน Stacked PR และรีวิวก็ถูกดำเนินการตามจำนวนนั้น
3. มอบหมายการตัดสินใจ การแก้ไข และการพุชให้กับ AI
การใช้ AI เพื่อจัดระเบียบความคิดเห็นรีวิวหรือแก้ไขในเครื่องนั้นสะดวกมาก อย่างไรก็ตาม ครั้งนี้เราให้อำนาจมันมากเกินไป วงจรของการเห็นความคิดเห็นรีวิว จัดการมัน พุช และเฝ้าดูอีกครั้ง ควรดำเนินการโดยมีการยืนยันจากมนุษย์อย่างชัดเจน
4. ทำให้ขีดจำกัดขององค์กรเป็นแนวป้องกันสุดท้าย
ผลลัพธ์คือมันใกล้ถึงขีดจำกัดขององค์กร และนั่นคือจุดที่เราสังเกตเห็นความผิดปกติ การมีขีดจำกัดนั้นดี อย่างไรก็ตาม $10,000 สูงเกินไปสำหรับแนวป้องกันสุดท้าย นอกจากนี้ เนื่องจากอิทธิพลของการเปิดใช้งานการใช้งานเพิ่มเติมและจังหวะการสะท้อน ต้นทุนองค์กรสะสมรายเดือนถึงกว่า $10,000 ภายในเกือบวันเดียว เราต้องการมาตรการป้องกันที่จะหยุดเร็วกว่านี้มาก
สรุป
ฉันละลายเงิน 1.5 ล้านเยนในหนึ่งวันกับ Claude Code Review ตอนนี้ฉันกำลังส่งคำขอคืนเงิน สาเหตุคือในขณะที่ Claude Code Review ถูกตั้งค่าให้ทริกเกอร์ทุกครั้งที่มีการพุช การรวมกันของการแก้ไข/พุชของ AI agent และห่วงโซ่ rebase ของ Stacked PR ทำให้เกิดวงจรของรีวิวและการแก้ไข
ครั้งนี้ เราใช้ความสะดวกสบายของการพัฒนาที่ขับเคลื่อนด้วย AI มากเกินไปและละเลยมาตรการป้องกันด้านความปลอดภัยและต้นทุน จนถึงตอนนี้ มันเป็นช่วงที่ปล่อยให้เราใช้ AI อย่างอิสระ ดังนั้น agent ต่างๆ จึงถูกจัดหาให้ในราคาถูก แต่ฉันคิดว่าเรากำลังเข้าสู่ช่วงที่พวกเขาจะเก็บเงินจากเราอย่างเหมาะสมในฐานะธุรกิจ เมื่อเรารู้ถึงประโยชน์แล้ว
ตอนนี้เรากำลังสร้างองค์กรพัฒนาขึ้นใหม่สำหรับยุค AI https://supateam.com/ เราจะนำประสบการณ์นี้ไปใช้ให้เกิดประโยชน์





