วิธีรันโมเดลใดก็ได้ใน DeepSeek Harness

กำหนดค่าผู้ให้บริการโมเดลแบบกำหนดเองใน DeepSeek Harness: บล็อก settings.yaml ทีละคีย์, Ollama ในเครื่อง, DashScope แบบโฮสต์, ผู้ให้บริการแคตตาล็อก และการแก้ไข

Ashley Innocent

Ashley Innocent

20 August 2026

วิธีรันโมเดลใดก็ได้ใน DeepSeek Harness

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

DeepSeek Harness (dsh) มาพร้อมกับโมเดลของ DeepSeek ที่ติดตั้งมาให้แล้ว แต่คุณก็ไม่ได้ถูกจำกัดอยู่กับโมเดลเหล่านั้น Harness ปฏิบัติต่อผู้ให้บริการโมเดลเสมือนเป็นส่วนหนึ่งของการตั้งค่า: เพียงแค่ชี้บล็อกผู้ให้บริการไปยังปลายทางที่เข้ากันได้กับ OpenAI ส่งข้อมูลอ้างอิงของข้อมูลรับรองให้ แล้วเซสชันของเอเจนต์ของคุณก็จะทำงานบนโมเดลใดก็ตามที่อยู่เบื้องหลัง URL นั้น ไม่ว่าจะเป็นอินสแตนซ์ Ollama ในเครื่อง, เกตเวย์ของบริษัท, Qwen ผ่านโหมดที่เข้ากันได้ของ DashScope, หรือผู้ให้บริการแค็ตตาล็อกรายใหญ่เช่น Anthropic และ OpenAI ก็สามารถเสียบเข้ากับบล็อกเดียวกันได้ทั้งหมด

คู่มือนี้จะอธิบายบล็อกนั้นทีละคีย์ จากนั้นสร้างสูตรการทำงานสามแบบ: โมเดลในเครื่อง, ปลายทางที่เข้ากันได้กับ OpenAI ที่โฮสต์อยู่, และผู้ให้บริการแค็ตตาล็อกที่มาพร้อมเครื่อง ทุกสิ่งที่อ้างอิงในที่นี้มาจาก คู่มือผู้ให้บริการ อย่างเป็นทางการบน master branch ที่ดึงมาเมื่อวันที่ 20 สิงหาคม 2026 ข้อควรระวังประการแรก: dsh เป็นเวอร์ชันพรีวิวสำหรับนักพัฒนา และ README เตือนด้วยตัวพิมพ์ใหญ่ทั้งหมดว่าอาจมีการเปลี่ยนแปลงที่ทำให้ไม่เข้ากันได้ ตรวจสอบเอกสารกับเวอร์ชันที่คุณติดตั้งก่อนที่จะนำไปใช้ในการผลิตจริง

button

หากคุณยังใหม่กับ harness เอง ให้เริ่มต้นด้วย DeepSeek Harness คืออะไรและทำงานอย่างไร จากนั้นกลับมาที่นี่เพื่อดูรายละเอียดการเชื่อมต่อผู้ให้บริการ

ทำไมต้องเปลี่ยนโมเดลใน agent harness เลย

Agent harness คือวงจร: โมเดลวางแผน, เรียกใช้เครื่องมือ, อ่านผลลัพธ์, และทำซ้ำ Harness เป็นเจ้าของวงจร; โมเดลเป็นส่วนประกอบ มีสามเหตุผลที่คุณจะเปลี่ยนส่วนประกอบ:

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

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

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

การออกแบบเป็นไปตามสถาปัตยกรรมของ dsh: ทุกอย่างใน harness เป็นปลั๊กอิน และอะแดปเตอร์โมเดลเป็นหนึ่งในชิ้นส่วนที่สามารถเปลี่ยนได้ เส้นทางผู้ให้บริการเป็นของปลั๊กอิน dsh-llm-pi-ai ซึ่งได้รับการบันทึกไว้ใน แค็ตตาล็อกการกำหนดค่าปลั๊กอิน ของ repo ว่าเป็น "เส้นทางผู้ให้บริการที่อินสแตนซ์นี้เป็นเจ้าของ" นั่นคือกลไก ส่วนที่ผู้ใช้เห็นคือบล็อก YAML เดียว

บล็อกผู้ให้บริการ ทีละคีย์

ผู้ให้บริการแบบกำหนดเองจะอยู่ใน $DSH_HOME/settings.yaml และคุณยังสามารถสร้างได้จาก UI บนเว็บภายใต้ Settings → Models นี่คือตัวอย่างจากเอกสารอย่างเป็นทางการโดยตรง:

llm-pi-ai:
  providers:
    my-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://gateway.example/v1
      models:
        - id: legacy-chat
        - id: vision-preview
          input: [text, image]

แต่ละคีย์ทำหน้าที่อะไรบ้าง:

ความสะดวกอย่างหนึ่งที่ควรทราบ: เมื่อคุณเพิ่มผู้ให้บริการแบบกำหนดเองผ่าน UI บนเว็บ ตัวเลือก "Fetch available models" จะสอบถามเส้นทาง GET /models ที่เข้ากันได้กับ OpenAI ของปลายทางและเติมรายการโมเดลให้คุณ หากปลายทางของคุณใช้งานเส้นทางนั้น คุณก็ไม่ต้องพิมพ์เอง

คีย์ API จริงอยู่ที่ไหน

ความลับจะถูกเก็บไว้แบบเขียนอย่างเดียวใน $DSH_HOME/.credentials.yaml หลังจากที่คุณบันทึกคีย์ผ่าน UI แล้ว dsh จะคืนค่าเพียงตัวอธิบายที่ถูกปิดบังไว้; ค่าที่แท้จริงจะไม่แสดงอีก settings.yaml เก็บการอ้างอิง (ชื่อ apiKeyEnv, ตัวอธิบายข้อมูลรับรอง) ไม่ใช่คีย์ด้วยตัวมันเอง การแบ่งแยกนี้หมายความว่าคุณสามารถ commit หรือแชร์ไฟล์การตั้งค่าได้โดยไม่มีข้อมูลรั่วไหล และสามารถหมุนเวียนคีย์ได้โดยไม่ต้องแตะการกำหนดค่าผู้ให้บริการ

สูตรที่ 1: รันโมเดลในเครื่องผ่าน Ollama

Ollama เปิดเผย API ที่เข้ากันได้กับ OpenAI ที่ http://localhost:11434/v1 ซึ่ง Ollama ได้บันทึกไว้ใน คู่มือความเข้ากันได้กับ OpenAI ของตนเอง เนื่องจาก dsh สื่อสาร openai-completions ไปยัง baseURL ใดๆ การจับคู่จึงตรงไปตรงมา

[ตรวจสอบ: เอกสาร dsh ไม่ได้แสดงตัวอย่างเฉพาะของ Ollama; สูตรนี้ใช้ schema ของผู้ให้บริการแบบกำหนดเองที่บันทึกไว้กับปลายทางที่เข้ากันได้กับ OpenAI ที่บันทึกไว้ของ Ollama โปรดทดสอบบนการติดตั้งของคุณก่อนเผยแพร่ภายใน]

llm-pi-ai:
  providers:
    ollama-local:
      apiKeyEnv: OLLAMA_API_KEY
      api: openai-completions
      baseURL: http://localhost:11434/v1
      models:
        - id: gpt-oss:20b
        - id: qwen3

ข้อควรทราบเกี่ยวกับตัวอย่างนี้:

การตรวจสอบอย่างรวดเร็วจะช่วยประหยัดเวลาจากเซสชันเอเจนต์ที่สับสน: ลองเรียก http://localhost:11434/v1/models ใน Apidog ก่อนที่จะแตะการตั้งค่า dsh หากคำขอนั้นส่งคืนรายการโมเดลของคุณ แสดงว่า baseURL ถูกต้อง, เซิร์ฟเวอร์ทำงานอยู่, และ "Fetch available models" ใน dsh UI ก็จะใช้งานได้เช่นกัน หากไม่ได้ผล ไม่ว่าคุณจะกำหนดค่า harness อย่างไรก็จะไม่สามารถแก้ไขได้

การจัดการความคาดหวัง: agent harnesses พึ่งพาการเรียกเครื่องมือและบริบทที่ยาวนานอย่างมาก โมเดลขนาดเล็กในเครื่องจะจัดการวงจรสำหรับการทดสอบ แต่จะวางแผนได้แย่ลงและยกเลิกการเรียกเครื่องมือบ่อยกว่าโมเดลแนวหน้าที่ harness ถูกสร้างขึ้นมา นั่นเป็นสิ่งที่ดีสำหรับการพัฒนาปลั๊กอิน; แต่มันน่าหงุดหงิดสำหรับงานจริง

สูตรที่ 2: ปลายทางที่เข้ากันได้กับ OpenAI ที่โฮสต์ (Qwen ผ่าน DashScope)

สำหรับตัวอย่างที่โฮสต์ ให้เลือกผู้ให้บริการที่บันทึกความเข้ากันได้กับ OpenAI ของตนเอง แทนที่จะเป็นผู้ให้บริการที่คุณคิดว่ามี Alibaba Cloud Model Studio (DashScope) ก็ทำเช่นนั้น: หน้าความเข้ากันได้กับ OpenAI ของพวกเขาบันทึกปลายทาง /compatible-mode/v1 สำหรับโมเดล Qwen พร้อมด้วยโดเมนเฉพาะภูมิภาคและพื้นที่ทำงาน (สำหรับสิงคโปร์: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1) และการตรวจสอบสิทธิ์ผ่านตัวแปรสภาพแวดล้อม DASHSCOPE_API_KEY

เมื่อแมปเข้ากับ schema ของ dsh:

llm-pi-ai:
  providers:
    qwen-dashscope:
      apiKeyEnv: DASHSCOPE_API_KEY
      api: openai-completions
      baseURL: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1
      models:
        - id: qwen3-max

แทนที่ {WorkspaceId} ด้วยโดเมนพื้นที่ทำงานจริงของคุณจากคอนโซล Model Studio และตรวจสอบรายการโมเดลของผู้จำหน่ายสำหรับ ID ปัจจุบัน; เรามีสรุปโมเดลชั้นนำใน คู่มือ API ของ Qwen 3.8 รูปแบบเดียวกันนี้สามารถขยายไปยังผู้จำหน่ายใดๆ ที่มีเอกสารความเข้ากันได้กับ OpenAI: Kimi API ของ Moonshot, OpenRouter, การติดตั้ง vLLM, หรือเกตเวย์ภายในบริษัทของคุณ ส่วนที่เปลี่ยนแปลงมีเพียง baseURL, ชื่อตัวแปร env, และ ID โมเดล หากคุณได้กำหนดค่า โมเดลโอเพนซอร์สใน Codex คุณจะรู้สึกคุ้นเคย; บล็อก YAML ของ dsh มีบทบาทเดียวกันกับ config model_providers ของ Codex

เฉพาะปลายทางที่โฮสต์สองอย่าง:

สูตรที่ 3: ผู้ให้บริการแค็ตตาล็อกในตัว

คุณไม่จำเป็นต้องมีบล็อกแบบกำหนดเองสำหรับคลาวด์กระแสหลัก dsh มีผู้ให้บริการแค็ตตาล็อกสำหรับ DeepSeek, Anthropic และ OpenAI ซึ่งการตั้งค่าส่วนใหญ่คือ "วางคีย์ API" รายการแค็ตตาล็อกพิเศษมีขั้นตอนการตรวจสอบสิทธิ์แบบเนทีฟของตนเอง: Bedrock ใช้ข้อมูลรับรอง AWS, Vertex ต้องการโปรเจกต์ ADC, Azure ต้องการ api-version, และ Codex ตรวจสอบสิทธิ์ผ่าน OAuth

ผู้ให้บริการแค็ตตาล็อกเป็นเส้นทางที่มีแรงเสียดทานต่ำเมื่อคุณต้องการเพียงแค่ Claude หรือ GPT อยู่เบื้องหลัง harness และเป็นวิธีที่คนส่วนใหญ่จะใช้ DeepSeek V4-Pro ซึ่งเปิดตัว API ในเดือนสิงหาคม 2026 พร้อมกับ harness เอง (รายละเอียดที่ api-docs.deepseek.com) ผู้ให้บริการแบบกำหนดเองมีไว้สำหรับทุกสิ่งที่แค็ตตาล็อกไม่ครอบคลุม: รันไทม์ในเครื่อง, เกตเวย์, ผู้จำหน่ายระดับภูมิภาค, และตัวรวบรวมที่เข้ากันได้กับ OpenAI

การเลือกโมเดลและสิ่งที่เซสชันจดจำ

การเพิ่มผู้ให้บริการทำให้โมเดลของมันพร้อมใช้งาน; การเลือกโมเดลใน Settings → Models ทำให้เป็นค่าเริ่มต้นสำหรับเซสชันใหม่ พฤติกรรมสองอย่างจากเอกสารที่ควรทำความเข้าใจ:

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

การปักหมุดเซสชันนั้นสำคัญต่อความสามารถในการทำซ้ำ: เมื่อคุณเปรียบเทียบ dsh กับ harness อื่นๆ (เราได้ทำเช่นนั้นใน DeepSeek Harness vs Claude Code) คุณสามารถเชื่อมั่นได้ว่าบันทึกการสนทนาของเซสชันสะท้อนถึงโมเดลเดียว ไม่ใช่การสลับกลางทาง

การแก้ไขปัญหาความล้มเหลวที่พบบ่อย

baseURL ผิดหรือไม่สามารถเข้าถึงได้ ความล้มเหลวที่พบบ่อยที่สุดคือสิ่งที่คาดไม่ถึงน้อยที่สุด ยืนยันว่า URL ลงท้ายตรงตามที่โปรโตคอลคาดหวัง (โดยปกติคือ /v1 สำหรับปลายทางที่เข้ากันได้กับ OpenAI, /compatible-mode/v1 สำหรับ DashScope) และ GET {baseURL}/models แบบธรรมดาทำงานได้สำเร็จภายนอก harness นี่คือจุดตรวจสอบที่ ดาวน์โหลด Apidog สามารถช่วยคุณได้ในห้านาที: ส่งคำขอด้วยเฮดเดอร์เดียวกัน (Authorization: Bearer $KEY) ที่ harness จะส่ง และอ่านรหัสสถานะและเนื้อหาจริงแทนที่จะเป็นข้อผิดพลาดของ harness ที่ถูกห่อหุ้ม หากคุณกำลังพัฒนาแบบออฟไลน์หรือผู้จำหน่ายไม่เสถียร ให้จำลองการตอบกลับ /models และ /chat/completions ของผู้ให้บริการใน Apidog และชี้ baseURL ไปยัง mock ในขณะที่คุณสร้าง

ตัวแปรสภาพแวดล้อมหายไปหรือว่างเปล่า apiKeyEnv ตั้งชื่อตัวแปร; มันไม่ได้สร้างตัวแปรนั้น หากตัวแปรไม่ได้ถูกตั้งค่าในสภาพแวดล้อมที่ dsh ทำงานจริง คำขอจะถูกส่งออกไปโดยไม่มีการตรวจสอบสิทธิ์และกลับมาเป็น 401 โปรดจำไว้ว่ากระบวนการที่เปิดจาก GUI หรือตัวจัดการบริการอาจไม่ได้รับโปรไฟล์ shell ของคุณ echo $GATEWAY_API_KEY ในบริบทเดียวกันที่เปิดใช้ dsh web ไม่ใช่แค่ในเทอร์มินัลแบบสุ่ม

ความไม่ตรงกันของรูปแบบอินพุต คุณแนบรูปภาพ แต่โมเดลไม่เห็น หรือคำขอเกิดข้อผิดพลาด โมเดลที่กำหนดเองจะเป็นแบบข้อความเท่านั้นโดยค่าเริ่มต้น เพิ่ม input: [text, image] ในรายการโมเดล หรือตั้งค่า defaultInput ที่ระดับเส้นทางหากทุกโมเดลบนผู้ให้บริการจัดการรูปภาพได้

ความแปลกประหลาดของโปรโตคอล ข้อผิดพลาดที่กล่าวถึงบทบาทที่ไม่รองรับหรือพารามิเตอร์โทเค็นที่ถูกปฏิเสธชี้ไปที่สวิตช์ความเข้ากันได้: supportsDeveloperRole: false และ maxTokensField: max_tokens เป็นสองสิ่งที่ได้รับการบันทึกไว้

ทุกอย่างทำงานได้เมื่อวานนี้ เวอร์ชันพรีวิวสำหรับนักพัฒนา ปักหมุดเวอร์ชันที่คุณติดตั้ง อ่านบันทึกการเผยแพร่ก่อนอัปเกรด และคาดว่า schema การตั้งค่าอาจมีการเปลี่ยนแปลง repo deepseek-harness คือแหล่งข้อมูลที่ถูกต้อง ไม่ใช่บล็อกโพสต์ใดๆ รวมถึงบล็อกโพสต์นี้ด้วย

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

คำถามที่พบบ่อย

DeepSeek Harness รองรับ Ollama อย่างเป็นทางการหรือไม่?

เอกสารผู้ให้บริการอย่างเป็นทางการไม่ได้กล่าวถึง Ollama โดยตรง สิ่งที่รองรับคือปลายทางใดๆ ที่ใช้โปรโตคอล openai-completions และ Ollama มีเอกสาร API ที่เข้ากันได้กับ OpenAI ที่ http://localhost:11434/v1 สูตรข้างต้นเป็นการรวมสองส่วนที่บันทึกไว้; โปรดทดสอบบนการติดตั้งของคุณ เนื่องจาก dsh เป็นเวอร์ชันพรีวิวสำหรับนักพัฒนาและ schemas อาจเปลี่ยนแปลงระหว่างการเผยแพร่

dsh เก็บ API key ของฉันไว้ที่ไหน?

ใน $DSH_HOME/.credentials.yaml แบบเขียนอย่างเดียว UI จะแสดงตัวอธิบายที่ถูกปิดบังหลังจากบันทึก และ settings.yaml จะเก็บเพียงการอ้างอิงเช่นชื่อ apiKeyEnv คุณจะไม่มีคีย์ที่เป็นข้อความธรรมดาอยู่ในไฟล์กำหนดค่าผู้ให้บริการของคุณ

ฉันสามารถรันโมเดลที่แตกต่างกันสำหรับแต่ละเซสชันได้หรือไม่?

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

ปลายทางแบบกำหนดเองของฉันคืนค่าข้อผิดพลาดที่คำขอเดียวกันนี้ไม่เกิดขึ้นใน curl ต้องทำอย่างไร?

เปรียบเทียบเพย์โหลดที่แน่นอน Harness อาจส่งบทบาท developer หรือฟิลด์จำกัดโทเค็นที่ใหม่กว่าที่แบ็คเอนด์ของคุณไม่ยอมรับ; การแก้ไขที่บันทึกไว้คือ supportsDeveloperRole: false และ maxTokensField: max_tokens ภายใต้ compat การเรียกซ้ำคำขอในรูปแบบ harness ในไคลเอ็นต์ API จะแสดงให้คุณเห็นว่าฟิลด์ใดที่แบ็คเอนด์ไม่รับ

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API