21 điểm bởi GN⁺ 2025-08-07 | 1 bình luận | Chia sẻ qua WhatsApp
  • Các tác nhân dựa trên LLM trước đây thường có cấu trúc 'tác nhân nông (shallow agent)' chỉ lặp lại việc gọi công cụ, trong khi Deep Agentstác nhân AI có tính lập kế hoạch và cấu trúc, có thể giải quyết sâu các nhiệm vụ phức tạp và dài hạn
  • Các tác nhân mới như Deep Research, Manus, Claude Code hiện thực hóa 'tác nhân sâu' có khả năng khám phá chủ đề sâu hơn và quản lý ngữ cảnh tốt hơn
    • Prompt hệ thống chi tiết, công cụ lập kế hoạch, tác nhân con, và việc tận dụng hệ thống tệp là cốt lõi của 'tác nhân sâu'
  • LangChain phát hành gói mã nguồn mở deepagents để bất kỳ ai cũng có thể dễ dàng tạo deep agent phù hợp với vertical (miền/domain) của riêng mình
    • Có thể thiết lập prompt, công cụ và tác nhân con tùy chỉnh, đồng thời cung cấp một framework đa dụng có thể ứng dụng trong nhiều lĩnh vực như nghiên cứu và phát triển

Giới hạn của các tác nhân LLM trước đây và đặc điểm của Deep Agents

  • Tác nhân truyền thống: LLM chạy theo vòng lặp và chỉ gọi công cụ → chỉ phù hợp với ngữ cảnh ngắn, tác vụ ngắn hạn và đơn giản
  • Deep Agents: có thể tự phân rã, lập kế hoạch, theo dõi và phối hợp cho cả mục tiêu dài hạn lẫn tác vụ phức tạp

4 thành phần cấu thành Deep Agents

  1. Prompt hệ thống chi tiết

    • Giống như các ví dụ tiêu biểu như Claude Code, sử dụng prompt mô tả chi tiết cách dùng công cụ/các ví dụ hành vi
    • Dùng chỉ dẫn phức tạp và ví dụ few-shot để thúc đẩy tư duy và thực thi 'sâu' hơn
  2. Công cụ lập kế hoạch (Planning)

    • Ngay cả khi không có chức năng thực sự, việc đưa công cụ lập kế hoạch như 'danh sách việc cần làm' vào quy trình vẫn giúp quản lý ngữ cảnh và duy trì năng lực thực thi
    • Dù là no-op (không thực hiện hành động nào), nó vẫn có tác dụng cung cấp ngữ cảnh trong prompt
  3. Tác nhân con (Sub Agents)

    • Tạo và phân chia tác nhân con theo từng tác vụ nhỏ, mỗi tác nhân xử lý độc lập rồi hợp nhất kết quả
    • Ngay cả các vấn đề lớn/quá phức tạp cũng có thể được xử lý theo cấu trúc song song và phân công
  4. Hệ thống tệp

    • Không chỉ dùng cho thao tác tệp thực tế mà còn được tận dụng như kho ghi chú và lưu trữ ngữ cảnh
    • Nhiều tác nhân/tác nhân con có thể chia sẻ hệ thống tệp để cộng tác và duy trì ngữ cảnh dài hạn

Framework Deep Agents của LangChain: deepagents

  • Gói Python mã nguồn mở (pip install deepagents), cho phép cấu hình prompt, công cụ và tác nhân con tùy chỉnh
    • Prompt hệ thống lấy cảm hứng từ Claude Code, đã được chỉnh sửa để tổng quát hơn
    • Công cụ lập kế hoạch danh sách ToDo dạng no-op (giống Claude Code)
    • Có thể tạo tác nhân con và chỉ định tùy chỉnh
    • Hệ thống tệp ảo dùng khái niệm LangGraph (sử dụng trạng thái tác nhân)
  • Cung cấp mẫu deep research agent làm ví dụ, giúp dễ dàng xây dựng các tác nhân chuyên biệt theo vertical

Ví dụ ứng dụng và giá trị

  • Tối ưu cho các tác vụ AI dài hạn và phức hợp như nghiên cứu/phát triển, sinh mã, nghiên cứu, tự động hóa phức tạp
  • Có thể tạo ra kết quả chuyên sâu nhờ thiết kế ngữ cảnh chi tiết và cấu trúc phân công công việc
  • Bất kỳ ai cũng có thể xây dựng 'deep agent' phù hợp với miền của mình — gợi mở giai đoạn tiếp theo trong việc ứng dụng AI

1 bình luận

 
GN⁺ 2025-08-07
Ý kiến trên Hacker News
  • Tôi là tác giả. Gần đây tôi thấy khá ấn tượng với việc một loạt agent như claude code, manus, deep research đặc biệt làm tốt các tác vụ kéo dài trên khung thời gian dài. Về bản chất, bên trong là LLM lặp vòng và gọi tool. Nhưng nếu làm như vậy một cách ngây thơ thì sẽ phát sinh vấn đề là LLM không xử lý tốt các tác vụ dài hoặc phức tạp. Vì thế tôi bắt đầu tò mò không biết các agent khác giải quyết việc này như thế nào. Điểm chung tôi tìm ra là như sau. 1) dùng tool lập kế hoạch 2) dùng sub-agent 3) dùng cấu trúc offload context kiểu như file system 4) thiết kế system prompt chi tiết (prompt engineering vẫn rất quan trọng) Mỗi thứ riêng lẻ đều là cách làm đã có từ trước, nhưng đây không phải những cách thường được dùng rộng rãi khi thật sự phát triển agent. Tôi nghĩ chính tổ hợp này mới là insight quan trọng. Rất mong nhận được phản hồi

  • Sau khi nghĩ thêm về nhiều ý kiến khác nhau, tôi đồng ý rằng khái niệm deep agents rốt cuộc cũng không khác biệt quá nhiều so với tổ hợp agent + tool. Theo quan điểm của tôi, các điểm cốt lõi là như sau. 1) kiến thức nền tảng đòi hỏi phải dùng LLM tốt 2) prompt để dẫn dắt LLM cho đúng rất quan trọng (để biến nó thành agent) 3) các chức năng không cần phán đoán riêng thì nên triển khai bằng tool 4) khi flow agent+tool trở nên phức tạp, hãy tách nó thành các sub-agent theo từng domain, với prompt tập trung hơn và số lượng tool ít hơn

    • Cuối cùng có lẽ sẽ tiến hóa thành mô hình "điều phối viên", nơi agent cấp cao nhất chọn việc cần làm và phân phối cho agent nào phù hợp với công việc đó. Cấu trúc này có thể lặp đệ quy (ví dụ: mỗi product có một agent, và agent đó lại tách ra thành các agent phụ trách công việc frontend/backend). Trong cấu trúc như vậy, các agent thực thi công việc thực tế chỉ cần tập trung vào context và tool giới hạn, còn agent cấp trên chỉ cần biết các sub-agent có thể làm gì
  • Tôi nghĩ deep agents = agent có thêm lập kế hoạch + tổ hợp tool cho agent, nên rốt cuộc cũng giống các agent trước đây. Tôi thấy tiếc vì LangChain dường như luôn gói ghém cả những khái niệm đơn giản theo cách phức tạp, rồi tạo ra thuật ngữ hay khái niệm mới không cần thiết để quảng bá. Dĩ nhiên, nếu muốn bán LangSmith nhiều hơn thì có lẽ cũng không tránh khỏi

    • Trước đây tôi từng làm kiểu tư vấn như thế này. Không thể nói là hoàn toàn y hệt, nhưng về bản chất thì đó là một chiêu rất phổ biến. Lấy thứ bình thường rồi trình diễn nó như sân khấu, tạo ra thuật ngữ và hệ phân loại của riêng mình, rồi đem bán. Bước tiếp theo là phủ SEO bằng khái niệm của mình. Chỉ cần bám vào các từ khóa đang hot như deep * và agent là được… Càng nghĩ về những việc kiểu này càng thấy về bản chất môi trường doanh nghiệp thật sự rút cạn tinh thần
  • Kết quả này khá giống với điều tôi kỳ vọng. Giờ đã rõ là việc tự viết MCP server không còn quá hiệu quả, nên ai cũng cần một cách mới để nhanh chóng bắt kịp xu hướng. Tự làm agent như gemini hay claude code đang là trào lưu gần đây. Rào cản gia nhập thấp, có mức độ hữu ích nhất định, không cần chuyên môn AI quá sâu, lại dễ quảng bá. Nó giống kiểu “cursor for X”, nhưng còn có thể đưa thành sản phẩm nhanh hơn nữa. Có lẽ sẽ xuất hiện cực nhiều coding agent được tạo theo cách này, nhưng đến lúc này tôi vẫn chưa thấy cảm giác thực sự mới mẻ lắm. Dù vậy, tôi vẫn nhìn tích cực ở chỗ nếu có thể bắt đầu nhanh đến thế thì giá trị của những bản clone claude code làm theo trực giác rồi cũng sẽ sớm tiệm cận 0

  • Tôi đang tiếp tục lần theo và phân tích code của repo này https://github.com/ghuntley/claude-code-source-code-deobfuscation Tác giả reverse engineering Claude Code và giải thích kiến trúc của nó khá tốt. Tôi đã đổi liên kết sang repo tốt hơn

    • Có ai giải thích được nó cho thấy điều gì không? Tôi chỉ thấy một file readme cực lớn và các system command thôi
  • Tôi đang làm một agent cli+library đa dụng bằng rust: https://github.com/fdietze/alors Vẫn còn ở giai đoạn phát triển ban đầu, nhưng tôi đã dùng chính nó để phát triển nó rồi. Rất mong nhận được phản hồi

  • Theo tôi thì Junie của Jetbrains là bên đầu tiên viết ra tính năng to do list chất lượng rất cao, và đó là thứ tôi thích nhất. Từ khi chuyển sang trả phí thì tôi không dùng nữa, nhưng khi đó Junie chậm và cẩn trọng. Cursor thì cứ liên tục ghi đè cả những file không có vấn đề, còn Claude cho cảm giác ở đâu đó ở giữa

    • Cursor cũng cung cấp UI chuyên dụng cho todo list và dẫn agent dùng nó (UX thì tốt nhưng không thể tự xem trực tiếp file riêng). kiro của amazon dùng cách quản lý cả việc cần làm lẫn spec trong tasks.md. Tool ngày càng nhiều nên giờ chỉ cần chọn cái hợp với mình mà dùng
  • Phần thú vị nhất lại bị ẩn hoàn toàn. Mấu chốt là họ quản lý tool call từ khâu parsing đến thực thi như thế nào

  • Việc tách context bằng sub-agent mới là điểm đổi mới thực sự. Còn lại chỉ là langgraph react agent

    • Điều này có giá trị, nhưng thật ra không phải ý tưởng hoàn toàn mới
  • Tôi muốn biết thêm về phần todo list tool là no-op. Cụ thể nó hoạt động thế nào?

    • Nếu muốn xem trực tiếp trong code, Sketch agent do chúng tôi làm sử dụng tool TODO list theo cách này: https://github.com/boldsoftware/sketch/blob/main/claudetool/todo.go Việc khiến agent dùng nó thì tương đối dễ. Phần lớn công sức nằm ở việc làm cho nó hiển thị trong UI
    • Tôi cũng cùng câu hỏi. Tôi không thực sự hiểu nó có nghĩa là gì. Nhưng có vẻ đây là một lý do rõ ràng khiến Claude Code vượt trội
    • Theo tôi thì nó chỉ là một chức năng concat đơn giản. Trên thực tế, các kỹ thuật prompt hữu ích thường đều khá đơn giản ở mức triển khai. Chính vì thế lại càng đáng ngạc nhiên khi ý tưởng đơn giản như TODO có thể đi xa đến vậy! (Dĩ nhiên, agent framework trong môi trường nghiêm túc thì vẫn khó. Ví dụ: việc tìm đúng tổ hợp và thiết lập là cực khó, còn hạ tầng thì có rất nhiều thứ phải lo như multi-tenancy, multithreading, streaming, hủy tác vụ, v.v.). Tôi hoàn toàn đồng ý rằng TODO list rất quan trọng. Những thứ như cuộc thi phân tích log bảo mật của louie.ai cũng được tăng tốc rất mạnh nhờ cách này. Nó ngăn CoT bị hỏng chỉ sau vài lượt. Một khoảnh khắc aha khá thú vị là nếu dùng nested todo (A.2.i...) thì rất tốt, nhưng từ góc nhìn của LLM thì cuối cùng nó vẫn được tuyến tính hóa nên xử lý không khó. Thay vì claude code, nội bộ chúng tôi quản lý theo kiểu plan prompt như thế này: https://github.com/graphistry/louie-py/blob/main/ai/prompts/PLAN.md
    • Chỉ việc đã từng có tool call được ghi vào context. Dữ liệu todo list thực tế thì không được nạp lại
    • Theo hiểu biết của tôi thì có thể xem nó đơn giản là một prompt yêu cầu viết TODO list thôi