Xây dựng trợ lý AI (Copilot) bằng cách sử dụng Semantic Kernel framework với C#.NET

AI Copilot là gì?

AI Copilot là một trợ lý (assistant/agent) sử dụng trí tuệ nhân tạo (AI - Artificial Intelligence), được thiết kế để hỗ trợ người dùng trong nhiều tác vụ khác nhau, thường cung cấp hướng dẫn (guidance), hỗ trợ (support)tự động hóa (automation) trong các ngữ cảnh ứng dụng khác nhau.


Ứng dụng của AI Copilot

AI Copilot có thể được tích hợp vào các ứng dụng như công cụ năng suất (productivity tools), hệ thống hỗ trợ khách hàng (customer support systems), trợ lý ảo (virtual assistants), hệ thống định vị (navigation systems)môi trường phát triển phần mềm (software development environments). Ở cấp độ cơ bản nhất, AI Copilot là một AI assistant giúp bạn hoàn thành các tác vụ lặp lại nhanh hơn trước.


Các mô hình triển khai Copilot (Copilot Patterns)

 

  1. Beside: Copilot hoạt động như một trợ lý bên trong ứng dụng, hiển thị dưới dạng sidebar (thanh bên) phía bên phải. Nó hỗ trợ người dùng khi họ đang sử dụng một ứng dụng cụ thể.

  2. Center: Copilot được tích hợp trực tiếp vào giao diện trung tâm, đóng vai trò là nền tảng chính (app foundation) của ứng dụng.

  3. Outside: Copilot có khả năng điều phối đa nhiệm (orchestrate across apps and tasks) trên nhiều ứng dụng và quy trình khác nhau, không bị giới hạn trong một ứng dụng cụ thể.


Copilot ở khắp nơi (Copilot is everywhere)

AI Copilot được thiết kế để hỗ trợ trong nhiều tình huống như viết mã (coding), viết nội dung (writing), học tập (learning), trả lời câu hỏi (question answering), v.v. Tuy nhiên, Copilot không "hiện diện ở mọi nơi" theo nghĩa toàn tri (omnipresent) hay truy cập dữ liệu cá nhân nếu không được cấp quyền rõ ràng. Copilot tuân thủ quyền riêng tư (privacy) và bảo mật thông tin người dùng.

 


Agentic AI – GenAI 2.0

Agentic AI – còn gọi là GenAI 2.0 – không chỉ đơn thuần là tự động hóa (automation) mà là một chuyển đổi mô hình (paradigm shift) trong cách doanh nghiệp áp dụng AI. Đây là những hệ thống AI có khả năng tự động theo đuổi mục tiêu phức tạp (autonomously pursue complex goals) với sự giám sát tối thiểu.

 

 

Tính năng chính của AI Agent:

  1. Autonomy (Tự chủ): Thực hiện hành động theo mục tiêu mà không cần can thiệp nhiều từ con người.

  2. Reasoning (Lý luận): Ra quyết định dựa vào ngữ cảnh, đánh giá và cân nhắc các lựa chọn.

  3. Adaptable Planning (Lập kế hoạch linh hoạt): Điều chỉnh mục tiêu và quy trình theo điều kiện thay đổi.

  4. Language Understanding (Hiểu ngôn ngữ tự nhiên): Thực thi chỉ dẫn viết bằng ngôn ngữ con người.

  5. Workflow Optimization (Tối ưu quy trình): Di chuyển linh hoạt giữa các tác vụ và hệ thống để hoàn thành mục tiêu.


Yêu cầu về thực hành mới

Mỗi kỷ nguyên công nghệ đều đòi hỏi công cụ và phương pháp mới (tools and methodologies). Biểu đồ dưới đây minh họa quá trình tiến hóa của kỹ thuật phần mềm qua từng tầng:

  1. Mainframe: Ngôn ngữ như COBOL, Fortran, dùng JCL (Job Control Language); quy trình phát triển theo mô hình Waterfall, lập trình có cấu trúc (Structured Programming).

  2. Desktop: IDE phổ biến, ngôn ngữ như C++, Java, .NET; dùng SQL databases và mô hình lập trình hướng đối tượng (OOP - Object-Oriented Programming).

  3. Internet: Giai đoạn web với HTML5, CSS, JavaScript; xuất hiện NoSQL databases; mô hình phát triển Agile methodology.

  4. Mobile + Cloud: iOS, Android; kiến trúc Microservices, Containers, Serverless, triển khai CI/CD (Continuous Integration/Continuous Deployment).

  5. AI: Kỷ nguyên hiện tại, cần bộ công cụ mới để hỗ trợ mô hình nền tảng (foundation models), từ tạo, huấn luyện, đến triển khai các ứng dụng AI.

 

 

 


Semantic Kernel

Semantic Kernel (SK) là một SDK mã nguồn mở (open-source SDK) giúp xây dựng các AI agent có thể gọi và tích hợp với mã nguồn hiện tại. Nó hỗ trợ các mô hình từ OpenAI, Azure OpenAI, Hugging Face, v.v. SK kết hợp các semantic functions (hàm ngôn ngữ tự nhiên), native functions (hàm truyền thống)embeddings-based memory (bộ nhớ dựa trên vector embedding) để tăng cường khả năng AI.

 


Semantic Kernel là trung tâm của Agent Stack

Semantic Kernel đóng vai trò là tầng điều phối AI (AI orchestration layer) giúp kết hợp mô hình AI và plugin để tạo ra trải nghiệm mới. Microsoft đã phát hành SK để lập trình viên có thể xây dựng Copilot riêng bằng cách orchestrate plugins với AI.

 


Kiến trúc Semantic Kernel

SK tích hợp các Large Language Models (LLMs) như OpenAI, Azure OpenAI và Hugging Face với ngôn ngữ như C#, Python, Java. Bạn có thể định nghĩa các plugin và kết nối chúng bằng planners để tự động lên kế hoạch và thực thi hành động phù hợp với yêu cầu người dùng.

 


Mô hình phát triển ứng dụng mới (New Paradigm for App Development)

Semantic Kernel đại diện cho một mô hình phát triển ứng dụng hoàn toàn mới, đặc biệt là trong việc xây dựng các ứng dụng AI thông minh. Đây là một mô hình khái niệm tận dụng sức mạnh của ngữ nghĩa (semantics) – tức là việc nghiên cứu ý nghĩa trong ngôn ngữ – để nâng cao chức năng và trải nghiệm người dùng trong ứng dụng.

 

 

Bằng cách hiểu và diễn giải đầu vào của người dùng theo cách tinh tế hơn và có nhận thức về ngữ cảnh, các ứng dụng được xây dựng trên nền Semantic Kernel có thể cung cấp phản hồi chính xác hơn, cá nhân hóa hơn và trực quan hơn. Cách tiếp cận này vượt ra ngoài việc tìm kiếm và ra lệnh dựa trên từ khóa truyền thống, cho phép hiểu sâu hơn về ý định người dùng (user intent) và tạo ra tương tác tự nhiên hơn giữa người dùng và ứng dụng.

Kết quả là, các lập trình viên sử dụng Semantic Kernel có thể tạo ra những ứng dụng AI không chỉ thông minh hơn mà còn thân thiện hơn với người dùng, mở đường cho một kỷ nguyên mới của trải nghiệm số tinh vi và trực quan.


Tác nhân AI (AI Agents)

Một agent (tác nhân) là một hệ thống trí tuệ nhân tạo có khả năng trả lời câu hỏi và tự động hóa quy trình cho người dùng. Có nhiều loại agent có thể được xây dựng, từ các chatbot đơn giản cho đến các trợ lý AI (AI assistant) được tự động hóa hoàn toàn.

 


Copilot – Một loại agent đặc biệt

Copilot là một loại agent đặc biệt được thiết kế để làm việc song hành với người dùng. Khác với các agent thông thường, copilot không nhằm mục đích tự động hóa hoàn toàn, mà thay vào đó là hỗ trợ người dùng thực hiện tác vụ bằng cách đưa ra gợi ý và đề xuất.

 

 

Ví dụ: một copilot có thể giúp người dùng viết email bằng cách đề xuất nội dung tiếp theo. Người dùng có thể chấp nhận hoặc từ chối gợi ý đó.


Xây dựng agent (copilot)

Một agent được cấu thành từ ba thành phần chính: plugin, planner, và persona.

Các thành phần này cho phép agent lấy thông tin từ người dùng hoặc hệ thống khác, lên kế hoạch sử dụng thông tin đó, và phản hồi hoặc thực hiện hành động dựa trên thông tin đã xử lý. Ví dụ, một copilot hỗ trợ người dùng viết và gửi email sẽ thực hiện các bước sau:

  1. Lấy địa chỉ email và tên của người dùng

  2. Lấy địa chỉ email của người nhận

  3. Lấy chủ đề của email

  4. Tạo tiêu đề (subject) và nội dung (body) của email

  5. Duyệt lại nội dung với người dùng

  6. Gửi email


Plugins

 

 

Ở cấp độ cao, plugin là một nhóm các hàm có thể được sử dụng bởi các ứng dụng và dịch vụ AI. Các hàm trong plugin sau đó có thể được orchestrate (điều phối) bởi ứng dụng AI để thực hiện yêu cầu của người dùng.

Trong Semantic Kernel, bạn có thể gọi các hàm trong plugin bằng tay hoặc tự động thông qua cơ chế function calling hoặc planner.


Planners

Planner là một hàm nhận yêu cầu của người dùng và trả về kế hoạch (plan) để thực hiện yêu cầu đó. Nó sử dụng AI để phối hợp (mix-and-match) các plugin đã đăng ký trong kernel, kết hợp chúng lại thành một chuỗi các bước để hoàn thành mục tiêu.

Đây là một khái niệm mạnh mẽ vì nó cho phép bạn tạo ra các hàm nguyên tử (atomic functions) có thể được sử dụng theo những cách mà bạn – với tư cách là lập trình viên – thậm chí chưa từng nghĩ tới.

 


Personas

Persona mang lại "chất con người" cho các mô hình ngôn ngữ lớn (LLM – Large Language Models), biến các phản hồi mang tính chung chung thành các phản hồi được cá nhân hóa và gần gũi hơn với người dùng.

 

 

Bạn có thể coi persona như một meta prompt hoặc một đoạn hướng dẫn (instruction) ảnh hưởng đến cách agent phản hồi với đầu vào. Trong những trường hợp đơn giản, persona có thể điều chỉnh tính cách của agent.

Khái niệm này đặc biệt hữu ích trong các ứng dụng như chatbot hỗ trợ khách hàng hoặc trợ lý ảo, cho phép tạo ra những persona độc đáo mà không cần chi phí hay thời gian lớn. Nhìn chung, persona trong Semantic Kernel là một bước tiến lớn trong AI, giúp tạo ra trải nghiệm người dùng mang tính cá nhân và hấp dẫn hơn.


Kết luận

Sự trỗi dậy của các AI agent, đặc biệt là copilot, là một bước phát triển đáng chú ý trong lĩnh vực ứng dụng thông minh. Semantic Kernel, với khả năng tích hợp liền mạch giữa mô hình ngôn ngữ lớn (LLMs) và các ngôn ngữ lập trình truyền thống, đóng vai trò thiết yếu trong sự chuyển mình này.

Nó không chỉ làm nổi bật tiềm năng chuyển đổi của Agentic AI mà còn định hình một mô hình phát triển ứng dụng hoàn toàn mới – nơi các phản hồi trở nên chính xác hơn, cá nhân hóa hơn và trực quan hơn nhờ vào sức mạnh của Semantic Kernel.

Quy trình xây dựng agent AI với ba trọng tâm là plugin, planner, và persona đã được làm rõ. Cuối cùng, Semantic Kernel nổi lên như một công cụ then chốt trong việc thúc đẩy AI phát triển, mở ra tương lai nơi công nghệ gắn bó chặt chẽ hơn với nhu cầu và sở thích cá nhân của từng người dùng.

 

Tham khảo

  1. Semantic Kernel là gì? https://learn.microsoft.com/en-us/semantic-kernel/overview

  2. AI Plugins trong SK: https://learn.microsoft.com/en-us/semantic-kernel/agents/plugins

  3. Kế hoạch tự động với Planners: https://learn.microsoft.com/en-us/semantic-kernel/agents/planners

  4. Bắt đầu với SK: https://github.com/microsoft/semantic-kernel

  5. Kiến trúc hóa AI Apps với SK: https://devblogs.microsoft.com/semantic-kernel/architecting-ai-apps-with-semantic-kernel/


Trích nguồn từ: (https://www.linkedin.com/pulse/build-copilots-using-semantic-kernel-tarun-sharma-1zghc)

Lên trên