2 คะแนน โดย GN⁺ 2024-11-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Codebuff เป็นเครื่องมือ CLI ที่เมื่อป้อนงานด้วยภาษาธรรมชาติในเทอร์มินัล จะอ่าน codebase และทำได้ถึงขั้นแก้ไข·สร้างไฟล์ ใช้งานได้ทันทีหลังติดตั้งด้วย npm i -g codebuff โดยไม่มีด่านล็อกอิน
  • ลดโฟลว์การป้อนคำสั่งเหลือ ขั้นตอนเดียว ผู้ใช้แค่ป้อนงานที่ต้องการ จากนั้นเครื่องมือจะนำการรันเทสต์ การรัน type checker และการติดตั้งแพ็กเกจมาใช้ในกระบวนการทำตามคำขอ
  • ภายในใช้ tree-sitter พาร์สสัญลักษณ์ เช่น ชื่อฟังก์ชัน·คลาส ของ 11 ภาษา เพื่อสร้างแผนที่ codebase และผสานการแคชพรอมป์ของ Claude Haiku 3.5 กับการเรียก Claude/OpenAI
  • เอเจนต์จะใส่ไฟล์ที่เกี่ยวข้องลงในคอนเท็กซ์ แล้วจัดการ edit_file การรันคำสั่งเทอร์มินัล และคำขออ่านไฟล์เพิ่มเติม ผ่านการเรียกเครื่องมือในรูปแบบแท็ก XML
  • ทุกบัญชีได้รับเครดิตมูลค่าสูงสุด $20 และเครดิตเพิ่มเติมมีในแพลนรายเดือน $99 แต่ระบุว่าราคาแพงกว่าคู่แข่งเพราะคอนเท็กซ์ขนาดใหญ่และการเรียก LLM ที่มีต้นทุนสูง

แก้โค้ดด้วยภาษาธรรมชาติในเทอร์มินัล

  • Codebuff เป็นเครื่องมือ CLI ที่ทำงานเหมือน “Cursor Composer ในเทอร์มินัล”
    • ป้อนการเปลี่ยนแปลงที่ต้องการด้วยภาษาธรรมชาติแล้วกด Enter จากนั้นเครื่องมือจะสำรวจ codebase แล้วแก้ไขไฟล์
    • ทำได้ทั้งแก้ไขไฟล์ซอร์สเดิมและสร้างไฟล์ใหม่
    • สามารถรันเทสต์, type checker และติดตั้งแพ็กเกจเพื่อทำคำขอให้เสร็จสมบูรณ์
  • ติดตั้งและเริ่มใช้งานได้ด้วย npm i -g codebuff
    • ใช้งานได้ทันทีโดยไม่มีด่านล็อกอิน
    • มอบเครดิตมูลค่าสูงสุด $20 ให้ทุกบัญชี
  • วิดีโอเดโม: YouTube

จากการทดลองแรกเริ่มสู่การทำเป็นผลิตภัณฑ์

  • ไอเดียแรกเริ่มจากการทดลอง Sonnet 3.5 ใน hackathon
    • สคริปต์แรกมีโครงสร้างดึงคอนเท็กซ์ของ codebase มาทั้งหมดในคราวเดียว และขั้นตอนที่สองเขียนไฟล์ใหม่
    • กระบวนการ 2 ขั้นตอนนี้ยังคงอยู่ใน Codebuff ปัจจุบัน
    • เดโมแรกยังสร้างโค้ดที่ใช้งานจริงไม่ได้
  • เมื่อส่งต่อความรู้เฉพาะของแต่ละ codebase ให้โมเดล จึงเกิดไอเดีย knowledge.md
    • ในเซิร์ฟเวอร์ของสตาร์ทอัพก่อนหน้า หากจะสร้าง endpoint ต้องแก้ไฟล์เฉพาะ 3 ไฟล์ แต่โมเดลไม่รู้เรื่องนี้
    • เมื่อเขียนคู่มือ codebase เป็นไฟล์ Markdown เหมือนอธิบายให้พนักงานใหม่ แล้วใส่ใน system prompt ของ Sonnet 3.5 คุณภาพโค้ดดีขึ้นมาก
    • ปัจจุบัน Codebuff ยังใช้ไฟล์ knowledge.md ที่อ่านอัตโนมัติในทุกคำขอ
  • ก่อนสัมภาษณ์ YC คอขวดใหญ่ที่สุดคือความเสถียรของการแก้ไขไฟล์
    • ลองใช้กลยุทธ์พรอมป์หลายแบบเพื่อแทนที่สตริงในไฟล์ต้นฉบับ แต่ยังทำงานได้ไม่เสถียร
    • วันก่อนสัมภาษณ์ ได้ fine-tune GPT-4o ให้แปลงสเก็ตช์การเปลี่ยนแปลงที่ Claude วาดไว้เป็น git patch
    • วันถัดมามันทำงานได้ และถูก deploy ขึ้น production ก่อนสัมภาษณ์ YC พอดี

แผนที่ codebase และโฟลว์การทำงานของเอเจนต์

  • เมื่อรัน เครื่องมือจะไล่ดูไฟล์ซอร์สในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อย เพื่อสร้าง แผนที่ codebase
    • ใช้ tree-sitter พาร์สฟังก์ชัน·ชื่อคลาส หรือสัญลักษณ์เทียบเท่าของ 11 ภาษา
    • ใช้ข้อมูล file tree ร่วมกับข้อมูลสัญลักษณ์
    • ส่งคำขอไปยัง Claude Haiku 3.5 เพื่อแคชคอนเท็กซ์ของ codebase และลด latency ในการตอบอินพุตผู้ใช้
  • เมื่อผู้ใช้ส่งข้อความ Claude จะเลือกไฟล์ที่เกี่ยวข้องก่อน
    • หลังโหลดไฟล์ที่เลือกเข้าไปในคอนเท็กซ์ เอเจนต์จึงตอบกลับ
    • การเรียกเครื่องมือถูกเขียนเป็นแท็ก XML และถูกพาร์ส
    • ตัวอย่างคือแท็กแก้ไขไฟล์รูปแบบ <edit_file path="src/app.ts">…</edit_file>
    • แท็กอื่นยังใช้รันคำสั่งเทอร์มินัลหรือขออ่านไฟล์เพิ่มเติมได้

โครงสร้างเซิร์ฟเวอร์และอินฟราสตรักเจอร์

  • เซิร์ฟเวอร์มีโครงสร้างส่งต่อข้อความไปยัง Anthropic หรือ OpenAI และไม่เก็บ state
    • ใช้ websocket สำหรับการเคลื่อนย้ายข้อมูลระหว่างไคลเอนต์กับเซิร์ฟเวอร์
    • ในช่วง 3 เดือนแรก ไม่มีระบบยืนยันตัวตนหรือฐานข้อมูล ให้ติดตั้งฟรีและจัดการคำขอด้วย API key ของผู้ใช้เอง
  • ต่อมาได้เพิ่มองค์ประกอบที่จำเป็นต่อการดำเนินงานผลิตภัณฑ์
    • ฐานข้อมูล Postgres + Drizzle
    • เซิร์ฟเวอร์ Bun
    • โฮสติ้ง Render
    • การยืนยันตัวตน Auth.js
    • เว็บไซต์ NextJS
    • การชำระเงิน Stripe
    • การทำ logging ด้วย BetterStack
    • แดชบอร์ด Retool

ราคา, กรณีใช้งาน และ SDK

  • ราคาประกอบด้วยโควตาใช้ฟรีแบบจำกัดและแพลนเสียเงินรายเดือน $99
    • แพลนเสียเงินให้เครดิตมากขึ้น
    • ระบุว่าแพงกว่าคู่แข่งเพราะมีคอนเท็กซ์มากกว่าและการเรียก LLM มีต้นทุนสูง
  • กรณีใช้งานจริงรวมถึงการสร้างแอป Flutter, เขียน unit test, แก้ไขซ้ำ ๆ และทำงานซ้ำ ๆ ให้เป็นอัตโนมัติ
    • ผู้ใช้รายหนึ่งสร้างแอป Flutter สองแอปแบบขนานจนมียอดเรียกเก็บ $500 และทำแอปให้เสร็จผ่านการสนทนายาว ๆ กับ Codebuff โดยไม่ได้ดูโค้ดที่ถูกสร้างขึ้นเอง
    • ผู้ใช้หลายคนสร้างแอปจริงสำหรับทีมหรือใช้ส่วนตัวได้ภายในช่วงสุดสัปดาห์
    • การใช้งานทั่วไปที่พบบ่อยคือการเขียน unit test, รันลูปแก้โค้ดจนกว่าเทสต์จะผ่าน, ตั้งค่า OAuth flow และงาน scaffolding API
  • ยังมี alpha SDK สำหรับผู้ใช้ที่ต้องการใช้ Codebuff ในระบบของตนเอง
    • แอปสามารถเรียกอินเทอร์เฟซภาษาธรรมชาติเดียวกันและรับการแก้ไขโค้ดกลับมาได้
    • ลิงก์สมัคร early access: Retool form

1 ความคิดเห็น

 
GN⁺ 2024-11-09
ความคิดเห็นจาก Hacker News
  • ขอแสดงความยินดีกับการเปิดตัว Codebuff แต่ดูคล้ายกับ Aider มาก Aider เป็นโอเพนซอร์ส และเมื่อขอเพิ่มไฟล์ก็แค่กดยืนยันเท่านั้น Aider ยังสามารถรันคำสั่งได้ด้วย เลยสงสัยว่าต่างกันอย่างไร

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

  • ไม่อยากจ่าย $20 เพื่อส่งคีย์ SSH และคลิปบอร์ดไปให้บุคคลที่สามหลายราย อยากซื้อซอฟต์แวร์ที่รองรับ inline shell โดยไม่ต้องมีการเรียกเครือข่าย นี่เป็นความเห็นทั่วไปที่มีต่อผลิตภัณฑ์ลักษณะนี้

  • Codebuff ก่อนหน้านี้รู้จักกันในชื่อ manicode และมีประโยชน์กับงานรีแฟกเตอร์ที่ซับซ้อน เคยใช้แยกไฟล์ในโปรเจ็กต์ Rust ไปเป็นไดเรกทอรีโมดูล และมันสามารถรันทดสอบกับตรวจสอบข้อผิดพลาดตอนคอมไพล์ได้ งานนี้ใช้ไปราว 100 เครดิต

  • สงสัยว่าโค้ดถูกส่งผ่านเซิร์ฟเวอร์หรือไม่ คิดว่าทำเป็นบริการแบบโลคัลน่าจะดีกว่า สงสัยด้วยว่า LLM จะได้รับคำสั่งที่อาจทำให้ไฟล์สูญหายได้หรือไม่ และจะป้องกันเรื่องนี้อย่างไร

  • การให้ LLM รันคำสั่งโดยไม่มีมนุษย์ตรวจทานเป็นเรื่องเสี่ยงและมีช่องโหว่ด้านความปลอดภัย

  • มี AIDE, Continue, Cody, Aider, Cursor อยู่แล้ว เลยสงสัยว่าทำไมต้องใช้เครื่องมือนี้

  • เคยลองใช้เครื่องมือนี้แล้ว และมีบางจุดที่ดีกว่า CoPilot กับ Cursor โดยเฉพาะเมื่อเทียบกับ CoPilot จะไม่รู้สึกเหมือนต้องไป "แข่งขัน" กับตัวแก้ไข มีความกังวลเรื่องความปลอดภัย และสงสัยว่าจัดการไฟล์ที่มีความอ่อนไหวอย่างไร

  • สงสัยว่าในแง่คุณภาพโค้ดมันดีกว่า Cursor หรือไม่ ใช้ Cursor อยู่และช่วยประหยัดเวลาคัดลอกไฟล์ แต่ก็ยังใช้อินเทอร์เฟซ chatGPT/claude ในการเขียนโค้ด

  • มีการ fine-tune GPT-4o เพื่อแปลง change sketch ของ Claude ให้เป็น git patch ข้อมูลฝึกถูกสร้างขึ้นตอนดึก และงาน fine-tune ก็รันตอนนอนอยู่ อยากรู้รายละเอียดทั้งหมดของข้อมูลฝึก รวมถึงว่า change sketch และ git patch ทำงานอย่างไร