ที่ LangChain เราทำงานร่วมกับเอเจนต์วิศวกรรมซอฟต์แวร์จากเทอร์มินัล Slack, Linear, GitHub และ CI
ขั้นตอนการทำงานที่แตกต่างกันต้องการเอเจนต์ที่แตกต่างกัน การเขียนโค้ดในเครื่องควรให้ความรู้สึกแบบโต้ตอบ การเขียนโค้ดบนคลาวด์ควรทำงานในเบื้องหลังและเปิด PR การตรวจสอบโค้ดควรระมัดระวังและผูกติดกับ GitHub เอกสารประกอบของ repo ควรอยู่ใกล้กับโค้ดและให้บริบทที่มีประโยชน์แก่เอเจนต์
เราได้สร้างระบบนั้นขึ้นเป็นชุดเครื่องมือโอเพนซอร์ส:
- dcode สำหรับการเขียนโค้ดในเครื่อง
- OpenSWE สำหรับเอเจนต์เขียนโค้ดบนคลาวด์
- OpenSWE Review สำหรับการตรวจสอบโค้ดอัตโนมัติ
- OpenWiki สำหรับเอกสารประกอบ repo และหน่วยความจำของเอเจนต์
เมื่อรวมกันแล้ว พวกมันสร้างเป็นโรงงานเอเจนต์วิศวกรรมซอฟต์แวร์ของเรา นี่คือรูปแบบที่เราใช้ภายใน: เอเจนต์ในเครื่อง, เอเจนต์คลาวด์, เอเจนต์ตรวจสอบ, ความจำของ repo, โมเดลโอเพนซอร์ส และร่องรอยของ LangSmith ทั่วทั้งระบบ
เหตุผลที่โอเพนซอร์สมีความสำคัญ
เอเจนต์วิศวกรรมซอฟต์แวร์อ่านโค้ด แก้ไขโค้ด ตรวจสอบ PR และเข้าร่วมในขั้นตอนการทำงานของวิศวกรรม ทีมจำเป็นต้องเข้าใจและควบคุมพฤติกรรมของเอเจนต์เหล่านั้น
นั่นเป็นเรื่องยากหากเอเจนต์เป็นระบบปิด คุณถูกจำกัดให้ใช้เฉพาะโมเดลที่ผู้ให้บริการรองรับ พฤติกรรมการตรวจสอบ การผสานรวม และความสามารถในการสังเกตการณ์
เราต้องการเอเจนต์ที่ทีมสามารถตรวจสอบ แก้ไข และปรับให้เข้ากับขั้นตอนการทำงานของตัวเอง รวมถึงมาตรฐานการตรวจสอบของตนเอง ธรรมเนียมของ repo การเลือกโมเดล และเครื่องมือภายใน นั่นคือสาเหตุที่โปรเจกต์เหล่านี้เป็นโอเพนซอร์ส
ส่วนประกอบต่าง ๆ
dcode
dcode คือเอเจนต์เขียนโค้ดในเครื่องที่เราใช้จากเทอร์มินัล

CLI และรันไทม์ของเอเจนต์ทำงานในเครื่องของคุณ ในขณะที่โมเดลยังคงสามารถโฮสต์ได้ สิ่งนี้ช่วยให้นักพัฒนาสามารถทำงานโดยตรงกับ repo ในเครื่องได้ในขณะที่ใช้โมเดลเขียนโค้ดขนาดใหญ่ที่อาจไม่สามารถรันบนแล็ปท็อปได้
เราใช้ dcode สำหรับงานเขียนโค้ดแบบโต้ตอบ: การสำรวจ repo, การแก้ไข และการทำงานตามภารกิจการติดตั้งจากเทอร์มินัล
OpenSWE
OpenSWE คือเอเจนต์เขียนโค้ดบนคลาวด์ที่เราใช้เมื่องานควรทำงานในเบื้องหลัง
งานวิศวกรรมจำนวนมากเริ่มต้นจากนอกเทอร์มินัล บั๊กปรากฏใน Slack คำขอฟีเจอร์อยู่บน Linear งานบำรุงรักษา repo ที่ต้องทำงานตามกำหนดเวลา
OpenSWE สามารถถูกเรียกใช้จาก Slack, Linear, GitHub หรือเว็บ UI มันรันบนคลาวด์ ทำงานบนโค้ด และสามารถเปิด pull request เมื่อเสร็จสิ้น
ภายในองค์กร นี่กลายเป็นหนึ่งในขั้นตอนการทำงานของเอเจนต์ที่ถูกใช้มากที่สุด ในสัปดาห์ที่ผ่านมาเพียงสัปดาห์เดียว เราเรียกใช้ OpenSWE เกือบ 1,000 ครั้งจาก Slack เพียงอย่างเดียว ไม่รวมการใช้งานจาก Linear หรือ UI
เนื่องจาก OpenSWE รันในแซนด์บ็อกซ์บนคลาวด์ เราจึงสามารถรันเอเจนต์เขียนโค้ดหลายตัวพร้อมกันได้โดยไม่ผูกมัดสภาพแวดล้อมในเครื่องของใคร
OpenSWE ยังรวม UI สำหรับตรวจสอบงานของเอเจนต์ แชทกับเอเจนต์เขียนโค้ดบนคลาวด์ กำหนดค่าโมเดลและพรอมต์ ดูการวิเคราะห์ และตั้งค่าระบบอัตโนมัติตามกำหนดเวลา

OpenSWE Review
OpenSWE Review เชื่อมต่อกับ GitHub และตรวจสอบ pull requests โดยอัตโนมัติ มันระบุบั๊กและการถดถอยก่อนที่โค้ดจะถูกผสาน

นอกจากนี้ยังทำงานได้ดีเยี่ยมในเกณฑ์ชี้วัดภายนอก ใน เกณฑ์ชี้วัดการตรวจสอบโค้ดแบบออฟไลน์ OpenSWE Review ได้คะแนน 47% เมื่อรันด้วย GPT-5.5 โดยใช้การให้เหตุผลระดับกลาง ซึ่งทำให้มันอยู่ในอันดับ #6 โดยรวม และ #1 ในบรรดาเอเจนต์ตรวจสอบโค้ดโอเพนซอร์ส
การตรวจสอบโค้ดมีความเฉพาะเจาะจงกับองค์กรสูง ทีมต่างกันในเรื่องของปัญหาที่พวกเขาใส่ใจ วิธีที่พวกเขาแสดงความคิดเห็น และเวลาที่พวกเขาต้องการให้เอเจนต์บล็อก เสนอแนะ หรือเงียบ
OpenSWE Review มอบค่าเริ่มต้นที่แข็งแกร่งให้เรา ซึ่งเราสามารถปรับเปลี่ยนได้โดยการเปลี่ยนพรอมต์ ขั้นตอนการทำงาน การเลือกโมเดล และพฤติกรรมเฉพาะของ repo
OpenWiki
OpenWiki สร้างและบำรุงรักษาเอกสารของโค้ดเบสโดยใช้ Open Knowledge Format ของ Google
เอกสารอยู่กับโค้ดและได้รับการอัปเดตโดยอัตโนมัติผ่าน GitHub action ซึ่งทำให้ทั้งมนุษย์และเอเจนต์มีชั้นความรู้ที่ได้รับการบำรุงรักษาสำหรับ repo โดยไม่ต้องกังวลเกี่ยวกับการบำรุงรักษาเอกสาร (OpenWiki ทำสิ่งนั้นให้คุณเอง!)

หากเอเจนต์ต้องค้นพบสถาปัตยกรรมของ repo ใหม่ทุกครั้งที่รัน มันจะสิ้นเปลืองโทเคนและพลาดธรรมเนียมสำคัญ OpenWiki มอบจุดเริ่มต้นที่ดีกว่าให้กับเอเจนต์เขียนโค้ดและตรวจสอบ ในขณะที่รองรับโฟลว์การอัปเดตอัตโนมัติ คุณจึงไม่ต้องคิดเกี่ยวกับการบำรุงรักษาเอกสารของเอเจนต์ของคุณอีกเลย
สแต็คเทคโนโลยี
Deep Agents
dcode, OpenSWE, OpenSWE Review และ OpenWiki ทั้งหมดสร้างขึ้นบน Deep Agents
ขั้นตอนการทำงานแตกต่างกัน แต่พวกมันมีรากฐานของเอเจนต์พื้นฐานเดียวกัน สิ่งนี้ทำให้เรามีวิธีที่สอดคล้องกันในการสร้าง ปรับแต่ง และปรับปรุงเอเจนต์ในทุกด้าน ไม่ว่าจะเป็นการเขียนโค้ดในเครื่อง การเขียนโค้ดบนคลาวด์ การตรวจสอบ และเอกสารประกอบ การแชร์โค้ด ทรัพยากร และองค์ความรู้ด้านวิศวกรรมนั้นง่ายยิ่งขึ้นเมื่อพวกมันทั้งหมดถูกสร้างขึ้นในเฟรมเวิร์กเดียวกัน
โมเดลโอเพนซอร์ส
เราได้ปรับแต่งสแต็คให้เหมาะกับโมเดลโอเพนซอร์ส
เอเจนต์ SWE มีค่าใช้จ่ายสูงอย่างรวดเร็วเมื่อรันทั่วทั้งองค์กร การเขียนโค้ดในเครื่อง การเขียนโค้ดบนคลาวด์ การตรวจสอบโค้ด เอกสารประกอบ การบำรุงรักษาตามกำหนดเวลา และการวิเคราะห์ซ้ำของ repo ล้วนใช้โทเคน
โมเดลโอเพนซอร์สให้เราควบคุมต้นทุน (เหตุผลหลัก) ความหน่วง และตัวเลือกการปรับใช้ได้มากขึ้น นอกจากนี้ยังช่วยให้ทีมสามารถกำหนดเส้นทางงานที่แตกต่างกันไปยังโมเดลต่าง ๆ ทดลองกับโมเดลเขียนโค้ดโอเพนซอร์ส หรือแม้กระทั่งปรับแต่งโมเดลละเอียดสำหรับ repo และขั้นตอนการทำงานของตัวเอง
LangSmith
เราติดตามเอเจนต์เหล่านี้ด้วย LangSmith
เมื่อเอเจนต์เปิด PR ทิ้งความคิดเห็นในการตรวจสอบ หรือล้มเหลวในงาน ร่องรอยจะแสดงไฟล์ที่มันตรวจสอบ บริบทที่มันโหลด การเรียกเครื่องมือที่มันทำ และจุดที่มันติดขัด
ร่องรอยเหล่านั้นช่วยให้เราแก้ไขข้อบกพร่องในการรันแต่ละครั้งและปรับปรุงระบบเมื่อเวลาผ่านไป เราใช้มันเพื่อระบุโหมดความล้มเหลว ปรับปรุงพรอมต์ เปรียบเทียบโมเดล และป้อนตัวอย่างคุณภาพสูงขึ้นไปยังขั้นตอนการทำงานการปรับปรุงอย่างต่อเนื่องด้วย LangSmith Engine
Engine สำหรับเอเจนต์เขียนโค้ดเป็นขั้นตอนการทำงานใหม่ที่เรากำลังทดลอง โดยให้ Engine รันบนร่องรอยของเอเจนต์เขียนโค้ด ระบุข้อบกพร่อง และเสนอการปรับให้เหมาะสม
เนื่องจากการรันของเอเจนต์เขียนโค้ดทุกครั้งจากพนักงานทุกคนที่ LangChain ถูกติดตาม Engine จึงสามารถระบุและดำเนินการปรับให้เหมาะสมเหล่านี้จากมุมมองแบบเบิร์ดอายวิว แทนที่จะเป็นรายบุคคลสำหรับร่องรอยของวิศวกรเฉพาะ
สร้างโรงงานเอเจนต์วิศวกรรมซอฟต์แวร์ของคุณเอง
สแต็คนี้สะท้อนให้เห็นถึงวิธีที่เราใช้เอเจนต์วิศวกรรมซอฟต์แวร์ที่ LangChain แต่ชิ้นส่วนต่าง ๆ เป็นโอเพนซอร์ส ดังนั้นทีมอื่น ๆ สามารถปรับใช้และคงไว้ซึ่งการควบคุมโดยสมบูรณ์เหนือโรงงานซอฟต์แวร์ของคุณเอง
คุณสามารถเริ่มต้นเล็ก ๆ ได้:
- ใช้ dcode สำหรับการเขียนโค้ดในเครื่อง
- เพิ่ม OpenSWE เพื่อรันเอเจนต์เขียนโค้ดจาก Slack, Linear, GitHub หรือเว็บ UI
- เปิดใช้งาน OpenSWE Review สำหรับการตรวจสอบ PR อัตโนมัติ
- ใช้ OpenWiki เพื่อบำรุงรักษาความรู้ของ repo สำหรับมนุษย์และเอเจนต์
- เชื่อมต่อร่องรอยกับ LangSmith หากคุณต้องการความสามารถในการสังเกตการณ์และวงจรการปรับปรุงทั่วทั้งระบบ
เป้าหมายไม่ใช่การย้ายขั้นตอนการทำงานวิศวกรรมทุกอย่างไปยังอินเทอร์เฟซเอเจนต์เดียว แต่คือการวางเอเจนต์ที่เหมาะสมในสถานที่ที่งานวิศวกรรมเกิดขึ้นอยู่แล้ว โดยมีการควบคุมเพียงพอที่จะทำให้พวกมันเหมาะสมกับ repos, โมเดล และธรรมเนียมของทีมคุณ





