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 ที่รอดำเนินการอยู่

สคีมาของเครื่องมือ

ts
{  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 ผู้ใช้สามารถเลือกได้มากกว่าหนึ่งตัวเลือก ค่า คำตอบของทุกคำถามจะถูกส่งคืนเป็นอาร์เรย์

ตัวอย่างผลลัพธ์ที่ตอบแล้ว:

json
{  "status": "answered",  "answers": {    "answers": {      "deploy_target": {        "answers": ["Staging (Recommended)"]      }    }  }}

คำแนะนำสำหรับโมเดล

สัญญาที่แสดงต่อโมเดลกำหนดให้เอเจนต์:

  • ถามเฉพาะเมื่อติดขัดกับการตัดสินใจที่เป็นหน้าที่ของผู้ใช้อย่างแท้จริง;
  • ควรถามเพียงหนึ่งคำถามและไม่เกินสามคำถาม;
  • วางตัวเลือกที่แนะนำไว้ก่อนและเติม (Recommended) ต่อท้ายป้ายกำกับ;
  • ไม่ต้องใส่ตัวเลือก Other ที่กำหนดขึ้นเอง เนื่องจากระบบจะเพิ่มข้อความอิสระให้อัตโนมัติ;
  • ดำเนินการต่อโดยใช้วิจารณญาณที่ดีที่สุดหลังจาก no_answer.

เอเจนต์ไม่ควรใช้ ask_user เพื่อถามว่าสามารถดำเนินการต่อได้หรือไม่ หรือเพื่อยืนยัน แผนของตนเอง

Was this useful?
On this page

On this page