Inkitt รายงานว่าระบบนี้ได้ส่งโค้ดออกไปใช้งานทุกวัน ตามบทความทางเทคนิคที่เผยแพร่โดย Inkitt Tech โดยฟังก์ชันการเปลี่ยนสถานะหลักจะแมปสถานะการทำงานปัจจุบันและเหตุการณ์ขาเข้าไปยังการกระทำถัดไป โดยไม่เข้าถึงฐานข้อมูล เครือข่าย หรือโมเดลภาษาโดยตรง
มีการตรวจสอบแยกต่างหากที่ diff ของ Git เพื่อให้แน่ใจว่าการเปลี่ยนแปลงไม่ได้แตะต้อง path ที่ถูกจำกัด และเวิร์กโฟลว์จะปฏิเสธงานที่เกี่ยวข้องกับการย้ายฐานข้อมูล, การเปลี่ยนแปลงสคีมา, หรือการกำหนดค่า CI/container build
ระบบนี้รองรับการจัดการ webhook ซ้ำซ้อนผ่านการลดความซ้ำซ้อนและการเขียนฐานข้อมูลแบบมีเงื่อนไข โดยใช้หลักการของ idempotent operations สำหรับเวิร์กโฟลว์ที่อาจมีการลองใหม่หรือได้รับเหตุการณ์ซ้ำ
สำหรับ CI completion นั้น Orchestrator จะสอบถาม GitHub เพื่อดูว่างานที่เกี่ยวข้องทั้งหมดเสร็จสิ้นแล้วหรือไม่ แทนที่จะถือว่าทุกเหตุการณ์ของงานคือการเสร็จสิ้นของเวิร์กโฟลว์ทั้งหมด
Inkitt เน้นย้ำถึงสถานะเวิร์กโฟลว์ที่คงอยู่, การลองใหม่ที่จำกัด, และการควบคุมการกระทำภายนอกแบบรวมศูนย์ โดยระบบจะเปิด draft PR และไม่สามารถข้าม branch protection หรือรวมการเปลี่ยนแปลงของตนเองได้ และต้องมีคนมาอนุมัติในขั้นตอนสุดท้าย
ศัพท์ที่ควรรู้
- Pull Request (PR) – คือการร้องขอให้รวมโค้ดเข้าไปในโปรเจกต์หลัก ซึ่งต้องผ่านการตรวจสอบก่อน
- Agent Orchestration – คือการจัดการและควบคุมการทำงานของ AI Agent หลายตัวให้ทำงานร่วมกันเป็นขั้นตอน
- Idempotent operations – คือการดำเนินการที่หากทำซ้ำหลายครั้งจะได้ผลลัพธ์เหมือนกับการทำครั้งเดียว
- Git diff – คือการเปรียบเทียบความแตกต่างของโค้ดระหว่างสองเวอร์ชัน
- CI (Continuous Integration) – คือกระบวนการรวมโค้ดจากหลายแหล่งเข้าด้วยกันอย่างต่อเนื่องเพื่อทดสอบ
ที่มา: infoq.com