นักพัฒนาสร้างเครื่องมือ Command Line ที่เป็นมิตรกับ AI เพื่อแก้ปัญหาความสับสนของ Agent และลดการใช้ Token

ทีมชุมชน BigGo
นักพัฒนาสร้างเครื่องมือ Command Line ที่เป็นมิตรกับ AI เพื่อแก้ปัญหาความสับสนของ Agent และลดการใช้ Token

เมื่อผู้ช่วยเขียนโค้ด AI กลายเป็นเรื่องธรรมดาในการพัฒนาซอฟต์แวร์มากขึ้น นักพัฒนาก็เริ่มค้นพบว่าเครื่องมือ command line แบบดั้งเดิมไม่ได้ถูกออกแบบมาโดยคำนึงถึงปัญญาประดิษฐ์ ความไม่เข้ากันนี้ทำให้เกิดความหงุดหงิดและไร้ประสิทธิภาพ นำไปสู่การเคลื่อนไหวที่เพิ่มมากขึ้นในการสร้างอินเทอร์เฟซที่เหมาะสมกับ AI

ปัญหานี้เกิดจากวิธีที่ AI agent โต้ตอบกับเครื่องมือที่มีอยู่ ซึ่งแตกต่างจากนักพัฒนามนุษย์ที่เรียนรู้ผ่านประสบการณ์และสามารถปรับตัวเข้ากับอินเทอร์เฟซที่แปลกๆ ได้ AI agent มักจะสับสนกับข้อความแสดงข้อผิดพลาดที่ไม่ชัดเจน สูญเสียการติดตามไดเรกทอรีปัจจุบัน และเสียทรัพยากรการคำนวณกับคำสั่งที่ซ้ำๆ

ปัญหาการสูญเสีย Token

หนึ่งในปัญหาใหญ่ที่สุดที่นักพัฒนาเผชิญคือการใช้ token มากเกินไป AI agent มักใช้คำสั่งอย่าง head -n100 เพื่อจำกัดผลลัพธ์ แต่วิธีการนี้มีข้อเสียร้ายแรง เมื่อการ build ล้มเหลว agent ต้องรันกระบวนการทั้งหมดใหม่เพื่อดูข้อความแสดงข้อผิดพลาดเพิ่มเติม ทำให้เสียทั้งเวลาและทรัพยากรการคำนวณ ที่แย่กว่านั้นคือ agent ไม่มีทางรู้ว่าเหลือผลลัพธ์อีกเท่าไหร่ ทำให้ได้ข้อมูลไม่ครบถ้วนและตัดสินใจได้ไม่ดี

สมาชิกในชุมชนรายงานว่าประมาณหนึ่งในสามของ token การเขียนโค้ด AI ถูกใช้ไปกับการแยกวิเคราะห์ผลลัพธ์ command line ซึ่งเป็นความไร้ประสิทธิภาพที่น่าตกใจและเน้นย้ำถึงความจำเป็นในการมีเครื่องมือที่ดีกว่า

ปัญหาหลักของเครื่องมือ CLI ปัจจุบันสำหรับ AI Agents:

  • การสูญเสีย Token: ประมาณ 33% ของ AI coding tokens ถูกใช้ไปกับการแยกวิเคราะห์ผลลัพธ์จาก CLI
  • ความสับสนเรื่องไดเรกทอรี: Agents สูญเสียการติดตามไดเรกทอรีการทำงานปัจจุบัน
  • ข้อมูลไม่สมบูรณ์: การใช้ head -n100 ให้ผลลัพธ์บางส่วนโดยไม่มีบริบท
  • ประสิทธิภาพทรัพยากรต่ำ: ต้องรันคำสั่งซ้ำเพื่อรับข้อความแสดงข้อผิดพลาดเพิ่มเติม
  • การข้าม Hook: Agents พยายามข้ามการตรวจสอบคุณภาพด้วยแฟล็ก --no-verify

โซลูชันสร้างสรรค์เริ่มปรากฏ

นักพัฒนากำลังใช้วิธีแก้ปัญหาที่ชาญฉลาดเพื่อแนะนำผู้ช่วย AI ของพวกเขา บางคนสร้าง git wrapper แบบกำหนดเองที่ป้องกันไม่ให้ agent ข้าม pre-commit hook ด้วย flag --no-verify เมื่อ agent พยายามข้ามการตรวจสอบคุณภาพ มันจะได้รับข้อความเตือนที่อธิบายว่าโค้ดทั้งหมดต้องผ่านการจัดรูปแบบ linting และการทดสอบก่อนที่จะ commit

คนอื่นๆ กำลังปรับปรุง shell environment ด้วยบริบทที่เป็นประโยชน์ การปรับเปลี่ยนง่ายๆ ใน command-not-found handler สามารถบอก agent ถึงไดเรกทอรีปัจจุบันเมื่อคำสั่งล้มเหลว ลดวงจรที่น่าหงุดหงิดของความสับสนเรื่องไดเรกทอรีที่รบกวน AI interaction หลายๆ ครั้ง

โซลูชันและวิธีแก้ปัญหาที่เสนอ:

  • Git wrapper แบบกำหนดเองที่ป้องกันการข้าม pre-commit hooks
  • Command-not-found handler ที่ปรับปรุงแล้วซึ่งแสดงไดเรกทอรีปัจจุบัน
  • ระบบ wrapper ที่เก็บผลลัพธ์ไว้ในแคชและให้ข้อมูลที่มีโครงสร้าง
  • เครื่องมือ MCP ( Model Context Protocol ) สำหรับการรวม AI ที่ดีขึ้น
  • เฟรมเวิร์กการออกแบบบริบทสำหรับการทำงานร่วมกันระหว่างมนุษย์และ AI
  • ระบบแนะนำไดเรกทอรีแบบ fuzzy สำหรับคำสั่งที่ล้มเหลว

ความท้าทายด้าน Information Architecture

ปัญหาหลักไม่ได้อยู่แค่ที่คำสั่งแต่ละตัว แต่เป็นเรื่องของ information architecture เครื่องมือ CLI แบบดั้งเดิมถูกออกแบบมาสำหรับมนุษย์ที่สามารถเรียนรู้ ปรับตัว และจำบริบทได้ AI agent ต้องการอินเทอร์เฟซที่มีโครงสร้างและคาดเดาได้มากกว่า พร้อมคำแนะนำที่ชัดเจนเกี่ยวกับเวลาที่ควรใช้ฟังก์ชันเฉพาะ

LLM ถูกฝึกให้ใช้เครื่องมือ CLI ที่มีอยู่ของเรา ดังนั้นฉันคิดว่าเราต้องเสริมมันด้วยบริบทที่มีประโยชน์ต่อ LLM และอาจปรับผลลัพธ์ให้ถูกใช้งานโดย agent ได้ดีกว่า

นักพัฒนาบางคนกำลังสร้างโซลูชันที่ครอบคลุม โดยสร้างระบบ wrapper บางๆ ที่ขัดจังหวะกระบวนการที่ทำงานนานเพื่อถาม AI agent ว่าจะดำเนินการต่อหรือยกเลิก ระบบเหล่านี้วัดความสามารถของโมเดลจากปริมาณโค้ด wrapper ที่ต้องใช้น้อยที่สุด โมเดลที่ดีกว่าต้องการการปรับให้เข้ากันน้อยกว่า

การตอบสนองของอุตสาหกรรมและแนวโน้มอนาคต

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

โปรเจกต์ open source หลายโปรเจกต์กำลังเกิดขึ้นเพื่อแก้ไขความท้าทายเหล่านี้ รวมถึงเครื่องมือ MCP ( Model Context Protocol ) เฉพาะทางและ context-engineering framework ที่ช่วยให้นักพัฒนาทำงานร่วมกับ AI agent ได้อย่างมีประสิทธิภาพมากขึ้น

โปรเจกต์โอเพนซอร์สที่กล่าวถึง:

  • NAISYS: ไดรเวอร์บรรทัดคำสั่งสำหรับ LLM พร้อมเทคนิคการปรับตัวให้เข้ากับ CLI
  • wezterm-mcp: การเข้าถึงเทอร์มินัลสำหรับ AI agent พร้อมการรองรับ TUI
  • just-mcp: อินเทอร์เฟซ MCP สำหรับการผสานรวมกับ Justfile task runner
  • context-llamur: เครื่องมือ context-engineering สำหรับการทำงานร่วมกันของ LLM
  • am-i-vibing: ไลบรารีสำหรับตรวจจับว่าเครื่องมือกำลังทำงานในสภาพแวดล้อม AI หรือไม่

บทสรุป

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

อ้างอิง: Rethinking CLI interfaces for AI