นี่คือซีรีส์ 10 ตอนที่แบ่งปันว่า Apidog พัฒนา Apidog CLI ซึ่งเป็นเครื่องมือบรรทัดคำสั่งสำหรับการทดสอบ API และการจัดการวงจรชีวิต API ได้อย่างไร อ่านตามลำดับหรือข้ามไปยังโพสต์ใดก็ได้ที่คุณสนใจ:
| หัวข้อ | จุดเน้น | |
|---|---|---|
| 1 | เราสร้างเครื่องมือ MCP 126 ชิ้น แต่มันไม่ใช่โซลูชันที่ดีที่สุดสำหรับ Agent | การค้นพบปัญหา |
| 2 | ทำไมเราจึงพัฒนา Apidog CLI ขึ้นมาใหม่ | การพัฒนาระบบสถาปัตยกรรม |
| 3 | กฎทอง: CLI สร้างข้อเท็จจริง, โมเดลกระทำบนข้อเท็จจริง | ปรัชญาหลัก |
| 4 | agentHints: สอน CLI ให้สื่อสารกับ Agent |
ผลลัพธ์ที่มีโครงสร้าง |
| 5 | SKILL: การส่งมอบประสบการณ์การทำงานในรูปแบบโค้ด | ประสบการณ์การปฏิบัติงาน |
| 6 | ตัวเลขไม่โกหก: เรียกใช้เครื่องมือลดลง 30%, ใช้ Token ลดลง 25% | ผลลัพธ์เชิงปริมาณ |
| 7 | จาก PRD สู่ Testing Loop: เวิร์กโฟลว์ Agent ที่สมบูรณ์ด้วย Apidog CLI | บทแนะนำการใช้งานจริง |
| 8 | ทำไมความเข้ากันได้กับ CI/CD จึงเป็นสิ่งสำคัญที่ไม่สามารถต่อรองได้สำหรับเครื่องมือ Agent | มุมมอง DevOps |
| 9 | AI Branch: การเปลี่ยนแปลงโปรเจกต์ที่ปลอดภัยยิ่งขึ้นด้วย AI Agents | ชั้นความปลอดภัย |
| 10 | Spec-First เป็นเรื่องของเมื่อวาน ยินดีต้อนรับสู่ Skill-First. | วิสัยทัศน์และอนาคต |
เมื่อ Agent แก้ไขทรัพยากรโปรเจกต์ ความปลอดภัยและการตรวจสอบเป็นสิ่งสำคัญ AI Branch มอบสภาพแวดล้อมการแก้ไขที่แยกจากกัน โดยการเปลี่ยนแปลงจะเข้าสู่สาขาเป้าหมายก็ต่อเมื่อได้รับการยืนยันจากมนุษย์แล้วเท่านั้น
ความท้าทายด้านความปลอดภัย
เมื่อ AI Agents เข้าร่วมในการพัฒนาและทดสอบ API พวกเขาสามารถสร้าง อัปเดต และลบทรัพยากรโปรเจกต์ผ่านคำสั่ง CLI ได้
อำนาจนี้มาพร้อมกับความเสี่ยง
| ความเสี่ยง | สิ่งที่อาจเกิดขึ้น |
|---|---|
| ผลลัพธ์ที่คาดเดาไม่ได้ | Agent เขียนเนื้อหาที่ไม่คาดคิด |
| ข้อผิดพลาดของฟิลด์ | การยืนยันผิดพลาด, พารามิเตอร์หายไป |
| ขอบเขตเกินเลย | Agent แก้ไขทรัพยากรเกินกว่าภารกิจ |
| ไม่มีบันทึกการตรวจสอบ | การเปลี่ยนแปลงปรากฏในสาขาหลักโดยตรง |
| การหยุดชะงักของทีม | สาขาการทำงานร่วมกันมีการเปลี่ยนแปลงโดยไม่คาดคิด |
คุณจะให้ Agent ทำงานในโปรเจกต์จริงได้อย่างไรโดยไม่เสี่ยงต่อสาขาหลัก?
AI Branch: ชั้นความปลอดภัย
AI Branch เป็น Sprint Branch ประเภทพิเศษที่ออกแบบมาโดยเฉพาะสำหรับการทำงานของ AI ภายนอกและ CLI

แนวคิดหลัก:
การดำเนินการแก้ไขทั้งหมดที่เริ่มต้นจาก Apidog CLI จะถูกถือว่าเริ่มต้นโดย AI / AI Agents โดยค่าเริ่มต้น
AI Branch มอบ สาขาการแก้ไขที่แยกจากกัน ให้กับ AI Agents การเปลี่ยนแปลงจะยังคงอยู่ใน AI Branch จนกว่ามนุษย์จะตรวจสอบและรวมเข้าด้วยกัน
Agent ทำการเปลี่ยนแปลงผ่าน CLI
↓
การเปลี่ยนแปลงถูกเก็บไว้ใน AI Branch (แยก)
↓
ผู้ใช้ตรวจสอบความแตกต่าง
↓
ผู้ใช้ยืนยันขอบเขตของทรัพยากร
↓
รวมไปยังสาขาเป้าหมาย (โดยตรงหรือคำขอรวม)สาขาหลักจะไม่ถูกแตะต้องจนกว่าคุณจะอนุมัติ
ทำไมต้องมี AI Branch
การแก้ไขที่เริ่มต้นโดย AI อาจคาดเดาไม่ได้ Apidog CLI มีความสามารถในการแก้ไขที่หลากหลาย เช่น endpoints, schemas, test scenarios, test suites และอื่นๆ
AI Branch ได้รับการออกแบบมาสำหรับการดำเนินการแก้ไขที่เริ่มต้นโดย AI ที่มีความเสี่ยงสูงเหล่านี้
ช่วยให้ AI Agents แก้ไขทรัพยากรโปรเจกต์ภายในขอบเขตที่ควบคุมได้:
| ไม่มี AI Branch | มี AI Branch |
|---|---|
| Agent เขียนลงสาขาหลักโดยตรง | Agent เขียนลงสาขาที่แยกจากกัน |
| การเปลี่ยนแปลงปรากฏขึ้นทันที | การเปลี่ยนแปลงรอการตรวจสอบ |
| ไม่มีตาข่ายนิรภัย | ต้องได้รับการยืนยันจากมนุษย์ |
| ความเสี่ยงของการแก้ไขโดยไม่ตั้งใจ | ขอบเขตจำกัดเฉพาะทรัพยากรที่ระบุ |
AI Branch คืออะไร?
AI Branch เป็น sprint branch พิเศษ ที่มีลักษณะเฉพาะ:
คุณสมบัติหลัก
| คุณสมบัติ | คำอธิบาย |
|---|---|
| การแก้ไขแบบแยก | การเปลี่ยนแปลงถูกเก็บไว้ใน AI Branch ไม่กระทบสาขาหลักหรือสาขาต้นทาง |
| แหล่งที่มาที่ชัดเจน | ไม่สามารถสร้างใน client ได้ ต้องมาจาก CLI/MCP; บันทึกสาขาต้นทาง |
| การยืนยันจากมนุษย์ | การเปลี่ยนแปลงต้องได้รับการยืนยันก่อนการรวม |
| ไม่จำกัดจำนวน | สร้าง AI Branch ได้มากเท่าที่ต้องการสำหรับงานที่แตกต่างกัน |
| การเก็บถาวรอัตโนมัติ | สาขาที่ไม่มีความแตกต่างจะถูกเก็บถาวรทุก 24 ชั่วโมง |
วิธีการทำงาน
| การดำเนินการ | สถานที่เกิดขึ้น |
|---|---|
| AI สร้าง Endpoint | ใน AI Branch |
| AI อัปเดต Test Scenario | ใน AI Branch |
| ทีมตรวจสอบการเปลี่ยนแปลง | ใน client หรือ CLI preview |
| ผู้ใช้อนุมัติการรวม | การกระทำของผู้ใช้ ไม่ใช่ AI |
| การเปลี่ยนแปลงเข้าสู่สาขาเป้าหมาย | หลังจากการยืนยัน |
การแก้ไขภายใน client โดยผู้ใช้ปกติยังคงปฏิบัติตามสิทธิ์ของสมาชิกโปรเจกต์และกฎการป้องกันสาขา
กรณีการใช้งาน
AI Branch เหมาะสมเมื่อ AI ต้องเข้าร่วมในการบำรุงรักษาโปรเจกต์ ในขณะที่ยังคงรักษาการแยกสาขาและการยืนยันโดยมนุษย์
| สถานการณ์ | AI Branch ช่วยได้อย่างไร |
|---|---|
| สร้างฉบับร่าง API จากโค้ด | AI สร้าง endpoints ใน AI Branch; ผู้ใช้ยืนยันก่อนการรวม |
| จัดระเบียบทรัพยากร API จำนวนมาก | AI ปรับโฟลเดอร์, คำอธิบาย, โมเดลโดยไม่กระทบสาขาการทำงานร่วมกัน |
| สร้างฉบับร่างการทดสอบอัตโนมัติ | AI สร้าง test scenarios/cases ใน AI Branch สำหรับการตรวจสอบโดยผู้ทดสอบ |
| เติมเต็มช่องว่างในเอกสาร API | AI เสริมฟิลด์ที่ขาดหายไปตามรายงานข้อบกพร่องหรือการนำไปใช้งาน |
| การเขียนแบบกลุ่มใน CI/CD | เวิร์กโฟลว์อัตโนมัติเขียนไปยัง AI Branch, รอการรวมโดยผู้ใช้ |
เวิร์กโฟลว์พื้นฐาน
เวิร์กโฟลว์ AI Branch ทั่วไป:
┌─────────────────────────────────────────────────────────────────┐
│ เวิร์กโฟลว์ AI BRANCH │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ขั้นตอนที่ 1: สร้าง AI Branch │
│ ┌───────────────────────────────────────────┐ │
│ │ apidog branch create --type ai │ │
│ │ --name "ai/20260312-from-main-feature" │ │
│ │ --from main │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ขั้นตอนที่ 2: นำเข้าหรือสร้างทรัพยากร │
│ ┌───────────────────────────────────────────┐ │
│ │ apidog branch pick-to (นำเข้าที่มีอยู่) │ │
│ │ หรือ │ │
│ │ apidog endpoint create (สร้างใหม่) │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ขั้นตอนที่ 3: AI แก้ไขทรัพยากร │
│ ┌───────────────────────────────────────────┐ │
│ │ Agent ใช้ CLI เพื่ออัปเดต endpoints, │ │
│ │ schemas, test scenarios ฯลฯ │ │
│ │ (พารามิเตอร์ --branch ระบุ AI Branch) │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ขั้นตอนที่ 4: ผู้ใช้ตรวจสอบความแตกต่าง │
│ ┌───────────────────────────────────────────┐ │
│ │ apidog merge-request preview │ │
│ │ หรือ │ │
│ │ ดูใน Apidog client │ │
│ └───────────────────────────────────────────┘ │
│ ↓ │
│ ขั้นตอนที่ 5: รวมไปยังสาขาเป้าหมาย │
│ ┌───────────────────────────────────────────┐ │
│ │ การรวมโดยตรง (สาขาที่ไม่ได้ป้องกัน) │ │
│ │ หรือ │ │
│ │ คำขอรวม (สาขาที่ป้องกัน) │ │
│ └───────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘สร้าง AI Branch
ใช้ branch create --type ai:
apidog branch create \
--project 123456 \
--type ai \
--name "ai/20260312-from-main-userRegister" \
--from mainคำแนะนำในการตั้งชื่อ: ai/YYYYMMDD-from-sourceBranch-featureOrModule
| คำสั่ง | วัตถุประสงค์ |
|---|---|
branch create --type ai |
สร้าง AI Branch |
branch list --type ai |
ดู AI Branch ในโปรเจกต์ |
branch list --type all |
ดูประเภทสาขาทั้งหมด |
branch get --type ai |
ดูรายละเอียด AI Branch |
แก้ไขทรัพยากรใน AI Branch
เมื่อ CLI เขียนทรัพยากรโปรเจกต์ ให้ใช้พารามิเตอร์ --branch เพื่อเขียนลงใน AI Branch:
| ทรัพยากร | ตัวอย่างคำสั่ง |
|---|---|
| HTTP endpoint | apidog endpoint create --project <id> --branch <aiBranchName> --file ./endpoint.json |
| โมเดลข้อมูล | apidog schema update <schemaId> --project <id> --branch <aiBranchName> --file ./schema.json |
| Test scenario | apidog test-scenario update <scenarioId> --project <id> --branch <aiBranchName> --file ./scenario.json |
| Test suite | apidog test-suite create --project <id> --branch <aiBranchName> --file ./suite.json |
เวิร์กโฟลว์ที่แนะนำ:
# 1. รับ schema
apidog cli-schema get endpoint-create
# 2. ตรวจสอบความถูกต้องก่อนเขียน
apidog cli-schema validate endpoint-create --file ./endpoint.json
# 3. เขียนไปยัง AI Branch (ไม่ใช่ main)
apidog endpoint create \
--project 123456 \
--branch "ai/20260312-from-main-userRegister" \
--file ./endpoint.jsonนำเข้าทรัพยากรที่มีอยู่
หากต้องการแก้ไขทรัพยากรที่มีอยู่ ให้นำเข้าจากสาขาต้นทางก่อน:
apidog branch pick-to \
--project 123456 \
--from main \
--to "ai/20260312-from-main-userRegister" \
--endpoint-ids 1001,1002สิ่งนี้ช่วยให้มั่นใจว่า AI ทำงานกับเวอร์ชันฐานที่ถูกต้อง
ตรวจสอบการเปลี่ยนแปลงก่อนการรวม
ก่อนการรวม ให้ดูตัวอย่างความแตกต่าง:
apidog merge-request preview \
--project 123456 \
--from "ai/20260312-from-main-userRegister" \
--to mainหรือดูความแตกต่างฉบับเต็มใน Apidog client
| คำสั่ง | วัตถุประสงค์ |
|---|---|
merge-request preview |
สแกนการเปลี่ยนแปลงที่คาดว่าจะเกิดขึ้น |
branch get --type ai |
ดูข้อมูล AI Branch |
รวม AI Branch
หลังจากตรวจสอบแล้ว ให้รวมการเปลี่ยนแปลง:
การรวมโดยตรง (สาขาที่ไม่ได้ป้องกัน)
apidog branch merge \
--project 123456 \
--from "ai/20260312-from-main-userRegister" \
--to main \
--endpoint-ids 1001,1002คำขอรวม (สาขาที่ป้องกัน)
apidog merge-request create \
--project 123456 \
--from "ai/20260312-from-main-userRegister" \
--to main \
--reviewer-ids 20001,20002 \
--endpoint-ids 1001,1002
| คำสั่ง | วัตถุประสงค์ |
|---|---|
branch merge |
รวมโดยตรงไปยังสาขาที่ไม่ได้ป้องกัน |
merge-request create |
สร้างคำขอรวมเพื่อตรวจสอบ |
merge-request approve |
อนุมัติคำขอรวม |
merge-request reject |
ปฏิเสธคำขอรวม |
สำคัญ: คำสั่ง Merge จะประมวลผลเฉพาะรายการทรัพยากรที่ระบุไว้อย่างชัดเจนเท่านั้น ยืนยันการพึ่งพากัน (ไดเรกทอรี, โมเดล, คอมโพเนนต์การตอบกลับ, การทดสอบ) ก่อนการรวม
การเก็บถาวรและการลบ
หลังจากที่การเปลี่ยนแปลงถูกรวมหรือไม่จำเป็นอีกต่อไป:
# เก็บถาวร
apidog branch archive "ai/20260312-from-main-userRegister" \
--project 123456 --type ai
# ลบ (หลังจากเก็บถาวร)
apidog branch delete "ai/20260312-from-main-userRegister" \
--project 123456 --type aiสิทธิ์การแก้ไขของ AI ภายนอก
โดยค่าเริ่มต้น CLI จะเขียนลงใน AI Branch ซึ่งจะทำให้การเปลี่ยนแปลงที่สร้างโดย AI ถูกแยกไว้จนกว่าผู้ใช้จะยืนยัน
หากต้องการเปิดใช้งานการแก้ไขสาขาหลักโดยตรง:
การตั้งค่าโปรเจกต์ (Project Settings) → การตั้งค่าคุณสมบัติ (Feature Settings) → การตั้งค่าคุณสมบัติ AI (AI Feature Settings) → สิทธิ์การแก้ไขของ AI ภายนอก (External AI Edit Permissions)
| สิทธิ์ | สิ่งที่อนุญาต |
|---|---|
| แก้ไขสาขาหลักโดยตรง | CLI เขียนลงสาขาหลักโดยตรง (ข้าม AI Branch) |
| แก้ไข Sprint Branch มาตรฐานโดยตรง | CLI เขียนลง Sprint Branch โดยตรง |
| แก้ไขสาขาทั่วไปโดยตรง | CLI เขียนลงสาขาทั่วไปโดยตรง |
| แก้ไข AI Branch โดยตรง | CLI เขียนลง AI Branch (มักจะเปิดใช้งานไว้) |
คำแนะนำ: ให้คงการแยก AI Branch ไว้ เปิดใช้งานการแก้ไขโดยตรงเฉพาะเมื่อเวิร์กโฟลว์อัตโนมัติจำเป็นต้องใช้จริงๆ เท่านั้น
แนวทางปฏิบัติที่ดีที่สุด
| แนวทางปฏิบัติ | เหตุผล |
|---|---|
| หนึ่ง AI Branch ต่องาน | ขอบเขตที่ชัดเจน: API การลงทะเบียนผู้ใช้, เอกสารโมดูลคำสั่งซื้อ, การทดสอบการชำระเงิน |
| นำเข้าก่อนแก้ไข | ใช้ pick-to สำหรับทรัพยากรที่มีอยู่—หลีกเลี่ยงความสับสนของแหล่งที่มา |
| ตรวจสอบความถูกต้องก่อนเขียน | ใช้ cli-schema validate เพื่อตรวจจับข้อผิดพลาดก่อน AI Branch |
| ดูตัวอย่างก่อนรวม | ใช้ merge-request preview หรือมุมมองความแตกต่างของ client |
| ขอบเขตการรวมที่ชัดเจน | ยืนยัน endpoints, โมเดล, ไดเรกทอรี, การทดสอบร่วมกัน |
| รักษาการตรวจสอบโดยมนุษย์ | คำจำกัดความ API, สคริปต์การทดสอบควรกได้รับการตรวจสอบก่อนการรวม |
| เก็บถาวรทันที | รักษารายการสาขาให้ชัดเจนหลังจากรวมหรือละทิ้ง |
AI Branch ในเวิร์กโฟลว์ CLI + SKILL
AI Branch ทำงานร่วมกับ CLI + SKILL ได้อย่างเป็นธรรมชาติ:
| ขั้นตอน | CLI + SKILL + AI Branch |
|---|---|
| อ่าน | endpoint get จากสาขาใดก็ได้ |
| สร้าง | Agent สร้าง JSON |
| ตรวจสอบความถูกต้อง | cli-schema validate ภายในเครื่อง |
| เขียน | endpoint create --branch <aiBranchName> ไปยัง AI Branch |
| ตรวจสอบ | merge-request preview |
| รวม | ผู้ใช้ยืนยัน จากนั้น branch merge |
| ยืนยัน | apidog run บนทรัพยากรที่รวมแล้ว |
ทุกการเขียนจะผ่าน AI Branch → การตรวจสอบโดยมนุษย์ → การรวม
สรุปความปลอดภัย
| ชั้น | การป้องกัน |
|---|---|
cli-schema validate |
ตรวจจับข้อผิดพลาดเชิงโครงสร้างก่อนการเขียน |
agentHints |
แนะนำ Agent ไปสู่ขั้นตอนที่ปลอดภัยถัดไป |
| AI Branch | แยกการเปลี่ยนแปลงออกจากสาขาหลัก |
| การตรวจสอบโดยมนุษย์ | ยืนยันเนื้อหาก่อนการรวม |
| ขอบเขตการรวม | ผู้ใช้เลือกทรัพยากรที่จะรวม |
ชั้นเหล่านี้รวมกันสร้างวงจรที่ปลอดภัยยิ่งขึ้นสำหรับการเปลี่ยนแปลงโปรเจกต์ที่ขับเคลื่อนโดย Agent
อะไรต่อไป
เมื่อ AI Branch มอบชั้นความปลอดภัยแล้ว ทุกส่วนก็พร้อมใช้งาน:
- MCP สำหรับการเชื่อมต่อเครื่องมือ (ส่วนที่ 1)
- CLI + SKILL สำหรับการดำเนินการเวิร์กโฟลว์ (ส่วนที่ 2-5)
- ผลลัพธ์การตรวจสอบ (ส่วนที่ 6)
- เวิร์กโฟลว์เชิงปฏิบัติ (ส่วนที่ 7)
- รากฐาน CI/CD (ส่วนที่ 8)
- AI Branch เพื่อความปลอดภัย (ส่วนที่ 9)
ตอนนี้ถึงเวลาสำหรับวิสัยทัศน์แล้ว
ในส่วนที่ 10 Spec-First เป็นเรื่องของเมื่อวาน ยินดีต้อนรับสู่ Skill-First. เราจะสรุปว่าการพัฒนา API จะพัฒนาไปพร้อมกับ AI Agents ได้อย่างไร—และสิ่งที่ทีมควรทำต่อไป
ประเด็นสำคัญ
- AI Branch ให้การแก้ไขที่แยกจากกันสำหรับการดำเนินการของ AI/CLI
- การเปลี่ยนแปลงจะไม่ส่งผลกระทบต่อสาขาหลักจนกว่าจะได้รับการยืนยันจากมนุษย์
- สร้างด้วย
branch create --type ai, เขียนด้วยพารามิเตอร์--branch - นำเข้าทรัพยากรที่มีอยู่ด้วย
branch pick-toก่อนแก้ไข - ดูตัวอย่างด้วย
merge-request previewจากนั้นรวมหรือสร้างคำขอรวม - สิทธิ์การแก้ไขโดยตรงสามารถข้าม AI Branch ได้—ใช้ด้วยความระมัดระวัง
- แนวทางปฏิบัติที่ดีที่สุด: หนึ่ง AI Branch ต่องาน, ตรวจสอบความถูกต้องก่อนเขียน, ตรวจสอบก่อนรวม
ดาวน์โหลด Apidog เพื่อ ออกแบบ, จำลอง, ทดสอบ, และ จัดทำเอกสาร API ในพื้นที่ทำงานเดียว เรียนรู้เพิ่มเติมเกี่ยวกับ Apidog CLI สำหรับการทดสอบ API ผ่านบรรทัดคำสั่ง, การทำงานอัตโนมัติ CI, และเวิร์กโฟลว์ AI Agent
