Ponytail skill ดาว 155,000 ดวงเพิ่งพบว่าบรรทัด $schema บรรทัดเดียวทำให้ Codex, VS Code และ Qwen Code โหลดปลั๊กอินแบบไม่มี hook จนกฎไม่ถึงโมเดลอยู่ 2 วัน — และ /ponytail-gain เพิ่งเลิกโชว์ตัวเลขเก่าที่เกินจริง
Ponytail เป็นหนึ่งในรีโป agent skill ที่ดาวมากที่สุดบน GitHub ตอนนี้ (ราว 155,000 ดวง ไลเซนส์ MIT) แนวคิดคือให้เอเจนต์เขียนโค้ดแบบ “ซีเนียร์ขี้เกียจ” ก่อนเขียนอะไรต้องไล่ถามตามลำดับว่า ต้องมีสิ่งนี้จริงไหม มีในโค้ดเบสอยู่แล้วหรือยัง stdlib ทำได้ไหม เบราว์เซอร์หรือแพลตฟอร์มมีให้ไหม แล้วค่อยเขียนให้น้อยที่สุด ตัวอย่างใน README คือขอ date picker แล้วได้ <input type="date"> บรรทัดเดียว แทนการติดตั้งไลบรารีพร้อม wrapper component
ช่วงสุดสัปดาห์ที่ผ่านมามีสองรีลีสที่นักพัฒนาซึ่งเขียนหรือใช้ปลั๊กอินข้ามหลายเอเจนต์ควรรู้ v4.11.0 (4 ต.ค. 22:55 UTC) แก้บั๊กที่ทำให้ Ponytail ไม่ทำงานเลยใน Codex, VS Code และ Qwen Code มาสองวัน โดยที่ไม่มี error ให้เห็น ส่วน v4.12.0 (5 ต.ค.) เปลี่ยนตัวเลขที่คำสั่ง /ponytail-gain แสดง จากตัวเลขเดิมที่เกินจริงมาเป็นผลวัดที่เข้มงวดกว่า
บรรทัดเดียวที่ทำให้ hook หายไป
ต้นเรื่องคือ PR #744 ที่ผู้ร่วมพัฒนาเปิดไว้ตั้งแต่ ส.ค. และถูก merge เมื่อ 2 ต.ค. PR นี้อัปเกรด plugin.json ที่ root ของรีโปให้เป็น manifest ตามสเปก Agent Plugins 1.0.0 โดยเพิ่มบรรทัด $schema ของ agent-plugins.org คำอธิบายใน PR บอกว่า “Zero runtime effect today — no client ships an Agent Plugins loader yet” (ตอนนี้ไม่มีผลอะไร เพราะยังไม่มีไคลเอนต์ไหนรองรับ) แล้วการเปลี่ยนแปลงนี้ก็ออกไปกับ v4.10.2 เมื่อ 3 ต.ค.
ความจริงคือมีไคลเอนต์ที่รองรับแล้ว และไคลเอนต์เหล่านั้นตรวจหาบรรทัดนี้โดยตรง เมื่อเจอ จะโหลดปลั๊กอินตามรูปแบบ Agent Plugins แทน manifest เดิมของ Ponytail แต่ Agent Plugins v1 รองรับแค่ skill กับ MCP server ไม่มี hook ขณะที่ Ponytail ส่งกฎหลักเข้าไปให้โมเดลผ่าน hook ตอนเริ่มเซสชันและตอนส่ง prompt ผลคือติดตั้งสำเร็จ มี skill ให้เห็นครบ แต่กฎไม่เคยถึงโมเดล ผู้ดูแลตรวจสอบไว้ใน PR #1021 ดังนี้
- Codex 0.152.1 — เมื่อมีบรรทัดนี้
codex plugin addติดตั้ง Ponytail เป็นเวอร์ชัน “1.0.0” จาก root manifest และ loader ของ Codex ไม่คืน hook ให้ปลั๊กอินรูปแบบ Agent Plugins เลย (อ้างโค้ดcodex-rs/core-plugins/src/loader.rs) ทำให้ hookSessionStartและUserPromptSubmitไม่ถูกลงทะเบียน - Qwen Code 0.24.7 — โหลดแค่ skill 6 ตัว ไม่มี
AGENTS.mdและคำสั่งต่าง ๆ - VS Code — เลือกรูปแบบ Agent Plugins ก่อน แล้วไปหา hook ที่
com.github.copilot/hooks/hooks.jsonซึ่ง Ponytail ไม่มี (ข้อนี้ผู้ดูแลอ่านจากซอร์ส ไม่ได้รันทดสอบจริง) - ไม่ได้รับผลกระทบ — Claude Code 2.1.288, Copilot CLI 1.0.91, Gemini CLI 0.62.0 และ Grok Build 1.0.46 ไม่ได้ตรวจหาบรรทัดนี้
v4.11.0 จึงถอดบรรทัดนั้นออก และบันทึกรีลีสเขียนตรง ๆ ว่า “If you use ponytail in Codex, update.” ในรีลีสเดียวกันยังแก้ให้ Hermes ส่งกฎครั้งเดียวแทนการส่งซ้ำทุก turn, ให้ /ponytail-audit ต้องตรวจผู้เรียกใช้ทั้งโปรเจกต์ก่อนจะเสนอให้ลบโค้ด และเพิ่มคู่มือติดตั้งสำหรับเอเจนต์อีกหลายตัว รวมถึง Factory Droid และ DeepSeek Harness
ตัวเลข “ลดโค้ด 80–94%” ถูกถอดออกจากคำสั่งในที่สุด
เรื่องที่สองเล็กกว่าแต่สำคัญพอกัน เดิม /ponytail-gain แสดงว่า Ponytail ทำให้โค้ดน้อยลง 80–94% ถูกลง 47–77% และเร็วขึ้น 3–6 เท่า ตัวเลขชุดนี้มาจากเบนช์มาร์กแบบ single-shot (ส่ง prompt ครั้งเดียว นับบรรทัดในคำตอบ) ซึ่งมีคนในชุมชนวิจารณ์ไว้ใน issue #126 ว่า baseline คือโมเดลเปล่าที่ตอบยาวมีคำอธิบายปน จึงทำให้ตัวเลขดูดีเกินจริง ผู้ดูแลยอมรับคำวิจารณ์นั้นและสร้างเบนช์มาร์กใหม่ตั้งแต่ 18 มิ.ย. โดยใช้ Claude Code แบบ headless (Haiku 4.5) ทำ 12 ticket บนรีโป FastAPI + React จริง รันงานละ 4 รอบ แล้วนับจาก git diff เทียบกับเอเจนต์ตัวเดียวกันที่ไม่ได้ใส่สกิล
| เทียบกับไม่ใส่สกิล | โค้ด | โทเคน | ค่าใช้จ่าย | เวลา | ความปลอดภัย |
|---|---|---|---|---|---|
| Ponytail | −54% | −22% | −20% | −27% | 100% |
| prompt สั้น “YAGNI + one-liners” | −33% | −14% | −21% | −30% | 95% |
README กับเว็บไซต์เปลี่ยนไปใช้ตัวเลขชุดใหม่นานแล้ว แต่คำสั่ง /ponytail-gain ที่ผู้ใช้เรียกดูในเอเจนต์ยังแสดงตัวเลขเดิมมาจนถึง v4.12.0 (PR #1029) ควรสังเกตด้วยว่าในตารางใหม่ prompt บรรทัดเดียวที่ผู้วิจารณ์เสนอถูกกว่า Ponytail เล็กน้อยและเร็วกว่า เพียงแต่ลดโค้ดได้น้อยกว่าและหลุดเคสด้านความปลอดภัยไป 5%
มุมมอง AI Curator
บั๊กนี้เป็นบทเรียนที่ใช้ได้กับทุกคนที่ทำปลั๊กอินข้ามหลายเอเจนต์ ตอนนี้ไฟล์ manifest ไม่ได้เป็นแค่ metadata แล้ว แต่เป็นตัวกำหนดว่าไคลเอนต์จะโหลดปลั๊กอินด้วยโหมดไหน ความเห็นใน PR ที่ว่า “ยังไม่มีไคลเอนต์ไหนรองรับ” ผิดไปแล้วตั้งแต่ตอน merge เพราะ Codex, VS Code และ Qwen Code รองรับ Agent Plugins กันแล้ว และพอเปลี่ยนโหมด ก็ไม่มี error ใดเตือน สกิลยังขึ้นในรายการตามปกติ ทั้งที่ส่วนที่ทำงานจริงหายไป ถ้าคุณดูแลปลั๊กอินที่ใช้ hook ควรมีเทสต์ที่ติดตั้งจริงในแต่ละไคลเอนต์แล้วตรวจว่าโมเดลได้รับกฎจริงหรือไม่ การตรวจแค่ว่า manifest ผ่าน schema ไม่พอ
อีกด้านหนึ่ง ปัญหานี้ชี้ช่องว่างของสเปก Agent Plugins v1 ที่ไม่มีวิธีพกคำสั่งที่ต้องเปิดตลอด (always-on instructions) หรือ hook ไปด้วย ปลั๊กอินที่ทำงานด้วยการแทรกกฎเข้าไปทุกเซสชันแบบ Ponytail จึงยังต้องใช้ manifest แยกตามแต่ละเอเจนต์ไปก่อน ซึ่งขัดกับเป้าหมายของสเปกที่อยากให้ “เขียนครั้งเดียวใช้ได้ทุกที่”
ส่วนเรื่องตัวเลข ผมให้เครดิตผู้ดูแลที่ยอมรับคำวิจารณ์และสร้างเบนช์มาร์กที่ “พิสูจน์ได้ว่าสกิลไม่ช่วย” แต่ต้องอ่านให้ครบว่าเป็นการวัดด้วย Haiku 4.5 บนรีโปเดียว 12 งาน และ prompt บรรทัดเดียวก็ได้ผลเรื่องค่าใช้จ่ายใกล้เคียงกัน สำหรับทีมในไทยที่กำลังตั้งกฎให้ coding agent ลองใส่ข้อความ “Follow YAGNI, prefer one-liners” ใน AGENTS.md ดูก่อน ถ้ายังได้โค้ดที่ยาวเกินไป ค่อยติดตั้ง Ponytail เต็มตัว และถ้าใช้ Codex อยู่ให้อัปเดตเป็น v4.11.0 ขึ้นไป แล้วเปิด /hooks เพื่อตรวจว่า hook ทั้งสองตัวถูก trust แล้ว
แหล่งข่าว
อ่านเพิ่มในหมวด AI Skills
Anthropic แนะ “ยุบ subagent กลับเข้า agent loop เดียว” พร้อมปล่อย single-agent-loop-kit เป็น skill ของ Claude Code ที่ช่วย audit ระบบ multi-agent แล้วพับทีละตัวโดยวัดด้วย eval ก่อน-หลัง
บทความ 22 ต.ค. จากทีม Applied AI ของ Anthropic บอกว่า agent ตัวเดียวที่โหลด skill และ tool เมื่อจำเป็น มักให้คุณภาพดีกว่า ถูกกว่า และเร็วกว่าการแตก subagent ตามผังองค์กร ลูกค้ารายหนึ่งเร็วขึ้นราว 2 เท่า พร้อมปล่อย single-agent-loop-kit (Apache-2.0) เป็น skill ที่ audit ระบบเดิมแล้วพับ subagent ทีละตัว และเก็บไว้เฉพาะตัวที่ eval บอกว่ายังจำเป็น
MCP TypeScript SDK 2.4.0 เป็น SDK ทางการตัวแรกที่ปล่อย Skills over MCP (SEP-2640) ใน release จริง — loadSkills() เสิร์ฟทั้งโฟลเดอร์ SKILL.md, SkillsClient ตรวจ digest ทุกไฟล์ ส่วน Python/C# merge แล้วแต่ยังไม่ออก release
23 ต.ค. 2026 MCP TypeScript SDK 2.4.0 ปล่อยการรองรับ Skills extension (SEP-2640) ทั้งฝั่ง server และ client เป็น SDK อ้างอิงตัวแรกที่เอาฟีเจอร์นี้ขึ้น release จริง หลังสเปกขึ้นสถานะ Final มาตั้งแต่ 13 ก.ย. ทำงานได้ทั้งโปรโตคอล 2025-11-25 และ 2026-07-28 แต่ attach() ยังเป็น experimental
Anthropic ยก Agent Skills (มาตรฐาน SKILL.md) ให้ Agentic AI Foundation ใต้ Linux Foundation ต่อจาก MCP — 70+ แพลตฟอร์มรองรับแล้ว ทั้ง ChatGPT, Cursor, Copilot และ VS Code
เมื่อ 22 ต.ค. 2026 Anthropic มอบมาตรฐาน Agent Skills ให้ Agentic AI Foundation (AAIF) ใต้ Linux Foundation พร้อมชื่อ โลโก้ GitHub org และโดเมน agentskills.io มาตรฐานจะมี Technical Steering Committee จากหลายบริษัทดูแล และมี maintainer จาก Anthropic, Google, OpenAI ที่ทำงานในนามบุคคล roadmap แรกที่เสนอคือ versioned release, กระบวนการ proposal และแนวทาง security สำหรับคนเขียนและติดตั้ง skill