Hiện đại hóa ứng dụng của bạn với Amazon Bedrock AgentCore Gateway và sức mạnh từ Kiro

Tác giả: Ebrahim (EB) Khiyami và Ryan Peterson
Ngày phát hành: 06 FEB 2026
Chuyên mục: Amazon Bedrock, Amazon Bedrock AgentCore, Generative AI, Kiro, Technical How-to

Trong bài đăng blog này, tôi sẽ trình bày một mô hình để hiện đại hóa ứng dụng hiện có của bạn bằng cách thêm khả năng AI tác nhân (agentic AI) vào đó mà không cần chạm vào mã nguồn của ứng dụng kế thừa của bạn. Tôi sẽ thực hiện điều đó bằng cách giảm tải công việc nặng nhọc của quá trình chuyển đổi này cho Amazon Bedrock AgentCore GatewayKiro powers. Với mục đích của bản demo này, tôi sẽ sử dụng một ứng dụng mô phỏng có tên Train Travel mà bạn có thể xem trong kho lưu trữ này.

Lưu ý – Đồng nghiệp của tôi Ryan Peterson đã trình bày một phiên bản trước của mô hình hiện đại hóa này tại re:Invent 2025. Bài đăng blog này cung cấp một cái nhìn đầy đủ hơn về giải pháp và tích hợp các tính năng mới có sẵn như Kiro powers.

Nhiều khách hàng mà tôi trò chuyện đều nhận ra tiềm năng to lớn của AI, nhưng họ thường gặp khó khăn trong việc xác định các cơ hội thực sự phù hợp với nhu cầu riêng của mình. Trong các trường hợp khác, ngăn xếp công nghệ trong tổ chức không dễ thay đổi. Có thể là các hệ thống và framework cũ, hoặc có thể các nhà phát triển ban đầu không còn ở đó nữa.

Trong bài đăng blog này, tôi giới thiệu một mô hình dễ dàng giúp khách hàng lấy các ứng dụng của họ (trong ví dụ này là ứng dụng Train Travel) và thêm một lớp AI tác nhân để mở khóa các khả năng AI trên ứng dụng hiện có. Vì phương pháp này sử dụng mã ứng dụng hiện có, nó có thể dễ thực hiện hơn so với phương pháp tiếp cận greenfield để xây dựng Proof-of-Concept (POC) từ đầu. Đây là một ví dụ về lộ trình hiện đại hóa “Move to AI”. Để biết thêm chi tiết về lộ trình này, hãy xem Giới thiệu lộ trình hiện đại hóa ‘Move to AI’ của AWS: Chuyển đổi danh mục ứng dụng của bạn bằng AI

Cách thêm lớp AI tác nhân vào ứng dụng của bạn

Trong quá trình này, chúng ta thêm một AI agent nằm ở giữa ứng dụng của bạn và người dùng của nó. AI agent sẽ có nhiều khả năng hơn là chỉ trò chuyện với người dùng. Dựa trên thiết kế của bạn, agent sẽ nhận và phân tích yêu cầu của người dùng, gọi Large Language Model (LLM), kiểm tra xem nó có cần gọi một công cụ bên ngoài (như một API từ ứng dụng của bạn) hay không, thực thi công cụ nếu cần, và gọi LLM một lần nữa với kết quả. Nó lặp lại vòng lặp tác nhân này cho đến khi nó hoàn thành thành công yêu cầu của người dùng.

Để làm điều này, tôi cần làm việc trên hai phần. Phần đầu tiên là backend, bao gồm việc thêm một lớp bao bọc xung quanh các API hiện có của tôi để agent có thể sử dụng chúng. Phần thứ hai là frontend: chính AI agent.

1. Triển khai Backend

Phần đầu tiên của giải pháp là xây dựng cơ sở hạ tầng backend. Trong ngữ cảnh này, backend bao gồm mã ứng dụng được bao bọc trong một định dạng mà AI agent có thể hiểu và tương tác, bao gồm xác thực agent, cơ chế quan sát và một gateway nhận các yêu cầu của AI agent và xử lý chúng thông qua vòng lặp AI tác nhân được giải thích trong phần trước.

Model Context Protocol (MCP) đóng vai trò là tiêu chuẩn để kết nối AI agent với các hệ thống và ứng dụng bên ngoài. MCP yêu cầu ba thành phần cốt lõi: một MCP Client, một MCP Server và MCP Tools (có thể bao gồm các hoạt động tệp, cuộc gọi API và truy vấn cơ sở dữ liệu). Quá trình triển khai bao gồm việc chuyển đổi mã, API và công cụ hiện có của bạn sang định dạng tương thích với MCP mà server có thể cung cấp cho AI agent.

Để hợp lý hóa quá trình chuyển đổi này, chúng tôi tận dụng Amazon Bedrock AgentCore Gateway, một dịch vụ được quản lý hoàn toàn kết nối AI agent với các công cụ và dịch vụ. AgentCore Gateway đóng vai trò là một tool server tập trung, cung cấp một giao diện hợp nhất nơi các agent có thể khám phá, truy cập và gọi các công cụ trong khi cung cấp hỗ trợ nguyên bản cho MCP. Nó chấp nhận nhiều loại mục tiêu, bao gồm API và các hàm AWS Lambda, với các mục tiêu bổ sung có sẵn trong tài liệu.

Đối với bài đăng blog này, chúng tôi sẽ tập trung vào API làm loại mục tiêu chính. Lợi ích chính của việc sử dụng AgentCore Gateway là nó loại bỏ nhu cầu viết mã tùy chỉnh để chuyển đổi API sang MCP tools. Bạn chỉ cần cung cấp cho Gateway các thông số kỹ thuật OpenAPI. Gateway sau đó hoạt động như một MCP server, tự động xử lý lớp dịch giữa các RESTful APIs của bạn và AI agent.

2. Triển khai Frontend (AI Agent)

Thành phần frontend bao gồm việc xây dựng một AI agent hoạt động như một MCP client. Agent này nhận yêu cầu của người dùng và gửi chúng đến LLM để xử lý. LLM đánh giá xem nó có thể hoàn thành yêu cầu trực tiếp hay cần gọi các công cụ bên ngoài thông qua MCP Server (Gateway) để xử lý bổ sung.

Để xây dựng AI agent, tôi sử dụng Kiro (một Agentic IDE) được tăng cường với Kiro powers. Kiro powers là các tiện ích mở rộng cung cấp ngữ cảnh chuyên biệt theo miền, các phương pháp hay nhất, ví dụ và tài liệu cho Kiro, cho phép nó hoàn thành các tác vụ mã hóa một cách xác định hơn và với độ chính xác cao hơn.

Đối với bản demo này, tôi tận dụng Strands Agent SDK Power, trang bị cho Kiro tất cả kiến thức và khả năng cần thiết để xây dựng AI agent của tôi bằng cách sử dụng Strands Agents SDK.

Ứng dụng kế thừa: Train Travel

Tôi sẽ sử dụng một ứng dụng mẫu OpenAPI cho Train Travel. Tôi đã tải xuống ứng dụng và đóng gói nó dưới dạng một container chạy trên ECS Fargate và làm cho nó có thể truy cập được bằng Application Load Balancer. Đối với bản demo này, bạn cần một URL thực tế cho ứng dụng. Giả sử đó là: my-train-travel.com.

Ứng dụng hiện có 4 RESTful APIs (get_statistics, get_trips, create_booking, get_bookings) và nó trông như thế này:


Hình 1: Ứng dụng mẫu

Kiến trúc mục tiêu

Bằng cách kết nối AgentCore Gateway với các schema OpenAPI từ RESTful API của ứng dụng Train Travel, nó tự động quản lý lớp tương thích MCP. Hoạt động như một MCP server, Gateway dịch các yêu cầu đến từ AI agent thành các cuộc gọi HTTP đến các API cơ bản, đồng thời quản lý định dạng phản hồi và xác thực một cách liền mạch. Sau khi Gateway được tạo, bạn sẽ nhận được một điểm cuối URL cung cấp cho agent (hoạt động như MCP client) quyền truy cập vào tất cả logic nghiệp vụ và công cụ trong ứng dụng Train Travel.

Kiến trúc mục tiêu được mô tả trong sơ đồ này.

Trong phần tiếp theo, tôi sẽ hướng dẫn bạn các bước để xây dựng nó.


Hình 2: Kiến trúc mục tiêu

Hướng dẫn giải pháp

Triển khai Backend

Tạo Gateway (MCP Server)

  1. Mở bảng điều khiển Amazon Bedrock AgentCore. Từ ngăn điều hướng bên trái, chọn Gateways. Chọn Create gateway. Đặt tên và mô tả cho nó.
  2. Cấu hình xác thực đầu vào (Inbound Authentication): Trong phần cấu hình Inbound Auth, chọn Quick create configurations with Cognito. Thao tác này sẽ tạo một nhà cung cấp danh tính mới. Nếu bạn đã có một cái, bạn có thể chọn Use existing identity provider configurations. Bước này kiểm soát xác thực từ người gọi (agent) đến Gateway. Bạn có thể cấu hình nó bằng IAM hoặc JSON web tokens (ví dụ: OAuth tokens) từ nhà cung cấp danh tính của bạn.


Hình 3: Tạo một gateway

  1. Đặt quyền (Permissions): Trong phần Permissions, chọn Create và sử dụng một vai trò dịch vụ mới. Sử dụng một vai trò dịch vụ IAM để gọi gateway thay mặt người dùng.


Hình 4: Đặt quyền

  1. Cấu hình mục tiêu (Target): Đối với Target, chọn REST API làm mục tiêu. Chọn OpenAPI schema làm loại. Để cung cấp schema, tải nó lên một S3 bucket hoặc chọn Define an inline schema.


Hình 5: Mục tiêu Gateway

Tôi đã tải xuống thông số kỹ thuật OpenAPI từ kho lưu trữ dự án. Sau đó, tôi đã sửa đổi tệp openapi.yaml để nó trỏ đến URL ứng dụng của tôi (ví dụ: my-train-travel.com).

Cũng có một số cân nhắc đối với các thông số kỹ thuật OpenAPI để tương thích với AgentCore Gateway. Bạn có thể kiểm tra chi tiết trong các mục tiêu schema OpenAPI cho AgentCore Gateway. Tôi cũng cung cấp URL ứng dụng Train travel trong tệp để Gateway có thể bắt đầu dịch.

Đây là cách tệp thông số kỹ thuật OpenAPI cuối cùng sẽ trông như thế nào dựa trên cấu hình của tôi:


Hình 6: Schema cho OpenAPI

Đối với bước này, điều quan trọng là thông số kỹ thuật OpenAPI của bạn phải được tài liệu hóa tốt với các mô tả rõ ràng cho từng điểm cuối, tham số và phản hồi. Tài liệu bạn cung cấp trong thông số kỹ thuật OpenAPI trở thành mô tả công cụ và thông tin khả năng mà MCP client (AI agent của bạn) thấy khi truy vấn các công cụ có sẵn.

Khi agent nhận được yêu cầu của người dùng, nó sẽ kiểm tra các mô tả công cụ này để xác định công cụ nào phù hợp và cách sử dụng chúng một cách hiệu quả. Các mô tả được viết tốt với giải thích tham số rõ ràng giúp agent đưa ra quyết định lựa chọn công cụ tốt hơn, dẫn đến việc xử lý yêu cầu chính xác và hiệu quả hơn. Các API được tài liệu hóa kém có thể dẫn đến việc agent hiểu sai khả năng của công cụ hoặc không chọn được công cụ thích hợp cho một tác vụ nhất định.

  1. Cấu hình xác thực (Authentication): Bước cuối cùng trước khi mục tiêu sẵn sàng là xác định cách agent, công cụ hoặc Gateway truy cập các tài nguyên hạ nguồn. Bạn có thể chọn API Key hoặc OAuth client. Để đơn giản, tôi chọn một API key mà tôi đã tạo. Nếu bạn chưa có, bạn có thể tạo một cặp và sử dụng chúng. Chọn Create.


Hình 7: Cấu hình OAuth

Sau khi gateway được tạo và trạng thái hiển thị Ready, nó sẽ cung cấp cho bạn một URL tài nguyên Gateway.

Đây sẽ là URL của MCP server mà AI agent của tôi sẽ cần kết nối.

Hãy ghi lại nó. Nó sẽ trông như thế này:

https://train-travel-xx.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp


Hình 8: URL tài nguyên Gateway

  1. Ghi lại thông tin đăng nhập OAuth: Trước khi bạn rời khỏi AWS Console, bạn cần ghi lại OAuth token được tạo cho ứng dụng của chúng ta bởi Cognito trong bước Configure Inbound Authentication (bước 2). Chúng ta cần cung cấp thông tin này cho agent để xác thực và có thể gọi Gateway. Đi tới Amazon Cognito và trong phần Application, tìm App clients. Trong phần App client information, sao chép Client IDClient secret.


Hình 9: Client ID

Vậy là xong. Bạn vừa tạo một MCP server và MCP tools có thể truy cập các ứng dụng của bạn.

Bây giờ chúng ta đã có MCP server sẵn sàng, hãy tạo một MCP client để hoàn thành chu trình.

Triển khai Frontend

Tôi sẽ sử dụng Kiro để vibe code AI agent. Bạn có thể làm theo hướng dẫn trong cài đặt Kiro để biết thêm chi tiết về cách cài đặt.

Để tạo một AI agent, tôi sẽ sử dụng Strands Agents SDK.

Với vibe coding, Agentic IDE (Kiro trong trường hợp này) sẽ cố gắng đáp ứng yêu cầu của tôi dựa trên kiến thức hiện có của nó. Tuy nhiên, do bản chất không xác định của LLM, sẽ có một số phỏng đoán liên quan, và nó có thể đưa ra các quyết định không phù hợp với yêu cầu ứng dụng hoặc chính sách tổ chức của tôi.

Để loại bỏ sự không chắc chắn này, tôi cần cung cấp cho Kiro hướng dẫn cụ thể thông qua một chức năng mới gọi là Kiro powers. Kiro power là một bộ sưu tập tài liệu, hướng dẫn, các phương pháp hay nhất, MCP server và ví dụ được tuyển chọn, tập trung vào một chủ đề cụ thể. Nó hoạt động như một chuyên gia miền ngồi cạnh Kiro và hướng dẫn hành vi của nó. Powers chỉ được kích hoạt khi cần thiết một cách rõ ràng. Điều này cũng giúp quản lý hiệu quả sử dụng cửa sổ ngữ cảnh của tôi.

  1. Cài đặt Kiro power: Trong cửa sổ Kiro, tôi chọn biểu tượng Power ở phía bên trái. Như bạn có thể thấy, có nhiều power có sẵn. Tôi cài đặt Strands Agent Power.


Hình 10: Kiro powers

  1. Tạo agent Tiếp theo, tôi yêu cầu Kiro viết một agent đơn giản bằng cách sử dụng lời nhắc này: "Use AWS Strands Agent SDK to write a simple terminal-based AI agent that connects to MCP tools available at this endpoint:https://train-travel-x.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp" Kiro sẽ kích hoạt power tôi đã cài đặt và tạo một Strands agent bằng cách sử dụng các phương pháp hay nhất mới nhất.
  2. Cấu hình xác thực Sau khi hoàn tất, tôi cung cấp các bí mật xác thực mà tôi đã ghi lại trong bước Note OAuth Credentials từ Bước 6 trong phần triển khai backend.


Hình 12: Xác thực agent

Bây giờ, tôi đã sẵn sàng để kiểm tra agent. Trong terminal Kiro, tôi gõ

Python3.11 simple_agent.py

Tôi bắt đầu hỏi về các chuyến đi có sẵn giữa các thành phố, và khi tôi tìm thấy một chuyến, tôi yêu cầu agent đặt chỗ cho tôi.

Bạn có thể xem video ngắn này để xem bản demo nhanh.


Hình 13: Kiểm tra agent

Các bước tiếp theo

Sau khi bạn đã xây dựng một AI agent cơ bản có thể trả lời các câu hỏi của người dùng liên quan đến logic nghiệp vụ của bạn, bạn có thể nâng cấp nó lên cấp độ tiếp theo bằng cách:

  • Triển khai nó lên AWS dưới dạng một agent được quản lý hoàn toàn – Bạn có thể triển khai nó lên AWS bằng cách sử dụng Amazon Bedrock AgentCore Runtime
  • Triển khai bộ nhớ – Cho phép agent ghi nhớ các cuộc trò chuyện trước đó bằng cách sử dụng AgentCore Memory
  • Chạy quan sát – Giám sát các tương tác backend bằng cách sử dụng AgentCore Observability

Mặc dù việc triển khai các tính năng bổ sung này nằm ngoài phạm vi của bài đăng blog này, bạn có thể kiểm tra blog về Trí tuệ nhân tạo của AWS để xem các ví dụ triển khai.

Kết luận

Trong bài đăng này, chúng tôi đã trình bày cách hiện đại hóa một ứng dụng kế thừa bằng cách thêm các khả năng AI tác nhân thông qua Amazon Bedrock AgentCore Gateway và Kiro powers. Chúng tôi đã xây dựng một MCP server bằng AgentCore Gateway để cung cấp các RESTful APIs của ứng dụng Train Travel dưới dạng các công cụ tương thích MCP, sau đó tạo một AI agent bằng Kiro và Strands Agent SDK để hoạt động như một MCP client. Mô hình này cho phép bạn giới thiệu các khả năng AI tác nhân cho khách hàng của mình mà không cần thay đổi mã nguồn, không cần quản lý cơ sở hạ tầng để chạy MCP server và các công cụ, và không cần công việc nặng nhọc để chuyển đổi mã hiện có của bạn thành các công cụ tương thích MCP.

Mặc dù ứng dụng thực tế của bạn trong tổ chức có thể phức tạp hơn, mục đích của bản demo này là để cho bạn thấy nghệ thuật của những điều khả thi và để cho phép nhóm của bạn bắt đầu thảo luận về những khả năng tồn tại ngày nay để giới thiệu AI vào các hệ thống kế thừa.

Hãy bình luận hoặc kết nối trực tiếp với tôi nếu bạn có thêm câu hỏi. Hẹn gặp lại trong bài tiếp theo!

Về tác giả


Ebrahim (EB) Khiyami
EB là Kiến trúc sư Giải pháp Chuyên gia tại AWS, tập trung vào chuyển đổi doanh nghiệp, di chuyển, hiện đại hóa và tăng tốc AI.


Ryan Peterson
Ryan Peterson (RP) là Trưởng nhóm Công nghệ Toàn cầu về Hiện đại hóa tại AWS có trụ sở tại Irvine, CA. RP dẫn dắt một cộng đồng thực hành nội bộ bao gồm các Kiến trúc sư Giải pháp chuyên gia hiện đại hóa, Quản lý Tài khoản Kỹ thuật, Quản lý Thành công Khách hàng và Kiến trúc sư ProServe.

Leave a comment