Advanced setup
เวิร์กโฟลว์รันไทม์เอเจนต์ของ OpenClaw
เวิร์กโฟลว์สำหรับนักพัฒนาของรันไทม์เอเจนต์ (src/agents/) ในรีโพ OpenClaw
การตรวจสอบชนิดและการตรวจ lint
- เกตเริ่มต้นสำหรับเครื่องภายใน:
pnpm check(ตรวจสอบชนิด, lint, ตัวป้องกันนโยบาย) - เกตการบิลด์:
pnpm buildเมื่อการเปลี่ยนแปลงอาจส่งผลต่อเอาต์พุตการบิลด์ การแพ็กเกจ หรือขอบเขตของการโหลดแบบ lazy/โมดูล - เกตก่อน push แบบเต็ม:
pnpm build && pnpm check && pnpm check:test-types && pnpm test
การรันการทดสอบรันไทม์เอเจนต์
รันชุดการทดสอบหน่วยของรันไทม์เอเจนต์:
pnpm test \ "src/agents/agent-*.test.ts" \ "src/agents/embedded-agent-*.test.ts" \ "src/agents/agent-hooks/**/*.test.ts"glob แรกครอบคลุมชุด agent-tools*, agent-settings และ
agent-tool-definition-adapter* ด้วย
การทดสอบแบบสดไม่รวมอยู่ในการกำหนดค่าการทดสอบหน่วย ให้รันผ่าน wrapper
สำหรับการทดสอบแบบสด (ตั้งค่า OPENCLAW_LIVE_TEST=1 และต้องใช้ข้อมูลประจำตัวของผู้ให้บริการ):
pnpm test:live src/agents/embedded-agent-runner-extraparams.live.test.tsการทดสอบด้วยตนเอง
- รัน Gateway ในโหมดพัฒนา (ข้ามการเชื่อมต่อช่องทางผ่าน
OPENCLAW_SKIP_CHANNELS=1):pnpm gateway:dev - ทริกเกอร์การทำงานของเอเจนต์หนึ่งรอบผ่าน Gateway:
pnpm openclaw agent --message "Hello" --thinking low - ใช้ TUI สำหรับการดีบักแบบโต้ตอบ:
pnpm tui
สำหรับพฤติกรรมการเรียกใช้เครื่องมือ ให้พรอมต์เพื่อดำเนินการ read หรือ exec เพื่อให้สามารถสังเกต
การสตรีมของเครื่องมือและการจัดการเพย์โหลดได้
การรีเซ็ตเป็นสถานะเริ่มต้น
สถานะอยู่ในไดเรกทอรีสถานะของ OpenClaw: ค่าเริ่มต้นคือ ~/.openclaw หรือ
$OPENCLAW_STATE_DIR เมื่อตั้งค่าไว้ พาธต่อไปนี้สัมพันธ์กับไดเรกทอรีดังกล่าว:
| พาธ | จัดเก็บ |
|---|---|
openclaw.json |
การกำหนดค่า |
state/openclaw.sqlite |
ฐานข้อมูลสถานะรันไทม์ที่ใช้ร่วมกัน |
agents/<agentId>/agent/openclaw-agent.sqlite |
โปรไฟล์การยืนยันตัวตนของโมเดลสำหรับแต่ละเอเจนต์ (คีย์ API + OAuth) และสถานะรันไทม์ |
credentials/ |
ข้อมูลประจำตัวของผู้ให้บริการ/ช่องทางที่อยู่นอกที่เก็บโปรไฟล์การยืนยันตัวตน |
agents/<agentId>/sessions/ |
ประวัติทรานสคริปต์และแหล่งข้อมูลสำหรับย้ายเซสชันแบบเดิม |
sessions/ |
ที่เก็บเซสชันแบบเอเจนต์เดียวรุ่นเก่า (เฉพาะการติดตั้งเก่า) |
workspace/ |
พื้นที่ทำงานเริ่มต้นของเอเจนต์ (เอเจนต์เพิ่มเติมใช้ workspace-<agentId>) |
ลบพาธเหล่านี้เพื่อรีเซ็ตทั้งหมด สำหรับการรีเซ็ตที่เจาะจงยิ่งขึ้น:
- เฉพาะเซสชัน: อย่าลบ
agents/<agentId>/agent/openclaw-agent.sqlite; แถวข้อมูลเซสชันอยู่ในนั้นร่วมกับสถานะอื่นของแต่ละเอเจนต์ ใช้/newหรือ/resetเพื่อเริ่มเซสชันใหม่สำหรับแชตหนึ่งรายการ และใช้openclaw sessions cleanupสำหรับการบำรุงรักษาเซสชัน - เก็บข้อมูลการยืนยันตัวตนไว้: คง
agents/<agentId>/agent/openclaw-agent.sqliteและcredentials/ไว้
ระบบจะไม่อ่านไฟล์ auth-profiles.json แบบเดิมในขณะรันไทม์อีกต่อไป;
openclaw doctor --fix จะนำเข้าไฟล์เหล่านั้นไปยังที่เก็บ SQLite