TL;DR

Đây là phần cuối trong series 3 phần phân tích "Agentic Design Patterns" (Antonio Gullí, Springer 2025). Phần 1 giải thích 4 cấp độ Agent. Phần 2 đi vào Context Engineering và Reflection Pattern. Phần này cover 3 chủ đề còn lại: kiến trúc Multi-Agent, Memory model 3 tầng, và điều quan trọng nhất - 3 việc bạn có thể làm ngay hôm nay để nâng cấp Agent của mình.

Multi-Agent - Không Phải Càng Phức Tạp Càng Tốt

Nếu bạn đã làm quen với LangGraph, Crew AI hay Google ADK, khả năng cao bạn đã từng bị cám dỗ bởi ý tưởng xây một hệ thống Multi-Agent phức tạp. Sách của Gullí có một lập luận khá thực tế về vấn đề này.

Sách mô tả 6 communication topologies cho Multi-Agent systems:

1. Single Agent (Independent Execution): Mỗi Agent tự xử lý task của mình độc lập, không giao tiếp với Agent khác. Phù hợp khi task có thể chia thành các sub-problem không phụ thuộc nhau. Đơn giản nhất, dễ maintain nhất.

2. Peer-to-Peer: Agent giao tiếp trực tiếp với nhau, không có node điều phối trung tâm. Ưu điểm: decentralized, fault-tolerant - một Agent chết không kéo cả hệ thống xuống. Nhược điểm: coordination cost cao, dễ phát sinh conflict và trạng thái không nhất quán.

3. Supervisor (Central Dispatch): Một Supervisor Agent quản lý pool các Worker Agent - phân task, thu kết quả, giải quyết conflict. Hierarchy rõ ràng, dễ debug. Nhưng Supervisor là single point of failure và là performance bottleneck khi số lượng worker tăng.

4. Supervisor-as-Tool: Biến thể của Supervisor, nơi Supervisor không điều phối toàn bộ mà được gọi như một tool khi cần.

5. Hierarchical: Multi-level Supervisor - Supervisor quản lý các Supervisor con, mỗi Supervisor con quản lý một nhóm Worker.

6. Custom Hybrid: Kết hợp linh hoạt các topology trên dựa theo đặc thù bài toán.

Điểm mấu chốt từ sách: topology phụ thuộc vào độ phức tạp của task, không phải vào ambition của bạn. Task càng chia nhỏ ra nhiều sub-task, communication cost càng tăng, đến một ngưỡng nào đó Supervisor model còn hiệu quả hơn Hierarchical. Và quan trọng hơn: phần lớn developer xây Multi-Agent tốn 80% thời gian vào communication protocol mà quên mất câu hỏi cơ bản nhất - task này có thực sự cần nhiều Agent không?

Gullí viết thẳng: Level 2 single Agent với Reflection và Context Engineering thường đã đủ cho phần lớn use case thực tế. Level 3 là dành cho task thực sự multi-domain, multi-stage, cần parallel execution. Vấn đề của hầu hết mọi người không phải Agent chưa đủ nhiều - mà là một Agent cũng chưa tune tốt.

Memory 3 Tầng - Session, State và Persistent

Phần lớn người mới làm quen với Agent chỉ biết đến một loại memory: conversation history trong context window. Sách chia memory thành 3 tầng với vòng đời và mục đích hoàn toàn khác nhau:

Memory 3 tầng: Session (temporary), State (task-level), Memory (persistent cross-session)

Tầng 1 - Session (Conversation Layer): Đây là context window của conversation hiện tại. Khi conversation kết thúc, tất cả mất. Model ngữ cảnh dài (long-context model) chỉ là version lớn hơn của tầng này - bản chất vẫn là temporary, và mỗi lần inference đều phải xử lý toàn bộ window, tốn tiền và chậm khi window lớn.

Tầng 2 - State (Task Layer): Dữ liệu tạm thời được sinh ra trong quá trình thực hiện một task cụ thể. Ví dụ: "đang làm task gì", "đã xong đến bước nào", "intermediate data là gì". Tồn tại lâu hơn Session nhưng được xóa khi task kết thúc. Sách demo implementation với Google ADK State mechanism.

Tầng 3 - Memory (Persistent Layer): Long-term storage across sessions và tasks. User preferences, kinh nghiệm học được, quyết định lịch sử quan trọng - tất cả được lưu vào database hoặc vector store và có thể semantic search. Điểm sách nhấn mạnh: Memory không chỉ là "lưu xuống" mà còn phải thiết kế cả strategy - lưu gì, lưu khi nào, retrieve như thế nào. Lưu quá nhiều thì noisy, lưu quá ít thì không đủ dùng.

Tầng 3 là thứ tạo ra sự khác biệt giữa Agent "thông minh" và Agent "thực sự học" từ người dùng theo thời gian. Và nó thường bị bỏ qua hoàn toàn trong hầu hết implementation hiện tại.

5 Dự Đoán Về Tương Lai Agent

Gullí kết thúc sách bằng 5 hypotheses về hướng Agent sẽ phát triển. Bốn cái đầu nằm trong tầm dự đoán được:

  • General-purpose Agent từ viết code đến quản lý dự án

  • Personalization sâu - Agent chủ động phát hiện nhu cầu trước khi bạn nói

  • Embodied AI bước ra khỏi màn hình vào thế giới vật lý

  • Agent trở thành independent economic entities

Cái thứ 5 là điều tác giả tweet gọi là "prediction kỳ lạ nhất".

Hypothesis 5 - Shapeshifting Multi-Agent: Bạn chỉ cần khai báo mục tiêu - ví dụ "xây một business bán specialty coffee online". Hệ thống tự quyết định tất cả: tạo "Market Research Agent" và "Brand Agent". Chạy một vòng dữ liệu, tự phán đoán Brand Agent không cần thiết nữa, phân rã thành 3 Agent mới: "Logo Design Agent", "Website Builder Agent", "Supply Chain Agent". Nếu Website Builder trở thành bottleneck, tự clone ra 3 Agent chạy song song xử lý các page khác nhau. Song song với đó, hệ thống liên tục tự optimize prompt của từng Agent và tái tổ chức team architecture.

Gullí gọi đây là "goal-driven, self-morphing multi-agent system". Nó không thực thi kế hoạch bạn viết - nó tự generate kế hoạch, tự điều chỉnh kế hoạch, tự tái tổ chức đội thực thi. Con người chỉ declare mục tiêu.

Karpathy đã có AutoResearch với khái niệm tương tự (viết program.md, define mục tiêu và ranh giới, nhấn start, con người đứng ngoài vòng lặp). Sách đẩy xa hơn một bước: không chỉ con người đứng ngoài vòng lặp, mà cả việc tổ chức team Agent cũng được giao cho hệ thống tự quyết.

3 Việc Có Thể Làm Ngay

Đây là phần thực tế nhất và dễ áp dụng nhất trong sách:

1. Thêm Critic Agent vào workflow hiện tại. Không cần refactor toàn bộ hệ thống. Bất kể bạn đang dùng Claude Code, Crew AI, LangGraph hay tự viết framework, chỉ cần thêm một bước ở cuối mỗi workflow chính: một Agent khác với system prompt khác review output. Code generation thêm code review, bài viết thêm fact-check, kế hoạch thêm feasibility review. Chỉ một LLM call thêm, chất lượng tăng đáng kể.

2. Chuyển từ Prompt Engineering sang Context Engineering. Nhìn lại instruction files bạn viết cho Agent. Nếu toàn bộ là rule "Agent nên làm gì" mà thiếu context "Agent đang trong môi trường nào", bổ sung thêm. Cho Agent biết nó đang ở project nào, trước đó đã quyết định gì, user preferences là gì. AGENTS.md của bạn và Context Engineering trong sách là cùng một khái niệm được diễn đạt từ hai góc nhìn khác nhau.

3. Chưa vội lên Multi-Agent. Tune Agent hiện tại đến Level 2 trước: có tool, có Reflection, có Memory 3 tầng. Sách nhắc đi nhắc lại: Level 2 single Agent với Producer-Critic và Context Engineering đã cover phần lớn use case thực tế. Level 3 dành cho task thực sự cần multi-domain, multi-stage, parallel execution. Vấn đề của hầu hết người đang xây Agent không phải là thiếu Agent - mà là một Agent cũng chưa làm tốt.

Kết

"Agentic Design Patterns" là quyển sách mà kỹ sư AI thực ra đang cần nhưng ít ai nhận ra mình cần. Không phải vì nó giới thiệu công nghệ mới - mà vì nó đặt tên và hệ thống hóa những thứ cộng đồng đang làm một cách rời rạc.

Bạn đã từng tự triển khai Reflection mà không biết gọi là gì. Bạn đã từng cố gắng quản lý context mà không có framework nào để tham chiếu. Bạn đã từng không biết nên dùng Multi-Agent hay single Agent cho bài toán hiện tại. Sách này trả lời tất cả những câu hỏi đó - với code chạy được, không chỉ lý thuyết.

Springer 2025, ISBN 9783032014016, 472 trang. Review tích cực từ cả engineers lẫn technical leaders - với lưu ý là "a bit technical for beginners". Nếu bạn đang xây AI Agent nghiêm túc, đây là cuốn đáng đọc.