Skip to content

Chương 9 — Frameworks & Tooling

⚙️

Thực chiến — 30 giây

Bạn viết tay agent rồi — giờ mới tới lúc framework có ích. LangGraph hay CrewAI? Chọn sai = debug khóc thét, giao hàng trễ. Ăn tiền ở đâu: chọn đúng tool cho dự án khách = giao nhanh, ít sửa, biên lợi nhuận cao.

Bạn đã viết agent tay ở Chương 3. Giờ mới là lúc framework có ích — vì bạn đã hiểu nó giấu gì bên dưới.

Sau chương này bạn sẽ làm được

  • Biết khi nào kéo framework (và khi nào đừng).
  • Đọc được code 5 framework chính qua cùng một bài toán.
  • Chọn đúng công cụ theo nhu cầu (có khung quyết định).

01 · Khi nào kéo framework?

Loop-first, framework-second

Framework rất hữu ích — nhưng sau khi hiểu vòng lặp. Anthropic cảnh báo: framework thêm lớp trừu tượng che mất cơ chế, gây khó debug.

  • Prototype/học → viết tay (Chương 3).
  • Cần state bền, checkpoint, human-in-the-loop, nhiều agent → kéo framework.
问题
  • 数据变化时,手动更新 DOM 容易遗漏
  • 页面越复杂,需要同步的地方越多,越容易出 bug
  • 多人协作时,DOM 操作散落各处,维护成本高
根本原因
  • 浏览器不知道"数据"和"界面"的对应关系
  • 原生 DOM API 只提供底层操作,没有"数据变了就更新 UI"的能力
  • 开发者被迫充当"人肉同步器"
框架的解法
  • 建立数据到 UI 的映射关系(UI = f(State))
  • 自动检测数据变化(响应式系统)
  • 自动计算最小 DOM 更新(虚拟 DOM / 编译优化)

02 · LangGraph — chuẩn cho production

Mô hình hoá agent như đồ thị có hướng (StateGraph):

python
from langgraph.graph import StateGraph, END
from typing import TypedDict

class State(TypedDict):          # "bộ nhớ làm việc" của hệ
    question: str
    answer: str

def tra_loi(state):              # 1 node = 1 hàm cập nhật state
    return {"answer": llm(state["question"])}

g = StateGraph(State)
g.add_node("answer", tra_loi)
g.set_entry_point("answer")
g.add_edge("answer", END)
from langgraph.checkpoint.memory import MemorySaver
memory = MemorySaver()                  # dev; production dùng PostgresSaver
app = g.compile(checkpointer=memory)    # ← checkpoint: khôi phục được

Khái niệm cốt lõi

State (TypedDict chia sẻ) · Nodes (hàm cập nhật state) · Edges (nối node; conditional edge để LLM tự định tuyến) · Checkpointing (MemorySaverPostgresSaver, workflow khôi phục được) · HITL (breakpoint: dừng, sửa state, duyệt, chạy tiếp).

→ Mạnh nhất cho workflow có trạng thái, cần audit/rollback. Hệ sinh thái: LangSmith (Chương 10).


03 · CrewAI — nhanh để prototype

Mô hình role-based: mỗi agent có role / goal / backstory; gom thành Crew.

python
from crewai import Agent, Task, Crew

researcher = Agent(role="Nhà nghiên cứu thị trường",
                   goal="Tìm insight đối thủ trà sữa HN",
                   backstory="Chuyên gia F&B 10 năm")
writer = Agent(role="Copywriter", goal="Viết báo cáo SWOT dễ đọc",
               backstory="Viết content marketing")

crew = Crew(agents=[researcher, writer],
            tasks=[Task(description="Research 3 đối thủ", agent=researcher),
                   Task(description="Viết SWOT", agent=writer)])
print(crew.kickoff())

Ẩn dụ "thuê nhân viên". Nhanh nhất từ ý tưởng → demo multi-agent. Yếu hơn về state bền → hợp prototype/POC.


04 · OpenAI Agents SDK & Claude Agent SDK

python
# OpenAI Agents SDK — 3 primitive cốt lõi (Agents, Handoffs, Guardrails) + Sessions & Tracing
from agents import Agent, Runner
trợ_lý = Agent(name="CSKH", instructions="Trả lời lịch sự", tools=[tra_don])
print(Runner.run_sync(trợ_lý, "Đơn 1234 đâu rồi?").final_output)
OpenAI Agents SDKVai trò
AgentsLLM + instructions + tools
HandoffsTrao quyền sang agent khác (là 1 tool)
GuardrailsKiểm input/output song song, "tripwire" chặn
SessionsTự lưu lịch sử hội thoại
TracingGhi vết để debug

Claude Agent SDK (trước là Claude Code SDK): khái niệm cốt lõi harness — bộ khung quanh model cho nó truy cập máy (terminal/file/lệnh); vòng lặp gather → act → verify → repeat + subagent context riêng.


05 · Google ADK & phân tầng (2026)

ADK: LLM Agents (suy luận) vs Workflow Agents (điều phối tất định: Sequential/Parallel/Loop) vs Custom/Graph.

"Tier" theo đồng thuận cộng đồng (định hướng)

TầngFrameworkGhi chú
ProductionLangGraph, LlamaIndex (tài liệu), MS Agent Framework, ADKState bền, audit, checkpoint
PrototypeCrewAI, AG2Nhanh ra demo, nhẹ về state
Bảo trì (cân nhắc rời)AutoGen (gốc), Semantic KernelHướng dẫn migrate sang MS Agent Framework
Chuẩn hội tụ: MCP (agent↔tool), A2A (agent↔agent), OpenTelemetry GenAI (observability).
主流框架对比(先看“适配度”)
先选你的关注点,再看推荐。
框架
上手
可控
多 Agent
适合做什么
LangChain / LangGraph
可控的工具调用、工作流、企业集成
AutoGen
多 Agent 对话协作、编程/分析助手
CrewAI
角色分工清晰的团队协作任务
此刻更推荐:LangChain / LangGraph
把流程“画成图/写成步骤”,更利于调试、上线与长期维护。
三问选框架
目标:先跑通一个最小 Agent,再逐步增强。
1) 你更在乎什么?
2) 你的任务像哪种?
3) 需要多 Agent 分工吗?
推荐:LangChain / LangGraph
更适合把 Agent 写成“可控流程”,便于调试、上线、加护栏。
注意:别一上来做大系统,先把 1 个工具调用跑通。
下一步:用 LangGraph 画一个 3-5 节点的小图。

06 · Computer Use — agent điều khiển màn hình

Khi phần mềm không có API, agent thao tác GUI như người: chụp màn hình → click/gõ/cuộn.

Trạng thái 2026 (nói cho chuẩn)

Trên OSWorld-Verified, Claude Sonnet 4.6 đạt ~72,5% (từ 14,9% lúc ra mắt 10/2024) — ≈ mức người ở nhiều tác vụ GUI. Anthropic nói model "vẫn kém người giỏi nhất", nên dùng "≈ mức người ở nhiều tác vụ", không "ngang con người".

→ Mở khoá tự động hoá phần mềm legacy (rất hợp VN: MISA, Bravo, Fast — Chương 12). Đánh đổi: chậm + đắt hơn API, dễ vỡ khi UI đổi.


07 · Toolkit 6 layer & khung chọn

Bản đồ 2026

  1. Coding — Claude Code, Cursor, Windsurf, Devin, Cline, Aider
  2. General — Manus, Claude Computer Use, OpenAI Operator
  3. Workflow — n8n, Make, Smax.ai, Lindy
  4. Multi-agent — LangGraph, CrewAI, OpenAI/Claude SDK, ADK
  5. Infra — E2B, Browserbase, Daytona (sandbox), MCP servers
  6. Voice — ElevenLabs, Vapi, Retell, Bland
Bạn cần gì?
├─ Học/hiểu cơ chế        → viết tay (Chương 3)
├─ Workflow state bền/HITL → LangGraph
├─ Demo multi-agent nhanh → CrewAI
├─ Hệ OpenAI / Claude     → OpenAI Agents SDK / Claude Agent SDK
├─ No-code automation     → n8n / Smax.ai (Chương 12)
└─ Phần mềm không API     → Computer Use

08 · Bài tập

  1. Viết lại lab research đối thủ (Chương 7) bằng CrewAI (2 agent: researcher + writer). So với bản viết tay — gọn hơn hay khó debug hơn?
  2. Chọn framework cho 3 ca: (a) bot CSKH cần audit log từng bước, (b) demo nhanh cho khách xem, (c) tự động hoá phần mềm kế toán không API. Giải thích.
👉 Gợi ý câu 2

(a) LangGraph (checkpoint/audit). (b) CrewAI (nhanh ra demo). (c) Computer Use (không API).


09 · Kiểm tra nhanh

  1. Khi nào viết tay, khi nào framework?
  2. 3 khái niệm cốt lõi của LangGraph?
  3. Các thành phần chính của OpenAI Agents SDK?
  4. "Harness" trong Claude Agent SDK là gì?
  5. Nói cho chuẩn về điểm Computer Use trên OSWorld?
👉 Gợi ý đáp án
  1. Viết tay để học/prototype; framework khi cần state bền, checkpoint, HITL, nhiều agent.
  2. State, Nodes, Edges (+ checkpointing, conditional edges).
  3. 3 primitive cốt lõi: Agents, Handoffs, Guardrails; + Sessions & Tracing (tính năng).
  4. Bộ khung quanh model cho nó truy cập máy + chạy vòng lặp.
  5. ~72,5%, ≈ mức người ở nhiều tác vụ GUI — không phải "ngang con người".

10 · Tóm tắt & đọc tiếp

Mang theo

  • Loop-first, framework-second.
  • LangGraph (production/state), CrewAI (prototype), OpenAI/Claude SDK, ADK — đã thấy code.
  • Chuẩn hội tụ: MCP + A2A + OpenTelemetry.
  • Computer Use mở khoá phần mềm không-API.

Agent chạy được rồi — nhưng có tốt không? Phần D đưa lên production: đo lường, an toàn, ship.

Chương 10 — Evaluation & Observability


LangGraph Complete Course for Beginners – Complex AI Agents with Python

LangGraph Complete Course for Beginners – Complex AI Agents with Python

📺 freeCodeCamp.org YouTube ↗

Khoá LangGraph đầy đủ: graph/state/nodes/edges/checkpointing. (2025, 740K view)

Agents SDK from OpenAI! | Full Tutorial

Agents SDK from OpenAI! | Full Tutorial

📺 James Briggs YouTube ↗

Full tutorial OpenAI Agents SDK: agents, tools, handoffs. (2025)