ข้ามไปยังเนื้อหาหลัก

DeepSeek Harness คืออะไร? เอเจนต์รันไทม์ที่ทุกอย่างเป็นปลั๊กอิน

อธิบาย DeepSeek Harness: สถาปัตยกรรมปลั๊กอินบน Cordis ทำงานอย่างไร โหมด Standard, PTC, Minimal และ Creator มีไว้ทำอะไร และเปรียบเทียบกับ Claude Code, Codex และ OpenCode อย่างไร
อัปเดตแล้ว 8 ก.ย. 2569  · 13 นาที อ่าน

สำรวจด้วย AI

ChatGPTClaudePerplexity

DeepSeek Harness ถูกสร้างมาเพื่อรัน "งาน" ไม่ใช่แค่ตอบคำถาม เป็นเอเจนต์รันไทม์แบบโอเพนซอร์ซที่เชื่อมโมเดลเข้ากับที่เก็บโค้ดของคุณ เทอร์มินัล เครื่องมือ และประวัติเซสชัน ขอให้มันแก้บั๊ก มันสามารถตรวจไฟล์ แก้โค้ด รันเทสต์ และตอบสนองเมื่อคำสั่งล้มเหลว การเรียกโมเดลครั้งเดียวไม่อาจทำสิ่งเหล่านี้ได้ด้วยตัวเอง

ส่วนที่แปลกใหม่กว่านั้นอยู่ใต้เวิร์กโฟลว์นี้ DeepSeek Harness เปิดเผยตัวปรับแต่งโมเดล (model adapter) เครื่องมือ เซสชัน แซนด์บ็อกซ์ และแม้แต่ลูปของเอเจนต์ให้เป็นปลั๊กอินที่ประสานงานกันด้วย Cordis โมเดลเป็นเพียงส่วนหนึ่งของเอเจนต์ ไม่ใช่ตัวผลิตภัณฑ์ทั้งหมด

นี่ไม่ใช่ซอฟต์แวร์ที่เสร็จสมบูรณ์ Harness ยังอยู่ในสถานะตัวอย่างสำหรับนักพัฒนา; API อาจแตกระหว่างการออกเวอร์ชัน และประกาศด้านความปลอดภัยของโครงการเองก็ระบุว่ายังไม่ผ่านการตรวจสอบความปลอดภัย บทความนี้จะกล่าวถึงข้อจำกัดเหล่านั้นควบคู่กับสถาปัตยกรรมและจุดที่ต่างจาก Claude Code, Codex และ OpenCode

สรุปสั้นๆ

  • คืออะไร: DeepSeek Harness คือเอเจนต์รันไทม์แบบโอเพนซอร์ซ ไม่ใช่โมเดล มอบเครื่องมือ เซสชัน แซนด์บ็อกซ์ และลูปเอเจนต์ให้กับโมเดล
  • แนวคิดหลัก: Cordis เปิดเผยตัวปรับแต่งโมเดล เครื่องมือ ที่เก็บเซสชัน แซนด์บ็อกซ์ และลูปเอเจนต์ให้เป็นปลั๊กอินที่เปลี่ยนแทนกันได้
  • เซสชัน: บันทึกเหตุการณ์แบบเติมอย่างเดียว รองรับการทำงานต่อแตกกิ่ง ค้นหา เล่นซ้ำ และมุมมอง Trajectory
  • โหมด: Standard, PTC, Minimal และ Creator เปลี่ยนชุดเครื่องมือที่เอเจนต์ใช้ได้และวิธีเข้าถึง
  • ความต่างหลัก: DeepSeek Harness เปิดให้ผู้พัฒนาเปลี่ยนคอมโพเนนต์รันไทม์ระดับล่างที่ Claude Code, Codex และ OpenCode ยังคงตายตัว
  • ข้อจำกัดหลัก: ยังเป็นตัวอย่างสำหรับนักพัฒนา ไม่มีการตรวจสอบความปลอดภัย และ API อาจเปลี่ยนระหว่างรีลีส

DeepSeek Harness คืออะไร?

DeepSeek Harness ย่อว่า dsh เป็น เอเจนต์ harness แบบโอเพนซอร์ซจาก DeepSeek AI ภายใต้ไลเซนส์ MIT มันอยู่ระหว่างโมเดลภาษาขนาดใหญ่กับโลกภายนอก คอยจัดหาเครื่องมือ เซสชัน แซนด์บ็อกซ์ และลูปที่ทำให้งานเดินหน้าต่อไป

กรอบความคิดของ DeepSeek คือ "Agent = Model + Harness" โมเดลทำหน้าที่ให้เหตุผลและสร้างข้อความ ส่วน harness คือทุกอย่างที่ทำให้เหตุผลนั้นลงมือกับระบบไฟล์จริงและเดินหน้าต่อได้ โดยไม่ต้องอธิบายงานซ้ำทุกครั้ง

มันรันบน Cordis ซึ่งเป็นเฟรมเวิร์กปลั๊กอินที่มาก่อน DeepSeek Harness Cordis ทำให้การตั้งค่าต่างๆ แทนที่ส่วนประกอบเหล่านี้ได้อย่างอิสระ จะกลับมาพูดถึงต้นทุนของตัวเลือกนี้ภายหลัง

เมื่อเข้าใจกรอบนี้แล้ว มีความเข้าใจผิดที่พบบ่อยสองข้อ

DeepSeek Harness ไม่ใช่โมเดล AI

อย่างที่กล่าว โมเดลและรันไทม์เป็นคนละเลเยอร์ การแยกนี้ทำให้เปลี่ยนผู้ให้บริการได้โดยไม่ต้องเปลี่ยนเครื่องมือหรือการตั้งค่าเซสชัน รันไทม์เดียวกันใช้ DeepSeek, Anthropic, OpenAI หรือเอ็นด์พอยต์ที่เข้ากันได้กับ OpenAI ได้

DeepSeek Harness มากกว่าแค่ผู้ช่วยเขียนโค้ด

โหมด Standard ทำให้ดูคล้ายผู้ช่วยเขียนโค้ด แต่เป็นเพียงหนึ่งชุดการตั้งค่า ดังที่จะกล่าวต่อไป โหมด Minimal และ Creator เปลี่ยนสิ่งที่เอเจนต์ใช้ได้ การสร้างชุดใหม่ยังต้องมีงานวิศวกรรมอยู่ดี—เพียงแต่ผู้พัฒนามีสิทธิ์เข้าถึงชิ้นส่วนต่างๆ

Cordis จัดระเบียบปลั๊กอินของ DeepSeek Harness อย่างไร

อย่างที่กล่าว Cordis เป็นเฟรมเวิร์กปลั๊กอินใต้ DeepSeek Harness มันทำให้แต่ละส่วนร้องขอบริการที่ต้องการได้โดยไม่ผูกติดกับโค้ดของผู้ให้บริการรายใดรายหนึ่ง

Cordis มาจากระบบนิเวศแชตบอต Koishi และพัฒนาโดยนักพัฒนาที่รู้จักในชื่อ Shigma; DeepSeek นำมาใช้และขยายต่อ ผู้เขียนอธิบายการออกแบบไว้ในบทความ A Programming Paradigm for Spatiotemporal Composability

พื้นฐานเหล่านี้นำไปสู่สโลแกนหลักของโปรเจกต์และคำศัพท์สองคำของ Cordis ชื่ออาจฟังดูเชิงวิชาการ แต่พฤติกรรมนั้นค่อนข้างตรงไปตรงมา

"ทุกอย่างคือปลั๊กอิน"

เอกสารสถาปัตยกรรมของ DeepSeek ระบุว่าสามารถขยาย dsh โดยเมานต์ปลั๊กอินข้างๆ ตัวอื่น ตัวปรับแต่งโมเดล เครื่องมือ เซสชัน แซนด์บ็อกซ์ สตอเรจ การจัดสรรงาน ลูปเอเจนต์ และ UI ล้วนเป็นปลั๊กอิน

ถ้าเอาตามสโลแกนแบบเคร่งครัดก็เกินจริงอยู่ Cordis ยังอยู่ใต้ปลั๊กอินเสมอ มันโหลดและถอดปลั๊กอิน ตรวจสอบสิ่งที่ต้องการ และรันอีเวนต์ที่ปลั๊กอินใช้สื่อสารกัน Cordis เป็นสิ่งจำเป็น ไม่ใช่ชิ้นส่วนเสริมที่เลือกได้

Spatial composability จัดการการพึ่งพากันของปลั๊กอิน

ปลั๊กอินประกาศบริการที่ต้องการโดยไม่ต้องมีลำดับบูตที่เขียนมือ เมื่อมีบริการเหล่านั้นจึงจะเปิดทำงาน และจะปิดเมื่อบริการที่จำเป็นหายไป การพึ่งพากันเป็นตัวตัดสินว่าเมื่อไรจึงจะรันได้

DeepSeek เรียกสิ่งนี้ว่า spatial composability การพึ่งพาบอก Cordis ว่าส่วนประกอบควรอยู่ตรงไหน ทำให้นักพัฒนาไม่ต้องจัดลำดับสตาร์ตอัปเอง

Temporal composability คลายผลกระทบของปลั๊กอิน

Cordis ยังติดตามการลงทะเบียนต่างๆ เช่น event listener ส่วนของพรอมป์ต และสคีมาของเครื่องมือ การถอดปลั๊กอินจะถอดผลเหล่านั้นออกด้วย แทนที่จะทิ้ง listener กำพร้าไว้ ทั้งนี้ไม่ย้อนการกระทำภายนอก เช่นคำสั่งเชลล์; การย้อนกลับใช้ได้เฉพาะผลที่ Cordis ติดตาม

สถาปัตยกรรม DeepSeek Harness: รันไทม์ประกอบเข้าด้วยกันอย่างไร

อินสแตนซ์ที่รันอยู่คือโครงต้นไม้ของปลั๊กอินที่ประกอบจากการตั้งค่าที่โหลดตามลำดับ การตั้งค่าเหล่านั้นกำหนดว่าส่วนไหนทำงานอยู่

ไดอะแกรมสถาปัตยกรรม DeepSeek Harness แสดงผู้ใช้หรือแอปพลิเคชันเชื่อมต่อกับรันไทม์ที่ประกอบขึ้น โดยโมเดล ลูปเอเจนต์ เครื่องมือ เซสชัน สตอเรจ และแซนด์บ็อกซ์เชื่อมต่อผ่าน Cordis

Cordis เชื่อมปลั๊กอินรันไทม์ที่เปลี่ยนแทนกันได้ทุกตัว ภาพโดยผู้เขียน

บริการของ Cordis ทำให้ปลั๊กอินหาเจอกัน

Cordis จัดให้มีไดเรกทอรีบริการส่วนกลาง ปลั๊กอินใช้คีย์คงที่อย่าง ctx.tools, ctx.llm, และ ctx.sessions แทนการอิมพอร์ตโค้ดของผู้ให้บริการรายใดรายหนึ่ง เครื่องมือที่เรียก ctx.llm จึงไม่ต้องรู้ว่า adapter โมเดลตัวไหนอยู่ข้างหลัง

Agent preset และ runtime profile คุมคนละชั้น

แม้ทุกอย่างจะแทนที่ได้ ก็ยังต้องมีบางอย่างตัดสินว่าในการรันครั้งหนึ่งควรเมานต์อะไรบ้าง DeepSeek Harness ตอบเรื่องนี้สองชั้นที่สับกันได้ง่าย

สั้นๆ: โปรไฟล์คุมวิธีที่โปรแกรมสตาร์ต ส่วนพรีเซ็ตคุมสิ่งที่เอเจนต์ทำได้ ถ้าใช้เฉพาะเว็บแอป ข้ามสองหัวข้อถัดไปได้

Runtime profiles

โปรไฟล์รันไทม์ (web, headless, sdk, sdk-minimal และ acp มีมาเป็นเทมเพลต) ตัดสินว่าแอปเปิดอย่างไร และบันเดิลปลั๊กอินของ Cordis ชุดใดถูกวางซ้อนตอนบูต ผู้อ่านส่วนใหญ่จะยุ่งกับชั้นนี้แค่ตอนรัน dsh web หรือคำสั่งคล้ายกัน

Agent presets

พรีเซ็ตเอเจนต์ (Standard, PTC, Minimal หรือ Creator) ตัดสินว่าเซสชันที่ทำงานอยู่ใช้สิ่งใดได้ ไฟล์แพตช์สามารถเปลี่ยนพรีเซ็ตได้โดยไม่ต้องแตะซอร์สของ Harness

ลูปเอเจนต์ประสาน turn, step และการเรียกเครื่องมือ

DeepSeek แยก step ออกจาก turn โดย step คือคำขอโมเดลหนึ่งครั้งพร้อมการเรียกเครื่องมือของมัน ส่วน turn มีศูนย์ stepขึ้นไป: เปิดตั้งแต่ก่อนรับอินพุตแรกจนปิดเมื่อไม่มีสิ่งค้างอยู่ Turn ส่วนใหญ่จะมีหลาย step ก่อนเอเจนต์จะตอบได้ แต่อินพุตที่ถูกปฏิเสธอาจปิด turn ที่ไม่ใช้ step เลย

ไดอะแกรมลูปเอเจนต์แสดง user turn ที่มี model step หนึ่งขั้นหรือมากกว่า แต่ละขั้นตามด้วยการรันเครื่องมือแบบมีการ์ด

หนึ่ง turn อาจมีหลาย step ภาพโดยผู้เขียน

เซสชันใช้บันทึกเหตุการณ์แบบเติมอย่างเดียว

นี่คือส่วนที่สำคัญที่สุด เซสชันคือล็อกเหตุการณ์แบบมีชนิดและเติมอย่างเดียว ไม่ใช่อาร์เรย์ข้อความแชต Harness สร้างประวัติที่ส่งให้โมเดลจากล็อกนั้น และเอกสารเซสชันกำหนดให้สิ่งที่ส่งถึงโมเดลต้องสามารถกู้ออกมาจากล็อกได้

การทำงานต่อ แตกกิ่ง ค้นหา เล่นซ้ำ และมุมมอง Trajectory ล้วนสร้างบนสตรีมเหตุการณ์นี้

การสร้างประวัติใหม่ไม่ใช่การรันซ้ำแบบกำหนดได้แน่นอน เอาต์พุตของโมเดลและสถานะภายนอกอาจต่างกัน แต่ล็อกยังคงเป็นบันทึกที่ตรวจสอบสิ่งที่เกิดขึ้นได้

ไทม์ไลน์เหตุการณ์เซสชันแสดงข้อความผู้ใช้ เอาต์พุตผู้ช่วย การเรียกเครื่องมือ และผลลัพธ์ของเครื่องมือสะสมในล็อกแบบเติมอย่างเดียว

ประวัติเซสชันเป็นล็อกแบบเติมอย่างเดียว ภาพโดยผู้เขียน

DeepSeek Harness คุมเครื่องมือและแซนด์บ็อกซ์อย่างไร

โมเดลสามารถขอใช้เครื่องมือโดยระบุชื่อ แต่ไม่มีสิทธิ์รันโดยตรง ยังมีการควบคุมสองชั้นคั่นกลางระหว่างคำขอกับการเปลี่ยนแปลงระบบไฟล์

ไปป์ไลน์การรันเครื่องมือ

คำขอจะผ่านการตรวจนโยบาย การรัน และการจัดการผลลัพธ์ โมเดลเป็นผู้เลือกเครื่องมือ; รันไทม์เป็นผู้ตัดสินว่าจะรันอย่างไรและหรือไม่รัน

ไดอะแกรมไปป์ไลน์การรันเครื่องมือแบบมีการ์ด แสดงคำขอเครื่องมือของโมเดลผ่านการตรวจนโยบายก่อนรัน การรัน และการประมวลผลผลลัพธ์ ก่อนส่งกลับสู่โมเดล

รันไทม์ตัดสินว่าเครื่องมือรันอย่างไร ภาพโดยผู้เขียน

แซนด์บ็อกซ์เทียบกับการขออนุมัติ

  • การขออนุมัติ คือถามว่าผู้ใช้ควรยืนยันการกระทำนั้นหรือไม่ 
  • แซนด์บ็อกซ์ จำกัดตำแหน่งและวิธีการรัน 

DeepSeek แยกสองอย่างนี้ออกจากกัน แม้ว่า preset ของสิทธิอนุญาตจะบันเดิลการควบคุมทั้งคู่ไว้ คล้ายกับที่รันไทม์คอนเทนเนอร์แยกสิทธิ์ของโปรเซสออกจากขอบเขตการรัน

ควรเน้นไว้ตั้งแต่ตอนนี้ เพราะจะกลับมาที่ส่วนข้อจำกัด: การบอกโมเดลใน system prompt ให้ "อ่านไฟล์เท่านั้น" เป็นเพียงคำแนะนำที่มันอาจทำตาม ไม่ใช่ขอบเขตที่บังคับเหมือนข้อจำกัดแซนด์บ็อกซ์ระดับ OS

โหมดของ DeepSeek Harness: Standard, PTC, Minimal และ Creator

DeepSeek Harness มีให้เลือกสี่โหมด ไม่มีโหมดใด "ดีกว่า" โหมดอื่น ทั้งสี่ตอบคำถามว่า "ควรเปิดเผยรันไทม์ให้เซสชันนี้แค่ไหน" และคำตอบที่เหมาะขึ้นกับงาน ตามที่ส่วนสถาปัตยกรรมชี้ให้เห็น แต่ละโหมดเปลี่ยนชุดเครื่องมือที่เอเจนต์เข้าถึงได้

ชาร์ตเปรียบเทียบสี่โหมดของ DeepSeek Harness แสดงพื้นผิวเครื่องมือและวัตถุประสงค์ของโหมด Standard, PTC, Minimal และ Creator เคียงกัน

สี่โหมดใช้ฐานรันไทม์เดียวกัน ภาพโดยผู้เขียน

โหมด Standard

ค่าพื้นฐานอเนกประสงค์: 

  • แก้ไขไฟล์
  • เข้าถึงเชลล์
  • ค้นหาไฟล์และเว็บ
  • สกิล
  • การวางแผน
  • เป้าหมาย
  • ซับเอเจนต์
  • เวิร์กโฟลว์

สำหรับงานกับรีโปทั่วไป โหมดนี้เป็นจุดเริ่มต้นที่แนะนำ

โหมด PTC

โหมด PTC เก็บชุดเครื่องมือแทบทั้งหมดของ Standard แต่เปลี่ยนวิธีที่โมเดลเข้าถึง (ตั้งแต่เวอร์ชัน 0.1.2 เว็บโหมด PTC ไม่เปิดเครื่องมืออเนกประสงค์ workflow โดยค่าเริ่มต้น)

แทนที่จะร้องขอเครื่องมือทีละตัวข้ามหลาย step ของโมเดล โมเดลจะเขียนโปรแกรมกับ SDK ที่สร้างขึ้น โปรแกรมนั้นเรียกเครื่องมือหลายตัวผ่าน run_code ได้ ทุกการเรียกยังคงผ่านการตรวจนโยบายแบบเดียวกัน ดังนั้น PTC เปลี่ยนวิธีที่โมเดลระบุแผน ไม่ใช่สิ่งที่อนุญาตให้ทำ

หน้าโปรดักต์ยังใช้ป้าย "Code mode" แต่รีลีสทางการรุ่นใหม่เปลี่ยนชื่อเป็น PTC โดยคงความสามารถอ่านบทสนทนาเก่าไว้ บทความนี้จะใช้คำว่า PTC ตลอด; ส่วนคำถามที่พบบ่อยจะกลับมาว่าอักษรย่อนี้อาจหมายถึงอะไร

โหมด Minimal

โหมด Minimal ตัดสภาพแวดล้อมให้เหลือสองเครื่องมือ: เชลล์แบบคงอยู่และตัวแก้ไขไฟล์ที่แทนที่สตริง DeepSeek ใช้สำหรับเบนช์มาร์กโมเดล เพราะผลทดสอบขึ้นกับ harness ของโมเดลด้วย ไม่ใช่น้ำหนักโมเดลอย่างเดียว

โหมด Creator

โหมด Creator ให้ผู้พัฒนาสำรวจรันไทม์และทดสอบปลั๊กอิน Cordis ในหน่วยความจำ ใช้สำหรับสร้างพรีเซ็ต และไม่ถือว่าเป็นการพัฒนาตัวเองในความหมายที่ลึกกว่านั้น

อะไรทำให้ DeepSeek Harness ต่างจากเฟรมเวิร์กเอเจนต์อื่น

DeepSeek Harness ต่างจากหลายเฟรมเวิร์กเอเจนต์ตรงที่ทำให้ส่วนล่างของรันไทม์เปลี่ยนแทนได้ เกือบจะรวมไว้ในส่วนสถาปัตยกรรมแล้ว แต่ความแตกต่างนี้มองข้ามได้ง่าย Cordis จัดการการเปลี่ยนแปลงเหล่านั้นผ่านระบบปลั๊กอินเดียว

คุณเปลี่ยนวิธีการทำงานของเอเจนต์ได้ ไม่ใช่แค่เครื่องมือที่มันเรียกได้ บันทึกเหตุการณ์ยังทำให้การรันตรวจสอบได้ แทนที่จะอ่านได้แค่ทรานสคริปต์แชต จากนั้นโหมด Minimal และ Creator เปิดให้ทดสอบรันไทม์จากสองทิศทางตรงข้าม

DeepSeek Harness เทียบกับ Claude Code, Codex และ OpenCode

ตารางฟีเจอร์อาจพลาดประเด็น แต่ละคู่แข่งรองรับการขยาย; คำถามที่เป็นประโยชน์คือส่วนไหนที่นักพัฒนาจะเปลี่ยนได้ ความต่างเหมือนเล็กน้อย แต่ไม่ใช่ บทความเทียบ Harness กับ Claude Code โดยเฉพาะของเราใช้โมเดลเดียวกันทั้งคู่และครอบคลุมการตั้งค่า ล็อก และต้นทุน

DeepSeek Harness เทียบกับ Claude Code

Claude Code รองรับคำสั่งโครงการ สกิล ฮุก MCP ซับเอเจนต์ และ Agent SDK และคงลูปภายในไว้คงที่ ขณะที่ DeepSeek Harness เปิดให้ผู้พัฒนาแทนที่ลูป ตัวปรับแต่งโมเดล และเลเยอร์สตอเรจผ่านการตั้งค่า

DeepSeek Harness เทียบกับ Codex

Codex ต้องเทียบอย่างระมัดระวังยิ่งขึ้น เพราะ CLI และ App Server ก็เป็นโอเพนซอร์ซเช่นกัน มันให้อะไรที่คล้าย agent harness ซึ่งขยายได้ผ่านจุดทางเข้า (entry point) ที่มีเอกสารกำกับ ส่วน DeepSeek Harness ถูกออกแบบรอบการเปลี่ยนรันไทม์เอง ระดับการควบคุมจึงต่างกัน

DeepSeek Harness เทียบกับ OpenCode

OpenCode เป็นโอเพนซอร์ซอยู่แล้ว ทำงานกับผู้ให้บริการโมเดลหลายราย และใช้สถาปัตยกรรมแบบไคลเอนต์-เซิร์ฟเวอร์ คุณปรับแต่งเครื่องมือ สิทธิ์ เซสชัน และผู้ให้บริการได้ ปลั๊กอินของมันขยายแกนเซิร์ฟเวอร์ที่คงที่ ในขณะที่ DeepSeek เปิดให้ลูปและที่เก็บเซสชันเปลี่ยนแทนได้ด้วย

เมื่อไหร่ควรใช้ DeepSeek Harness

การแทนที่ส่วนต่างๆ ของรันไทม์ไม่ใช่ประโยชน์ในตัวเอง การควบคุมที่เพิ่มขึ้นจะสำคัญก็ต่อเมื่อแก้ปัญหาที่มีอยู่จริงของคุณ

  • เมื่อรันไทม์เองเป็นส่วนหนึ่งของโครงการ หากกำลังปรับแต่งตัวปรับแต่งโมเดล ลูปเอเจนต์ สตอเรจ หรือพฤติกรรมเซสชัน ไม่ใช่แค่สร้างบนเอเจนต์ที่มีอยู่ แบบนี้เหมาะกว่า
  • เมื่อต้องการเปรียบเทียบโมเดลในสภาพควบคุม การใช้รันไทม์เดียวกันทำให้ตัวแปรทดสอบคงที่มากขึ้นเมื่อสลับโมเดล แม้โมเดลยังต่างกันได้ทั้งการใช้เครื่องมือและสไตล์การให้เหตุผล
  • เมื่อต้องการดีบักการรันที่ซับซ้อน บันทึกเหตุการณ์เซสชันและมุมมอง Trajectory ทำให้ง่ายขึ้นในการสร้างสิ่งที่โมเดลเห็นและเครื่องมือที่ถูกรัน
  • เมื่อต้องทดสอบภายในของเอเจนต์ โหมด Creator และ Cordis เหมาะกับนักพัฒนาที่ศึกษาโครงสร้างภายในของเอเจนต์ มากกว่าผู้ที่แค่ต้องการโค้ดแอปพลิเคชัน

อาจไม่จำเป็นสำหรับการเรียกโมเดลแบบง่ายหรือทีมที่ต้องการเอเจนต์เขียนโค้ดสำเร็จรูปโดยไม่ต้องแตะภายใน การแทนที่ส่วนต่างๆ มากขึ้นคุ้มค่าเมื่อการควบคุมนั้นแก้ปัญหาจริงเท่านั้น

ข้อจำกัดของ DeepSeek Harness: สถานะตัวอย่างสำหรับนักพัฒนาและความเสี่ยงด้านความปลอดภัย

สถาปัตยกรรมทั้งหมดข้างต้นไม่สำคัญนัก หากไม่มีคำอธิบายชัดเจนว่าปัจจุบันยังขาดตรงไหน

ยังคงเป็นตัวอย่างสำหรับนักพัฒนา

ที่เก็บของ DeepSeek ระบุชัดว่าจะมีการเปลี่ยนแปลงแบบ breaking ซึ่งเกิดขึ้นแล้ว: การเปลี่ยนชื่อ Code เป็น PTC มาพร้อมการเปลี่ยน API ของเซสชันและการถอดตัวเลือกสตอเรจ SQLite ที่เป็นออปชัน ปักเวอร์ชันของคุณไว้ การข้ามขั้นตอนนี้แล้วหวังว่าการตั้งค่าจะนิ่งไม่ใช่แนวทาง

การควบคุมมากขึ้นก็มาพร้อมความซับซ้อนมากขึ้น

การทำให้ส่วนต่างๆ ของรันไทม์แทนที่ได้มากขึ้น แปลว่าให้นักพัฒนาต้องเรียนรู้มากขึ้น: การพึ่งพาของปลั๊กอิน การตั้งค่า ความต่างของผู้ให้บริการ และความเข้ากันได้ของเวอร์ชัน นี่คือสมการแลกระหว่างความสะดวกกับการควบคุมตามปกติ

DeepSeek Harness เป็นแบบโลคัลหรือไม่?

DeepSeek Harness เก็บเนื้อหาเซสชัน บันทึกเครื่องมือ และการตั้งค่าไว้ในเครื่องตามค่าเริ่มต้น ตาม คำแถลงการประมวลผลข้อมูล คุณปิดรายงานแบบไม่ระบุตัวตนเกี่ยวกับการตั้งค่าและรายการโปรเจกต์ได้ 

แต่ผู้ให้บริการโมเดลภายนอก เครื่องมือเว็บ เซิร์ฟเวอร์ MCP หรือปลั๊กอิน ยังอาจส่งข้อมูลออกนอกเครื่องของคุณตามนโยบายของตนเอง "เน้นโลคัลก่อน" ไม่ครอบคลุมทุกบริการที่คุณเชื่อมต่อ

การรันเอเจนต์มีความเสี่ยงด้านความปลอดภัย

รันไทม์ที่แก้ไขไฟล์ รันคำสั่ง และโหลดปลั๊กอินของบุคคลที่สามได้ อาจก่อความเสียหายจริง เอกสารความปลอดภัยของ DeepSeek ระบุว่าโครงการยังไม่ผ่านการตรวจสอบความปลอดภัย แซนด์บ็อกซ์ การขออนุมัติ และการควบคุมสิทธิช่วยลดความเสี่ยง แต่ไม่การันตีการแยกอย่างสมบูรณ์

การรันซอฟต์แวร์บนเครื่องเองไม่ลบความเสี่ยงนั้น ใช้สิทธิ์จำกัดและสภาพแวดล้อมที่ทิ้งได้สำหรับงานที่ไม่ไว้วางใจ และระวังเนื้อหาที่อาจมีคำสั่งซ่อนอยู่

เหตุใดพฤติกรรมเอเจนต์จึงขึ้นกับมากกว่าแค่โมเดล

พฤติกรรมของเอเจนต์ ขึ้นกับรันไทม์ควบคู่ไปกับโมเดล กลับมาที่แนวคิด "Agent = Model + Harness" และการแยกแบบเดียวกันนี้ใช้กับเอเจนต์ LLM นอกเหนือ DeepSeek

สิ่งที่โมเดลสร้างได้ขึ้นกับน้ำหนักของมัน สิ่งที่เอเจนต์ทำได้ยังขึ้นกับบริบทใดถูกส่งถึงโมเดล การกระทำใดอนุญาตให้ทำ และการบังคับกรอบการรันแน่นเพียงใด ซึ่งไม่มีอยู่ในน้ำหนักโมเดล

DeepSeek Harness ทำให้เลเยอร์โดยรอบนั้นเด่นชัดขึ้นโดยแยกเป็นชิ้นส่วนที่ตั้งชื่อได้และเปลี่ยนแทนได้ โหมด Minimal แสดงให้เห็นว่าทำไมสิ่งนี้จึงสำคัญเกิน DeepSeek: คะแนนเบนช์มาร์กสะท้อน harness ที่ใช้ทดสอบด้วย ไม่ใช่แค่โมเดล Harness ไม่ได้ทำให้โมเดลฉลาดขึ้น แต่มันเปลี่ยนฉากที่โมเดลทำงาน

สรุป

ประโยคเปิดเรื่องคือสิ่งที่ควรจำ: โมเดลทำหน้าที่ให้เหตุผล แต่รันไทม์ตัดสินว่าเหตุผลนั้นเอื้อมถึงอะไรและทำอะไรได้ DeepSeek Harness ทำให้รันไทม์นั้นแก้ไขได้ ตั้งแต่ตัวปรับแต่งโมเดลและเครื่องมือไปจนถึงที่เก็บเซสชันและลูปเอเจนต์

การควบคุมนั้นก็มาพร้อมต้นทุน การแทนที่ส่วนต่างๆ ของรันไทม์มากขึ้น หมายถึงต้องรับผิดชอบการตั้งค่า การเปลี่ยนเวอร์ชัน และขอบเขตความปลอดภัยมากขึ้น ซอฟต์แวร์สถานะตัวอย่างพร้อมสิทธิ์เชลล์ไม่ใช่สิ่งที่จะติดตั้งแล้วลืม

มุมมองง่ายๆ คือ: ใช้ DeepSeek Harness เมื่อรันไทม์เองเป็นส่วนหนึ่งของงาน หากต้องการแค่แก้ไขรีโป เอเจนต์เขียนโค้ดสำเร็จรูปจะเรียกร้องจากคุณน้อยกว่า

ดูรายละเอียดการติดตั้งได้ที่คู่มือ DeepSeek Harness คู่มือ ทางเลือกของ Claude Code เปรียบเทียบเอเจนต์เขียนโค้ดอื่นๆ และ Introduction to AI Agents ครอบคลุมพื้นฐานที่บทความนี้ตั้งต้นไว้

คำถามที่พบบ่อยเกี่ยวกับ DeepSeek Harness

DeepSeek Harness คืออย่างเดียวกับโมเดลของ DeepSeek หรือไม่?

ไม่ใช่ โมเดลและรันไทม์เป็นคนละอย่าง Harness ไม่มีน้ำหนักโมเดลและไม่รันอินเฟอเรนซ์เอง; มันส่งคำขอไปยัง DeepSeek, Anthropic, OpenAI หรือ โมเดลโลคัลแทน

ใช้ DeepSeek Harness ฟรีหรือไม่?

ตัวซอฟต์แวร์ใช้ไลเซนส์ MIT และใช้ฟรี สิ่งที่ไม่ฟรีคือผู้ให้บริการโมเดลที่คุณเชื่อมต่อ เพราะคิดค่าบริการอินเฟอเรนซ์แยกต่างหากโดยผู้ให้บริการนั้น รวมถึงต้นทุนโครงสร้างพื้นฐานจากแซนด์บ็อกซ์หรือบริการภายนอกที่คุณเพิ่ม

จริงๆ แล้ว PTC ย่อมาจากอะไร?

บันทึกรีลีสของ DeepSeek ใช้คำว่า "โหมด PTC" โดยไม่ขยายความหมายตายตัว แม้พฤติกรรมจะสอดคล้องกับ "programmatic tool calling" ควรถือเป็นคำจำกัดความใช้งานชั่วคราว ไม่ใช่อักษรย่อที่ยืนยันแล้ว จนกว่า DeepSeek จะระบุโดยตรง

เชื่อใจให้ DeepSeek Harness ทำงานกับรีโปที่สำคัญได้หรือไม่?

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

คำว่า "ทุกอย่างคือปลั๊กอิน" หมายความว่าสร้างเป็นเอเจนต์แบบไหนก็ได้ตามใจหรือไม่?

ไม่เว้นจากงานวิศวกรรมจริง การแทนที่ตัวปรับแต่งโมเดลหรือลูปเอเจนต์ยังต้องมีปลั๊กอินที่ทำตามสัญญาบริการที่ถูกต้อง ระบบปลั๊กอินเปิดให้เข้าถึงส่วนต่างๆ มากขึ้น; แต่มิได้ทำให้งานหายไป

หัวข้อ
AI Agents
ปัญญาประดิษฐ์

เรียนรู้ Agentic AI กับ DataCamp!

Tracks

พื้นฐานของ AI Agent

6 ชม.
ค้นพบว่า AI agents สามารถเปลี่ยนวิธีการทำงานของคุณและสร้างคุณค่าให้กับองค์กรของคุณได้อย่างไร!
ดูรายละเอียดRight Arrow
เริ่มหลักสูตร
ดูเพิ่มเติมRight Arrow