OpenClaw ทำงานเป็นลูป: อ่านพื้นที่ทำงาน เรียกคำสั่งเชลล์ผ่านเครื่องมือ exec อ่านผลลัพธ์ แล้วตัดสินใจขั้นตอนถัดไป แต่การทดสอบ API ที่อยู่หลัง GUI ของ Apidog จะไม่เข้ามาอยู่ในลูปนี้จนกว่าคุณจะเชื่อมต่อมันเข้ากับเอเจนต์โดยตรง
วิธีเชื่อมต่อคือใช้ Apidog CLI (apidog-cli) เพื่อรันสถานการณ์ทดสอบที่สร้างใน Apidog จากเทอร์มินัล เมื่อ OpenClaw รู้จักคำสั่ง apidog run แล้ว มันจะรัน API test อ่าน exit code และใช้ผลลัพธ์เป็นเงื่อนไขผ่าน/ไม่ผ่านได้เหมือน unit test
บทความนี้เน้นการตั้งค่าที่ต้องใช้กับ OpenClaw โดยตรง:
- เพิ่มกฎ Apidog ลงใน
AGENTS.md - คัดลอกคำสั่ง
apidog runจาก Apidog - อนุญาตให้ OpenClaw เรียกคำสั่งผ่าน
exec - ใช้ exit code และรายงาน CLI เพื่อให้เอเจนต์ตัดสินใจขั้นตอนถัดไป
ก่อนเริ่ม ให้ติดตั้งและล็อกอิน Apidog CLI ให้เรียบร้อย โดย apidog --version ต้องแสดงเวอร์ชัน และบัญชี Apidog ต้องลงชื่อเข้าใช้แล้ว ดูขั้นตอนเพิ่มเติมได้ที่ วิธีติดตั้ง Apidog CLI ด้วย AI coding agent
OpenClaw ที่กล่าวถึงนี้คืออะไร
OpenClaw คือ AI agent แบบโอเพนซอร์สที่ทำงานบนเครื่องของคุณ มี workspace, skills และเครื่องมือ exec สำหรับรันคำสั่งเชลล์จริง
หากคุณเคยรัน openclaw แล้วเห็นมันแก้ไขไฟล์และเรียกคำสั่งในโปรเจกต์ คุณอยู่ในบริบทที่ถูกต้องแล้ว สำหรับภาพรวมการตั้งค่า โปรดดู:
OpenClaw เรียนรู้กฎของโปรเจกต์จากไฟล์ใน workspace โดยไฟล์สำคัญสำหรับงานนี้คือ AGENTS.md ซึ่งช่วยเปลี่ยนคำสั่งชั่วคราวอย่าง “รัน API tests” ให้เป็นกฎถาวรที่เอเจนต์ใช้งานได้ทุกเซสชัน
ขั้นตอนที่ 1: เพิ่มกฎ Apidog ลงใน AGENTS.md
OpenClaw อ่านไฟล์ใน workspace และใส่เนื้อหาเข้าไปในบริบทของเอเจนต์ ใช้ AGENTS.md เพื่อบอกวิธีรันและตีความผลการทดสอบ API
workspace เริ่มต้นคือ:
~/.openclaw/workspace
คุณสามารถชี้ OpenClaw ไปยังไดเรกทอรีโปรเจกต์ผ่าน agents.list[].workspace ได้ และยังรองรับ AGENTS.md ที่กำหนดขอบเขตตามไดเรกทอรีย่อย ดูรายละเอียดได้ใน เอกสารอ้างอิง AGENTS.md ของ OpenClaw
เพิ่มบล็อกนี้ลงใน AGENTS.md ของโปรเจกต์:
## การทดสอบ API ด้วย Apidog
- หากต้องการรันการทดสอบ API ให้ใช้ Apidog CLI: `apidog run -t <scenario_id> -e <env_id> -r cli`
- รหัสออก 0 หมายถึงการยืนยันทั้งหมดผ่าน ไม่ใช่ศูนย์หมายความว่ามีบางอย่างล้มเหลว ถือเป็นเกตผ่าน/ไม่ผ่าน
- เครื่องได้รับการยืนยันตัวตนด้วย `apidog login` แล้ว อย่าเพิ่มแฟล็ก --access-token และอย่าใส่โทเค็นในไฟล์นี้เด็ดขาด
- หากแฟล็กดูไม่คุ้นเคย ให้รัน `apidog run --help` แทนการคาดเดา
อย่าเก็บ scenario ID ไว้เฉพาะในแชต เพราะข้อมูลนั้นจะหายไปเมื่อจบเซสชัน การใส่คำสั่งจริงลงใน AGENTS.md ทำให้เพื่อนร่วมทีมและ OpenClaw ทุกครั้งใช้คำสั่งเดียวกันได้
ขั้นตอนที่ 2: รับคำสั่งจาก Apidog
ไม่ต้องเดา scenario ID หรือ environment ID เอง
- เปิดสถานการณ์ทดสอบใน Apidog
- ไปที่แท็บ CI/CD
- คัดลอกคำสั่งที่ Apidog สร้างให้
ตัวอย่าง:
apidog run -t 1234567 -e 890123 -r cli
ความหมายของแฟล็ก:
| แฟล็ก | ความหมาย |
|---|---|
-t |
ID ของสถานการณ์ทดสอบ |
-e |
ID ของสภาพแวดล้อม |
-r cli |
ใช้ CLI reporter เพื่อพิมพ์ผลลัพธ์ในเทอร์มินัล |
แทนที่ค่าตัวอย่างใน AGENTS.md ด้วย ID จริงของคุณ เพื่อให้ OpenClaw รันสถานการณ์ที่ถูกต้องกับ environment ที่ถูกต้องเสมอ
หากต้องการปรับแฟล็กเพิ่มเติม ดูได้ที่:
ขั้นตอนที่ 3: ให้เอเจนต์รันการทดสอบ
เมื่อ AGENTS.md อยู่ใน workspace ที่ OpenClaw ใช้งานแล้ว คุณสามารถให้เอเจนต์แก้ไขโค้ดที่เกี่ยวข้องกับ API หรือสั่งให้รันการตรวจสอบได้โดยตรง
OpenClaw จะอ่านกฎใน AGENTS.md และรันคำสั่งลักษณะนี้ผ่าน exec:
apidog run -t 1234567 -e 890123 -r cli
ตั้งค่า permission สำหรับ exec
OpenClaw ควบคุมการรันคำสั่งผ่าน permission mode เช่น:
denyallowlistaskautofull
ดูรายละเอียดได้ที่ หน้าโหมดการอนุญาตของ OpenClaw
สำหรับ coding agent ค่า auto เหมาะกับกรณีทั่วไป เพราะคำสั่งใน allowlist จะรันได้โดยไม่ต้องถาม ส่วนคำสั่งอื่นจะถูกตรวจสอบก่อน
หากใช้โหมด ask OpenClaw จะหยุดรอการอนุมัติก่อนรัน apidog run คุณสามารถอนุมัติครั้งแรก หรือเพิ่ม apidog ลงใน allowlist เพื่อให้การทดสอบแบบอ่านอย่างเดียวกับ staging รันได้ต่อเนื่อง
ตั้งค่าส่วนนี้ภายใต้ tools.exec ใน openclaw.json
ขั้นตอนที่ 4: อ่านรายงานภายใน OpenClaw
ตัวรายงาน -r cli แสดงผลแบบทีละขั้นในเทอร์มินัล รวมถึง:
- คำขอที่ถูกส่ง
- assertion แต่ละรายการ
- assertion ที่ล้มเหลว
- ค่าที่คาดหวังและค่าจริง
ข้อมูลนี้สำคัญ เพราะเป็นสิ่งที่ OpenClaw ใช้เพื่อวิเคราะห์ว่าควรแก้ไขอะไรต่อไป ดังนั้นควรเก็บ cli reporter ไว้เสมอ
หากต้องการไฟล์รายงานสำหรับเปิดในเบราว์เซอร์หรือแชร์กับทีม ให้เพิ่ม HTML reporter:
apidog run -t 1234567 -e 890123 -r cli,html
รายงาน HTML จะถูกเขียนลงใน:
./apidog-reports
ใช้ cli,html แทน html อย่างเดียว เพื่อให้ OpenClaw ยังอ่านผลลัพธ์แบบ inline ได้
หากต้องการ JUnit format สำหรับ CI dashboard หรือรูปแบบรายงานอื่น ดู คู่มือรายงานการทดสอบ Apidog CLI
การทดสอบ OpenClaw ภายในลูปของตัวเอง
ผลลัพธ์ที่ต้องการไม่ใช่แค่ให้ OpenClaw รันคำสั่งเมื่อคุณสั่ง แต่คือให้มันเลือกใช้ API tests เองตามกฎใน AGENTS.md
ตัวอย่างลูปการทำงาน:
- OpenClaw แก้ไข handler สำหรับ response การชำระเงิน
- OpenClaw รัน scenario ของ Apidog กับ staging
- OpenClaw อ่าน exit code และผลลัพธ์ CLI
- ถ้า exit code เป็น
0ให้ดำเนินงานต่อ - ถ้า exit code ไม่เป็น
0ให้อ่าน assertion ที่ล้มเหลว - แก้โค้ดและรันซ้ำ
API tests จึงกลายเป็นส่วนหนึ่งของลูปเดียวกับการแก้โค้ดและรัน unit tests
แนวทางนี้คือโมเดล delegate-then-verify:
- คุณสร้างและตรวจสอบ scenario ใน Apidog
- OpenClaw รันคำสั่งและอ่านผลลัพธ์
- exit code เป็นเกตที่ใช้ตัดสินผลผ่าน/ไม่ผ่าน
อ่านแนวทางเพิ่มเติมได้ที่:
ตรวจสอบว่า OpenClaw กำลังรัน CLI จริง ๆ
อย่าเชื่อเพียงข้อความสรุปของเอเจนต์ ให้ตรวจสอบ 3 จุดต่อไปนี้
1. ตรวจสอบคำสั่งที่ถูกเรียกจริง
ดู log ของ OpenClaw แล้วค้นหาบรรทัด:
apidog run ...
ต้องมีทั้งคำสั่งและ output ที่ตามมา หาก OpenClaw ระบุว่ารัน tests แล้ว แต่ไม่มีคำสั่งใน log แสดงว่ามันสรุปงานที่ไม่ได้ทำ
ให้สั่งมันรันใหม่และแสดง raw output
2. ตรวจสอบ exit code
ถามเอเจนต์โดยตรง:
What was the exit code of that apidog run command?
กติกาคือ:
exit code 0 = assertion ทุกข้อผ่าน
exit code ไม่ใช่ 0 = มีอย่างน้อยหนึ่ง assertion ล้มเหลว
หากข้อความสรุประบุว่า “การทดสอบผ่าน” แต่ exit code ไม่ใช่ 0 ให้เชื่อ exit code
3. ตรวจสอบ scenario และ environment ID
หากพบข้อความเช่น:
scenario not found
ตรวจสอบค่าเหล่านี้อีกครั้ง:
-t <scenario_id>
-e <env_id>
เปรียบเทียบค่าจาก:
AGENTS.md- คำสั่งที่คัดลอกจากแท็บ CI/CD ของ Apidog
ค่าที่อยู่ใน AGENTS.md ควรเป็นแหล่งอ้างอิงเดียวที่ OpenClaw ใช้งาน
ทางเลือก: เชื่อมต่อเซิร์ฟเวอร์ Apidog MCP
การใช้ apidog run ผ่าน exec ครอบคลุมการรันทดสอบเป็นหลัก แต่คุณสามารถใช้ Model Context Protocol (MCP) เพื่อให้ OpenClaw เข้าถึงข้อมูลจำเพาะ API ระหว่างเขียนโค้ดได้
OpenClaw รองรับการเพิ่ม MCP server ด้วยคำสั่ง:
openclaw mcp add <name>
คำสั่งนี้จะบันทึกคำจำกัดความของ server ลงใน:
~/.openclaw/openclaw.json
ภายใต้ mcp.servers และรองรับแฟล็ก stdio เช่น --command และ --arg ดูรายละเอียดได้ใน เอกสารประกอบ MCP ของ OpenClaw
เซิร์ฟเวอร์ Apidog MCP ช่วยเปิดเผย API specification ผ่าน MCP เพื่อให้ OpenClaw อ่าน schema ระหว่างพัฒนาได้
แบ่งหน้าที่ให้ชัดเจน:
| เครื่องมือ | หน้าที่ |
|---|---|
| Apidog CLI | รัน API tests และคืน exit code |
| Apidog MCP | ส่ง API specification และ schema ให้เอเจนต์ |
เมื่อ OpenClaw ทำผิดพลาด
ปัญหาต่อไปนี้พบได้บ่อยระหว่างการตั้งค่า
OpenClaw เพิกเฉยต่อ AGENTS.md
หาก OpenClaw รันคำสั่งทั่วไปหรือไม่รันคำสั่งเลย ให้ตรวจสอบว่า:
-
AGENTS.mdอยู่ใน workspace ที่ active - กฎไม่ได้อยู่ในไดเรกทอรีที่อยู่นอกขอบเขตของเอเจนต์
- คุณเริ่ม session ใหม่หลังแก้ไขไฟล์แล้ว
OpenClaw รองรับ AGENTS.md แบบกำหนดขอบเขตตามไดเรกทอรี ดังนั้นตำแหน่งไฟล์มีผลต่อการโหลดกฎ
OpenClaw ไม่รันอะไรเพราะ exec ถูกบล็อก
หาก apidog run ถูกข้ามหรือถูกปฏิเสธ ให้ตรวจสอบ tools.exec ในการตั้งค่า OpenClaw
แนวทางแก้ไข:
- เปลี่ยน permission mode เป็น
auto - เพิ่ม
apidogลงใน allowlist
ดูวิธีเปิดใช้เฉพาะคำสั่งที่จำเป็นได้ใน คู่มือการติดตั้ง OpenClaw อย่างปลอดภัย
OpenClaw พยายามส่ง access token
หากเอเจนต์เพิ่ม --access-token เอง แสดงว่ามันกำลังเดาคำสั่งจากตัวอย่างสาธารณะ
ย้ำกฎนี้ใน AGENTS.md:
เครื่องได้รับการยืนยันตัวตนด้วย `apidog login` แล้ว
อย่าเพิ่ม `--access-token`
อย่าใส่โทเค็นลงในไฟล์
อย่าเก็บ token จริงใน AGENTS.md ดูรูปแบบการยืนยันตัวตนที่ถูกต้องได้ที่ การยืนยันตัวตน Apidog CLI
OpenClaw สร้างแฟล็กขึ้นมาเอง
หากเจอข้อผิดพลาด:
unknown option
อย่าให้เอเจนต์เดาต่อ ให้รัน:
apidog run --help
จากนั้นใช้เฉพาะแฟล็กที่ CLI เวอร์ชันที่ติดตั้งรองรับ
OpenClaw รายงานว่าผ่าน ทั้งที่การรันล้มเหลว
นี่คือข้อผิดพลาดที่สำคัญที่สุด กำหนดให้ exit code เป็นผลลัพธ์สุดท้ายเสมอ:
exit code 0 => ผ่าน
exit code ไม่ใช่ 0 => ไม่ผ่าน
หากข้อความสรุปและ exit code ขัดแย้งกัน ให้เชื่อ exit code
หลักการเดียวกันนี้ใช้ได้กับเอเจนต์อื่นเช่นกัน ดูเพิ่มเติมได้ที่:
จากเอเจนต์รายวันสู่ลูปที่ผ่านการทดสอบ
การตั้งค่าที่ต้องทำมีเพียงไม่กี่ขั้นตอน:
- ติดตั้ง
apidog-cliตามคู่มือการติดตั้ง - เพิ่มคำสั่ง Apidog ลงใน
AGENTS.md - ตั้งค่า
tools.execเพื่อให้ OpenClaw รันคำสั่งได้ - ใช้ exit code เป็นเกตผ่าน/ไม่ผ่าน
หลังจากนั้น OpenClaw จะมีคำสั่งที่ชัดเจนสำหรับรัน API tests และอ่านผลลัพธ์ในลูปเดียวกับที่ใช้แก้ไขโค้ด ทำให้ตรวจพบ endpoint ที่เสียได้ระหว่างทำงาน แทนที่จะพบหลังเผยแพร่แล้ว
การทดสอบที่อยู่หลัง GUI จะรันเมื่อมนุษย์คลิก แต่คำสั่ง apidog run สามารถรันได้ทุกครั้งที่ OpenClaw ต้องตรวจสอบงาน
สร้าง scenario ใน Apidog คัดลอกคำสั่งลงใน AGENTS.md แล้วให้ OpenClaw ใช้งานในการเปลี่ยนแปลงครั้งถัดไป
ดาวน์โหลด Apidog เพื่อเริ่มสร้าง scenario และหากต้องการใช้เกตเดียวกันใน CI โดยไม่ต้องมีเอเจนต์ ดู Apidog CLI ใน GitHub Actions
Top comments (0)