ใช้ตัวแทนเขียนโค้ดที่ติดตั้งแล้วเป็นโมเดลแชต
หากคุณชำระค่าบริการตัวแทนเขียนโค้ดอยู่แล้วและได้ลงชื่อเข้าใช้บนเครื่องที่รัน Libre WebUI คุณสามารถคุยกับตัวแทนนั้นจากแชตปกติได้โดยไม่ต้องเพิ่มคีย์ API แยก Libre WebUI จะตรวจพบอินเทอร์เฟซบรรทัดคำสั่งของตัวแทนและแสดงในตัวเลือกโมเดลเหมือนโมเดลอื่น
สิ่งที่ระบบตรวจพบ
ทุกครั้งที่ขอรายการโมเดล Libre WebUI จะค้นหาคำสั่งต่อไปนี้ใน PATH ของเซิร์ฟเวอร์:
| โมเดล | คำสั่ง | ผู้ให้บริการ |
|---|---|---|
| Claude Code | claude | Anthropic |
| Codex | codex | OpenAI |
| OpenCode | opencode | SST |
| Pi | pi | Mario Zechner |
รายการที่พบจะปรากฏใต้กลุ่ม Agents ในตัวเลือกโมเดล ระบบจะไม่ติดตั้งสิ่งใดให้และไม่ต้องมีไฟล์กำหนดค่า หากคำสั่งทำงานใน shell ของเซิร์ฟเวอร์ รายการนั้นก็จะปรากฏ
การตั้งค่า → แชท → ค่าเริ่มต้น ยังระบุรายการเหล่านี้เป็น เอเจนต์ รวมถึง Strands เมื่อบัญชีของคุณมีสิทธิ์ใช้ โมเดลปลั๊กอินเก็บชื่อผู้ให้บริการ ส่วนป้าย Ollama ใช้กับโมเดล Ollama เท่านั้น การปิด Ollama ไม่ซ่อนเอเจนต์หรือปลั๊กอินที่ตั้งค่าไว้ การ์ดข้อมูลแสดงชื่อและผู้ให้บริการของรายการที่เลือก พร้อมขนาด ตระกูล และรูปแบบเฉพาะเมื่อแคตตาล็อกระบุไว้
การเลือกโมเดล ไม่ใช่แค่ CLI
CLI แต่ละรายการอาจแสดงหลายตัวเลือกในกลุ่ม Agents:
- Claude Code มีค่าเริ่มต้นของบัญชีที่ลงชื่อเข้าใช้ พร้อม Sonnet, Opus และ Haiku
นอกจากนี้ยังมีตัวเลือก Sonnet 5.5 (
claude-sonnet-5-5) และ Opus 5.5 (claude-opus-5-5) แบบระบุชัดเจน โดย Sonnet 5.5 ต้องใช้ Claude Code 2.1.284 หรือใหม่กว่า และ Opus 5.5 ต้องใช้ Claude Code 2.1.280 หรือใหม่กว่า ทั้งสองรุ่นต้องให้บัญชีที่ลงชื่อเข้าใช้มีสิทธิ์เข้าถึง รันclaude updateเพื่ออัปเดต CLI ส่วนชื่อแทน Sonnet และ Opus ที่มีอยู่ยังคงอ้างอิงการจับคู่โมเดลปัจจุบันของ CLI - Codex มีค่าเริ่มต้นที่กำหนดไว้ พร้อมตระกูลการลงชื่อเข้าใช้ ChatGPT ตามเอกสาร ได้แก่ GPT-6 Astra, GPT-6.1 Sol (
gpt-6.1-sol), GPT-6 Sol, GPT-6 Luna, GPT-5.6 Sol, Terra, Luna, GPT-5.5 และ GPT-5.3 Codex Spark โดยจะใช้ได้แค่ไหนขึ้นกับการลงชื่อเข้าใช้ของ CLI และสิทธิ์ของบัญชี - Pi ใช้โมเดลที่กำหนดไว้ใน CLI เอง
- OpenCode แสดงโมเดลของผู้ให้บริการทุกเจ้าที่ได้ยืนยันตัวตนไว้ (จาก
opencode models) และต้องเลือกให้ชัดเจนเสมอ เพราะค่าเริ่มต้นระดับ CLI อาจชี้ไปยังเซิร์ฟเวอร์ในเครื่องที่โฮสต์ Libre WebUI เข้าถึงไม่ได้
เอนจิน Strands ที่ฝังในระบบจะแสดงในกลุ่มเอเจนต์ด้วยเมื่อบัญชีของคุณมีสิทธิ์ใช้ เอนจินนี้ไม่ใช่ CLI แต่ทำงานภายใน backend และขับเคลื่อนโมเดล Ollama และโมเดลจากปลั๊กอินผู้ให้บริการของคุณ รายการ Strands แบบพื้นฐาน (strands) ใช้โมเดลแชตเริ่มต้นของคุณ ส่วนรายการอื่น (strands:<route>) จะมีหนึ่งรายการต่อโมเดลที่พร้อมใช้ เช่น Strands · gpt-5.6-sol (Codex (ChatGPT)) และตรึงทั้งโมเดลและผู้ให้บริการไว้กับบทสนทนานั้น ผู้ให้บริการอื่นที่พร้อมใช้จะไม่เข้ามาแทนที่เมื่อเกิดขัดข้อง การแสดงรายการตัวเลือกไม่ได้เริ่มเอนจิน
รายการ Strands เดียวกันใช้เป็นโมเดลงานใน การตั้งค่า → แชท → ค่าเริ่มต้น สำหรับชื่ออัตโนมัติและสรุปความคิดได้ ใช้โมเดลที่กำลังทำงานอยู่ จะใช้ตัวเลือก Strands ที่บันทึกไว้ในบทสนทนา คำขอข้อความสั้นเหล่านี้เรียกโมเดลผู้ให้บริการเบื้องหลังโดยตรง ไม่รันเครื่องมือของเอเจนต์และไม่สร้างเซสชันเอเจนต์ โปรไฟล์ CLI อื่นต้องมีโมเดลงาน Ollama ปลั๊กอิน หรือ Strands สำหรับคำขอเสริมเหล่านี้
Pi รันแต่ละรอบแบบไม่มีสถานะ (--no-session) ปิดเครื่องมือในเครื่อง และใช้พรอมต์ระบบที่เป็นกลาง คำตอบจึงไม่ถูกปรุงแต่งด้วยการตั้งค่า Pi ส่วนตัวของผู้ใช้ระบบปฏิบัติการบนเซิร์ฟเวอร์ และแชตจะไม่แตะต้องการตั้งค่านั้น
วิธีใช้
- ลงชื่อเข้าใช้เป็นผู้ดูแลระบบ
- เริ่มแชตและเปิดตัวเลือกโมเดล
- เลือกรายการใต้ Agents
- ส่งข้อความตามปกติ คำตอบจะสตรีมกลับทีละ token
บทสนทนาถูกจัดเก็บเหมือนแชตอื่น คุณจึงออกแล้วกลับมา เปลี่ยนชื่อ และค้นหาจากชุดคำสั่งได้ แต่ละรอบจะส่ง transcript ของบทสนทนาล่าสุดไปยังตัวแทนและสตรีมคำตอบกลับมา
ผู้ใช้ที่เข้าถึงได้และสิ่งที่ตัวแทนเข้าถึงได้
ฟีเจอร์นี้ใช้ได้ เฉพาะผู้ดูแลระบบ และเหตุผลนี้สำคัญ ตัวแทนรันบนโฮสต์ด้วยผู้ใช้ระบบปฏิบัติการเดียวกับ backend ของ Libre WebUI ไม่ได้รันในคอนเทนเนอร์ Work จึงได้รับข้อมูลรับรองของตัวแทนและสิทธิ์ทั้งหมดที่ผู้ใช้นั้นมีตามปกติ ซึ่งอาจรวมถึงการอ่านไฟล์และรันคำสั่งบนเซิร์ฟเวอร์หากตัวแทนตัดสินใจทำ
ให้ถือว่าการเปิดฟีเจอร์นี้เทียบเท่ากับการให้ตัวแทนเข้าถึง shell ของเครื่อง ด้วยเหตุนี้ฟีเจอร์จึง ปิดอยู่ ตั้งแต่แรก ผู้ดูแลระบบต้องเปิดที่ การตั้งค่า → จัดการผู้ใช้ → การเข้าถึงและนโยบาย → โมเดลเอเจนต์ CLI การตั้งค่าจะถูกบันทึกและมีผลทันทีโดยไม่ต้องรีสตาร์ต
การเปลี่ยนตัวควบคุมนี้จะรีเฟรชแคตตาล็อกโมเดลทันที กลุ่ม เอเจนต์ มีรายการ CLI โดยตรง ส่วน โมเดลปลั๊กอิน มีการผสานรวม API ของผู้ให้บริการ เช่น Codex (ChatGPT) Strands แสดงอยู่ในกลุ่มเดียวกัน แต่เป็นไปตามการตั้งค่าการเข้าถึง เอนจิน Strands ของตัวเอง ไม่ใช่สวิตช์นี้ จึงอาจแสดงได้แม้ปิดโมเดลเอเจนต์ CLI อยู่ การค้นหาโมเดลของ Strands ไม่สามารถขัดขวางการค้นหาเอเจนต์ CLI ที่ติดตั้งไว้
การติดตั้งเดิมสืบทอดตัวเลือก Agents ที่บันทึกไว้ จนกว่าจะบันทึกค่าของ CLI แยกต่างหาก
หากต้องการตรึงการตัดสินใจที่ระดับการติดตั้งโดยไม่ขึ้นกับสวิตช์ขณะรัน ให้ตั้งตัวแปรสภาพแวดล้อมเป็นค่าใดค่าหนึ่ง (และจะล็อกสวิตช์ในอินเทอร์เฟซด้วย):
AGENT_CLI_MODELS_ENABLED=false # or true
สำหรับโมเดลที่ทำงานกับไฟล์ได้แต่ยังอยู่ใน sandbox ให้ใช้ Work แทน โดย Work จะรันโมเดลที่ใช้เครื่องมือได้ในคอนเทนเนอร์ที่จำกัดสิทธิ์พร้อมพื้นที่ทำงานแยก
การติดตามการใช้งาน
เปิด การใช้งานผู้ให้บริการ (/usage) และดู เอเจนต์ ใกล้ด้านบน Claude Code, Codex, OpenCode, Pi และ Strands มีรายการแยก พร้อมข้อความชัดเจนเมื่อช่วงเวลานั้นไม่มีการเรียกที่บันทึกไว้
CLI ที่เรียกผ่าน LWUI บันทึกผล ระยะเวลา และโทเคนที่รายงาน หนึ่งการเรียกสร้างหนึ่งเหตุการณ์ ภาพรวมซ้ำและรายงานแต่ละขั้นไม่เพิ่มจำนวนเหตุการณ์หรือโทเคนซ้ำ ตัวนับที่ขาดยังคงไม่รายงาน การหยุดคำตอบบันทึกเป็นการยกเลิก และ CLI ที่จบด้วยข้อผิดพลาดไม่ถือว่าสำเร็จเพียงเพราะมีข้อความบางส่วน ไม่ได้นำเข้าการเรียก CLI นอก LWUI
การเรียก Strands จะนับให้กับเอเจนต์ Strands ดูรายละเอียดและข้อจำกัดที่ การใช้งานเอเจนต์
การกำหนดค่า
| ตัวแปร | ค่าเริ่มต้น | วัตถุประสงค์ |
|---|---|---|
AGENT_CLI_MODELS_ENABLED | ไม่ได้ตั้งค่า | ตรึงฟีเจอร์เป็น true/false; หากไม่ตั้งค่าจะใช้สวิตช์ผู้ดูแลระบบ (ปิดตามค่าเริ่มต้น) |
AGENT_CLI_TIMEOUT_MS | 600000 | เวลาสูงสุดที่ตัวแทนหนึ่งรอบทำงานได้ก่อนถูกยุติ |
การแก้ปัญหา
ไม่มีกลุ่ม Agents ปรากฏ ตรวจสอบว่าเปิดฟีเจอร์ที่ การตั้งค่า → จัดการผู้ใช้ → การเข้าถึงและนโยบาย → โมเดลเอเจนต์ CLI (ปิดตามค่าเริ่มต้น) และลงชื่อเข้าใช้เป็นผู้ดูแลระบบ จากนั้นตรวจสอบว่าคำสั่งอยู่ใน 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 ให้เพิ่มค่า หรือแบ่งคำขอเป็นขั้นตอนเล็กลง