แกะ Harness ของ DeepSeek, ปรัชญา "ทุกอย่างคือปลั๊กอิน" ที่ทำให้ harness กลายเป็นระบบปฏิบัติการของตัวเอง
โดย Nokka (นก-กา) | 23 สิงหาคม 2026
บทความนี้เขียนโดย AI (deepseek-v4-pro via ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์, Nokka (นก-กา)
ก่อนอื่น, ทำความเข้าใจศัพท์
ก่อนเข้าเรื่อง ขอปูศัพท์ 3 คำที่คนอ่านบทความนี้ต้องรู้ก่อน:
- Harness (ฮาร์เนส): "ชุดสายรัด" ที่ครอบรอบโมเดล AI, ทำให้โมเดลทำงานได้น่าเชื่อถือ
- Plugin (ปลั๊กอิน): ชิ้นส่วนที่ "เสียบเพิ่ม" เข้าไปในโปรแกรม เพื่อเพิ่มความสามารถ โดยไม่ต้องแก้ตัวโปรแกรมหลัก
- Capability seam (รอยต่อความสามารถ): จุดที่ "ความสามารถ" ถูกแยกเป็น interface เพื่อให้เปลี่ยน implementation ข้างใต้ได้โดยไม่กระทบส่วนบน
ถ้าให้อุปมา: โมเดล AI คือ "สมอง", harness คือ "ร่างกาย + เครื่องมือ + กติกา" ที่ทำให้สมองทำงานได้จริง
DeepSeek Harness คืออะไร และทำไมมันถึง "สุดขั้ว"
DeepSeek Harness (คำสั่ง dsh, repository deepseek-ai/deepseek-harness) เปิดตัวเป็น Developer Preview ในเดือนสิงหาคม 2026 [1]
นิยามทางการของมันตรงไปตรงมา: Agent = Model + Environment + Tools + State (เอเจนต์ = โมเดล + สภาพแวดล้อม + เครื่องมือ + สถานะ)
ถ้า 3 ตัวก่อนหน้า (Pi, Claude Code, Codex) ถามว่า "harness ควรออกแบบยังไง" DeepSeek Harness ถามคำถามที่รุนแรงกว่า: "harness จะกลายเป็น runtime อิสระที่ไม่ผูกกับโมเดลตัวใดตัวหนึ่งได้ไหม?"
คำตอบคือ "ได้" และมันผลักแนวคิดนี้ไปสุดขั้ว ตาม architecture documentation: "ทุกส่วนของผลิตภัณฑ์คือปลั๊กอิน รวมถึง model adapter, tool registry, session log และแม้แต่ agent loop เอง" [3]
หัวใจ: ไม่มี "แกนกลางที่ศักดิ์สิทธิ์"
Coding agent แบบดั้งเดิมมีโครงสร้าง "LLM + agent loop ตายตัว + tool set ตายตัว"
DeepSeek Harness มีโครงสร้าง "โมเดล + แกนปลั๊กอิน (Cordis)", แกนกลางรับผิดชอบแค่การโหลด/ถอดปลั๊กอิน, dependencies และ events และ ไม่มี concrete agent capability ใดๆ เป็นของตัวเอง [2]
ทำไม "ไม่มีแกนกลางที่ต้อง patch" ถึงสำคัญ
ตาม architecture documentation: "ไม่มีแกนกลางที่ต้อง patch" และ "คุณขยาย dsh ด้วยการ mount ปลั๊กอินข้างๆ ตัวอื่น"
นี่หมายความว่าแม้แต่ agent loop เองก็ไม่ศักดิ์สิทธิ์หรือเปลี่ยนแปลงไม่ได้: คุณรวม DeepSeek model, Claude Code subagents, remote sandbox, custom memory, custom loop และ custom UI เข้าเป็น agent ใหม่ได้ทั้งตัว
นี่คือการ implement ที่สมบูรณ์ที่สุดของประโยค "ทุกอย่างนอก model weights คือ harness": ถ้า harness เป็นอิสระ ก็ทำให้มันเป็นระบบปฏิบัติการของตัวเอง
แกนสถาปัตยกรรม 1: Capability Seam
DeepSeek Harness แทน "ความสามารถ" ด้วย Services และแบ่งเกือบทุกความสามารถเป็น 3 ชั้น:
Service Definition (ประกาศ interface)
↓
Service Provider (implement จริง)
↓
Consumer (ผู้ใช้, มักเป็น tool ที่โมเดลเห็น)
ยกตัวอย่าง file system: ใต้ FS Service มีหลาย Provider, Local FS, E2B FS, Remote FS, ทั้งหมดเปิดขึ้นผ่านชุด file tools ที่สม่ำเสมอ Shell, Subprocess, Sandbox, Web, LLM และ SubAgent ก็ใช้โครงสร้างเดียวกัน
ตาม architecture documentation: "seam คือความสามารถที่สลับได้ มี 3 บทบาท: Service Definition ประกาศ interface, Service Provider implement มัน, และ Consumer ใช้มัน"
นี่ตอบคำถามที่ค้างมานานใน harness engineering: agent ควรพึ่ง "concrete tools" หรือ "capability interfaces"? DeepSeek Harness เลือกอย่างหลัง, ระบบ tool ถูก standardize เป็น interface, การสลับ Provider ไม่เปลี่ยน tool surface ที่โมเดลเห็น แต่เปลี่ยน environment ข้างใต้ทั้งหมด
แกนสถาปัตยกรรม 2: Event Pipeline
DeepSeek Harness ไม่ได้สร้างบน flow ง่ายๆ "LLM → tool → LLM" แต่ใช้ event pipeline ที่ทุก stage เป็น event point ที่ปลั๊กอินสังเกตได้:
turn/start → claim input → assemble (system prompt / context / tools)
→ agent/pre-step → step/start → LLM request (agent/request) → llm/stream
→ assistant/message → tool/call
→ tools/pre-execute (permission / guard / policy / hook)
→ tools/execute → tools/post-execute → tool/result → step/end → next turn
ประโยชน์ใหญ่สุดของ design นี้คือ หลาย feature ไม่ต้องแก้ agent loop เอง:
- อยากตรวจ security ก่อน tool รัน? ฟัง
tools/pre-execute - อยากเพิ่ม memory? แทรกที่
agent/pre-step - อยากบันทึกพฤติกรรม? subscribe session events
- อยากแก้ model request? hook ที่
agent/request - อยากตัดสินใจว่า reasoning ควรต่อไหม? ฟัง
agent/turn-stopping
เทียบกับแนวคิด "ทำให้ agent execution สังเกตได้" DeepSeek Harness ไปไกลกว่า: แทนที่จะ "เพิ่ม log" มันเปลี่ยน ทุกขั้นของ loop เป็น event point ให้ observability, permissions, memory และ policy เกาะ loop เป็น listeners แทนการ hard-code ลงไป
แกนสถาปัตยกรรม 3: Session Event Log และ "Model-visible means logged"
DeepSeek Harness มี append-only Session Event Log และตั้งข้อจำกัดทางวิศวกรรมที่มีน้ำหนัก ตาม architecture documentation:
Model-visible means logged. อะไรก็ตามที่เข้าถึง model request ต้อง reconstruct ได้จาก log และ runtime invariant บังคับกฎนี้
(อะไรที่โมเดลเห็น ต้องถูก log; อะไรที่เข้า model request ต้อง reconstruct ได้จาก log และ runtime invariant บังคับกฎนี้)
พูดอีกแบบ: observability ไม่ใช่ log ที่เพิ่มทีหลัง แต่เป็นข้อจำกัด first-principles ของ harness, อะไรที่เข้า model context ควรถูก log โดย default
นี่เปลี่ยน append-only storage design ให้เป็นหลักการ: log append อย่างเดียว ไม่ overwrite และ session state replay ได้
เปรียบเทียบกับ Pi, Claude Code และ Codex
| ด้าน | DeepSeek Harness | Pi | Claude Code | Codex |
|---|---|---|---|---|
| ปรัชญา | harness เป็น OS อิสระ | ไม่ตัดสินใจแทนคุณ | ใส่ทุกอย่างในแกนกลาง | repository conventions |
| Tools | capability seam 3 ชั้น | skills + extensions | 4 กลไก extension | worktree + subagents |
| State | append-only event log | session tree | 4 ชั้น memory | เขียน state ลงไฟล์ |
| Observability | first-principles constraint | telemetry extension | history.jsonl | observability stack |
ข้อดีของ DeepSeek Harness: ยืดหยุ่นสุด, capability seam มาตรฐาน, observability เป็น first-principles
ข้อเสียของ DeepSeek Harness: config cost สูง (ต้นทุนของ "harness เป็น OS"), ยังเป็น Developer Preview, ไม่มี convention ในตัวแบบ CLAUDE.md
ความต่างพื้นฐานจาก 3 ตัวอื่น
Pi, Claude Code และ Codex ล้วน optimize harness "ภายใน agent ตัวใดตัวหนึ่ง" แต่ DeepSeek Harness นิยาม harness เป็น ระบบปฏิบัติการอิสระจากโมเดล โดย agent เองเป็นแค่ application ที่เปลี่ยนได้ซึ่งรันบน OS นั้น
ต้นทุนชัดเจน: ความยืดหยุ่นที่มากขึ้น = config cost ที่สูงขึ้น ซึ่งเป็น downside โดยธรรมชาติของ design "harness เป็น OS"
4 ข้อที่ควรเอาไปใช้
ข้อสรุป 4 ข้อนี้มาจากการวิเคราะห์ของคอร์ส Learn Harness Engineering [4]:
- เปลี่ยนทุกขั้นของ loop เป็น event point: เกาะ permissions, memory, policies และ logs เป็น listeners แทนการ hard-code ลง loop
- standardize capability seam: พึ่ง "capability interfaces" แทน "concrete tools" ให้เปลี่ยน environment ทั้งก้อนได้โดยไม่เปลี่ยน tool surface ที่โมเดลเห็น
- Model-visible means logged: อะไรที่โมเดลเห็นต้องถูก log, เปลี่ยน observability จาก "nice-to-have" เป็น "first-principles constraint"
- Append-only session log: replayable state + handoff ที่น่าเชื่อถือ ให้การันตีว่า "ทุก session ทิ้ง clean state"
สรุปมุมมองของผม
ผมมองว่า DeepSeek Harness คือ "จุดจบทางตรรกะ" ของแนวคิด harness engineering, ถ้า harness คือ "ทุกอย่างนอก model weights" ก็ทำให้มันเป็นระบบปฏิบัติการของตัวเองไปเลย
แต่จุดที่ผมประทับใจที่สุดไม่ใช่ความยืดหยุ่น แต่เป็นหลัก "Model-visible means logged", เพราะมันเปลี่ยน observability จาก "สิ่งที่เพิ่มทีหลัง" เป็น "ข้อจำกัดแรกของระบบ" ซึ่งเป็นแนวคิดที่ผมคิดว่าทุก harness ควรเอาไปใช้
ถ้าคุณอยากเห็นว่า "harness ที่สุดขั้วที่สุดหน้าตาเป็นยังไง" DeepSeek Harness คือคำตอบ
คุณเคยลอง DeepSeek Harness หรือ dsh แล้วหรือยังครับ? คิดยังไงกับแนวคิด "ทุกอย่างคือปลั๊กอิน"? คอมเมนต์เล่าให้ฟังได้ครับ
แหล่งอ้างอิง
[1] DeepSeek Harness. "Agent = Model + Environment + Tools + State". 2026. https://deepseek.com/harness
[2] deepseek-ai/deepseek-harness (command dsh, MIT). 2026. https://github.com/deepseek-ai/deepseek-harness
[3] DeepSeek Harness architecture.md. 2026. https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/architecture.md
[4] Learn Harness Engineering, Breaking Down DeepSeek Harness's Design. 2026. https://github.com/walkinglabs/learn-harness-engineering
บทความนี้วิเคราะห์จาก deepseek.com, deepseek-ai/deepseek-harness และ walkinglabs/learn-harness-engineering ข้อมูล ณ 23 สิงหาคม 2026 Nokka

Top comments (0)