โรงงานซอฟต์แวร์โอเพนซอร์สของ LangChain

@BraceSproul
อังกฤษ2 วันที่ผ่านมา · 18 ก.ค. 2569
154K
263
46
10
671

TL;DR

LangChain ได้เปิดตัวชุดเครื่องมือโอเพนซอร์ส ได้แก่ dcode, OpenSWE และ OpenWiki เพื่อสร้างโรงงาน AI agent ที่ครอบคลุมสำหรับขั้นตอนการทำงานด้านวิศวกรรมซอฟต์แวร์

ที่ LangChain เราทำงานร่วมกับเอเจนต์วิศวกรรมซอฟต์แวร์จากเทอร์มินัล Slack, Linear, GitHub และ CI

ขั้นตอนการทำงานที่แตกต่างกันต้องการเอเจนต์ที่แตกต่างกัน การเขียนโค้ดในเครื่องควรให้ความรู้สึกแบบโต้ตอบ การเขียนโค้ดบนคลาวด์ควรทำงานในเบื้องหลังและเปิด PR การตรวจสอบโค้ดควรระมัดระวังและผูกติดกับ GitHub เอกสารประกอบของ repo ควรอยู่ใกล้กับโค้ดและให้บริบทที่มีประโยชน์แก่เอเจนต์

เราได้สร้างระบบนั้นขึ้นเป็นชุดเครื่องมือโอเพนซอร์ส:

  • dcode สำหรับการเขียนโค้ดในเครื่อง
  • OpenSWE สำหรับเอเจนต์เขียนโค้ดบนคลาวด์
  • OpenSWE Review สำหรับการตรวจสอบโค้ดอัตโนมัติ
  • OpenWiki สำหรับเอกสารประกอบ repo และหน่วยความจำของเอเจนต์

เมื่อรวมกันแล้ว พวกมันสร้างเป็นโรงงานเอเจนต์วิศวกรรมซอฟต์แวร์ของเรา นี่คือรูปแบบที่เราใช้ภายใน: เอเจนต์ในเครื่อง, เอเจนต์คลาวด์, เอเจนต์ตรวจสอบ, ความจำของ repo, โมเดลโอเพนซอร์ส และร่องรอยของ LangSmith ทั่วทั้งระบบ

เหตุผลที่โอเพนซอร์สมีความสำคัญ

เอเจนต์วิศวกรรมซอฟต์แวร์อ่านโค้ด แก้ไขโค้ด ตรวจสอบ PR และเข้าร่วมในขั้นตอนการทำงานของวิศวกรรม ทีมจำเป็นต้องเข้าใจและควบคุมพฤติกรรมของเอเจนต์เหล่านั้น

นั่นเป็นเรื่องยากหากเอเจนต์เป็นระบบปิด คุณถูกจำกัดให้ใช้เฉพาะโมเดลที่ผู้ให้บริการรองรับ พฤติกรรมการตรวจสอบ การผสานรวม และความสามารถในการสังเกตการณ์

เราต้องการเอเจนต์ที่ทีมสามารถตรวจสอบ แก้ไข และปรับให้เข้ากับขั้นตอนการทำงานของตัวเอง รวมถึงมาตรฐานการตรวจสอบของตนเอง ธรรมเนียมของ repo การเลือกโมเดล และเครื่องมือภายใน นั่นคือสาเหตุที่โปรเจกต์เหล่านี้เป็นโอเพนซอร์ส

ส่วนประกอบต่าง ๆ

dcode

dcode คือเอเจนต์เขียนโค้ดในเครื่องที่เราใช้จากเทอร์มินัล

Brace - inline image

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 สำหรับตรวจสอบงานของเอเจนต์ แชทกับเอเจนต์เขียนโค้ดบนคลาวด์ กำหนดค่าโมเดลและพรอมต์ ดูการวิเคราะห์ และตั้งค่าระบบอัตโนมัติตามกำหนดเวลา

Brace - inline image

OpenSWE Review

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

Brace - inline image

นอกจากนี้ยังทำงานได้ดีเยี่ยมในเกณฑ์ชี้วัดภายนอก ใน เกณฑ์ชี้วัดการตรวจสอบโค้ดแบบออฟไลน์ OpenSWE Review ได้คะแนน 47% เมื่อรันด้วย GPT-5.5 โดยใช้การให้เหตุผลระดับกลาง ซึ่งทำให้มันอยู่ในอันดับ #6 โดยรวม และ #1 ในบรรดาเอเจนต์ตรวจสอบโค้ดโอเพนซอร์ส

การตรวจสอบโค้ดมีความเฉพาะเจาะจงกับองค์กรสูง ทีมต่างกันในเรื่องของปัญหาที่พวกเขาใส่ใจ วิธีที่พวกเขาแสดงความคิดเห็น และเวลาที่พวกเขาต้องการให้เอเจนต์บล็อก เสนอแนะ หรือเงียบ

OpenSWE Review มอบค่าเริ่มต้นที่แข็งแกร่งให้เรา ซึ่งเราสามารถปรับเปลี่ยนได้โดยการเปลี่ยนพรอมต์ ขั้นตอนการทำงาน การเลือกโมเดล และพฤติกรรมเฉพาะของ repo

OpenWiki

OpenWiki สร้างและบำรุงรักษาเอกสารของโค้ดเบสโดยใช้ Open Knowledge Format ของ Google

เอกสารอยู่กับโค้ดและได้รับการอัปเดตโดยอัตโนมัติผ่าน GitHub action ซึ่งทำให้ทั้งมนุษย์และเอเจนต์มีชั้นความรู้ที่ได้รับการบำรุงรักษาสำหรับ repo โดยไม่ต้องกังวลเกี่ยวกับการบำรุงรักษาเอกสาร (OpenWiki ทำสิ่งนั้นให้คุณเอง!)

Brace - inline image

หากเอเจนต์ต้องค้นพบสถาปัตยกรรมของ repo ใหม่ทุกครั้งที่รัน มันจะสิ้นเปลืองโทเคนและพลาดธรรมเนียมสำคัญ OpenWiki มอบจุดเริ่มต้นที่ดีกว่าให้กับเอเจนต์เขียนโค้ดและตรวจสอบ ในขณะที่รองรับโฟลว์การอัปเดตอัตโนมัติ คุณจึงไม่ต้องคิดเกี่ยวกับการบำรุงรักษาเอกสารของเอเจนต์ของคุณอีกเลย

สแต็คเทคโนโลยี

Deep Agents

dcode, OpenSWE, OpenSWE Review และ OpenWiki ทั้งหมดสร้างขึ้นบน Deep Agents

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

โมเดลโอเพนซอร์ส

เราได้ปรับแต่งสแต็คให้เหมาะกับโมเดลโอเพนซอร์ส

เอเจนต์ SWE มีค่าใช้จ่ายสูงอย่างรวดเร็วเมื่อรันทั่วทั้งองค์กร การเขียนโค้ดในเครื่อง การเขียนโค้ดบนคลาวด์ การตรวจสอบโค้ด เอกสารประกอบ การบำรุงรักษาตามกำหนดเวลา และการวิเคราะห์ซ้ำของ repo ล้วนใช้โทเคน

โมเดลโอเพนซอร์สให้เราควบคุมต้นทุน (เหตุผลหลัก) ความหน่วง และตัวเลือกการปรับใช้ได้มากขึ้น นอกจากนี้ยังช่วยให้ทีมสามารถกำหนดเส้นทางงานที่แตกต่างกันไปยังโมเดลต่าง ๆ ทดลองกับโมเดลเขียนโค้ดโอเพนซอร์ส หรือแม้กระทั่งปรับแต่งโมเดลละเอียดสำหรับ repo และขั้นตอนการทำงานของตัวเอง

LangSmith

เราติดตามเอเจนต์เหล่านี้ด้วย LangSmith

เมื่อเอเจนต์เปิด PR ทิ้งความคิดเห็นในการตรวจสอบ หรือล้มเหลวในงาน ร่องรอยจะแสดงไฟล์ที่มันตรวจสอบ บริบทที่มันโหลด การเรียกเครื่องมือที่มันทำ และจุดที่มันติดขัด

ร่องรอยเหล่านั้นช่วยให้เราแก้ไขข้อบกพร่องในการรันแต่ละครั้งและปรับปรุงระบบเมื่อเวลาผ่านไป เราใช้มันเพื่อระบุโหมดความล้มเหลว ปรับปรุงพรอมต์ เปรียบเทียบโมเดล และป้อนตัวอย่างคุณภาพสูงขึ้นไปยังขั้นตอนการทำงานการปรับปรุงอย่างต่อเนื่องด้วย LangSmith Engine

Engine สำหรับเอเจนต์เขียนโค้ดเป็นขั้นตอนการทำงานใหม่ที่เรากำลังทดลอง โดยให้ Engine รันบนร่องรอยของเอเจนต์เขียนโค้ด ระบุข้อบกพร่อง และเสนอการปรับให้เหมาะสม

เนื่องจากการรันของเอเจนต์เขียนโค้ดทุกครั้งจากพนักงานทุกคนที่ LangChain ถูกติดตาม Engine จึงสามารถระบุและดำเนินการปรับให้เหมาะสมเหล่านี้จากมุมมองแบบเบิร์ดอายวิว แทนที่จะเป็นรายบุคคลสำหรับร่องรอยของวิศวกรเฉพาะ

สร้างโรงงานเอเจนต์วิศวกรรมซอฟต์แวร์ของคุณเอง

สแต็คนี้สะท้อนให้เห็นถึงวิธีที่เราใช้เอเจนต์วิศวกรรมซอฟต์แวร์ที่ LangChain แต่ชิ้นส่วนต่าง ๆ เป็นโอเพนซอร์ส ดังนั้นทีมอื่น ๆ สามารถปรับใช้และคงไว้ซึ่งการควบคุมโดยสมบูรณ์เหนือโรงงานซอฟต์แวร์ของคุณเอง

คุณสามารถเริ่มต้นเล็ก ๆ ได้:

  1. ใช้ dcode สำหรับการเขียนโค้ดในเครื่อง
  2. เพิ่ม OpenSWE เพื่อรันเอเจนต์เขียนโค้ดจาก Slack, Linear, GitHub หรือเว็บ UI
  3. เปิดใช้งาน OpenSWE Review สำหรับการตรวจสอบ PR อัตโนมัติ
  4. ใช้ OpenWiki เพื่อบำรุงรักษาความรู้ของ repo สำหรับมนุษย์และเอเจนต์
  5. เชื่อมต่อร่องรอยกับ LangSmith หากคุณต้องการความสามารถในการสังเกตการณ์และวงจรการปรับปรุงทั่วทั้งระบบ

เป้าหมายไม่ใช่การย้ายขั้นตอนการทำงานวิศวกรรมทุกอย่างไปยังอินเทอร์เฟซเอเจนต์เดียว แต่คือการวางเอเจนต์ที่เหมาะสมในสถานที่ที่งานวิศวกรรมเกิดขึ้นอยู่แล้ว โดยมีการควบคุมเพียงพอที่จะทำให้พวกมันเหมาะสมกับ repos, โมเดล และธรรมเนียมของทีมคุณ

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม