สรุปงาน Build {dot} AI

วันนี้เรียกว่า ลุยน้ำมา One Bangkok ระดับนึงเลยครับ เนื่องจากเป็น Speaker ด้วย เลยรอฝนผ่าออกมาจนถึง MRT ครับ ดังนั้นสำหรับใครที่คิดฝน มาไม่ได้มาอ่าน Recap อันนี้ เหมือนไปงานครับ ^__^

Key Note: High Performing Teams in the Era of AI

Speaker Joel Dickson

📌 เมื่อก่อนเรายังพอเดาได้ว่าแต่ละยุตใน 5 - 10 ปีข้างหน้า อะไรจะเข้ามาในยุคนั้นๆ ตั้งแต่ Compiler > CI/CD > Cloud > DevOps และตอนนี้ AI ซึ่งในยุคนนี้เราคาดเดาอะไรยาก และการเปลี่ยนแปลงน้อยลงจากปี มาเป็น เดือน
📌 การมาของ AI มันทำให้ การเขียน Code ล้วนๆ (Raw Coding) ลดลงไป แต่งานถูกโยกให้ AI ระบบ Automate จัดการพวก Boilerplate Code มากขึ้่น ส่วนเราเน้นในของการ Reivew แทน ซึ่ง

  • ถ้าเรายังทำงานแบบเดิม เป็น Factory Worker / Factory Team (โรงงานนรก ปั๊มของตามสั่งจาก Product Owner) - AI มันแทนได้แน่
  • สิ่งที่ดีกว่า การต้องขยับมาเข้าใจว่าปัญหา คือ อะไร แล้วจะไปอะไรมา Match มัน มีบางส่วนที่ AI ยังทำไม่ได้ เราจะเรียกทีมแบบนี้ว่า Product Engineering Team เข้าใจปัญหาของลูกค้าร่วมกัน และวัดความสำเร็จ จาก Customer outcomes และมีความเป็น End-to-end ownership ร่วมกัน อารมณ์ใส่ใจลงของที่ทำแบบทำอาหาร

Product Engineering Team มีอะไรบ้าง

📌 T-Shaped

  • จากเดิมที่เราความรู้ด้าน Code ลึก ต้องมาขยับเข้าใจ AI เพื่อมาดู Agents รวมกันความรู้ที่ต้องรู้นิดหน่อย อย่าง การเข้าใจ Customer Term +Problme / Design / UX / Statistics / Analytic (Data) / Telemetry (Ops)
  • จากนั้นยกตัวอย่างของ Agoda ซึ่งมีการถามว่า Review Section คนมาอ่านดูเท่านั้น Engineer ได้ทันที 17% เพราะมีข้อมูล + Analytic เพราะมี T Shape และผลที่ได้จากข้อมูลพวกนี้ มีประโยชน์กับการเสนอ Idea มากนะ ซึ่งมี เกณฑ์ Coverage (Impact) / Uplift (Biz Impact) / Prior (คู่แข่ง - เอามาเทียบ) และ Ease (ความยากง่ายในการ Dev)

📌 Design Thinking & Empathy - เอาใจเขามาใส่ใจเรา ไม่ใช่ทำๆให้จบ แล้วโยนให้คนใช้รับผิดชอบเอง

  • เข้าใจ Context จากการใช้จริงของ User ช่วยลดปัญหา ของไม่ตรงปก หรือ งานที่งอกกับทาง Support ได้
  • Airbnb (Snow White Project) วาด Storyboard การใช้งานของลูกค้าในแต่ละ Path พร้อมระบุความรู้สึกของลูกค้าในแต่ละขั้น (ตื่นเต้น, กังวล, กลัว) หรือมี Comment อะไรเพิ่ม เพื่อเข้าใจลูกค้า

📌 Data, Analytics

  • ในระบบ Scale ใหญ่ๆ เราไม่สามารถไปไล่ถาม User ได้ ดังนั้นต้องมีการวัดผลที่ตอบคนส่วนใหญ่ได้
  • สำหรับ Agoda ใช้แนวทาง Test + Measure Everything โดยเป็นการทำ A/B Testing ต้องร่วมกันทุก Role นะ เพื่อให้เรามีข้อมูล มาตอบสมมติฐาน ไม่ใช่ Opinions และการมีตัวเลขที่ชัด มันจะทำให้เรากล้าเสียงมากขึ้น Expermiation & Risk Testing
  • แนวทาง A/B Testing - Speaker แนะนำลองไปอ่าน Story ของ Netflix มีการทำ A/B Testing เยอะ เพื่อ Recommend VDO แม้แต่ใน Agoda มี A/B Testing อยู่ 1000+ จุด

📌 Business Model Comprehension

  • ทุกคนในทีมเข้าใจว่า Product ที่เราดูมันทำเงินได้อย่างไรมี T Shape เพื่อให้เกิด Ownership มากขึ้น
  • Amazon ใช้ Working Backwards เริ่มจากเขียนร่าง Press Release ก่อนเริ่ม Code เพื่อดูว่าสามารถขายไอเดียนี้ให้ User ได้จริงไหม ก่อนลงมือทำจิง

📌 North Star Metrics

  • Metrics - ที่วัดว่าองค์กรเดินไปในทางที่ถูกต้องไหม และใช้วัดผลของ Feature นั้นด้วย
  • Gmail (Google) ใช้ Daily Active Users (DAU)
  • Netflix ใช้ Total Watch Time
  • Agoda ใช้ Bookings การทำ Feature แต่ละอย่างตัองมาตอบให้ได้ว่า impact ยอด Bookings

📌 Technical Debt

  • ต้อง Balance เวลาระหว่างการขึ้น Feature ใหม่ และการลดหนี้ทีเกิดจากการทำ Feature นี่นให้ไวขึ้น เช่น Duplicate Code มา ซึ่งยิ่งนาน มันยิ่งเป็นตำนาน ห้ามไปแตะมัน ควรทำให้จบภายใน Sprint
  • ต้องจัดเวลาแก้ไขให้ชัดเจน และมีการจัดการสม่ำเสมอ เช่น Atlassian ให้เวลา 20% / ส่วน Agoda 30%

📌 Team Autonomy

  • ทำให้ทุกคนมี Skill + Ownership ที่เท่ากัน เพื่อลดปัญหา Handball / โยนขี้ เราของคน และ Culture

📌 Constraints & Leverage

  • เข้าใจข้อจำกัด และการต่อรองกับคนอื่นๆ เช่น เราสามารถทำอะไรได้ตามข้อกำหนด เช่น มี 1 คนทำ แล้วข้้อต่อรองขอ AI หรือ คนมาเพิ่มสามารถ Ship อะไรได้

นอกจากนี้มีอันอื่นให้ไปอ่านเพิ่ม Job To Be Done / Co-Creation Practices / Team Topologies

- Discussion + Q&A

ℹ️ ช่องว่างระหว่าง Generalist กับ Specialist ยังคงอยู่เหมือนเดิมใช่หรือไม่? แม้ว่ามี AI เข้ามาช่วยแล้ว
Ans - ยังคงอยู่เหมือนเดิม เรายังต้องมีความเชี่ยวชาญ เช่น Coding ตาม Quote "Jack of all trades master of none. but still better than a master of one" - การเชี่ยวชาญเฉพาะทางมากไป (Over-specialize) ก็ไม่ดี

ℹ️ ในองค์กรที่เป็น Silo ระบบการทำแบบเก่า มีผู้นำชัดเจน การบอกว่าทีม (PO / Dev / BA / QA) เป็นเจ้าของ Product" อาจทำให้ไม่มีผู้รับผิดชอบที่แท้จริง อันนี้จะจัดการยังไง ?
Ans - Product Owner (PO) เป็นผู้กำหนดทิศทาง ตัดสินใจ แต่ต้องรับฟังความเห็นจากทุก Role / รวมทั้งถามกลับ อย่างตรงไปตรงมาและให้เกียรติกัน

ℹ️ หากผู้ใหญ่สั่งให้ทำแค่นี้พอ ลูกค้ารับผิดชอบตัวเอง มุมของทีมที่อยากเอาแนวคิดแบบ T-shaped มาทดลอง และจำกัดกรอบ จะจัดการยังไง
Ans - Experimentation + Measure Data - เพื่อให้ผู้ใหญ่เห็นตัวผล แต่ต้องมีชั้นเชิงต่อรอง เช่น Incremental ที่ละนิด เพื่อให้้ค่อยเห็นการเปลี่ยนแปลง อย่าไปหักดิบ

ℹ️ ถ้ามี Business Rule ที่เข้าใจยาก เช่น การจัดการ Logistics/Supply Chain ต้องทำยังไง เพื่อให้ทีม Tech เห็นภาพ
Ans - พาไปลงงานจริง ทำงาน Call Center / ดูการทำ Hotel Supply หรือ ดู Action ของ User จริง เพื่อให้เกิด Empathy ในไทยมี GoSoft ให้พนักงานไปทำงาน 711 3-7 วัน เห็นหลายคนอยู่ เพื่อเข้าใจการทำงานจริง

ℹ️ Product Manager ยังจำเป็นไหม เมื่อเรามี Metric + Data การทำ A/B Test และมาวิเคราะห์ด้วย AI
Ans - ยังจำเป็นอยู่ Human in the loop - Idea + Benchmark นอกจากขอเราเอง ยังมีของคู่แข่งด้วย

Days to Minutes: Design Hangoff with Figma-to-Code AI Agents

Speaker Piyatat Chatvorawit / Abdulohim Sama

สำหรับใน Session นี้มาเล่า EarnIn จัดการ 3 ปัญหา Design System Violations / Design Handoff Frictions / Platform Mismatch ยังไง ?

1. Design System Violations

📌 Designer ไม่ได้ทำตามข้อกำหนดของ Design System ทำให้เกิดปัญหาตามมา เช่น

  • Hard Code ไม่ยอมใช้ Design System / Component ที่เตรียมไว้
  • ใช้ Design System / Component ที่ Deprecated ไปแล้ว
  • Detach Component หรือ Override Property ใน Figma แต่มันใช้กัน Code ไม่ได้
  • ไม่ใช้ Auto Layout ทำให้การแปลงเป็น Code ยาก

📌 Soln - Figma Linter ตรวจจับการแหก Design System แจ้งเตือน และแนะนำ Component หรือ Token ที่ถูกต้องให้Designer แก้ไขก่อนส่งมอบงาน

- Discussion + Q&A

ℹ️ เวลา Export งานไปให้ Dev อันนี้ทำยังไงให้ Figma Export XML ไหม
Ans - ไม่ได้ใช้ แต่ทำ Pipeline อธิบายในส่วน Design Handoff Frictions

ℹ️ พอเราทำ Linter ตรวจ Design System ถ้าต้องแก้จริงทำยังไง ?
Ans - มี Process อยุ่ ให้ Submit request ไปยังทีม Design System ปรับ ถ้าด่วนทำ Custom View ให้ทีม Design System มา Review ที่หลัง

2. Design Handoff

📌 การส่งต่องาน Designer > Dev เจอปัญหาเคส

  • Handoff Friction - พูดคนละภาษา Designer / Dev
  • Style Discrepancies - naming / Platform / Design System Violations
  • Slow transition - การแปลง Code ทำได้ช้า แล้วถ้ามีหลาย Platform อีก แม้ว่าตัด web ออก ความหลากหลาย แต่ Mobile ยังมี IOS / Android
  • Locating Updating - การแก้ครั้งนึงใน Figma เวลา Sync ใน Code ใช้เวลานานมาก / การจัดการจอแสดงผล UI ตาม State

📌 Soln - Figma-to-Code Pipeline จาก Figma Design > Text Token ที่ตรงตาม Figma Linter จากนั้น มีทั้ง Skill ช่วงแปลง Code และมี Feedback Mode เพื่อมา Mark จุดบน Device จริง ปรับแก้ไข แตละมี Human In Loop มาตรวจาสอบตอนท้าย

- Discussion + Q&A

ℹ️ ระบบตรวจสอบไหมว่าสิ่งที่ Implement ตรงกับ Reference จริงๆ
Ans - Check Token และการทำ Visual Feedback Check

ℹ️ การทำ Visual Feedback Check อันนี้ใช้ Pixel Matching
Ans - ไม่ เพราะแต่ละ Platform มีวิธีการ Render ที่ต่างกัน แต่ใช้ AI ตรวจสอบ Visual Properties เช่น รูปทรง /สัดส่วน / สี / font / style

ℹ️ ใช้ทำ Figma-to-Code Pipeline นานแค่ไหน คุ้มค่าหรือไม่
Ans - ลองผิดลองถูกและปรับปรุงอยู่นานหลายเดือน เพราะลดเวลาการทำงานได้จิง

ℹ️ ถ่าเอาไปทำกับ web มี challenge อะไรไหม
Ans - ใช้ Idea แต่ปัจจุบันเน้นพัฒนาฝั่ง Mobile ก่อน

3. Platform Mismatch

📌 Dev รับ Design ไปทำในแต่ละ Platform

  • การสร้าง Component ใหม่ใช้เวลานาน
  • และเกิดความไม่สอดคล้องกันพวกชื่อตัวแปร ข้อจำกัดระหว่าง Platform iOS, Android และถ้ามี web ใช้ Software Engineer 3 คนเป็นอย่างต่ำในการทำ การสื่อสารซับซ้อนขึ้น

📌 Soln - DS Agentic Workflow โดย Step ที่จำได้

  • Input & Dependency Check - จาก Figma ตรวจ Figma Linter
  • Code Contract Creation ทำข้อกำหนดกลางมา พวก Function Names / Property Names ให้ไปทางเดียวกัน และ ถ้า Icon จะเตรียมให้เลย หรือ ถ้าทำเป็น View บน Impact ให้ + Package / App ที่เกี่ยวข้อง
  • แตกงานไปยัง Sub-Agents อันนี้แยกตาม Platform IOS / Android
  • Compliance & Parity Reviews - ตรวจว่าตาม Design System / Code Contract
  • CI/CD Pipeline - เอาไปผูกให้ Automate ซึ่งมีการายงานผลทั้ง Token ที่ใช้ หรือประเด็นที่จัดารไปแล้วเป็นต้น

- Discussion + Q&A

ℹ️ ใช้ LLM Model ตัวไหนในการทำงาน และวางแผนจัดการเรื่อง Token / Cost
Ans - Claude Sonnet โดยใช้แบบ fast ก่อน ถ้าไม่ได้ค่อยไปถาม Opus / ค่า Token ประมาณ 10–15 USD ถ้าเทียบกับจ้าง Dev ถูกยังคุ้ม

ℹ️ ป้องกันไม่ให้ AI ติด Loop จนค่า Token พุ่งสูงอย่างไร โดยเฉพาะงาน UI ที่มีความซับซ้อนสูงหรือมี Animation เยอะๆ
Ans - Break down into smaller parts ให้ AI ทำส่วนง่ายๆ ส่วนที่ซ้บซ้อนเอาคนมาจัดการ

Building AI pipeline with SLM

Speaker Nutcha Chanwuttikun

📌 สำหรับในหัวข้อมาเล่าว่า SLM / LLM / FLM นั้นต่างกันอย่างไร ผมเขียนเป็นตารางนี้เลย

CriteriaSLM (Small)LLM (Large)Frontier (FLM)
Parameter<10 B10 B+ 100s of Billoions
Sample ModelQwen 2.5-3B
Phi 3.5-mini
Gemma 2B
GPT-OSS
Mixtral
Cluade Opus 5
GPT-5
Gemini
ลักษณะงาน โครงสร้างตายตัว
กฎเล็ก และเฉพาะ
(narrow rule)
Broad, open-endedMulti-step, ambiguous
- มีการคิดที่ซับซ้อน
Reasoning depthPattern matchModerate synthesis)Deep, chained reasoning
Latency needเสี้ยววินาที (Sub-second)A few seconds)Seconds to minutes
Cost sensitivityHigh volume, cheapModerateLower volume, high value
Data controlOn-device / on-premFlexibleAPI
Use CaseDocument ClassificationCutomer SupportProduct Incudent

📌 Local LLM AI Spec Base On Model Q4

Model sizeRAM/VRAM - Q4CPU laptop?
0.5B – 1Bประมาณ 1 GBได้, ทำงานได้เร็ว (Yes, fast)
3B – 4Bประมาณ 2–4 GBได้ (Yes)
7B – 8Bประมาณ 5–6 GBได้, ช้าลงเล็กน้อย (Yes, slower)
14Bประมาณ 9 GBค่อนข้างแน่นสำหรับเครื่อง 16 GB (Tight on 16 GB)
30B (MoE
, ประมาณ 3B active)
ประมาณ 19 GBแนะนำให้ใช้การ์ดจอ (GPU recommended)
70Bประมาณ 43 GBสำหรับการ์ดจอ / เซิร์ฟเวอร์เท่านั้น (GPU / server only)

จากนั้น Demo App เป็นบันทีกรายรับ รายจ่าย คล้ายกับที่ผมพูดต่อบ่าย โดยใน Demo ทำ OCR APP ที่ใช้ Tesseract ในการแตกข้อมูลจกใบเสร็จและให้ SLM Qwen 2.5 มา Extract ข้อมูลและแสดงผล แต่พบว่าความรู้จำกัด อาจจะทำให้ Extract แล้วไม่ตรง

- Discussion + Q&A

ℹ️ สามารถใช้ SLM เป็น Sub-agent ทำงานร่วมกันหลายๆ ตัวในการประสานงานสำหรับงานเฉพาะด้านได้ไหม
Ans - ทำได้ และ SLM เพราะ Model มีขนาดเล็ก ที่ทำมาเพื่อจุดประสงต์ใด จุดประสงค์เดียว

ℹ️ มีข้อควรระวังหรือข้อจำกัดอย่างไรบ้างกับการใช้ SLM
Ans - ต้องระวังเรื่อง ความแม่นยำ (Accuracy) ดังนั้นต้องสนใจ Prompt + Context ให้มากๆ

ℹ️ มีตัวอย่างการใช้ Frontier model ควบคุมดูแล/รีวิว แล้วใช้ SLM เป็น Sub-agent ทำงาน Routine เพื่อประหยัด
Ans - ตัวอย่างที่ดี แต่ยังไม่ได้ลอง

ℹ️ Run Model บนเครื่อง Local ใช้ทรัพยากรเยอะไหม?
Ans - ได้แต่เคสนี้ Speaker ใช้่ Ram 16 GB ใช้ Qwen 3.5 เนื่องจากต้องเหลือให้ OS กับการทำงาน

ℹ️ สำหรับบริษัทเล็กๆ หรือ SME (10–20 คน) ที่ไม่มีทีม Tech หรืองบเยอะ หากสนใจเริ่มใช้ SLM ต้องเตรียมงบประมาณเท่าไหร่?
Ans - ถ้่าไม่แน่ใจลองตั้ง VM บน Cloude อย่าง ec2 เพื่อมา Test ก่อนให้เห็นภาพ

ℹ️ พอจะบอกตัวเลขงบประมาณหรือแนวทางให้ CEO ของ SME เห็นภาพในการเริ่มต้น AI Transformation โดยเฉพาะข้อจำกัดเรื่อง Data Confidentiality ได้
Ans - ตัวเลขยังไม่มั่นใจ แต่ถ้า Local Model SLM ดีสุด แค่ถ้าไม่อยากลุ้นดูแล Infra ไปเปิด AI Model จาก Foundary + Set Guadrd Range

ℹ️ การทดสอบและการควบคุมความถูกต้องของ SLM
Ans - ต้องอาศัยการเขียน Code และ Validation หลายชั้น เช่น ตรวจสอบโครงสร้าง JSON ก่อนนำไปใช้ต่อ ส่วนค่าที่ระบุไม่ได้ ต้องมาหาแนวทางทดสอบอีก

ℹ️ ได้ลองทำ Fine-tune โมเดล SLM สำหรับงานเฉพาะด้าน (เช่น สแกนสลิป/เอกสาร) เพื่อเพิ่มความแม่นยำบ้างหรือยัง?
Ans - ยังไม่ได้ลอง แต่ Idea นี้เหมาะกับ SLM ในการทดสอบข้อมูลองค์กร

Agent Harness with Microsoft Agent Framework

Speaker Surasuk Oakkharaamonphong

ในช่วงเวลาตัว Model พัฒนาขึ้นมาเยอะมาก และมีทั้ง Coding Agent (Claude Code / Copilot ... ) > กลุ่ม Open Claw / Herme Agent แล้วเข้ามายุคของ Harness ให้ Agent (มาปรับจูนให้ Agent ทำง่านดีขึ้น) แต่เมื่อ 3-4 วันที่ผ่านมาคำใหม่มาอีก Loop Engineering ตอนนี้ Focus ที่ตัว Harness ก่อนมีส่วนประกอบตามนี้

  • HarnessCompoents_AgentLoop
  • HarnessCompoents_Context
  • HarnessCompoents_SkillsTools
  • HarnessCompoents_SubAgents
  • HarnessCompoents_MemorySession
  • HarnessCompoents_LifeCycleHooks
  • HarnessCompoents_PermissionHumanInLoop
  • Agent Loop: เป็นส่วนการทำงานหลักที่รับ Context/ Tools) ที่มีอยู่ จากนนั้นเป็นหน้าทีตัว LLM ที่คิดเอง หรือตัดสินเลือก Tools ให้งานสำเร็จได้
  • Context Management: เวลาเราคุยนานๆ หรือ มี Tools เต็มไปหมด มันทดไว้ใน Context Window จะบวมขึ้นเรื่อยๆ ทำให้เปลือง Token และคิดนานขึ้น ตัว Harness ใช้เทคนิคอย่าง Context Compaction เพื่อสรุปที่ และทดไว้
  • Skills and Tools: จะเพิ่มความสามารถให้ Agent ผ่าน
    - Skills - Prompt ที่ดี ที่จะถูกเพิ่มเข้าไป + Script เล็ก
    - Tools - เชื่อมต่อผ่าน Open API / MCP / Shell / Script เพื่อให้ Agent สามารถโต้ตอบกับระบบภายนอกได้
  • Sub-Agents: ในระบบที่ซับซ้อน Harness ทำหน้าที่เป็นผู้ควบคุม (Orchestrator) เพื่อจัดการ Agent เฉพาะทางหลายๆ ตัวให้ทำงานร่วมกัน เช่น ตัวหนึ่งเก่งเรื่องค้นหาเว็บ อีกตัวเก่งเรื่องสรุปเอกสาร
  • Computer Tools: เป็นการยก Env ให้ Agent ใช้งานจริง เช่น การอนุญาตให้เข้าถึง File System เพื่ออ่าน/เขียนไฟล์ หรือ Code Execution(เขียน Code และให้ Run เอาผลลัพธ์) เพื่อแก้ปัญหาทางคณิตศาสตร์ หรือจัดการข้อมูล
  • Memory and Session Persistence: ช่วยให้ Agent "จำ" สิ่งที่เคยเรียนรู้หรือความชอบของผู้ใช้ข้ามเซสชันได้ และที่สำคัญระบบเป็น Stateless เราสามารถเอาที่ทดจำไว้ ไปยัง Env ใหม่ได้ง่าย
  • Lifecycle Hooks: เป็นจุดที่ Software Dev สามารถแทรก Logic หรือ Policy ของตัวเองเข้าไปได้ในแต่ละช่วงเวลา เช่น ก่อน/หลัง Agent ทำงาน หรือ ก่อน/หลังเรียกใช้ LLM และเครื่องมือ เพื่อควบคุมความปลอดภัยหรือปรับแต่งการทำงาน
  • Permissions and HITL: เนื่องจาก Agent เริ่มทำงานที่มันเข้าถึง + มีสิทธิ์เยอะ ทำให้
    - มีความเสี่ยงสูงขึ้น เช่น การลบไฟล์ หรือ Run Code อันตราย
    - จึงต้องมีระบบ Human in the Loop (HITL) เพื่อหยุดรอการอนุมัติจากคนก่อน
    - รวมถึงการกำหนดสิทธิ์ (Permissions) ว่า Agent ตัวไหนทำอะไรได้บ้าง

Microsoft Agent Framework

📌คำถามต่อมา ถ้าอยากทำ Agent + คุ้ม harness เราทำยังไงได้บ้าง ทางฝัง Microsoft เค้ามี Framework ที่เตรียมพื้นฐานมาให้ใช้แล้ว อย่าง Microsoft Agent Framework โดยสิ่งที่มันทำได้ 3 ส่วน

  • MSAF Agent Loop
  • MSAF Workflow
  • MSAF Harness
  • Agent Loop - เชื่อม Model กับต่างได้ง่ายในที่เดียว แล้วถ้า Host Agent อันนี้สะดวกบน MS Foundary
  • Workflow - Sequential / Handoff หัวหน้าสั่งงาน / Author + Critic (Flow Review) / Magentic (เลือกให้ทำงานตามความเหมาะสม หรือ Custom Flow ก็ได้
  • Harness - มี Set ของ Class ที่มาช่วยให้เรา Implement ตาม Component of Harness ที่อธิบายตอนต้นได้สะดวกมากขึ้น

จากนั้นเป็น Demo Live สร้าง Harness Agent มี Code ประมาณนี้ ซึ่งเป็นสร้าง Agent ที่มีการ

  • เปลี่ยนจาก Agent ทั่วไป จุดเดียวจาก AsIChatClient > AsHarnessAgent
  • จัดการ Session ผ่าน FileMemoryStore
  • เข้าถึงไฟล์ตาม Path FileAccessStore ใน Demo มีลองให้อ่าน csv
  • AgentSkillsSource เพื่อ load skill ขึ้นมา โดยใช้ LocalShellExecutor
  • แสดงการใช้ sub agent จาก BackgroundAgents
#pragma warning disable OPENAI001, MAAI001, IDE0059, CS0219

using Azure.AI.Projects;
using Harness.Shared.Console;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Tools.Shell;
using Microsoft.Extensions.Extensions.AI;

var endpoint = Environment.GetEnvironmentVariable("ENDPOINT") ?? "";
var apiKey = Environment.GetEnvironmentVariable("API_KEY") ?? "";
var deploymentName = "gpt-5.4-mini";

await using var shell = new LocalShellExecutor(new()
{
    WorkingDirectory = "working",
    Timeout = LocalShellExecutor.DefaultTimeout,
});

var agent = new AIProjectClient(
    new Uri(endpoint),
    new ApiKeyTokenProvider(apiKey)
).GetProjectOpenAIClient()
 .GetResponsesClient()
 .AsIChatClient(deploymentName)
 .AsHarnessAgent(
    new()
    {
        Name = "BondClaw",
        FileMemoryStore = new FilesystemAgentFileStore("memory"),
        FileAccessStore = new FilesystemAgentFileStore("working"),
        AgentSkillsSource = new AgentFileSkillsSource(".agents/skills"),
        ChatOptions = new()
        {
            Tools = [
                shell.AsAIFunction(requireApproval: true)
            ]
        },
        BackgroundAgents = [webSearchAgent],
        DisableWebSearch = true,
    }
);

ApiKeyTokenProvider - เป็น Custom Class นะ เอาช่วยเชื่อมกับย Foundary ได้ง่าย

นอกจากนี้่เรายังสามารถสร้าง Shell สวยๆ TUI แบบ Open Claw / Hermes Agent จากส่วน BuildYourOwnClaw ซึ่งอันนี้มีเตรียม Component ConsoleReactiveFramework มาช่วยอยู่แล้ว

นอกจากนี้ ถ้าสนใจเรื่อง Harness บน MAF เพิ่มเติมดูได้จาก https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/02-agents/Harness

- Discussion + Q&A

ℹ️ ในเคสการใช้งานระดับองค์กร (Organization) ที่ต้องการแชร์ Memory ร่วมกันระหว่าง Agents โดยไม่ต้องคอยแชร์ไฟล์ และไม่ต้องกังวลเรื่อง File Conflict จะมีแนวทางอย่างไร?
Ans - ทำได้ นอกจาก File มีทั้งในส่วน Mem0 / AgentMemory ลองดูตัวอย่างการเชื่อมจาก https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/02-agents/AgentWithMemory

ℹ️ MAF รองรับภาษาไทยไหม ?
Ans - รองรับ หรือ ไม่ขึ้นกับตัว สมอง หรือ LLM ที่เราใช้งาน

Using Skills in Microsoft Agent Framework (C#)

Speaker Chatri Ngambenchawong

สำหรับ Session นี้ มาจากที่ผมพูดเองครับ ซึ่งมีเขียน Blog เต็มๆไว้แล้ว

Recap สั้นๆ เป็นการมาแชร์ว่าในตัว Microsoft Agent Framework(MAF) เป็น NuGet Lib ที่เข้ามาช่วยให้การสร้าง AI Agent บน Stack ของ dotnet / python และ Golang (preview) ง่ายและสะดวกขึ้น โดยรองรับทั้งการ Chat แบบทั้งไป หรือ ทำ Workflow แม้แต่การทำ Harness Agent ที่มีการจัดการเรื่อง Memory / Tools Approval สามารถทำได้

- Skill คืออะไร? และโครงสร้างของ Skill

📌 นิยาม: Skill คือ Lightweight prompt และ Open format ในรูปแบบไฟล์ Text เพื่อรวบรวมความรู้เฉพาะทางไว้ให้ AI Agent ดึงไปใช้งาน

📌 องค์ประกอบสำคัญ 4 ส่วนของ Skill:

  1. skill.md: ไฟล์อธิบายความสามารถ (Metadata, Version, License, Instruction) ความยาวแนะนำโดยประมาณไม่เกิน 5,000 tokens
  2. Reference: ข้อมูลอ้างอิงเพื่อป้องกันปัญหา AI คิดไปเอง (Hallucination) เช่น ไฟล์ CSV หรือ Text
  3. Script: คำสั่งเดี่ยว (Single command line) เช่น Python, Shell script, C# หรือ Node เพื่อให้ผลลัพธ์มีความแน่นอน (Deterministic)
  4. Asset: ทรัพยากรสำหรับให้ LLM ดึงไปประมวลผลหรือสร้างผลลัพธ์ตาม Format ที่ต้องการ

- เปรียบเทียบ Skill vs Workflow (ควรใช้เมื่อไหร่?)

📌 Skill: เหมาะกับงานสั้นๆ ครั้งเดียวจบ (One-time job), โฟกัสเป้าหมายเดียว (Single domain) แต่จะควบคุมขั้นตอนการทำงานได้ไม่ละเอียดมาก และอาจเกิด Side effect หากรันซ้ำ

📌 Workflow: เหมาะกับกระบวนการทางธุรกิจที่มีหลายขั้นตอน (Multi-step logic), มีระบบ Pause/Resume หรือ Retry เมื่อเกิดข้อผิดพลาด และเหมาะกับงานที่มี Side effect สูง (เช่น การชำระเงิน หรือการส่งอีเมล)

- มี Skill แบบไหนให้เราเรียกใช้งานได้บ้าง โดยมี

  1. File-based skills - สำหรับอันนี้ เราเตรียม Skill.md ตาม Structure ของ Agent Skills จากนั้นกำหนด Config ใน Class AgentFileSkillsSourceOptions / AgentSkillsProvider  เพื่อดึงมาใช้
  2. Class-based skills - เหมือน File-based skills แต่เปลี่ยนมารูปแบบของ C# Class โดย Extend Class AgentClassSkill และมา overrder AgentSkillFrontmatter - มัน คือ Skill Name + Desc / Instruction / AgentSkillResource / AgentSkillScript
  3. Code-defined skills - คล้ายกับ Class-based skills แต่เป็น Skill ที่สร้างตอน Runtime ซึ่งเราสามารถ ปรับ Skill ได้ Dynamic เช่น มาปรับ Skill Name + Desc / Instruction ตามผู้ใช้ อย่าง เช่น Skill ดึงข้อมูลของห้องพัก เราสามารถเอา Personaliza Data อย่างความชอบ การตอบ ใส่เข้าไปได้เนื่อหาของ Skill ได้
  4. MCP-based skills - เปิดให้เรียกใช้ Skill โดยตรงจาก MCP Server ซึ่ง Ad-Hoc ขอแบบ RealTime และมีแบบ Archive Mode ที่ทำหน้าที่ในการ Shared Skill ให้ Agent มา Download ลง Local ของตัวเอง

- Live Demos

📌 Demo 1: GitTea Webhook AI Agent (PR Reviewer): เมื่อมี Pull Request ใหม่ Webhook จะส่งงานมาที่ Agent เพื่อเรียกใช้ Skill วิเคราะห์ผลกระทบ (Impact Analysis Script / Style Guide / Security) โดยมีการเรียกใช้ Script ของ Skill ทั้ง python / C# (Required Run Time Image ASP.NET SDK) และเขียน Comment สรุปการเปลี่ยนแปลงตอบกลับใน PR อัตโนมัติ

📌 Demo 2: Personal Financial App (.NET 10 & Blazer): แอปจัดการการเงินที่รวม Skill ทั้ง 4 ประเภท File-based skills / Class-based skills / Code-defined skills / MCP-based skills

  • Transactions + Budgeting & Exchange Rate— class-based AgentClassSkill<T> (บันทึกใช้จ่าย ตรวจสถานะงบประมาณ โอนงบระหว่างหมวด)
  • Receipt OCR — inline AgentInlineSkill ที่สร้างต่อใบเสร็จหนึ่งไฟล์ session ได้โดยไม่ต้อง reset Chat ที่คุยกันอยู่
  • Saving-Calculator / Savings Goals / — file-based SKILL.md + references/ + Python (ดอกเบี้ยทบต้น)
  • Monthly Summary / Goals Progress — MCP-based ผ่าน HTTP service + JWT bearer เป็นการเรียกใช้ Skill รวมถึง Provide Resource อาทิ เอกสาร Reference หรือ API สำหรับคำนวณที่ฝั้ง MCP Server
  • Emergency Fund / Debt Payoff - MCP-based ผ่าน HTTP service + JWT bearer โดย อันนี้เป็นการแสดงตัวอย่างแบบ Archive Mode แชร์ Skill ให้ Agent ดึงลงไป Run ที่ตัวเอง

และมี Harness ถ้าต้องการ Run Script / Write Database ต้อง Approve หรือ จะไปกำหนดที่หน้า User By Pass ได้

Demo

  • บันทึกรายจ่าย: สาธิตการลงบัญชีค่าเดินทาง 50 บาท ซึ่งต้องผ่านการกดอนุมัติ (Approval) จากผู้ใช้ก่อนเขียนลง Database
  • วางแผนซื้อของ: สาธิตการตั้งเป้าซื้อการ์ดจอ RTX 6090 150,000 บาท โดย Agent เรียก Skill คำนวณการออมและวางแผนการลงทุนให้
  • OCR ใบเสร็จเข้าไป

- Security best practices

  • Review Before Use - Skill มันมี Script ด้วย อ่านก่อนใช้งาน
  • Trust Source - เอาจากแหล่งที่น่าเชื่อถือ ระวัง "typosquatted" skill name สะกดคล้ายกัน rnicrosoft vs microsoft
  • Pin versions & verify integrity - ของ Skill ใน MCP Server
  • Sandboxing - มันมี Script ถ้าให้มันทำงานควรจะแยก Env ไว้ และมีส่วน Agent Harness (Approval)
  • Apply least privilege
  • Treat skill content as untrusted input
    - Keep secrets out of skills - อย่าสง Secret ให้ Skill มันทำ ถ้าจะส่งต้อง Review Script ข้างในว่ามีแอบไปส่งอะไรไหม
    - Never embed credentials — inject them at runtime (e.g., per-user JWT to the MCP server) อันนี้ตัวอย่างใน Code มีนะ
  • Approval gates - Human In The Loop เสมอ
  • Audit and logging - มัน load อะไรมา

สำหรับ Resource ทั้งหมด

- Discussion + Q&A

ℹ️ การนำ Finance Use Case ไปทดลองใช้ หรือลองพวก Back Testing
Ans - สามารถ Clone ตาม Repo และนำไปต่อยอดได้เลยครับ ซึ่งถ้ามี API เดิมที่เกี่ยวกับการเงินสามารถเอา Idea ของ Class Base Skill ไปทำ Wrapper ได้เลย อย่างการเชื่อมต่อกับ SET Exchange / Asset Allocation / Performance Attribution / Back Testing

ℹ️ AI Model ที่ใช้สำหรับ Demo ทั้ง 2 ตัว
Ans - Qwen3.5 9B Q6

ℹ️ การใช้งาน Skill รูปแบบต่างๆ (File-based, Inline, Class-based) มีลักษณะเหมือน Function ใช่หรือไม่? และ MCP คือการดาวน์โหลดไฟล์มาแยกใช้ใน Client ใช่หรือไม่?
Ans - Inline, Class-based มีลักษณะเหมือน Function ส่วน File based เรียกใช้ Skill ที่เราใช้กับ Agent อื่นๆพวก Claude / ChatGPT เลย ส่วน MCP มีการทำงาน 2 มุม การกระจาย Skill (Archive Mode) และ Ad-Hoc ขอแบบ RealTime รวมถึงตัว MCP Server เอาสามารถให้บริการ Logic ได้ด้วย อย่างคำถามแรก อันนี้เอา MCP มาครอบได้เลย

ℹ️ หากไม่ต้องการดาวน์โหลดไฟล์ลงเครื่อง Local มีตัวเลือกในการเข้าถึง Skill จากภายนอกผ่านการเรียก API ตรงๆ โดยไม่ดาวน์โหลดลงเครื่องได้หรือไม่?
Ans -
ได้ใช้ MCP Server ซึ่ง Ad-Hoc ขอแบบ RealTime หรือ อาจจะลอง Implement API ขึ้นมาเองก็ได้ฃ

Reference