All posts
Xây dựng AI Knowledge System
agentsystem designai

Xây dựng AI Knowledge System

Quang Tran D.3 min read
On this page8 sections

Enterprise Knowledge Agent: Khi AI Không Chỉ “Search” Mà Còn “Hiểu”

Trong nhiều doanh nghiệp, tài liệu nội bộ thường nằm rải rác ở nhiều nơi: PDF policy, Markdown document, sơ đồ Mermaid hay wiki nội bộ. Điều này khiến việc tìm kiếm thông tin trở nên khó khăn, đặc biệt khi nhân viên đặt những câu hỏi mơ hồ hoặc chứa nhiều ý định cùng lúc.

Bài toán này có thể được giải quyết bằng một hệ thống Agentic AI sử dụng LangGraph kết hợp MCP (Model Context Protocol). Thay vì chỉ truy xuất dữ liệu đơn thuần, hệ thống có khả năng:

  • Hiểu ngữ cảnh câu hỏi

  • Tách nhiều intent trong cùng một request

  • Thực hiện truy xuất song song

  • Tổng hợp kết quả thành một câu trả lời thống nhất

Kiến trúc Supervisor – Worker

Hệ thống hoạt động theo mô hình Supervisor-Worker. Supervisor đóng vai trò phân tích câu hỏi và lập kế hoạch thực thi, trong khi các Worker chuyên biệt xử lý từng domain dữ liệu khác nhau.

Ví dụ:

“Tôi cần policy nghỉ thai sản và flowchart claim bảo hiểm”

Supervisor sẽ tự động nhận diện đây là một multi-intent query gồm:

  • maternity leave policy

  • insurance claim flow

Sau đó tạo các task độc lập để xử lý song song.

Điểm nổi bật của hệ thống

1. Xử lý Multi-Intent Query

Thay vì xử lý tuần tự, các worker có thể chạy đồng thời để giảm latency và tăng hiệu suất phản hồi. Điều này đặc biệt hữu ích trong môi trường enterprise nơi request thường phức tạp và liên quan nhiều nguồn dữ liệu.

2. Giữ nguyên cấu trúc Markdown & Mermaid

Một vấn đề phổ biến của RAG truyền thống là làm mất cấu trúc code block hoặc Mermaid diagram khi chunking dữ liệu.

Hệ thống này giải quyết bằng cách:

  • PDF → semantic chunking

  • Markdown → AST-based chunking

Nhờ đó Mermaid syntax vẫn được giữ nguyên để frontend có thể render chính xác.

3. Tách biệt rõ Domain và Infrastructure

Codebase được tổ chức theo hướng Domain-Driven Design (DDD), giúp orchestration logic không phụ thuộc trực tiếp vào implementation details.

Ví dụ:

  • domain/ chứa graph state và business logic

  • infrastructure/ chứa AWS, LangChain, PostgreSQL

  • serving/ chịu trách nhiệm API và MCP exposure

Điều này giúp hệ thống dễ maintain và mở rộng hơn khi scale.

4. Cấu trúc thư mục

Codebase được tổ chức theo hướng Domain-Driven Design (DDD), giúp tách biệt rõ business logic, orchestration và infrastructure.

cmdn_knowledge_agent/
├── domain/                      # Business Logic và Graph State
│   ├── state/
│   │   ├── core_state.py        # Định nghĩa graph state
│   │   └── reducers.py          # Xử lý merge state song song
│   │
│   ├── nodes/
│   │   ├── supervisor.py        # Logic điều phối workflow
│   │   ├── pdf_researcher.py    # Xử lý dữ liệu PDF
│   │   ├── md_researcher.py     # Xử lý Markdown/Mermaid
│   │   └── synthesizer.py       # Tổng hợp phản hồi cuối
│   │
│   └── tools/
│       ├── mcp_benefits.py
│       ├── mcp_insurance.py
│       └── mcp_diagrams.py
│
├── app/                         # Layer orchestration
│   ├── interfaces/
│   │   ├── llm_provider.py
│   │   └── vector_store.py
│   │
│   └── graphs/
│       └── company_knowledge_graph.py
│
├── infrastructure/              # AWS, LangChain, PostgreSQL
│   ├── llms/
│   ├── data_ingestion/
│   ├── storage/
│   └── checkpointers/
│
├── serving/                     # API và MCP server
│   ├── api/
│   └── mcp_server/
│
├── config/                      # Dependency Injection
├── main.py
└── pyproject.toml

Cách tổ chức này giúp hệ thống:

  • dễ maintain

  • dễ scale

  • tách biệt dependency

  • thuận tiện mở rộng nhiều worker hoặc nhiều domain dữ liệu trong tương lai

Hạ tầng đề xuất

Kiến trúc cloud-native được đề xuất gồm:

  • Amazon S3 lưu trữ raw document

  • PostgreSQL + pgvector cho semantic search

  • LangGraph checkpointing để recovery state

  • CloudFront CDN cho static asset và Mermaid rendering

  • FastAPI serving phía backend

Frontend sẽ chịu trách nhiệm render Mermaid diagram nhằm tránh block execution loop của agent.

Kết luận

Điểm khác biệt lớn nhất của kiến trúc này không nằm ở việc “chat với tài liệu”, mà ở khả năng:

  • hiểu intent thực sự của người dùng,

  • orchestration nhiều worker,

  • và bảo toàn cấu trúc dữ liệu phức tạp.

Đây là hướng tiếp cận phù hợp cho các hệ thống Enterprise Knowledge Agent hiện đại, nơi AI không chỉ tìm kiếm thông tin mà còn phải hiểu cách tổ chức tri thức bên trong doanh nghiệp.