Qwen 3.7 Plus ได้คะแนน 79.0 บน ScreenSpot Pro ซึ่งเป็นเกณฑ์มาตรฐานสำหรับการดูภาพหน้าจอและส่งคืนพิกัดพิกเซลที่แน่นอนเพื่อคลิก ความสามารถเดียวนี้นี่เองที่เปลี่ยนโมเดลแชทให้กลายเป็นตัวแทนผู้ช่วยคอมพิวเตอร์ (computer-use agent): ซอฟต์แวร์ที่มองเห็นหน้าจอ ตัดสินใจว่าจะทำอะไร และลงมือทำ คู่มือนี้จะสร้างระบบที่ทำงานได้จริงด้วย Python แบบ end-to-end
เราจะครอบคลุมถึง agent loop, พร้อมท์ที่ทำให้ได้การกระทำที่เชื่อถือได้จากโมเดล, ตัวอย่างเบราว์เซอร์ที่รันได้ด้วย Playwright, รวมถึงค่าใช้จ่ายและการป้องกันความปลอดภัยที่คุณต้องมีก่อนที่จะนำไปใช้กับสถานการณ์จริง หากคุณต้องการข้อมูลพื้นฐานเกี่ยวกับโมเดลก่อน โปรดดู ภาพรวม Qwen 3.7 Plus ของเรา สำหรับรูปแบบคำขอแบบดิบ คู่มือ API ของ Qwen 3.7 Plus จะครอบคลุมถึงเพย์โหลดแบบมัลติโมดอล คุณจะได้ทดสอบการเรียกใช้งานของ agent ใน Apidog ในระหว่างขั้นตอน
สรุป (TL;DR)
ตัวแทนผู้ช่วยคอมพิวเตอร์ (computer-use agent) ทำงานแบบวนซ้ำ: ถ่ายภาพหน้าจอ, ส่งไปให้ Qwen 3.7 Plus พร้อมเป้าหมาย, ได้รับการกระทำที่มีโครงสร้างกลับมา เช่น click (x, y), ดำเนินการตามนั้นด้วยไดรเวอร์อย่าง Playwright, แล้วทำซ้ำจนกว่าจะบรรลุเป้าหมาย Plus เหมาะสมอย่างยิ่งเนื่องจากมีความเข้าใจ GUI เป็นอย่างดีและราคาของมัลติโมดอลที่ต่ำ ส่วนที่ยากไม่ใช่โมเดล แต่เป็นการจำกัดการวนซ้ำ, การปรับขนาดพิกัด, การควบคุมค่าใช้จ่ายโทเค็น และการแยกการกระทำออกจากกัน (sandboxing actions) เพื่อไม่ให้การคลิกผิดพลาดสร้างความเสียหายได้
ตัวแทนผู้ช่วยคอมพิวเตอร์ทำงานอย่างไรจริงๆ
ละทิ้งกระแสความนิยมออกไป มันคือสี่ขั้นตอนที่ทำซ้ำกัน:
- รับรู้ (Perceive): บันทึกภาพหน้าจอของหน้าจอหรือหน้าที่กำลังแสดงอยู่
- ตัดสินใจ (Decide): ส่งภาพหน้าจอและเป้าหมายไปยังโมเดล และรับการกระทำถัดไป
- ลงมือทำ (Act): ดำเนินการตามนั้น (คลิก, พิมพ์, เลื่อน) ผ่านไดรเวอร์อัตโนมัติ
- ตรวจสอบ (Check): ถ่ายภาพหน้าจอใหม่และตัดสินใจว่าเป้าหมายเสร็จสิ้นหรือไม่
โมเดลคือขั้นตอน "ตัดสินใจ" ส่วนที่เหลือคือระบบท่อ (plumbing) ที่คุณควบคุม
ทำไม Qwen 3.7 Plus ถึงเหมาะสม
มีสามเหตุผล: การทำความเข้าใจ GUI ของมันอยู่ในระดับแนวหน้า ทำให้สามารถคืนค่าพิกัดที่ใช้งานได้จริงแทนที่จะเป็นคำอธิบายที่คลุมเครือ มันสามารถจัดการเวิร์กโฟลว์แบบผสมผสานระหว่าง GUI และ CLI ได้ ดังนั้น agent ตัวเดียวกันจึงสามารถคลิกปุ่มและรันคำสั่งเชลล์ได้ และด้วยราคา $0.40 ต่อล้านโทเค็นอินพุต มันถูกพอที่จะใช้สำหรับการเรียก vision จำนวนมากที่ agent loop ต้องการ สำหรับการเปรียบเทียบกับโมเดล Text-only ระดับเรือธง โปรดดู การเปรียบเทียบ Qwen 3.7 Plus vs Max ของเรา

ขั้นตอนตัดสินใจ: การกระทำที่ชัดเจน
เคล็ดลับคือการจำกัดโมเดลให้มีชุดคำสั่งการกระทำที่เล็ก และบังคับให้ส่งออกเป็น JSON การบรรยายแบบไม่เป็นทางการนั้นยากต่อการดำเนินการ แต่โครงสร้างที่เข้มงวดนั้นไม่ใช่
import os, json, base64
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
SYSTEM = """You are a GUI agent. You see a screenshot and a goal.
Reply with ONE JSON action and nothing else:
{"action": "click", "x": <int>, "y": <int>}
{"action": "type", "text": "<string>"}
{"action": "scroll", "dy": <int>}
{"action": "done", "reason": "<string>"}
Coordinates are pixels in the screenshot you were given."""
def next_action(goal, png_bytes):
b64 = base64.b64encode(png_bytes).decode()
resp = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": SYSTEM},
{"role": "user", "content": [
{"type": "text", "text": f"Goal: {goal}"},
{"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{b64}"}},
]},
],
)
return json.loads(resp.choices[0].message.content)
ยืนยัน ID โมเดลที่แน่นอนใน เอกสาร Model Studio ก่อนใช้งานจริง เนื่องจากตัวระบุอาจมีการเปลี่ยนแปลง
วนซ้ำเต็มรูปแบบด้วย Playwright
Playwright ขับเคลื่อนเบราว์เซอร์จริง ดังนั้น agent จึงดำเนินการบนหน้าเว็บจริง รายละเอียดหนึ่งที่ช่วยลดปัญหาให้คุณได้มาก: ทำให้ความละเอียดของภาพหน้าจอตรงกับ viewport เพื่อให้พิกัดที่โมเดลส่งกลับมาตรงกันแบบหนึ่งต่อหนึ่ง และคุณจะข้ามการคำนวณการปรับขนาดไปได้
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page(viewport={"width": 1280, "height": 800})
page.goto("https://example.com")
goal = "Open the pricing page and find the cheapest plan"
for step in range(15): # จำกัดจำนวนขั้นตอน
shot = page.screenshot() # 1280x800 PNG, ตรงกับ viewport
action = next_action(goal, shot)
print(step, action)
if action["action"] == "done":
break
if action["action"] == "click":
page.mouse.click(action["x"], action["y"])
elif action["action"] == "type":
page.keyboard.type(action["text"])
elif action["action"] == "scroll":
page.mouse.wheel(0, action["dy"])
page.wait_for_timeout(800) # ให้ UI มีเวลาตั้งตัว
browser.close()
นั่นคือ agent ที่แท้จริง มันจะนำทางเว็บไซต์ไปสู่เป้าหมาย ทีละขั้นตอน การกระทำแบบเดียวกันนี้ใช้ได้กับแอปพลิเคชันเดสก์ท็อป หากคุณเปลี่ยน Playwright เป็นไดรเวอร์เดสก์ท็อปและถ่ายภาพหน้าจอของหน้าต่าง OS แทน
ค่าใช้จ่ายและความน่าเชื่อถือ
ภาพหน้าจอเป็นส่วนที่มีราคาแพง ภาพแต่ละภาพจะถูกแปลงเป็นโทเค็น และภาพขนาด 1280 พิกเซลอาจใช้โทเค็นหลายพันโทเค็นที่ $0.40 ต่อล้านโทเค็น ดังนั้นการวนซ้ำ 15 ขั้นตอนจึงใช้เงินจริงผ่าน API จงควบคุมมันไว้:
- ลดขนาดและตัดส่วน (Downscale and crop) ส่งภาพที่เล็กที่สุดที่โมเดลยังคงอ่านได้ ตัดส่วนให้เหลือเฉพาะส่วนที่เกี่ยวข้องเมื่อทำได้
- จำกัดการวนซ้ำ (Cap the loop) กำหนดขีดจำกัดจำนวนขั้นตอนเสมอตามตัวอย่าง เพื่อให้ agent ที่สับสนไม่สามารถทำงานได้ไม่สิ้นสุด
- ตรวจสอบหลังการกระทำ (Verify after acting) ถือว่าการกระทำแต่ละอย่างเป็นสมมติฐาน ภาพหน้าจอถัดไปจะยืนยันว่าได้ผลหรือไม่ และการวนซ้ำจะแก้ไขตัวเอง
คู่มือของเราเกี่ยวกับการลดค่าใช้จ่ายโทเค็นของ agent ลงลึกกว่านี้ และบันทึกของเราเกี่ยวกับ รูปแบบการเชื่อมต่อเวิร์กโฟลว์ของ agent และข้อผิดพลาด จะครอบคลุมถึงจุดที่การวนซ้ำเหล่านี้ล้มเหลวในทางปฏิบัติ
เมื่อ agent ติดขัด
ความล้มเหลวสามประการที่เกิดขึ้นตลอดเวลา และแต่ละอย่างมีวิธีแก้ไขราคาถูก:
- โมเดลส่งคืนข้อความแทน JSON พร้อมท์ใหม่ด้วยคำเตือนสั้นๆ ว่า "ตอบกลับด้วย JSON เท่านั้น" และลองใหม่หนึ่งครั้งก่อนที่จะยอมแพ้ โครงสร้างที่เข้มงวดพร้อมขั้นตอนการแก้ไขสามารถจัดการกับกรณีเหล่านี้ได้เกือบทั้งหมด
- การคลิกพลาดเป้าหมาย ภาพหน้าจอถัดไปแสดงว่าไม่มีอะไรเปลี่ยนแปลง ดังนั้นให้เพิ่มกฎที่ลองใหม่ด้วยภาพหน้าจอใหม่แทนที่จะทำซ้ำพิกัดเดิมซ้ำๆ อย่างสุ่มสี่สุ่มห้า
- การวนซ้ำหมุนวนโดยไม่มีความคืบหน้า ติดตามการกระทำสองสามครั้งล่าสุด หากมีการซ้ำ ให้หยุดและแสดงภาพหน้าจอให้มนุษย์ดู ขีดจำกัดขั้นตอนคือแนวป้องกันสุดท้ายของคุณ
ความปลอดภัย
ตัวแทนผู้ช่วยคอมพิวเตอร์คลิกสิ่งต่างๆ ได้จริงๆ ก่อนที่จะแตะต้องสิ่งสำคัญใดๆ:
- รันมันใน sandbox หรือโปรไฟล์เบราว์เซอร์ที่ใช้แล้วทิ้ง ไม่ใช่เซสชันการผลิตที่คุณล็อกอินอยู่
- ต้องมีการยืนยันจากมนุษย์สำหรับการกระทำที่ทำลายล้าง เช่น ลบ, ส่ง, หรือชำระเงิน
- บันทึกทุกการกระทำพร้อมภาพหน้าจอ เพื่อให้คุณสามารถตรวจสอบได้ว่า agent ทำอะไรไปและทำไม
ทดสอบการเรียกใช้งานของ agent ด้วย Apidog
ความล้มเหลวของ agent ส่วนใหญ่ย้อนกลับไปที่คำถามเดียว: โมเดลส่งคืนการกระทำที่ถูกต้องหรือไม่? ก่อนที่คุณจะเชื่อมต่อ Playwright ให้แก้ไขปัญหานั้น ใช้ Apidog เพื่อส่งภาพหน้าจอตัวอย่างไปยัง Qwen 3.7 Plus ตรวจสอบ JSON ดิบที่ส่งกลับมา และปรับแต่ง prompt ของระบบของคุณจนกว่าโครงสร้างการกระทำจะกลับมาอย่างชัดเจนทุกครั้ง จัดเก็บคีย์ Model Studio ของคุณตามสภาพแวดล้อม และจำลองปลายทางเพื่อให้คุณสามารถสร้าง loop ได้โดยไม่ต้องใช้โทเค็นในการทดสอบทุกครั้ง เมื่อ loop เต็มรูปแบบเชื่อมโยงการเรียกใช้งาน เครื่องมือดีบัก agent AI ของ Apidog จะแสดงลำดับเพื่อให้คุณสามารถค้นหาขั้นตอนที่ทำให้เกิดความผิดพลาดได้

หากต้องการสร้างโค้ด UI จากการออกแบบแทนที่จะขับเคลื่อน ให้ดูคู่มือของเราเกี่ยวกับการ แปลงภาพหน้าจอเป็นโค้ดด้วย Qwen 3.7 Plus
ดาวน์โหลด Apidog เพื่อทดสอบและดีบักการเรียกโมเดลที่อยู่เบื้องหลัง agent ของคุณ
คำถามที่พบบ่อย (FAQ)
ตัวแทนผู้ช่วยคอมพิวเตอร์ (computer-use agent) คืออะไร? ซอฟต์แวร์ที่รับรู้หน้าจอผ่านภาพหน้าจอ ตัดสินใจกระทำการด้วยโมเดล และดำเนินการผ่านไดรเวอร์อัตโนมัติ โดยวนซ้ำจนกว่าจะบรรลุเป้าหมาย
Qwen 3.7 Plus สามารถควบคุมเดสก์ท็อปของฉันได้หรือไม่? โมเดลจะส่งคืนการกระทำเท่านั้น คุณต้องดำเนินการด้วยไดรเวอร์ จับคู่กับ Playwright สำหรับเบราว์เซอร์ หรือไลบรารีอัตโนมัติสำหรับเดสก์ท็อปสำหรับแอปพลิเคชันพื้นฐาน
แต่ละขั้นตอนมีค่าใช้จ่ายเท่าไหร่? ส่วนใหญ่คือค่าภาพหน้าจอ รูปภาพหน้าจอเดียวสามารถใช้โทเค็นอินพุตได้หลายพันโทเค็นที่ $0.40 ต่อล้านโทเค็น ดังนั้นการลดขนาดและการจำกัดการวนซ้ำเป็นปัจจัยหลักในการควบคุมค่าใช้จ่าย
มีความน่าเชื่อถือเพียงพอสำหรับการใช้งานจริงหรือไม่? สำหรับงานที่มีขอบเขตชัดเจนและมีการตรวจสอบในแต่ละขั้นตอน ใช่ สำหรับการควบคุมระบบที่สำคัญแบบปลายเปิด ให้มนุษย์เข้ามามีส่วนร่วมและจำกัดทุกสิ่งใน sandbox
ฉันต้องปรับขนาดพิกัดหรือไม่? ไม่จำเป็นหากความละเอียดของภาพหน้าจอของคุณตรงกับ viewport หากแตกต่างกัน ให้ปรับขนาดพิกัดที่ส่งคืนตามอัตราส่วนระหว่างกัน
สรุป
ตัวแทนผู้ช่วยคอมพิวเตอร์คือวงจรวนซ้ำสั้นๆ รอบโมเดลที่มีประสิทธิภาพหนึ่งตัว และ Qwen 3.7 Plus ให้ความเข้าใจพื้นฐานและราคาที่เหมาะสมในการรันมัน สร้างวงจร จำกัดมัน แยกมันออกจากกัน และตรวจสอบแต่ละขั้นตอน จากนั้นทดสอบการเรียกโมเดลใน Apidog เพื่อให้ขั้นตอน "ตัดสินใจ" แข็งแกร่งก่อนที่ agent จะเริ่มคลิก
