Gateway

โมเดลภายในเครื่อง

โมเดลภายในเครื่องใช้งานได้ แต่ต้องการฮาร์ดแวร์ ขนาดบริบท และการป้องกันการแทรกพรอมป์ที่สูงขึ้น โมเดลขนาดเล็กหรือที่ถูกควอนไทซ์อย่างมากจะตัดบริบทและข้ามตัวกรองความปลอดภัยฝั่งผู้ให้บริการ หน้านี้ครอบคลุมสแต็กภายในเครื่องระดับสูงและเซิร์ฟเวอร์แบบกำหนดเองที่เข้ากันได้กับ OpenAI หากต้องการเส้นทางที่ยุ่งยากน้อยที่สุด ให้เริ่มด้วย LM Studio หรือ Ollama และ openclaw onboard

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

ข้อกำหนดฮาร์ดแวร์ขั้นต่ำ

เพื่อให้ลูปเอเจนต์ทำงานได้อย่างราบรื่น ควรใช้ Mac Studio ที่ติดตั้งสเปกสูงสุดอย่างน้อย 2 เครื่อง หรือชุด GPU ที่เทียบเท่า (~$30k+) GPU 24 GB เพียงตัวเดียวรองรับได้เฉพาะพรอมป์ที่เบากว่าโดยมีเวลาแฝงสูงขึ้น ควรเรียกใช้ รุ่นที่ใหญ่ที่สุด / ขนาดเต็มที่ระบบของคุณรองรับได้ เสมอ จุดตรวจสอบโมเดลขนาดเล็กหรือที่ถูกควอนไทซ์อย่างหนักจะเพิ่มความเสี่ยงจากการแทรกพรอมป์ (ดู ความปลอดภัย)

เลือกแบ็กเอนด์

แบ็กเอนด์ ใช้เมื่อ
ds4 ใช้ DeepSeek V4 Flash ภายในเครื่องบน macOS Metal พร้อมการเรียกเครื่องมือที่เข้ากันได้กับ OpenAI
LM Studio ตั้งค่าภายในเครื่องครั้งแรก ใช้ตัวโหลดแบบ GUI และ Responses API แบบเนทีฟ
LiteLLM / OAI-proxy / พร็อกซีแบบกำหนดเองที่เข้ากันได้กับ OpenAI คุณใช้พร็อกซีครอบ API ของโมเดลอื่นและต้องการให้ OpenClaw ปฏิบัติต่อโมเดลนั้นเสมือน OpenAI
MLX / vLLM / SGLang ให้บริการแบบโฮสต์เองที่มีปริมาณงานสูงผ่านปลายทาง HTTP ที่เข้ากันได้กับ OpenAI
Ollama เวิร์กโฟลว์ CLI คลังโมเดล และบริการ systemd ที่ไม่ต้องดูแลเอง

ใช้ api: "openai-responses" เมื่อแบ็กเอนด์รองรับ (LM Studio รองรับ) มิฉะนั้นให้ใช้ api: "openai-completions" หากละเว้น api ในผู้ให้บริการแบบกำหนดเองที่มี baseUrl OpenClaw จะใช้ค่าเริ่มต้นเป็น openai-completions

LM Studio + โมเดลภายในเครื่องขนาดใหญ่ (Responses API)

นี่คือสแต็กภายในเครื่องที่ดีที่สุดในปัจจุบัน โหลดโมเดลขนาดใหญ่ใน LM Studio (รุ่น Qwen, DeepSeek หรือ Llama ขนาดเต็ม) เปิดใช้เซิร์ฟเวอร์ภายในเครื่อง (ค่าเริ่มต้น http://127.0.0.1:1234) และใช้ Responses API เพื่อแยกการให้เหตุผลออกจากข้อความสุดท้าย

json5
{  agents: {    defaults: {      model: { primary: "lmstudio/my-local-model" },      models: {        "anthropic/claude-opus-4-6": { alias: "Opus" },        "lmstudio/my-local-model": { alias: "Local" },      },    },  },  models: {    mode: "merge",    providers: {      lmstudio: {        baseUrl: "http://127.0.0.1:1234/v1",        apiKey: "lmstudio",        api: "openai-responses",        models: [          {            id: "my-local-model",            name: "Local Model",            reasoning: false,            input: ["text"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 196608,            maxTokens: 8192,          },        ],      },    },  },}

รายการตรวจสอบการตั้งค่า:

  • ติดตั้ง LM Studio: https://lmstudio.ai
  • ดาวน์โหลด รุ่นโมเดลที่ใหญ่ที่สุดที่มี (หลีกเลี่ยงรุ่น "small"/ที่ถูกควอนไทซ์อย่างหนัก) เริ่มเซิร์ฟเวอร์ และยืนยันว่า http://127.0.0.1:1234/v1/models แสดงโมเดลดังกล่าว
  • แทนที่ my-local-model ด้วยรหัสโมเดลจริงที่แสดงใน LM Studio
  • โหลดโมเดลค้างไว้ การโหลดแบบเย็นจะเพิ่มเวลาแฝงขณะเริ่มต้น
  • ปรับ contextWindow/maxTokens หากรุ่น LM Studio ของคุณแตกต่างออกไป
  • สำหรับ WhatsApp ให้ใช้ Responses API เพื่อส่งเฉพาะข้อความสุดท้าย
  • คง models.mode: "merge" ไว้ เพื่อให้โมเดลที่โฮสต์ยังพร้อมใช้เป็นตัวสำรอง

การกำหนดค่าแบบไฮบริด: โมเดลที่โฮสต์เป็นโมเดลหลัก โมเดลภายในเครื่องเป็นตัวสำรอง

json5
{  agents: {    defaults: {      model: {        primary: "anthropic/claude-sonnet-4-6",        fallbacks: ["lmstudio/my-local-model", "anthropic/claude-opus-4-6"],      },      models: {        "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },        "lmstudio/my-local-model": { alias: "Local" },        "anthropic/claude-opus-4-6": { alias: "Opus" },      },    },  },  models: {    mode: "merge",    providers: {      lmstudio: {        baseUrl: "http://127.0.0.1:1234/v1",        apiKey: "lmstudio",        api: "openai-responses",        models: [          {            id: "my-local-model",            name: "Local Model",            reasoning: false,            input: ["text"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 196608,            maxTokens: 8192,          },        ],      },    },  },}

หากต้องการใช้โมเดลภายในเครื่องเป็นหลักและมีโมเดลที่โฮสต์เป็นระบบสำรองเพื่อความปลอดภัย ให้สลับลำดับ primary/fallbacks และคงบล็อก providers เดิมกับ models.mode: "merge" ไว้

การโฮสต์ตามภูมิภาค / การกำหนดเส้นทางข้อมูล

โมเดลย่อย MiniMax/Kimi/GLM ที่โฮสต์ยังมีให้ใช้งานบน OpenRouter พร้อมปลายทางที่ตรึงตามภูมิภาค (เช่น โฮสต์ในสหรัฐฯ) เลือกรุ่นตามภูมิภาคเพื่อให้การรับส่งข้อมูลอยู่ภายในเขตอำนาจศาลที่คุณเลือก พร้อมคง models.mode: "merge" สำหรับตัวสำรอง Anthropic/OpenAI การใช้ภายในเครื่องเท่านั้นยังคงเป็นแนวทางที่ให้ความเป็นส่วนตัวสูงสุด ส่วนการกำหนดเส้นทางไปยังบริการที่โฮสต์ตามภูมิภาคเป็นทางเลือกกึ่งกลางเมื่อคุณต้องการคุณสมบัติของผู้ให้บริการ แต่ยังต้องการควบคุมการไหลของข้อมูล

พร็อกซีภายในเครื่องอื่น ๆ ที่เข้ากันได้กับ OpenAI

MLX (mlx_lm.server), vLLM, SGLang, LiteLLM, OAI-proxy หรือ Gateway แบบกำหนดเองใด ๆ ใช้งานได้หากเปิดเผยปลายทาง /v1/chat/completions ในรูปแบบ OpenAI ใช้ openai-completions เว้นแต่เอกสารของแบ็กเอนด์จะระบุอย่างชัดเจนว่ารองรับ /v1/responses

json5
{  agents: {    defaults: {      model: { primary: "local/my-local-model" },    },  },  models: {    mode: "merge",    providers: {      local: {        baseUrl: "http://127.0.0.1:8000/v1",        apiKey: "sk-local",        api: "openai-completions",        timeoutSeconds: 300,        models: [          {            id: "my-local-model",            name: "Local Model",            reasoning: false,            input: ["text"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 120000,            maxTokens: 8192,          },        ],      },    },  },}

รายการผู้ให้บริการแบบกำหนดเอง/ภายในเครื่องจะเชื่อถือต้นทาง baseUrl ที่กำหนดค่าไว้อย่างตรงกันทุกประการสำหรับคำขอโมเดลที่มีการป้องกัน รวมถึงโฮสต์แบบลูปแบ็ก, LAN, tailnet และ DNS ส่วนตัว ต้นทางเมทาดาทา/ลิงก์โลคัลจะถูกบล็อกเสมอไม่ว่ากรณีใด คำขอไปยังต้นทางส่วนตัวอื่นยังคงต้องใช้ models.providers.<id>.request.allowPrivateNetwork: true ตั้งค่าสถานะความเชื่อถือเป็น false หากไม่ต้องการใช้ความเชื่อถือต้นทางที่ตรงกันทุกประการ

models.providers.<id>.models[].id เป็นค่าเฉพาะภายในผู้ให้บริการ อย่าใส่คำนำหน้าผู้ให้บริการ สำหรับเซิร์ฟเวอร์ MLX ที่เริ่มด้วย mlx_lm.server --model mlx-community/Qwen3-30B-A3B-6bit:

  • models.providers.mlx.models[].id: "mlx-community/Qwen3-30B-A3B-6bit"
  • agents.defaults.model.primary: "mlx/mlx-community/Qwen3-30B-A3B-6bit"

ตั้งค่า input: ["text", "image"] ในโมเดลวิชันภายในเครื่องหรือที่ผ่านพร็อกซี เพื่อให้ไฟล์แนบรูปภาพถูกแทรกลงในรอบการทำงานของเอเจนต์ การเริ่มต้นใช้งานผู้ให้บริการแบบกำหนดเองเชิงโต้ตอบจะอนุมานรหัสโมเดลวิชันทั่วไป และจะถามเฉพาะชื่อที่ไม่รู้จัก การเริ่มต้นใช้งานแบบไม่โต้ตอบใช้การอนุมานเดียวกัน โดยสามารถใช้ --custom-image-input / --custom-text-input เพื่อแทนที่ค่าได้

ใช้ models.providers.<id>.timeoutSeconds สำหรับเซิร์ฟเวอร์โมเดลภายในเครื่อง/ระยะไกลที่ทำงานช้า ก่อนเพิ่ม agents.defaults.timeoutSeconds ระยะหมดเวลาของผู้ให้บริการครอบคลุมการเชื่อมต่อ ส่วนหัว การสตรีมเนื้อหา และการยกเลิกการดึงข้อมูลแบบมีการป้องกันทั้งหมดสำหรับคำขอ HTTP ของโมเดลเท่านั้น หากระยะหมดเวลาของเอเจนต์/การทำงานต่ำกว่า ให้เพิ่มค่านั้นด้วย เนื่องจากระยะหมดเวลาของผู้ให้บริการไม่สามารถขยายเวลาการทำงานทั้งหมดได้

หมายเหตุเกี่ยวกับลักษณะการทำงานของแบ็กเอนด์ /v1 ภายในเครื่อง/ผ่านพร็อกซี:

  • OpenClaw ปฏิบัติต่อเส้นทางเหล่านี้เป็นเส้นทางที่เข้ากันได้กับ OpenAI ในรูปแบบพร็อกซี ไม่ใช่ปลายทาง OpenAI แบบเนทีฟ
  • การปรับรูปแบบคำขอที่ใช้เฉพาะกับ OpenAI แบบเนทีฟจะไม่ถูกนำมาใช้: ไม่มี service_tier, ไม่มี store ของ Responses, ไม่มีการปรับเพย์โหลดเพื่อความเข้ากันได้ด้านการให้เหตุผลของ OpenAI และไม่มีคำแนะนำแคชพรอมป์
  • ส่วนหัวการระบุแหล่งที่มาของ OpenClaw ที่ซ่อนอยู่ (originator, version, User-Agent) จะไม่ถูกแทรกใน URL พร็อกซีแบบกำหนดเอง

การแทนที่ค่าความเข้ากันได้สำหรับแบ็กเอนด์ที่เข้ากันได้กับ OpenAI และเข้มงวดกว่า:

  • เนื้อหาเป็นสตริงเท่านั้น: เซิร์ฟเวอร์บางตัวรับเฉพาะ messages[].content แบบสตริง ไม่รับอาร์เรย์ส่วนเนื้อหาแบบมีโครงสร้าง ตั้งค่า models.providers.<provider>.models[].compat.requiresStringContent: true

  • คีย์ข้อความแบบเข้มงวด: หากเซิร์ฟเวอร์ปฏิเสธรายการข้อความที่มีคีย์มากกว่า role/content ให้ตั้งค่า compat.strictMessageKeys: true

  • ข้อความเครื่องมือในวงเล็บเหลี่ยม: โมเดลภายในเครื่องบางรุ่นส่งคำขอเครื่องมือแบบเดี่ยวในรูปข้อความ เช่น [tool_name] ตามด้วย JSON และ [END_TOOL_REQUEST] OpenClaw จะยกระดับข้อความเหล่านั้นเป็นการเรียกเครื่องมือจริงเฉพาะเมื่อชื่อตรงกับเครื่องมือที่ลงทะเบียนไว้สำหรับรอบนั้นทุกประการ มิฉะนั้นข้อความจะยังคงเป็นข้อความที่ซ่อนอยู่และไม่รองรับ

  • ข้อความไร้โครงสร้างที่ดูคล้ายการเรียกเครื่องมือ: หากโมเดลส่งข้อความรูปแบบ JSON/XML/ReAct ที่ดูเหมือนการเรียกเครื่องมือแต่ไม่ได้เป็นการเรียกแบบมีโครงสร้าง OpenClaw จะปล่อยไว้เป็นข้อความและบันทึกคำเตือนพร้อมรหัสการทำงาน ผู้ให้บริการ/โมเดล รูปแบบที่ตรวจพบ และชื่อเครื่องมือเมื่อมี นั่นคือความไม่เข้ากันของผู้ให้บริการ/โมเดล ไม่ใช่การเรียกใช้เครื่องมือที่เสร็จสมบูรณ์

  • การบังคับใช้เครื่องมือ: หากเครื่องมือปรากฏเป็นข้อความของผู้ช่วย (JSON/XML/ReAct ดิบ หรืออาร์เรย์ tool_calls ว่าง) ให้ตรวจสอบก่อนว่าเทมเพลต/ตัวแยกวิเคราะห์แชตของเซิร์ฟเวอร์รองรับการเรียกเครื่องมือ หากตัวแยกวิเคราะห์ทำงานเฉพาะเมื่อบังคับใช้เครื่องมือ ให้แทนที่ค่าพร็อกซีเริ่มต้นของ tool_choice: "auto" แยกตามโมเดล:

    json5
    {  agents: {    defaults: {      models: {        "local/my-local-model": {          params: {            extra_body: {              tool_choice: "required",            },          },        },      },    },  },}

    ใช้ค่านี้เฉพาะเมื่อทุกรอบการทำงานปกติควรเรียกเครื่องมือ แทนที่ local/my-local-model ด้วยข้อมูลอ้างอิงที่ตรงกันทุกประการจาก openclaw models list หรือตั้งค่าผ่าน CLI:

    bash
    openclaw config set agents.defaults.models '{"local/my-local-model":{"params":{"extra_body":{"tool_choice":"required"}}}}' --strict-json --merge
  • ระดับความเข้มข้นในการให้เหตุผลเพิ่มเติม: หากโมเดลแบบกำหนดเองที่เข้ากันได้กับ OpenAI รองรับระดับความเข้มข้นในการให้เหตุผลของ OpenAI นอกเหนือจากโปรไฟล์ในตัว ให้ประกาศค่าเหล่านั้นในบล็อกความเข้ากันได้ของโมเดล การเพิ่ม "xhigh" จะทำให้ค่านี้พร้อมใช้งานสำหรับข้อมูลอ้างอิงโมเดลดังกล่าวใน /think xhigh ตัวเลือกเซสชัน การตรวจสอบความถูกต้องของ Gateway และการตรวจสอบความถูกต้องของ llm-task:

    json5
    {  models: {    providers: {      local: {        baseUrl: "http://127.0.0.1:8000/v1",        apiKey: "sk-local",        api: "openai-responses",        models: [          {            id: "gpt-5.4",            name: "GPT 5.4 via local proxy",            reasoning: true,            input: ["text"],            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },            contextWindow: 196608,            maxTokens: 8192,            compat: {              supportedReasoningEfforts: ["low", "medium", "high", "xhigh"],              reasoningEffortMap: { xhigh: "xhigh" },            },          },        ],      },    },  },}

แบ็กเอนด์ที่เล็กกว่าหรือเข้มงวดกว่า

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

  1. ยืนยันว่าโมเดลภายในเครื่องตอบสนอง - ไม่มีเครื่องมือ ไม่มีบริบทของเอเจนต์

    bash
    openclaw infer model run --local --model <provider/model> --prompt "Reply with exactly: pong" --json
  2. ยืนยันการกำหนดเส้นทางของ Gateway - ส่งเฉพาะพรอมต์ โดยข้ามทรานสคริปต์ การบูตสแตรป AGENTS การประกอบกลไกบริบท เครื่องมือ และเซิร์ฟเวอร์ MCP ที่รวมมาให้ แต่ยังคงทดสอบการกำหนดเส้นทางของ Gateway การยืนยันตัวตน และการเลือกผู้ให้บริการ:

    bash
    openclaw infer model run --gateway --model <provider/model> --prompt "Reply with exactly: pong" --json
  3. ลองใช้โหมดประหยัด หากโพรบทั้งสองผ่าน แต่การทำงานจริงของเอเจนต์ล้มเหลวเนื่องจากการเรียกใช้เครื่องมือผิดรูปแบบหรือพรอมต์มีขนาดใหญ่เกินไป: ตั้งค่า agents.defaults.experimental.localModelLean: true โหมดนี้จะตัดเครื่องมือขนาดใหญ่สำหรับเบราว์เซอร์ Cron ข้อความ การสร้างสื่อ เสียง และ PDF ออก เว้นแต่จะกำหนดให้ใช้อย่างชัดเจน และโดยค่าเริ่มต้นจะจัดแค็ตตาล็อกเครื่องมือขนาดใหญ่ไว้ภายใต้การควบคุมการค้นหาเครื่องมือแบบมีโครงสร้าง ขณะที่ยังคงแสดง exec โดยตรง ดูรายละเอียดและวิธียืนยันว่าเปิดใช้งานแล้วได้ที่ ฟีเจอร์ทดลอง -> โหมดประหยัดสำหรับโมเดลภายในเครื่อง

  4. ปิดใช้งานเครื่องมือทั้งหมดเป็นทางเลือกสุดท้าย โดยตั้งค่า models.providers.<provider>.models[].compat.supportsTools: false สำหรับโมเดลนั้น จากนั้นเอเจนต์จะทำงานโดยไม่มีการเรียกใช้เครื่องมือ

  5. หากยังเกินกว่านั้น คอขวดอยู่ที่ระบบต้นทาง หากแบ็กเอนด์ยังคงล้มเหลวเฉพาะเมื่อ OpenClaw ทำงานในขนาดใหญ่ขึ้น หลังจากใช้โหมดประหยัดและ supportsTools: false แล้ว ปัญหาที่เหลือมักเกิดจากตัวโมเดลหรือเซิร์ฟเวอร์เอง เช่น หน้าต่างบริบท หน่วยความจำ GPU การขับข้อมูลออกจาก kv-cache หรือข้อบกพร่องของแบ็กเอนด์ ไม่ใช่เลเยอร์การรับส่งข้อมูลของ OpenClaw

การแก้ไขปัญหา

  • Gateway เข้าถึงพร็อกซีไม่ได้ใช่หรือไม่ curl http://127.0.0.1:1234/v1/models
  • โมเดล LM Studio ถูกถอนออกจากหน่วยความจำใช่หรือไม่ โหลดใหม่ การเริ่มต้นแบบเย็นเป็นสาเหตุทั่วไปที่ทำให้ดูเหมือนระบบ "ค้าง"
  • เซิร์ฟเวอร์ภายในเครื่องแจ้ง terminated, ECONNRESET หรือปิดสตรีมระหว่างรอบใช่หรือไม่ OpenClaw บันทึก model.call.error.failureKind ที่มีจำนวนค่าจำกัด พร้อมสแนปช็อต RSS/ฮีปของกระบวนการ OpenClaw ไว้ในการวินิจฉัย สำหรับแรงกดดันด้านหน่วยความจำของ LM Studio/Ollama ให้เทียบเวลาประทับนั้นกับบันทึกของเซิร์ฟเวอร์หรือบันทึกการขัดข้อง/jetsam ของ macOS เพื่อยืนยันว่าเซิร์ฟเวอร์โมเดลถูกยุติหรือไม่
  • เกิดข้อผิดพลาดเกี่ยวกับบริบทใช่หรือไม่ OpenClaw คำนวณเกณฑ์ตรวจสอบล่วงหน้าของหน้าต่างบริบทจากขนาดหน้าต่างโมเดลที่ตรวจพบ (หรือขนาดหน้าต่างที่ถูกจำกัดเมื่อ agents.defaults.contextTokens ลดค่าลง) โดยจะแจ้งเตือนเมื่อต่ำกว่า 20% พร้อมค่าขั้นต่ำ 8k และบล็อกเด็ดขาดเมื่อต่ำกว่า 10% พร้อมค่าขั้นต่ำ 4k (จำกัดไม่ให้เกินหน้าต่างบริบทที่มีผล เพื่อไม่ให้ข้อมูลเมตาของโมเดลที่ระบุขนาดใหญ่เกินจริงปฏิเสธขีดจำกัดของผู้ใช้ที่ถูกต้อง) ลด contextWindow หรือเพิ่มขีดจำกัดบริบทของเซิร์ฟเวอร์/โมเดล
  • พบ messages[].content ... expected a string ใช่หรือไม่ เพิ่ม compat.requiresStringContent: true ในรายการของโมเดลนั้น
  • พบ validation.keys หรือ "message entries only allow role and content" ใช่หรือไม่ เพิ่ม compat.strictMessageKeys: true ในรายการของโมเดลนั้น
  • การเรียก /v1/chat/completions โดยตรงทำงานได้ แต่ openclaw infer model run --local ล้มเหลวกับ Gemma หรือโมเดลภายในเครื่องอื่นใช่หรือไม่ ตรวจสอบ URL ของผู้ให้บริการ การอ้างอิงโมเดล เครื่องหมายการยืนยันตัวตน และบันทึกของเซิร์ฟเวอร์ก่อน เพราะ model run จะข้ามเครื่องมือของเอเจนต์ทั้งหมด หาก model run สำเร็จ แต่การทำงานของเอเจนต์ที่มีขนาดใหญ่กว่าล้มเหลว ให้ลดขอบเขตเครื่องมือด้วย localModelLean หรือ compat.supportsTools: false
  • การเรียกใช้เครื่องมือปรากฏเป็นข้อความ JSON/XML/ReAct ดิบ หรือผู้ให้บริการส่งคืนอาร์เรย์ tool_calls ว่างใช่หรือไม่ อย่าเพิ่มพร็อกซีที่แปลงข้อความของผู้ช่วยเป็นการเรียกใช้เครื่องมือโดยไม่ตรวจสอบ ให้แก้เทมเพลต/ตัวแยกวิเคราะห์แชตของเซิร์ฟเวอร์ก่อน หากโมเดลทำงานได้เฉพาะเมื่อบังคับให้ใช้เครื่องมือ ให้เพิ่มการกำหนดทับ params.extra_body.tool_choice: "required" ข้างต้น และใช้รายการโมเดลนั้นเฉพาะกับเซสชันที่คาดว่าจะมีการเรียกใช้เครื่องมือในทุกรอบ
  • ความปลอดภัย: โมเดลภายในเครื่องจะข้ามตัวกรองฝั่งผู้ให้บริการ จำกัดขอบเขตของเอเจนต์ให้แคบและเปิดใช้ Compaction เพื่อจำกัดขอบเขตผลกระทบจากการแทรกคำสั่งในพรอมต์

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page