Harness Engineering: เบื้องหลัง OpenAI สร้างซอฟต์แวร์ โดยไม่มีมนุษย์เขียนโค้ด

อัปเดตล่าสุด 6 min read

ในช่วง 5 เดือนที่ผ่านมา ทีมงานของ OpenAI ได้ทำการทดลองที่น่าทึ่งมาก นั่นคือการสร้างและปล่อยระบบซอฟต์แวร์ระดับ Beta ที่ใช้งานจริงทั้งภายในและภายนอกองค์กร โดยมีกฎเหล็กเพียงข้อเดียวคือ "ต้องไม่มีการเขียนโค้ดด้วยมือมนุษย์แม้แต่บรรทัดเดียว (0 lines of manually-written code)"

ผลลัพธ์ที่ได้คือซอฟต์แวร์ขนาดใหญ่ระดับ 1 ล้านบรรทัด ครอบคลุมตั้งแต่ Application Logic, Tests, CI Configuration ไปจนถึง Documentation ซึ่งทั้งหมดนี้ถูกเขียนขึ้นโดย Codex (AI Agent) ทีมงานประเมินว่าพวกเขาใช้เวลาสร้างสิ่งนี้เร็วกว่าการให้คนนั่งเขียนโค้ดเองถึง 10 เท่ากันเลยทีเดียวครับ (10x productivity)

เมื่อ dev ไม่ต้องเขียนโค้ดอีกต่อไป แล้วบทบาทของพวกเขาคืออะไร? คำตอบคือสิ่งที่ OpenAI เรียกว่า "Harness Engineering" ครับ (ซึ่งหลายคนก็น่าจะค่อนข้างคุ้นหูกันในช่วงนี้)

Harness Engineering

ซึ่ง Harness Engineering เนี่ยะประมาณว่า Humans steer, Agents execute (มนุษย์คุมทิศทาง AI ลงมือทำ)
เมื่อการเขียนโค้ดไม่ใช่หน้าที่หลักอีกต่อไป งานของ Software Engineer (หรือ Harness Engineer) จึงเปลี่ยนไปสู่การออกแบบสภาพแวดล้อม (Environments), การกำหนดเป้าหมาย (Specify Intent) และการสร้างระบบ Feedback Loops เพื่อให้ AI ทำงานได้อย่างแม่นยำที่สุด

นี่คือ 6 บทเรียนสำคัญที่ OpenAI ได้เรียนรู้จากการใช้ AI สร้างระบบตั้งแต่ Repo ว่างเปล่า ซึ่งผมคิดว่าน่าจะมีประโยชน์มาก ๆ กับเพื่อน ๆ ชาว dev ครับ

ไปเริ่มกันเลยครับ 


1. เริ่มต้นจากศูนย์ และให้ AI วางรากฐาน

โปรเจกต์นี้เริ่มจาก Git Repository ที่ว่างเปล่า โครงสร้างพื้นฐานทั้งหมด ไม่ว่าจะเป็น CI, Formatting Rules หรือ Framework ถูกสร้างโดย Codex CLI (ขับเคลื่อนด้วย GPT-5) ตลอดระยะเวลา 5 เดือน มี Pull Requests (PRs) ถูกสร้างและ Merge กว่า 1,500 รายการ โดยทีมวิศวกรเพียง 3-7 คน ซึ่งคิดเป็นค่าเฉลี่ยถึง 3.5 PRs ต่อคนต่อวัน

2. เปลี่ยนบริบทให้ AI มองเห็นและเข้าใจ (Agent Legibility)

ปัญหาแรก ๆ ที่เจอคือ AI ทำงานช้าไม่ใช่เพราะไม่เก่ง แต่เพราะมันมองไม่เห็นระบบแวดล้อม ทีมงานจึงต้องหาวิธีทำให้ UI, Logs และ Metrics ต่าง ๆ อ่านง่ายสำหรับ AI เช่น การเชื่อมต่อ Chrome DevTools ให้ AI สามารถแคปหน้าจอ ถ่ายวิดีโอจำลองบั๊ก และวิเคราะห์ UI ได้ด้วยตัวเอง หรือการเปิดให้ AI ใช้ LogQL และ PromQL เพื่อดึงข้อมูลมาแก้ปัญหาคอขวดของระบบ


image source: openai.com


3. Repository คือสมอง ไม่ใช่ไฟล์ AGENTS.md บวม ๆ

หลายคนพลาดที่พยายามยัดคำสั่งทุกอย่างลงในไฟล์ AGENTS.md ยาวเป็นพันบรรทัด ซึ่งสุดท้าย AI จะสับสนและเพิกเฉย (ignore) ต่อคำสั่งเหล่านั้นครับ

OpenAI เลยแก้ปัญหานี้โดยใช้ AGENTS.md เป็นแค่สารบัญ (ราว ๆ 100 บรรทัดเท่านั้นเอง) แล้วแยกข้อมูลเชิงลึก (Architecture, Design Docs, Plans) ไปไว้ในโฟลเดอร์ docs/ อย่างเป็นระบบ และให้ AI ค้นหาเองเมื่อจำเป็น

อ่านมาถึงตรงนี้ หลายคนคงโอ้วววว OpenAI ใช้ 100 บรรทัดเอง แต่ตรูก็เคยฟาดไปเกือบ 1,000 (เราเองก็ด้วย lol) แต่ไม่ได้ทำแบบนั้นแล้วครับตอนนี้ คือใช้ตัว root agents.md เนี่ยะเป็นตัว entrypoint แทน ตามที่ OpenAI แนะนำเลยครับ


อันนี้เป็นโครงสร้างที่ทาง OpenAI แนะนำครับ

AGENTS.md
ARCHITECTURE.md
docs/
├── design-docs/
│   ├── index.md
│   ├── core-beliefs.md
│   └── ...
├── exec-plans/
│   ├── active/
│   ├── completed/
│   └── tech-debt-tracker.md
├── generated/
│   └── db-schema.md
├── product-specs/
│   ├── index.md
│   ├── new-user-onboarding.md
│   └── ...
├── references/
│   ├── design-system-reference-llms.txt
│   ├── nixpacks-llms.txt
│   ├── uv-llms.txt
│   └── ...
├── DESIGN.md
├── FRONTEND.md
├── PLANS.md
├── PRODUCT_SENSE.md
├── QUALITY_SCORE.md
├── RELIABILITY.md
└── SECURITY.md



4. วาง Architecture ให้เป๊ะ แล้วปล่อยจอยให้ AI ลุย

AI จะทำงานได้ดีที่สุดในสภาพแวดล้อมที่มีขอบเขต (Boundaries) ชัดเจน ทีมงานสร้าง Linters และกฎโครงสร้างที่เข้มงวดมาก (เช่น โค้ดเลเยอร์นี้ ห้ามเรียกใช้ข้ามเลเยอร์เด็ดขาด) เมื่อกฎเหล่านี้ถูกฝังเป็น Automated Tests AI ก็จะสามารถเจนโค้ดได้อย่างอิสระภายใต้กรอบที่ปลอดภัยโดยไม่ทำให้สถาปัตยกรรมเละเทะ

5. ถึงจุดที่ AI ทำงานแบบ End-to-End

ปัจจุบัน ระบบนี้พัฒนาไปถึงขั้นที่ว่า แค่มนุษย์ป้อน Prompt สั้น ๆ Codex ก็สามารถ:
  • อ่านและทำซ้ำบั๊ก (Reproduce bug)
  • อัดวิดีโอหน้าจอเพื่อยืนยันปัญหา
  • เขียนโค้ดแก้บั๊ก
  • รันเทสต์และอัดวิดีโอหน้าจออีกรอบเพื่อยืนยันว่าแก้แล้ว
  • เปิด PR, ตอบกลับคอมเมนต์รีวิว และ Merge โค้ดเองได้!

6. ระบบเก็บขยะป้องกัน AI Slop

เมื่อ AI เจนโค้ดเยอะ ๆ มันมักจะลอกเลียนแบบโค้ดแย่ ๆ (Technical Debt) ที่มีอยู่เดิม ทีมงานแก้ปัญหานี้โดยการตั้ง Golden Principles หรือกฎทองคำ และสร้าง AI Agent พื้นหลังที่คอยตระเวนอ่านโค้ดทั้งโปรเจกต์ เพื่อหาจุดที่ผิดมาตรฐานและเปิด PR เพื่อ Refactor โค้ดตลอดเวลา ทำให้หนี้ทางเทคนิคถูกเคลียร์ทุกวัน

Keys Takeaway

การสร้างซอฟต์แวร์ในยุค AI ยังคงต้องการความเนี้ยบขั้นสุดครับ แต่มันไม่ใช่การก้มหน้าก้มตาปั่นโค้ดทีละบรรทัดอีกต่อไป (ซึ่งแทบจะไม่มีใครทำอยู่แล้วแหละครับตอนนี้วิธีนี้) มันได้ย้ายไปสู่ศาสตร์ของ Harness Engineering หรือการสร้างนั่งร้านและระบบคุมบังเหียน (Scaffolding & Control Systems) เพื่อตีกรอบให้ AI ทำงานได้อย่างแม่นยำ

และ dev ยุคใหม่คือผู้ออกแบบ ไม่ใช่ผู้ใช้แรงงาน เมื่อ AI ขยับเข้ามากินรวบใน Software Lifecycle ทักษะที่แพงที่สุดของวิศวกรซอฟต์แวร์ในอนาคตจะไม่ได้วัดกันที่คุณเขียนโค้ดได้เก่งแค่ไหน แต่วัดกันที่คุณสามารถออกแบบสภาพแวดล้อม (Environment) ให้ AI ทำงานแทนคุณได้สมบูรณ์แบบแค่ไหน


อ้างอิง


Withoutcoffee Icantbedev

Withoutcoffee Icantbedev

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