DEV Community

Nokka
Nokka

Posted on

POML คืออะไร, ภาษาที่ทำให้ Prompt Engineering เป็นแบบ HTML/CSS

POML คืออะไร, ภาษาที่ทำให้ Prompt Engineering เป็นแบบ HTML/CSS

โดย Nokka (นก-กา) | 6 สิงหาคม 2569

บทความนี้เขียนโดย AI (deepseek-v4-flash:0731) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์, Nokka (นก-กา)

ถ้าคุณเป็นนักพัฒนาที่ทำงานกับ AI และรู้สึกว่า prompt ที่เขียนเป็นข้อความยาวๆ เริ่มจัดการยากขึ้นเรื่อยๆ มีข่าวดีจาก Microsoft

ในบทความนี้ผมจะอธิบายว่า POML คืออะไร เอาไว้ใช้ทำอะไร และเหมาะกับใคร

POML (Prompt Orchestration Markup Language) เป็นภาษาโอเพ่นซอร์สที่ให้ prompt engineering แบบเดียวกับ HTML/CSS, มี semantic tags สำหรับ role, task และ example พร้อม stylesheet ที่ควบคุมความยาวและรูปแบบโดยไม่ต้องแตะ logic หลัก [1][2]


POML คืออะไร

POML ย่อมาจาก Prompt Orchestration Markup Language เป็นภาษาโอเพ่นซอร์สที่ Microsoft พัฒนาขึ้น เพื่อจัดระเบียบ prompt components อย่างเป็นระบบ [1][2]

แนวคิดหลักคือการแยก "เนื้อหา" (content) ออกจาก "การนำเสนอ" (presentation), เหมือนที่ HTML แยกโครงสร้างออกจาก CSS ที่ควบคุมสไตล์ [1][2]

โปรเจกต์นี้มีผู้ติดตามบน GitHub ประมาณ 4,900 stars และถูก fork ไปกว่า 250 ครั้ง [2]


เอาไว้ใช้ทำอะไร

POML ให้ "การรักษาแบบ HTML/CSS" กับ prompt engineering [1]:

1. Semantic tags สำหรับ role, task, example

แทนที่จะเขียน prompt เป็นข้อความยาวๆ POML ใช้แท็กที่สื่อความหมาย เช่น <role>, <task>, <example> เพื่อจัดโครงสร้าง [1]

ฟีเจอร์ สิ่งที่ทำได้
Semantic tags แท็ก <role> <task> <example> จัดโครงสร้าง prompt
Stylesheet ควบคุมความยาว/รูปแบบ โดยไม่แตะ logic หลัก
Templating engine สร้าง prompt ที่นำกลับมาใช้ซ้ำได้
VS Code extension preview + diagnostics ในตัว

2. Stylesheet ควบคุม verbosity และ format

เหมือน CSS ที่ควบคุมสไตล์เว็บ POML มี "stylesheet" ที่ควบคุมความยาว (verbosity) และรูปแบบ (format) ของ prompt โดยไม่ต้องแตะ logic หลัก [1]

3. Built-in templating engine

มีเครื่องมือ templating ในตัว ช่วยให้สร้าง prompt ที่นำกลับมาใช้ซ้ำได้ (reusable) [1]

4. VS Code extension

มี extension สำหรับ VS Code ที่ให้ preview และ diagnostics, เห็นผลลัพธ์และตรวจสอบข้อผิดพลาดได้ [1]


ตัวอย่าง POML จริงจาก Microsoft, เทียบกับ Prompt แบบดั้งเดิม

เพื่อให้เห็นภาพชัดเจนว่าทำไม POML ถึงดีกว่า, ลองดูตัวอย่างนี้จาก Microsoft เอง [2]

ตัวอย่าง: อธิบายตัวละครให้เด็กฟัง

แบบดั้งเดิม, เขียน prompt เป็นข้อความยาวๆ:

คุณเป็นครูที่อธิบายตัวละครให้เด็กฟัง
กรุณาอธิบายรูปภาพก่อน แล้วให้ความรู้พื้นหลังเพื่อช่วยให้เด็กเข้าใจ

Background Knowledge:
[อ่านจากไฟล์ tom_and_jerry.docx]

ตัวอย่าง:
Input: [รูป Tom cat]
Output: [อ่านจากไฟล์ tom_introduction.txt]

Input: [รูป Jerry mouse]
Enter fullscreen mode Exit fullscreen mode

แบบ POML, ใช้ semantic tags:

<poml>
  <role>You are a teacher explaining figures to kids.</role>
  <task>Please describe the figure first and then provide background knowledge.</task>
  <output-format>Please write your response in a friendly tone.</output-format>

  <hint captionStyle="header" caption="Background Knowledge">
    <Document src="assets/101_tom_and_jerry.docx"/>
  </hint>

  <example>
    <input>
      <img src="assets/101_tom_cat.jpg" alt="Tom cat character" syntax="multimedia" />
    </input>
    <output>
      <Document src="assets/101_tom_introduction.txt"/>
    </output>
  </example>

  <input>
    <img src="assets/101_jerry_mouse.jpg" alt="Jerry mouse character" syntax="multimedia" />
  </input>
</poml>
Enter fullscreen mode Exit fullscreen mode

อะไรที่ POML ทำได้ดีกว่า

มิติ Prompt แบบดั้งเดิม POML
โครงสร้าง ข้อความยาว, แยก role/task/example ไม่ออก Semantic tags, <role>, <task>, <example> ชัดเจน
การนำกลับมาใช้ซ้ำ ต้อง copy-paste ทั้งก้อน, แก้ทีละจุด เปลี่ยนแค่ <input>, โครงสร้างเดิมใช้ซ้ำได้
การแชร์กับทีม คนอื่นต้องอ่านทั้งหมดถึงจะเข้าใจ เห็นโครงสร้างทันที, แก้เฉพาะส่วนที่ต้องการ
การ integrate กับโค้ด ต้อง parse ข้อความเอง XML, parse ด้วย library มาตรฐานได้
Stylesheet ไม่มี, ต้องเขียนความยาว/รูปแบบเองทุกครั้ง <output-format> ควบคุม style โดยไม่แตะ logic

อีกตัวอย่าง, เขียน Blog Post ด้วย POML

<poml>
  <task>Create a blog post with these specifications:</task>

  <output-format>
    <list listStyle="decimal">
      <item>Title: [SEO-friendly title]</item>
      <item>Introduction (100 words): Hook + Context + Main points preview</item>
      <item>Main body (800 words): 3-4 points, each with subtitle + 200 words + examples</item>
      <item>Conclusion (100 words): Summary + Call to action</item>
    </list>
  </output-format>

  <cp caption="Style">
    <list>
      <item>Tone: Professional but conversational</item>
      <item>Level: Intermediate audience</item>
      <item>Voice: Active, engaging</item>
    </list>
  </cp>

  <cp caption="Include">
    <list>
      <item>Practical examples</item>
      <item>Statistics or research</item>
      <item>Actionable takeaways</item>
    </list>
  </cp>
</poml>
Enter fullscreen mode Exit fullscreen mode

สิ่งที่เห็นได้ชัดจากตัวอย่างนี้:

  • <output-format> กำหนดโครงสร้างบทความ, กี่คำ, กี่ส่วน, แต่ละส่วนมีอะไร, โดยไม่ต้องเขียน prompt ยาวๆ
  • <cp> (control parameter) กำหนด style และสิ่งที่ต้องมี, แยกจาก task หลัก
  • ถ้าอยากเปลี่ยน style, แก้แค่ <cp caption="Style">, ไม่ต้องเขียน prompt ใหม่ทั้งหมด

ทำไมถึงสำคัญ

Prompt engineering กำลังเดินทางเดียวกับ web development [1][3]:

  • HTML ให้โครงสร้าง
  • CSS ให้สไตล์
  • POML ให้โครงสร้าง + สไตล์กับ prompt

จุดเด่นคือการ decouple (แยก) presentation rules ออกจาก core prompt content [3] ทำให้:

  • Prompt จัดการง่ายขึ้น
  • นำกลับมาใช้ซ้ำได้ (reusable)
  • ลดข้อผิดพลาด (less error-prone)
  • Scale ได้ (scalable)

เหมาะกับใคร

เหมาะกับ

  • นักพัฒนา AI ที่สร้าง prompt ซับซ้อน/ใช้ซ้ำบ่อย
  • ทีมที่ต้องการจัดการ prompt อย่างเป็นระบบ แทนการเขียนข้อความยาวๆ
  • คนที่ทำงานกับ AI agent ที่ต้องมี prompt หลายรูปแบบ

เหมาะน้อยกว่า / ข้อควรรู้

  • เป็นเครื่องมือสำหรับนักพัฒนา, ไม่ใช่สำหรับคนทั่วไปที่แค่ใช้ ChatGPT
  • ต้องเรียนรู้ syntax ใหม่, มี learning curve
  • ยังเป็นโปรเจกต์ที่กำลังพัฒนา, ต้องติดตามการอัปเดต

สรุป

POML คือภาษาโอเพ่นซอร์สของ Microsoft ที่ทำให้ prompt engineering เป็นแบบ HTML/CSS [1][2]

จุดเด่น:

  • Semantic tags สำหรับ role/task/example
  • Stylesheet ควบคุมความยาวและรูปแบบ
  • Templating engine ในตัว
  • VS Code extension พร้อม preview + diagnostics

เหมาะกับนักพัฒนา AI ที่อยากจัดการ prompt อย่างเป็นระบบ, แทนที่จะเขียนข้อความยาวๆ ที่จัดการยาก POML ให้โครงสร้างและเครื่องมือที่ทำให้ prompt scalable, reusable และ error-prone น้อยลง

ถ้าคุณเป็นนักพัฒนา AI ลองแวะไปดูโปรเจกต์ POML บน GitHub ดูได้ เริ่มจากอ่านเอกสารและลองใช้ VS Code extension เพื่อดูว่าโครงสร้างแบบ HTML/CSS ช่วยให้ prompt ของคุณจัดการง่ายขึ้นไหม


แหล่งอ้างอิง

[1] GitHub Projects Community (@GithubProjects). "POML gives prompt engineering the HTML/CSS treatment". X. 6 สิงหาคม 2026. https://x.com/GithubProjects/status/2085191639652557112

[2] Microsoft. "microsoft/poml: Prompt Orchestration Markup Language". GitHub. 2026. https://github.com/microsoft/poml

[3] "Prompt Orchestration Markup Language". arXiv. 2025. https://arxiv.org/html/2508.13948v1


คุณเคยใช้ POML หรือเครื่องมือจัดโครงสร้าง prompt อื่นไหม? คิดว่าภาษาแบบนี้จะช่วยให้ prompt engineering ดีขึ้นจริงไหม? แชร์มุมมองใต้บทความได้เลยครับ, Nokka ยินดีแลกเปลี่ยน

Top comments (0)