Thực chiến: nền tảng Agent kiểu Dify
Tổng quan
Project thực chiến này yêu cầu bạn dựa trên 1 PRD thật, làm từ 0 một nền tảng Agent mô phỏng trải nghiệm core của Dify. Bạn sẽ build user console, admin backend và platform backend, implement các function core như quản lý Agent, hội thoại, log và knowledge base.
Đây là phần thực chiến tổng hợp Stage 2. Khác project single-page hoặc single-function trước đó, project này yêu cầu bạn build 1 sản phẩm AI có "cảm giác platform" — gồm nhiều role, nhiều module, persistent data và chuỗi call model.
Kiến thức tiền đề
Trước khi bắt đầu, bạn nên đã nắm:
- Design page frontend và dùng component library (UI design, component library hiện đại)
- Design và phát triển API backend (viết code API)
- Nền tảng database và Supabase (từ database tới Supabase)
- Git workflow và deploy (Git/GitHub, deploy web app)
Mục tiêu học
Sau project bạn sẽ:
- Đọc và hiểu 1 PRD thật, extract được task list
- Design kiến trúc page và data model cho nền tảng Agent
- Implement chuỗi đầy đủ: tạo Agent, hội thoại, ghi log
- Dùng AI hỗ trợ phát triển sản phẩm dạng platform
- Hoàn thành end-to-end debug, deliver 1 prototype platform AI
Giới thiệu project
Product bạn cần build là nền tảng Agent kiểu Dify, gồm 2 hệ con:
| Hệ con | Trách nhiệm |
|---|---|
| User console | Tạo Agent, cấu hình Prompt, mở hội thoại, xem log, quản lý knowledge base |
| Admin backend | Xem data user, tình hình dùng resource platform, thống kê call |
Backend cần hỗ trợ các năng lực core: quản lý Agent, quản lý session, lưu message, call model, ghi log call, kết nối knowledge base.
PRD Entry
PRD project trên GitHub: Xem PRD
Phần 1: Phân tích nhu cầu
1.1 Đọc PRD
Mở doc PRD, tập trung trả lời:
- Agent, session, log, knowledge base — cái nào vào MVP?
- Danh sách page và routing đã chốt chưa?
- Boundary call model và ghi log là gì?
- Multi-tenant và workflow phức tạp tạm chưa làm?
WARNING
Chưa rõ các câu trên thì đừng viết code. Hiểu nhu cầu không rõ là nguyên nhân phổ biến nhất dẫn tới rework.
1.2 Xác nhận kiến trúc hệ thống
Dựa PRD vẽ ra kiến trúc tổng thể:
flowchart TD
prd["PRD"] --> app["User console"]
prd --> admin["Admin backend"]
app --> auth["Auth"]
app --> agent["Cấu hình Agent"]
app --> chat["Hội thoại session"]
chat --> llm["Call model"]
chat --> db["Database"]
app --> kb["Kết nối knowledge base"]
admin --> logs["Log call & overview platform"]
logs --> dbPhần 2: Dựng khung project
2.1 Gen page frontend
Prompt mẫu:
Dựa PRD hiện tại, gen cho tôi khung frontend nền tảng Agent kiểu Dify.
Yêu cầu:
1. User side gồm: login, danh sách Agent, cấu hình Agent, page hội thoại, page log, page knowledge base
2. Admin side gồm: trang chủ backend, overview user, overview dùng resource
3. Đầu tiên chỉ gen structure page và mock data, chưa nối API thật
4. Style như platform AI hiện đại2.2 Verify structure page
Check từng item:
- [ ] Entry user console và admin backend có tách riêng không
- [ ] Page danh sách Agent, cấu hình, hội thoại, log, knowledge base có đầy đủ không
- [ ] Trang chủ admin, page overview user truy cập được
- [ ] Mock data hiện được trạng thái UI cơ bản
Phần 3: Iterate dev
3.1 Đẩy từng module
Trên nền khung, đẩy từng module theo thứ tự:
- Auth: đăng ký, login, phân role
- Quản lý Agent: tạo, sửa, xoá, cấu hình Prompt
- Function hội thoại: tạo session, gửi/nhận message, call model
- Ghi log: thời gian, token usage, ghi lỗi
- Kết nối knowledge base (bonus): upload doc, retrieval, inject kết quả
- Admin backend: data user, dùng resource, thống kê call
Mỗi module xong, dùng bảng dưới self-check:
| Check | Cách verify |
|---|---|
| Nhất quán page | Số page, function khớp PRD |
| Vòng lặp API | API agents, chat, logs, knowledge có đầy đủ không |
| Phân quyền | User có chỉ quản lý được agent và session của mình không |
| Nhất quán data | Data messages, logs, documents có khớp không |
| Demo được | Có demo được chuỗi "tạo agent → hội thoại → xem log" hoàn chỉnh không |
3.2 Kết nối knowledge base (bonus)
Nếu muốn thêm năng lực knowledge base, có thể cho mỗi Agent 1 "công tắc knowledge base":
- Bật: retrieve fragment kiến thức trước, rồi cùng câu hỏi user gửi tới model
- Tắt: trả lời theo mode hội thoại bình thường
V1 chưa cần RAG phức tạp, chỉ cần "thấy được kết quả retrieve, giải thích được chuỗi call" là đủ.
Phần 4: Debug & online
4.1 Test end-to-end
Ít nhất verify các scenario:
- Đăng ký → tạo Agent → cấu hình Prompt → mở hội thoại → xem log
- Admin login → xem data user → xem thống kê call
Check trước khi deploy:
- [ ] Tất cả API core đã có verify login
- [ ] Permission check ownership Agent đã pass
- [ ] Record session, record log thực sự lưu DB
- [ ] Model Key dùng env var, không hardcode
- [ ] Error message thấy được ở frontend, không chỉ ở console
4.2 Deploy
Deploy project lên môi trường internet. Tutorial tham khảo: Git và GitHub workflow, Cách deploy web app.
Sản phẩm bàn giao
Cuối project bạn cần submit:
- [ ] Link demo online truy cập được
- [ ] Link repo source code (kèm README)
- [ ] Doc PRD
- [ ] Screenshot page chính (quản lý Agent, hội thoại, log, trang chủ admin)
- [ ] Video demo 60s (cover tạo Agent → hội thoại → xem log)
README ít nhất gồm: giới thiệu project, mô tả kiến trúc, tech stack, các bước start local, danh sách env var, mô tả API.
Tiêu chuẩn chấm điểm
| Chiều | Cơ bản | Nâng cao |
|---|---|---|
| Hoàn thiện platform | 3 page agents / chat / logs dùng được | Có nav rõ và design language thống nhất |
| Vòng lặp business | Tạo được Agent và hội thoại thật | Hỗ trợ chuyển nhiều Agent và session lịch sử |
| Data & tracking | Message và log call query được | Có dashboard thống kê token / thời gian |
| Permission & security | Chỉ user login mới truy cập API core | Check ownership resource đầy đủ |
| Engineering deliver | Deploy được, demo được, README rõ | Kết nối knowledge base và giải thích được kết quả retrieve |