Technical reference

สุขลักษณะของบทถอดเสียง

OpenClaw ใช้ การแก้ไขเฉพาะผู้ให้บริการ กับทรานสคริปต์ก่อนการรัน (ระหว่างสร้างบริบทของโมเดล) การแก้ไขส่วนใหญ่เป็นการปรับเปลี่ยน ในหน่วยความจำ เพื่อให้เป็นไปตามข้อกำหนดที่เข้มงวดของผู้ให้บริการ ขั้นตอนซ่อมแซมไฟล์เซสชันแยกต่างหาก อาจเขียน JSONL ที่จัดเก็บไว้ใหม่ก่อนโหลดเซสชันด้วย แต่จะทำเฉพาะกับ บรรทัดที่มีรูปแบบไม่ถูกต้องหรือรอบสนทนาที่บันทึกค้างไว้ซึ่งไม่ใช่ระเบียนถาวรที่ถูกต้อง คำตอบจากผู้ช่วยที่ส่งแล้วจะยังคงอยู่บนดิสก์ ส่วนการตัดข้อความเติมล่วงหน้าของผู้ช่วย ตามผู้ให้บริการจะเกิดขึ้นเฉพาะระหว่างสร้างเพย์โหลดขาออกเท่านั้น

เมื่อมีการซ่อมแซม ไฟล์ต้นฉบับจะถูกเขียนไปยังไฟล์พี่น้องชั่วคราว *.bak-<pid>-<ts> ก่อนแทนที่แบบอะตอมมิก จากนั้นจะถูกลบเมื่อ การแทนที่สำเร็จ ระบบจะเก็บข้อมูลสำรองไว้เฉพาะเมื่อการล้างข้อมูลล้มเหลว ซึ่งในกรณีนั้นจะรายงานพาธกลับมา

ขอบเขตประกอบด้วย:

  • บริบทพรอมต์สำหรับรันไทม์เท่านั้นจะไม่รวมอยู่ในรอบสนทนาของทรานสคริปต์ที่ผู้ใช้มองเห็น
  • การปรับรหัสการเรียกเครื่องมือให้ปลอดภัย
  • การตรวจสอบอินพุตของการเรียกเครื่องมือ
  • การซ่อมแซมการจับคู่ผลลัพธ์ของเครื่องมือ
  • การตรวจสอบ / จัดลำดับรอบสนทนา
  • การล้างลายเซ็นความคิด
  • การล้างลายเซ็นกระบวนการคิด
  • การปรับเพย์โหลดรูปภาพให้ปลอดภัย
  • การล้างบล็อกข้อความว่างก่อนเล่นซ้ำให้ผู้ให้บริการ
  • การล้างรอบสนทนาที่มีเฉพาะการให้เหตุผลซึ่งไม่สมบูรณ์เพราะถึงขีดจำกัดความยาว ก่อนเล่นซ้ำให้ผู้ให้บริการ
  • การติดแท็กที่มาของอินพุตผู้ใช้ (สำหรับพรอมต์ที่กำหนดเส้นทางระหว่างเซสชัน)
  • การซ่อมแซมรอบสนทนาข้อผิดพลาดของผู้ช่วยที่ว่างสำหรับการเล่นซ้ำของ Bedrock Converse

หากต้องการรายละเอียดการจัดเก็บทรานสคริปต์ โปรดดู เจาะลึกการจัดการเซสชัน


กฎส่วนกลาง: บริบทรันไทม์ไม่ใช่ทรานสคริปต์ของผู้ใช้

บริบทรันไทม์/ระบบสามารถเพิ่มลงในพรอมต์ของโมเดลสำหรับรอบสนทนาหนึ่งได้ แต่ไม่ใช่ เนื้อหาที่ผู้ใช้ปลายทางเขียน OpenClaw เก็บเนื้อหาพรอมต์สำหรับแสดงในทรานสคริปต์ แยกต่างหากสำหรับคำตอบของ Gateway การติดตามผลในคิว ACP, CLI และการรัน OpenClaw แบบฝัง รอบสนทนาของผู้ใช้ที่มองเห็นได้ซึ่งจัดเก็บไว้จะใช้เนื้อหาทรานสคริปต์นั้นแทน พรอมต์ที่เสริมด้วยบริบทรันไทม์

สำหรับเซสชันแบบเก่าที่บันทึกตัวหุ้มรันไทม์ไว้แล้ว พื้นผิวประวัติของ Gateway จะใช้การฉายภาพสำหรับแสดงผลก่อนส่งคืนข้อความไปยังไคลเอนต์ WebChat, TUI, REST หรือ SSE


ตำแหน่งที่ทำงาน

การดูแลความถูกต้องของทรานสคริปต์ทั้งหมดรวมศูนย์อยู่ในตัวรันเนอร์แบบฝัง:

  • การเลือกนโยบาย: src/agents/transcript-policy.ts (resolveTranscriptPolicy ซึ่งใช้ provider, modelApi และ modelId เป็นคีย์)
  • การใช้การปรับให้ปลอดภัย/ซ่อมแซม: sanitizeSessionHistory ใน src/agents/embedded-agent-runner/replay-history.ts

ไฟล์เซสชันจะได้รับการซ่อมแซม (หากจำเป็น) ก่อนโหลด โดยแยกจาก การดูแลความถูกต้องของทรานสคริปต์:

  • repairSessionFileIfNeeded ใน src/agents/session-file-repair.ts
  • เรียกใช้จาก src/agents/embedded-agent-runner/run/attempt.ts และ src/agents/embedded-agent-runner/compact.ts

กฎส่วนกลาง: การปรับรูปภาพให้ปลอดภัย

เพย์โหลดรูปภาพจะได้รับการปรับให้ปลอดภัยเสมอ เพื่อป้องกันการปฏิเสธจากฝั่งผู้ให้บริการ เนื่องจากขีดจำกัดขนาด (ลดขนาด/บีบอัดรูปภาพ base64 ที่มีขนาดใหญ่เกินไปใหม่) วิธีนี้ยังช่วย ควบคุมแรงกดดันด้านโทเค็นจากรูปภาพสำหรับโมเดลที่รองรับการมองเห็นด้วย โดยขนาดสูงสุด ที่เล็กลงจะลดการใช้โทเค็น ส่วนขนาดที่ใหญ่ขึ้นจะรักษารายละเอียดไว้

การนำไปใช้:

  • sanitizeSessionMessagesImages ใน src/agents/embedded-agent-helpers/images.ts
  • sanitizeContentBlocksImages ใน src/agents/tool-images.ts
  • กำหนดความยาวด้านสูงสุดของรูปภาพได้ผ่าน agents.defaults.imageMaxDimensionPx (ค่าเริ่มต้น: 1200)
  • บล็อกข้อความว่างจะถูกลบขณะที่ขั้นตอนนี้ไล่ตรวจเนื้อหาสำหรับเล่นซ้ำ รอบสนทนาของผู้ช่วยที่ว่างเปล่าหลังจากนั้นจะถูกนำออกจากสำเนาสำหรับเล่นซ้ำ ส่วนรอบสนทนา ของผู้ใช้และผลลัพธ์เครื่องมือที่ว่างเปล่าหลังจากนั้นจะได้รับข้อความตัวแทน สำหรับเนื้อหาที่ละเว้นซึ่งไม่ว่างเปล่า

กฎส่วนกลาง: การเรียกเครื่องมือที่มีรูปแบบไม่ถูกต้อง

บล็อกการเรียกเครื่องมือของผู้ช่วยที่ไม่มีทั้ง input และ arguments จะถูกนำออก ก่อนสร้างบริบทของโมเดล วิธีนี้ป้องกันการปฏิเสธจากผู้ให้บริการอันเกิดจาก การเรียกเครื่องมือที่บันทึกไว้เพียงบางส่วน (เช่น หลังเกิดความล้มเหลวจากขีดจำกัดอัตรา)

การนำไปใช้:

  • sanitizeToolCallInputs ใน src/agents/session-transcript-repair.ts
  • ใช้ใน sanitizeSessionHistory (src/agents/embedded-agent-runner/replay-history.ts)

กฎส่วนกลาง: การจับคู่ผลลัพธ์ของเครื่องมือ

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

การนำไปใช้: sanitizeToolUseResultPairing ใน src/agents/session-transcript-repair.ts


กฎส่วนกลาง: รอบสนทนาที่มีเฉพาะการให้เหตุผลซึ่งไม่สมบูรณ์หรือไม่มีคำตอบ

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

  • ขีดจำกัดเอาต์พุตของผู้ให้บริการสิ้นสุดรอบสนทนาโดยที่สถานะการให้เหตุผลยังไม่สมบูรณ์
  • การล้างคำตอบแบบไม่มีข้อความจะลบข้อความ NO_REPLY ที่มองเห็นได้เพียงรายการเดียวของรอบสนทนา

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

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

การนำไปใช้: normalizeAssistantReplayContent ใน src/agents/embedded-agent-runner/replay-history.ts


กฎส่วนกลาง: ที่มาของอินพุตระหว่างเซสชัน

เมื่อเอเจนต์ส่งพรอมต์ไปยังอีกเซสชันหนึ่งผ่าน sessions_send (รวมถึงขั้นตอนตอบกลับ/ประกาศระหว่างเอเจนต์) OpenClaw จะบันทึก รอบสนทนาของผู้ใช้ที่สร้างขึ้นพร้อม message.provenance.kind = "inter_session"

OpenClaw ยังเติมเครื่องหมาย [Inter-session message] ... isUser=false ในรอบสนทนาเดียวกัน ไว้หน้าข้อความพรอมต์ที่กำหนดเส้นทาง เพื่อให้การเรียกโมเดลที่ใช้งานอยู่สามารถ แยกแยะเอาต์พุตจากเซสชันอื่นออกจากคำสั่งของผู้ใช้ปลายทางภายนอก เครื่องหมายนี้ ประกอบด้วยเซสชันต้นทาง ช่องทาง และเครื่องมือเมื่อมีข้อมูล ทรานสคริปต์ยังคงใช้ role: "user" เพื่อให้เข้ากันได้กับผู้ให้บริการ แต่ทั้งข้อความที่มองเห็นได้และ ข้อมูลเมตาที่มาจะทำเครื่องหมายรอบสนทนานี้ว่าเป็นข้อมูลระหว่างเซสชัน

ระหว่างสร้างบริบทใหม่ OpenClaw จะใช้เครื่องหมายเดียวกันกับรอบสนทนาของผู้ใช้ ระหว่างเซสชันที่บันทึกไว้แบบเก่า ซึ่งมีเฉพาะข้อมูลเมตาที่มา


เมทริกซ์ผู้ให้บริการ (พฤติกรรมปัจจุบัน)

OpenAI / OpenAI Codex

  • ปรับรูปภาพให้ปลอดภัยเท่านั้น
  • นำลายเซ็นการให้เหตุผลที่ไม่มีคู่กำกับออก (รายการการให้เหตุผลแบบเดี่ยวที่ไม่มี บล็อกเนื้อหาตามมา) สำหรับทรานสคริปต์ OpenAI Responses/Codex และนำ การให้เหตุผลของ OpenAI ที่เล่นซ้ำได้ออกหลังสลับเส้นทางโมเดล
  • รักษาเพย์โหลดรายการการให้เหตุผลของ OpenAI Responses ที่เล่นซ้ำได้ รวมถึง รายการสรุปว่างที่เข้ารหัส เพื่อให้การเล่นซ้ำด้วยตนเอง/WebSocket ยังคงจับคู่ สถานะ rs_* ที่จำเป็นกับรายการเอาต์พุตของผู้ช่วย
  • Native ChatGPT Codex Responses รักษาความสอดคล้องกับโปรโตคอลบนสายของ Codex โดยเล่นซ้ำ เพย์โหลดการให้เหตุผล/ข้อความ/ฟังก์ชันของ Responses ก่อนหน้าโดยไม่มีรหัสรายการก่อนหน้า พร้อมคง prompt_cache_key ของเซสชันไว้
  • การเล่นซ้ำของตระกูล OpenAI Responses รักษาคู่การให้เหตุผล call_*|fc_* แบบโมเดลเดียวกันที่เป็นรูปแบบมาตรฐาน แต่ปรับรหัสรายการ call_id/การเรียกฟังก์ชัน ที่มีรูปแบบไม่ถูกต้องหรือยาวเกินไปให้เป็นมาตรฐานอย่างกำหนดผลได้ ก่อนแปลงเพย์โหลด pi-ai
  • การซ่อมแซมการจับคู่ผลลัพธ์ของเครื่องมืออาจย้ายเอาต์พุตจริงที่จับคู่แล้ว และสังเคราะห์ เอาต์พุต aborted รูปแบบ Codex สำหรับการเรียกเครื่องมือที่ไม่มีผลลัพธ์
  • ไม่มีการตรวจสอบหรือจัดลำดับรอบสนทนาใหม่ และไม่มีการตัดลายเซ็นความคิด

Chat Completions ที่เข้ากันได้กับ OpenAI

  • บล็อกกระบวนการคิด/การให้เหตุผลของผู้ช่วยจากประวัติจะถูกตัดออกก่อนเล่นซ้ำ เพื่อให้เซิร์ฟเวอร์ภายในและเซิร์ฟเวอร์ผ่านพร็อกซีที่เข้ากันได้กับ OpenAI ไม่ได้รับ ฟิลด์การให้เหตุผลจากรอบสนทนาก่อนหน้า เช่น reasoning หรือ reasoning_content
  • การดำเนินการเรียกเครื่องมือต่อในรอบสนทนาเดียวกันปัจจุบันจะคงบล็อกการให้เหตุผล ของผู้ช่วยไว้กับการเรียกเครื่องมือ จนกว่าจะเล่นซ้ำผลลัพธ์ของเครื่องมือแล้ว
  • รายการโมเดลแบบกำหนดเอง/โฮสต์เองที่มี reasoning: true จะรักษา ข้อมูลเมตาการให้เหตุผลที่เล่นซ้ำไว้
  • ข้อยกเว้นที่ผู้ให้บริการเป็นเจ้าของสามารถเลือกไม่ใช้ได้ เมื่อโปรโตคอลบนสายของตน ต้องใช้ข้อมูลเมตาการให้เหตุผลที่เล่นซ้ำ

Google (Generative AI / Gemini CLI / Antigravity)

  • การปรับรหัสการเรียกเครื่องมือให้ปลอดภัย: ใช้ได้เฉพาะตัวอักษรและตัวเลขอย่างเคร่งครัด
  • การซ่อมแซมการจับคู่ผลลัพธ์ของเครื่องมือและผลลัพธ์เครื่องมือสังเคราะห์
  • การตรวจสอบรอบสนทนา (การสลับรอบสนทนาแบบ Gemini)
  • การแก้ไขลำดับรอบสนทนาของ Google (เติมข้อความเริ่มต้นสั้น ๆ จากผู้ใช้ไว้ข้างหน้า หากประวัติ เริ่มต้นด้วยผู้ช่วย)
  • Antigravity Claude: ปรับลายเซ็นกระบวนการคิดให้เป็นมาตรฐาน และนำบล็อกกระบวนการคิด ที่ไม่มีลายเซ็นออก

Anthropic / Minimax (เข้ากันได้กับ Anthropic)

  • การซ่อมแซมการจับคู่ผลลัพธ์ของเครื่องมือและผลลัพธ์เครื่องมือสังเคราะห์
  • การตรวจสอบรอบสนทนา (รวมรอบสนทนาของผู้ใช้ที่ต่อเนื่องกันเพื่อให้เป็นไปตาม การสลับอย่างเคร่งครัด)
  • รอบสนทนาการเติมล่วงหน้าของผู้ช่วยที่อยู่ท้ายสุดจะถูกตัดออกจากเพย์โหลด Anthropic Messages ขาออกเมื่อเปิดใช้กระบวนการคิด รวมถึงเส้นทาง Cloudflare AI Gateway
  • ลายเซ็นกระบวนการคิดของผู้ช่วยก่อน Compaction จะถูกตัดออกก่อนเล่นซ้ำให้ผู้ให้บริการ เมื่อเซสชันผ่าน Compaction แล้ว ลายเซ็นกระบวนการคิดถูกผูกด้วยการเข้ารหัส กับคำนำหน้าบทสนทนา ณ เวลาที่สร้าง หลัง Compaction คำนำหน้าจะเปลี่ยนไป (เนื้อหาที่สรุปแล้วเข้ามาแทนต้นฉบับ) ดังนั้นการเล่นซ้ำลายเซ็นเดิมจะทำให้ Anthropic ปฏิเสธคำขอด้วย "Invalid signature in thinking block" ข้อความกระบวนการคิด จะถูกเก็บไว้เป็นบล็อกที่ไม่มีลายเซ็น แล้วจึงจัดการตามกฎด้านล่าง
  • บล็อกกระบวนการคิดที่ไม่มีลายเซ็นสำหรับเล่นซ้ำ หรือลายเซ็นว่างหรือมีแต่ช่องว่าง จะถูกตัดออกก่อนแปลงสำหรับผู้ให้บริการ หากทำให้รอบสนทนาของผู้ช่วยว่างเปล่า OpenClaw จะรักษารูปแบบรอบสนทนาไว้ด้วยข้อความการให้เหตุผลที่ละเว้นซึ่งไม่ว่างเปล่า
  • รอบสนทนาแบบเก่าของผู้ช่วยที่มีเฉพาะกระบวนการคิดและต้องถูกตัดออก จะถูกแทนที่ ด้วยข้อความการให้เหตุผลที่ละเว้นซึ่งไม่ว่างเปล่า เพื่อไม่ให้อะแดปเตอร์ของผู้ให้บริการนำ รอบสนทนาสำหรับเล่นซ้ำออก

Amazon Bedrock (Converse API)

  • รอบสนทนาข้อผิดพลาดของสตรีมผู้ช่วยที่ว่างจะถูกซ่อมแซมเป็นบล็อกข้อความสำรอง ที่ไม่ว่างก่อนเล่นซ้ำ Bedrock Converse ปฏิเสธข้อความของผู้ช่วยที่มี content: [] ดังนั้นรอบสนทนาของผู้ช่วยที่บันทึกไว้ซึ่งมี stopReason: "error" และเนื้อหาว่าง จะถูกซ่อมแซมบนดิสก์ก่อนโหลดด้วย
  • รอบสนทนาข้อผิดพลาดของสตรีมผู้ช่วยที่มีเพียงบล็อกข้อความว่างจะถูกนำออกจาก สำเนาสำหรับเล่นซ้ำในหน่วยความจำ แทนการเล่นซ้ำบล็อกว่างที่ไม่ถูกต้อง
  • ลายเซ็นกระบวนการคิดของผู้ช่วยก่อน Compaction จะถูกตัดออกก่อนเล่นซ้ำผ่าน Converse เมื่อเซสชันผ่าน Compaction แล้ว ด้วยเหตุผลเดียวกับ Anthropic ด้านบน
  • บล็อกกระบวนการคิดของ Claude ที่ไม่มีลายเซ็นสำหรับเล่นซ้ำ หรือลายเซ็นว่างหรือมีแต่ช่องว่าง จะถูกตัดออกก่อนเล่นซ้ำผ่าน Converse หากทำให้รอบสนทนาของผู้ช่วยว่างเปล่า OpenClaw จะรักษารูปแบบรอบสนทนาไว้ด้วยข้อความการให้เหตุผลที่ละเว้นซึ่งไม่ว่างเปล่า
  • รอบสนทนาแบบเก่าของผู้ช่วยที่มีเฉพาะกระบวนการคิดและต้องถูกตัดออก จะถูกแทนที่ ด้วยข้อความการให้เหตุผลที่ละเว้นซึ่งไม่ว่างเปล่า เพื่อให้การเล่นซ้ำผ่าน Converse รักษารูปแบบรอบสนทนาที่เข้มงวดไว้
  • การเล่นซ้ำจะกรองรอบสนทนาของผู้ช่วยที่เป็นสำเนาสะท้อนการส่งของ OpenClaw และที่ Gateway แทรกเข้ามา
  • การปรับรูปภาพให้ปลอดภัยเป็นไปตามกฎส่วนกลาง

Mistral (รวมถึงการตรวจจับตามรหัสโมเดล)

  • การปรับรหัสการเรียกเครื่องมือให้ปลอดภัย: strict9 (ตัวอักษรและตัวเลข ความยาว 9)

OpenRouter Gemini

  • การล้างลายเซ็นความคิด: ตัดค่า thought_signature ที่ไม่ใช่ base64 ออก (เก็บ base64 ไว้)

OpenRouter Anthropic

  • รอบสนทนาการเติมล่วงหน้าของผู้ช่วยที่อยู่ท้ายสุดจะถูกตัดออกจากเพย์โหลดโมเดล Anthropic ที่เข้ากันได้กับ OpenAI และผ่านการยืนยันของ OpenRouter เมื่อเปิดใช้การให้เหตุผล ให้ตรงกับพฤติกรรมการเล่นซ้ำของ Anthropic โดยตรงและ Cloudflare Anthropic

อื่น ๆ ทั้งหมด

  • ปรับรูปภาพให้ปลอดภัยเท่านั้น

พฤติกรรมในอดีต (ก่อน 2026.1.22)

ก่อนรีลีส 2026.1.22 OpenClaw ใช้การดูแลความถูกต้องของทรานสคริปต์ หลายชั้น:

  • ส่วนขยาย transcript-sanitize ทำงานทุกครั้งที่สร้างบริบทและสามารถ:
    • ซ่อมแซมการจับคู่การใช้เครื่องมือ/ผลลัพธ์
    • ปรับรหัสการเรียกใช้เครื่องมือให้ปลอดภัย (รวมถึงโหมดไม่เคร่งครัดที่คง _/- ไว้)
  • ตัวรันยังดำเนินการปรับข้อมูลให้ปลอดภัยเฉพาะสำหรับผู้ให้บริการ ซึ่ง เป็นการทำงานซ้ำซ้อน
  • มีการเปลี่ยนแปลงเพิ่มเติมเกิดขึ้นนอกนโยบายของผู้ให้บริการ รวมถึง การตัดแท็ก <final> ออกจากข้อความของผู้ช่วยก่อนบันทึก การละทิ้ง เทิร์นข้อผิดพลาดของผู้ช่วยที่ว่างเปล่า และการตัดเนื้อหาของผู้ช่วยหลังจาก เรียกใช้เครื่องมือ

ความซับซ้อนนี้ทำให้เกิดการถดถอยข้ามผู้ให้บริการ (โดยเฉพาะการจับคู่ openai-responses call_id|fc_id) การปรับปรุงเมื่อ 2026.1.22 ได้ลบ ส่วนขยายดังกล่าว รวมตรรกะไว้ที่ตัวรัน และกำหนดให้ OpenAI ไม่แก้ไข นอกเหนือจากการปรับรูปภาพให้ปลอดภัย

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page