- agent-shell เป็น เชลล์เนทีฟที่ทำงานบน comint-mode ซึ่งช่วยให้ควบคุม AI agent ได้โดยตรงจากใน Emacs
- ใช้ ACP (Agent Client Protocol) ทำให้มี ความยืดหยุ่น ในการสื่อสารกับ agent ได้หลากหลายโดยไม่ผูกติดกับ agent ใด agent หนึ่ง
- มีฟีเจอร์ วิเคราะห์ทราฟฟิกแบบเรียลไทม์ และ รีเพลย์ agent จำลอง (fake/fak) ช่วยเพิ่มประสิทธิภาพในการทดสอบและพัฒนา
- แม้จะยัง รองรับฟีเจอร์ของโปรโตคอลได้ไม่ครบทั้งหมด แต่ก็แสดงให้เห็นถึงการพัฒนาที่ใช้งานได้จริงอย่างรวดเร็ว
- ทั้ง agent-shell และ acp.el เปิดเผยสู่สาธารณะบน GitHub แล้ว และยินดีรับฟีดแบ็กจากผู้ใช้เกี่ยวกับฟีเจอร์เพิ่มเติมหรือบั๊ก
เกริ่นนำ
- เมื่อไม่นานมานี้ มีการเชื่อมต่อกับ Agent Client Protocol (ACP) ที่พัฒนาร่วมกันโดย Zed และ Google ได้ผ่าน acp.el ซึ่งเขียนด้วย Emacs Lisp
- ก่อนหน้านี้มีเพียงการเชื่อมต่อพื้นฐานกับ LLM อย่าง chatgpt-shell เท่านั้น ขณะที่การใช้งาน AI agent อย่างจริงจังยังค่อนข้างช้า
- เมื่อมีการนำ ACP เข้ามาใช้ ความต้องการเชื่อมต่อ agent ภายในสภาพแวดล้อม Emacs ก็เพิ่มขึ้น จึงเริ่มพัฒนา agent-shell แบบเนทีฟสำหรับ Emacs
ภาพรวมของ agent-shell
agent-shell สร้างอยู่บน comint-mode และทำงานภายใน ระบบบัฟเฟอร์ อันคุ้นเคยของ Emacs
- มอบสภาพแวดล้อมที่ใช้งานได้เช่นเดียวกับเชลล์ปกติของ Emacs โดยไม่ต้องสลับโหมดอักขระหรือโหมดบรรทัดแยกต่างหาก
Agent-agnostic (ไม่ผูกติดกับ agent)
- ด้วย ACP จึงสามารถสร้าง ประสบการณ์ใช้งานที่สม่ำเสมอ สำหรับการสื่อสารกับ agent หลายประเภทผ่านโปรโตคอลเดียว
- ตัวอย่างการตั้งค่าแสดงให้เห็นว่าสามารถนำ agent หลากหลายอย่าง เช่น Gemini CLI และ Claude Code มาใช้ได้ด้วย การแก้โค้ดเพียงเล็กน้อย
- ตัวอย่างโค้ด: อธิบายวิธีตั้งค่าการยืนยันตัวตน คำสั่ง และตัวแปรสภาพแวดล้อมสำหรับ agent แต่ละตัว
- agent อื่น ๆ ก็สามารถเชื่อมต่อได้ง่ายในลักษณะเดียวกัน
ฟีเจอร์ดูทราฟฟิก
- เนื่องจากยังไม่คุ้นเคยกับการใช้งานโปรโตคอล ACP จึงมีความจำเป็นต้อง วิเคราะห์ทราฟฟิกการสื่อสารแบบเรียลไทม์
- ใน agent-shell มี บัฟเฟอร์สำหรับดูทราฟฟิก แยกไว้ต่างหาก ทำให้สามารถดูทราฟฟิกแบบ Json ได้ในรูปแบบภาพผ่านคำสั่ง
M-x agent-shell-view-traffic
Fake agents (agent จำลองและรีเพลย์)
- เนื่องจากการพัฒนาด้วย agent แบบเสียเงินจริงมีปัญหาเรื่องต้นทุนและความไม่มีประสิทธิภาพด้านเวลา จึงได้เพิ่มฟีเจอร์ รีเพลย์ agent จำลอง เข้ามา
- สามารถนำข้อมูลการสื่อสารที่บันทึกไว้ผ่านบัฟเฟอร์ทราฟฟิกมาเล่นซ้ำ (replay) เพื่อทดสอบได้รวดเร็วหลายครั้ง
- แม้จะมีข้อจำกัดหรือขอบเขตบางประการ แต่ช่วยเพิ่มประสิทธิภาพให้กระบวนการดีบักและพัฒนาได้อย่างมาก
แผนต่อไปและสถานะปัจจุบัน
- ขณะนี้ยังมีการนำ Schema ของ Agent Client Protocol มาใช้เพียงบางส่วน จึงยังมี ส่วนที่ยังไม่สมบูรณ์เหลืออยู่
- กำลังทดลอง UX ใหม่ ๆ เช่น บัฟเฟอร์ quick(diff) ที่ใช้ปุ่ม n/p และ permission dialog
- มีแผนจะทำความเข้าใจฟีเจอร์ทั้งหมดของโปรโตคอลและเพิ่มการรองรับต่อไป
การเปิดเผยบน GitHub และแนวทางการใช้งาน
- ทั้ง agent-shell และ acp.el เปิดเผยอยู่บน GitHub
- agent-shell: แพ็กเกจสำหรับผู้ใช้ agent
- acp.el: ไลบรารีสำหรับนักพัฒนาที่ต้องการสร้างแพ็กเกจเชื่อมต่อเกี่ยวกับ agent
- ทั้งสองโปรเจกต์ยังอยู่ในระยะเริ่มต้นมาก (beta) และแนะนำให้ส่งรายงานบั๊กหรือคำขอฟีเจอร์เข้ามา
- การใช้บริการคลาวด์ LLM มีค่าใช้จ่ายเพิ่มเติม และการพัฒนาโอเพนซอร์สเองก็ต้องใช้ทั้งต้นทุนและความพยายาม
- หากเห็นว่าโปรเจกต์มีประโยชน์ ก็ขอเชิญร่วมสนับสนุน (donate)
1 ความคิดเห็น
ความคิดเห็นบน Hacker News