Google โชว์ทีม AI ข้ามภาษา: เอเจนต์ Python (Gemini) คุยกับ validator ภาษา Go ผ่าน A2A — ADK ห่อ remote service ให้เรียกเหมือน sub-agent ในเครื่อง
คำถามที่ทีมที่สร้าง agent จริง ๆ เจอเร็วมากคือ “ถ้างานบางส่วนต้องใช้ LLM ใช้เหตุผล แต่บางส่วนต้องแม่นยำแบบกำหนดผลได้ (deterministic) และอยู่ในระบบเดิมที่เขียนด้วยภาษาอื่น จะประกอบเข้าด้วยกันยังไงโดยไม่ต้องเขียนใหม่ทั้งหมด?” Google Developers Blog เพิ่งลงโพสต์ (22 มิ.ย. 2026) ที่ตอบคำถามนี้ตรง ๆ ด้วยตัวอย่างที่รันได้จริง: ประกอบ ทีมเอเจนต์ข้ามภาษา ระหว่าง Python (ใช้ Gemini) กับ Go ผ่านโปรโตคอล A2A (Agent2Agent) โดยมี Agent Development Kit (ADK) เป็นกาวเชื่อม
แทนที่จะยัดทุกอย่างไว้ในเอเจนต์ยักษ์ก้อนเดียว โพสต์นี้สาธิตการแยกงานเป็น service คนละภาษาที่คุยกันด้วยสัญญา (contract) มาตรฐาน — เป็นพิมพ์เขียวที่นำไปใช้กับสถาปัตยกรรมจริงได้ ไม่ใช่แค่เดโม่สวย ๆ
โจทย์: ไปป์ไลน์ตรวจสัญญาให้ตรง compliance
ตัวอย่างในโพสต์คือ ไปป์ไลน์ตรวจความสอดคล้องของสัญญา (contract compliance) ที่แบ่งหน้าที่ตามจุดแข็งของแต่ละฝั่งชัดเจน:
- ฝั่ง Python (orchestrator + Gemini) — รับเอกสารสัญญาเข้ามา ใช้ LLM อ่านและสกัดเงื่อนไข/ข้อความสำคัญ ออกจากภาษากฎหมายที่กำกวม งานแบบนี้ต้องการการ “เข้าใจภาษา” ซึ่งเป็นจุดแข็งของโมเดล
- ฝั่ง Go (validator) — รับเงื่อนไขที่สกัดมาแล้ว ไปตรวจกับนโยบายบริษัทแบบ deterministic (กฎตายตัว ให้ผลเดิมทุกครั้ง ไม่สุ่ม) งานตรวจ policy แบบนี้ต้องการความแม่นและความเร็ว ไม่ควรฝากไว้กับโมเดลที่อาจ “เดา”
ฝั่ง Python ใช้ SequentialAgent ของ ADK ร้อย sub-agent สามตัวเข้าด้วยกัน — extraction → compliance validation → reporting — และเดินสถานะงานผ่าน checkpoint ที่ชื่อ ComplianceStep (เช่น INGESTED, EXTRACTED, COMPLIANCE_PENDING) เพื่อให้ติดตามได้ว่าตอนนี้งานอยู่ขั้นไหน และถ้า service ฝั่ง Go ล่ม ระบบจะ route ไปให้ คนตรวจ (human reviewer) แทน ไม่ใช่ปล่อยพัง
หัวใจคือ RemoteA2aAgent — เรียก service ระยะไกลเหมือนคลาสในเครื่อง
จุดที่ทำให้เรื่องนี้น่าสนใจสำหรับนักพัฒนาคือ abstraction ตัวเดียว: RemoteA2aAgent ของ ADK มันห่อ service ที่พูดภาษา A2A อยู่ที่ไหนสักแห่งบนเน็ตเวิร์ก แล้วทำให้ฝั่ง Python เรียกใช้ได้ เหมือนมันเป็น sub-agent ในเครื่อง — โดยคุณไม่ต้องเขียน HTTP client เอง ไม่ต้องประกอบ payload JSON-RPC เอง ไม่ต้องจัดการ retry/serialization เอง
ฝั่ง Go ไม่ต้องใช้เฟรมเวิร์กพิเศษอะไร — เป็นแค่ HTTP server มาตรฐาน ที่เปิด Agent Card ไว้ที่ /.well-known/agent.json (เอกสารบอกว่า service นี้คือใคร ทำอะไรได้บ้าง) และมี endpoint แบบ JSON-RPC 2.0 ไว้รับงาน นี่คือทั้งหมดที่ A2A ต้องการ ผลคือฝั่ง Go จะเขียนด้วยภาษาอะไรก็ได้ที่ตั้ง HTTP server เป็น ไม่จำเป็นต้องมี SDK ของ ADK เลย
พูดอีกแบบ: A2A คือ “สัญญาเชื่อมต่อ” ส่วน ADK คือ “ฝั่งไคลเอนต์ที่ทำให้สัญญานั้นใช้ง่าย” สองฝั่งจึงพัฒนา ดีพลอย และสเกลแยกกันได้อิสระ เหมือน microservice ทั่วไป — แต่คราวนี้ “service” บางตัวเป็นเอเจนต์ LLM
ทำไมพิมพ์เขียวนี้สำคัญ
โค้ดเต็มอยู่บน GitHub (ไดเรกทอรี contract-compliance-pipeline) แต่คุณค่าจริงอยู่ที่ รูปแบบสถาปัตยกรรม มากกว่าตัวอย่างเฉพาะเรื่องสัญญา มันแสดงสามอย่างที่ทีมโปรดักชันต้องการ:
- แยกตามจุดแข็ง — ส่วนที่ต้องใช้เหตุผลให้ LLM, ส่วนที่ต้องแม่นยำ/ตรวจสอบได้ให้โค้ด deterministic ไม่ฝืนเอา LLM ไปทำงานที่กฎตายตัวทำได้ดีกว่า
- ข้ามภาษา/ข้ามทีม — ทีมที่ถนัด Go ไม่ต้องย้ายมา Python และโค้ดเดิมที่ลงทุนไว้ยังใช้ต่อได้ แค่ห่อด้วย Agent Card
- มี fallback ไปหามนุษย์ — เมื่อ service ล่มหรือไม่มั่นใจ ระบบส่งต่อให้คนตรวจ ไม่ใช่ปล่อยให้เอเจนต์ตัดสินใจพลาดเงียบ ๆ
มุมมอง AI Curator
ปีที่ผ่านมาคำว่า “multi-agent” ถูกใช้จนเฝือ ส่วนใหญ่หมายถึงเอเจนต์หลายตัวที่รันในโปรเซสเดียว ภาษาเดียว เฟรมเวิร์กเดียว แต่โพสต์นี้ชี้ไปที่อนาคตที่จับต้องได้กว่า: เอเจนต์เป็น microservice ข้ามภาษาที่คุยกันด้วยโปรโตคอลเปิด — ซึ่งตรงกับวิธีที่องค์กรจริงสร้างซอฟต์แวร์อยู่แล้ว ไม่มีองค์กรไหนเขียนทุกอย่างด้วยภาษาเดียว และการบังคับให้ทุก “เอเจนต์” ต้องอยู่ใน runtime เดียวกันคือข้อจำกัดที่ไม่สมจริง A2A + ADK ปลดล็อกตรงนี้
จุดที่อยากเน้นสำหรับนักพัฒนาและทีมในไทย/อาเซียน: คุณไม่ต้องทิ้งของเดิมเพื่อเข้าสู่ยุคเอเจนต์ ระบบ backend ภาษา Go/Java/.NET ที่ทีมคุณดูแลมาหลายปี — ระบบคำนวณภาษี ระบบตรวจสิทธิ์ ระบบ validate ข้อมูลตามกฎหมายไทย — ไม่จำเป็นต้องเขียนใหม่เป็น Python เพื่อให้ LLM เรียกใช้ แค่ห่อมันด้วย Agent Card ให้พูด A2A เป็น แล้วให้ชั้น orchestration ฝั่ง LLM เรียกเหมือน sub-agent งานที่ต้องแม่นยำตามกฎ (ภาษี, compliance, เงื่อนไขสัญญา) ควรอยู่ในโค้ด deterministic ที่ตรวจสอบได้ ไม่ใช่ฝากชะตาไว้กับโมเดลที่อาจ hallucinate — สถาปัตยกรรมแบบนี้จึงปลอดภัยกว่าและอธิบายต่อ auditor ได้ง่ายกว่า
ข้อควรระวังเชิงปฏิบัติ: A2A กำลังกลายเป็นมาตรฐานที่หลายเจ้าหนุน (Google ผลักดันมาตั้งแต่ปีก่อน) แต่ก็ยังเด็ก การพึ่ง RemoteA2aAgent ของ ADK ทำให้สะดวก แต่ก็ผูกกับ ecosystem ของ Google ระดับหนึ่ง — ถ้าวางสถาปัตยกรรมระยะยาว ให้ยึดที่ ตัวโปรโตคอล A2A (Agent Card + JSON-RPC) เป็นสัญญากลาง แล้วมองว่า ADK เป็นเพียงไคลเอนต์ตัวหนึ่งที่เปลี่ยนได้ นั่นคือวิธีที่จะได้ความสะดวกวันนี้โดยไม่ติดกับดัก lock-in พรุ่งนี้
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog