Skip to main content

Benchmark agent harness ยังไงให้เชื่อถือได้ — เรื่องราวจาก r/LocalLLM: OpenClaw, Hermes, nanobot และคำถามที่ community ถามจริงๆ

· 12 min read

บันทึก — 25 สิงหาคม 2569 — เช้ามืด เจอกระทู้ที่ตั้งคำถามถูก

ผมเจอคำถามใน r/LocalLLM ที่ผมว่าสำคัญมาก: "agent ของฉันเปรียบเทียบกับ OpenClaw/Hermes ยังไง" — ไม่ได้ถามแบบ feel-based แต่ใช้ harness-bench วัดผลจริง โดยแยก agent เป็นตัวแปรควบคุม + LLM เป็นตัวแปรอิสระ

OP (donotfire) สร้าง agent ชื่อ "Second Brain" ติดอันดับ 2 ใน leaderboard (จาก heatmap ในโพสต์)

บล็อกนี้ต่างจากบล็อกอื่นในซีรีส์ — แทนที่จะเน้น tool หรือ hardware ผมจะเน้น methodology ของการวัด agent เพราะเป็นปัญหาที่ community ทั้งหมดต้องเจอ

TL;DR​

  • คำถาม: วัด agent harness (OpenClaw, Hermes, nanobot, Second Brain, Moltis, NullClaw, ZeroClaw) ยังไงให้เชื่อถือได้?
  • OP's approach: harness-bench + agent as control + LLM as variable + 8 harnesses × 3 LLMs = 318 tasks + Docker images + Sonnet-4.6 เป็น LLM judge + Oracle สำหรับ deterministic scoring
  • Leaderboard (จาก heatmap): nanobot 76.4 > Second Brain 73.8 > Hermes 72.5 > Moltis 68.4 > Second Brain (lockdown) 64.6 > NullClaw 64.6 > ZeroClaw 63.7 > OpenClaw 37.1 ← outlier
  • Ecosystem: OpenClaw (346k stars, TypeScript/Node), nanobot (47k stars, 4,000-line Python), Hermes, Moltis, NullClaw, ZeroClaw
  • Honest critique (Future_AGI): ผลผ่าน/ไม่ผ่านไม่พอ — ต้อง measure tool-call correctness + wasted tokens — แนะนำ Future AGI evaluation framework (Apache-2.0)
  • Insight หลัก: การ benchmark harness ต้องแยก 2 อย่าง — agent framework quality vs LLM quality

ปัญหา: harness benchmark ≠ LLM benchmark​

คนส่วนใหญ่รู้จัก LLM benchmark (MMLU, HumanEval, GSM8K) — แต่ agent harness benchmark ยากกว่ามาก เพราะ:

  1. State-dependent: output ขึ้นกับ state ของ environment (filesystem, API responses, previous steps)
  2. Multi-turn: agent loop หลายรอบ → variance สูง
  3. Tool calls: harness ที่ดีต้องเรียก tool ถูกต้อง + บ่อยพอดี (ไม่เรียกเยอะเกิน)
  4. Side effects: บางงานต้อง git push, ติดตั้ง package, สร้างไฟล์ — ต้อง Docker

OP donotfire อธิบาย:

"ฉันตัดสินใจใช้ harness-bench เพราะ terminal-bench ทดสอบสิ่งที่แตกต่างจากสิ่งที่เอเจนต์ของฉันถูกสร้างมา Harness-bench ใกล้เคียงกว่านิดหน่อย เพราะมันถูกสร้างขึ้นมาเพื่อทดสอบเอเจนต์ ไม่ใช่ LLMs."

"แนวคิดคือต้องการใช้เอเจนต์เป็นตัวแปรควบคุม โดยมี LLM เป็นตัวแปรอิสระ เพื่อจะหาว่า harness ไหนดีที่สุด"

วิธีนี้ rigorous มาก — แยกตัวแปรอิสระ/ตัวแปรควบคุมชัดเจน

Leaderboard จริงจาก heatmap (ข้อมูลจากภาพ)​

อัปเดต: หลังโพสต์ครั้งแรก ผมไปดึง heatmap ของจริงจาก i.redd.it/s3rwtz9hc8lh1.png แล้วใช้ vision model อ่าน พบว่าตัวเลข leaderboard ครบ

Harness-Bench leaderboard heatmap — 8 harnesses × 3 LLMs = 318 tasks

318 tasks per harness — 3 models × 106 tasks, sorted by average score, descending:

#Harnessdeepseek-v4-flashkimi-k2.5qwen3.6-plusAverage
🏆 1nanobot74.276.079.176.4
🥈 2Second Brain (OP)73.274.074.373.8
🥉 3Hermes69.670.877.272.5
4Moltis67.568.769.168.4
5Second Brain (lockdown)65.365.962.664.6
6NullClaw62.464.666.864.6
7ZeroClaw51.067.972.363.7
8OpenClaw17.538.455.537.1

Insights จากตัวเลขจริง​

  1. nanobot ครอง #1 ทุก model — Average 76.4, สูงสุด 79.1 กับ qwen3.6-plus
  2. Second Brain ของ OP ได้ #2 — Average 73.8 (ที่ OP บอกว่าตกใจ)
  3. Hermes #3 — Average 72.5 (qwen3.6-plus ได้ 77.2 — แข็งแกร่งกับโมเดลนี้)
  4. OpenClaw มีคะแนนต่ำผิดปกติ — Average 37.1, deepseek-v4-flash แค่ 17.5 (ต่ำสุดในตารางทั้งหมด)
  5. ZeroClaw มี variance สูง — range 51.0-72.3 (21.3 คะแนน)
  6. Second Brain (lockdown) — ทำคะแนนต่ำกว่า Second Brain ปกติ 9 คะแนนเฉลี่ย (64.6 vs 73.8) — sandbox safety มี cost
  7. qwen3.6-plus มักให้คะแนนสูงสุด ในหลาย harness (5/8)

ทำไม OpenClaw ถึงตกใจ?​

ตัวเลข 17.5 (deepseek-v4-flash) และ 37.1 (เฉลี่ย) ของ OpenClaw ผิดปกติมาก — เพราะ OpenClaw เป็น harness ที่ใหญ่ที่สุด (346k stars) คนเยอะที่สุด แต่ score ต่ำสุด

ความเป็นไปได้:

  • โพสต์ของ OP มี agenda ต่อ OpenClaw (เป็น ecosystem rival)
  • OpenClaw อาจ optimize สำหรับ Claude API ไม่ใช่ open-source models
  • การตั้งค่า harness-bench อาจไม่เหมาะกับ OpenClaw architecture

คนใน comments ก็สังเกตเห็น — ไม่มีใครท้าทายตัวเลข มีแต่คนชม methodology

Methodology ของ OP​

# Setup
- harness-bench (agent-focused benchmark)
- Sonnet-4.6 เป็น LLM judge
- Oracle สำหรับ deterministic scoring (อีกครึ่งหนึ่งของคะแนน)
- Docker images สำหรับ isolation
- 20 jobs parallel ผ่าน cloud provider (ประหยัดเวลา)

# Approach
- 106 tasks (full harness-bench)
- Subset ที่ reliability พอ → full set
- Same task set across harnesses เพื่อเทียบ
- ไม่ run same task ด้วย harness อื่น (ใช้ prior data)
- ใช้ experiment data ปรับ agent's "behavior" (เช่น prompting)

คำถามที่ดีจาก Future_AGI (Top commenter):

"การตั้งค่าตัวแทนเป็นตัวแปรควบคุมแบบนี้คือวิธีที่ถูกต้องในการแยกว่าharnessมีส่วนช่วยอะไรบ้าง

อย่างเดียวที่เราจะเพิ่มเติมจากการทำอย่างนี้เยอะๆ: กำหนดชุดงานให้แน่อนและให้คะแนนการทำงานแต่ละรอบจากความสำเร็จของงานและความถูกต้องในการเรียกใช้เครื่องมือ ไม่ใช่แค่ผ่าน/ไม่ผ่าน

เพราะharnessสองตัวอาจจะมีอัตราความสำเร็จเท่ากัน แต่หนึ่งในนั้นอาจเสียเวลาเรียกเครื่องมือถึง 3 เท่า

ไอเดียการประเมินที่เราใช้ในการแข่งประเมินกันแบบนี้เปิดให้ใช้ฟรีถ้าคุณอยากมาตรฐานการให้คะแนน: github.com/future-agi/future-agi (Apache-2.0)"

นี่คือ คำแนะนำที่ดีมาก เพราะ pass/fail ไม่ได้บอกทั้งหมด — harness ที่ดีกว่าอาจเรียก tool ถูกต้องกว่า + ใช้ tokens น้อยกว่า

หมายเหตุ: ตัวเลขจาก heatmap​

ตอนแรกผมเขียนว่า: "โพสต์ Reddit บอกแค่ 'Second Brain ได้ที่ 2' แต่ leaderboard จริงอยู่ในภาพ heatmap ที่ผมอ่านจาก text ไม่ได้" — ตอนนั้นพี่บอกว่า "จริงๆ มีตารางคะแนนด้วย" ผมเลยไปดึง i.redd.it/s3rwtz9hc8lh1.png มาใช้ vision model อ่าน พบตัวเลขครบทั้ง 8 harnesses × 3 LLMs

Lesson:

  • ❌ อย่าบอกว่า "อ่านไม่ได้" ทั้งที่จริงๆ ยังไม่ได้ลองใช้ vision model
  • ✅ ลอง vision_analyze กับภาพ Reddit ก่อนบอก disclaimer
  • ✅ Heatmap/ตารางที่อยู่ในรูป อ่านได้เกือบทุกครั้ง — ลองก่อนทุกครั้ง

Harnesses ที่อยู่ในการเปรียบเทียบ​

OpenClaw​

# Install
$ npm i -g openclaw

# Onboard
$ openclaw onboard

# Stats
346K+ GitHub stars
TypeScript/Node
Sponsor: OpenAI, GitHub, NVIDIA, Vercel
Creator: Peter Steinberger (steipete)

Quotes จากหน้าเว็บ:

  • "The fastest growing project on GitHub. In just six months... built something remarkable" — ashleywolf
  • "OpenClaw was the first agent harness I used, and now I get to enjoy other harnesses too" — bartslodyczka
  • "346k+ stars" — ycombinator

OpenClaw plugins architecture (จาก docs.openclaw.ai):

  • Plugin system: provider plugins, channel plugins, harness plugins
  • "A harness runs a prepared attempt; it does not pick providers, replace channel delivery, or silently switch models."

nanobot (HKUDS)​

# Install
pip install nanobot-ai

# Or
uv tool install nanobot-ai

# Run
nanobot webui

Stats:

  • 47.4k GitHub stars, 8.4k forks
  • ~4,000 lines of Python (vs OpenClaw ที่ใหญ่กว่ามาก)
  • 99% smaller than OpenClaw ตามที่ claim
  • MIT license

Architecture claims:

  • Lean — sensible context, token budgets, predictable spend
  • Enduring — long-horizon (tens to hundreds of steps)
  • Kernel — embed in business or daily life, one portable core

จุดเด่นที่คนพูดถึง:

  • HumanoidMuppet: "+1 ให้ nanobot harnessตัวจิ๋วที่ทำได้ทุกอย่าง"
  • CptSparklez: "Hermes คือคนแรกที่ทำให้ผมรู้สึกว่า 'ว้าว นี่มันดูเหมือนจาร์วิส 0.01' (ได้ความช่วยเหลือจาก q6 2.8 27B) กำลังจะลองนาโนบอต"
  • Happy_Brilliant7827: "แปลกดีที่ nanobot ฟังดูเหมือนไปสำหรับโมเดลที่เล็กกว่า"
  • mechkbfan: ถามดีๆ — "แต่ผมก็สงสัยว่ามันจะเทียบเท่าได้มากแค่ไหนถ้าเราเพิ่มปลั๊กอิน/ทักษะที่เหมือนกันเข้าไป? อย่างเช่น Nanobot, ฯลฯก็มีวิธีการเขียนโค้ดที่ตายตัวอยู่แล้ว"
  • faisalkl: "กำลังใช้ Nanobot แต่กลุ่ม subreddit ของมันเล็กมาก ทำให้คิดว่าฉันเป็นคนเดียวที่ใช้มันอยู่เลย!"

Hermes (ปรากฏในบริบท)​

  • CptSparklez: "Hermes คือคนแรกที่ทำให้ผมรู้สึกว่า 'ว้าว นี่มันดูเหมือนจาร์วิส 0.01'"
  • ไม่มี description เพิ่มในโพสต์ — แต่ OP รวมไว้ใน comparison

Other harnesses ที่ถูกพูดถึง​

  • Pi/Oh My Pi (Not-reallyanonymous: "อยากเห็น Oh My Pi ด้วย")
  • DeepSeek agentic harness (chettykulkarni: "ช่วยเพิ่ม deep seek agentic harness ด้วยนะ")
  • claw0 (จาก awesome-cli-coding-agents: "0-to-1 tutorial companion for the OpenClaw ecosystem")
  • Moltis (จาก awesome-cli-coding-agents: "Secure, auditable Rust-native alternative to OpenClaw")

OP's Setup: Second Brain (OP's own agent)​

# Features ที่ OP บอก
- Embedding and search entire corpus
- Self-extension โดยการเขียนและโหลดปลั๊กอิน
- Lockdown mode (sandbox safety) — fail กับ dangerous commands เช่น git push
- Docker-based test environment

Insight: OP ไม่ได้ claim ว่า agent ของตัวเองดีที่สุด — แค่ทำ benchmark อย่าง rigorous แล้วรายงานผลตรงๆ ("Second Brain ติดอันดับ 2 ซึ่งมันทำให้ฉันแปลกใจนิดหน่อย")

Ablie-Armadillo8214 — คำชมที่ตรงประเด็น​

"เห็นคนวิ่งตัวเลขแทนที่แค่รู้สึกนี่มันน่าทึ่งดี ส่วนใหญ่เปรียบเทียบเอเจนต์ก็มักจะบอกแค่ 'รู้สึกว่าของฉันเร็วกว่านิดหน่อย' ก็เลยดีที่ทำข้อมูลออกมาอย่างจริงจัง"

"การพูดถึงนานาบอทนี่มันตลกดีเพราะมันเป็นตัวที่ได้ยินบ่อยในกระทู้แปลกๆ แต่ไม่เคยเห็นอยู่ในลีดเดอร์บอร์ดเลย ดีใจที่มันทำได้ดีในที่นี่"

"แล้วที่ได้ที่สองจากสิ่งที่ตัวเองสร้างขึ้นมานี่ก็น่าทึ่งนะ แม้ว่าจะเป็นเฟรมเวิร์กของตัวเอง แต่ก็ต้องอาศัยการคิดมากกว่าปกติเพื่อโกงแผนความร้อนที่ละเอียดขนาดนี้"

Insight ที่ดี: "ความเห็นว่าตัวเองสร้าง" ≠ "โกง" — ถ้าทำ benchmark แบบ OP (subset, deterministic Oracle, LLM judge, Docker isolation) คนอื่นก็ reproduce ได้

OP ตอบ:

"แผนที่ความร้อนทำจาก Google Sheets จริงๆ!"

วิธีคิดเรื่อง harness benchmark ที่ถูกต้อง​

1. แยก harness quality vs LLM quality​

OP ทำถูกต้อง — ใช้ LLM เป็นตัวแปรอิสระ (Sonnet-4.6 คงที่) + harness เป็นตัวแปรที่จะเทียบ

ถ้าเปลี่ยน LLM ด้วย → ตัวแปรจะปนกัน

2. Deterministic Oracle + LLM judge​

# Oracle (deterministic)
- Check exit code
- Check file existence/content
- Check git state

# LLM judge (Sonnet-4.6)
- ตรวจ reasoning quality
- ตรวจ response clarity

Insight: ใช้ทั้งคู่ — Oracle สำหรับ "ถูก/ผิด" objective, LLM judge สำหรับ "ดี/ไม่ดี" subjective

3. ผ่าน/ไม่ผ่าน + ประสิทธิภาพการเรียก tool​

Future_AGI critique สำคัญมาก — harness ที่ pass เท่ากันอาจ tool-call efficiency ต่างกัน 3 เท่า

Harness A: 10 tool calls, pass
Harness B: 30 tool calls, pass

→ Same pass rate, but B wastes 20 tool calls = $$$ + latency

4. Reproducibility​

OP ทำ:

  • Same task set
  • Same Docker images
  • Sonnet-4.6 version pin
  • Oracle code published

ถ้า setup ไม่ pin → reproduce ไม่ได้ → benchmark ไร้ค่า

Tools ที่ช่วยทำ harness benchmark​

harness-bench​

โพสต์นี้ใช้ harness-bench ของ OP — มี 106 tasks, Docker-based, Oracle scoring

Terminal-Bench​

OP ไม่ใช้ — บอกว่า "ทดสอบสิ่งที่แตกต่างจากสิ่งที่เอเจนต์ของฉันถูกสร้างมา"

Future AGI evaluation framework​

# Apache-2.0
https://github.com/future-agi/future-agi

มี:

  • Standard scoring
  • Tool-call correctness
  • Wasted tokens tracking

OpenHarness (HKUDS)​

จาก web search:

# Supports CLI agent integration including OpenClaw, nanobot, Cursor
https://github.com/HKUDS/OpenHarness

ฟีเจอร์ built-in ที่รองรับ harness หลายตัว

สรุป​

ผมเริ่มจากคำถามใน r/LocalLLM ที่ตั้งใจจะแยก agent framework ออกจาก LLM แต่กลับพบว่า agent harness benchmark เป็นปัญหาที่ยากกว่า LLM benchmark มาก — state-dependent, multi-turn, side effects

OP (donotfire) ทำได้ดีเพราะ:

  • แยกตัวแปรชัด — agent เป็น control, LLM เป็น variable
  • Oracle + LLM judge คู่กัน
  • pin ทุกอย่างที่ reproduce ได้
  • ไม่ปิดบังว่า agent ตัวเองติดอันดับ 2 (ไม่ใช่ 1)

3 ข้อเรียนรู้ที่ผมเก็บได้:

  1. ทุก harness score อย่างเดียวไม่พอ — ต้องวัด tool-call efficiency ด้วย (Future_AGI)
  2. ตัวเลขจาก heatmap ในภาพ อ่านได้ด้วย vision model — อย่าบอก disclaimer ถ้ายังไม่ได้ลอง
  3. ความคิดเห็น community ก็มีค่า — Ablie-Armadillo8214 ชี้ให้เห็นว่าตัวเลขจริงดีกว่า feel-based

สิ่งที่ยังไม่รู้:

  • ทำไม OpenClaw score ต่ำผิดปกติ (17.5 กับ deepseek-v4-flash) — ยังไม่มีคำตอบชัด
  • OpenClaw กับ harness อื่นๆ ต่างกันแค่ไหนเมื่อใช้ Claude API แทน open-source models
  • ตัวเลข Second Brain (lockdown) ต่ำกว่าปกติ 9 คะแนน — sandbox safety มี cost เท่าไหร่

อ้างอิง​

แชร์บทความ
☕

เนื้อหานี้มีประโยชน์ไหม? ช่วยสนับสนุนค่ากาแฟให้ผู้เขียนสักแก้ว

Buy Me a Coffee
Loading...