← กลับดัชนีเทคโนโลยี

🧠 Mixture of Agents (MoA) ใน Hermes — ใช้หลายโมเดลช่วยคิดโดยไม่ต้องจ่ายแพง!

🧠 Mixture of Agents — มันคืออะไร? ทำไมต้องใช้หลายโมเดล?

ปกติเวลาเราใช้ AI เราจะเลือกโมเดลใดโมเดลนึงมาตอบคำถามเรา เช่น Claude, GPT, DeepSeek, Kimi, MiMo — แต่ละตัวมีจุดเด่นต่างกัน แต่เราใช้ได้แค่ตัวเดียว

Mixture of Agents (MoA) คือฟีเจอร์ในตัวของ Hermes Agent ที่ให้คุณเอาโมเดลหลายตัวมา ช่วยกันคิด ก่อนที่จะตอบคำถามเดียว โดยแบ่งเป็น 2 บทบาท:

  • 📋 Reference Models (ที่ปรึกษา) — โมเดล 1-8 ตัว รันพร้อมกัน วิเคราะห์ปัญหาและให้คำแนะนำสั้นๆ (parallel)
  • 🎯 Aggregator (คนลงมือทำ) — โมเดล 1 ตัวที่อ่านคำแนะนำจาก Reference ทั้งหมดแล้วตัดสินใจ + เรียก tools + เขียนคำตอบจริง

Reference models ไม่ได้เรียก tools ไม่ได้เขียนโค้ด — แค่อ่าน conversation และให้ความเห็น จากนั้น Aggregator เป็นคนทำงานจริง

🔵 เฮิร์ม

ก่อนอื่นต้องเข้าใจ concept ก่อนครับ MoA ไม่ใช่ระบบ voting หรือ averaging — มันคือการให้โมเดลที่ปรึกษาหลายตัว วิเคราะห์ ปัญหาก่อน แล้วให้ Aggregator รวบรวมและตัดสินใจ อีกที เหมือนคุณมี senior dev 2-3 คนช่วย review solution ก่อนคุณลงมือเขียนโค้ด

จุดสำคัญ: Reference models จะ comment ทุก iteration ที่ Aggregator ต้องคิด (ถ้าตั้งค่า default fanout: per_iteration) — นั่นหมายความว่าถ้าต้องเรียก tool 5 รอบ Reference ก็ comment 5 รอบ แต่ถ้าตั้ง fanout: user_turn จะ comment แค่รอบแรกของ user turn นั้น

และ prompt cache ไม่แตก! เพราะ reference outputs ถูก append ต่อท้าย user message ทำให้ cached prefix ยังใช้งานได้ปกติ

🟡 Secretary

ตกลง MoA เลือกโมเดลที่อยากใช้เองได้ใช่มั้ย? แล้วใช้แค่ตัวถูกๆ ได้รึเปล่า? เพราะพี่เค้า budget จำกัด 😅

🔵 เฮิร์ม

ได้หมดครับ! MoA ไม่ได้สุ่มเลือกโมเดล — คุณเลือกเองทุกตัว ผ่าน config.yaml หรือ CLI: hermes moa configure

ตัวอย่าง preset แบบประหยัด — ใช้ DeepSeek Flash + MiMo + Kimi เป็นที่ปรึกษา (รวมกัน ~$0.50/M input) แล้วใช้ Flash ตัวเดียวเป็น Aggregator:

moa:
  presets:
    budget-moa:
      reference_models:
        - provider: openrouter
          model: deepseek/deepseek-v4-flash    # $0.09/$0.18
        - provider: openrouter
          model: xiaomi/mimo-v2.5              # $0.11/$0.28
        - provider: openrouter
          model: moonshotai/kimi-k2.5          # $0.38/$2.03
      aggregator:
        provider: openrouter
        model: deepseek/deepseek-v4-flash      # ตัวเดียวกับที่ใช้อยู่
      reference_max_tokens: 600
      max_tokens: 4096
      enabled: true
🟡 Secretary

แล้วถ้าอยากลอง ฟรี เลยล่ะ? มีตัวที่เสียตังค์ 0 บาทมั้ย? 🤔

🔵 เฮิร์ม

มีครับ! OpenRouter มีโมเดลฟรีหลายตัว — แต่ต้องเข้าใจข้อจำกัดก่อน:

โมเดลฟรีOpenRouter IDข้อควรรู้
🔮 Nemotron 3 Nanonvidia/nemotron-3-nano-omni-30b-a3b-reasoning:freeโมเดลที่พี่ใช้อยู่ตอนนี้
🔮 Gemma 4google/gemma-4-26b-a4b-it:freeGoogle ล่าสุด
🔮 Qwen3 Nextqwen/qwen3-next-80b-a3b-instruct:free80B parameter
🔮 Nemotron 3 Ultranvidia/nemotron-3-ultra-550b-a55b:free550B ใหญ่สุดฟรี
⚠️ openrouter/freeopenrouter/freeroute ไป free models อัตโนมัติ แต่ consistency ไม่แน่นอน

ข้อสำคัญ: Reference models ไม่ได้เรียก tools — แค่อ่าน text และให้ความเห็น ดังนั้นใช้โมเดลฟรีเป็น Reference ได้สบาย ไม่ต้องสนว่ามัน support tool calling หรือเปล่า

🟡 Secretary

โอเค แล้ว /moa ใช้บน Telegram ได้มั้ย? เพราะพี่ใช้ Hermes ผ่าน Telegram เป็นหลัก

🔵 เฮิร์ม

ได้ครับ! ✅ — /moa ทำงานบนทุก platform ที่ Hermes รองรับ รวมถึง Telegram, Discord, Desktop, CLI, TUI

วิธีใช้บน Telegram:

/moa ช่วยออกแบบโครงสร้าง database สำหรับระบบร้านค้าหน่อย

Hermes จะ:

  1. อ่าน default MoA preset จาก config.yaml
  2. เรียก Reference models (ที่ปรึกษา) พร้อมกัน
  3. ให้ Aggregator รวบรวมและตอบ
  4. คืนค่าโมเดลเดิม ให้คุณหลังจากจบ turn นั้น

แต่ถ้าอยากใช้ยาวๆ ทั้ง session — ใช้:

/model budget-moa --provider moa

หรือเลือกจาก model picker ใน Telegram — MoA presets จะขึ้นเป็น "Mixture of Agents" provider

🟡 Secretary

แล้วราคาจริงๆ เวลาใช้ MoA มันประมาณไหน? เสี่ยงมั้ยว่า Reference ดันไปใช้โมเดลแพงโดยไม่รู้ตัว?

🔵 เฮิร์ม

ไม่ต้องกังวลครับ — คุณกำหนดเองทุกตัว! MoA ไม่มี magic ไม่มี hidden cost ถ้าคุณไม่ตั้ง Claude Opus ใน config ก็ไม่มีทางที่ MoA จะใช้ Claude Opus โดยไม่บอก

ตัวอย่างเปรียบเทียบค่าใช้จ่ายต่อ 1 turn (input ~2K tokens, output ~500 tokens ต่อ Reference):

PresetReference (3 ตัว)Aggregatorรวม/รอบ
🔥 Budget (Flash+MiMo+Kimi)~$0.001~$0.0002 (Flash)~$0.0012
❌ Default (Opus+GPT+DeepSeek)~$0.005~$0.03 (Opus)~$0.035
🆓 ฟรีล้วน (Nemotron+Gemma+Qwen)$0~$0.0002 (Flash)~$0.0002

Budget preset ถูกกว่าค่า Default ~29 เท่า!

🟡 Secretary

แต่พี่บอกว่าถ้าตั้ง fanout เป็น per_iteration (default) Reference จะ comment ทุกรอบ tool iteration — 5 รอบก็ 5 ครั้ง งั้นราคาก็คูณ 5 สิ? 😱

🔵 เฮิร์ม

ถูกต้อง! แต่มีสิ่งที่ช่วยลด cost ได้ครับ:

  • Prompt caching — Reference models มักได้ cache hit บน prefix ทำให้ราคา input ถูกลงมาก (OpenRouter ลด ~50-90%)
  • reference_max_tokens: 600 — จำกัดให้ Reference ตอบสั้นๆ แค่ ~600 tokens
  • fanout: user_turn — ตั้งให้ Reference comment แค่ รอบแรกของ user turn รอบถัดไป Aggregator ทำงานคนเดียว
moa:
  presets:
    budget-efficient:
      reference_models:
        - provider: openrouter
          model: deepseek/deepseek-v4-flash
        - provider: openrouter
          model: moonshotai/kimi-k2.5
      aggregator:
        provider: openrouter
        model: deepseek/deepseek-v4-flash
      reference_max_tokens: 600
      fanout: user_turn        # ← แค่รอบแรก, ประหยัดกว่า
      max_tokens: 4096
      enabled: true

ด้วยการตั้งค่านี้ MoA จะเสียค่าใช้จ่ายเพิ่มจากปกติประมาณ +50-100% ต่อ user turn (ไม่ใช่ x5) เพราะ Reference ทำงานแค่รอบแรก

🟡 Secretary

โอเค — สรุปให้หน่อย ใครควรใช้ MoA? และข้อควรระวัง?

🔵 เฮิร์ม

✅ ควรใช้เมื่อ:

  • งานซับซ้อนที่ต้อง reasoning หลายมุมมอง (architecture, debugging, code review)
  • อยาก leverage จุดแข็งของแต่ละโมเดลโดยไม่ต้องเลือกเอง
  • ใช้ Reference models ราคาถูก / ฟรี เพื่อเพิ่ม quality โดยไม่เพิ่ม cost มาก
  • พร้อมจ่ายเพิ่ม ~50-100% ต่อ user turn เพื่อคุณภาพที่ดีขึ้น

❌ ไม่ควรใช้เมื่อ:

  • งานง่ายๆ ถาม-ตอบ — single model ก็พอ
  • ต้องการ response เร็วที่สุด — MoA ช้ากว่าเพราะรอ Reference models เสร็จ

⚠️ ข้อควรรู้:

  • Reference models ไม่ได้ ได้ system prompt ของ Hermes — พวกมันได้ system prompt พิเศษที่บอกให้ทำตัวเป็น "analyst" (ที่ปรึกษา) ดังนั้นมันจะไม่พยายามเรียก tools หรือทำตัวเป็น agent
  • Aggregator เป็นโมเดลที่เรียก tools + เขียนคำตอบจริงเท่านั้น
  • Recursive MoA (MoA ซ้อน MoA) ถูก block ที่ระดับ code — ป้องกัน infinite loop
  • โมเดลฟรี (Nemotron, Gemma ฯลฯ) ใช้เป็น Reference ได้สบาย แต่ Aggregator ควรเป็นโมเดลที่ support tool calling เช่น DeepSeek Flash
🟡 Secretary

สุดท้าย — ถ้าพี่ใช้ Hermes ผ่าน Telegram และใช้ DeepSeek Flash หลักๆ อยู่ ควรทำยังไงให้ลอง MoA โดยไม่เสียงบ? 🧐

🔵 เฮิร์ม

แนะนำตามนี้ครับ:

ขั้นตอนที่ 1: เพิ่ม Config ใน config.yaml:

moa:
  presets:
    budget-moa:
      reference_models:
        - provider: openrouter
          model: nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free
        - provider: openrouter
          model: deepseek/deepseek-v4-flash
      aggregator:
        provider: openrouter
        model: deepseek/deepseek-v4-flash
      reference_max_tokens: 800
      fanout: user_turn
      max_tokens: 4096
      enabled: true

ขั้นตอนที่ 2: ทดสอบบน Telegram — แค่พิมพ์:

/moa ออกแบบโครงสร้างระบบจัดการ inventory

คิดราคาต่อ turn แบบ worst case:

LayerModelราคา
Reference #1Nemotron Nano (ฟรี)$0
Reference #2DeepSeek Flash$0.09/M input → ~$0.00018
AggregatorDeepSeek Flash~$0.0005 (output 2K tokens)
รวม~$0.0007/turn

ใช้ 1000 รอบต่อเดือน → $0.70 หรือประมาณ 25 บาท — ถือว่าน่าลองมากครับ!


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

  • เอกสารทางการ Hermes MoA: hermes-agent/website/docs/user-guide/features/mixture-of-agents.md
  • Source code gateway: gateway/run.py — /moa handling ใน Telegram และ platform อื่นๆ
  • Source code runtime: agent/moa_loop.py — parallel reference fan-out + aggregator injection
  • Config: hermes_cli/moa_config.py — default presets, normalization
  • CLI: hermes_cli/moa_cmd.pyhermes moa configure
← กลับดัชนีเทคโนโลยี