SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-28

Loop engineering คืออะไร? นิยามและการทำงานของ AI Agent

ทำความเข้าใจ Loop engineering แนวคิดใหม่ในการออกแบบระบบ AI Agent แทนการเขียน Prompt เพียงอย่างเดียว เรียนรู้วิธีจัดการวงจรการทำงาน การตรวจสอบผลลัพธ์ และการควบคุมงบประมาณ

ความหมายของ Loop engineering

Loop engineering คือแนวปฏิบัติในการออกแบบวงจรการทำงานซ้ำๆ ที่ AI agent ดำเนินการ ซึ่งประกอบด้วยสิ่งที่กระตุ้นให้เริ่มทำงาน สิ่งที่ agent สามารถเข้าถึงได้ วิธีการตรวจสอบผลลัพธ์ และเงื่อนไขในการหยุดทำงาน Prompt engineering เป็นการปรับแต่งข้อความเพียงหนึ่งชุดสำหรับโมเดล แต่ Loop engineering เป็นการออกแบบกระบวนการที่ส่งข้อความหลายพันรายการในขณะที่คุณกำลังหลับ หน่วยของงานจึงเปลี่ยนจากการเขียน prompt ไปเป็นการเขียน loop แทน

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

เหตุผลที่คำนี้ปรากฏขึ้นในปี 2026

ชื่อดังกล่าวได้รับการกำหนดให้เป็นมาตรฐานในที่สาธารณะในขณะนี้ โดย GitHub repository cobusgreyling/loop-engineering มียอดดาวเกิน 9,600 stars ภายในเวลาเพียงสองเดือนหลังจากเปิดตัวครั้งแรก (ข้อมูล ณ เดือนกรกฎาคม 2026) ภายใต้คำนิยามว่า "หยุดการเขียน prompt แล้วหันมาออกแบบลูปแทน เพื่อให้ได้ผลลัพธ์ที่ต้องการ" แนวคิดนี้รวบรวมการเปลี่ยนแปลงออกเป็น 6 องค์ประกอบหลัก ได้แก่ การจัดตารางเวลา (scheduling), worktrees, ทักษะ (skills), ปลั๊กอินและตัวเชื่อมต่อ (plugins and connectors), ตัวแทนย่อย (sub-agents) และหน่วยความจำถาวร (durable memory) ที่เก็บไว้ภายนอกบทสนทนา

เนื้อหาได้อ้างถึง Boris Cherny ผู้ดูแล Claude Code ที่ Anthropic ไว้ว่า:

ผมไม่เขียน prompt ให้ Claude อีกต่อไปแล้ว แต่ผมใช้ลูปที่คอยส่ง prompt ให้ Claude ทำงานแทน

repository ที่สองคือ AI-Builder-Club/skills มียอดดาวใกล้แตะ 1,100 stars (ข้อมูล ณ เดือนกรกฎาคม 2026) และระบุบทบาททั้งสองอย่างชัดเจน ได้แก่ "codebase harness" ซึ่งทำหน้าที่เตรียม repository ให้ปลอดภัยสำหรับ agent ในการรันการทดสอบและปรับใช้ (deploy) และ "loop engineer" ผู้สร้างเวิร์กโฟลว์ที่ทำงานเมื่อถูกกระตุ้น (trigger) ทำงานจนเสร็จสิ้น และบันทึกสิ่งที่เรียนรู้ลงในไฟล์ที่แชร์ไว้เพื่อให้ลูปถัดไปสามารถอ่านข้อมูลนั้นได้

ไม่มี repository ใดที่เป็นผู้คิดค้นแนวทางปฏิบัตินี้ขึ้นมาเป็นเจ้าแรก ผู้ที่เคยรัน nightly build, linter ในระบบ continuous integration หรือ cron job ที่เปิด ticket อัตโนมัติ ต่างคุ้นเคยกับรูปแบบนี้อยู่แล้ว สิ่งที่ใหม่คือผู้ปฏิบัติงานภายในลูปในปัจจุบันมีความไม่แน่นอน (non-deterministic) ซึ่งส่งผลให้กลไกที่อยู่ล้อมรอบจำเป็นต้องปรับเปลี่ยนวิธีการทำงานตามไปด้วย

องค์ประกอบสี่ส่วนของลูป

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

  • Trigger: เหตุการณ์ที่เริ่มการทำงาน เช่น ตัวตั้งเวลา (timer), webhook, pull request ใหม่ หรือการแจ้งเตือน (alert)
  • Boundary: ไฟล์, ข้อมูลรับรอง (credentials) และเครือข่ายที่เอเจนต์สามารถเข้าถึงได้ในระหว่างการทำงานนั้น
  • Verification: การตรวจสอบด้วย exit code เพื่อตัดสินใจว่าจะเก็บผลลัพธ์ของการทำงานไว้หรือทิ้งไป
  • Budget: ขีดจำกัดของโทเค็น, เวลา และงบประมาณ ซึ่งจะยุติการทำงานไม่ว่าผลลัพธ์จะสำเร็จหรือไม่ก็ตาม

หากคุณนำองค์ประกอบทั้งสี่นี้มาตั้งเป็นคำถาม คุณจะได้แนวทางการตรวจสอบการออกแบบ (design review) สำหรับเอเจนต์ทุกตัวที่คุณกำลังจะปล่อยให้ทำงานแบบอัตโนมัติ

ตัวกระตุ้น: สิ่งที่ปลุกเอเจนต์ให้ทำงาน

Timer เป็นตัวกระตุ้นที่เรียบง่ายที่สุด และบนเซิร์ฟเวอร์ Linux นั้น systemd timer มีประสิทธิภาพเหนือกว่า cron เนื่องจากมีการบันทึก log, สามารถกำหนดเงื่อนไขการลองใหม่ได้ตามต้องการ และจะไม่เริ่มการทำงานของ unit ซ้ำหาก unit นั้นยังคงทำงานอยู่ คุณสมบัติสุดท้ายนี้ช่วยขจัดข้อผิดพลาดจากการทำงานซ้อนทับ (overlap bug) ที่พบบ่อยที่สุดในลูปของเอเจนต์ นั่นคือการที่สองกระบวนการพยายามแก้ไข branch เดียวกันพร้อมกัน

เขียน unit ไว้ที่ /etc/systemd/system/agent-loop.service:

[Unit]
Description=Agent loop: triage open issues
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
User=agent
WorkingDirectory=/srv/agent/repo
ExecStart=/srv/agent/bin/loop.sh
TimeoutStartSec=1800

และเขียน timer ไว้ที่ /etc/systemd/system/agent-loop.timer:

[Unit]
Description=Run the triage loop every 30 minutes

[Timer]
OnBootSec=5min
OnUnitActiveSec=30min
Unit=agent-loop.service

[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now agent-loop.timer
systemctl list-timers agent-loop.timer

systemctl list-timers ควรแสดงคอลัมน์ NEXT ที่ระบุเวลาในอนาคต และคอลัมน์ LEFT ที่แสดงเวลานับถอยหลัง หากผลลัพธ์ว่างเปล่าแสดงว่า timer ยังไม่ได้ถูกเปิดใช้งาน เนื่องจาก enable หากไม่มี --now จะกำหนดเวลาให้เริ่มทำงานเฉพาะตอนบูตเครื่องครั้งถัดไปเท่านั้น TimeoutStartSec=1800 มีความสำคัญมากกว่าที่เห็น เพราะหากเอเจนต์ค้างระหว่างรอ input จะทำให้ unit นั้นคงสถานะ active อยู่ตลอดไป และ timer จะไม่ทำงานอีกเลย ตรวจสอบการทำงานด้วย journalctl -u agent-loop.service -n 50

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

*/30 * * * * /usr/bin/flock -n /tmp/agent-loop.lock /srv/agent/bin/loop.sh

flock -n จะจบการทำงานทันทีด้วยสถานะ 1 หากมีการล็อกอยู่ ดังนั้นการทำงานรอบที่สองจะหายไปอย่างเงียบๆ แทนที่จะเกิดการแย่งชิงทรัพยากรกับรอบแรก ทั้งนี้ การตั้งค่า systemd service และ timer สามารถนำไปประยุกต์ใช้กับงานที่ใช้เวลานานบนเครื่องได้ทุกประเภท ไม่ว่าจะเป็นเอเจนต์หรือไม่ก็ตาม

ขอบเขต: ให้แต่ละการทำงานมีสำเนาของตัวเอง

เอเจนต์ที่แก้ไข working tree ของคุณคือเอเจนต์ที่อาจทำให้งานที่ยังไม่ได้ commit สูญหายได้ Git worktrees ช่วยแก้ปัญหานี้ได้อย่างประหยัด โดยแต่ละการทำงานจะมีไดเรกทอรีและ branch เป็นของตัวเอง แต่ยังคงใช้ object store ร่วมกัน

cd /srv/agent/repo
git worktree add -b loop/triage-01 /srv/agent/work/triage-01 origin/main
git worktree list

git worktree list จะแสดงผลหนึ่งบรรทัดต่อหนึ่ง tree พร้อมด้วย path, commit และ branch เมื่อการทำงานสิ้นสุดลง git worktree remove /srv/agent/work/triage-01 จะลบไดเรกทอรีนั้นทิ้ง และ git worktree prune จะล้างรายการที่ไดเรกทอรีหายไปแล้ว การทำ loop แบบขนานจึงปลอดภัยในจุดนี้ เพราะเอเจนต์สองตัวที่อยู่บนสอง branch ในสองไดเรกทอรีจะไม่สามารถเขียนทับงานของกันและกันได้

ขอบเขตยังรวมถึงเรื่องข้อมูลประจำตัว (credentials) อีกด้วย loop ที่ทำงานโดยไม่มีผู้ดูแลจะถือครองโทเค็นที่มีอายุการใช้งานยาวนาน และทุกการทำงานคือโอกาสที่โทเค็นจะรั่วไหลไปยัง log, commit หรือบริบทของโมเดล ควรจำกัดขอบเขตของโทเค็นให้เข้าถึงได้เฉพาะ repository ที่ loop นั้นเกี่ยวข้องเท่านั้น พยายามเก็บโทเค็นไว้นอกสภาพแวดล้อมที่ shell ของเอเจนต์มองเห็น และอ่าน วิธีเก็บความลับให้พ้นจาก AI agents ก่อนที่คุณจะมอบสิทธิ์การเข้าถึงระบบผลิต (production access) ให้กับ loop สำหรับการป้องกันที่แน่นหนากว่า ให้รัน loop ทั้งหมดบน VM แบบใช้แล้วทิ้งที่คุณสามารถทำลายได้หลังจบการทำงานแต่ละครั้ง เครื่องมือที่คุณเลือกใช้ก็เป็นส่วนหนึ่งของการกำหนดขอบเขตก่อนที่คุณจะเริ่มเขียนโค้ด ดังนั้นจึงควรศึกษา การเปรียบเทียบระหว่าง managed sandbox ของ Cowork กับ Claude Code บนเครื่องของคุณเอง ก่อนตัดสินใจว่าคุณจำเป็นต้องสร้างระบบแยกส่วนด้วยตัวเองมากน้อยเพียงใด

การตรวจสอบ: ประตูกั้นที่ทำให้ลูปมีความปลอดภัย

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

#!/usr/bin/env bash
set -euo pipefail

repo=/srv/agent/repo
branch="loop/$(date -u +%Y%m%dT%H%M%SZ)"
tree="/srv/agent/work/$(basename "$branch")"

cd "$repo"
git fetch --quiet origin
git worktree add -b "$branch" "$tree" origin/main
cd "$tree"

# the agent's own command runs here, in non-interactive mode

if ! npm test; then
  echo "gate failed: discarding $branch" >&2
  cd "$repo"
  git worktree remove --force "$tree"
  exit 1
fi

git push origin "$branch"
cd "$repo"
git worktree remove "$tree"

set -euo pipefail กำลังทำงานจริงในสคริปต์นั้น หากไม่มี -e ความล้มเหลวของ git fetch จะถูกละเลยและกระบวนการจะทำงานต่อไปโดยใช้ origin/main ที่ล้าสมัย หากไม่มี -u การพิมพ์ชื่อตัวแปรผิดจะขยายผลเป็นสตริงว่าง และการล้างข้อมูลจะทำงานกับ path ที่ผิดแทนที่จะแจ้งเตือนความล้มเหลวออกมาให้เห็นชัดเจน

บล็อก if ! npm test คือหัวใจสำคัญของแนวคิดนี้ exit code ของการตรวจสอบที่คุณเชื่อถือได้ ไม่ว่าจะเป็น test suite หรือ type checker จะเป็นตัวตัดสินว่า branch นั้นจะถูก push หรือถูกทำลาย ลูปที่ไม่มีประตูกั้นจะสร้างงานที่ไม่มีใครมีเวลาตรวจสอบ ซึ่งแย่ยิ่งกว่าการไม่มีงานเลย ลูปที่มีประตูกั้นจะสร้าง branch ที่ผ่านเกณฑ์มาตรฐานเดียวกับที่ branch ของมนุษย์ต้องผ่าน ประตูกั้นที่เป็นสีเขียวไม่ได้บอกว่า agent แก้ไขโค้ดไปมากน้อยเพียงใด ดังนั้นจึงควรจับคู่การตรวจสอบนี้เข้ากับคำสั่งพื้นฐาน เช่น กฎที่ทำให้ agent เลือกการเปลี่ยนแปลงที่เล็กที่สุดที่ใช้งานได้ ซึ่งจะช่วยรักษาขนาดของ diff ให้เล็กพอจนการตรวจสอบยังคงทำได้ง่าย

เลือกประตูกั้นที่ล้มเหลวอย่างตรงไปตรงมา test suite ที่ผ่านการทดสอบแม้ใน diff ที่ว่างเปล่าจะสอนให้ลูปเข้าใจว่าการไม่ทำอะไรเลยคือความสำเร็จ repository ที่มีชุดทดสอบที่อ่อนแอจะได้ลูปที่อ่อนแอตามไปด้วย นี่คือเหตุผลที่ repository ยอดนิยมมักให้ความสำคัญกับ "การเตรียม codebase ให้พร้อมสำหรับ agent" ก่อน "การเขียนลูป" หากคุณต้องการทราบว่าชุดทดสอบของคุณจะตรวจพบ regression ได้จริงหรือไม่ แทนที่จะแค่รันผ่านไปเฉยๆ mutation testing คือการตรวจสอบที่ให้คำตอบนั้น และ agent ที่ส่งรายงานหลักฐานที่รันซ้ำได้กลับมาให้แทนที่จะขอให้คุณอ่าน diff จะเปลี่ยนคำตอบนั้นให้กลายเป็นสิ่งที่คุณสามารถยืนยันได้ด้วยตนเอง

งบประมาณ: สิ่งที่หยุดการทำงาน

เอเจนต์ที่พยายามทำงานซ้ำไปเรื่อยๆ คือเอเจนต์ที่ทำให้ค่าใช้จ่ายบานปลายโดยไม่มีขีดจำกัด กำหนดเพดานเวลาแบบ wall-clock ให้กับทุกวงรอบการทำงานโดยบังคับใช้ผ่าน TimeoutStartSec ที่กล่าวไปข้างต้น, กำหนดจำนวนครั้งในการลองใหม่ภายในสคริปต์ของคุณ และกำหนดเพดานการใช้จ่ายที่บังคับใช้ผ่านบัญชีผู้ให้บริการ จากนั้นให้บันทึกค่าใช้จ่ายของแต่ละรอบการทำงาน เพื่อให้คุณเห็นความผิดปกติของวงรอบก่อนที่ใบแจ้งหนี้จะมาถึง การควบคุมค่าใช้จ่ายสำหรับ VPS ที่รันเอเจนต์ตลอดเวลา ครอบคลุมด้านการทำบัญชี และ การจัดการบริบทที่เอเจนต์ส่งต่อระหว่างรอบการทำงาน ครอบคลุมปัจจัยที่ส่งผลต่อค่าใช้จ่ายต่อรอบมากที่สุด เนื่องจากวงรอบที่อ่าน repository เดิมซ้ำทุก 30 นาที จะต้องเสียค่าใช้จ่ายทุก 30 นาทีเช่นกัน

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

รูปแบบที่ repository ยอดนิยมนำมาใช้เป็นมาตรฐาน

repository ของ loop-engineering ได้ระบุรูปแบบการทำงานในระดับ production ไว้ 7 รูปแบบ ซึ่งควรค่าแก่การอ่านในฐานะเมนูทางเลือกมากกว่าจะเป็นแถลงการณ์ ได้แก่ การคัดกรองงานประจำวัน, การดูแล pull-request ที่คอยติดตามและตอบกลับความคิดเห็นในการรีวิว, การกวาดล้างงาน continuous-integration ที่พบ build ล้มเหลว, การกวาดล้าง dependency, การร่าง changelog, การทำความสะอาดหลัง merge และการคัดกรอง issue

สิ่งที่รูปแบบเหล่านี้มีร่วมกันคืองานที่มีขอบเขตแคบและมีเกณฑ์ตัดสินที่ชัดเจน "การแก้ไข build ที่ล้มเหลว" มีเงื่อนไขความสำเร็จที่เครื่องจักรสามารถอ่านค่าได้ ในขณะที่ "การปรับปรุง codebase" ไม่มีเงื่อนไขดังกล่าว จึงไม่สามารถกลายเป็นลูปการทำงานได้ และมักจะกลายเป็นความยุ่งเหยิงที่ถูกกำหนดเวลาไว้เฉยๆ

นอกจากนี้ สิ่งที่พวกมันมีร่วมกันคือบันทึกที่เป็นลายลักษณ์อักษร ทั้งสอง repository จะผลักดันสถานะออกจากการสนทนาไปเก็บไว้ในไฟล์ภายใน repository แทน ไม่ว่าจะเป็นสิ่งที่รันไปแล้ว สิ่งที่พบ หรือสิ่งที่ตัดสินใจ ไฟล์นั้นคือหน่วยความจำของลูป และเป็นเหตุผลที่ลูปที่สองสามารถทำงานต่อจากลูปแรกได้โดยไม่ต้องเริ่มค้นหาใหม่ทั้งหมด นอกจากนี้ยังเป็นวิธีที่คุณใช้ตรวจสอบ agent ย้อนหลังได้ เนื่องจากบริบทของโมเดลจะหายไปทันทีที่การรันสิ้นสุดลง การประสานงานแบบสดเป็นช่องทางแยกต่างหาก และ Claude Code session หนึ่งสามารถส่งต่องานให้อีก session หนึ่งบนเครื่องเดียวกันได้ ในขณะที่ทั้งคู่ยังคงทำงานอยู่ แต่ไม่มีสิ่งใดในการแลกเปลี่ยนนั้นที่จะคงอยู่ยาวนานกว่า session ดังนั้นไฟล์จึงยังคงเป็นส่วนที่คุณต้องกลับมาอ่านในภายหลัง

จุดที่ลูปทำงานล้มเหลว

ความล้มเหลวเหล่านี้เป็นเรื่องปกติและเกิดขึ้นซ้ำๆ ในหลายทีม

  • ไม่มีการตรวจสอบ (No gate): ผลลัพธ์สะสมมากขึ้นเรื่อยๆ โดยไม่มีใครตรวจสอบ ความเชื่อมั่นจึงลดลงและลูปถูกปิดการใช้งานในที่สุด
  • การทำงานซ้อนทับ (Overlap): การรันงานสองครั้งบน branch เดียวกัน หรือการมี agent สองตัวใน working tree เดียวกัน ทำให้เกิดความขัดแย้งที่ agent พยายามแก้ไขเอง
  • การเบี่ยงเบนอย่างเงียบเชียบ (Silent drift): ลูปยังคงผ่านการทดสอบเพราะเงื่อนไขการตรวจสอบอ่อนเกินไปจนไม่พบข้อผิดพลาด
  • ขอบเขตไม่จำกัด (Unbounded scope): ทริกเกอร์ที่ทำงานทุกครั้งที่มีการ commit ใน repository ที่มีการใช้งานสูง จะกลายเป็นปัญหาด้านค่าใช้จ่ายภายในเวลาเพียงหนึ่งวัน

แต่ละปัญหาแก้ไขได้ด้วยวิธีเดียวกัน คือ ลดขนาดงานให้เล็กลง เพิ่มความเข้มงวดในการตรวจสอบ และบันทึก log การทำงาน หากคุณไม่สามารถอธิบายเงื่อนไขที่ผ่านการทดสอบได้ภายในประโยคเดียว แสดงว่างานนั้นยังไม่พร้อมสำหรับการทำ automation

เริ่มต้นใช้งานโดยไม่ต้องพึ่งพาเฟรมเวิร์ก

คุณไม่จำเป็นต้องใช้เฟรมเวิร์กใดๆ เซิร์ฟเวอร์ Linux ขนาดเล็กที่เปิดทำงานตลอดเวลา, git repository ที่มีชุดทดสอบซึ่งจะล้มเหลวเมื่อควรล้มเหลว, systemd timer หนึ่งรายการ และ shell script ที่มี if อยู่ภายใน ก็เพียงพอที่จะสร้างลูปการทำงานที่สมบูรณ์ นี่คือจุดเริ่มต้นที่แท้จริงสำหรับคนส่วนใหญ่ เพราะคำถามด้านการออกแบบจะได้รับคำตอบจากการรันระบบจริง แทนที่จะมานั่งเลือกเครื่องมือ เมื่อลูปแรกเสถียรแล้ว การรันลูปที่สองก็เป็นเพียงเรื่องของการเพิ่ม timer และ worktree อีกชุดเท่านั้น ดูรายละเอียดการตั้งค่าพื้นฐานได้ที่ วิธีการรัน coding AI agent บน VPS และหากต้องการรันตัว agent บนฮาร์ดแวร์ที่คุณควบคุมเอง สามารถดูได้ที่ ตัวเลือก AI agent แบบ self-hosted ในปัจจุบัน

FAQ

Loop engineering แตกต่างจาก prompt engineering หรือไม่?

Prompt engineering คือการปรับแต่งข้อความเพียงชุดเดียว ได้แก่ การเลือกใช้คำ ตัวอย่าง และรูปแบบผลลัพธ์ ส่วน loop engineering คือการปรับแต่งวงจรที่ล้อมรอบข้อความนั้น เช่น ตัวกระตุ้น (trigger) ที่เริ่มการทำงาน, sandbox ที่ใช้รัน, การตรวจสอบ (check) เพื่อยอมรับหรือปฏิเสธผลลัพธ์ และงบประมาณที่ใช้จำกัดการทำงาน คุณยังคงต้องใช้ prompt ที่ดีภายใน loop แต่ prompt จะไม่ใช่สิ่งที่คุณต้องปรับแต่งทุกวันอีกต่อไป เนื่องจากตัวคัดกรอง (gate) และตัวกระตุ้นมีผลต่อผลลัพธ์มากกว่า

ฉันจำเป็นต้องใช้ framework เพื่อสร้าง agent loop หรือไม่?

ไม่จำเป็น systemd timer, git worktree สำหรับแต่ละรอบการทำงาน, shell script ที่จบด้วยคำสั่งทดสอบ และการจำกัดงบประมาณในบัญชีผู้ให้บริการ สามารถครอบคลุมทุกส่วนของนิยามนี้ได้ Framework จะช่วยเพิ่มอินเทอร์เฟซสำหรับการจัดตารางเวลา, รูปแบบหน่วยความจำร่วม และการกำหนดเส้นทางสำหรับ multi-agent ซึ่งจะมีประโยชน์เมื่อคุณรัน loop หลายรายการพร้อมกัน แต่สิ่งเหล่านี้ไม่ใช่สิ่งที่จำเป็นต้องมีตั้งแต่เริ่มต้น

Codebase harness คืออะไร?

คือชุดเครื่องมือที่ช่วยให้ agent สามารถทำงานใน repository ได้โดยไม่ต้องมีมนุษย์คอยควบคุม ประกอบด้วย การตั้งค่าที่ทำได้ด้วยคำสั่งเดียว, การทดสอบที่รันแบบ non-interactive และแจ้งเตือนเมื่อล้มเหลวอย่างชัดเจน, linter และวิธีการ deploy หรือดูตัวอย่างการเปลี่ยนแปลง คำนี้เกิดขึ้นในช่วงปี 2026 เช่นเดียวกับ loop engineering การทดสอบในทางปฏิบัติทำได้ง่ายๆ คือ หากผู้ร่วมงานคนใหม่ไม่สามารถ clone และรันการทดสอบให้ผ่านได้ด้วยคำสั่งเดียว agent ก็ไม่สามารถทำได้เช่นกัน

ฉันจะป้องกันไม่ให้ agent loop สร้างค่าใช้จ่ายจำนวนมากได้อย่างไร?

ให้จำกัดไว้ใน 3 ส่วน ตั้งค่า TimeoutStartSec บน systemd unit เพื่อให้การทำงานที่ค้างอยู่ถูกยกเลิก จำกัดจำนวนครั้งในการลองใหม่ (retries) ภายในสคริปต์แทนการวนลูปจนกว่าจะสำเร็จ และตั้งค่าเพดานการใช้จ่ายสูงสุดในบัญชี API เนื่องจากเป็นข้อจำกัดเดียวที่ agent ไม่สามารถหลีกเลี่ยงได้ จากนั้นให้บันทึกค่าใช้จ่ายต่อรอบการทำงาน เพราะ loop ที่มีค่าใช้จ่ายเพิ่มขึ้นเป็นสองเท่า มักเป็น loop ที่ขอบเขตงานขยายออกไปโดยที่คุณไม่รู้ตัว

งานประเภทใดที่ควรเปลี่ยนเป็น loop ก่อน?

ให้เลือกงานที่มีเงื่อนไขการผ่านที่เครื่องจักรสามารถอ่านได้ (machine-readable) และมีผลกระทบในวงจำกัด เช่น การแก้ไข build ที่ล้มเหลว, การอัปเดต dependency และการสร้าง changelog ใหม่ เนื่องจากชุดการทดสอบหรือ diff สามารถพิสูจน์ผลลัพธ์ได้ ส่วนงานที่มีปลายเปิด เช่น การ refactor หรือการออกแบบ ยังไม่เหมาะสมในขณะนี้ เนื่องจากไม่มีสิ่งที่ตัวคัดกรองจะตรวจสอบได้ และ loop ที่ไม่มีตัวคัดกรองจะเป็นวิธีที่สิ้นเปลืองในการสร้างภาระงานตรวจสอบ (review debt) ให้กับคุณ