21 คะแนน โดย GN⁺ 2025-08-07 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เอเจนต์ที่ใช้ LLM แบบเดิมโดยทั่วไปมักเป็นโครงสร้างแบบ 'shallow agent' ที่เพียงเรียกใช้เครื่องมือซ้ำไปมา แต่ Deep Agents คือ AI agent ที่วางแผนและมีโครงสร้าง ซึ่งสามารถแก้โจทย์ที่ซับซ้อนและระยะยาวได้อย่างลุ่มลึก
  • เอเจนต์รุ่นใหม่อย่าง Deep Research, Manus, Claude Code ได้นำ 'deep agent' ที่สามารถสำรวจหัวข้อได้ลึกขึ้นและจัดการคอนเท็กซ์ได้ดีขึ้นมาใช้งาน
    • system prompt แบบละเอียด, เครื่องมือวางแผน, sub-agent, การใช้ระบบไฟล์ คือหัวใจสำคัญของ 'deep agent'
  • LangChain ได้เปิดตัว แพ็กเกจโอเพนซอร์ส deepagents เพื่อให้ทุกคนสามารถสร้าง deep agent ที่เหมาะกับ vertical (โดเมน) ของตนเองได้ง่าย
    • สามารถตั้งค่า prompt, tool และ sub-agent แบบกำหนดเองได้ พร้อมมอบเฟรมเวิร์กอเนกประสงค์ที่ประยุกต์ใช้ได้ในหลากหลายสาขา เช่น งานวิจัยและการพัฒนา

ข้อจำกัดของ LLM agent แบบเดิมและลักษณะเด่นของ Deep Agents

  • เอเจนต์แบบดั้งเดิม: LLM วนลูปแล้วเรียกใช้แต่เครื่องมือ → เหมาะเพียงกับบริบทสั้น ๆ และงานระยะสั้นที่ไม่ซับซ้อน
  • Deep Agents: สามารถแยกย่อย วางแผน ติดตาม และทำงานร่วมกันเองได้ แม้เป็นเป้าหมายระยะยาวหรืองานที่ซับซ้อน

4 องค์ประกอบที่ประกอบเป็น Deep Agents

  1. system prompt แบบละเอียด

    • ใช้ prompt ที่ระบุวิธีใช้เครื่องมือ/ตัวอย่างพฤติกรรมอย่างละเอียด เช่นกรณีเด่นอย่าง Claude Code
    • ใช้คำสั่งที่ซับซ้อนและตัวอย่างแบบ few-shot เพื่อชี้นำให้คิดและลงมือทำได้ 'ลึก' ขึ้น
  2. เครื่องมือวางแผน (Planning)

    • แม้ไม่มีความสามารถจริง ก็ยังใส่เครื่องมือวางแผน เช่น 'To-Do list' ไว้ในรูทีน เพื่อ ช่วยจัดการบริบทและคงความสามารถในการลงมือทำ
    • แม้จะเป็น no-op (ไม่ทำงานอะไรเลย) ก็ยังช่วยให้ prompt มีบริบทมากขึ้น
  3. sub-agent

    • สร้างและแบ่ง sub-agent ตามงานย่อย ให้แต่ละเอเจนต์ทำงานแยกกัน แล้วค่อยรวมผลลัพธ์
    • ทำให้ปัญหาขนาดใหญ่/ซับซ้อนถูกจัดการได้ด้วยโครงสร้างแบบขนานและการแบ่งงาน
  4. ระบบไฟล์

    • ไม่ได้ใช้แค่กับงานไฟล์จริงเท่านั้น แต่ยังใช้เป็น ที่เก็บโน้ตและคอนเท็กซ์ ได้ด้วย
    • เอเจนต์และ sub-agent หลายตัวสามารถแชร์ระบบไฟล์ร่วมกันเพื่อทำงานร่วมกันและรักษาบริบทยาวต่อเนื่อง

เฟรมเวิร์ก Deep Agents ของ LangChain: deepagents

  • แพ็กเกจ Python แบบโอเพนซอร์ส (pip install deepagents) ที่ รองรับการตั้งค่า prompt, tool และ sub-agent แบบกำหนดเอง
    • system prompt ที่ได้แรงบันดาลใจจาก Claude Code และปรับให้ใช้งานทั่วไปมากขึ้น
    • เครื่องมือวางแผน ToDo list แบบ no-op (เหมือนกับ Claude Code)
    • รองรับการสร้าง sub-agent และกำหนดเองได้
    • ระบบไฟล์เสมือนที่ใช้แนวคิดของ LangGraph (อาศัยสถานะของเอเจนต์)
  • มีตัวอย่าง deep research agent ให้ใช้งาน และสามารถสร้างเอเจนต์เฉพาะทางสำหรับแต่ละ vertical ได้อย่างง่ายดาย

ตัวอย่างการใช้งานและคุณค่า

  • เหมาะอย่างยิ่งกับ งาน AI ระยะยาวและซับซ้อนหลายด้าน เช่น งานวิจัยและพัฒนา การสร้างโค้ด รีเสิร์ช และอัตโนมัติที่ซับซ้อน
  • สามารถสร้างผลลัพธ์ที่ลุ่มลึกได้ด้วย การออกแบบบริบทอย่างละเอียดและโครงสร้างการแบ่งงาน
  • ทุกคนสามารถสร้าง 'deep agent' ให้เหมาะกับโดเมนของตนเองได้ — ชี้ให้เห็นก้าวถัดไปของการประยุกต์ใช้ AI

1 ความคิดเห็น

 
GN⁺ 2025-08-07
ความคิดเห็นบน Hacker News
  • ผมเป็นผู้เขียนเอง ช่วงหลังมานี้รู้สึกประทับใจกับการที่เอเจนต์ชุดหนึ่งอย่าง claude code, manus, deep research ทำงานที่มีช่วงเวลายาวและหลายขั้นตอนได้ดีเป็นพิเศษ ภายในจริง ๆ ก็คือ LLM วนลูปแล้วเรียกใช้เครื่องมือ แต่ถ้าทำแบบนี้โดยไม่คิดอะไรเลย จะเกิดปัญหาว่า LLM ทำงานที่ซับซ้อนหรือยาว ๆ ได้ไม่ดีนัก เลยสงสัยว่าเอเจนต์อื่น ๆ ทำเรื่องนี้กันอย่างไร สิ่งที่พบร่วมกันมีดังนี้ 1) ใช้เครื่องมือสำหรับวางแผน 2) ใช้ sub-agent 3) ใช้โครงสร้างที่ offload context ออกไป เช่น file system 4) ออกแบบ system prompt อย่างละเอียด (prompt engineering ยังสำคัญอยู่) แต่ละอย่างเป็นวิธีที่มีมาก่อนแล้ว ทว่าเวลาพัฒนาเอเจนต์จริง ๆ กลับไม่ได้เป็นแนวทางที่ใช้กันอย่างแพร่หลาย ผมคิดว่าการเอาสิ่งเหล่านี้มาผสมกันต่างหากที่เป็น insight สำคัญ ยินดีรับ feedback

  • พออ่านความเห็นหลาย ๆ อันแล้ว ก็เห็นด้วยว่าแนวคิด deep agents สุดท้ายก็ไม่ได้ต่างจากการผสม agent + tool มากนัก สำหรับผม ประเด็นสำคัญคือ 1) ต้องใช้ LLM ที่มีความรู้พื้นฐานดี 2) prompt ที่จะ guide LLM ให้ถูกทางสำคัญมาก (ทำให้มันเป็นเอเจนต์) 3) ฟังก์ชันที่ไม่ต้องมีการตัดสินใจแยกต่างหากควรทำเป็น tool 4) ถ้า flow แบบ agent+tool ซับซ้อนขึ้น ก็ควรแยกเป็น sub-agent ตามโดเมน โดยแต่ละตัวมี prompt ที่โฟกัสชัดและมีเครื่องมือจำนวนน้อย

    • ท้ายที่สุดแล้ว ดูเหมือนมันจะพัฒนาไปเป็นโมเดลแบบ "ผู้ประสานงาน" ที่เอเจนต์ระดับบนสุดเป็นคนเลือกว่าต้องทำอะไร และกระจายงานไปยังเอเจนต์ที่เหมาะกับงานนั้น โครงสร้างนี้อาจต่อกันแบบ recursive ได้ด้วย (เช่น มีเอเจนต์ตามแต่ละโปรดักต์ และเอเจนต์นั้นก็แตกไปเป็นเอเจนต์ที่ดูแลงาน frontend/backend) ในโครงสร้างแบบนี้ เอเจนต์ที่ทำงานจริงจะได้โฟกัสแค่ context และ tool ที่จำกัด ส่วนเอเจนต์ระดับบนแค่ต้องรู้ว่า sub-agent แต่ละตัวทำอะไรได้บ้าง
  • ผมคิดว่า deep agents = เอเจนต์ที่เพิ่มการวางแผน + การผสมเครื่องมือของเอเจนต์ ดังนั้นสุดท้ายก็คล้ายเอเจนต์แบบเดิมอยู่ดี น่าเสียดายที่ LangChain ดูเหมือนชอบห่อแนวคิดง่าย ๆ ให้ซับซ้อน และชอบสร้างคำหรือคอนเซปต์ใหม่ขึ้นมาเพื่อโปรโมตโดยไม่จำเป็น แน่นอนว่าถ้าจะขาย LangSmith เพิ่มก็คงเลี่ยงยาก

    • สมัยก่อนผมเคยทำงานที่ปรึกษาแนวนี้ จะบอกว่าเหมือนกันเป๊ะก็คงไม่ได้ แต่โดยเนื้อแท้แล้วมันเป็นกลยุทธ์ที่พบได้บ่อย คือเอาของธรรมดามาทำให้ดูเหมือนการแสดง สร้างศัพท์และหมวดหมู่ของตัวเองขึ้นมา แล้วขายมัน ขั้นต่อไปก็คือถม SEO ด้วยคอนเซปต์ของตัวเอง อาศัยเกาะคำยอดนิยมอย่าง deep * และ agent ไปด้วย... พอคิดเรื่องพวกนี้แล้วก็รู้สึกว่าในสภาพแวดล้อมองค์กร มันเป็นอะไรที่ดูดพลังทางจิตวิญญาณพอสมควร
  • ผลลัพธ์ก็ใกล้เคียงกับที่ผมคาดไว้ ตอนนี้เริ่มชัดแล้วว่าการเขียน MCP server เองไม่ได้เวิร์กมากนัก เลยต้องหาแนวทางใหม่ที่ขึ้นกระแสได้เร็ว การลองสร้างเอเจนต์เองแบบ gemini หรือ claude code กำลังเป็นเทรนด์ช่วงนี้ เข้าถึงง่าย มีประโยชน์ได้ระดับหนึ่ง ไม่ต้องมีความรู้ AI เชิงลึกมาก และทำการตลาดก็ง่าย คล้ายแนว “cursor for X” แต่กลับทำเป็นโปรดักต์ได้เร็วกว่าอีก คิดว่าจะมี coding agent แนวนี้เกิดขึ้นอีกมหาศาล แต่ตอนนี้ก็ยังไม่ค่อยรู้สึกว่าใหม่อะไรมากนัก ถึงอย่างนั้น ถ้าเริ่มได้เร็วขนาดนี้ ก็ถือเป็นสัญญาณเชิงบวกว่า clone ของ claude code ที่ทำแบบตรงไปตรงมา น่าจะมีมูลค่าเข้าใกล้ศูนย์ในไม่ช้า

  • กำลังตามดูและวิเคราะห์โค้ดใน repo นี้อย่างต่อเนื่อง https://github.com/ghuntley/claude-code-source-code-deobfuscation ผู้เขียนทำ reverse engineer Claude Code และอธิบายสถาปัตยกรรมไว้ได้ดี ผมเปลี่ยนลิงก์เป็น repo ที่ดีกว่าแล้ว

    • ช่วยอธิบายได้ไหมว่านี่แสดงอะไรบ้าง เหมือนผมเห็นแค่ readme ขนาดใหญ่มากกับ system commands
  • กำลังทำ agent cli+library แบบทั่วไปด้วย rust: https://github.com/fdietze/alors ยังอยู่ช่วงต้นของการพัฒนา แต่ตอนนี้ก็ใช้มันช่วยพัฒนาตัวมันเองอยู่แล้ว ยินดีรับ feedback

  • สำหรับผม Jetbrains Junie น่าจะเป็นตัวแรกที่มีฟีเจอร์ to do list คุณภาพสูงมาก และผมชอบจุดนั้นที่สุด หลังจากเปลี่ยนเป็นแบบเสียเงินก็ไม่ได้ใช้อีกแล้ว แต่ตอนนั้น Junie ช้าและรอบคอบ Cursor มักเขียนทับไฟล์ที่ไม่ได้มีปัญหาด้วย ส่วน Claude ก็ให้ความรู้สึกอยู่กึ่งกลางระหว่างสองตัวนั้น

    • Cursor มี UI เฉพาะสำหรับ todo list ด้วย และคอยชี้นำให้ agent ใช้มันด้วย (UX โดยรวมดี แต่ไม่สามารถเปิดดูไฟล์โดยตรงแยกต่างหากได้) ส่วน amazon kiro ใช้วิธีจัดการทั้งสิ่งที่ต้องทำและสเปกผ่าน tasks.md พอมีเครื่องมือเยอะขึ้น ก็เลือกใช้ตัวที่เข้ากับตัวเองได้
  • ส่วนที่น่าสนใจที่สุดกลับถูกซ่อนไว้หมด ประเด็นสำคัญคือมันจัดการ tool call ตั้งแต่การ parse ไปจนถึงการ execute อย่างไร

  • การแยก context ด้วย sub-agent นี่แหละคือจุดนวัตกรรมจริง ๆ ที่เหลือก็แค่ langgraph react agent

    • มันมีคุณค่าอยู่ แต่ไม่ใช่ไอเดียใหม่แบบสมบูรณ์
  • อยากรู้ว่ามีข้อมูลเพิ่มเติมไหมเกี่ยวกับส่วนที่บอกว่า todo list tool เป็น no-op อยากรู้ว่ามันทำงานแบบไหนกันแน่

    • ถ้าอยากดูจากโค้ดโดยตรง Sketch agent ที่เราสร้างใช้เครื่องมือ TODO list ประมาณนี้: https://github.com/boldsoftware/sketch/blob/main/claudetool/todo.go การทำให้ agent ใช้มันค่อนข้างง่าย งานส่วนใหญ่จริง ๆ ไปอยู่ที่การทำให้มันแสดงผลใน UI
    • ผมก็สงสัยเหมือนกัน ไม่ค่อยเข้าใจว่าหมายถึงอะไร แต่ดูเหมือนนี่จะเป็นเหตุผลสำคัญที่ทำให้ Claude Code โดดเด่น
    • ผมคิดว่ามันน่าจะแค่เป็นฟังก์ชัน concat ธรรมดา ๆ เทคนิค prompt ที่ใช้งานได้จริงส่วนใหญ่ ตัว implementation มักเรียบง่ายอยู่แล้ว ยิ่งทำให้ยิ่งน่าทึ่งว่าไอเดียง่าย ๆ อย่าง TODO ไปได้ไกลขนาดนี้! (แต่ในสภาพแวดล้อมจริง framework สำหรับ agent ก็ยากอยู่ดี เช่น การหาชุดผสมและการตั้งค่าที่เหมาะสมเป็นเรื่องยากมาก และฝั่ง infrastructure ก็มีเรื่อง multi-tenancy, multithreading, streaming, cancellation ฯลฯ ให้ต้องดูแล) ผมเห็นด้วยเต็มที่ว่า TODO list สำคัญมาก งานอย่างการแข่งขันวิเคราะห์ security log ของ louie.ai ก็เร็วขึ้นมากเพราะวิธีนี้ มันช่วยกันไม่ให้ CoT พังหลังผ่านไปไม่กี่ turn ช่วงที่รู้สึกว่า "อ๋อ" จริง ๆ คือการใช้ nested todo (A.2.i...) ซึ่งดีมาก และจากมุมของ LLM มันก็ถูกทำให้เป็นเส้นตรงอยู่แล้ว เลยจัดการได้ไม่ยาก เราไม่ได้ใช้ claude code แต่จัดการภายในด้วย plan prompt ประมาณนี้: https://github.com/graphistry/louie-py/blob/main/ai/prompts/PLAN.md
    • ใน context จะบันทึกไว้แค่ว่าเคยมีการเรียก tool เท่านั้น ไม่ได้ดึงข้อมูล todo list จริงกลับเข้ามาอีก
    • ถ้าตามความเข้าใจของผม ก็น่าจะประมาณว่าเป็น prompt ให้เขียน TODO list เท่านั้น