agent thiết yếu nhất cho một hệ thống đa agent: agent giao diện người sử dụng (Interface agent), agent xử lý ontology (Ontology agent), một số agent ứng dụng (Application agent) và siêu agent (meta-agent). Các agent trên có vai trò
Application Agent Modalty Agents User Interface Agent API Application Ontology Agent Meta Agent Ontology Base
Ngôn ngữ giao tiếp giữa các Agents
Facilitator Agent Điều khiển Tìm đường Lập kế hoạch Cơ sở tri thức Dữ liệu về agent Siêu dữ liệu
ngang nhau trong hệ thống, chúng được tổ chức như một cộng đồng thông qua mối quan hệ chung với một agent điều phối (Faccilitator agent).
1.7 So sánh BKAS với các công nghệ tính toán phân tán
Một đặc điểm rất quan trọng mà phân biệt BKAS với các mô hình tính toán phân tán khác là mô hình tính toán ủy quyền (delegated computing) của nó, cho phép người dùng và các agent phần mềm mô tả những yêu cầu bằng những cái cần được làm mà không cần những đặc tả về ai sẽ làm công việc đó và cách thức mà công việc đó được thực hiện, chẳng hạn: “Khi một thông điệp dành cho tôi tới về vấn đề an ninh, hóy bỏo cho tôi ngay lập tức”. Requester sẽ giao quyền điều khiển để đáp ứng một mục tiêu (goal) cho facilitator agent – một server agent được chuyên môn hóa trong BKAS mà phối hợp hoạt động của cộng đồng agent nhằm thực hiện những mục tiêu giải quyết các vấn đề phức tạp ở mức cao.
Trong BKAS, sự điều khiển cách thức mà tương tác và truyền thông xảy ra giữa các agent là sản phẩm của sự phối hợp của bốn nguồn tri thức khác nhau:
1. Requester chỉ ra một mục tiêu cho facilitator và cung cấp lời chỉ dẫn về việc mục tiêu đú nờn được đáp ứng như thế nào.
2. Các provider đăng ký các khả năng của chúng với facilitator, biết những dịch vụ nào mà chúng có thể cung cấp và giới hạn của những khả năng của chúng.
3. Facilitator bảo trì một danh sách các provider agent đang sẵn sàng và một tập các chiến lược chung để đáp ứng các mục tiêu.
4. Các meta-agent lưu giữ những tri thức và chiến lược cụ thể đối với một phạm vi (domain) hay mục tiêu (goal), được sử dụng như là một sự trợ giúp cho facilitator.
Những tri thức này được sử dụng để làm thuận lợi hơn sự phối hợp giữa giữa một tập các BKAS agent. Facilitator khớp (match) một yêu cầu với một hoặc nhiều agent mà cung cấp dịch vụ để đáp ứng yêu cầu đó, giao nhiệm vụ cho chúng, kết hợp các kết quả của chúng, và gửi kết quả lại cho requester. Cách phối hợp giữa các agent như thế này có thể được áp dụng để
thực hiện cả hai loại công việc đơn giản và phức tạp, nhiều bước. Để bổ sung cho sự ủy quyền, BKAS cũng cung cấp khả năng tạo ra những cuộc gọi trực tiếp đến một agent cụ thể, và broadcast các yêu cầu.
1.8 Các agent chính trong mô hình
Facilitator agent: được đặc tả như một agent server có khả năng hồi đáp tới việc truyền thông giữa các agent cùng hoạt động và việc giải quyết các vấn đề chung. Trong nhiều hệ thống, facilitator cũng được sử dụng để cung cấp một kho dữ liệu chung cho tất cả các agent của nó, cho phép chúng ghi nhận theo kiểu bảng đen của tương tác. Một hệ thống không có giới hạn về số lượng facilitator agent.Một hệ thống lớn có thể là sự kết hợp của nhiều nhúm facilitator agent và agent thành phần, và mỗi nhúm như vậy đều có cấu trúc như hình 1. Một facilitator duy trì một cơ sở tri thức là các bản ghi năng lực về một tập hợp các agent, và việc sử dụng tri thức đó để thực hiện các yêu cầu và cung cấp các dịch vụ trong việc thực thi các liên hệ. Điểm cơ bản trong chức năng của facilitator agent là sự uỷ quyền “trong suốt” (transparent delegation). Điều này có nghĩa là, khi một agent thành viên phát sinh một yêu cầu, và facilitator agent có thể quản lý những đáp ứng yêu cầu đó, agent yêu cầu không cần bất cứ tri thức nào để nhận dạng hay định vị agent thực thi yêu cầu này. Nhiệm vụ của facilitator agent là kết nối giữa yêu cầu và thực thi yêu cầu. Sự uỷ quyền trong suốt này là khả thi vì các khả năng của từng agent trong hệ thống đều được đặc tả dưới dạng các dịch vụ, sự trong suốt ở đõy có nghĩa là các agent yêu cầu và thực thi yêu cầu không hề “biết” nhau, chúng chi cần đặc tả yêu cầu và đặc tả khả năng của chúng với facilitator agent.
Facilitator agent là agent quan trọng nhất trong mô hình, vai trò và cơ chế hoaạt động của nó cũn được nhắc đến trong phần sau của báo cáo.
Agent khác (Client Agent): các agent của trong mô hình, trừ facilitator agent, đều được coi là các agent khách (client agent). Facilitator agent cung cấp cơ chế giao tiếp, và các dịch vụ thiết yếu cho các agent khách. Khi được kích hoạt, agent khách tạo kết nối đến facilitator agent, là facilitator agent mức cha của agent khách đó, để đăng ký những dịch vụ mà nó có thể cung cấp. Khi có yêu cầu về một trong các dịch vụ đó, facilitator agent sẽ gửi yêu cầu đến cho agent khách này thông qua ngôn ngữ truyền thông giữa các agent – ICL (sẽ được trình bày trong phần sau). Agent khách sẽ phõn tích yêu cầu này, thực thi nó, và gửi kết quả hoặc báo cáo đến cho facilitator agent. Trong quá trình thực thi một yêu cầu, agent kỏhch này có thể sử dụng các dịch vụ khác mà hệ thống agents cung cấp.
Agent ứng dụng (Application Agent): cung cấp một tập các service (dịch vụ) cơ bản về một nhu cầu cụ thể nào đó. Trên thực tế chúng có thể là các ứng dụng cụ thể. Điều đáng quan tâm là các ứng dụng có thể là các ứng dụng có công nghệ độc lập (Ví dụ như các ứng dụng xử lý tiếng nói. email hay các ứng dụng cụ thể nào đó như các ứng dụng về bài toán lập kế hoạch du lịch).
Siêu agent (Meta-agent): là agent đóng vai trò trợ giúp cho Facilitator trong việc phối hợp các hoạt động của các agent khác. Meta-agent có thể giúp cho Facilitator agent trong việc hỗ trợ giao tiếp giữa các agent ở các miền (lĩnh vực) nhiệm vụ độc lập cũng như được xây dựng trờn cỏc công nghệ độc lập. Meta-agent có thể tăng nên khi việc sử dụng các miền (lĩnh vực) nhiệm vụ tăng lên cũng như các tri thức xác định về các miền nhiệm vụ như các luật (rule), thuật toán lớn.
Agent giao diện người dùng (User Interface Agent): đóng vai trũ khỏ quan trọng và thú vị trong nhiều hệ BKAS. Trong một số hệ, Interface Agent được thực hiện bởi một tập các agent khác được gọi là các “Micro-agent”, trong đó mỗi “Micro-agent“ đóng vai trò
giám sát một kiểu đầu vào khác nhau của hệ thống (Point-and-click, các tín hiệu từ bút, giọng núi,…) và cộng tác để có thể đưa ra các diễn giải tốt nhất trợ giúp cho hệ thống giao diện người dùng (User Interface).
Agent thao tác với ontology (Ontology agent): là agent quan trọng trong hệ thống đa agent có sử dụng nền tảng ontology. Agent này đảm nhiệm các thao tác trên hệ ontology, cung cấp tri thức về lĩnh vực cho các agent yêu cầu. Hiện nay, việc sử dụng ontology mã hoá tri thức về một lĩnh vực, tạo ra một lưới ngữ nghĩa(web semantic) trở lên rất phổ biến, nên việc sử dụng agent thao tác với ontology giúp phõn tách hệ thống với tri thức về lĩnh vực mà hệ thống thao tác.
Cơ sở hạ tầng chung để xõy dựng lên những agent trên được cung cấp bới một thư viện hỗ trợ, đặc trưng cho các ngôn ngữ lập trình khác nhau. Những thư viện này được thiết kế để giảm thiểu các yêu cầu phức tạp khi xõy dựng một hệ thống mới và tăng cường khả năng kế thừa của hệ thống. Framework Jade cung cấp một thư viện như vậy.
Như vậy, trong một hệ BKAS, các agent khách hoàn toàn độc lập với nhau, chúng chỉ biết duy nhất một facilitator agent mức cha của chúng. Điều này tạo ra khả năng linh hoạt trong việc mở rộng hệ thống, đăng ký và cung cấp các dịch vụ của hệ thống.
1.9 Đăng ký dịch vụ trong hệ thống dựa mô hình BKAS
Mỗi agent trong hệ thống xõy dựng trên mô hình BKAS đều định nghĩa và công bố một tập các khả năng, mô tả các dịch vụ mà nó cung cấp. Những công bố này thiết lập một giao diện mức cao cho agent này. Giao diện này được facilitator agent sử dung trong giao tiếp với agent đó, và đặc biệt quan trọng trong việc uỷ quyền đáp ứng các yêu cầu (hoặc một phần của yêu cầu)
cho agent. Chúng ta có thể coi những công bố các khả năng của agent như các đáp ứng.
Có hai loại đáp ứng chớnh: đáp ứng chức năng và đáp ứng về dữ liệu. Một đáp ứng thủ tục thực hiện một công việc hay một hành động, trong khi đáp ứng dữ liệu phục vụ việc truy cập vào một tõp dữ liệu. Ví dụ, trong việc tạo một agent cho một ứng dụng mail, đáp ứng chức năng có thể được định nghĩa cho hành động gửi thông điệp đến cho một người, kiểm tra việc nhận các mail vào trong hàng đợi, hay việc trình bày từng tin trên màn hình. Cũn agent phụ trách dữ liệu, chúng định nghĩa một đáp ứng dữ liệu với mỗi một quan hệ được mô tả trong cơ sở dữ liệu. Thông thường, một đáp ứng dữ liệu được sử dụng để cung cấp một kho dữ liệu chia sẻ, mà không chỉ được truy vấn, mà cũn được cập nhật bởi các agent khác có yêu cầu.
Hình 10: Đăng ký dịch vụ với facilitator agent.