AI Agent
ตำแหน่งในแอดมิน: System › Settings › AI provider (
/settings/ai) — สวิตช์เปิดปิดโมดูลและผู้ให้บริการ; System › Admin › License & updates (/license) — สวิตช์เปิดปิดโมดูล ตำแหน่งในพอร์ทัล: AI Agent (/ai/agent) และหน้า/chat/agentหรือโหมด Agent ภายในแชท
What it does
AI Agent จะเชื่อมต่อกับ Linux VM ของลูกค้าเองผ่าน SSH และดำเนินงานตามที่อธิบายด้วยภาษาธรรมชาติ เช่น "check system health", "install Docker", "find recent errors", "free up disk space" โดยจะแสดงทุกคำสั่งที่เสนอพร้อมผลลัพธ์ คำสั่งที่เป็นการอ่านอย่างเดียวสามารถรันได้โดยอัตโนมัติ แต่คำสั่งใดๆ ที่เปลี่ยนแปลงเซิร์ฟเวอร์จะต้องรอให้ลูกค้ากดปุ่ม Run ก่อน
ข้อกำหนด
| Item | Requirement |
|---|---|
| โมดูล AI และผู้ให้บริการ | เปิดใช้งานโมดูล AI และมี AI provider ที่ใช้งานได้ นอกจากนี้ Agent ยังต้องการโมเดลที่รองรับการเรียกใช้ Tool ด้วย |
openssh-client บนเซิร์ฟเวอร์พาเนล | Agent รันคำสั่งด้วยโปรแกรม ssh (/usr/bin/ssh) ของพาเนลเอง ตัวติดตั้งจะติดตั้ง openssh-client ให้ ตรวจสอบได้ด้วย ssh -V หากไม่มี Agent จะรายงานว่า "ssh client is not installed on the panel server" |
| ไม่ต้องใช้เกตเวย์ SSH แยกต่างหาก | ในการติดตั้งค่าเริ่มต้น ระบบจะใช้ SSH ในตัวและไม่จำเป็นต้องใช้ ssh-proxy web terminal ยกเว้นเมื่อเปิดใช้งานฟีเจอร์ web SSH เสริม (feature_ssh_web) และติดตั้งบริการ ssh-proxy แล้ว Agent จึงจะผ่าน ssh-proxy แทน |
| Network | เซิร์ฟเวอร์พาเนลต้องสามารถเข้าถึง IP ของ VM บนพอร์ต SSH (ค่าเริ่มต้นคือ 22) ได้ ตรวจสอบไฟร์และเวิร์ลและกลุ่มความปลอดภัยระหว่างพาเนลกับเน็ตเวิร์กของแขก |
| VM | เป็นของลูกค้า, กำลังทำงานอยู่, ไม่ถูกล็อก, เป็น Linux (ปฏิเสธ VM ระบบ Windows) และมี IP address ที่เป็นสาธารณะหรือสามารถติดต่อได้ |
| ข้อมูลรับรอง SSH | ชื่อผู้ใช้และรหัสผ่านสำหรับเข้าสู่ระบบ VM ที่ NexCMP จัดเก็บไว้ (บันทึกตอนสร้าง VM หรือตอนรีเซ็ต(รหัสผ่าน โดยเข้ารหัสแล้ว) หรือคีย์ปฏิบัติการของพาเนลหากมีการติดตั้งไว้ หากไม่มีทั้งสองอย่าง Agent จะแจ้งว่าไม่สามารถเข้าสู่ระบบได้ |
เตรียมโครงสร้างพื้นฐาน
ตรวจสอบ SSH client บนเซิร์ฟเวอร์พาเนล:
bashssh -V sudo apt-get install -y openssh-client # only if missingตรวจสอบว่าเซิร์ฟเวอร์พาเนลสามารถเปิด SSH ไปยัง guest VM ได้:
bashnc -vz 198.51.100.10 22แทนที่ที่อยู่ด้วย IP ของ VM ทดสอบ หากขั้นตอนนี้ล้มเหลว ให้แก้ไขการกำหนดเส้นทางหรือไฟร์วอลล์ก่อน
ตรวจสอบให้แน่ใจว่า guest อนุญาตให้เข้าสู่ระบบด้วยรหัสผ่านสำหรับผู้ใช้ที่ NexCMP จัดเก็บไว้ (ภาพอิมเมจระบบคลาวด์บางภาพปิดใช้งานไว้) หรือติดตั้งคีย์ปฏิบัติการของพาเนลบน guest แล้ว
เชื่อมต่อใน NexCMP
- ตั้งค่า AI provider ให้เสร็จสิ้น: เปิดใช้งานโมดูล บันทึกผู้ให้บริการแล้ว และสถานะ Test connection เป็นสีเขียว
- ไม่ต้องกำหนดค่าอื่นใดฝั่งแอดมิน สวิตช์โมดูลจะทำให้รายการ AI Agent ปรากฏในพอร์ทัลลูกค้า
- ในฐานะลูกค้า: เปิด AI Agent เลือกเซิร์ฟเวอร์ที่กำลังทำงานอยู่ และคลิก Choose server หน้าเว็บจะทดสอบ SSH ด้วยคำสั่งตายตัวที่ไม่เป็นอันตรายก่อน (ไม่มีการเรียก AI) และแสดงสถานะ SSH connected หรือสาเหตุที่ล้มเหลว
- พิมพ์งานที่ต้องการหรือเลือกรายการด่วน (Check system health, Install Docker, Install Nginx, Find recent errors, Security check, Free up disk space)
วิธีการรันคำสั่ง
แหล่งที่มา: เซิร์ฟเวอร์พาเนลพร้อมระบบ
sshclient รันทีละหนึ่งคำสั่งแบบ non-interactive ปลายทางจะเป็น IP ของ VM จากฐานข้อมูล เสมอ ไม่ใช่จากคำขอ โดยจะเข้าถึงได้เฉพาะ VM ที่กำลังทำงานอยู่และไม่ถูกล็อกซึ่งเป็นของผู้ใช้เท่านั้นการยืนยันตัวตน: รหัสผ่านที่จัดเก็บไว้จะถูกส่งผ่านตัวช่วย
SSH_ASKPASSแบบครั้งเดียวในสภาพแวดล้อมกระบวนการ โดยจะไม่ถูกเขียนลงดิสก์หรือใส่ไว้ในบรรทัดคำสั่ง คีย์โฮสต์จะไม่ถูกพิน (VM จะถูกติดตั้งใหม่พร้อมคีย์ใหม่) ผลลัพธ์ต่อหนึ่งคำสั่งจำกัดไว้ที่ 200 KB และแต่ละคำสั่งจะมีเวลาจำกัด (60 วินาที)ลูปของ Agent: AI จะเสนอคำสั่งและอ่านผลลัพธ์ โดยหนึ่งเทิร์นจะสิ้นสุดหลังจากผ่านไปสูงสุด 10 ขั้นตอน
โหมด:
โหมด พฤติกรรม Confirm ทุกคำสั่งจะต้องรอการกด Run Auto เฉพาะคำสั่งที่ผ่านรายการอนุญาตแบบอ่านอย่างเดียวที่เข้มงวดเท่านั้นที่จะรันได้เอง (เช่น df -h,ps,journalctl) ส่วนคำสั่งอื่น ๆ และคำสั่งที่ตัววิเคราะห์ไม่สามารถระบุได้อย่างแน่ชัด (ตัวแปร, การแทนที่คำสั่ง, การเปลี่ยนเส้นทางไปยังไฟล์) จะต้องรอการกด Runป้ายกำกับความเสี่ยง: คำสั่งที่เขียนทับหรือลบไฟล์, เขียนลงดิสก์, เปลี่ยนแปลงบัญชีหรือ SSH keys, ส่งข้อมูลไปยังเซิร์ฟเวอร์ภายนอก, เปิดการเชื่อมต่อเครือข่ายดิบ, รันโค้ดที่ถูกแปลงให้อ่านยาก, ดาวน์โหลดและรันสคริปต์, ปิดหรือรีสตาร์ทเครื่อง หรือเข้าถึงเซิร์ฟเวอร์อื่น จะแสดงสถานะ Needs confirmation เสมอ แม้ว่าจะอยู่ในโหมด Auto ก็ตาม
ผลลัพธ์ที่ไม่น่าเชื่อถือ: ผลลัพธ์ของคำสั่งจะแสดงให้โมเดลเห็นว่าเป็นข้อมูลที่ไม่น่าเชื่อถือ และคำสั่งภายในนั้นจะไม่ถูกทำตาม
ตรวจสอบ
- เลือก VM ทดสอบที่กำลังทำงานอยู่ หน้าเว็บจะแสดงสถานะ SSH connected
- พิมพ์ว่า "Check CPU, RAM and disk" ในโหมด Auto คำสั่งแบบอ่านอย่างเดียวจะทำงานและคำตอบจะสรุปผลให้
- พิมพ์ว่า "Install Nginx" คำสั่งติดตั้งจะปรากฏขึ้นพร้อมกับปุ่ม Run และ Skip จะไม่มีการรันใด ๆ จนกว่าคุณจะกด Run
- ตัวนับที่ด้านบนจะแสดงจำนวนการเรียกใช้งาน AI ที่ใช้ไปในวันนี้ (เช่น
3/300)
ขีดจำกัดและหมายเหตุ
- ขีดจำกัดรายวัน: 300 การเรียกใช้งาน AI ต่อลูกค้าหนึ่งรายต่อวัน (UTC) โดยจะรีเซ็ตในเวลา 00:00 UTC เมื่อใช้ครบโควตา Agent จะตอบว่า "Daily AI quota reached"
- การทำงานพร้อมกัน: สูงสุด 2 การรัน Agent ต่อลูกค้าหนึ่งรายในเวลาเดียวกัน โดยหนึ่งเซสชันจะรันทีละหนึ่งเทิร์น
- เซสชัน: สูงสุด 100 ข้อความต่อหนึ่งเซสชัน และ 4,000อักขระต่อข้อความ เซสชันหนึ่งจะเป็นของ VM หนึ่งเครื่อง หาก VM ถูกลบหรือโอนย้าย เซสชันเก่าจะกลายเป็นแบบอ่านอย่างเดียว
- VM ที่ถูกล็อก, หยุดทำงาน หรือ Windows: VM จะแสดงเป็น Locked, Stopped, Windows หรือ No address และจะไม่สามารถเลือกได้
- การสวมสิทธิ์: ผู้ดูแลระบบที่สวมสิทธิ์เป็นลูกค้าจะไม่สามารถใช้ฟีเจอร์ข้อมูลประจำตัวของ Agent ได้ (ดูที่ Log in as a customer)
- ความรับผิดชอบ: Agent อาจเกิดข้อผิดพลาดได้ พอร์ทัลจะแจ้งให้ลูกค้าตรวจสอบคำสั่งก่อนรัน โปรดระบุไว้ในข้อกำหนดการใช้งานของคุณว่าลูกค้าต้องรับผิดชอบต่อคำสั่งที่ตนเองอนุมัติ
- การปิดโมดูล AI จะลบรายการ Agent ออกและเส้นทางจะตอบกลับเป็น 404
module_disabled.
การแก้ Problme
| อาการ | สาเหตุ | วิธีแก้ปัญหา |
|---|---|---|
| "ไม่ได้ติดตั้ง ssh client บนเซิร์ฟเวอร์พาเนล (apt install openssh-client)" | ไม่มีไบนารี ssh | sudo apt-get install -y openssh-client. |
"Agent ไม่สามารถเข้าสู่ระบบได้" / ssh: no saved credentials for this VM | ไม่มีรหัสผ่านที่จัดเก็บไว้และไม่มีคีย์การดำเนินงาน | รีเซ็ตรหัสผ่าน VM ในพอร์ทัลเพื่อให้บันทึกใหม่อีกครั้ง หรือติดตั้งคีย์การดำเนินงาน |
| "เซิร์ฟเวอร์ไม่ตอบสนองภายในเวลาที่กำหนด" | ไฟร์วอลล์, SSH ไม่ได้เปิดฟังคำขอ (not listening), VM กำลังยุ่ง | ทดสอบ nc -vz <ip> 22 จากเซิร์ฟเวอร์พาเนล และเริ่ม sshd ใน VM |
| "ไม่สามารถเชื่อมต่อ SSH บนเซิร์ฟเวอร์นี้ได้" | การกำหนดเส้นทางหรือ Security Group | อนุญาตให้เซิร์ฟเวอร์ของระบบจัดการสามารถเชื่อมต่อกับ VM ผ่านพอร์ต 22 ได้ |
| "VM ไม่ได้ทำงานอยู่" / "ไม่อนุญาต" | VM ถูกหยุดการทำงาน ล็อก ถูกลบ หรือไม่ใช่ของลูกค้า | เริ่มการทำงานของ VM ปลดล็อก หรือเลือก VM อื่น |
| "ไม่พร้อมใช้งาน: N (หยุดทำงาน, ล็อกอยู่ หรือ Windows)" | สาเหตุตามที่ระบุไว้ด้านบน | VM จะต้องใช้ระบบปฏิบัติการ Linux และกำลังทำงานอยู่ |
| "เกตเวย์ SSH ไม่พร้อมใช้งานชั่วคราว" | เปิดใช้งานฟีเจอร์ Web SSH อยู่ แต่ ssh-proxy ไม่ทำงาน | เริ่มการทำงานของ ssh-proxy หรือปิดใช้งานฟีเจอร์ Web SSH เพื่อใช้ SSH ในตัว |
| "AI ตอบสนองช้าเกินไป (เกิน 90 วินาที)" | ผู้ให้บริการทำงานช้า | ใช้โมเดลที่เร็วขึ้นหรือลด Reasoning effort ลง |
| "โควตา AI ประจำวันหมดแล้ว" | ใช้งานครบ 300 ครั้งแล้ว | รอจนกว่าจะถึงเวลา 00:00 UTC |
| "เซสชันนี้ยังคงทำงานอยู่" | กำลังดำเนินการอีกรอบการสนทนาอยู่ | รอหรือกด Stop |