ข้ามไปเนื้อหาหลัก
อัปเดต

Claude SDK มี toolset สำหรับ computer use และ browser use ในตัวแล้ว ไม่ต้องเขียน loop เอง

SDK ของ Claude ทั้ง Python และ TypeScript เพิ่ม toolset สำหรับ computer use และ browser use แบบ beta SDK จะรัน loop ตรวจ policy และขออนุมัติให้ นักพัฒนาเขียนแค่ driver ที่เชื่อมกับเบราว์เซอร์หรือเดสก์ท็อปของตัวเอง หรือใช้ driver ของพาร์ตเนอร์อย่าง Browser Use, Browserbase, E2B และ Daytona

โดย ณัฐพล ยงค์ไพบูลย์ผู้ร่วมก่อตั้งกลุ่ม Claude Thailand Community

SDK ของ Claude ทั้ง Python และ TypeScript มี toolset สำหรับ computer use และ browser use ในตัวแล้วครับ ทั้งสองตัวยังเป็น beta

ข่าวนี้สำคัญกับคนที่สร้าง agent ให้ Claude ควบคุมเบราว์เซอร์หรือคอมพิวเตอร์ เพราะงานส่วนที่น่าเบื่อและพลาดง่ายที่สุดถูกย้ายเข้าไปอยู่ใน SDK แล้ว บัญชี ClaudeDevs อธิบายไว้ว่า API บอกเราว่า Claude อยากคลิกหรือพิมพ์อะไร เมื่อก่อนนักพัฒนาต้องเขียน loop เอง และแปลงการคลิกกับการพิมพ์เป็นคำสั่งเอง ตอนนี้ SDK เป็นคนรัน loop และส่ง action ไปให้ driver

ภาพจากวิดีโอสาธิตของ Anthropic มุมบนขวาเขียนว่า Computer toolset และ claude-haiku-5-5 มุมบนซ้ายเขียนว่า viewer3d.html ขนาด 1280x800 กลางภาพเป็นหน้าเว็บแสดงโมเดลสามมิติของเราเตอร์ที่ถูกพลิกให้เห็นด้านล่าง มีฉลากยี่ห้อ Northwind NX-200 พร้อมหมายเลขซีเรียลและบาร์โค้ด แผงด้านขวาของหน้าเว็บเขียนว่า Serial not recorded และบอกว่าหมายเลขซีเรียลพิมพ์อยู่บนฉลากใต้ตัวเครื่อง มีกล่องสีดำซ้อนอยู่แสดงลำดับการทำงานของ Claude คือ Waited 1s ตามด้วย screenshot ได้ไฟล์ image/png ขนาด 397 KB และ scroll up 5 ครั้งที่พิกัด 490, 440 ด้านล่างมีคำบรรยาย FIG 1 Scroll zooms. zoom rereads one region.

ภาพด้านบนมาจากวิดีโอสาธิต Claude Haiku 5.5 ใช้ computer toolset กับหน้าเว็บที่แสดงโมเดลสามมิติของเราเตอร์ หน้าเว็บบอกว่ายังไม่ได้บันทึกหมายเลขซีเรียล และหมายเลขนั้นพิมพ์อยู่บนฉลากใต้ตัวเครื่อง กล่องสีดำคือสิ่งที่ Claude ทำทีละขั้น คือรอ ถ่ายภาพหน้าจอ แล้ว scroll เพื่อซูมเข้าไปอ่านฉลาก

ใครทำอะไร

Claude ไม่ได้คลิกอะไรเอง มันดูภาพหน้าจอแล้วตอบกลับมาว่าอยากทำอะไร เช่น คลิกที่พิกัดนี้ หรือพิมพ์ข้อความนี้ โค้ดฝั่งเราต้องเป็นคนลงมือทำจริง แล้วส่งผลกลับไปให้ Claude ดู วนแบบนี้จนงานเสร็จ

แผนภาพชื่อ ใครทำอะไร เมื่อใช้ toolset ใน SDK มีสี่กล่องเรียงจากซ้ายไปขวาเชื่อมด้วยลูกศร กล่องแรกคือ Claude ฝั่ง Claude API ดูภาพหน้าจอแล้วบอกว่าอยากคลิกหรือพิมพ์อะไร กล่องที่สองคือ SDK toolset ซึ่งเป็นของใหม่ที่มีใน SDK แล้ว ทำหน้าที่รัน loop ตรวจ policy และ confirm และสร้าง tool_result กล่องที่สามคือ Driver ที่เราเขียนเองหรือใช้ของพาร์ตเนอร์ มี method ละหนึ่ง tool เช่น navigate, left_click และ screenshot กล่องที่สี่คือเบราว์เซอร์หรือเดสก์ท็อปที่เราจัดหาเอง ควรแยกเป็น container หรือ VM ต่อ session แถบด้านล่างระบุว่าก่อนหน้านี้กล่อง SDK toolset คือส่วนที่นักพัฒนาต้องเขียนเองทั้งหมด

ส่วน ใครรับผิดชอบ ทำอะไร
SDK toolset SDK ทำให้ ส่งแต่ละคำสั่งไปยัง method ที่ถูกต้อง รัน policy ที่เราตั้ง ถามฟังก์ชันอนุมัติของเรา และสร้าง tool_result ทุกครั้ง
Driver เราเขียน หรือใช้ของพาร์ตเนอร์ class ที่สืบทอดจาก toolset มี method ละหนึ่ง tool เช่น navigate หรือ left_click เชื่อมกับระบบควบคุมเบราว์เซอร์หรือเดสก์ท็อปของเรา
เบราว์เซอร์ หรือเดสก์ท็อป เราจัดหาเอง ตัวที่ถูกควบคุมจริง

เอกสารระบุชัดว่า SDK ไม่มีเบราว์เซอร์ เดสก์ท็อป driver สำเร็จรูป หรือ URL policy มาให้ สิ่งเหล่านี้เป็นหน้าที่ของเรา

ไม่อยากเขียน driver เอง

มี 2 ทาง

  • ใช้ driver ของพาร์ตเนอร์ ตอนนี้มี 4 ราย คือ Browser Use, Browserbase, Daytona และ E2B ที่ทำ integration กับ SDK toolset ไว้แล้ว
  • เริ่มจากตัวอย่างของ Anthropic ใน repository claude-quickstarts มี driver ตัวอย่างแบบเล็กที่สุด ทั้ง Python และ TypeScript ควบคุม Chromium ผ่าน Chrome DevTools Protocol เอกสารเตือนไว้ว่าตัวอย่างนี้ไม่ใช่โค้ดสำหรับใช้งานจริง

เมื่อมี driver แล้ว การเรียกใช้สั้นมาก ตัวอย่างนี้ย่อจากเอกสาร โดย MyBrowser คือ driver ของเรา

with MyBrowser(backend, url_policy=url_policy) as browser:
    runner = client.beta.messages.tool_runner(
        model="claude-opus-5-5",
        max_tokens=1024,
        tools=[browser],
        messages=[{"role": "user", "content": "Open example.com and tell me the page heading."}],
    )
    for message in runner:
        print(message)

ส่ง driver เข้าไปใน tools ตรง ๆ แล้ว tool runner จะวน loop ให้จนงานจบ ใครอยากคุม loop เองก็ทำได้ โดยเรียก tool_result ของ toolset ตอบแต่ละคำสั่ง

Browser toolset

  • class หลักคือ BetaAbstractBrowserToolset20260801
  • เขียนเฉพาะ member ที่เบราว์เซอร์ของเรารองรับ เช่น navigate, screenshot, left_click, read_page หรือ get_page_text member ที่ไม่ได้เขียนจะถูกส่งไปที่ API ในสถานะปิด
  • ทุก driver ต้องรายงานสถานะเบราว์เซอร์ คือแท็บที่เปิดอยู่และสิ่งที่เปลี่ยนไป SDK จะเรียกส่วนนี้หลังทุกคำสั่ง
  • javascript_exec และ file_upload ปิดไว้เป็นค่าเริ่มต้น ถ้าจะเปิดต้องมีฟังก์ชัน confirm สำหรับอนุมัติ ไม่อย่างนั้น SDK จะแจ้ง error ตั้งแต่ตอนสร้าง
  • มีตัวเลือก early start ให้คำสั่งเริ่มทำงานได้ตั้งแต่คำตอบของ Claude ยัง stream ไม่จบ โดยส่ง stream=True กับ run_tools_eagerly=True

Computer toolset

  • class หลักคือ BetaAbstractComputerToolset20260801 ใช้กับ computer use tool ซึ่งมีทั้งหมด 17 tool
  • tool ที่เราเขียนจะเปิดเป็นค่าเริ่มต้นทุกตัว ต่างจาก browser toolset
  • ถ้า driver มี type, key หรือ hold_key ต้องส่งฟังก์ชัน confirm หรือปิด tool เหล่านั้น ไม่อย่างนั้นจะสร้างไม่ได้
  • พิกัดที่ Claude ส่งมาคือตำแหน่ง pixel ในภาพหน้าจอที่เราส่งให้ ถ้าภาพหน้าจอกับจอจริงขนาดไม่เท่ากัน driver ต้องแปลงพิกัดเองทั้งสองทาง
  • SDK ไม่ย่อหรืออ่านภาพให้ ถ้าภาพใหญ่เกินขีดจำกัดของโมเดล API จะปฏิเสธและการทำงานจะหยุด จึงต้องย่อภาพใน driver

ใช้ทั้งสอง toolset ใน request เดียวได้ โดยส่งทั้งสองตัวเข้าไปใน tools SDK จะส่งแต่ละคำสั่งไปหา toolset ที่ตรงกัน

ความปลอดภัยคือส่วนที่ต้องอ่านให้จบ

เอกสารให้พื้นที่กับเรื่องนี้มากกว่าเรื่องอื่น เหตุผลคือ การกระทำถัดไปของ Claude ขึ้นกับหน้าที่มันอ่าน หน้าเว็บหรือข้อความที่ถูกแทรกเข้ามา อาจพยายามสั่งให้ Claude เข้าถึงบริการภายใน ดึงไฟล์ออกจากเครื่อง หรือทำสิ่งที่มีผลจริง

สำหรับ browser toolset เอกสารให้ทำ 6 ขั้นก่อนใช้กับอะไรที่ไม่ใช่เบราว์เซอร์ทดลองทิ้ง

  1. เขียน URL policy ปฏิเสธทุก URL ที่งานไม่จำเป็นต้องใช้ ถ้าไม่มี policy SDK จะไม่ตรวจ URL ใดเลย
  2. ดัก request ใน driver แล้วตรวจด้วยกฎเดียวกัน เพราะ URL policy เห็นเฉพาะคำสั่ง navigate ไม่เห็นลิงก์ที่ Claude คลิกหรือ redirect
  3. ตั้งกฎ egress ที่ container บล็อกเครือข่ายภายในและที่อยู่ metadata ของ cloud
  4. จำกัดการอัปโหลดและดาวน์โหลด หรือปิดการอัปโหลดไว้
  5. ใส่ confirm กับคำสั่งที่มีผลจริง
  6. แยกเบราว์เซอร์ไว้ใน container หรือ VM เฉพาะ ต่อหนึ่ง session

SDK ช่วยขั้นที่ 1, 4 และ 5 ผ่าน policy และฟังก์ชันที่เราส่งให้ ส่วนขั้นที่ 2, 3 และ 6 ขึ้นกับ driver และการ deploy ของเราเอง

ข้อที่ควรจำเป็นพิเศษ

  • โปรไฟล์เบราว์เซอร์ต้องไม่ล็อกอินบัญชีใดที่เราไม่พร้อมยกข้อมูลหรือสิทธิ์ให้ Claude
  • การซื้อของ การส่งข้อความ หรือการกดยอมรับเงื่อนไข เกิดผ่านคำสั่งธรรมดาอย่าง left_click และ type ฟังก์ชัน confirm จึงแยกไม่ออกจากชื่อคำสั่ง ถ้าต้องการให้คนอนุมัติ ต้องถามที่คำสั่งเหล่านี้ด้วย
  • บนเดสก์ท็อป อย่าเปิด terminal หรือ launcher ทิ้งไว้ถ้างานไม่ต้องใช้ เพราะสิ่งที่ Claude พิมพ์จะถูกรันทันที
  • ให้ถือว่าทุกอย่างที่หน้าเว็บหรือหน้าจอส่งกลับมาไม่น่าไว้ใจ รวมถึงชื่อหน้าต่าง ชื่อแท็บ และข้อความใน clipboard
  • ตัวตรวจจับ prompt injection ของ Anthropic ยังไม่ทำงานกับ request ของ browser toolset ที่ส่งผ่าน Amazon Bedrock

เกี่ยวข้องกับข่าวก่อนหน้า

toolset นี้ประกาศมาพร้อมกับ Claude Haiku 5.5 ซึ่ง Anthropic บอกว่าเหมาะกับงาน computer use และ browser use เป็นพิเศษ เพราะเร็วและราคาต่ำ ส่วนตัว tool ทั้งสองเป็น GA มาก่อนแล้ว ตามที่เราเคยรายงานในข่าว Computer use และ Browser tool สิ่งที่ใหม่รอบนี้คือชั้นของ SDK ที่ครอบ tool เหล่านั้น

มุมมองจากผู้เขียน

สำหรับผม ข่าวนี้ลดกำแพงของการทำ agent ที่ใช้เบราว์เซอร์ลงไปมาก ส่วนที่คนมักติดคือ loop กับการแปลงคำสั่ง ซึ่งเป็นโค้ดที่ทุกคนต้องเขียนซ้ำกันและพลาดในจุดเดิม ๆ พอ SDK รับไปทำ และมี driver ของพาร์ตเนอร์ให้ใช้ คนที่อยากลองก็เริ่มได้เร็วขึ้น

แต่สิ่งที่ SDK ไม่ได้ทำให้คือความปลอดภัยของระบบจริง เอกสารเขียนไว้ตรงมากว่าถ้าไม่เขียน URL policy ก็ไม่มีอะไรตรวจ URL ให้ และตัวอย่างในเอกสารไม่ใช่ policy ระดับ production ใครจะเอาไปใช้กับงานจริง โดยเฉพาะงานที่เบราว์เซอร์ล็อกอินบัญชีอยู่ ควรอ่านส่วนความปลอดภัยให้ครบก่อน และเริ่มทดลองกับเบราว์เซอร์เปล่าใน container ที่แยกไว้

ใครลองต่อ toolset นี้กับงานของตัวเองแล้ว มาแชร์ในกลุ่มกันได้ครับ


ข้อมูลในบทความนี้อ้างอิงจากเอกสาร Claude Platform และโพสต์ของบัญชี ClaudeDevs บน X ฟีเจอร์นี้ยังเป็น beta รายละเอียดอาจเปลี่ยนได้ อ่านต้นทางได้ที่ลิงก์ด้านล่าง

อ่านต้นฉบับ >

รับข่าวสารทางอีเมล

บทความใหม่ ข่าวอัปเดตเกี่ยวกับ Claude และประกาศกิจกรรมของชุมชน ส่งให้เป็นครั้งคราว ไม่ถี่จนรำคาญ

มาคุยกันต่อในกลุ่ม Facebook

ถาม-ตอบ แชร์เทคนิค โชว์ผลงาน และติดตามกิจกรรมของชุมชน พื้นที่พูดคุยหลักของเราอยู่ที่นั่น