ใช้ตัวแทนเขียนโค้ดที่ติดตั้งแล้วเป็นโมเดลแชต
หากคุณชำระค่าบริการตัวแทนเขียนโค้ดอยู่แล้วและได้ลงชื่อเข้าใช้บนเครื่องที่รัน Libre WebUI คุณสามารถคุยกับตัวแทนนั้นจากแชตปกติได้โดยไม่ต้องเพิ่มคีย์ API แยก Libre WebUI จะตรวจพบอินเทอร์เฟซบรรทัดคำสั่งของตัวแทนและแสดงในตัวเลือกโมเดลเหมือนโมเดลอื่น
สิ่งที่ระบบตรวจพบ
ทุกครั้งที่ขอรายการโมเดล Libre WebUI จะค้นหาคำสั่งต่อไปนี้ใน PATH ของเซิร์ฟเวอร์:
| โมเดล | คำสั่ง | ผู้ให้บริการ |
|---|---|---|
| Claude Code | claude | Anthropic |
| Codex | codex | OpenAI |
| OpenCode | opencode | SST |
| Pi | pi | Mario Zechner |
รายการที่พบจะปรากฏใต้กลุ่ม Agents ในตัวเลือกโมเดล ระบบจะไม่ติดตั้งสิ่งใดให้และไม่ต้องมีไฟล์กำหนดค่า หากคำสั่งทำงานใน shell ของเซิร์ฟเวอร์ รายการนั้นก็จะปรากฏ
การเลือกโมเดล ไม่ใช่แค่ CLI
CLI แต่ละรายการอาจแสดงหลายตัวเลือกในกลุ่ม Agents:
- Claude Code มีค่าเริ่มต้นของบัญชีที่ลงชื่อเข้าใช้ พร้อม Sonnet, Opus และ Haiku
- Codex มีค่าเริ่มต้นที่กำหนดไว้ พร้อมตระกูลการลงชื่อเข้าใช้ ChatGPT ตามเอกสาร ได้แก่ GPT-5.6 Sol, Terra, Luna และ GPT-5.3 Codex Spark
- Pi ใช้โมเดลที่กำหนดไว้ใน CLI เอง
- OpenCode แสดงโมเดลของผู้ให้บริการทุกเจ้าที่ได้ยืนยันตัวตนไว้ (จาก
opencode models) และต้องเลือกให้ชัดเจนเสมอ เพราะค่าเริ่มต้นระดับ CLI อาจชี้ไปยังเซิร์ฟเวอร์ในเครื่องที่โฮสต์ Libre WebUI เข้าถึงไม่ได้
Pi รันแต่ละรอบแบบไม่มีสถานะ (--no-session) ปิดเครื่องมือในเครื่อง และใช้พรอมต์ระบบที่เป็นกลาง คำตอบจึงไม่ถูกปรุงแต่งด้วยการตั้งค่า Pi ส่วนตัวของผู้ใช้ระบบปฏิบัติการบนเซิร์ฟเวอร์ และแชตจะไม่แตะต้องการตั้งค่านั้น
วิธีใช้
- ลงชื่อเข้าใช้เป็นผู้ดูแลระบบ
- เริ่มแชตและเปิดตัวเลือกโมเดล
- เลือกรายการใต้ Agents
- ส่งข้อความตามปกติ คำตอบจะสตรีมกลับทีละ token
บทสนทนาถูกจัดเก็บเหมือนแชตอื่น คุณจึงออกแล้วกลับมา เปลี่ยนชื่อ และค้นหาจากชุดคำสั่งได้ แต่ละรอบจะส่ง transcript ของบทสนทนาล่าสุดไปยังตัวแทนและสตรีมคำตอบกลับมา
ผู้ใช้ที่เข้าถึงได้และสิ่งที่ตัวแทนเข้าถึงได้
ฟีเจอร์นี้ใช้ได้ เฉพาะผู้ดูแลระบบ และเหตุผลนี้สำคัญ ตัวแทนรันบนโฮสต์ด้วยผู้ใช้ระบบปฏิบัติการเดียวกับ backend ของ Libre WebUI ไม่ได้รันในคอนเทนเนอร์ Work จึงได้รับข้อมูลรับรองของตัวแทนและสิทธิ์ทั้งหมดที่ผู้ใช้นั้นมีตามปกติ ซึ่งอาจรวมถึงการอ่านไฟล์และรันคำสั่งบนเซิร์ฟเวอร์หากตัวแทนตัดสินใจทำ
ให้ถือว่าการเปิดฟีเจอร์นี้เทียบเท่ากับการให้ตัวแทนเข้าถึง shell ของเครื่อง ด้วยเหตุนี้ฟีเจอร์จึง ปิดอยู่ ตั้งแต่แรก ผู้ดูแลระบบต้องเปิดที่ Settings → User Management → Agents การตั้งค่าจะถูกบันทึกและมีผลทันทีโดยไม่ต้องรีสตาร์ต
หากต้องการตรึงการตัดสินใจที่ระดับการติดตั้งโดยไม่ขึ้นกับสวิตช์ขณะรัน ให้ตั้งตัวแปรสภาพแวดล้อมเป็นค่าใดค่าหนึ่ง (และจะล็อกสวิตช์ในอินเทอร์เฟซด้วย):
AGENT_CLI_MODELS_ENABLED=false # or true
สำหรับโมเดลที่ทำงานกับไฟล์ได้แต่ยังอยู่ใน sandbox ให้ใช้ Work แทน โดย Work จะรันโมเดลที่ใช้เครื่องมือได้ในคอนเทนเนอร์ที่จำกัดสิทธิ์พร้อมพื้นที่ทำงานแยก
การกำหนดค่า
| ตัวแปร | ค่าเริ่มต้น | วัตถุประสงค์ |
|---|---|---|
AGENT_CLI_MODELS_ENABLED | ไม่ได้ตั้งค่า | ตรึงฟีเจอร์เป็น true/false; หากไม่ตั้งค่าจะใช้สวิตช์ผู้ดูแลระบบ (ปิดตามค่าเริ่มต้น) |
AGENT_CLI_TIMEOUT_MS | 600000 | เวลาสูงสุดที่ตัวแทนหนึ่งรอบทำงานได้ก่อนถูกยุติ |
การแก้ปัญหา
ไม่มีกลุ่ม Agents ปรากฏ ตรวจสอบว่าเปิดฟีเจอร์ที่ Settings → User Management → Agents (ปิดตามค่าเริ่มต้น) และลงชื่อเข้าใช้เป็นผู้ดูแลระบบ จากนั้นตรวจสอบว่าคำสั่งอยู่ใน PATH ของโปรเซส backend ไม่ใช่เพียง interactive shell ของคุณ ตัวจัดการบริการ คอนเทนเนอร์ Docker หรือ desktop launcher มักเริ่มด้วย PATH ที่สั้นกว่า login terminal มาก
คำตอบล้มเหลวทันที รันคำสั่งเดียวกันด้วยตนเองในฐานะผู้ใช้เซิร์ฟเวอร์ (claude -p "hello" หรือ codex exec "hello") สาเหตุส่วนใหญ่คือตัวแทนขอให้ลงชื่อเข้าใช้ใหม่เพราะเซสชันหมดอายุ หรือถึงขีดจำกัดอัตราของการสมัครสมาชิก โดยเฉพาะ OpenCode จะรายงานการเข้าสู่ระบบผู้ให้บริการที่หมดอายุไว้ใน log ของตนเองเท่านั้น ให้รัน opencode auth login อีกครั้งในฐานะผู้ใช้เซิร์ฟเวอร์
คำตอบหยุดกลางทาง รอบยาวอาจถึง AGENT_CLI_TIMEOUT_MS ให้เพิ่มค่า หรือแบ่งคำขอเป็นขั้นตอนเล็กลง