Agent không chỉ trả lời — còn học hỏi, phối hợp, và tích luỹ tri thức
Ba hệ thống phối hợp nhau — agent tự cải thiện, biết giao việc cho đúng người, và tra cứu tri thức chính xác.
"Agent phục vụ hàng trăm phiên mỗi ngày, nhưng admin phải điều chỉnh thủ công dựa trên cảm tính. Nếu agent tự biết nó yếu ở đâu và tự cải thiện thì sao?"
Thu thập metrics hiệu suất sau mỗi lần chạy — không thay đổi gì, chỉ quan sát và ghi lại. Dữ liệu được lưu vào bảng agent_evolution_metrics.
Phân tích xu hướng metrics qua pluggable rules — tạo đề xuất cụ thể, có ưu tiên, có lý do. Admin xem xét và phê duyệt trước khi áp dụng. Không có gì thay đổi mà không có người duyệt.
Ví dụ: "Tool web_search thất bại 40% → thêm retry" | "Memory retrieval thấp → tăng top_k từ 5 lên 10"
Agent tự áp dụng thay đổi đã được duyệt, nhưng trong giới hạn cứng. Hệ thống snapshot trước mỗi thay đổi và tự động rollback nếu metrics giảm quá ngưỡng.
Giới hạn số thay đổi/ngày · Whitelist loại thay đổi · Ngưỡng metrics tối thiểu · Cấm đổi core config
Nếu metrics giảm quá ngưỡng → tự động hoàn tác. Snapshot trước mỗi thay đổi đảm bảo khôi phục an toàn.
| Metric Type | Mô tả | Đơn vị | Kích hoạt đề xuất khi |
|---|---|---|---|
| retrieval_quality | Chất lượng kết quả memory retrieval — độ liên quan của L2 chunks được inject | 0.0 – 1.0 | < 0.6 trong 10 runs liên tiếp |
| tool_success_rate | Tỷ lệ tool calls thành công / tổng tool calls trong phiên | 0.0 – 1.0 | < 0.7 trong 5 runs |
| user_feedback | Điểm phản hồi người dùng — thumbs up/down, rating nếu có | -1, 0, +1 | Trung bình < 0 trong 20 phiên |
| token_efficiency | Tỷ lệ output tokens hữu ích / tổng tokens tiêu thụ | 0.0 – 1.0 | < 0.5 (quá nhiều token bị prune) |
| response_latency | Thời gian từ request đến first token và total completion | milliseconds | P95 > 8000ms trong 1 giờ |
"Một người không thể giỏi mọi thứ. Agent cũng vậy — agent dịch thuật không nên viết code, agent code không nên trả lời về marketing. Mỗi chuyên gia làm đúng việc của mình."
Mỗi lần delegate → tạo agent con hoàn toàn mới, cách ly hoàn toàn. Đơn giản nhất, không cần quản lý agent links, không có shared state.
Tác vụ đơn giản, một lần. Không cần chia sẻ context hay trạng thái giữa các lần gọi.
Uỷ quyền cho agent đã tồn tại thông qua agent_links. Tái sử dụng context và khả năng chuyên biệt đã được cấu hình sẵn.
Đã có agent chuyên biệt cho domain đó. Muốn dùng lại system prompt và config được tinh chỉnh.
Agent tự quyết: nếu có agent phù hợp trong links thì delegate, không thì spawn mới. Linh hoạt nhất cho tác vụ phức tạp.
Tác vụ phức tạp cần nhiều agent phối hợp, không biết trước cần agent nào.
source_agent_id → target_agent_id với relationship type và metadata. Mỗi link có thể có điều kiện kích hoạt.
Danh sách agent liên kết được inject tự động vào system prompt — agent A "biết" agent B tồn tại và có thể giúp gì.
Không phải suggestion — agent được yêu cầu trả lời bằng ngôn ngữ cụ thể khi delegate cross-language.
"Tài liệu nằm rải rác: filesystem, database, đầu người... Khi cần tìm, không ai biết ở đâu. Vault gom tất cả vào một nơi có cấu trúc, liên kết với nhau."
Cú pháp [[Tên Tài Liệu]] (giống Obsidian). Forward link A→B và backlink B←A được tạo tự động khi lưu tài liệu. Agent có thể follow graph để khám phá kiến thức liên quan.
Kết hợp Semantic Search (embedding + cosine similarity) với Full-Text Search (tsvector). Hai cách tìm kiếm bổ sung cho nhau — dùng khi nào tuỳ vào loại query.
Worker quét filesystem định kỳ. Dùng SHA-256 hash để phát hiện file thay đổi — chỉ xử lý file mới hoặc đã sửa, không re-index toàn bộ mỗi lần.
Chỉ user đó mới thấy. Dùng cho ghi chú nháp, draft, tài liệu đang soạn. Không bao giờ leaked sang user khác trong cùng tenant.
Cả team trong cùng tenant thấy. Dùng cho tài liệu chung, knowledge base chia sẻ, quy trình làm việc của tổ chức.
Tenant isolation cứng: Tenant A không bao giờ thấy tài liệu của Tenant B, dù cùng chạy trên cùng database server. Kiểm soát qua tenant_id trong mọi query.