AI & AUTOMATION

Deep Agents: Kiến trúc agent tự trị thế hệ mới với LangGraph

Key takeaways:

  • Lập kế hoạch chiến lược tích hợp sẵn: Công cụ write_todos cho phép agent tự phân rã tác vụ phức tạp thành các bước nhỏ có thể theo dõi và thực thi tuần tự mà không cần lập trình thủ công.
  • Quản lý ngữ cảnh bền vững qua filesystem: Hệ thống backend đa dạng – từ bộ nhớ tạm (StateBackend) đến lưu trữ xuyên luồng (StoreBackend) – giải quyết triệt để vấn đề tràn context window trong tác vụ dài hạn.
  • Kiến trúc phân cấp sub-agents: Công cụ task cho phép agent gốc ủy thác công việc cho các sub-agent chuyên biệt với context window độc lập, tăng khả năng xử lý song song.
  • LangGraph native – sản xuất ngay lập tức: create_deep_agent() trả về một LangGraph graph đã biên dịch, hỗ trợ đầy đủ streaming, checkpointing và human-in-the-loop.
  • Không ràng buộc nhà cung cấp: Tương thích với mọi LLM hỗ trợ tool calling – OpenAI, Anthropic, Google, Ollama và nhiều hơn nữa – qua một API thống nhất.

Sự chuyển dịch từ simple agents sang deep agents

Trong vài năm gần đây, kiến trúc agent đơn giản theo vòng lặp ReAct (Reason + Act) đã trở thành tiêu chuẩn phổ biến: mô hình ngôn ngữ nhận đầu vào, gọi công cụ, quan sát kết quả, và lặp lại cho đến khi hoàn thành. Mô hình này hoạt động tốt cho các tác vụ ngắn hạn với ngữ cảnh vừa phải. Tuy nhiên, khi tác vụ trở nên phức tạp hơn – nghiên cứu đa bước, viết báo cáo kỹ thuật dài, hay phát triển phần mềm tự trị – kiến trúc đơn giản này bộc lộ hai điểm yếu cốt lõi.

Thứ nhất, vấn đề ngữ cảnh: Mọi thông tin thu thập được đều nằm trong context window. Khi tác vụ kéo dài, context window đầy lên, dẫn đến mất mát thông tin hoặc chi phí token tăng vọt. Thứ hai, vấn đề phối hợp: Một agent đơn lẻ xử lý tuần tự không thể tận dụng khả năng song song hóa, và khi phạm vi công việc mở rộng, hiệu suất suy giảm rõ rệt.

Deep Agents – dự án mã nguồn mở từ LangChain – giải quyết cả hai điểm yếu này thông qua một thiết kế “batteries-included”: một agent harness được tích hợp sẵn công cụ lập kế hoạch, hệ thống filesystem để ngoại trú (offload) ngữ cảnh, và cơ chế sinh sub-agents để phân phối tải công việc. Toàn bộ kiến trúc được xây dựng trên nền tảng LangGraph – runtime dành cho production với streaming, persistence và checkpointing

Các thành phần cốt lõi của Deep Agents

Công cụ lập kế hoạch – write_todos

Planning là thành phần đầu tiên và quan trọng nhất phân biệt Deep Agents với các agent thông thường. Khi nhận một tác vụ phức tạp, agent không lao vào thực thi ngay. Thay vào đó, nó sử dụng công cụ write_todos để:

  • Phân rã tác vụ lớn thành danh sách các bước con có thứ tự.
  • Ghi lại kế hoạch vào filesystem để duy trì qua các vòng lặp.
  • Đánh dấu trạng thái hoàn thành cho từng bước, tạo ra luồng kiểm soát tự trị.

Đây là cơ chế lập kế hoạch theo dạng “todo list” tự quản lý: agent tự tạo kế hoạch, tự thực thi, và tự cập nhật tiến trình mà không cần can thiệp từ người dùng ở mỗi bước.

Filesystem backend – hệ thống ngoại trú ngữ cảnh

Một trong những hạn chế lớn nhất của RAG truyền thống và agent đơn là mọi thứ phải tồn tại trong bộ nhớ làm việc (context window). Deep Agents giải quyết vấn đề này bằng hệ thống filesystem có thể hoán đổi linh hoạt.

Các công cụ filesystem tích hợp sẵn bao gồm: read_file, write_file, edit_file, ls, glob, và grep. Khi một kết quả tìm kiếm quá lớn để giữ trong context, agent tự động lưu vào file. Khi cần xem lại, nó đọc lại từ file. Đây là cơ chế quản lý bộ nhớ làm việc có chủ đích, tương tự cách một lập trình viên lưu kết quả trung gian ra đĩa thay vì giữ tất cả trong RAM.

Deep Agents cung cấp năm loại backend có thể cấu hình:

BackendPhạm vi lưu trữTrường hợp sử dụng
StateBackendTrong một luồng duy nhất (tạm thời)Mặc định, tác vụ ngắn hạn
FilesystemBackendHệ thống file cục bộTruy cập trực tiếp dữ liệu trên máy
LocalShellBackendHệ thống file + shellTác vụ cần thực thi lệnh hệ thống
StoreBackendXuyên luồng (bền vững)Bộ nhớ dài hạn giữa các phiên
CompositeBackendKết hợp nhiều backendRouting linh hoạt theo đường dẫn

Khởi tạo sub-agents – cơ chế “chia để trị”

Sub-agent spawning là tính năng kỹ thuật phức tạp nhất và mạnh mẽ nhất của Deep Agents. Thông qua công cụ task, agent gốc (orchestrator) có thể khởi tạo các agent con (sub-agents) để xử lý các công việc phụ trong context window độc lập.

Đây là điểm then chốt: mỗi sub-agent hoạt động trong không gian ngữ cảnh riêng biệt. Agent gốc không bị “ô nhiễm” ngữ cảnh bởi các kết quả trung gian từ sub-agents. Khi sub-agent hoàn thành, nó trả về kết quả tổng hợp cho agent gốc – tương tự mô hình fork-join trong lập trình đa luồng.

Thành phần SubAgentMiddleware trong kiến trúc Deep Agents đảm nhận toàn bộ việc sinh sản, phối hợp và thu gom kết quả từ các sub-agents này.

Quản lý ngữ cảnh tự động

Khi hội thoại kéo dài và context window có nguy cơ đầy, Deep Agents tự động kích hoạt cơ chế tóm tắt (auto-summarization), nén các phần hội thoại cũ thành bản tóm tắt súc tích. Các đầu ra quá lớn từ công cụ cũng được tự động lưu vào file thay vì đưa trực tiếp vào context.

Hướng dẫn cài đặt môi trường

Yêu cầu hệ thống và cài đặt thư viện

Deep Agents yêu cầu Python 3.10 trở lên. Cài đặt được thực hiện qua một lệnh duy nhất:

# Sử dụng pip
pip install deepagents

# Hoặc sử dụng uv (khuyến nghị cho môi trường phát triển)
uv add deepagents

Nếu cần tích hợp tìm kiếm web, cài đặt thêm thư viện Tavily:

pip install deepagents tavily-python

Cấu hình API key và biến môi trường

Deep Agents không ràng buộc với bất kỳ nhà cung cấp LLM nào. Tùy theo model được chọn, cấu hình biến môi trường tương ứng:

# Sử dụng Anthropic (mặc định: claude-sonnet-4-6)
export ANTHROPIC_API_KEY="your-anthropic-api-key"

# Hoặc sử dụng OpenAI
export OPENAI_API_KEY="your-openai-api-key"

# API key cho tìm kiếm web qua Tavily (tùy chọn nhưng được khuyến nghị)
export TAVILY_API_KEY="your-tavily-api-key"

# Theo dõi và gỡ lỗi với LangSmith (tùy chọn, khuyến nghị cho production)
export LANGSMITH_API_KEY="your-langsmith-api-key"
export LANGSMITH_TRACING=true

Để không phải xuất biến môi trường mỗi lần, tạo file .env tại thư mục gốc của dự án và sử dụng python-dotenv để nạp tự động.

Hướng dẫn sử dụng thực tế

Khởi tạo agent cơ bản

Hàm create_deep_agent() là điểm vào duy nhất để khởi tạo một deep agent. Ở dạng tối giản:

from deepagents import create_deep_agent

agent = create_deep_agent()

result = agent.invoke({
    "messages": [{"role": "user", "content": "Nghiên cứu về LangGraph và viết bản tóm tắt"}]
})
print(result["messages"][-1].content)

Chỉ với hai dòng khởi tạo, agent đã có đầy đủ: kế hoạch tác vụ, đọc/ghi file, và khả năng sinh sub-agents.

Triển khai agent nghiên cứu với tùy chỉnh đầy đủ

Ví dụ thực tế triển khai một agent nghiên cứu chuyên biệt với model tùy chọn và công cụ tìm kiếm web:

import os
from typing import Literal
from tavily import TavilyClient
from deepagents import create_deep_agent
from langchain.chat_models import init_chat_model

# Khởi tạo client tìm kiếm
tavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])

# Định nghĩa công cụ tùy chỉnh
def internet_search(
    query: str,
    max_results: int = 5,
    topic: Literal["general", "news", "finance"] = "general",
) -> dict:
    """Tìm kiếm thông tin trên internet theo từ khóa."""
    return tavily_client.search(query, max_results=max_results, topic=topic)

# System prompt định hướng hành vi agent
research_prompt = """Bạn là chuyên gia nghiên cứu cấp cao. Nhiệm vụ của bạn là:
1. Lập kế hoạch nghiên cứu chi tiết trước khi bắt đầu.
2. Thu thập thông tin từ nhiều nguồn khác nhau.
3. Lưu các kết quả trung gian vào file để quản lý ngữ cảnh.
4. Tổng hợp và viết báo cáo cuối cùng có cấu trúc rõ ràng.
"""

# Khởi tạo deep agent với cấu hình đầy đủ
agent = create_deep_agent(
    model=init_chat_model("openai:gpt-4o"),
    tools=[internet_search],
    system_prompt=research_prompt,
)

# Chạy tác vụ nghiên cứu phức tạp
result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": "Phân tích toàn diện về xu hướng AI Agent trong năm 2025, bao gồm các framework chủ đạo, case study triển khai và dự báo kỹ thuật."
    }]
})

Theo dõi streaming và giám sát sub-agents

Do create_deep_agent() trả về một LangGraph graph đã biên dịch, toàn bộ tính năng streaming của LangGraph có thể sử dụng ngay. Đây là cách theo dõi từng bước thực thi, bao gồm cả hoạt động của sub-agents:

# Streaming với khả năng nhìn thấu sub-agents
for chunk in agent.stream(
    {"messages": [{"role": "user", "content": "Nghiên cứu về kiến trúc Transformer"}]},
    stream_mode="updates",
    subgraphs=True,  # Bật khả năng nhìn thấu sub-agents
):
    # chunk chứa cập nhật từ cả agent gốc lẫn sub-agents
    print(chunk)

Tham số subgraphs=True kích hoạt khả năng quan sát phân cấp – mỗi tool call, kết quả công cụ, và phản hồi LLM từ mọi sub-agent đều được phát theo luồng thời gian thực. Đây là tính năng đặc biệt hữu ích trong giai đoạn gỡ lỗi và giám sát hệ thống production.

Cấu hình backend lưu trữ xuyên phiên

Để agent có bộ nhớ dài hạn, tồn tại qua các lần khởi động lại:

from deepagents import create_deep_agent
from deepagents.backends import StoreBackend
from langgraph.store.memory import InMemoryStore

# StoreBackend với InMemoryStore (có thể thay bằng PostgresStore, RedisStore...)
store = InMemoryStore()
backend = StoreBackend(store=store)

agent = create_deep_agent(
    backend=backend,
    system_prompt="Bạn là trợ lý có bộ nhớ dài hạn.",
)

Tại sao Deep Agents vượt trội hơn kiến trúc agent đơn giản?

Sự khác biệt cốt lõi nằm ở ba cấp độ. Ở cấp độ nhận thức, agent đơn giản phản ứng theo từng bước; Deep Agents lập kế hoạch trước toàn bộ tác vụ, giảm thiểu đáng kể vòng lặp suy luận không hiệu quả. Ở cấp độ bộ nhớ, agent đơn giản bị giới hạn bởi context window; Deep Agents ngoại trú thông tin ra filesystem, phá vỡ rào cản này. Ở cấp độ phối hợp, agent đơn giản xử lý tuần tự; Deep Agents phân phối tải qua sub-agents với context độc lập, cho phép xử lý song song và chuyên biệt hóa.

Được lấy cảm hứng từ Claude Code và được thiết kế để tổng quát hóa hơn, Deep Agents là câu trả lời kỹ thuật cho bài toán: làm thế nào để một AI Agent hoạt động hiệu quả trên các tác vụ có độ phức tạp tiệm cận với công việc của một kỹ sư phần mềm thực thụ.


Deep Agents đại diện cho một bước tiến thực chất trong kiến trúc agentic: từ vòng lặp phản ứng đơn giản sang hệ thống tự trị có lập kế hoạch, có bộ nhớ có cấu trúc, và có khả năng phân cấp. Sự tích hợp sâu với LangGraph đảm bảo rằng mọi tính năng production – streaming, persistence, human-in-the-loop, triển khai đám mây – đều có sẵn mà không cần cấu hình thêm.

Với chỉ một lệnh pip install deepagents và hàm create_deep_agent(), nhà phát triển có ngay một agent hoàn chỉnh có thể mở rộng và tùy biến theo mọi hướng cần thiết.

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận