Tools
ถามผู้ใช้
ask_user ช่วยให้เอเจนต์ถามคำถามแบบมีโครงสร้างแก่ผู้ใช้ได้หนึ่งถึงสามข้อและ
รอคำตอบ เครื่องมือนี้ใช้สำหรับการตัดสินใจที่เป็นหน้าที่ของผู้ใช้อย่างแท้จริง
ไม่ใช่การยืนยันตามปกติหรือข้อมูลที่เอเจนต์สามารถอนุมานได้จากคำขอ
โค้ด หรือค่าเริ่มต้นที่สมเหตุสมผล
เครื่องมือนี้พร้อมใช้งานเฉพาะในเซสชันหลักเท่านั้น เอเจนต์ย่อยและการทำงานอื่นที่ไม่ใช่การทำงานหลัก จะไม่ได้รับเครื่องมือนี้
ตอบคำถาม
สามารถตอบได้จากทุกช่องทางการสนทนาที่รองรับ:
- Control UI บนเว็บจะตรึงแผงคำถามไว้เหนือช่องเขียนข้อความโดยตรง สำหรับ พรอมต์ที่มีหลายคำถาม แผงจะแสดงคำถามครั้งละหนึ่งข้อและเลื่อนไปตาม ตัวแสดงขั้นตอนแบบสั้น เมื่อดำเนินการเสร็จแล้ว แผงจะปิดและแชต จะเก็บไว้เฉพาะสรุปคำตอบแบบกระชับ
- Telegram, Discord และ Slack จะแสดงปุ่มแบบเนทีฟสำหรับพรอมต์ แบบคำถามเดียวที่เลือกได้หนึ่งตัวเลือก
- การตอบกลับด้วยข้อความธรรมดาใช้ได้กับทุกช่องทาง โดยตอบด้วยหมายเลข ป้ายกำกับตัวเลือก หรือคำตอบที่กำหนดเอง
OpenClaw เปิดใช้คำตอบแบบข้อความอิสระ Other เสมอ เอเจนต์ต้องไม่เพิ่มตัวเลือก
Other ลงในรายการตัวเลือกที่กำหนดขึ้น
ลักษณะการทำงานของแพลตฟอร์ม
การตอบคำถามใช้ได้กับทุกช่องทางการสนทนาที่รองรับ Control UI บนเว็บใช้ ตัวแสดงขั้นตอนแบบตรึงที่จะแทนที่ช่องเขียนข้อความเมื่อขยายอยู่ เมื่อยุบแล้ว ช่องเขียนข้อความแบบเต็มจะกลับมาอยู่ใต้แถบคำถามขนาดเล็ก iOS, macOS และ Android แสดง การ์ดแบบอินไลน์ โดยตั้งใจให้คำถามหลายข้อเรียงซ้อนกันเพื่อให้เหมาะกับการสัมผัส ทุกแพลตฟอร์มเก็บสรุปคำถามและคำตอบไว้ในไทม์ไลน์แชตที่ใช้งานอยู่ โดยไม่มีการนำออกตามเวลา และ Skip พร้อมใช้งานทุกที่
พรอมต์ที่ไม่สามารถใช้ปุ่มแบบเนทีฟได้ รวมถึงพรอมต์แบบหลายคำถามและ แบบเลือกได้หลายตัวเลือก จะลดรูปเป็นข้อความที่อ่านได้ในช่องทางต่างๆ ส่วน Control UI จะคงตัวแสดงขั้นตอนแบบมีโครงสร้างทั้งหมดไว้
หมดเวลาและไม่มีคำตอบ
ระยะหมดเวลาเริ่มต้นคือ 900 วินาที timeoutSeconds จะถูกจำกัดให้อยู่ในช่วง
30 ถึง 3600 วินาที
หากคำถามหมดอายุหรือถูกยกเลิกก่อนที่จะได้รับคำตอบ เครื่องมือจะ
ส่งคืน status: "no_answer" จากนั้นเอเจนต์จะดำเนินการต่อโดยใช้วิจารณญาณที่ดีที่สุด
การยุติการทำงานของเอเจนต์จะยกเลิกคำถาม Gateway ที่รอดำเนินการอยู่
สคีมาของเครื่องมือ
{ questions: Array<{ id: string; // คีย์คำตอบแบบ snake_case ที่ไม่ซ้ำกัน header: string; // ป้ายกำกับแบบสั้น; ตัดให้เหลือ 12 อักขระ question: string; // หนึ่งประโยค options: Array<{ label: string; description?: string; }>; // 2-4 ตัวเลือก multiSelect?: boolean; }>; // 1-3 คำถาม timeoutSeconds?: number; // จำนวนเต็ม; ค่าเริ่มต้น 900 จำกัดให้อยู่ในช่วง 30-3600}เมื่อใช้ multiSelect: true ผู้ใช้สามารถเลือกได้มากกว่าหนึ่งตัวเลือก ค่า
คำตอบของทุกคำถามจะถูกส่งคืนเป็นอาร์เรย์
ตัวอย่างผลลัพธ์ที่ตอบแล้ว:
{ "status": "answered", "answers": { "answers": { "deploy_target": { "answers": ["Staging (Recommended)"] } } }}คำแนะนำสำหรับโมเดล
สัญญาที่แสดงต่อโมเดลกำหนดให้เอเจนต์:
- ถามเฉพาะเมื่อติดขัดกับการตัดสินใจที่เป็นหน้าที่ของผู้ใช้อย่างแท้จริง;
- ควรถามเพียงหนึ่งคำถามและไม่เกินสามคำถาม;
- วางตัวเลือกที่แนะนำไว้ก่อนและเติม
(Recommended)ต่อท้ายป้ายกำกับ; - ไม่ต้องใส่ตัวเลือก
Otherที่กำหนดขึ้นเอง เนื่องจากระบบจะเพิ่มข้อความอิสระให้อัตโนมัติ; - ดำเนินการต่อโดยใช้วิจารณญาณที่ดีที่สุดหลังจาก
no_answer.
เอเจนต์ไม่ควรใช้ ask_user เพื่อถามว่าสามารถดำเนินการต่อได้หรือไม่ หรือเพื่อยืนยัน
แผนของตนเอง