Explore how generative AI is transforming creativity across art, music, code, and reality. This article delves into the evolution of AI-generated content, key tools, debates on ownership and ethics, and the future of human-AI collaboration in the synthetic age.
Khám phá cách kết nối trình soạn thảo code Zed siêu tốc với các mô hình AI ngôn ngữ lớn (LLMs) như Devstral, Qwen 2.5 VL qua Ollama trên máy ảo GPU đám mây. Tăng tốc code, gỡ lỗi và sáng tạo với trợ lý AI ngay trong Zed!
Ê, bạn có để ý dạo này ai cũng nói về chuyện LLM (mấy cái mô hình ngôn ngữ lớn) đang thay đổi cách chúng ta code không? Nghe thì oách đấy, nhưng sự thật có khi lại không như bạn tưởng đâu nha!Mấy công ty chuyên về AI thì cứ mạnh miệng tuyên bố tận 40% code của họ là nhờ AI "gánh". Còn mấy ông lớn công nghệ thì thích khoe AI đã "nhúng" sâu vào quy trình làm việc nội bộ xịn sò của họ rồi.Thế nhưng, khi hỏi mấy bạn ở các startup thì ý kiến lại chia năm xẻ bảy: đứa thì mê tít vì thấy nó giúp được khối việc, đứa thì lắc đầu nguầy nguậy vì thấy phiền phức hơn là hỗ trợ.Vậy nên, mấy cái câu "nổ" như "tăng năng suất gấp 10 lần" mà mấy vị CEO hay "khua môi múa mép" nghe có vẻ giống chiêu trò để gọi vốn hay marketing thì đúng hơn. Sự thật phũ phàng là, đối với các anh em developer tụi mình, mấy công cụ AI này chỉ giúp tăng năng suất trung bình... khoảng 4 tiếng mỗi tuần thôi à. Hơi hụt hẫng đúng không?<img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/ai_coding_impact.png' alt='So sánh kỳ vọng về AI và thực tế năng suất lập trình'>Cứ hình dung thế này: AI có thể là một "trợ lý" khá ngon lành ở cấp độ cá nhân – giúp bạn gõ code nhanh hơn, sửa lỗi vặt. Nhưng để nó trở thành "siêu nhân" giúp cả một tổ chức, một team lớn làm việc hiệu quả đột phá thì... vẫn còn thiếu một mảnh ghép quan trọng lắm. Giống như bạn có một tay đua F1 siêu hạng, nhưng chưa có đường đua hay đội ngũ hậu cần bài bản vậy!
Bạn có từng thất vọng khi LLM 'ngáo' code web app? Khám phá Serverokey, một engine Node.js siêu nhẹ giúp các mô hình ngôn ngữ lớn (LLM) xây dựng ứng dụng web một cách hiệu quả, hạn chế tối đa lỗi 'ảo giác' bằng cách chuyển từ code mệnh lệnh sang khai báo.
Khám phá cách tự tay xây dựng trợ lý code Copilot của riêng bạn ngay trên máy tính với VS Code và Ollama. Giải pháp AI lập trình nhanh chóng, riêng tư, không cần kết nối đám mây hay lo lắng về bảo mật dữ liệu. Lý tưởng cho các nhà phát triển muốn kiểm soát hoàn toàn công cụ AI của mình.
Bạn ơi, bạn có thấy không? Mình cũng thấy. Cả thế giới công nghệ đều đang mắt tròn mắt dẹt! Mới hôm nào chúng ta còn trầm trồ về mấy con chatbot viết thơ, thì giờ đây, ta lại ngỡ ngàng trước những hệ thống AI có thể tự động đặt vé máy bay, sửa lỗi code, hay thậm chí là xây dựng cả kế hoạch marketing mà chẳng cần ai nhúng tay.Những dự án đình đám như Auto-GPT, BabyAGI, và hàng loạt công cụ tương tự không tự dưng mà xuất hiện đâu nhé! Chúng là bước nhảy vọt logic tiếp theo trong thế giới AI: sự trỗi dậy của AI Agent.Vậy, chính xác thì AI Agent là gì? Tại sao bây giờ nó lại bùng nổ, và cái 'MCP Server' đóng vai trò 'bộ não' của nó là gì? Cùng mình bóc tách từng lớp một nhé!🤔 AI Agent là gì, thực sự?AI Agent không chỉ là một chatbot thông thường đâu. Chatbot thì chỉ là một đối tác trò chuyện thôi. Còn AI Agent, nó là một thực thể tự hành, có khả năng tự mình hành động để đạt được một mục tiêu nhất định.Cứ tưởng tượng AI Agent như một lập trình viên tập sự siêu giỏi, siêu nhanh vậy đó! Bạn không cần phải chỉ dẫn từng ly từng tí họ phải gõ cái gì. Thay vào đó, bạn chỉ cần giao một nhiệm vụ cấp cao, ví dụ như:"Ê, tìm giúp tôi 5 công cụ thay thế Stripe mã nguồn mở tốt nhất, phân tích hoạt động GitHub của chúng, rồi viết một bản tóm tắt cho tôi nhé."Một AI Agent sẽ tự động chia nhỏ nhiệm vụ này ra. Nó có bốn thành phần chính, cứ như là một cơ thể hoàn chỉnh vậy:🎯 Mục tiêu (Goal): Đây là mục tiêu lớn mà nó cần hoàn thành.🧠 Bộ não lý luận (Reasoning Engine): Đây chính là "bộ não" của agent, thường là một Mô hình Ngôn ngữ Lớn (LLM) mạnh mẽ như GPT-4 hay Claude. Nó sẽ quan sát tình hình hiện tại, suy nghĩ và quyết định bước đi hợp lý tiếp theo.🛠️ Công cụ (Tools): Đây là "đôi tay" của agent. Chúng là các hàm hoặc API mà agent có thể gọi để tương tác với thế giới bên ngoài. Ví dụ, một công cụ web_search để tìm kiếm trên mạng, một công cụ file_system để đọc/ghi tệp, hay một công cụ terminal để chạy lệnh.💾 Trí nhớ (Memory): Khả năng ghi nhớ các hành động, quan sát và phản hồi trong quá khứ. Điều này cực kỳ quan trọng để agent học hỏi và tránh bị "lặp vòng" vô ích.Agent hoạt động theo một vòng lặp liên tục: suy nghĩ, hành động, quan sát, rồi lại lặp lại – cho đến khi hoàn thành mục tiêu.🔥 Tại sao Agent lại bùng nổ mạnh mẽ bây giờ? Một "cơn bão hoàn hảo" đã hình thành!Khái niệm agent không phải là mới mẻ gì đâu, nhưng chúng ta vừa chạm tới một "điểm bùng phát" công nghệ. Bốn yếu tố then chốt đã tạo nên một "cơn bão hoàn hảo" cho sự bùng nổ của agent:1. Sức mạnh suy luận đỉnh cao của các LLM hiện đại: Đây chính là yếu tố "đinh" nhất! Các mô hình trước đây giỏi về ngôn ngữ, nhưng GPT-4 và các "đồng nghiệp" của nó lại cực kỳ xuất sắc trong việc suy luận và lập kế hoạch. Bạn có thể giao cho chúng một mục tiêu phức tạp, một bộ công cụ sẵn có, và chúng có thể tạo ra một kế hoạch từng bước rõ ràng, mạch lạc. Đây chính là "bộ não" còn thiếu bấy lâu nay! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/LLM_brainpower.png' alt='Sức mạnh suy luận của LLM hiện đại'>2. Mọi thứ đều "API hóa": Agent cần phải làm mọi thứ! Ngày nay, hầu như mọi dịch vụ đều có API. Muốn gửi email? Có API. Đặt phòng khách sạn? API. Truy vấn cơ sở dữ liệu? Cũng API nốt! Hệ sinh thái API phong phú này cung cấp "đôi tay" để agent thao túng thế giới kỹ thuật số. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/API_ecosystem.png' alt='Mọi thứ đều API hóa'>3. Sự trỗi dậy của Cơ sở dữ liệu Vector: Làm sao một agent có thể nhớ những gì nó học ở bước 2 khi đã đến bước 42? Lưu trữ văn bản thô trong cơ sở dữ liệu thì kém hiệu quả lắm. Cơ sở dữ liệu Vector (như Pinecone, Weaviate, Chroma) cho phép agent lưu trữ thông tin dựa trên ý nghĩa ngữ nghĩa của nó. Điều này giúp chúng có một "trí nhớ dài hạn" hiệu quả, để có thể nhớ lại ngữ cảnh liên quan từ các hành động trong quá khứ. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/vector_database_memory.png' alt='Cơ sở dữ liệu Vector và trí nhớ AI'>4. Các framework mã nguồn mở (LangChain & LlamaIndex): Các framework như LangChain đã làm thay rất nhiều công việc nặng nhọc. Chúng cung cấp "hệ thống ống nước" để kết nối LLM, công cụ và bộ nhớ lại với nhau. Thay vì phải tự xây dựng toàn bộ vòng lặp agent từ đầu, giờ đây các nhà phát triển có thể sử dụng các thư viện này để lắp ráp các agent mạnh mẽ chỉ trong vài dòng code, biến việc tạo agent trở nên dễ dàng hơn bao giờ hết! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/langchain_llamamaindex.png' alt='Framework mã nguồn mở LangChain và LlamaIndex'>🤖 "MCP Server": Chương trình điều khiển tổng thể!Điều này đưa chúng ta đến với "trái tim" của hệ thống. Bạn có thể nghe người ta gọi bộ điều phối của một AI agent là "MCP Server.""MCP Server" không phải là một thuật ngữ chính thức trong ngành đâu nhé. Nó là một cái tên mang tính khái niệm, và nếu bạn là fan phim khoa học viễn tưởng, đây chính là một sự "nháy mắt" trực tiếp đến Chương trình Điều khiển Tổng thể (Master Control Program) trong bộ phim TRON – một AI quyền năng quản lý toàn bộ hệ thống. Quả là một cái tên phù hợp!MCP Server chính là quá trình trung tâm chạy vòng lặp chính của agent. Nó là "nhạc trưởng" kết nối bộ não, các công cụ và bộ nhớ lại với nhau.Vậy, MCP Server làm gì ư?Quản lý Trạng thái: Nó nắm giữ trạng thái hiện tại của agent: mục tiêu cuối cùng, các tác vụ đã hoàn thành, và kết quả của các hành động trong quá khứ.Điều phối LLM: Nó lấy trạng thái hiện tại và định dạng thành một prompt (câu lệnh) cho LLM. Đây là một bước cực kỳ quan trọng. Prompt thường trông giống thế này:"Bạn là một trợ lý hữu ích. Mục tiêu của bạn là: [MỤC_TIÊU] Bạn có quyền truy cập vào các công cụ sau: [DANH_SÁCH_CÔNG_CỤ] Đây là lịch sử công việc của bạn cho đến nay: [LỊCH_SỬ_HÀNH_ĐỘNG_VÀ_QUAN_SÁT] Dựa vào đây, suy nghĩ và hành động tiếp theo của bạn là gì? Hãy phản hồi dưới dạng JSON: {"thought": "...", "action": "tool_name", "args": {...}}"Điều phối Công cụ: LLM sẽ phản hồi bằng một đối tượng JSON, ví dụ: {"thought": "Tôi cần tìm kiếm các đối thủ cạnh tranh.", "action": "web_search", "args": {"query": "Stripe alternatives"}}. MCP Server sẽ phân tích cái này và gọi hàm web_search() thực tế với các đối số được cung cấp.Quản lý Trí nhớ: Sau khi một công cụ được sử dụng, MCP Server sẽ lấy kết quả (ví dụ: danh sách kết quả tìm kiếm) và lưu nó vào bộ nhớ của agent (thường là cơ sở dữ liệu vector) để tham chiếu trong tương lai.Vòng lặp Thực thi (The Execution Loop): Server lặp lại quá trình này – gửi prompt cho LLM, điều phối một công cụ, quan sát kết quả – cho đến khi LLM phản hồi bằng một hành động "kết thúc" đặc biệt.Để bạn dễ hình dung, đây là các bước đơn giản mà MCP Server đang thực hiện:1. Chuẩn bị prompt: Tạo ra câu lệnh gửi đến "bộ não" LLM, tổng hợp mục tiêu, thông tin trong trí nhớ và các công cụ sẵn có.2. Nhận phản hồi: Hỏi LLM xem bước tiếp theo nên là gì (ví dụ: {"action": "web_search", "args": ...}).3. Thực thi hành động: Dựa vào phản hồi, kích hoạt công cụ phù hợp với các đối số tương ứng. Đây là lúc agent "hành động" thật sự!4. Lưu kết quả: Ghi lại hành động vừa rồi và kết quả quan sát được vào trí nhớ.5. Kiểm tra hoàn thành: Nếu LLM báo "xong việc" thì dừng, nếu không thì quay lại bước 1 và tiếp tục! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/MCP_Server_diagram.png' alt='Sơ đồ hoạt động của MCP Server'>Tất cả kết nối với nhau như thế nào?Vậy đấy, sự bùng nổ của AI Agent đang diễn ra là vì các LLM mạnh mẽ (bộ não) giờ đây có thể sử dụng một hệ sinh thái API khổng lồ (các công cụ) và Cơ sở dữ liệu Vector (bộ nhớ). MCP Server là tên gọi khái niệm cho bộ điều phối trung tâm chạy vòng lặp của agent, kết nối tất cả các mảnh ghép này lại với nhau để đạt được một mục tiêu.Chúng ta đang ở giai đoạn rất sơ khai của mô hình mới mẻ này. Mặc dù các agent hiện tại có thể còn "mong manh" và tốn kém khi chạy, nhưng chúng đang chỉ ra một tương lai nơi chúng ta có thể tự động hóa các quy trình làm việc kỹ thuật số cực kỳ phức tạp.Bạn nghĩ sao về điều này? Loại AI agent nào làm bạn hào hứng nhất khi xây dựng hoặc nhìn thấy trong thực tế? Hãy chia sẻ ý kiến của bạn ở phần bình luận nhé! 👇 <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/AI_Agent_Future.png' alt='Tương lai của AI Agent'>
Bạn có muốn tạo trợ lý AI riêng chạy offline trên máy tính yếu? Bài viết này sẽ hướng dẫn bạn từng bước cách xây dựng một trợ lý AI "siêu nhẹ" dùng llama.cpp và mô hình GGUF từ Hugging Face, không cần GPU hay Docker, hoàn hảo cho máy tính cấu hình thấp.
Khám phá Serverokey, một engine Node.js siêu nhẹ giúp bạn chế ngự sự 'hallucination' của các mô hình ngôn ngữ lớn (LLM) như GPT, Llama khi xây dựng ứng dụng web. Serverokey tập trung vào mô hình khai báo, giảm thiểu lỗi và tăng tính ổn định cho quá trình phát triển.
Khám phá sự thật đằng sau trí tuệ nhân tạo: liệu AI chỉ thông minh vì con người quá dễ đoán? Từ bài học Dilbert đến cách LivinGrimoire định hình tương lai AI đích thực, thoát khỏi vòng lặp dự đoán.
Này bạn ơi, bạn có bao giờ nghĩ đến việc dạy một đội robot thông minh chơi một trò chơi đồng đội không? Kiểu như chúng cần phải nhớ luật chơi, nhớ vai trò của mình ấy. Nghe phức tạp mà thực ra AutoGen làm được y chang vậy đó, và bí quyết nằm ở hai thứ "thần thánh" mang tên Trạng thái (State) và Trí nhớ (Memory)! Hãy cùng tôi tưởng tượng chúng ta đang chơi với mấy em robot biết nói chuyện nhé! Tưởng tượng bạn có một đám robot cứ luyên thuyên suốt ngày (trong AutoGen, người ta gọi chúng là các "agent" hay "tác tử"). Mỗi con robot lại có một "công việc" riêng, như là con thì chuyên trả lời câu hỏi, con thì lo giải đố, con khác lại chuyên sáng tạo ra những câu chuyện hay ho. Nhưng làm sao mà mấy con robot này lại nhớ được "diễn biến" của trò chơi nhỉ? À, đó chính là lúc Trạng thái và Trí nhớ "ra tay"! "Trí Nhớ" (Memory) là gì? Trí nhớ (Memory) giống hệt như cuốn sổ tay của robot vậy đó! Mỗi khi bạn nói gì đó với robot, nó sẽ ghi lại. Và mỗi khi nó trả lời bạn, nó cũng tự ghi vào sổ luôn! Thế nên, lần tới khi bạn hỏi lại, nó chỉ việc giở cuốn sổ ra là nhớ ngay hai đứa mình đang nói chuyện gì. 💡 Tóm lại: Trí nhớ giúp mấy con robot của chúng ta không bị "não cá vàng"! "Trạng Thái" (State) là gì? Còn Trạng thái (State) thì sao? Nó giống như "tâm trạng" hay "nhiệm vụ hiện tại" của con robot vậy. Nó đang giải toán à? Hay đang viết truyện? Hay đang ngồi chờ bạn hỏi? Trạng thái sẽ mách cho robot biết: Nó nên làm gì tiếp theo? Mục tiêu của nó là gì? Và những gì nó đã hoàn thành rồi. 💡 Chốt lại: Trạng thái giúp robot tập trung cao độ và không bao giờ bị "lạc lối"! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5oel63600nzwbdtqhmlu.webp' alt='Trí nhớ và Trạng thái trong AutoGen'> Mấy Con Robot Hợp Tác Với Nhau Kiểu Gì? Tưởng tượng bạn có: Robot A: Siêu giỏi giải thích mọi thứ. Robot B: Vua viết code. Robot C: Chuyên gia đặt câu hỏi (À, cái này là bạn đó!). Cả ba robot này cứ ríu rít nói chuyện với nhau, và tuyệt vời hơn là chúng dùng chung MỘT cuốn sổ tay (trí nhớ). Con nào cũng biết mình vừa nói gì, và quan trọng là biết luôn cả hai con kia vừa "lải nhải" gì. Nhờ vậy mà chúng nó có thể hợp tác với nhau như một đội bóng chuyên nghiệp vậy! Vậy AutoGen Đang Làm Gì Trong Toàn Bộ Câu Chuyện Này? AutoGen giống như "quản trò" vĩ đại đứng sau hậu trường vậy: Nó giao việc cho từng robot (đặt trạng thái). Nó phát cho chúng một cuốn sổ tay chung (trí nhớ). Và nó giúp chúng nói chuyện, tư duy, cùng nhau giải quyết mọi vấn đề một cách "trơn tru". Tại Sao Chúng Ta Phải "Care" Đến Mấy Vụ Này? Nếu không có trí nhớ và trạng thái thì sao? Mấy con robot này sẽ quên tuốt tuồn tuột – y hệt như mấy bé cá vàng vậy! Chúng sẽ cứ lặp đi lặp lại những thứ đã nói rồi, và đương nhiên là không thể làm việc nhóm hiệu quả được. Nhưng với trí nhớ và trạng thái, mọi thứ sẽ khác hẳn: Robot nhớ rõ bạn đã nói gì trước đây. Chúng luôn giữ được sự tập trung cao độ. Chúng hoàn thành công việc thông minh hơn và nhanh hơn rất nhiều! Tôi hy vọng qua bài viết này, bạn đã thấy những khái niệm phức tạp như Trạng thái và Trí nhớ trong AI không còn "khó nhằn" nữa. Nếu bạn cũng thích cách giải thích dễ hiểu như vậy về AI, đừng quên theo dõi để cùng tôi khám phá thêm nhiều điều thú vị nhé!
Chào mọi người! Hôm nay chúng ta sẽ khám phá một thứ cực kỳ "chất" – đó là cách tạo ra một AI Agent thông minh dùng .NET, có khả năng tự viết và chạy code C# để giải quyết cả tá công việc phức tạp. Bạn đã sẵn sàng "lặn" sâu vào thế giới này chưa? <a href="#introduction"> </a> ### Mở Màn: Thế Giới AI Đang 'Lên Đồng'! Thế giới AI tạo sinh đang tiến như vũ bão, phải không bạn? Thời cái LoL (LLM) chỉ biết 'trả bài' theo dữ liệu đã học xưa rồi Diễm ơi! Giờ đây, chúng đã trở thành những phù thủy công nghệ đích thực, biết dùng đủ thứ 'công cụ' xịn sò để làm được nhiều hơn thế nữa. Này nhé, những sáng kiến như <a href="https://modelcontextprotocol.io/introduction" target="_blank" rel="noopener noreferrer">Model Context Protocol (MCP)</a> đang mở ra một kỷ nguyên mới, và các <a href="https://mcpservers.org/" target="_blank" rel="noopener noreferrer">'server MCP'</a> thì mọc lên như nấm sau mưa. Điều này cho phép AI không chỉ nói suông mà còn hành động nữa đó! Bạn đã nghe đến khái niệm <a href="https://en.wikipedia.org/wiki/Vibe_coding" target="_blank" rel="noopener noreferrer">"vibe coding"</a> chưa? Theo ChatGPT, nó có nghĩa là: <blockquote>Vibe coding with AI is like whispering your app dreams to a super-fast coder who never sleeps—you describe what you want (“make the button red,” “add cat purring”), and the AI writes it. You review, tweak, rinse, repeat… no need to grok every line. It’s part brainstorming session, part code genie — fast, fun, and sometimes buggy magic! 😜</blockquote> Đúng là ma thuật, nhưng đôi khi cũng 'buggy' lắm nha! Mà này, Microsoft cũng vừa 'nhá hàng' .NET 10 với một loạt tính năng mới toanh. Trong đó, có một điểm sáng chói là khả năng chạy file script đơn lẻ với lệnh `dotnet run app.cs`. Tuyệt vời đúng không? Cuối cùng thì <a href="https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-app/" target="_blank" rel="noopener noreferrer">'single file scripts' cũng đã đến với chúng ta rồi</a>! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/gK2Jz9F.png' alt='Công thức tạo AI Agent: LLM + Tooling + .NET 10'> Ba 'nguyên liệu vàng' này – LLM đỉnh cao, khả năng gọi công cụ (tool calling) và sức mạnh của .NET 10 – sẽ giúp chúng ta 'hô biến' ra một AI Agent 'vibe coding' của riêng mình. Nó sẽ không chỉ trả lời câu hỏi mà còn tự động hoàn thành các tác vụ phức tạp nữa! Sẵn sàng 'lặn' sâu vào thế giới này chưa? Chúng ta sẽ dùng các thư viện <a href="https://learn.microsoft.com/en-us/dotnet/ai/microsoft-extensions-ai" target="_blank" rel="noopener noreferrer">Microsoft.Extensions.AI</a> để làm 'phép' nhé! <a href="#setting-up-the-stage"> </a> ### Chuẩn Bị 'Sân Khấu': Kết Nối AI và 'Công Cụ' Code Để 'phù phép', đầu tiên chúng ta cần 'triệu hồi' vài gói thư viện quan trọng và thiết lập một 'khách hàng' chat. Mình dùng một mô hình AI được host trên <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/what-is-azure-ai-foundry" target="_blank" rel="noopener noreferrer">Azure AI Foundry</a>, nhưng bạn có thể dùng bất kỳ mô hình nào hỗ trợ 'tool calling' là được: ```csharp #:package Azure.AI.OpenAI #:package Microsoft.Extensions.AI #:package [email protected] #:package [email protected] using Azure.AI.OpenAI; using Microsoft.Extensions.AI; using Microsoft.Extensions.Logging; using System.ClientModel; using System.Diagnostics; var runId = Guid.NewGuid(); var azureOpenAIEndpoint = "https://<your-endpoint>.cognitiveservices.azure.com/"; var azureOpenAIModelId = "gpt-4.1"; using var loggerFactory = LoggerFactory.Create(builder => builder.SetMinimumLevel(LogLevel.Information).AddConsole()); var client = new ChatClientBuilder( new AzureOpenAIClient(new Uri(azureOpenAIEndpoint), new ApiKeyCredential("<your-api-key>")) .GetChatClient(azureOpenAIModelId).AsIChatClient()) .UseLogging(loggerFactory) .UseFunctionInvocation(loggerFactory) .Build(); ``` Đoạn code trên nhìn có vẻ hơi 'hack não' nhỉ? Đừng lo, nó chỉ đang 'xây' cho chúng ta một 'người bạn' chat AI thông minh thôi. Cái `ChatClientBuilder` này sẽ giúp 'kết nối' AI với thế giới bên ngoài, cho phép nó 'giao tiếp' và 'hiểu' được các công cụ mà chúng ta sẽ cung cấp. Mấy dòng `runId` và `loggerFactory` thì đơn giản là để 'ghi nhật ký' và theo dõi quá trình AI làm việc thôi, tiện cho việc 'debug' sau này. Bây giờ, chúng ta đã có 'bộ não' AI, nhưng nó vẫn chưa biết 'hành động' đâu nhé! LLM tuy biết viết code nhưng cần phải có khả năng 'chạy' code đó nữa. Vậy thì, hãy cùng tạo một 'công cụ' đặc biệt để nó có thể 'thực thi' code C# của mình! Dưới đây là cách chúng ta định nghĩa công cụ 'chạy code': ```csharp var chatOptions = new ChatOptions { Tools = [ AIFunctionFactory.Create((string code) => { var logger = loggerFactory.CreateLogger("CodeExecution"); var codeFileName = @$"c:\temp\{DateTime.Now.ToString("HHmmssfff")}-{runId}.cs"; File.WriteAllText(codeFileName, code); var process = new Process { StartInfo = new ProcessStartInfo { FileName = "dotnet", Arguments = $"run {codeFileName}", RedirectStandardOutput = true } }; process.Start(); process.WaitForExit(TimeSpan.FromMinutes(1)); var output = process.StandardOutput.ReadToEnd(); logger.LogInformation("Code execution output: {Output}", output); return output; }, description: "Execute the provided code.") ] }; ``` Dòng code này chính là 'trái tim' của công cụ 'thực thi code' của chúng ta. Nó nhận vào một đoạn `code` (string), sau đó 'biến' nó thành một file `.cs` tạm thời, và dùng lệnh `dotnet run` để 'hô biến' code đó thành hiện thực. Kết quả từ việc chạy code (bao gồm cả lỗi nếu có) sẽ được ghi lại và 'báo cáo' lại cho AI biết để nó 'học' hỏi và tự sửa lỗi nếu cần. À, bạn thấy `ChatOptions` và `UseFunctionInvocation` chứ? Đó chính là cách chúng ta 'kết nối' công cụ này với AI. Chúng ta 'treo' cái công cụ 'chạy code' vào `ChatOptions`, và khi AI nhận được một nhiệm vụ, nó sẽ tự động 'nghĩ' xem có cần dùng đến công cụ này để hoàn thành nhiệm vụ không. Nếu có, nó sẽ tự động 'kích hoạt' nó! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/YwNq9U1.png' alt='Quy trình tương tác: User Prompt -> LLM -> Tool Execution -> Feedback'> Giờ thì cần một 'chiếc kim chỉ nam' – chính là `system prompt` – để 'dạy' AI cách viết code sao cho đúng chuẩn, đặc biệt là cách 'gọi' các gói NuGet và cấu trúc code sao cho phù hợp với .NET 10. Bởi vì sao ư? Vì các 'bộ não' AI thường được huấn luyện trên code C# cũ kỹ, nên chúng hay có thói quen viết cái `Program class` với `Main method` rườm rà lắm! Phải 'ép' nó 'quên đi lối cũ' đó bạn! ```csharp var history = new List<ChatMessage> { new(ChatRole.System, """ Write code to answer the question. If you need to use a NuGet package, specify the package name in the code like this: #:package PackageName. Some examples: #:package [email protected] #:package SemanticKernel #:package Newtonsoft.Json A code block should start with the required NuGet packages, if any, followed by one or more using statements, followed by the code. You can directly write code statements without a program class with a main method. ### Example 1 #:package [email protected] #:package SomePackage using System; Console.WriteLine("123".Humanize()); ### Example 2 #:package Microsoft.Extensions.Logging.Console using System.IO; var text = await File.ReadAllTextAsync("c:\\temp\\file.txt"); Console.WriteLine(text); ### Write and execute code to answer the question. Do not ask the user for any input, just complete all the steps below by writing and executing the code without asking for clarification or consent. """), new(ChatRole.User, """ 1. Fetch the csv file from the url 'https://raw.githubusercontent.com/fgeorges/star-wars-dataset/refs/heads/master/csv/films/films.csv' 2. Analyze the content and determine the delimiter used in the csv file. Keep in mind that text columns may contain commas as well, e.g. "A New Hope, Episode IV". 3. Determine which columns are present in the csv file and what data the columns contain. 4. Order the movies by release date, Newest first. 5. Write a .docx word document at 'c:\\temp\\star_wars_movie.docx' with one line per page with the following information: - release date - title - description """ ) }; ``` Và đây là 'nhiệm vụ bất khả thi' mà chúng ta giao cho AI: đọc file CSV từ URL, xác định dấu phân cách, phân tích cột, sắp xếp phim theo ngày phát hành, rồi ghi tất cả vào một file Word! Nghe có vẻ 'khoai' đúng không? Nhưng AI của chúng ta sẽ 'cân' hết! Bước cuối cùng là 'đẩy' những 'chỉ dẫn' này vào mô hình và chờ đợi 'buổi code' đầy cảm hứng của AI hoàn thành: ```csharp var result = await client.GetResponseAsync(history, chatOptions); Console.WriteLine($"LLM response: {result}"); ``` <a href="#reviewing-the-performance"> </a> ### 'Khám Nghiệm' Hiệu Suất: AI Tự Học Từ Lỗi Lầm Bạn có thể xem toàn bộ 'phù phép' này trong file gist tại <a href="https://gist.github.com/Expecho/0f0e30a7097676ea777bec47b764e994" target="_blank" rel="noopener noreferrer">đây</a>. Sau khi 'cầm' được nó, bạn chỉ cần chạy `dotnet run vibecoding_agent.cs` là xong! Nếu 'AI nhà mình' đang trong 'vibe' tốt, bạn sẽ thấy chỉ một file duy nhất 'xuất hiện' trong `C:\Temp`. Nhưng thường thì, 'ẻm' cần vài lần 'thử sai' mới ra được code chuẩn chỉnh. Hay ở chỗ, AI sẽ 'đọc' output từ lệnh `dotnet run`, tự nhận diện lỗi (lỗi biên dịch hay lỗi lúc chạy), rồi tự động 'sửa sai' và thử lại. Giống như một lập trình viên thực thụ vậy đó! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/O6Ld04p.png' alt='Mô hình AI tự sửa lỗi và tối ưu code'> Và đây là 'thành quả' sau khi AI của mình 'vật lộn' một hồi (đây là phản hồi trực tiếp từ LLM): <blockquote> Analysis and Results: Delimiter: The delimiter used in the CSV is a comma (,). Columns present: title episode_id opening_crawl director producer release_date created edited url desc Data in Columns: title: The movie title (e.g. "A New Hope"). episode_id: The Star Wars episode number. opening_crawl: The long Star Wars intro text that appears at the start of the film. director: Film director name(s). producer: Producer name(s). release_date: Release date of the movie (e.g. "1977-05-25"). created, edited: Timestamps (likely for internal dataset management). url: URL reference for the film. desc: Another description, but appears redundant with opening_crawl. Word Document Output: The movies are ordered by release date, newest first, and written one per page. Each page includes release date, title, and description (using opening_crawl). File written: c:/temp/star_wars_movie.docx Summary of document: The document contains 7 movies, each on its own page, with release date, title, and description. Let me know if you want to see the content or need a different format! </blockquote> AI không chỉ cho ra kết quả phân tích CSV chi tiết mà còn 'tự động' tạo ra file Word với đúng định dạng yêu cầu nữa chứ! Quá đỉnh luôn! Bạn có thể tải toàn bộ 'tài liệu' này, bao gồm cả file Word cuối cùng và các 'phiên bản' code thử nghiệm của AI tại <a href="https://1drv.ms/f/c/e7c07309b5330772/EgzBSP2FZohMnJHhbGx97RYBrHt-EHheT2g2_Oc-f4BdiQ?e=3urUIh" target="_blank" rel="noopener noreferrer">đây</a>. <a href="#final-thoughts"> </a> ### Suy Ngẫm Cuối Cùng: Tiềm Năng và Cảnh Báo Mình đã thử với vài 'bộ não' AI khác nhau và kết quả thì... 'hên xui' lắm. Có em thì 'bỏ cuộc' giữa chừng, hỏi mình có muốn tiếp tục không. Có em thì viết code nhưng lại 'nhờ' mình chạy hộ, dù đã được 'trang bị' công cụ 'chạy code' rồi! Đúng là 'thuần hóa' AI cũng cần 'kiên nhẫn' và 'nghệ thuật prompt' đó bạn! **MỘT CẢNH BÁO CỰC KỲ QUAN TRỌNG:** Một điều bạn phải nhớ kỹ khi làm việc với các AI Agent có khả năng thực thi code: code do AI tạo ra (hoặc bất kỳ code nào chưa kiểm chứng) **CHỈ NÊN CHẠY TRONG MÔI TRƯỜNG CÔ LẬP, ĐƯỢC BẢO VỆ (SANDBOXED)**. Vì sao ư? Vì chúng ta không thể đảm bảo 100% rằng không có code độc hại hay các phụ thuộc 'lởm khởm' nào bị chèn vào đâu nhé! An toàn là trên hết! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/eB3R4zZ.png' alt='Môi trường sandbox an toàn cho việc thực thi code AI'> Vậy thì, những AI Agent kiểu này sẽ có 'đất diễn' ở đâu nhỉ? Thành thật mà nói, mình cũng chưa hình dung rõ lắm đâu. Mình được truyền cảm hứng từ <a href="https://microsoft.github.io/autogen-for-net/" target="_blank" rel="noopener noreferrer">AutoGen for .Net</a>, một dự án cho phép <a href="https://microsoft.github.io/autogen-for-net/articles/Run-dotnet-code.html" target="_blank" rel="noopener noreferrer">chạy các đoạn code</a>. Mình nghĩ .NET 10 đã 'hạ thấp rào cản' để chúng ta có thể tạo ra những AI Agent có khả năng 'code' đỉnh cao hơn nhiều. Bạn nghĩ sao? Đây có phải là một tính năng 'đáng đồng tiền bát gạo' không? Mình rất tò mò muốn nghe ý kiến của bạn đó, đừng ngại để lại bình luận bên dưới nhé!
Tìm hiểu về Red Teaming trong phát triển hệ thống AI: Tại sao nó quan trọng và các công cụ hàng đầu như Promptfoo, DeepTeam, PyRIT, Garak giúp bạn đảm bảo an toàn cho AI của mình như thế nào.
Tìm hiểu cách các mô hình ngôn ngữ lớn (LLM) thực sự ảnh hưởng đến việc viết code, từ kỳ vọng của các công ty lớn đến thực tế năng suất hàng ngày của lập trình viên. Có đúng là LLM đang thay đổi cách chúng ta lập trình, nhưng liệu có phải theo cách bạn tưởng không?
Bạn đang tìm kiếm nhà cung cấp LLM API tốt nhất năm 2025? Chúng tôi đã tổng hợp và đánh giá 11 nhà cung cấp hàng đầu, từ OpenAI đến các đối thủ mã nguồn mở, phân tích chi tiết về khả năng, giá cả và trường hợp sử dụng. Hoàn hảo cho các nhà phát triển đang xây dựng ứng dụng GenAI hoặc đánh giá nhà cung cấp cho sản phẩm thực tế.
Khám phá cách một nghiên cứu mới giải quyết vấn đề LLM 'quên' bối cảnh trong các cuộc trò chuyện dài bằng cách mô phỏng cơ chế trí nhớ chọn lọc và tóm tắt động như con người. Tối ưu hóa hiệu suất và khắc phục giới hạn độ dài hội thoại truyền thống.
Này bạn, có bao giờ bạn tự hỏi mấy anh bạn trợ lý AI như Siri, Google Assistant hay ChatGPT của chúng ta làm cách nào mà trả lời tin nhắn, sắp xếp lịch trình hay hỗ trợ khách hàng nhanh thoăn thoắt không? Bí mật nằm ở một "người hùng thầm lặng" đang nổi đình nổi đám: đó chính là các Mô Hình Ngôn Ngữ Nhỏ (SLM)! Nghe có vẻ phức tạp nhưng hiểu đơn giản thì chúng chính là phiên bản "mini" siêu tốc, siêu hiệu quả và siêu tiết kiệm của các mô hình AI khổng lồ đó! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/AI_assistant_intro.png' alt='Trợ lý AI đang giúp đỡ người dùng'> Vậy rốt cuộc SLM là cái gì mà nghe "ghê gớm" vậy? Tưởng tượng thế này: nếu các mô hình AI lớn là những chiếc siêu máy tính khủng lồ, cần cả một thư viện kiến thức để học, thì SLM lại giống như một chiếc laptop gaming mạnh mẽ, chỉ cần những cuốn sách chọn lọc nhưng vẫn đủ "cân" mọi tác vụ cần thiết! Chúng được tinh giản tối đa, chỉ cần một lượng dữ liệu nhỏ hơn để "huấn luyện" và sử dụng ít "tham số" (kiểu như các nút điều chỉnh bên trong bộ não AI) hơn. Tuy nhỏ nhưng có võ nha! SLM có thể thực hiện hàng loạt nhiệm vụ một cách cực kỳ hiệu quả, đúng chuẩn "nhỏ mà có lợi" cho các trợ lý AI cần phản hồi nhanh, đáng tin cậy và không "ngốn" tài nguyên. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/SLM_concept_mini_brain.png' alt='So sánh mô hình AI lớn và nhỏ'> Sao SLM lại hot đến vậy trong giới công nghệ ư? Có vài lý do cực kỳ thuyết phục đây: Phản hồi siêu tốc: Nhờ thiết kế "nhẹ ký", SLM xử lý yêu cầu và đưa ra câu trả lời gần như ngay lập tức. Nhanh hơn cả người yêu cũ trả lời tin nhắn của bạn đó! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/fast_response_phone.png' alt='Điện thoại hiển thị phản hồi nhanh'> Giá cả phải chăng: Không như mấy anh "khổng lồ" cần cả dàn máy chủ đắt đỏ, SLM có thể chạy ngon lành trên smartphone, tablet hay thậm chí là phần cứng cơ bản. Tiết kiệm chi phí cho cả người dùng lẫn công ty! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/cost_effective_slm.png' alt='Biểu tượng tiết kiệm tiền và thiết bị nhỏ gọn'> Bảo mật đỉnh cao: Rất nhiều SLM chạy trực tiếp trên thiết bị của bạn, giảm thiểu việc gửi dữ liệu ra máy chủ bên ngoài. Yên tâm hơn về quyền riêng tư và bảo mật thông tin cá nhân nhé! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/privacy_lock_slm.png' alt='Biểu tượng khóa bảo mật trên thiết bị'> Tùy biến dễ dàng: Các doanh nghiệp có thể "tinh chỉnh" (fine-tune) các mô hình nhỏ này cho các tác vụ đặc thù của ngành hoặc nhu cầu khách hàng một cách nhanh chóng, ít tốn kém tài nguyên và thời gian hơn. Đúng kiểu "đo ni đóng giày" luôn! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/customizable_gears.png' alt='Các bánh răng khớp vào nhau biểu thị sự tùy chỉnh'> Bạn có tò mò SLM đang "phô diễn" sức mạnh ở đâu không? Cùng điểm qua vài ứng dụng siêu thú vị ngoài đời thực nhé: Smartphone & Trợ lý giọng nói: Mấy "ông trùm" như Siri và Google Assistant đang dùng SLM để phản hồi nhanh hơn, ngay trên thiết bị của bạn, lại còn tiết kiệm pin nữa chứ! Chatbot hỗ trợ khách hàng: SLM là bộ não của các chatbot giúp trả lời câu hỏi thường gặp (FAQ), thu thập thông tin khách hàng và chuyển các vấn đề phức tạp hơn cho nhân viên thật. Tiết kiệm thời gian cho cả hai bên! Hỗ trợ y tế: Các công cụ AI nhỏ gọn đang giúp nhân viên y tế nhập liệu, kiểm tra triệu chứng ban đầu hay thậm chí là chẩn đoán sơ bộ – tất cả đều chạy ngon lành trên các thiết bị di động nhỏ gọn. Tự động hóa nhà cửa: Từ việc tắt đèn đến đặt lịch nhắc nhở hàng ngày, các trợ lý nhà thông minh dùng SLM mang đến trải nghiệm tương tác liền mạch với hệ thống nhà thông minh của bạn. Cứ như có người quản gia trong nhà vậy! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/slm_applications_collage.png' alt='Minh họa các ứng dụng của SLM: điện thoại, chatbot, y tế, nhà thông minh'> Vậy tại sao các doanh nghiệp và nhà phát triển lại "mê mẩn" SLM đến thế? Đơn giản thôi, vì chúng mang lại những lợi thế cực kỳ rõ ràng: Tiết kiệm năng lượng: Dùng ít điện hơn, lý tưởng cho các ứng dụng chạy bằng pin hoặc những ai quan tâm đến môi trường xanh sạch đẹp! Linh hoạt và nhanh nhẹn: Các nhà phát triển có thể cập nhật hoặc chỉnh sửa mô hình nhỏ này cực nhanh, giúp đẩy nhanh chu kỳ đổi mới và cải thiện sản phẩm. Cứ như nâng cấp phần mềm vậy, vèo cái là xong! Giải pháp AI có khả năng mở rộng: Các công ty có thể triển khai tính năng AI mà không cần đội ngũ khổng lồ hay cơ sở hạ tầng đắt đỏ. Dễ dàng "phân thân" và nhân rộng AI khắp mọi nơi! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/slm_business_advantages.png' alt='Biểu đồ lợi ích kinh doanh của SLM'> Tất nhiên, dù "vi diệu" đến mấy thì SLM cũng có vài điểm cần lưu ý nha bạn. Không ai hoàn hảo mà! Giới hạn về độ phức tạp: Những nhiệm vụ "khó nhằn" như viết luận văn nghiên cứu chuyên sâu hay xây dựng ứng dụng quy mô lớn, đôi khi vẫn cần đến các mô hình lớn hơn. "Trọng trách" này cần "anh cả" gánh vác! Khả năng hiểu sai ngữ cảnh: Với ít "tham số" hơn, SLM đôi khi có thể bỏ lỡ những ngữ cảnh tinh tế hoặc đưa ra các diễn giải kém chính xác hơn. Cần phải "khéo léo" hơn nữa! Chất lượng dữ liệu huấn luyện cực kỳ quan trọng: Dữ liệu "dởm" sẽ cho ra kết quả "dởm". Vì vậy, việc lựa chọn và "tinh lọc" dữ liệu huấn luyện là cực kỳ cần thiết. Nhưng đừng lo lắng quá nhé! Những tiến bộ trong thiết kế mô hình và kỹ thuật "tinh chỉnh" đang dần khắc phục những thách thức này! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/slm_limitations_challenges.png' alt='Biểu tượng câu hỏi, dấu X và dấu chấm than cho các hạn chế của SLM'> Vậy tương lai của SLM sẽ ra sao? Tôi cá là chúng sẽ ngày càng thông minh hơn nữa! Các kỹ sư đang nỗ lực nâng cao khả năng hiểu ngữ cảnh, độ chính xác và tính linh hoạt của chúng. Điều này sẽ giúp các trợ lý AI trở nên hữu ích hơn trong mọi môi trường – từ lớp học, bệnh viện cho đến nông trại hay nhà máy. Tưởng tượng xem, chúng ta có thể thấy SLM giúp trẻ em học lập trình, hỗ trợ người lớn tuổi quản lý công việc hàng ngày, hay thậm chí giúp nông dân theo dõi mùa màng – tất cả đều hoạt động mà không cần kết nối internet liên tục hay các thiết bị công nghệ đắt đỏ. Thật là một tương lai đáng mong đợi phải không nào? <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/slm_future_vision.png' alt='Tầm nhìn tương lai của SLM giúp đỡ con người trong nhiều lĩnh vực'> Tóm lại, Mô Hình Ngôn Ngữ Nhỏ không chỉ là một xu hướng công nghệ nhất thời – chúng chính là nền tảng cho thế hệ công cụ AI tiếp theo: dễ tiếp cận, thông minh và đáng tin cậy. SLM đang đưa công nghệ thông minh đến gần hơn với mọi người, ở mọi nơi, xóa bỏ mọi rào cản. Tại Destinova AI Labs, chúng tôi luôn cam kết xây dựng AI phục vụ cuộc sống thực. Chúng tôi tin rằng công nghệ tốt nhất phải đơn giản, nhanh chóng và thực sự hữu ích – và SLM đang giúp chúng tôi dẫn đầu trong cuộc cách mạng này! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/destinova_logo_slm.png' alt='Logo Destinova AI Labs với biểu tượng AI'>
Chào bạn, có phải bạn đang "đau đầu" với việc xây dựng một ứng dụng dùng "trí tuệ siêu việt" của các mô hình ngôn ngữ lớn (LLM) không? Đừng lo lắng! Việc nắm rõ các "kiểu kiến trúc não bộ" mà AI có thể có sẽ là chìa khóa giúp bạn thiết kế ra những hệ thống hiệu quả đấy. Rất dễ bị cuốn vào mớ bòng bong chi tiết hay những tin tức "hot hòn họt" về AI mà quên mất bức tranh tổng thể. Phần nào nên để LLM "tự do bay nhảy"? Phần nào cần được cố định để đảm bảo tính ổn định và đáng tin cậy? Hôm nay, chúng ta sẽ cùng nhau "mổ xẻ" những mô hình kiến trúc nhận thức phổ biến nhất và cách áp dụng chúng. Vì mỗi ứng dụng có thể "muôn hình vạn trạng" về quy mô, độ phức tạp và yêu cầu, nên chúng ta sẽ tập trung vào việc xây dựng hệ thống RAG (Retrieval Augmented Generation) đơn giản làm ví dụ để minh họa các khái niệm nhé. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozoqx9634ovgqt1k0eck.jpg' alt='llm meme'> Các Khối Xây Dựng Của AI: Khám Phá Các Mô Hình Kiến Trúc Nhận Thức. Vậy "kiến trúc nhận thức" là gì mà nghe có vẻ "hàn lâm" vậy nhỉ? À, đây là một thuật ngữ được mượn từ bài viết cực kỳ "thâm thúy" của anh Harrison Chase (Langchain). Anh ấy đã phân loại các kiến trúc AI dựa trên mức độ tự chủ của chúng đó! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k4tyo5sj504kzt8rsa23.png' alt='Mức độ tự chủ của các mẫu kiến trúc nhận thức'> Hình 1: Các Mô Hình Kiến Trúc Nhận Thức theo Harrison Chase (Nguồn: LangChain). Giờ thì chúng ta cùng lướt qua nhanh từng cấp độ nhé! **1. Cấp độ: Mã Cứng (Code)**. Ở cấp độ này, mọi "đường đi nước bước", mọi lệnh gọi đều được chúng ta "viết tay" cứng ngắc. Đây chính là những đoạn code cổ điển, không hề có "bóng dáng" của LLM nào cả. Đơn giản, dễ kiểm soát, nhưng cũng không linh hoạt lắm đâu nha! **2. Cấp độ: Gọi LLM (LLM Call)**. Đây là cấp độ đầu tiên mà chúng ta bắt đầu "mời" LLM vào cuộc! Ví dụ, bạn có thể dùng LLM để dịch một đoạn văn bản được chọn. Mặc dù có sự tham gia của LLM, nhưng "kiến trúc sư" (là bạn đó!) vẫn là người quyết định khi nào bước này được "kích hoạt". Chẳng hạn, bạn code để nhận và làm sạch văn bản (code), rồi mới đưa cho LLM dịch (LLM), sau đó lại code để xử lý và trả về kết quả cuối cùng (code). Rất rõ ràng, đúng không nào? **3. Cấp độ: Chuỗi (Chain)**. Thay vì chỉ "gọi" LLM một lần, ở cấp độ này, chúng ta "xâu chuỗi" nhiều lần gọi LLM lại với nhau theo một thứ tự đã định trước để ứng dụng của bạn "mạnh mẽ" hơn. Ví dụ, bạn có thể gọi LLM lần đầu để dịch, rồi gọi lần hai để tóm tắt nội dung đã dịch, giúp người dùng có ngay một bản tin tóm tắt gọn lẹ bằng ngôn ngữ mong muốn. Cứ như có nhiều "trợ lý" AI cùng phối hợp vậy! **4. Cấp độ: Bộ Định Tuyến (Router)**. Giờ thì chúng ta đang "dấn thân" vào một thế giới mới rồi đây! Ở cấp độ này, các bước trong ứng dụng không còn được "đặt sẵn" từ đầu bởi nhà phát triển nữa. Trước đây, LLM chỉ được gọi để "tạo ra kết quả" trong một bước nhất định, nhưng giờ đây, nó "hóa thân" thành một "bộ định tuyến" thông minh, quyết định xem nên "đi" bước nào tiếp theo dựa trên dữ liệu đầu vào và ngữ cảnh. Sự linh hoạt này giúp ứng dụng trở nên năng động và thích nghi tốt hơn, nhưng cũng có thể mang lại những kết quả "khó lường" hơn một chút. Lưu ý quan trọng là chúng ta chưa hề "tạo vòng lặp" ở đây đâu nhé, nên nó vẫn là một đồ thị có hướng không chu trình (DAG - Directed Acyclic Graph). Hãy tưởng tượng một con "nhện web" (web crawler) đi lướt qua các website công ty, "moi" thông tin liên quan, rồi dùng một "router" AI để đánh giá và quyết định xem có nên thêm công ty đó vào danh sách hay không. "Quyền lực" của LLM bắt đầu tăng lên rồi đấy! **5. Cấp độ: Máy Trạng Thái (State Machine)**. Chà, giờ thì chúng ta đang bước chân vào "lãnh địa" của các "Agent" (tạm dịch: tác nhân) rồi! Bằng cách thêm các "vòng lặp" vào đồ thị DAG, chúng ta biến nó thành một "máy trạng thái". Điều này giúp các ứng dụng thích nghi tốt hơn nữa, cho phép AI "tinh chỉnh" hành động của mình và lặp lại các bước cho đến khi đạt được kết quả mong muốn (nhớ đặt giới hạn vòng lặp/đệ quy nhé, không lại "chạy mãi" đó 👀). Ví dụ, một con "nhện web" thông minh (agentic web crawler) có thể chỉ cần được "ra lệnh" về loại công ty mà người dùng quan tâm. Nó sẽ lặp đi lặp lại việc duyệt qua các website, trích xuất thông tin, đánh giá, và quyết định thêm công ty vào danh sách. Nếu chất lượng "khớp" chưa đạt yêu cầu, "nhện" có thể tự "điều chỉnh" hướng dẫn và thử lại cho đến khi đạt được mục tiêu. Dù có sự "biến hóa" liên tục, nhà phát triển vẫn nắm trong tay "bản đồ trò chơi" tổng thể, kiểm soát được những bước nào có thể được thực hiện bất cứ lúc nào. **6. Cấp độ: Agent Tự Hành (Autonomous Agents)**. Ở cấp độ này, "Agent" không chỉ kiểm soát các bước đi, mà còn cả "công cụ" hay "bước đi" nào có sẵn để sử dụng nữa! Hệ thống chỉ cần được cung cấp một "mệnh lệnh" và một bộ "công cụ" (ví dụ: các kỹ thuật truy xuất) và sau đó nó có thể tự quyết định nên thực hiện bước nào, hay gọi công cụ nào. Thậm chí, nó có thể tự "tinh chỉnh" câu lệnh (prompt) hoặc tự "khám phá" và thêm các công cụ mới vào "kho vũ khí" của nó nữa. Dù mạnh mẽ nhất, đây cũng là cấp độ "khó đoán" nhất và đòi hỏi sự giám sát và kiểm soát cực kỳ chặt chẽ. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/thinking_agent.png' alt='Agent AI tự đưa ra quyết định'> (Lưu ý nhỏ: Có nhiều cách khác để phân loại các agent dùng LLM dựa trên mức độ tự chủ. Ví dụ, thư viện <a href="https://huggingface.co/docs/smolagents/conceptual_guides/intro_agents">smolagents</a> bắt đầu từ cấp độ 2/3 làm nền tảng và đi sâu hơn vào "lãnh địa" của agent.) RAG: Đưa AI Trở Về Thực Tại. Vậy là chúng ta đã "ngâm cứu" xong các cấp độ tự chủ tiềm năng rồi! Giờ thì hãy cùng xem làm thế nào để áp dụng chúng vào một trong những "ứng dụng thực chiến" phổ biến nhất hiện nay: RAG (Retrieval Augmented Generation - Sinh văn bản tăng cường truy xuất). Một lời giới thiệu "sơ bộ" nhé: Các mô hình ngôn ngữ lớn (LLM) truyền thống thường bị giới hạn bởi "kiến thức cũ rích", dễ bị "ảo giác" (hallucination - kiểu như "chém gió" đó!), và không thể truy cập dữ liệu riêng tư hoặc thời gian thực. Những "nhược điểm" này đã cản trở khả năng cung cấp câu trả lời chính xác và giàu ngữ cảnh của chúng. Để "giải quyết" những thách thức này, RAG đã ra đời. Bằng cách sử dụng một loại "kho kiến thức" nào đó và "gắn" một cơ chế truy xuất vào LLM, chúng ta có thể đảm bảo thông tin dựa trên thực tế, chuyên môn hóa trên các lĩnh vực cụ thể, cung cấp thông tin cập nhật, kèm theo trích dẫn/nguồn tham khảo và kiểm soát được dữ liệu nào có thể được truy cập. Quá đỉnh phải không? Liệu RAG có còn "thời thượng" không? Liệu chúng ta có còn cần RAG ngày nay không, khi mà "cửa sổ ngữ cảnh" (context window) của LLM ngày càng "phình to" và chúng cũng đang hiểu ngữ cảnh tốt hơn rồi? Đúng là LLM đang phát triển "thần tốc" thật, nhưng vẫn còn nhiều điểm nổi bật và trường hợp sử dụng khiến RAG trở thành một lựa chọn "chuẩn không cần chỉnh": Nếu dữ liệu của bạn chủ yếu là "tĩnh" và bạn cần tìm kiếm "kim trong đáy bể" (needle-in-haystack search). **Độ chính xác:** LLM có thể "vật lộn" với ngữ cảnh quá lớn, đặc biệt khi dữ liệu bị "lạc lối" ở giữa (tìm hiểu thêm tại đây: <a href="https://arxiv.org/pdf/2307.03172.pdf">The Data is Lost in the Middle</a>). **Chi phí:** Ít token hơn đồng nghĩa với độ trễ thấp hơn và chi phí mỗi lần gọi cũng "hạt dẻ" hơn. **Khối lượng:** Xử lý hàng ngàn tài liệu một cách hiệu quả. Không cần hiểu toàn bộ tài liệu một cách toàn diện (ví dụ: code, tóm tắt, phân tích). Một điều cực kỳ quan trọng cần nhớ là phần "truy xuất" (Retrieval) trong RAG không chỉ có nghĩa là tìm kiếm bằng "vector embedding" đâu nhé! Bạn có thể (và thường nên) truy xuất dữ liệu bằng nhiều cách khác nhau, chẳng hạn như tìm kiếm dựa trên từ khóa hoặc kết hợp các phương pháp. Để bài viết này không quá dài dòng, chúng ta sẽ tạm bỏ qua phần "mổ xẻ" sâu về các kỹ thuật RAG ở đây, vì đây là một chủ đề quá rộng mà có thể chúng ta sẽ dành riêng cho một bài viết khác trong tương lai! Sự Tiến Hóa Của RAG theo Mức Độ Tự Chủ. Giờ đây, khi đã "thủ sẵn" các mô hình kiến trúc nhận thức, chúng ta có thể "phân tích" các kỹ thuật RAG phổ biến và xếp hạng chúng dựa trên mức độ tự chủ của chúng một cách rất "ngọt ngào". Điều này sẽ giúp bạn có cái nhìn thực tế hơn về cách các cấp độ này có thể được áp dụng trong thế giới "thực chiến". Chú giải: Gọi LLM: màu xanh dương, Bộ Định Tuyến: màu đỏ, Truy vấn: màu vàng, Phản hồi: màu xanh lá cây. **Cấp độ 1: Tìm Kiếm Cổ Điển (Classic Search)**. Mặc dù đây không phải là RAG "thứ thiệt", nhưng nó là nền tảng chung để bạn hình dung cách các hệ thống truy xuất truyền thống và đơn giản được thiết kế. Người dùng gửi một câu hỏi (query), hệ thống "lùng sục" trong kho kiến thức để tìm tài liệu liên quan và trả về. Đây là bước "truy xuất" thuần túy, không hề có sự can thiệp của LLM. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otf815hsspzp2e49h5lc.png' alt='Sơ đồ tìm kiếm cổ điển'> Hình 2: Tìm kiếm cổ điển. **Cấp độ 2: RAG Cổ Điển (Classic RAG)**. Đây chính là mô hình RAG "kinh điển" mà chúng ta thường thấy! Hệ thống sẽ truy xuất các tài liệu liên quan, "bổ sung" chúng vào ngữ cảnh, rồi sau đó dùng LLM để tạo ra câu trả lời. Vì đang ở cấp độ 2, chúng ta chỉ "nhúng" một lần gọi LLM duy nhất (ô màu xanh dương) , trong trường hợp này là để tạo ra kết quả đầu ra. Tất cả các bước khác đều đã được xác định từ trước, biến đây thành một quy trình tuyến tính, dễ nắm bắt. Trong nhiều trường hợp, "kho kiến thức" là một cơ sở dữ liệu vector, nhưng nó cũng có thể là một tìm kiếm dựa trên từ khóa hoặc bất kỳ cơ chế truy xuất nào khác. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1tlgl5840tsl991i0jh8.png' alt='Sơ đồ RAG cổ điển'> Hình 3: RAG cổ điển. Việc truy vấn nhiều "kho kiến thức" song song vẫn được coi là kỹ thuật RAG cấp độ 2, bởi vì chúng ta không thêm bất kỳ lệnh gọi LLM nào khác để cải thiện quá trình truy xuất. LLM chỉ được sử dụng để tạo ra câu trả lời cuối cùng dựa trên các tài liệu đã truy xuất. Điều này được minh họa trong hình dưới đây, nơi chúng ta truy xuất tài liệu từ hai kho kiến thức khác nhau và sau đó tạo ra câu trả lời dựa trên ngữ cảnh kết hợp (ví dụ, bằng cách sử dụng kỹ thuật hợp nhất thứ hạng nghịch đảo - RRF). <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/py0zi39v8xwonx9nmvy7.png' alt='Sơ đồ RAG với đa truy vấn và RRF'> Hình 4: RAG với đa truy vấn và RRF. **Cấp độ 3: RAG Dạng Chuỗi (Chained RAG)**. Ở đây, chúng ta bắt đầu "mời" nhiều lần gọi LLM (các ô màu xanh dương) để nâng cao khả năng của hệ thống. Có rất nhiều triển khai RAG được thực hiện theo cách này, ví dụ như: **Rewrite-Retrieve-Read (RRR)**: Kỹ thuật này sẽ "viết lại" câu hỏi ban đầu để cải thiện chất lượng của nó, với hy vọng truy xuất được những tài liệu thực sự liên quan. Cứ như việc bạn "hỏi lại cho rõ" để tìm đúng thứ mình cần vậy đó! (Hình 5). <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwiq53v7ef1wp0q8ioo3.png' alt='Sơ đồ RAG Rewrite-Retrieve-Read'> Hình 5: RAG Rewrite-Retrieve-Read. **Rerank RAG:** Sau khi truy xuất tài liệu, chúng ta có thể "xếp hạng lại" chúng dựa trên mức độ liên quan đến câu hỏi. Việc này có thể thực hiện bằng cách sử dụng một lệnh gọi LLM thứ hai để "chấm điểm" các tài liệu hoặc bằng cách sử dụng một mô hình xếp hạng riêng biệt (Hình 6). Cứ như bạn có một ban giám khảo chấm điểm tài liệu vậy đó! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zg0dyabb9scxdepboyzx.png' alt='Sơ đồ Rerank RAG'> Hình 6: Rerank RAG. **Hypothetical Document Embeddings (HyDE)** : Kỹ thuật này tạo ra các "nhúng tài liệu giả định" (hypothetical document embeddings) dựa trên câu hỏi của bạn, rồi sau đó truy xuất các tài liệu tương tự với những "nhúng" này. Nó giúp cải thiện chất lượng truy xuất bằng cách tạo ra các "nhúng" phù hợp hơn với câu hỏi. Tất nhiên, chẳng ai cấm bạn kết hợp các kỹ thuật trên đâu nhé! Bạn hoàn toàn có thể: viết lại câu hỏi, truy xuất tài liệu từ nhiều kho kiến thức khác nhau, và sau đó xếp hạng lại chúng trước khi tạo ra câu trả lời cuối cùng. Về mặt kiến trúc, đây vẫn là một quy trình tuyến tính, vì bạn đã biết mọi bước và khi nào chúng sẽ được chạy từ trước rồi. **Cấp độ 4: RAG Với Bộ Định Tuyến (RAG with Routers)**. Lên đến cấp độ 4, các LLM đã bắt đầu "nhúng tay" vào việc kiểm soát luồng và tự quyết định bước tiếp theo dựa trên dữ liệu đầu vào và ngữ cảnh. Điều này cho phép các hệ thống RAG trở nên năng động và thích nghi hơn, nơi LLM có thể tự chọn thực hiện các bước bổ sung để cải thiện kỹ thuật truy xuất hoặc quyết định có nên xếp hạng lại tài liệu hay không. Trong ví dụ dưới đây (Hình 7), mô hình <a href="https://arxiv.org/pdf/2401.15884">RAG sửa lỗi (corrective RAG - CRAG)</a> được triển khai. Sau khi truy xuất tài liệu, LLM sẽ "chấm điểm" các tài liệu đó. Nếu điểm thấp hơn một ngưỡng nhất định, một bước sửa lỗi sẽ được thực hiện bằng cách "nhờ" tìm kiếm web để tìm thêm tài liệu liên quan. Đây là lần đầu tiên chúng ta thấy một "bộ định tuyến" được cung cấp bởi LLM hoạt động, vì nó tự quyết định có nên thực hiện bước sửa lỗi hay không dựa trên chất lượng của tài liệu đã truy xuất. Tuyệt vời chưa? <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elb4zuv25nv4fyjhl6it.png' alt='Sơ đồ Corrective RAG'> Hình 7: Corrective RAG. Lưu ý rằng chúng ta vẫn chưa "tạo vòng lặp" ở đây đâu nhé, nên nó vẫn là một đồ thị có hướng không chu trình (DAG). Bạn vẫn biết tất cả các bước của quy trình tuyến tính này và khi nào chúng có thể được kích hoạt, nhưng LLM sẽ là người quyết định có thực hiện chúng hay không. **Cấp độ 5: RAG Với Máy Trạng Thái (RAG with State Machines)**. Bằng cách "thêm vòng lặp", các kỹ thuật RAG dạng "agent" này có thể thực hiện các hành động "phản xạ", tức là tự quan sát và đánh giá kết quả từ các bước trước đó, rồi quyết định có nên thực hiện các hành động sửa chữa hay không. Sau đó, nó có thể khởi động lại (một phần của) quy trình cho đến khi đạt được một kết quả nhất định. Một ví dụ khá phức tạp là <a href="https://arxiv.org/abs/2310.11511">Self-RAG</a> (Hình 8), tận dụng ba bước "chấm điểm" (routers) để kiểm tra tài liệu liên quan, câu trả lời có căn cứ và mức độ hữu ích của câu trả lời đối với câu hỏi. Nghe có vẻ "hack não" đúng không nào? <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9cdxhfhxoeoojngy6bd6.png' alt='Sơ đồ Self-RAG'> Hình 8: Self-RAG. Nhìn vào kiến trúc này, chúng ta có thể thấy có bao nhiêu phần của quy trình được kiểm soát bởi LLM. Điều này cho phép một hệ thống thích nghi tốt hơn, nhưng độ phức tạp cũng tăng lên đáng kể. Việc sử dụng các phản hồi có cấu trúc và có một cơ chế theo dõi (tracing) phù hợp là rất quan trọng để hiểu được hành vi của hệ thống và gỡ lỗi khi có sự cố xảy ra. **Cấp độ 6: Các Agent RAG Tự Hành (Autonomous RAG Agents)**. Có lẽ bạn sẽ nghĩ rằng một kỹ thuật RAG ở cấp độ 6 phải phức tạp đến nỗi không thể vẽ hết lên màn hình khi nhìn vào ví dụ trước đó. Nhưng thực ra, nền tảng của nó khá đơn giản thôi: LLM được cung cấp một "mệnh lệnh" và một bộ "công cụ" (ví dụ: các kỹ thuật truy xuất) và sau đó nó có thể tự quyết định nên thực hiện bước nào, hay gọi công cụ nào. Thậm chí, nó có thể tự "tinh chỉnh" câu lệnh (prompt) hoặc tự "khám phá" và thêm các công cụ mới vào "kho vũ khí" của nó nữa. Dù mạnh mẽ nhất, đây cũng là cấp độ "khó đoán" nhất và đòi hỏi sự giám sát và kiểm soát cực kỳ chặt chẽ. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://i.imgur.com/wzyct01pwq7uvghfmwb1.png' alt='Sơ đồ RAG tự hành'> Hình 9: RAG tự hành. Công cụ phù hợp cho công việc 🔨. Vậy có nghĩa là chúng ta phải luôn "tham vọng" đạt đến cấp độ tự chủ cao nhất sao? Không hẳn đâu nhé! Mặc dù các cấp độ tự chủ cao hơn có thể dẫn đến các hệ thống thích nghi và mạnh mẽ hơn, nhưng chúng cũng đi kèm với sự phức tạp gia tăng, tính "khó đoán" và tiềm ẩn rủi ro thất bại. Đặc biệt khi xử lý lượng lớn dữ liệu khá "tĩnh", một kỹ thuật RAG đơn giản hơn có thể phù hợp hơn rất nhiều. Nói chung, <a href="https://huggingface.co/docs/smolagents/conceptual_guides/intro_agents#-when-to-use-agents---when-to-avoid-them">lời khuyên là</a> nên sử dụng các phương pháp "quyết định" và ít tự chủ hơn nếu bạn càng biết rõ quy trình làm việc từ trước. "Đừng dùng búa tạ để đóng đinh nhỏ" mà! Agent Đơn Giản? Mặt khác, những người đang xây dựng các "agent viết code" <a href="https://pashpashpash.substack.com/p/why-i-no-longer-recommend-rag-for">thậm chí còn báo cáo</a> rằng một agent được trang bị các công cụ truy xuất đơn giản lại có thể hoạt động "đỉnh hơn" so với các hệ thống phức tạp dựa vào "vector embedding" và chỉ mục "siêu cấp". <a href="https://x.com/jobergum/status/1928355375847248108">Cũng đã có nghiên cứu chỉ ra rằng</a> trong các bối cảnh nghiên cứu chuyên sâu, việc kết hợp đơn giản giữa tìm kiếm từ khóa như BM25 và một agent có thể đạt được kết quả ngang bằng so với các hệ thống RAG phức tạp, trong khi chi phí suy luận (inference), yêu cầu lưu trữ và độ phức tạp lại thấp hơn rất nhiều. Điều này thực sự "phá vỡ" những niềm tin phổ biến rằng khối lượng dữ liệu lớn luôn đòi hỏi các vector embedding phức tạp cho một trường hợp sử dụng agent. Thật bất ngờ phải không? Kết Luận. Trong bối cảnh AI đang "biến hóa" không ngừng, các mô hình kiến trúc nhận thức cung cấp một cách tiếp cận có cấu trúc để thiết kế và so sánh các hệ thống dùng LLM. Từ những đoạn mã đơn giản đến các agent tự hành phức tạp, mỗi cấp độ tự chủ đều mang lại những lợi thế và thách thức riêng. Mặc dù tự chủ cao hơn kéo theo sự phức tạp lớn hơn, nhưng nó cũng "mở ra cánh cửa" cho các hệ thống thích nghi và mạnh mẽ, có thể lập luận, lập kế hoạch và thực hiện các tác vụ theo những cách mà trước đây dường như là "bất khả thi". Giống như hầu hết mọi chủ đề trong kiến trúc phần mềm, không có giải pháp "một kích cỡ vừa cho tất cả". Hãy bắt đầu với kiến trúc đơn giản nhất đáp ứng nhu cầu của bạn, chỉ "nâng cấp" mức độ tự chủ khi các tác vụ đòi hỏi khả năng ra quyết định động. Một xu hướng thú vị là sự "lên ngôi" của Agentic RAG, kết hợp sức mạnh của truy xuất với sự linh hoạt của các agent. Đặc biệt khi tính đến <a href="https://www.latent.space/p/why-mcp-won">sự phát triển</a> của <a href="https://duske.me/posts/mcp/">Giao thức Ngữ cảnh Mô hình (Model Context Protocol - MCP)</a>, các nguồn dữ liệu và công cụ mới có thể được thêm vào "ngay lập tức", cho phép các hệ thống agent thích ứng với các yêu cầu mới mà không cần phải thiết kế lại hoặc cấu hình phức tạp. Điều chúng ta đặc biệt phấn khích là tiềm năng của các công cụ đơn giản như tìm kiếm từ khóa khi được sử dụng hiệu quả trong các hệ thống Agentic, chứng minh rằng đôi khi, những công cụ đơn giản, nếu được sử dụng khôn ngoan, lại có thể khuếch đại sức mạnh của chúng lên nhiều lần! Tài Nguyên Tham Khảo. Đây là danh sách các tài nguyên bạn có thể tìm hiểu thêm để "nâng tầm" kiến thức về chủ đề này nhé: <a href="https://huggingface.co/docs/smolagents/examples/rag">smolagents examples for RAG</a> <a href="https://blog.langchain.dev/what-is-a-cognitive-architecture">Bài đăng của Harrison Chase về Kiến trúc Nhận thức</a> <a href="https://huggingface.co/docs/smolagents/conceptual_guides/intro_agents">Giới thiệu về Agent trong smolagents</a> <a href="https://pashpashpash.substack.com/p/understanding-long-documents-with">Hiểu các tài liệu dài với Agent</a> <a href="https://pashpashpash.substack.com/p/why-i-no-longer-recommend-rag-fo">Tại sao RAG không còn được khuyến nghị cho tác vụ code</a> <a href="https://x.com/jobergum/status/1928355375847248108">Bài viết của Jobergum về tìm kiếm từ khóa trong nghiên cứu sâu</a> <a href="https://langchain-ai.github.io/langgraphjs/tutorials/rag/langgraph_self_rag/">LangChain & LangGraph Self-RAG Tutorial</a> <a href="https://langchain-ai.github.io/langgraphjs/tutorials/rag/langgraph_crag/">LangChain & LangGraph CRAG Tutorial</a> <a href="https://huggingface.co/docs/smolagents/v1.17.0/en/conceptual_guides/intro_agents#code-agents">Code Agents trong smolagents</a> **Các Bài Báo Khoa Học (Papers):** <a href="https://arxiv.org/abs/2402.01030">Executable Code Actions Elicit Better LLM Agents</a> <a href="https://arxiv.org/abs/2310.11511">Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection</a> <a href="https://arxiv.org/pdf/2401.15884.pdf">Corrective Retrieval Augmented Generation</a> <a href="https://aclanthology.org/2023.acl-long.99/">Precise Zero-Shot Dense Retrieval without Relevance Labels</a> <a href="https://arxiv.org/abs/2305.14283">Query Rewriting for Retrieval-Augmented Large Language Models</a> Bài viết này được đăng tải lần đầu trên <a href="https://engineering.simpl.de/post/rag_autonomy/">blog kỹ thuật của SIMPL</a>.
Tìm hiểu về AutoGen của Microsoft, framework mã nguồn mở đột phá cho phép bạn xây dựng các AI agent dựa trên LLM có khả năng giao tiếp, ra quyết định và làm việc nhóm hiệu quả chỉ với vài dòng code Python. Khám phá kiến trúc, tính năng nổi bật và so sánh với LangChain, CrewAI, MetaGPT để bắt đầu tự động hóa các tác vụ phức tạp.
Khám phá Invoke, framework nhẹ nhàng giúp LLM agents tự động khám phá và triệu hồi API linh hoạt ngay trong quá trình hoạt động, không cần hardcode. Tạm biệt sự cứng nhắc của 'compile-time bindings' và chào đón kỷ nguyên AI tự học!
Khám phá sức mạnh tổng hợp của Đồ Thị Tri Thức (KGs) và Mô Hình Ngôn Ngữ Lớn (LLMs), cách chúng cải thiện độ chính xác, giảm "ảo giác" và định hình tương lai của Web thông minh với các ứng dụng thực tế.