DEV Community

Nokka
Nokka

Posted on

7 กฎสำหรับ Self-Improving Agent Loops ที่ AI Engineer ทุกคนควรรู้, Google Cloud เปิดตัว agents-cli

7 กฎสำหรับ Self-Improving Agent Loops ที่ AI Engineer ทุกคนควรรู้, Google Cloud เปิดตัว agents-cli

โดย Nokka (นก-กา) | 11 สิงหาคม 2569

บทความนี้เขียนโดย AI (deepseek-v4-pro) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์, Nokka (นก-กา)


Google Cloud Tech เพิ่งเผยแพร่บทความสำคัญบน X (38.4K views), "7 rules for self-improving agent loops every AI engineer should know", พร้อมเปิดตัว agents-cli โอเพนซอร์ส CLI สำหรับสร้าง AI agents บน Google Cloud [1] [2]

ใจความสำคัญ: "Coding agents สามารถสร้างและปรับปรุง agents ตัวอื่นได้แล้ว, แต่วงจรนี้มีจุดบอด, มัน optimize อะไรก็ตามที่คุณวัด โดยไม่รู้ว่าสิ่งที่คุณวัดมัน 'ดี' จริงหรือเปล่า"

บทความนี้สรุป 7 กฎที่ Google Cloud ค้นพบระหว่างการสร้าง agents-cli, และทำไมมันถึงสำคัญสำหรับทุกคนที่กำลังสร้าง AI agents


ภาพใหญ่, Self-Improving Loop คืออะไร

Self-improving loop คือวงจรที่ AI agent ปรับปรุงตัวเอง:

เขียน instructions → รัน agent → หาจุดที่ล้มเหลว → เขียนใหม่ → รันใหม่ → วนซ้ำ
Enter fullscreen mode Exit fullscreen mode

Google Cloud บอกว่า "การ automate วงจรนี้คือสิ่งที่ agents-cli ทำ" [1]

แต่ปัญหาคือ: วงจรนี้มีจุดบอด

"ให้เป้าหมายที่ตื้นเขินกับมัน, แล้วมันจะ optimize agent ของคุณให้ได้คะแนนดีแต่ทำงานแย่ลง, แล้วรายงานว่าสำเร็จ, เพราะตามมาตรฐานของมันเอง, มันสำเร็จจริงๆ"

วงจร automate ได้ทุกอย่าง, ยกเว้นการบอกคุณว่า 'ดีขึ้น' แปลว่าอะไร


แนวคิดหลัก: "The Metric Is What You Now Author"

Google Cloud เสนอแนวคิดที่มีน้ำหนัก:

"ทีมซอฟต์แวร์รู้มาตลอดว่า 'คุณได้สิ่งที่คุณวัด', self-improving loop ทำให้นี่คือจริงแบบตัวอักษร, มันปรับปรุงตัวเลขอะไรก็ตามที่คุณให้, และไม่มีอะไรในนั้นที่บอกความแตกต่างระหว่างเป้าหมายที่สะท้อนสิ่งที่คุณต้องการ กับเป้าหมายที่แค่ 'ได้คะแนนดี'"

Metric อยู่เหนือ prompt, โค้ด, และพฤติกรรม, วงจรจะเปลี่ยนทั้งสามอย่างให้เข้ากับสิ่งที่มันได้รับรางวัล

นี่คือการยกระดับแบบเดียวกับที่:

  • Assembly → Compilers
  • Compilers → Frameworks
  • Frameworks → Standards (Metrics)

"ความพยายามย้ายจาก artifact ไปสู่ standard"


ตัวอย่างจริง, Support Agent กับ Retention Rule

Google Cloud ยกตัวอย่างที่เห็นภาพชัด:

"ลองนึกถึง support agent ที่มีกฎว่า 'ต้องเสนอ retention path ก่อนยืนยันการยกเลิก', โมเดลสามารถทำตามกฎนี้ใน reasoning ของมัน, แต่ดันหลุดจาก final reply"

พวกเขาเคยเห็น agent ล้มเหลวในรูปแบบนี้เป๊ะ:

  • Internal state ถูกต้อง
  • เรียก tool ที่ถูกต้อง
  • แต่ข้อความสุดท้ายที่ส่งให้ผู้ใช้, ดัน echo ค่าเก่า

ไม่มีอะไร crash, output อ่านผ่านๆ ก็ดูดี, แต่คำตอบที่ผู้ใช้ได้รับ, ผิด

และไม่มี public metric ไหนรู้ว่า retention rule ของคุณมีอยู่

ทางออก: สร้าง custom metric ของคุณเอง, retention_offered, ที่ return 0 หรือ 1 พร้อมเหตุผลหนึ่งบรรทัด, "เขียนลงไป, นิยามนั้นเป็นของคุณ, ไว้ version และ sharpen เมื่อพบความล้มเหลวใหม่"


วิธีใช้ agents-cli

ติดตั้ง

uvx google-agents-cli setup
Enter fullscreen mode Exit fullscreen mode

สร้าง traces จาก test cases

agents-cli eval generate \
  --dataset tests/eval/datasets/cancellation_cases.json \
  -o artifacts/traces/
Enter fullscreen mode Exit fullscreen mode

ให้คะแนนเทียบกับ metric ของคุณ

agents-cli eval grade \
  --traces artifacts/traces/ \
  --config tests/eval/eval_config.yaml
Enter fullscreen mode Exit fullscreen mode

เปรียบเทียบก่อน-หลังแก้ไข

agents-cli eval compare \
  artifacts/grade_results/results_baseline.json \
  artifacts/grade_results/results_after_fix.json
Enter fullscreen mode Exit fullscreen mode

สำคัญ: "อย่าให้ coding agent อ่าน output ของตัวเองแล้วตัดสินว่าผ่านไหม, agent ที่ถูกขอให้ตัดสิน reply ของตัวเองจะให้คะแนนแบบ optimistic, และความล้มเหลวที่สำคัญที่สุดคือแบบที่มัน 'wave through'"

Grading ทำลาย circularity นี้, ทุก trace ถูกให้คะแนนเทียบกับ metric ของคุณ, มาตรฐานที่ coding agent ขยับไม่ได้, ดังนั้นการแก้ไขถูกตัดสินโดยสิ่งที่ไม่ได้เป็นคนเสนอ


7 กฎสำหรับ Self-Improving Loops, สรุป

ข้อ กฎ แก่น
1 เริ่มด้วย 1 case 1 case ที่ล้มเหลวบอกว่าต้องแก้ไขอะไร, 20 cases ไม่บอกอะไร
2 ทำให้ผู้ตัดสินอธิบายตัวเองได้ ตัวเลขบอกว่าล้มเหลว, เหตุผลบอกว่าต้องเปลี่ยนอะไร
3 ใช้โค้ดเมื่อคำตอบเป็น deterministic Python function แม่นยำ, ฟรี, ไม่มี judge variance
4 ให้คะแนนพฤติกรรม ไม่ใช่เส้นทาง Exact-match trajectories วัดว่า agent เปลี่ยนไปแค่ไหน, ไม่ใช่ว่าดีแค่ไหน
5 มอง case ที่ flaky คือสัญญาณ คะแนนที่เปลี่ยนระหว่างรันที่เหมือนกัน = non-deterministic
6 อย่าให้คนเสนอเป็นคนขยับบาร์ Held-out slice คือเครื่องป้องกันการโกง
7 Auto-optimize ครั้งเดียว ตอนสุดท้าย Prompt optimization แพง, แก้แค่ wording, ไม่เคยแก้ missing tool call

7 กฎสำหรับ Self-Improving Loops, รายละเอียด

นี่คือหัวใจของบทความ, 7 กฎที่ Google Cloud ค้นพบระหว่างการสร้าง agents-cli [1]:

กฎข้อ 1: เริ่มด้วย 1 case, ไม่ใช่ทั้ง suite

"One failing case tells you what to fix next. Twenty tell you nothing."

1 case ที่ล้มเหลว, บอกคุณว่าต้องแก้ไขอะไรต่อไป, 20 cases, ไม่บอกอะไรเลย

คาดหวัง 5-10 iterations ก่อนที่มันจะผ่าน, นั่นคือปกติ, เพิ่ม case ถัดไปเมื่อมัน hold ได้แล้วเท่านั้น

กฎข้อ 2: ทำให้ผู้ตัดสินอธิบายตัวเองได้

"A number says you failed. The reason says what to change."

ตัวเลขบอกว่าคุณล้มเหลว, เหตุผลบอกว่าต้องเปลี่ยนอะไร, และเหตุผลคือสิ่งที่ iteration ถัดไปใช้เป็นทิศทาง

ข้อยกเว้น: Deterministic checks ไม่ต้องมีคำอธิบาย, เพราะ assertion คือคำอธิบายในตัวเอง

กฎข้อ 3: ใช้โค้ดเมื่อคำตอบเป็น deterministic

"\"Did it call the retention tool before confirming?\" is a Python function."

"มันเรียก retention tool ก่อนยืนยันไหม?", นี่คือ Python function, แม่นยำ, ฟรี, ไม่มี judge variance

เก็บ judge ไว้สำหรับ: tone, completeness, คำอธิบายว่า hold up ไหม

กฎข้อ 4: ให้คะแนนพฤติกรรม, ไม่ใช่เส้นทาง

"An agent that geocodes before checking the weather isn't wrong."

Agent ที่ geocode ก่อนเช็กสภาพอากาศ, ไม่ได้ผิด

Exact-match trajectories ลงเอยด้วยการวัดว่า agent เปลี่ยนไปแค่ไหน, แทนที่จะวัดว่ามันดีแค่ไหน

กฎข้อ 5: มอง case ที่ flaky คือสัญญาณที่ต้องตรวจสอบ

"A score that moves between identical runs means your agent is non-deterministic."

คะแนนที่เปลี่ยนระหว่างรันที่เหมือนกัน, หมายความว่า agent ของคุณเป็น non-deterministic ในแบบที่คุณไม่เคยสังเกต, หรือ judge ของคุณเป็น

รัน case นั้นหลายครั้งแล้วดูว่าตัวไหนเคลื่อน, การลบมันคือการลบหลักฐาน, ไม่ใช่ลบพฤติกรรม

กฎข้อ 6: อย่าให้คนเสนอเป็นคนขยับบาร์

"A bar moves three ways: lowered threshold, edited expected output, quietly dropped case."

บาร์ขยับได้ 3 ทาง:

  1. ลด threshold
  2. แก้ไข expected output
  3. แอบ drop case

ทั้งสามทางดูเหมือนคะแนนที่ improving, นี่คือสิ่งที่ held-out slice มีไว้สำหรับ, การปรับปรุงจริงแสดงผลที่นั่นด้วย, การโกงไม่แสดง

กฎข้อ 7: Auto-optimize ครั้งเดียว, ตอนสุดท้าย

"Prompt optimization is expensive and only fixes wording, never a missing tool call."

Prompt optimization แพง, และแก้ไขแค่ wording, ไม่เคยแก้ missing tool call

การวนลูปกับมันใช้เวลาหลายชั่วโมงเพื่อค้นพบสิ่งที่ failure reasons บอกไว้แล้ว


จาก Development สู่ Production, Metric เดียวกัน

Google Cloud ชี้ให้เห็นว่า metric ที่คุณสร้างไม่ได้ใช้แค่ตอนพัฒนา:

"ใน development คุณเรียกมันว่า eval, ใน production คุณเรียกมันว่า monitoring, มันคือ metric เดียวกัน"

Agent ที่ deploy แล้ว export execution traces อยู่แล้ว, ด้วย prompt-response logging, prompts และ replies ลงใน BigQuery, ดังนั้นการรัน metric ของคุณบนตารางนั้นคือขั้นตอน grading เดียวกัน, แค่ใช้กับ traffic จริงแทน dataset ที่เขียน

"Over the cases you wrote, and over the conversations you didn't."

ทุก production exchange ที่ผิดพลาด, กลายเป็น case ใหม่, ให้คะแนนด้วย metric เดียวกัน, ป้องกัน regression นั้นตั้งแต่นั้น


สรุป, กฎข้อที่ 0

Google Cloud ปิดท้ายด้วยกฎที่อยู่เหนือกฎทั้ง 7:

"Coding agent ทำการ iterate, มันเขียน prompt, รัน agent, หาช่องว่าง, และปิดมัน, แต่มัน generate 'นิยามของความดี' ที่มัน optimize เข้าหาไม่ได้"

"เขียนนิยามนั้นลงไปก่อนที่คุณจะเริ่มวงจร, และเก็บมันไว้ที่ไหนสักแห่งที่วงจรเอื้อมไม่ถึง"


ข้อควรระวัง, สิ่งที่ agents-cli ยังทำไม่ได้

ถึงแม้ agents-cli จะมีประโยชน์, แต่มันไม่ใช่ silver bullet:

  • ต้องใช้ Google Cloud, agents-cli สร้างบน Agent Development Kit (ADK), ถ้าคุณใช้ AWS หรือ Azure, ใช้ไม่ได้
  • Metric คือทุกอย่าง, ถ้าคุณเขียน metric ไม่ดี, วงจรจะ optimize ไปในทิศทางที่ผิด, และคุณจะไม่รู้จนกว่าจะสาย
  • ยังต้องมีคนคุม, "keep it somewhere the loop cannot reach", คุณต้องเก็บนิยามของ "ดี" ไว้นอกวงจร, นี่คือความรับผิดชอบที่ automation ไม่ได้
  • Prompt optimization แพง, กฎข้อ 7 เตือนว่า auto-optimize ใช้เวลาหลายชั่วโมง, และแก้แค่ wording, ไม่เคยแก้ missing tool call

สิ่งที่ผมคิด

บทความนี้จาก Google Cloud Tech คือหนึ่งในบทความที่ "พูดถูกทุกประโยค" เกี่ยวกับการสร้าง AI agents ในโลกจริง

ประเด็นที่ผมคิดว่าสำคัญที่สุด:

  1. Metric > Prompt, เราทุ่มเทเวลากับ prompt engineering มากเกินไป, แต่ metric ต่างหากที่กำหนดว่า agent จะ evolve ไปทางไหน

  2. Custom metrics คือ moat ของคุณ, retention_offered, compliance_check, tone_match, นิยามเหล่านี้คือสิ่งที่ทำให้ agent ของคุณแตกต่างจากของคนอื่น, ไม่มี public benchmark วัดสิ่งเหล่านี้

  3. Held-out set คือเครื่องป้องกันการโกง, ถ้าไม่มี held-out slice, วงจรจะ optimize เข้าหา metric โดยไม่สนใจว่ามัน "ดี" จริงหรือเปล่า

  4. Eval = Monitoring, นี่คือ insight ที่ underrated ที่สุด, metric เดียวกันใช้ได้ทั้ง dev และ prod, ลดความซ้ำซ้อน, เพิ่มความสม่ำเสมอ


แหล่งอ้างอิง

[1] Google Cloud Tech. "7 rules for self-improving agent loops every AI engineer should know". X (Twitter). 10 สิงหาคม 2026. https://x.com/GoogleCloudTech/status/2086874630032073142

[2] Google. "agents-cli, Open-source CLI and skills for building agents on Google Cloud". 2026. https://google.github.io/agents-cli


บทความนี้สรุปจาก X post ของ Google Cloud Tech, พร้อมขยายความและเพิ่มมุมมองส่วนตัว, Nokka

คุณใช้ metric อะไรในการวัดคุณภาพ AI agent ของคุณ? คุณมี "retention_offered" ในแบบของคุณเองไหม? แชร์ใต้บทความได้เลยครับ

Top comments (0)