ผมเป็นคนที่มักเปิด AI agent พร้อมกันทีละสองสามตัวแล้วทำงานไปด้วย
แต่พอเปิดทิ้งไว้แล้วไปทำอย่างอื่น ก็จะคอยสงสัยอยู่เรื่อยว่า "ตอนนี้มันกำลังทำอะไรอยู่นะ?
เสร็จหรือยัง? หยุดไปแล้วเหรอ?"
ทุกครั้งต้องเปิด Activity Monitor แล้วก็กลับไปดู log ในเทอร์มินัล มันน่ารำคาญ เลยทำอันนี้ขึ้นมาครับ
มีแมวตัวหนึ่งอาศัยอยู่ในช่องบนเมนูบาร์ (macOS) / system tray (Windows)
ถ้า agent ว่าง มันจะนอน ถ้ากำลังทำงาน มันจะเดิน และถ้าใช้เต็มกำลัง มันจะวิ่ง
พอกดคลิก ก็จะเห็นได้ทันทีว่าใครใช้โมเดลอะไรไปเท่าไร และใช้เวลากับโปรเจกต์ไหนไปบ้าง
โครงสร้าง
ผมตัดสินใจเรื่องหนึ่งตั้งแต่แรกก่อนเริ่มทำ นั่นคือไม่ให้แอปคุยกับ agent โดยตรง แต่ให้มี local daemon เล็ก ๆ ชื่อ agentcatd คั่นกลางไว้
Claude Code · Codex · Gemini CLI · OpenCode · Copilot
|
| (어차피 로컬에 남기는 흔적들)
v
agentcatd
|
| JSON
v
127.0.0.1:8765/v1/snapshot
|
v
메뉴바 앱
daemon จะรวบรวมร่องรอยที่แต่ละ agent ทิ้งไว้ในเครื่องอยู่แล้ว นั่นก็คือสถานะของโปรเซสและไฟล์การใช้งาน แล้วจัดให้เป็น JSON รวมไว้ที่เดียว ส่วนแอปเมนูบาร์ก็แค่ polling ข้อมูลตรงนั้น
พอแยกแบบนี้ออกมา ก็สะดวกอยู่สองอย่าง อย่างแรกคือการรองรับ agent ใหม่ไม่ใช่ "ต้อง build แอปใหม่" แต่กลายเป็นแค่ "เพิ่ม adapter ให้ daemon อีกหนึ่งตัว" เท่านั้น รุ่นนี้ที่มี OpenCode กับ GitHub Copilot เข้ามาก็เพราะแบบนี้ อีกอย่างคือสามารถแยก daemon ตัวนั้นออกมาเปิดเป็นโอเพนซอร์สได้ต่างหาก ส่วนที่น่าถูกตั้งข้อสงสัยที่สุดอย่างโค้ดที่ว่าแอบดู prompt จริงไหม หรือแอบกินโทเค็นหรือเปล่า ใคร ๆ ก็เข้าไปไล่ดูได้ทีละบรรทัด
→ https://github.com/yong076/agentcat-connectors
การติดตั้งก็มีแค่บรรทัดเดียว
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/yong076/agentcat-connectors/… | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/yong076/agentcat-connectors/… | iex
สิ่งที่ไม่ทำ
ไม่เรียก API ไม่ใช้โทเค็นแม้แต่ตัวเดียว ไม่ดูทั้ง prompt และโค้ด ดูแค่ metadata ของโปรเซสกับไฟล์การใช้งานเท่านั้น
ไม่ใช่จะพูดอวดนะ แต่พูดตรง ๆ ว่าถ้าไม่ทำแบบนี้ มันก็คงกลายเป็น "จะให้ฉันติดตั้งอะไรเพิ่มในเครื่องอีกแล้วเหรอ"
ถ้าเป็นแอปที่มายึดพื้นที่บนเมนูบาร์ ส่งการแจ้งเตือน แล้วแอบกินโทเค็น ผมเองก็คงไม่เปิดใช้เหมือนกัน
การคำนวณค่าใช้จ่าย
คำนวณแยกกันระหว่าง input / output / cache read / cache write เพราะราคาต่อหน่วยต่างกัน ถ้ารวมแล้วบอกแค่ว่า "ใช้โทเค็นไป N ตัว" มันจะไม่ตรงกับบิล และถ้าเป็นแบบนั้นก็ไม่มีความหมาย เป้าหมายคือทำให้ตัวเลขคลาดจากบิลจริงให้น้อยที่สุด
- เว็บไซต์: https://agentcat.app
- ปัญหา/ข้อเสนอแนะ: https://github.com/yong076/agent-cat-releases/issues
1 ความคิดเห็น
ใช้งานได้ดีและมีประโยชน์มาก!