สรุปสั้น ๆ: ไฟล์ AGENTS.md ที่เป็นอันตรายสามารถไฮแจ็ก coding agent ได้โดยอาศัยกลไกการทำงานตามปกติของตัวไฟล์เอง กล่าวคือ agent จะอ่านไฟล์ดังกล่าวตอนเริ่มต้นทำงานและปฏิบัติตามคำสั่งในนั้น โดย Forever Security ได้ตรวจพบเคสนี้ในโฟลเดอร์ ~/Downloads ของลูกค้ารายหนึ่งจริงเมื่อเดือนตุลาคม 2026 วิธีป้องกันคือ ห้ามรัน agent ในโฟลเดอร์ที่คุณไม่ได้ควบคุมอย่างเด็ดขาด, ตรวจทานไฟล์คำสั่งเสมือนเป็นโค้ดชุดหนึ่ง, ไม่อนุญาตให้แก้ไขไฟล์คอนฟิกหรือตั้งค่าเครือข่ายใหม่, เปิดใช้งาน sandbox และระบบขอคำยืนยันเสมอ รวมถึงคอยเฝ้าระวังการเปลี่ยนแปลงในไฟล์คอนฟิกของตัว agent เอง
การโจมตีด้วยไฟล์ AGENTS.md อันตรายคืออะไร
ไฟล์ AGENTS.md ที่เป็นอันตราย คือไฟล์คำสั่งระดับโปรเจกต์ที่ถูกเขียนขึ้นมาเพื่อหลอกล่อให้ coding agent ทำสิ่งที่เป็นอันตราย ทั้ง Claude Code, Codex และ agent ตัวอื่น ๆ ต่างโหลดไฟล์เหล่านี้โดยอัตโนมัติจากโฟลเดอร์ที่พวกมันเริ่มทำงาน การโจมตีนี้ไม่ต้องอาศัยช่องโหว่ใด ๆ เลย เพราะ agent จะอ่านไฟล์นี้ตั้งแต่ตอนเริ่มต้นและเข้าใจว่าเนื้อหาข้างในคือกฎเกณฑ์ของโปรเจกต์นั้นจริง ๆ
ตัวไฟล์จะดูเหมือนบันทึกการทำงานของวิศวกรทั่วไป เช่น ขั้นตอน “preflight” ที่ต้องติดตั้งแพ็กเกจ หรือข้อความระบุ “proxy” เพื่อเปลี่ยนเส้นทางทราฟฟิกของ API ซึ่งสำหรับ agent แล้ว คำสั่งเหล่านี้ก็ไม่ต่างอะไรกับคำสั่งธรรมดาอย่าง “ให้ใช้ pnpm แทน npm” เลยแม้แต่น้อย
หากทีมนักพัฒนาของคุณใช้งาน coding agent หลายตัว Sharkly จะช่วยให้มีศูนย์กลางจุดเดียวในการมอบหมายงานและตรวจสอบผลงานของ agent เหล่านั้น ซึ่งเราจะมาดูกันต่อว่าระบบนี้จะช่วยเปลี่ยนจุดเริ่มต้นการทำงานของ agent ได้อย่างไร
ทำไม coding agent ถึงยอมทำตามคำสั่งในไฟล์
ไฟล์คำสั่งเหล่านี้จะเข้าไปอยู่ใน context ของ agent ควบคู่ไปกับพรอมต์ของคุณ โดยไม่มีการแบ่งแยกขอบเขตชัดเจนระหว่างกฎของโปรเจกต์กับคำขอที่คุณป้อนเข้าไป
เอกสารระบบความจำ (memory documentation) ของ Claude Code ระบุไว้ว่า เนื้อหาใน CLAUDE.md และ AGENTS.md จะถูกมองว่า “เป็นบริบท (context) ไม่ใช่การบังคับใช้การตั้งค่า (enforced configuration)” โดยจะโหลดไฟล์ AGENTS.md ทุกไฟล์ที่อยู่ใน working directory และไดเรกทอรีเหนือขึ้นไปทั้งหมดหากไม่มีไฟล์ CLAUDE.md อยู่ ส่วนคู่มือ AGENTS.md ของ Codex จะไล่ตั้งแต่รูทของโปรเจกต์ลงมาจนถึงไดเรกทอรีปัจจุบัน แล้วนำเนื้อหาที่พบมารวมกัน ซึ่งโดยค่าเริ่มต้นจะรองรับสูงสุด 32 KiB โดยไฟล์ที่อยู่ใกล้กับโฟลเดอร์ที่คุณรัน agent ที่สุดจะถูกนำมาประมวลผลหลังสุด ทำให้มีผลแทนที่การตั้งค่าก่อนหน้า ดังนั้น โฟลเดอร์ที่คุณสั่งเริ่มทำงานจึงเป็นตัวกำหนดว่าจะมีอะไรถูกโหลดเข้ามาบ้าง และโฟลเดอร์ต้นทาง (parent folders) ก็มีผลด้วยเช่นกัน
ไฟล์ AGENTS.md อันตรายไฮแจ็ก Codex และ Claude Code ได้อย่างไร
เมื่อวันที่ 22 ตุลาคม 2026 ทาง Forever Security ได้เผยแพร่ข้อมูล สิ่งที่พวกเขาตรวจพบบนแล็ปท็อปของลูกค้ารายหนึ่ง โดยมี coding agent พยายามติดตั้ง function-color ซึ่งเป็นแพ็กเกจ npm อันตรายที่รู้จักกันดี และคำสั่งดังกล่าวมาจากไฟล์ AGENTS.md ในโฟลเดอร์ ~/Downloads ซึ่งเป็น working directory ของ agent ในขณะนั้น ทั้งนี้ Forever สามารถระงับการติดตั้งได้ก่อนที่จะมีโค้ดทำงาน และยังไม่สามารถระบุได้แน่ชัดว่าไฟล์นั้นเข้าไปอยู่ในโฟลเดอร์ดังกล่าวได้อย่างไร

เหตุผลที่โฟลเดอร์ Downloads กลายเป็นจุดเสี่ยงสำคัญ ก็เพราะเป็นโฟลเดอร์เดียวที่หน้าเว็บสามารถเขียนไฟล์ลงไปได้โดยไม่ต้องคลิกยินยอม ทาง Forever จึงได้จำลองลำดับขั้นตอนการโจมตีนี้ขึ้นในแล็บทดลอง:
- หน้าเว็บที่ผู้โจมตีควบคุมจะบันทึกไฟล์ชื่อ AGENTS.md ลงใน
~/Downloads - นักพัฒนาเปิดใช้งาน Codex ในโฟลเดอร์นั้นและสั่งงานอะไรก็ได้ตามปกติ
- ก่อนเริ่มทำงานตามสั่ง Codex จะเพิ่มเซิร์ฟเวอร์ “project tools” ลงใน
~/.codex/config.tomlและติดตั้งแพ็กเกจจาก npm - เนื่องจากการตั้งค่าดังกล่าวมีผลกับทั้งเครื่อง การเรียกใช้ Codex ในครั้งต่อ ๆ ไปทุกเซสชันจึงจะโหลดเซิร์ฟเวอร์ของผู้โจมตีขึ้นมาเสมอ ไม่ว่าจะเปิดใช้งานในโฟลเดอร์ใดก็ตาม
Forever รายงานว่า Codex ทำตามเพย์โหลด (payload) นี้มากกว่า 90% ของการทดสอบ โดยการทดสอบส่วนใหญ่ใช้มัลแวร์จำลองที่ไม่เป็นอันตรายซึ่งจะเปิดโปรแกรมเครื่องคิดเลขขึ้นมา ส่วนแพ็กเกจจริงถูกทดสอบรันเพียงครั้งเดียวภายใน VM ที่แยกขาดจากระบบอื่น
สำหรับ Claude Code จะหลอกได้ยากกว่า โดยการวางไฟล์ CLAUDE.md ล่อไว้ ทำให้ตัวมันเปลี่ยนเส้นทางทราฟฟิก API ของตัวเองไปยังเซิร์ฟเวอร์ที่ Forever ควบคุม ส่งผลให้ OAuth token สำหรับล็อกอินรั่วไหล และทำให้เซิร์ฟเวอร์ดังกล่าวสามารถตอบกลับมาราวกับเป็นโมเดลตัวจริงได้ ซึ่ง Forever ระบุว่าวิธีนี้ได้ผลราว 50% ของการทดสอบ ทั้งนี้ ตัวเลขสถิติของทั้งสองกรณีมาจากการโจมตีคนละรูปแบบ จึงไม่ควรนำมาเปรียบเทียบว่าเป็นอัตราความสำเร็จในเกณฑ์เดียวกัน
ประเด็นสำคัญที่ Forever ชี้ให้เห็นคือ เรื่องนี้ไม่มีบั๊กให้แพตช์แก้ไข เพราะปัญหาเกิดจากการที่โฟลเดอร์ซึ่งหน้าเว็บสามารถเขียนไฟล์ลงไปได้ ดันได้รับความไว้วางใจราวกับว่าคุณเป็นผู้ใส่ไฟล์เหล่านั้นเข้าไปเอง บทเรียนในลักษณะเดียวกันนี้เคยปรากฏมาก่อนในงานวิจัย Rules File Backdoor ของ Pillar Security ซึ่งซ่อนคำสั่งไว้ในไฟล์กฎด้วยอักขระ Unicode ที่มองไม่เห็น ทำให้ผู้ตรวจทานโค้ดมองไม่เห็นความผิดปกติในหน้า diff
5 ขั้นตอนป้องกันการโจมตีจากไฟล์ AGENTS.md อันตราย
สองขั้นตอนแรกคือการป้องกันไม่ให้ไฟล์ถูกโหลดเข้ามา ส่วนอีกสามขั้นตอนที่เหลือคือการจำกัดความเสียหายหากมีไฟล์หลุดรอดเข้ามาได้

1. จุดไหนที่ไม่ควรสั่งรัน coding agent โดยเด็ดขาด
ห้ามรันใน ~/Downloads, โฟลเดอร์ home หรือโฟลเดอร์ใดก็ตามที่คุณไม่ได้สร้างขึ้นมาเองอย่างเด็ดขาด Forever ระบุว่าลูกค้าประมาณครึ่งหนึ่งเคยสั่งรัน coding agent ใน Downloads หากคุณต้องการให้ agent ช่วยจัดระเบียบไฟล์ที่ดาวน์โหลดมา ให้คัดลอกไฟล์เหล่านั้นไปยังโฟลเดอร์ว่างที่สร้างขึ้นใหม่แล้วค่อยเริ่มทำงานจากตรงนั้น
การตั้ง shell guard จะช่วยบังคับใช้กฎนี้ได้อย่างมีประสิทธิภาพสำหรับคนที่อาจเผลอลืม:
# ~/.zshrc: refuse to start an agent in folders the web can write to
agent_guard() {
case "$PWD" in
"$HOME"|"$HOME/Downloads"*|"/tmp"*)
echo "Refusing to start an agent in $PWD. Use a project folder." >&2
return 1 ;;
esac
}
claude() { agent_guard && command claude "$@"; }
codex() { agent_guard && command codex "$@"; }
2. จะตรวจทาน AGENTS.md ให้รัดกุมเหมือนการตรวจโค้ดได้อย่างไร
จงปฏิบัติต่อไฟล์คำสั่งทุกไฟล์เสมือนเป็นโค้ดที่สามารถสั่งรันได้จริง รวมถึงใน repo ที่คุณเพิ่ง clone มาเมื่อห้านาทีที่แล้ว จากนั้นให้เปลี่ยนกระบวนการตรวจทานให้เป็นแบบอัตโนมัติ โดยระบุไฟล์คำสั่งเหล่านี้ไว้ใน CODEOWNERS เพื่อให้ pull request ใดก็ตามที่มีการแก้ไขไฟล์ดังกล่าว ต้องผ่านการอนุมัติจากผู้ตรวจทานที่ระบุชื่อไว้เสมอ:
AGENTS.md @your-org/platform
**/AGENTS.md @your-org/platform
CLAUDE.md @your-org/platform
/.claude/ @your-org/platform
/.cursor/rules/ @your-org/platform
เพิ่มการตรวจสอบในระบบ CI ให้แจ้งล้มเหลวทันทีหากตรวจพบรูปแบบที่การโจมตีเหล่านี้นิยมใช้ เช่น อักขระ Unicode ที่ซ่อนอยู่, การเปลี่ยน base URL และคำสั่งติดตั้งซอฟต์แวร์ที่ฝังอยู่ในไฟล์คำสั่ง
#!/usr/bin/env bash
# ci/check-agent-instructions.sh
files=$(git ls-files '*AGENTS.md' '*CLAUDE.md' '.cursor/rules/*')
[ -z "$files" ] && exit 0
fail=0
# zero-width, bidi override and Unicode tag characters
if grep -nP '[\x{200B}-\x{200F}\x{202A}-\x{202E}\x{2066}-\x{2069}\x{E0000}-\x{E007F}]' $files; then
echo "Hidden Unicode in an agent instruction file"; fail=1
fi
if grep -niE 'BASE_URL|chatgpt_base_url|mcp_servers|npx --yes|curl .*\| *(ba)?sh' $files; then
echo "Config, network or install instruction in an agent file: needs review"; fail=1
fi
exit $fail
คำสั่ง grep ตัวที่สองอาจตรวจเจอบรรทัดการทำงานทั่วไปที่ไม่ได้เป็นอันตรายอยู่บ้าง แต่ถึงอย่างไรจุดเหล่านั้นก็ควรค่าแก่การให้คนเข้าไปตรวจสอบดูอยู่ดี
3. ปิดสิทธิ์ไม่ให้ agent แก้ไขไฟล์คอนฟิกของตัวเอง
การทดสอบจำลองเหตุการณ์ทั้งสองรูปแบบจบลงด้วยการที่ agent เข้าไปแก้ไขการตั้งค่าของตัวเอง ดังนั้น จงตัดสิทธิ์ตรงนี้ทิ้งไป โดยใน Claude Code ให้ปฏิเสธสิทธิ์การแก้ไขโฟลเดอร์คอนฟิกของ agent และป้องกันไม่ให้อ่าน secret ต่าง ๆ ผ่านไฟล์ .claude/settings.json ของโปรเจกต์:
{
"permissions": {
"deny": [
"Edit(./.claude/**)",
"Edit(~/.claude/**)",
"Edit(~/.codex/**)",
"Read(./.env)",
"Read(./.env.*)"
]
}
}
สำหรับการทำงานเป็นทีม ให้กำหนดค่าเหล่านี้ไว้ใน managed settings เพื่อไม่ให้ไฟล์ระดับโปรเจกต์เข้ามาปลดหรือลดหย่อนข้อกำหนดได้ โดยเอกสารของ memory ได้แนะนำให้ใช้ permissions.deny, sandbox.enabled และ env ภายใต้การควบคุมแบบ managed สำหรับทุกนโยบายที่จำเป็นต้องบังคับใช้ รวมถึงแนะนำให้ใช้ PreToolUse hook เพื่อสกัดกั้นการกระทำใด ๆ ไม่ว่าตัวโมเดลจะตัดสินใจอย่างไรก็ตาม นอกจากนี้ การล็อกเส้นทาง API routing ไว้ใน env แบบ managed ยังเป็นการแก้ปัญหาการโจมตีแบบเปลี่ยน base URL ได้โดยตรง และอย่าลืมตรวจสอบไวยากรณ์ของกฎต่าง ๆ เทียบกับเวอร์ชันที่คุณติดตั้งอยู่ก่อนนำไปใช้งานจริง
4. เปิดใช้งาน sandbox และข้อความขอคำยืนยันไว้เสมอ
Forever แนะนำให้เปิดใช้งาน approval gate และ sandbox ทิ้งไว้เสมอ พร้อมทั้งอย่าไว้วางใจข้อความใด ๆ ที่สั่งให้ agent ข้ามขั้นตอนความปลอดภัยเหล่านี้
กำหนดให้ชัดเจนว่าการกระทำใดบ้างที่ต้องหยุดรอการยืนยันจากมนุษย์เสมอ เช่น การติดตั้งแพ็กเกจ, การเปลี่ยนแปลงการตั้งค่าของ agent และการเชื่อมต่อเครือข่ายไปยังโฮสต์ใหม่ โดยบทความของเราเรื่อง approval gates for coding agents ได้อธิบายจุดที่ควรหยุดตรวจเช็กเหล่านี้ไว้แล้ว และบทความ what a coding agent should and shouldn’t be allowed to do ก็ได้ครอบคลุมถึงโมเดลการจัดการสิทธิ์ที่อยู่เบื้องหลังเรื่องนี้ไว้เช่นกัน
5. ตรวจสอบคอนฟิกของ agent สม่ำเสมอ และ rotate ทันทีที่พบสิ่งผิดปกติ
Forever ได้ระบุจุดที่ต้องเข้าไปตรวจสอบไว้อย่างชัดเจน ได้แก่ ใน ~/.codex/config.toml ให้มองหาบล็อก [mcp_servers.*] ที่น่าสงสัย หรือ chatgpt_base_url ที่ถูกเปลี่ยนแปลง ส่วนใน .claude/settings.json ของโปรเจกต์ ให้ตรวจดู ANTHROPIC_BASE_URL, การตั้งค่าพร็อกซี หรือ endpoint แปลกปลอมที่คุณไม่ได้เป็นคนตั้งค่าไว้
grep -nE '^\[mcp_servers\.|chatgpt_base_url' ~/.codex/config.toml
grep -rnE 'ANTHROPIC_BASE_URL|_PROXY|base_url' ~/.claude/settings.json .claude/settings*.json 2>/dev/null
npm ls -g --depth=0 2>/dev/null | grep -i function-color
หากตรวจพบสิ่งผิดปกติ ให้สันนิษฐานไว้ก่อนเลยว่า token รั่วไหลไปแล้ว และให้ทำการ rotate token ทันที เพราะ OAuth token ที่ถูกขโมยไปนั้นเทียบเท่ากับ session ที่กำลังใช้งานอยู่ ไม่ใช่แค่การดักจับคำขอเพียงครั้งเดียว และหากพบ function-color ให้ถือว่าคอมพิวเตอร์เครื่องนั้นถูกเจาะระบบเรียบร้อยแล้ว สำหรับขั้นตอนการคลีนระบบอย่างละเอียด รายการตรวจสอบกรณี coding agent ทำข้อมูลลับรั่วไหล ของเราได้ระบุผู้รับผิดชอบในแต่ละขั้นตอนการหมุนเวียนคีย์ (key rotation) ไว้อย่างครบถ้วน
Sharkly เข้ามาตอบโจทย์ตรงนี้อย่างไร
Sharkly ไม่ได้เข้าไปสแกนไฟล์คำสั่งหรือเข้ามาแทนที่ระบบสิทธิ์ของตัว agent เอง คุณจึงยังต้องปฏิบัติตามทั้ง 5 ขั้นตอนนี้อยู่ แต่ Sharkly จะเข้ามาเปลี่ยนจุดเริ่มต้นการทำงานของ agent และกำหนดว่าใครเป็นผู้มีสิทธิ์ตัดสินใจในเรื่องนี้
ใน Sharkly ตัว Agent จะทำงานบน Computer ที่คุณเชื่อมต่อไว้ และ Agent แต่ละตัวจะมี Default working directory ที่กำหนดไว้ในการตั้งค่า หากเลือก “Use temporary directory” การรัน Task แต่ละครั้งจะได้ไดเรกทอรีแยกต่างหากและได้ git worktree ที่สะอาดใหม่เอี่ยมของ repository ที่ผูกไว้ ส่วนหากเลือก “Specified directory” การรันจะใช้พาธภายในเครื่องตามที่คุณกำหนดไว้ ซึ่งเอกสาร working directory จะมีคำอธิบายรายละเอียดของทั้งสองโหมดนี้

การทำเช่นนี้จะเปลี่ยนการตัดสินใจเลือกโฟลเดอร์จากเทอร์มินัลของนักพัฒนา มาอยู่ในการตั้งค่าที่ผ่านการตรวจสอบแล้ว โดยในโหมด Temporary ตัว Agent จะเริ่มต้นทำงานจากการ checkout ที่สะอาดใหม่ของ repo ที่ผูกไว้ ไม่ใช่โฟลเดอร์ใดก็ตามที่ใครบางคนเปิดทิ้งไว้ นอกจากนี้ สิทธิ์การจัดการ repository ยังจำกัดไว้เฉพาะผู้ที่มีสิทธิ์ระดับ Space หรือ Organization admin เท่านั้น ขณะเดียวกัน ส่วนของ Agent instructions ที่จะถูกแทรกเข้าไปในทุกการรัน ก็เป็นจุดที่เหมาะอย่างยิ่งสำหรับการย้ำกฎความปลอดภัย เช่น “ห้ามแก้ไขไฟล์คอนฟิกของ agent โดยเด็ดขาด”
ผลลัพธ์จะถูกส่งกลับมาที่ Task เพื่อให้ทีมตรวจสอบร่วมกัน ดังที่อธิบายไว้ในบทความเรื่องการตรวจทานโค้ดที่สร้างโดย AI ด้วยหลักฐานระดับ task
บทสรุป
การโจมตีด้วย AGENTS.md อันตรายนั้นได้ผล เพราะโดยธรรมชาติแล้ว agent ถูกออกแบบมาให้ทำตามไฟล์คำสั่งเหล่านี้ และหน้าเว็บบนอินเทอร์เน็ตก็สามารถแอบวางไฟล์ไว้ในโฟลเดอร์ที่คุณไว้วางใจได้ คุณจึงต้องปิดช่องโหว่นี้ด้วยการวางแนวป้องกันหลายชั้น ไม่ใช่การรอแพตช์แก้ไข
เริ่มลงมือได้ตั้งแต่วันนี้ด้วยขั้นตอนที่ 5 บนแล็ปท็อปของนักพัฒนาทุกคน เพื่อเช็กดูว่าระบบของคุณกำลังเผชิญปัญหานี้อยู่หรือไม่ จากนั้น หากทีมของคุณใช้งาน coding agent หลายตัว ให้ตั้งค่า Sharkly ร่วมกับหนึ่ง Computer และหนึ่ง Agent ในโหมด Temporary เพื่อให้การทำงานทุกครั้งเริ่มต้นจาก worktree ที่สะอาดหมดจดเสมอ
คำถามที่พบบ่อย (FAQ)
ไฟล์ AGENTS.md อันตรายสามารถไฮแจ็ก Claude Code ได้หรือไม่
ได้แน่นอน เพราะ Claude Code จะอ่านไฟล์ AGENTS.md เมื่อไม่มีไฟล์ CLAUDE.md อยู่ใน working directory หรือไดเรกทอรีเหนือขึ้นไป โดยในการทดสอบจำลองของ Forever กับ Claude Code นั้น มีการวางไฟล์ CLAUDE.md ล่อไว้ ซึ่งสามารถเปลี่ยนเส้นทางทราฟฟิกของ API และทำให้ OAuth token รั่วไหลได้สำเร็จถึงประมาณครึ่งหนึ่งของการทดสอบ
นี่คือช่องโหว่ความปลอดภัยที่ OpenAI หรือ Anthropic จะออกแพตช์มาแก้หรือไม่
ทาง Forever ชี้ว่าไม่มีอะไรให้แพตช์แก้ไข เพราะตัว agent ทำงานถูกต้องตามที่ถูกออกแบบไว้ทุกประการ สิ่งที่ต้องทำคือการบริหารจัดการสุขอนามัยของโฟลเดอร์ (folder hygiene), การตรวจทานไฟล์อย่างรัดกุม และการควบคุมสิทธิ์การเข้าถึง
จะตรวจหาคำสั่งที่แอบซ่อนอยู่ในไฟล์ AGENTS.md ได้อย่างไร
ให้อ่านจากไฟล์ข้อมูลดิบโดยไม่เปิดดูผ่านมุมมองแบบ rendered และสแกนหาอักขระประเภท zero-width, bidi override รวมถึง Unicode tag characters ซึ่งสคริปต์ CI ด้านบนจะแจ้งล้มเหลวทันทีหากพบอักขระทั้งสามประเภทนี้
Sandbox สามารถป้องกัน AGENTS.md อันตรายได้หรือไม่
Sandbox ช่วยจำกัดขอบเขตความเสียหายได้ แต่ไม่ได้ป้องกันการโหลดไฟล์เข้ามา ทั้งนี้ sandbox และข้อความขอคำยืนยันสามารถสกัดกั้นการติดตั้งหรือการเขียนไฟล์คอนฟิกตามที่ไฟล์อันตรายร้องขอได้ และควรนำมาใช้ควบคู่กับกฎ deny เพื่อปฏิเสธสิทธิ์การเข้าถึงโฟลเดอร์คอนฟิกของ agent
ควรทำอย่างไรหากพบไฟล์ AGENTS.md ที่ถูกวางแอบแฝงไว้
อย่าสั่งรัน agent ในโฟลเดอร์นั้นหรือบริเวณใกล้เคียงโดยเด็ดขาด ให้ตรวจดูไฟล์คอนฟิกของ agent ว่ามี MCP server แปลกปลอมหรือ base URL ที่เปลี่ยนไปหรือไม่ ตรวจสอบการมีอยู่ของแพ็กเกจ function-color จากนั้นให้ทำการ rotate token ของ agent รวมถึงคีย์ทั้งหมดที่ agent มีสิทธิ์เข้าถึง


