Chọn cơ chế tích hợp
-
MCP (Model Context Protocol)
Chuẩn mở để cung cấp tool và dữ liệu cho nhiều client khác nhau.
- Hình dung
- Cổng USB-C: làm một lần, cắm được nhiều nơi.
- Dùng khi
- Nhiều nơi cần cùng bộ tool: Claude Code, app desktop, API agent.
-
Direct API hoặc CLI
Tích hợp trực tiếp với Claude API hoặc một công cụ dòng lệnh.
- Hình dung
- Dây nối riêng, chỉ dùng cho một thiết bị.
- Dùng khi
- Chỉ có một sản phẩm, cần kiểm soát chi tiết, không ai khác dùng lại.
-
Agent-to-agent
Giao việc cho một hệ thống khác có suy luận và tool riêng.
- Hình dung
- Thuê một đội chuyên trách làm trọn một mảng.
- Dùng khi
- Trách nhiệm tách biệt, cần chạy và lỗi độc lập với nhau.
Yếu tố quyết định khi chọn
- Tính di động: cần dùng được trên nhiều client AI thì nghiêng về MCP.
- Dạng tương tác: một lần gọi không trạng thái, cần độ trễ thấp thì nghiêng về Direct API. Tương tác có trạng thái, chạy dài và cần suy luận riêng thì nghiêng về agent-to-agent.
Mã hóa đường truyền, độ dày tài liệu của nhà cung cấp hay kinh nghiệm sẵn có của đội không phải là yếu tố phân biệt chính giữa các cơ chế.
MCP: Tools và Resources
Tools thực hiện hành động hoặc truy vấn. Resources cung cấp danh mục nội dung để duyệt qua.
Capability bloat
Capability bloat là khi agent có nhiều tool hoặc quyền hơn mức cần. Hậu quả là tool selection degradation: càng nhiều tool chồng chéo, model càng dễ chọn sai.
Dấu hiệu
- Số tool nhiều hơn hẳn nhu cầu của công việc.
- Mô tả tool chồng chéo, model khó phân biệt.
- Cấp quyền ghi rộng “cho chắc”.
- Tool được nạp nhưng không bao giờ xuất hiện trong log gọi tool. Đây là dấu hiệu khó thấy nhất nhưng có giá trị chẩn đoán nhất.
Cách sửa
- Tách agent lớn thành các subagent chuyên biệt.
- Áp dụng least privilege cho từng credential của tool.
- Giới hạn tool bằng cấu hình cho từng agent và subagent.
- Với hơn 50 connector, chỉ hiện các tool liên quan đến ý định của người dùng.
Bẫy đề thi
Chỉnh prompt, tăng context window hay thêm retry đều không sửa được lỗi này. Đây là lỗi cấu trúc nên phải sửa cấu trúc.
Đã đối chiếu tài liệu chính thức
Docs coi mô tả tool chi tiết là yếu tố quan trọng nhất với hiệu quả của tool, và khuyên gộp các thao tác liên quan thành ít tool hơn. Mô tả tốt rất cần thiết, nhưng không thay thế được việc giảm số tool khi catalog đã quá lớn. Xem docs
Nạp context: dần dần hay một lần
-
Progressive discovery
Chỉ nạp tool, schema và dữ liệu khi việc đã rõ dần. Tốn ít token hơn và chọn tool đúng hơn. Phù hợp ở quy mô lớn và với việc mở, khi chưa biết trước cần tool nào.
-
Monolithic context
Nạp toàn bộ tool và dữ liệu vào mọi request. Chỉ chấp nhận được với bộ tool nhỏ và ổn định. Vượt quá mức đó, hệ thống vừa tốn hơn vừa kém chính xác hơn.
Bảo mật và phân quyền
4 tiêu chuẩn
- Least privilege: không dùng chung một service account quyền cao cho mọi người.
- Phân quyền theo người dùng: agent chỉ làm được những gì người gọi được phép làm.
- Quản lý secret: dùng biến môi trường hoặc secret manager. Viết secret vào prompt hay file config là lỗi nghiêm trọng.
- Audit trail: mỗi lần gọi tool phải biết ai kích hoạt, dùng quyền gì, tác động đến tài nguyên nào.
Các khái niệm hay gặp
Confused deputy
Agent có quyền rộng làm thay một người dùng bị giới hạn quyền, thường vì endpoint không kiểm tra danh tính của người gọi.
Token cho MCP server dùng chung
Lưu trong biến môi trường và tham chiếu từ
.mcp.json. Không ghi vàoCLAUDE.mdhay schema của tool.readOnlyHint=trueChỉ là thông tin do server tự khai. Hãy coi là chưa đáng tin và tự kiểm chứng server.
Thiết kế RAG
RAG lấy các đoạn tài liệu liên quan rồi đưa vào prompt. Chất lượng phụ thuộc vào cách cắt tài liệu (chunking) và cách tìm kiếm.
Cách chia chunk theo loại tài liệu
- Tài liệu dài có cấu trúc: chia theo mục và tiêu đề, kèm overlap.
- Bản ghi ngắn đa dạng: mỗi bản ghi là một chunk, kèm metadata.
- Code hoặc đặc tả phân cấp: chia theo cấu trúc như hàm, lớp hoặc cây mục.
Kích thước chunk
-
Chunk nhỏ: câu hoặc đoạn
- Ưu điểm
- Tìm chính xác, ít nhiễu. Hợp với tra cứu sự kiện.
- Nhược điểm
- Mất ngữ cảnh xung quanh và các điều kiện kèm theo.
-
Chunk lớn: mục hoặc trang
- Ưu điểm
- Giữ ngữ cảnh và tham chiếu chéo. Hợp với văn bản luật.
- Nhược điểm
- Điểm liên quan bị loãng, tốn token hơn.
Chunk overlap là cho các chunk liền kề có phần chung, để ý nào bị cắt ngang vẫn còn ngữ cảnh.
Đã đối chiếu tài liệu của Anthropic
Contextual Retrieval thêm một đoạn ngữ cảnh ngắn vào từng chunk trước khi tạo embedding, kết hợp BM25 cho từ khóa và mã định danh. Re-ranking giúp giảm lỗi tìm kiếm nhưng thêm độ trễ và chi phí, nên số chunk đưa vào re-rank là một đánh đổi cần cân nhắc. Xem bài viết
3 kỹ thuật tìm kiếm có thể kết hợp
- Metadata filtering: lọc theo ngày, khu vực, dòng sản phẩm trước khi tìm ngữ nghĩa.
- Hybrid search: kết hợp tìm từ khóa và tìm vector. Embedding xử lý kém các mã như SKU, mã lỗi, số serial.
- Re-ranking: khi kết quả đầu có recall cao nhưng precision thấp, sắp xếp lại để chỉ giữ các đoạn sát nhất.
Recall và precision
Recall cao: tìm được hầu hết tài liệu đúng. Precision thấp: lẫn nhiều tài liệu không liên quan. Giống thả lưới rộng, bắt được đủ cá nhưng kéo theo nhiều rác.
Bẫy đề thi
- Trả lời sai rất tự tin ngay sau khi refresh index: nghi re-index lỗi hoặc embedding không khớp, chưa cần nghi model.
- Không phải lúc nào cũng cần RAG. Anthropic cho biết kho kiến thức dưới 200.000 token, khoảng 500 trang, có thể đưa nguyên văn vào prompt, dùng caching để giảm chi phí. Cách này hợp nhất khi câu hỏi đến dày trong thời hạn cache.
Vận hành MCP server
MCP server lỗi ở lần chạy đầu, hộp thoại quyền của hệ điều hành xuất hiện, rồi các lần sau chạy được. Nguyên nhân thường là bước cấp quyền một lần. Hãy xác nhận các lần sau chạy ổn, rồi ghi vào hướng dẫn onboarding.
Bẫy đề thi
Đừng phản ứng quá mức khi chưa xác minh: thay MCP server khác, tắt hộp thoại quyền hay cài lại hệ điều hành đều không phù hợp.
Thiết kế tool output
Cắt bớt trước khi vào lịch sử
JSON thời tiết khổng lồ mà agent chỉ dùng
temperaturethì cắt còn đúng trường đó bằng code. Dữ liệu đầy đủ lưu ở audit log.Báo lỗi có cấu trúc
Trả về
isError: truekèm thông tin lỗi để agent biết cách xử lý. Không trả thông báo chung chung hay kết quả rỗng.Truyền dữ liệu bằng ID
Khi tool A tìm và tool B xử lý, hãy truyền ID duy nhất mà máy đọc được. Bản tóm tắt hay văn bản thô dễ làm sai đối tượng.
Giám sát và SLA
Tracing phải ghi đủ đường đi: các chunk đã lấy, input và output của tool, lời gọi subagent, logic của coordinator, token và độ trễ từng bước. Lỗi trong hệ thống nhiều agent thường chỉ lộ ra ở bước sau, nên thiếu trace thì rất khó tìm.
Đánh đổi độ trễ và chất lượng: re-ranking hay model mạnh hơn thường làm chậm hơn. Hãy gắn đánh đổi này với SLA của doanh nghiệp.
- Định tuyến ticket số lượng lớn trong 200 ms: dùng model nhanh như Haiku.
- Suy luận tài chính phức tạp: dùng Sonnet hoặc Opus.
Chỉ số cảnh báo sớm
Theo dõi số lần gọi và số lần thành công của từng tool. Nếu số lần gọi tăng mà đóng góp vào kết quả thành công không tăng, độ chính xác thường sắp giảm.
Nhớ nhanh
- Nhiều nơi cùng dùng thì chọn MCP. Một sản phẩm thì dùng Direct API.
- Nhiều tool chọn sai thì tách subagent, không sửa prompt.
- Thiếu ngữ cảnh thì tăng chunk. Tìm mã số thì dùng hybrid. Nhiều nhiễu thì re-rank.
- Không dùng chung service account. Secret để ở biến môi trường.
- Cắt tool output bằng code trước khi vào context.