Technical reference

สถาปัตยกรรมรันไทม์ของเอเจนต์

OpenClaw เป็นเจ้าของรันไทม์เอเจนต์ในตัว โค้ดรันไทม์อยู่ภายใต้ src/agents/ การรับส่งข้อมูลของโมเดล/ผู้ให้บริการอยู่ภายใต้ src/llm/ และสัญญาที่เปิดให้ Plugin ใช้งานจะแสดงผ่าน barrel ของ openclaw/plugin-sdk/*

โครงสร้างรันไทม์

พาธ รับผิดชอบ
src/agents/embedded-agent-runner/ ลูปการลองทำงานในตัว (run.ts, run/) การเลือกโมเดลและการปรับผู้ให้บริการให้อยู่ในรูปแบบมาตรฐาน (model*.ts) พารามิเตอร์คำขอแยกตามผู้ให้บริการ (extra-params.*) Compaction การเชื่อมต่อทรานสคริปต์และเซสชัน
src/agents/sessions/ การคงอยู่ของเซสชัน (session-manager.ts) การค้นหาทรัพยากร (package-manager.ts, resource-loader.ts) การโหลด extensions ภายในเซสชัน เทมเพลตพรอมต์ Skills ธีม และตัวแสดงผลเครื่องมือที่ใช้ TUI เป็นระบบเบื้องหลัง (tools/)
packages/agent-core/ แกนหลักของเอเจนต์ที่นำกลับมาใช้ใหม่ได้ (@openclaw/agent-core): ลูปเอเจนต์ ชนิดของฮาร์เนส ข้อความ ตัวช่วย Compaction เทมเพลตพรอมต์ Skills และสัญญาการจัดเก็บเซสชัน
src/agents/runtime/ ฟาซาดของ OpenClaw ที่เชื่อม @openclaw/agent-core เข้ากับรันไทม์ LLM ของ SDK สำหรับ Plugin และส่งออกซ้ำพร้อมยูทิลิตีพร็อกซีภายในเครื่อง
src/agents/agent-tools*.ts นิยามเครื่องมือที่ OpenClaw เป็นเจ้าของ สคีมาพารามิเตอร์ นโยบายเครื่องมือ อะแดปเตอร์ก่อน/หลังการเรียกเครื่องมือ และเครื่องมือแก้ไขของโฮสต์/แซนด์บ็อกซ์
src/agents/agent-hooks/ ฮุกของรันไทม์ในตัว: มาตรการป้องกัน Compaction คำสั่ง Compaction และการตัดบริบท
src/agents/harness/ รีจิสทรีฮาร์เนส นโยบายการเลือก และวงจรชีวิตสำหรับฮาร์เนสในตัวและฮาร์เนสที่ลงทะเบียนโดย Plugin
src/llm/ รีจิสทรีโมเดล/ผู้ให้บริการ ตัวช่วยการรับส่งข้อมูล และการติดตั้งใช้งานสตรีมเฉพาะผู้ให้บริการ (src/llm/providers/)

ขอบเขต

แกนหลักเรียกรันไทม์ในตัวผ่านโมดูล OpenClaw และ barrel ของ SDK โดยไม่มีแพ็กเกจเฟรมเวิร์กเอเจนต์ภายนอกเหลืออยู่ Plugin ใช้จุดเริ่มต้น openclaw/plugin-sdk/* ที่มีเอกสารกำกับ และไม่นำเข้าส่วนภายในของ src/**

@earendil-works/pi-tui ยังคงเป็นการขึ้นต่อกันของบุคคลที่สาม ซึ่งเป็นชุดเครื่องมือคอมโพเนนต์เทอร์มินัลที่ TUI ภายในเครื่องและตัวแสดงผลเครื่องมือของเซสชันใช้ การนำมาไว้ภายในจะเป็นงานรวมซอร์สของการขึ้นต่อกันแยกต่างหาก

แมนิเฟสต์

แพ็กเกจทรัพยากรประกาศทรัพยากร OpenClaw ในเมทาดาทา package.json รายการเป็นพาธไฟล์หรือ glob ที่สัมพันธ์กับรากของแพ็กเกจ:

json
{  "openclaw": {    "extensions": ["extensions/index.ts"],    "skills": ["skills/*.md"],    "prompts": ["prompts/*.md"],    "themes": ["themes/*.json"]  }}

ประเภททรัพยากรที่ไม่ได้ระบุไว้ในแมนิเฟสต์จะย้อนกลับไปใช้การค้นหาไดเรกทอรี extensions/, skills/, prompts/ และ themes/ ตามแบบแผน

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

  • รหัสรันไทม์ในตัวคือ openclaw นามแฝงเดิม pi จะถูกปรับเป็น openclaw; codex-app-server จะถูกปรับเป็น codex
  • ฮาร์เนสของ Plugin ลงทะเบียนรหัสรันไทม์เพิ่มเติม (ตัวอย่างเช่น codex)
  • นโยบายรันไทม์คือการกำหนดค่า agentRuntime.id ที่มีขอบเขตตามโมเดล/ผู้ให้บริการ (รายการโมเดลมีลำดับความสำคัญเหนือรายการผู้ให้บริการ) หากไม่ได้ตั้งค่าหรือเป็น default จะได้รับการตีความเป็น auto
  • auto จะเลือกฮาร์เนสของ Plugin ที่ลงทะเบียนไว้และรองรับเส้นทางผู้ให้บริการที่มีผล มิฉะนั้นจะเลือกรันไทม์ OpenClaw ในตัว คำนำหน้าผู้ให้บริการหรือโมเดลเพียงอย่างเดียวจะไม่เลือกฮาร์เนส
  • OpenAI อาจเลือก codex โดยปริยายได้เฉพาะสำหรับเส้นทาง Platform Responses หรือ ChatGPT Responses อย่างเป็นทางการผ่าน HTTPS ที่ตรงกันทุกประการและไม่มีการแทนที่คำขอที่ผู้ใช้กำหนด อะแดปเตอร์ Completions ปลายทางที่กำหนดเอง และเส้นทางที่มีพฤติกรรมคำขอซึ่งผู้ใช้กำหนดจะยังคงใช้ openclaw; ระบบจะปฏิเสธปลายทาง HTTP แบบข้อความธรรมดาที่เป็นทางการ ดู รันไทม์เอเจนต์โดยปริยายของ OpenAI

รุ่นของรันไทม์โมเดล

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

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

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

Was this useful?
On this page

On this page