Fundamentals

รันไทม์ของเอเจนต์

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

รันไทม์อาจสับสนกับผู้ให้บริการได้ง่าย เพราะทั้งสองอย่างปรากฏอยู่ใกล้กับการกำหนดค่า โมเดล แต่เป็นคนละชั้นกัน:

ชั้น ตัวอย่าง ความหมาย
ผู้ให้บริการ anthropic, github-copilot, openai วิธีที่ OpenClaw ยืนยันตัวตน ค้นหาโมเดล และตั้งชื่อการอ้างอิงโมเดล
โมเดล claude-opus-4-6, gpt-5.6-sol โมเดลที่เลือกสำหรับเทิร์นของเอเจนต์
รันไทม์เอเจนต์ claude-cli, codex, copilot, openclaw ลูประดับล่างหรือแบ็กเอนด์ที่ดำเนินการเทิร์นซึ่งเตรียมไว้
ช่องทาง Discord, Slack, Telegram, WhatsApp ตำแหน่งที่ข้อความเข้าและออกจาก OpenClaw

ฮาร์เนส คือการนำไปใช้ที่จัดเตรียมรันไทม์เอเจนต์ (คำศัพท์ในโค้ด) ตัวอย่างเช่น ฮาร์เนส Codex ที่รวมมาให้จะนำรันไทม์ codex ไปใช้ การกำหนดค่าสาธารณะใช้ agentRuntime.id ในรายการผู้ให้บริการหรือโมเดล ส่วนคีย์รันไทม์ ระดับเอเจนต์ทั้งหมดเป็นรูปแบบเดิมและจะถูกละเว้น openclaw doctor --fix จะลบ การปักหมุดรันไทม์ระดับเอเจนต์ทั้งหมดแบบเก่า และเขียนการอ้างอิงโมเดลรันไทม์แบบเดิมใหม่ เป็นการอ้างอิงผู้ให้บริการ/โมเดลแบบมาตรฐาน พร้อมนโยบายรันไทม์ระดับโมเดลเมื่อจำเป็น

รันไทม์มีสองตระกูล:

  • ฮาร์เนสแบบฝังตัว ทำงานภายในลูปเอเจนต์ที่ OpenClaw เตรียมไว้ ได้แก่ รันไทม์ openclaw ที่มีมาในตัว รวมถึงฮาร์เนส Plugin ที่ลงทะเบียนไว้ เช่น codex และ copilot
  • แบ็กเอนด์ CLI เรียกใช้กระบวนการ CLI ภายในเครื่องโดยยังคงใช้การอ้างอิงโมเดล แบบมาตรฐาน ตัวอย่างเช่น anthropic/claude-opus-4-8 ที่มี agentRuntime.id: "claude-cli" ระดับโมเดล หมายถึง “เลือกโมเดล Anthropic แล้วดำเนินการ ผ่าน Claude CLI” claude-cli ไม่ใช่รหัสฮาร์เนสแบบฝังตัวและต้องไม่ ส่งไปยังการเลือก AgentHarness

ฮาร์เนส copilot เป็นฮาร์เนส Plugin ภายนอกที่แยกต่างหากและต้องเลือกเปิดใช้ สำหรับ GitHub Copilot CLI โปรดดู รันไทม์เอเจนต์ GitHub Copilot สำหรับการตัดสินใจในมุมผู้ใช้ระหว่าง PI, Codex และรันไทม์เอเจนต์ GitHub Copilot

พื้นผิว Codex

มีหลายพื้นผิวที่ใช้ชื่อ Codex ร่วมกัน:

พื้นผิว ชื่อ/การกำหนดค่าใน OpenClaw หน้าที่
รันไทม์ app-server แบบเนทีฟของ Codex การอ้างอิงโมเดล openai/* เรียกใช้เทิร์นเอเจนต์แบบฝังตัวของ OpenAI ผ่าน Codex app-server ซึ่งเป็นการตั้งค่าปกติสำหรับการสมัครสมาชิก ChatGPT/Codex
โปรไฟล์การยืนยันตัวตน Codex OAuth โปรไฟล์ OAuth ของ openai จัดเก็บข้อมูลยืนยันตัวตนการสมัครสมาชิก ChatGPT/Codex ที่ฮาร์เนส Codex app-server ใช้งาน
อะแดปเตอร์ Codex ACP runtime: "acp", agentId: "codex" เรียกใช้ Codex ผ่านระนาบควบคุม ACP/acpx ภายนอก ใช้เฉพาะเมื่อมีการร้องขอ ACP/acpx อย่างชัดเจน
ชุดคำสั่งควบคุมแชต Codex แบบเนทีฟ /codex ... ผูก ทำงานต่อ ควบคุม หยุด และตรวจสอบเธรด Codex app-server จากแชต
เส้นทาง OpenAI Platform API สำหรับพื้นผิวที่ไม่ใช่เอเจนต์ openai/* พร้อมการยืนยันตัวตนด้วยคีย์ API API โดยตรงของ OpenAI เช่น รูปภาพ เอ็มเบดดิง เสียงพูด และเรียลไทม์

พื้นผิวเหล่านี้แยกจากกันโดยเจตนา การเปิดใช้ Plugin codex ทำให้ฟีเจอร์ app-server แบบเนทีฟพร้อมใช้งาน ส่วน openclaw doctor --fix เป็นเจ้าของ การซ่อมแซมเส้นทาง Codex แบบเดิมและการล้างการปักหมุดเซสชันที่ล้าสมัย ปัจจุบันการเลือก openai/* เป็นโมเดลเอเจนต์หมายถึง “เรียกใช้สิ่งนี้ผ่าน Codex” เว้นแต่กำลังใช้ พื้นผิว OpenAI API ที่ไม่ใช่เอเจนต์

การตั้งค่าการสมัครสมาชิก ChatGPT/Codex ทั่วไปใช้ Codex OAuth สำหรับการยืนยันตัวตน แต่ ยังคงใช้การอ้างอิงโมเดลเป็น openai/* และเลือกรันไทม์ codex:

json5
{  agents: {    defaults: {      model: "openai/gpt-5.6-sol",    },  },}

นั่นหมายความว่า OpenClaw เลือกการอ้างอิงโมเดล OpenAI แล้วขอให้รันไทม์ Codex app-server เรียกใช้เทิร์นเอเจนต์แบบฝังตัว ไม่ได้หมายถึง “ใช้การเรียกเก็บเงินผ่าน API” และไม่ได้หมายความว่าช่องทาง แค็ตตาล็อกผู้ให้บริการโมเดล หรือ ที่เก็บเซสชันของ OpenClaw จะกลายเป็น Codex

เมื่อเปิดใช้ Plugin codex ที่รวมมาให้ ให้ใช้พื้นผิวคำสั่ง /codex แบบเนทีฟ (/codex bind, /codex threads, /codex resume, /codex steer, /codex stop) เพื่อควบคุม Codex ด้วยภาษาธรรมชาติแทน ACP ใช้ ACP สำหรับ Codex เฉพาะเมื่อผู้ใช้ร้องขอ ACP/acpx อย่างชัดเจนหรือกำลังทดสอบเส้นทาง อะแดปเตอร์ ACP ส่วน Claude Code, Gemini CLI, OpenCode, Cursor และฮาร์เนสภายนอก ที่คล้ายกันยังคงใช้ ACP

แผนผังการตัดสินใจ:

  1. การผูก/ควบคุม/จัดการเธรด/ทำงานต่อ/ควบคุมทิศทาง/หยุด Codex -> พื้นผิวคำสั่ง /codex แบบเนทีฟเมื่อเปิดใช้ Plugin codex ที่รวมมาให้
  2. Codex ในฐานะรันไทม์แบบฝังตัว หรือประสบการณ์เอเจนต์ Codex ปกติที่รองรับด้วยการสมัครสมาชิก -> openai/<model>
  3. เลือก OpenClaw อย่างชัดเจนสำหรับโมเดล OpenAI -> คงการอ้างอิงโมเดลเป็น openai/<model> และตั้งค่านโยบายรันไทม์ระดับผู้ให้บริการ/โมเดลเป็น agentRuntime.id: "openclaw" โปรไฟล์ OAuth ของ openai ที่เลือกจะถูกกำหนดเส้นทางภายในผ่านการขนส่งการยืนยันตัวตน Codex ของ OpenClaw
  4. การอ้างอิงโมเดล Codex แบบเดิมในการกำหนดค่า -> ซ่อมแซมด้วย openclaw doctor --fix ให้เป็น openai/<model> โดย doctor จะคงเส้นทางการยืนยันตัวตน Codex ไว้ด้วยการเพิ่ม agentRuntime.id: "codex" ระดับผู้ให้บริการ/โมเดลในจุดที่การอ้างอิงโมเดลแบบเก่าสื่อถึงเส้นทางดังกล่าว การอ้างอิงโมเดล codex-cli/* แบบเดิมจะถูกซ่อมแซมไปยังเส้นทาง Codex app-server openai/<model> เดียวกัน ปัจจุบัน OpenClaw ไม่คงแบ็กเอนด์ Codex CLI ที่รวมมาให้อีกต่อไป
  5. มีการร้องขอ ACP, acpx หรืออะแดปเตอร์ Codex ACP อย่างชัดเจน -> runtime: "acp" และ agentId: "codex"
  6. Claude Code, Gemini CLI, OpenCode, Cursor, Droid หรือฮาร์เนสภายนอกอื่น -> ACP/acpx ไม่ใช่รันไทม์เอเจนต์ย่อยแบบเนทีฟ
สิ่งที่คุณหมายถึง... ให้ใช้...
การควบคุมแชต/เธรดของ Codex app-server /codex ... จาก Plugin codex ที่รวมมาให้
รันไทม์เอเจนต์แบบฝังตัวของ Codex app-server การอ้างอิงโมเดลเอเจนต์ openai/*
OpenAI Codex OAuth โปรไฟล์ OAuth ของ openai
Claude Code หรือฮาร์เนสภายนอกอื่น ACP/acpx

สำหรับการแยกคำนำหน้าตระกูล OpenAI โปรดดู OpenAI และ ผู้ให้บริการโมเดล สำหรับสัญญาการรองรับรันไทม์ Codex โปรดดู รันไทม์ฮาร์เนส Codex

ความเป็นเจ้าของรันไทม์

รันไทม์แต่ละชนิดเป็นเจ้าของส่วนต่าง ๆ ของลูปในขอบเขตที่ต่างกัน:

พื้นผิว แบบฝังตัวของ OpenClaw Codex app-server
เจ้าของลูปโมเดล OpenClaw ผ่านตัวเรียกใช้แบบฝังตัวของ OpenClaw Codex app-server
สถานะเธรดแบบมาตรฐาน ทรานสคริปต์ OpenClaw เธรด Codex พร้อมสำเนาสะท้อนทรานสคริปต์ OpenClaw
เครื่องมือแบบไดนามิกของ OpenClaw ลูปเครื่องมือแบบเนทีฟของ OpenClaw เชื่อมผ่านอะแดปเตอร์ Codex
เครื่องมือเชลล์และไฟล์แบบเนทีฟ เส้นทาง OpenClaw เครื่องมือแบบเนทีฟของ Codex ซึ่งเชื่อมผ่านฮุกแบบเนทีฟในจุดที่รองรับ
กลไกบริบท การประกอบบริบทแบบเนทีฟของ OpenClaw OpenClaw ฉายบริบทที่ประกอบแล้วเข้าสู่เทิร์น Codex
Compaction OpenClaw หรือกลไกบริบทที่เลือก Compaction แบบเนทีฟของ Codex พร้อมการแจ้งเตือนจาก OpenClaw และการบำรุงรักษาสำเนาสะท้อน
การส่งผ่านช่องทาง OpenClaw OpenClaw

กฎการออกแบบ: หาก OpenClaw เป็นเจ้าของพื้นผิว ก็สามารถให้พฤติกรรมฮุก Plugin ตามปกติได้ หากรันไทม์แบบเนทีฟเป็นเจ้าของพื้นผิว OpenClaw จำเป็นต้องใช้เหตุการณ์ ของรันไทม์หรือฮุกแบบเนทีฟ หากรันไทม์แบบเนทีฟเป็นเจ้าของสถานะเธรดแบบมาตรฐาน OpenClaw จะสร้างสำเนาสะท้อนและฉายบริบท แทนการเขียนส่วนภายในที่ไม่รองรับใหม่

การเลือกรันไทม์

OpenClaw จะหารันไทม์แบบฝังตัวหลังจากแก้ไขผู้ให้บริการและโมเดลแล้ว ตามลำดับนี้:

  1. นโยบายรันไทม์ระดับโมเดล มีลำดับความสำคัญสูงสุด โดยอยู่ในรายการโมเดล ของผู้ให้บริการที่กำหนดค่าไว้ หรือใน agents.defaults.models["provider/model"].agentRuntime / agents.list[].models["provider/model"].agentRuntime ไวลด์การ์ดของผู้ให้บริการ เช่น agents.defaults.models["vllm/*"].agentRuntime จะมีผลหลังนโยบายโมเดลแบบตรงกัน เพื่อให้โมเดลของผู้ให้บริการที่ค้นพบแบบไดนามิกสามารถใช้รันไทม์เดียวกันได้ โดยไม่แทนที่ข้อยกเว้นรายโมเดลที่ตรงกันทุกประการ
  2. นโยบายรันไทม์ระดับผู้ให้บริการ: models.providers.<provider>.agentRuntime
  3. โหมด auto: รันไทม์ Plugin ที่ลงทะเบียนไว้สามารถรับคู่ผู้ให้บริการ/โมเดลที่รองรับได้
  4. หากไม่มีสิ่งใดรับเทิร์นในโหมด auto OpenClaw จะย้อนกลับไปใช้ openclaw เป็นรันไทม์เพื่อความเข้ากันได้ ใช้รหัสรันไทม์ที่ระบุอย่างชัดเจนเมื่อ การทำงานต้องเข้มงวด

การปักหมุดรันไทม์ระดับทั้งเซสชันและทั้งเอเจนต์จะถูกละเว้น ได้แก่ OPENCLAW_AGENT_RUNTIME, สถานะ agentHarnessId/agentRuntimeOverride ของเซสชัน, agents.defaults.agentRuntime และ agents.list[].agentRuntime เรียกใช้ openclaw doctor --fix เพื่อลบ การกำหนดค่ารันไทม์ระดับเอเจนต์ทั้งหมดที่ล้าสมัย และแปลงการอ้างอิงโมเดลรันไทม์ แบบเดิมในจุดที่ยังรักษาเจตนาเดิมไว้ได้

รันไทม์ Plugin ระดับผู้ให้บริการ/โมเดลที่ระบุอย่างชัดเจนจะปิดเมื่อเกิดข้อผิดพลาด: agentRuntime.id: "codex" บนผู้ให้บริการหรือโมเดลหมายถึง Codex หรือข้อผิดพลาด การเลือก/รันไทม์ที่ชัดเจน โดยจะไม่มีการกำหนดเส้นทางกลับไปยัง OpenClaw อย่างเงียบ ๆ มีเพียง auto เท่านั้นที่อาจกำหนดเส้นทางเทิร์นที่ไม่ตรงกันไปยัง OpenClaw

นามแฝงแบ็กเอนด์ CLI แตกต่างจากรหัสฮาร์เนสแบบฝังตัว รูปแบบ Claude CLI ที่แนะนำ:

json5
{  agents: {    defaults: {      model: "anthropic/claude-opus-4-8",      models: {        "anthropic/claude-opus-4-8": {          agentRuntime: { id: "claude-cli" },        },      },    },  },}

การอ้างอิงแบบเดิม เช่น claude-cli/claude-opus-4-7 ยังคงรองรับเพื่อ ความเข้ากันได้ แต่การกำหนดค่าใหม่ควรคงผู้ให้บริการ/โมเดลเป็นรูปแบบมาตรฐาน และ ใส่แบ็กเอนด์การดำเนินการไว้ในนโยบายรันไทม์ระดับผู้ให้บริการ/โมเดล

การอ้างอิง codex-cli/* แบบเดิมแตกต่างออกไป โดย doctor จะย้ายข้อมูลไปเป็น openai/* เพื่อให้ทำงานผ่านฮาร์เนส Codex app-server แทนการคงแบ็กเอนด์ Codex CLI ไว้

โหมด auto ถูกออกแบบให้ระมัดระวังสำหรับผู้ให้บริการส่วนใหญ่ โมเดลเอเจนต์ OpenAI เป็นข้อยกเว้น โดยทั้งรันไทม์ที่ไม่ได้ตั้งค่าและ auto จะถูกแก้ไขไปยังฮาร์เนส Codex การกำหนดค่ารันไทม์ OpenClaw อย่างชัดเจนยังคงเป็นเส้นทางความเข้ากันได้ ที่ต้องเลือกใช้สำหรับเทิร์นเอเจนต์ openai/* เมื่อจับคู่กับโปรไฟล์ OAuth ของ openai ที่เลือก OpenClaw จะกำหนดเส้นทางดังกล่าวภายในผ่านการขนส่งการยืนยันตัวตน Codex โดยยังคงการอ้างอิงโมเดลสาธารณะเป็น openai/* การปักหมุดรันไทม์เซสชัน OpenAI ที่ล้าสมัยจะถูกละเว้นในการเลือกรันไทม์ และสามารถล้างได้ด้วย openclaw doctor --fix

หาก openclaw doctor เตือนว่าเปิดใช้ Plugin codex ขณะที่ยังมี การอ้างอิงโมเดล Codex แบบเดิมอยู่ในการกำหนดค่า ให้ถือว่านั่นเป็นสถานะเส้นทางแบบเดิม และเรียกใช้ openclaw doctor --fix เพื่อเขียนใหม่เป็น openai/* พร้อมรันไทม์ Codex

รันไทม์เอเจนต์ GitHub Copilot

Plugin ภายนอก @openclaw/copilot ลงทะเบียนรันไทม์ copilot แบบเลือกใช้ ซึ่งทำงานบน GitHub Copilot CLI (@github/copilot-sdk) โดยอ้างสิทธิ์ผู้ให้บริการ การสมัครใช้งานมาตรฐาน github-copilot และ จะไม่ถูก เลือกโดย auto เลือกใช้แยกตามโมเดลหรือผู้ให้บริการผ่าน agentRuntime.id:

json5
{  agents: {    defaults: {      model: "github-copilot/gpt-5.5",      models: {        "github-copilot/gpt-5.5": {          agentRuntime: { id: "copilot" },        },      },    },  },}

ชุดควบคุมการทำงานอ้างสิทธิ์ผู้ให้บริการ รันไทม์ คีย์เซสชัน CLI และคำนำหน้า โปรไฟล์การยืนยันตัวตนใน extensions/copilot/doctor-contract-api.ts ซึ่ง openclaw doctor จะโหลดโดยอัตโนมัติ สำหรับการกำหนดค่า การยืนยันตัวตน การทำสำเนาทรานสคริปต์ Compaction สัญญาการตรวจสอบแบบประกาศ และการตัดสินใจ ในภาพรวมระหว่าง PI, Codex และ Copilot SDK โปรดดู รันไทม์เอเจนต์ GitHub Copilot

สัญญาความเข้ากันได้

เมื่อรันไทม์ไม่ใช่ OpenClaw เอกสารของรันไทม์นั้นควรระบุว่ารองรับส่วนใดของ OpenClaw:

คำถาม เหตุผลที่สำคัญ
ใครเป็นเจ้าของลูปโมเดล กำหนดว่าการลองใหม่ การดำเนินเครื่องมือต่อ และการตัดสินใจเกี่ยวกับคำตอบสุดท้ายเกิดขึ้นที่ใด
ใครเป็นเจ้าของประวัติเธรดมาตรฐาน กำหนดว่า OpenClaw สามารถแก้ไขประวัติได้หรือทำได้เพียงทำสำเนา
เครื่องมือแบบไดนามิกของ OpenClaw ใช้งานได้หรือไม่ การรับส่งข้อความ เซสชัน Cron และเครื่องมือที่ OpenClaw เป็นเจ้าของต้องพึ่งพาสิ่งนี้
ฮุกเครื่องมือแบบไดนามิกใช้งานได้หรือไม่ Plugin คาดหวัง before_tool_call, after_tool_call และมิดเดิลแวร์ที่ครอบเครื่องมือซึ่ง OpenClaw เป็นเจ้าของ
ฮุกเครื่องมือเนทีฟใช้งานได้หรือไม่ เชลล์ แพตช์ และเครื่องมือที่รันไทม์เป็นเจ้าของต้องมีการรองรับฮุกเนทีฟสำหรับนโยบายและการสังเกตการณ์
วงจรชีวิตของกลไกบริบททำงานหรือไม่ Plugin หน่วยความจำและบริบทต้องพึ่งพาวงจรชีวิตการประกอบ การนำเข้า หลังจบรอบ และ Compaction
เปิดเผยข้อมูล Compaction ใดบ้าง Plugin บางตัวต้องการเพียงการแจ้งเตือน ส่วนตัวอื่นต้องการเมทาดาทาของข้อมูลที่เก็บไว้และตัดออก
สิ่งใดไม่ได้รับการรองรับโดยเจตนา ผู้ใช้ไม่ควรสันนิษฐานว่าเทียบเท่า OpenClaw ในส่วนที่รันไทม์เนทีฟเป็นเจ้าของสถานะมากกว่า

สัญญาการรองรับของรันไทม์ Codex มีบันทึกไว้ใน รันไทม์ชุดควบคุม Codex

ป้ายกำกับสถานะ

ผลลัพธ์สถานะสามารถแสดงทั้งป้ายกำกับ Execution และ Runtime ให้อ่านเป็น ข้อมูลวินิจฉัย ไม่ใช่ชื่อผู้ให้บริการ:

  • การอ้างอิงโมเดล เช่น openai/gpt-5.6-sol คือผู้ให้บริการ/โมเดลที่เลือก
  • รหัสรันไทม์ เช่น codex คือลูปที่กำลังประมวลผลรอบนั้น
  • ป้ายกำกับช่องทาง เช่น Telegram หรือ Discord คือที่ที่การสนทนากำลังเกิดขึ้น

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

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

Was this useful?
On this page

On this page