Xây dựng Nền tảng AI Agent Trị giá Triệu Đô trong Một Cuối Tuần: Bí kíp Phát triển Thần tốc🧙‍♂️ 🪄

Chào mừng đến với bài viết chia sẻ kinh nghiệm về cách tôi đã xây dựng một nền tảng tạo tác vụ AI (AI Agent) có tiềm năng lớn chỉ trong vỏn vẹn một cuối tuần. Trong bối cảnh tự động hóa đang bùng nổ, nhiều công ty cung cấp các nền tảng no-code để người dùng tạo luồng công việc (workflows). Tuy nhiên, tôi nhận thấy một khoảng trống đáng kể.

Tại sao các Nền tảng Workflow No-code Truyền Thống chưa đủ cho AI Agent?

Thực tế về sự phát triển của các nền tảng no-code thật sự ấn tượng.


Thống kê Nền tảng No-code

Sau khi dành một tuần nghiên cứu sâu về Gumloop và các nền tảng no-code khác, tôi nhận ra điểm cốt lõi: chúng được thiết kế cho **luồng công việc (workflows)**, chứ không phải cho **tác vụ (agents)**. Đây là một khác biệt quan trọng.

Agent cần sự tùy chỉnh cao. Chúng phải có khả năng đưa ra quyết định, định tuyến động, và điều phối phức tạp các công cụ khác nhau. Hầu hết các nền tảng hiện tại coi những khả năng này như tính năng bổ sung, không phải cốt lõi. Tôi muốn thay đổi điều đó và xây dựng một thứ tập trung hoàn toàn vào việc tạo và điều phối agent.

Mặc dù sản phẩm này chưa sẵn sàng cho môi trường sản xuất và còn xa mới xử lý được khối lượng yêu cầu như các công ty lớn, mục tiêu chính là minh chứng cho sức mạnh của phương pháp phát triển nhanh chóng (tạm dịch từ “vibe coding”) và cho thấy việc xây dựng các ứng dụng phức tạp chỉ trong vài ngày là hoàn toàn khả thi. Quan trọng hơn, nền tảng này có thể tiếp tục được phát triển và hoàn thiện.


Vibe Coding là có thật

Lựa chọn Bộ Công cụ Công nghệ (Tech Stack)

Để phát triển nhanh và hiệu quả, việc lựa chọn công cụ phù hợp là tối quan trọng.

NextJS: Nền tảng Full-stack Tối ưu

NextJS là lựa chọn hiển nhiên cho bộ công cụ phát triển nhanh. Liệu tôi có thể sử dụng FastAPI cho backend và React cho frontend không? Chắc chắn rồi – nhưng chỉ nghĩ đến việc điều phối triển khai, quản lý CORS, và đồng bộ kiểu dữ liệu đã khiến tôi cảm thấy mệt mỏi. NextJS cung cấp một giải pháp full-stack tích hợp, giúp đơn giản hóa toàn bộ quy trình phát triển.

Composio: Tích hợp Công cụ SaaS Không giới hạn

Để bổ sung khả năng tích hợp gần như không giới hạn với các ứng dụng SaaS, Composio là lựa chọn không thể bỏ qua. Nền tảng này cung cấp SDK cho JavaScript, cho phép bạn dễ dàng thêm các tích hợp công cụ cho agent.

LangGraph: Framework Agent Dựa trên Đồ thị

Khi nói đến các framework dành cho agent, hệ sinh thái JavaScript còn kém phong phú hơn Python. Sự lựa chọn của tôi thu hẹp còn hai framework: LangGraphAI SDK. (Tôi có nghe về Mastra AI, nhưng không muốn dành cuối tuần để làm quen với nó).

Tôi đã chọn **LangGraph** thay vì **AI SDK** bởi vì mô hình tư duy của LangGraph hoàn toàn dựa trên các nút (nodes) và cạnh (edges) – chính xác là cách mà các trình xây dựng agent trực quan nên hoạt động. Mỗi agent chỉ là một đồ thị; mỗi luồng công việc, một đường đi qua đồ thị đó. AI SDK rất tốt, nhưng không thuận tiện cho các agent dựa trên cấu trúc đồ thị.

Phát triển Thần tốc với AI (Coding with Vibes)

Nếu bạn không quen với phương pháp phát triển nhanh dựa trên AI (vibe-code), đây là phần giải thích.

Giao diện người dùng (frontend) được xây dựng hoàn toàn bằng phương pháp này. Tôi không sử dụng các công cụ kéo thả phức tạp như Lovable hay Bolt.new vì việc mở code trong Cursor và chỉnh sửa trực tiếp dễ dàng hơn nhiều.

Thiết lập của tôi:

  • GPT-4.1Kẻ bắn tỉa: Làm chính xác những gì bạn yêu cầu, không hơn không kém. Rất tốt cho việc tinh chỉnh các thành phần nhỏ.
  • Gemini 2.5 ProKhẩu súng máy: Viết lại toàn bộ các thành phần và hiểu ngữ cảnh trên nhiều tệp tin. Hoàn hảo cho các đợt tái cấu trúc lớn.
  • Máy chủ MCP của 21st Dev (GitHub) – Sử dụng Cursor Agent để xây dựng các thành phần giao diện “ẩn”. Thay vì sao chép-dán tài liệu, tôi chỉ cần mô tả những gì mình muốn.

Canvas nơi người dùng kéo thả các nút? Được xây dựng bằng **React Flow** kết hợp với nền lưới di chuyển từ 21st Dev. Chỉ mất khoảng 30 phút; nếu làm thủ công sẽ rất mất sức.

Xây dựng các Thành phần Cốt lõi (Agent Nodes)


Các nút xây dựng Agent

Bỏ qua những lời quảng cáo hoa mỹ, một AI agent về cơ bản gồm hai phần:

  1. Một mô hình ngôn ngữ lớn (LLM) đưa ra quyết định.
  2. Các công cụ mà nó có thể sử dụng để thực hiện hành động.

Chỉ vậy thôi. Vì thế, tôi đã xây dựng đúng bốn loại nút cơ bản:

  • Nút Input – nơi dữ liệu đi vào hệ thống.
  • Nút Output – nơi kết quả được đưa ra.
  • Nút LLM – đưa ra quyết định sử dụng mô hình ngôn ngữ.
  • Nút Tool – thực hiện hành động sử dụng một công cụ cụ thể.

…và một **Nút Agent** kết hợp LLM + Tools để thuận tiện. Mọi luồng công việc phức tạp đều chỉ là sự kết hợp lại từ các thành phần nguyên thủy này.

Composio: Giải pháp Tích hợp Công cụ Không giới hạn

Viết tích hợp cho từng công cụ là một công việc tẻ nhạt. Quản lý xác thực (authentication) cho những công cụ đó còn tệ hơn nữa – đó là nơi mà các nhà phát triển thường gặp bế tắc.

Mỗi công cụ có một quy trình xác thực khác nhau. Nhân con số đó lên với hơn 100 công cụ và bạn có một cơn ác mộng bảo trì.

Composio giải quyết vấn đề này: một SDK duy nhất, hàng trăm công cụ được xây dựng sẵn, và xác thực được xử lý tự động. Giúp bạn triển khai sản phẩm trong một cuối tuần thay vì mất hàng tháng cho việc xử lý OAuth.

Thiết kế API Routes và Cơ chế Thực thi Đồ thị

Mỗi luồng công việc được biểu diễn dưới dạng một đồ thị JSON. Dưới đây là một ví dụ đơn giản:


{
  "nodes": [
    {
      "id": "input_1",
      "type": "customInput",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "User Query" }
    },
    // Các nút khác như LLM, Tool, Agent...
  ],
  "edges": [
    {
      "source": "input_1",
      "target": "agent_1" // Nối từ input đến một nút agent
    },
    // Các cạnh khác nối các nút lại với nhau
  ]
}

Tôi muốn chỉ một API route duy nhất nhận toàn bộ đồ thị này và thực thi nó.

Khi người dùng nhấn nút **Run**, quy trình sau sẽ diễn ra:

  1. Xác thực Đồ thị – Tìm nút Input, kiểm tra các cạnh kết nối hợp lệ, phát hiện chu trình lặp.
  2. Sắp xếp Tô-pô – Xác định thứ tự thực thi của các nút (LangGraph xử lý điều này rất hiệu quả).
  3. Thực thi Nút – Mỗi loại nút có logic thực thi riêng của nó.
  4. Quản lý Trạng thái – Truyền dữ liệu giữa các nút trong khi vẫn duy trì ngữ cảnh.


Luồng thực thi đồ thị

Đoạn mã minh họa logic thực thi cơ bản:


switch (node.type) {
  case 'llm': {
    // Lấy mô hình LLM dựa trên API key
    const model  = getModelFromApiKey(node.data.apiKey);
    // Gọi mô hình với đầu ra từ nút trước
    result       = await model.invoke(previousOutput);
    break;
  }

  case 'tool': {
    // Lấy công cụ từ Composio
    const tool   = await composio.getTool(node.data.action);
    // Thực thi công cụ với đầu vào
    result       = await tool.execute(previousOutput);
    break;
  }

  case 'agent': {
    // Lấy danh sách công cụ từ Composio
    const tools  = await composio.getTools(node.data.tools);
    // Tạo agent (ví dụ: ReAct agent)
    const agent  = createReActAgent(model, tools); // model lấy từ cấu hình agent node
    // Thực thi agent
    result       = await agent.invoke(previousOutput);
    break;
  }
  // Xử lý các loại nút khác như input, output
}

Thử thách và Giải pháp Quản lý Xác thực Công cụ (Authentication)


Luồng xác thực

Xác thực là một cơn ác mộng cá nhân đối với tôi khi phát triển các ứng dụng tích hợp. Composio đã giải quyết phần kỹ thuật, nhưng trải nghiệm người dùng (UX) thì sao? Phần này đã phải viết lại tới ba lần.

Phiên bản 1 (Đau đớn):

  1. Gõ tên action thủ công (phải đúng chính tả).
  2. Rời khỏi ứng dụng của tôi để xác thực trên bảng điều khiển của Composio.
  3. Quay lại và hy vọng nó đã hoạt động.

Tôi đã thêm một menu thả xuống cho các action, nhưng việc xác thực vẫn rất rườm rà. Vì vậy, tôi đã cải tiến:

  1. Lấy toàn bộ danh sách các công cụ có sẵn từ API của Composio và lưu vào cache cục bộ.
  2. Xây dựng một modal hiển thị từng bộ công cụ (toolkit), các công cụ trong đó và trạng thái kết nối.
  3. Điều chỉnh giao diện người dùng tùy theo loại xác thực của công cụ:
    • API Keys – Trường nhập mật khẩu + liên kết hướng dẫn lấy key.
    • OAuth2 (hosted) – Nút “Kết nối” mở ra cửa sổ pop-up.
    • OAuth2 (custom) – Form nhập thông tin client credentials.
    • Loại khác – Form động được xây dựng từ các trường yêu cầu.

Một khi đã xác thực, modal tương tự cho phép bạn tìm kiếm và thêm công cụ chỉ với một cú nhấp chuột.

Thiết kế các Mẫu Điều phối Agent (Agent Orchestration Patterns)


Các mẫu điều phối Agent

Hướng dẫn “Xây dựng Agent Hiệu quả” của Anthropic liệt kê một số mẫu điều phối phổ biến. Tôi đã tạo các nút cho phép khởi tạo ngay lập tức các mẫu này.

1. Chuỗi Prompt (Prompt Chaining)

  • Mẫu: Tuần tự; đầu ra của agent này là đầu vào cho agent tiếp theo.
  • Ví dụ nút: customInput → agent_1 → agent_2 → customOutput

2. Song song hóa (Parallelisation)

  • Mẫu: Các agent chạy song song và kết quả của chúng được tổng hợp lại.
  • Ví dụ nút:
    
    customInput → agent_1   (song song)
      customInput → agent_2   (song song)
      cả hai       → aggregator → customOutput
    

3. Định tuyến (Routing)

  • Mẫu: Một agent định tuyến quyết định nhánh nào sẽ được sử dụng.
  • Ví dụ nút:
    
    customInput → router_agent
      router_agent → agent_1 | agent_2 → customOutput
    

4. Đánh giá-Tối ưu (Evaluator-Optimiser)

  • Mẫu: Agent tạo ra giải pháp; agent đánh giá kiểm tra; lặp lại cho đến khi đạt yêu cầu.
  • Ví dụ nút:
    
    customInput → generator_agent → solution_output
                     ↘ evaluator_agent ↗
    

5. LLM tăng cường (Augmented LLM)

  • Mẫu: Nút agent được tăng cường bằng các lệnh gọi công cụ / dữ liệu bên ngoài.
  • Ví dụ nút:customInput → agent(với công cụ) → customOutput

Thành quả sau 48 giờ Phát triển Thần tốc: Nền tảng Agent Hoạt động

Rào cản để xây dựng các AI agent phức tạp đã sụp đổ. Bạn không cần một đội ngũ 20 người và sáu tháng làm việc; bạn chỉ cần:

  • Suy nghĩ rõ ràng về bản chất của agent (là những người đưa ra quyết định có khả năng sử dụng công cụ).
  • Các khái niệm trừu tượng đúng đắn (mọi thứ đều là đồ thị).
  • Sự khôn ngoan trong việc tái sử dụng các giải pháp hiện có thay vì xây dựng lại từ đầu.

Điều trớ trêu là tôi đã dành nhiều thời gian hoàn thiện modal xác thực hơn là xây dựng engine thực thi. Trong kỷ nguyên của phát triển nhanh chóng dựa trên AI, những vấn đề khó khăn nhất không còn là kỹ thuật thuần túy – chúng nằm ở việc thấu hiểu người dùng và có gu thẩm mỹ để xây dựng sản phẩm chất lượng.

Mã nguồn của dự án này được chia sẻ trên GitHub. Bạn có thể fork, thử nghiệm, và đóng góp để làm cho nó tốt hơn.

Cuối cùng, đây là thành quả sau 48 giờ phát triển thần tốc: một nền tảng agent hoạt động được. Mặc dù nó có thể chưa hoàn toàn sẵn sàng cho thế giới thực, nhưng nó đã đạt được khoảng 80% chức năng mong muốn chỉ trong một cuối tuần – một điều mà trước đây có thể mất hàng tháng trời.

Chỉ mục