Tác giả: Jagdeep Singh Soni, Aniketh Manjunath, Krishna Gourishetti, Sarthak Handa, Ishan Singh, và Rupinder Grewal
Ngày đăng: 25 tháng 3 năm 2025
Danh mục: Amazon Bedrock, Artificial Intelligence, Intermediate (200)
Amazon Bedrock công bố ra mắt bản xem trước (preview) của Session Management APIs, một tính năng mới cho phép các nhà phát triển đơn giản hóa việc quản lý trạng thái và ngữ cảnh cho các ứng dụng GenAI (generative AI) được xây dựng bằng các framework (khung) mã nguồn mở phổ biến như LangGraph và LlamaIndex. Session Management APIs cung cấp một giải pháp sẵn có giúp các nhà phát triển quản lý an toàn trạng thái và ngữ cảnh cuộc trò chuyện trong các luồng công việc GenAI nhiều bước, giảm bớt nhu cầu xây dựng, bảo trì hoặc mở rộng các giải pháp backend tùy chỉnh. Trong bài viết này, chúng tôi thảo luận về Session Management APIs mới và cách quản lý trạng thái phiên trong các ứng dụng GenAI của bạn.
Bằng cách duy trì trạng thái phiên giữa các tương tác, Session Management APIs nâng cao tính liên tục của luồng công việc, hỗ trợ các ứng dụng GenAI, như trợ lý ảo và các luồng công việc nghiên cứu đa agent (multi-agent), yêu cầu ngữ cảnh liên tục trong các tương tác kéo dài. Các nhà phát triển có thể sử dụng khả năng này để đánh dấu các giai đoạn quy trình làm việc, lưu trạng thái trung gian, và tiếp tục các tác vụ từ các điểm thất bại hoặc gián đoạn. Ngoài ra, họ có thể tạm dừng và phát lại phiên và sử dụng các dấu vết chi tiết để gỡ lỗi và cải thiện các ứng dụng GenAI của họ. Bằng cách xem các phiên (sessions) là một tài nguyên hạng nhất (first-class resource), tính năng này cho phép các nhà phát triển thực thi kiểm soát truy cập chi tiết thông qua AWS Identity and Access Management (IAM) và mã hóa dữ liệu bằng AWS Key Management Service (AWS KMS), đảm bảo rằng dữ liệu từ các phiên người dùng khác nhau được cách ly an toàn và hỗ trợ các ứng dụng đa người thuê (multi-tenant) với các biện pháp bảo vệ quyền riêng tư mạnh mẽ.
Xây dựng các ứng dụng GenAI yêu cầu nhiều hơn là các cuộc gọi API mô hình. Các ứng dụng của bạn phải xử lý lịch sử cuộc trò chuyện, sở thích người dùng, theo dõi trạng thái và thay đổi ngữ cảnh. Khi các ứng dụng này phát triển về phía phức tạp, quản lý trạng thái mạnh mẽ trở nên quan trọng. Một số lý do chính bao gồm:
- Sự nhất quán về ngữ cảnh – Duy trì trạng thái đảm bảo rằng ứng dụng có thể theo dõi dòng thông tin, dẫn đến các đầu ra mạch lạc và phù hợp với ngữ cảnh hơn.
- Theo dõi tương tác người dùng – Trong các ứng dụng tương tác, quản lý trạng thái cho phép hệ thống nhớ các đầu vào và sở thích của người dùng, tạo điều kiện cho các trải nghiệm cá nhân hóa.
- Tối ưu hóa tài nguyên – Quản lý trạng thái hiệu quả giúp phân bổ tài nguyên tính toán một cách hiệu quả, đảm bảo rằng ứng dụng chạy mượt mà mà không có sự dư thừa không cần thiết.
- Xử lý lỗi và phục hồi – Các nhà phát triển có thể sử dụng khả năng này để đánh dấu các giai đoạn quy trình làm việc, lưu trạng thái trung gian, và tiếp tục các tác vụ từ các điểm thất bại hoặc gián đoạn.
Trong bài viết này, chúng tôi thảo luận về Session Management APIs mới và cách quản lý trạng thái phiên trong các ứng dụng GenAI của bạn.
Bối cảnh
Việc duy trì trạng thái lâu dài (State persistence) trong các ứng dụng GenAI đề cập đến khả năng duy trì và nhớ lại thông tin qua nhiều tương tác. Điều này rất quan trọng để tạo ra các trải nghiệm mạch lạc và phù hợp với ngữ cảnh. Một số thông tin mà bạn có thể cần duy trì bao gồm:
- Thông tin người dùng – Các chi tiết cơ bản về người dùng, như ID, sở thích hoặc lịch sử
- Lịch sử cuộc trò chuyện – Bản ghi lại các tương tác trước đó trong phiên hiện tại
- Điểm đánh dấu ngữ cảnh – Chỉ báo về chủ đề hiện tại, ý định hoặc giai đoạn trong một cuộc trò chuyện đa vòng
- Trạng thái ứng dụng – Trạng thái hiện tại của các quy trình hoặc workflow đang diễn ra
Việc sử dụng hiệu quả các thuộc tính phiên cho phép cá nhân hóa bằng cách định hình các phản hồi dựa trên cuộc trò chuyện đang diễn ra, liên tục bằng cách cho phép các cuộc trò chuyện tiếp tục từ nơi chúng đã dừng lại ngay cả sau khi bị gián đoạn, và xử lý tác vụ phức tạp bằng cách quản lý các quy trình đa bước hoặc cây quyết định một cách hiệu quả. Những khả năng này tăng cường trải nghiệm người dùng và chức năng tổng thể của các ứng dụng GenAI.
Thách thức
Triển khai quản lý trạng thái mạnh mẽ trong các ứng dụng GenAI đặt ra một số thách thức liên quan. Hệ thống phải xử lý việc duy trì và truy xuất trạng thái trong vài mili giây để duy trì các cuộc trò chuyện trôi chảy. Khi lưu lượng truy cập tăng lên và dữ liệu ngữ cảnh mở rộng, quản lý trạng thái cũng cần phải mở rộng hiệu quả.
Khi bạn xây dựng hệ thống quản lý trạng thái của riêng mình, bạn cần triển khai các dịch vụ và cơ sở hạ tầng backend xử lý các hoạt động duy trì, tạo điểm kiểm tra và truy xuất. Đối với bài viết này, chúng tôi xem xét LangGraph để thảo luận về các khái niệm về bộ nhớ ngắn hạn và các tùy chọn có sẵn. Bộ nhớ ngắn hạn lưu trữ thông tin trong một luồng hội thoại duy nhất, được quản lý như một phần của trạng thái của agent và được duy trì bằng các điểm kiểm tra trong phạm vi luồng (thread-scoped checkpoints). Bạn có thể duy trì bộ nhớ ngắn hạn trong một cơ sở dữ liệu như PostgreSQL bằng cách sử dụng kết nối đồng bộ hoặc không đồng bộ. Tuy nhiên, bạn cần thiết lập cơ sở hạ tầng, triển khai quản lý dữ liệu và kích hoạt bảo mật và giám sát.
Tổng quan giải pháp
Session Management APIs trong Amazon Bedrock cung cấp một giải pháp toàn diện giúp hợp lý hóa việc phát triển và triển khai các ứng dụng GenAI bằng cách giảm bớt nhu cầu thiết lập và bảo trì cơ sở hạ tầng tùy chỉnh. Tính năng này không chỉ giảm thiểu sự phức tạp trong việc xử lý duy trì dữ liệu, truy xuất, và tạo điểm kiểm tra (checkpointing), mà còn cung cấp các tính năng bảo mật cấp doanh nghiệp với khả năng cách ly tenant tích hợp. Bạn có thể chuyển giao (offload) phần việc nặng nhọc là quản lý trạng thái và ngữ cảnh của các giải pháp GenAI tự xây dựng của mình cho Session Management APIs, trong khi vẫn sử dụng công cụ OSS yêu thích của bạn. Điều này sẽ tăng tốc quá trình triển khai các giải pháp GenAI an toàn và có khả năng mở rộng.
Session Management APIs cũng hỗ trợ các tình huống với sự can thiệp của con người, nơi cần có sự can thiệp thủ công trong các quy trình làm việc tự động. Ngoài ra, nó cung cấp các tính năng gỡ lỗi và theo dõi chi tiết, duy trì các log thực thi chi tiết để giải quyết sự cố và tuân thủ. Khả năng nhanh chóng lấy lại và phân tích dữ liệu phiên cho phép các nhà phát triển tối ưu hóa các ứng dụng của họ dựa trên các mô hình sử dụng thực tế và các đo lường hiệu suất.
Để hiểu cách Session Management APIs tích hợp với các ứng dụng LangGraph, chúng ta hãy xem xét dòng chảy cấp cao sau đây.

Trường hợp sử dụng ví dụ
Để chứng tỏ sức mạnh và sự đơn giản của Session Management APIs, chúng ta hãy xem qua một ví dụ thực tế về việc xây dựng trợ lý mua giày. Chúng tôi sẽ chỉ ra cách BedrockMemorySaver cung cấp một giải pháp đánh dấu tùy chỉnh được hỗ trợ bởi Session Management APIs. Mã hoàn chỉnh cho ví dụ này có sẵn trong kho lưu trữ GitHub của AWS Samples.
Trước tiên, hãy hiểu cách Session Management APIs hoạt động với ứng dụng của chúng ta, như được minh họa trong sơ đồ sau đây.

Luồng quy trình này cho thấy mỗi tương tác của người dùng tạo ra một lệnh gọi (invocation) mới trong phiên, duy trì ngữ cảnh hội thoại và tự động duy trì trạng thái, trong khi ứng dụng LangGraph tập trung vào logic nghiệp vụ. Sự tích hợp liền mạch giữa các thành phần này cho phép tạo ra các cuộc hội thoại có trạng thái phức tạp mà không cần sự phức tạp của việc quản lý cơ sở hạ tầng để duy trì trạng thái và ngữ cảnh.
Tiền đề
Để theo dõi bài viết này, bạn cần một tài khoản AWS với quyền phù hợp.
Cài đặt môi trường
Chúng tôi sử dụng mã sau để cài đặt môi trường:
%pip install -U langgraph_checkpoint_aws
import boto3
from langgraph_checkpoint_aws.saver import BedrockSessionSaver
# Configure Bedrock client
bedrock_client = boto3.client("bedrock-runtime", region_name="="<aws_region>")
Khởi tạo mô hình
Đối với mô hình ngôn ngữ lớn (LLM) của chúng tôi, chúng tôi sử dụng Anthropic’s Claude 3 Sonnet trên Amazon Bedrock:
from langchain_aws import ChatBedrockConverse
llm = ChatBedrockConverse(
model="anthropic.claude-3-sonnet-20240229-v1:0",
temperature=0,
max_tokens=None,
client=bedrock_client,
)
Thiết lập các công cụ
Trợ lý của chúng tôi cần các công cụ để tìm kiếm cơ sở dữ liệu sản phẩm và quản lý giỏ hàng mua sắm. Các công cụ này có thể sử dụng thông tin được lưu trong phiên người dùng:
from langchain_core.tools import tool
@tool
def search_shoes(preference):
"""Search for shoes based on user preferences and interests."""
return pass
Thiết lập Session Management APIs
Chúng tôi sử dụng mã sau để tích hợp Session Management APIs:
# Initialize session saver
session_saver = BedrockSessionSaver(
region_name="<aws_region>",
)
# Compile graph with session management
graph = graph_builder.compile(checkpointer=session_saver)
# Create a new session
session_id = session_saver.session_client.client.create_session()[“sessionId”]
Chạy cuộc trò chuyện
Giờ đây, chúng tôi có thể chạy cuộc trò chuyện có trạng thái:
config = {"configurable": {"thread_id": session_id}}
while True:
user_input = input("User: ")
if user_input.lower() in ["quit", "exit", "q"]:
print("Goodbye!")
break
for event in graph.stream(
{"messages": [("user", user_input)]},
config
):
for value in event.values():
if isinstance(value["messages"][-1], BaseMessage):
print("Assistant:", value["messages"][-1].content)
Truy cập lịch sử phiên
Bạn có thể nhanh chóng lấy lịch sử cuộc trò chuyện bằng cách sử dụng đối tượng graph:
for i in graph.get_state_history(config, limit=5):
print(i)
Mặc dù rất đơn giản để truy cập dữ liệu bằng BedrockSessionSaver trong LangGraph, nhưng có những trường hợp bạn cần truy cập dữ liệu phiên trực tiếp—cho dù là để kiểm tra hoặc xử lý bên ngoài. Session Management APIs cung cấp chức năng này, tuy nhiên điều quan trọng cần lưu ý là dữ liệu lấy được ở dạng serialized. Để làm việc với dữ liệu này một cách có ý nghĩa, bạn cần thực hiện quá trình deserialization trước:
# List all invocation steps
steps = client.list_invocation_steps(
sessionIdentifier=session_id,
)
# Get specific step details
step_details = client.get_invocation_step(
sessionIdentifier=session_id,
invocationIdentifier="your-invocation-id",
invocationStepId="your-step-id",
)
Phát lại (Replay) và phân nhánh (fork) hành động
Bạn có thể muốn phân tích các bước để hiểu lý do, gỡ lỗi hoặc thử các đường dẫn khác nhau. Bạn có thể gọi đồ thị với một điểm kiểm tra (checkpoint) để phát lại (replay) các hành động cụ thể từ điểm đó:
config_replay = {
"configurable": {
"thread_id": session_id,
"checkpoint_id": "<checkpoint_id>",
}
}
for event in graph.stream(None, config_replay, stream_mode="values"):
print(event)
Đồ thị sẽ phát lại các bước đã được thực thi trước đó trước checkpoint_id đã cung cấp và thực hiện các bước sau checkpoint_id.
Bạn cũng có thể thử phân nhánh (forking) để xem lại các hành động trong quá khứ của agent và khám phá các đường dẫn khác nhau trong đồ thị:
config = {
"configurable": {
"thread_id": session_id,
"checkpoint_id": "<checkpoint_id>",
}
}
graph.update_state(config, {"state": "updated state"})
Người trong vòng lặp
Các mô hình tương tác người trong vòng lặp (HITL) cho phép đồ thị dừng lại ở các bước cụ thể và tìm kiếm sự đồng ý của người dùng trước khi tiếp tục. Điều này quan trọng nếu bạn phải xem xét các cuộc gọi công cụ cụ thể. Trong LangGraph, các điểm dừng được xây dựng trên các checkpoint, chúng lưu trạng thái của đồ thị sau mỗi lần thực thi nút. Bạn có thể sử dụng Session Management APIs để triển khai HITL một cách hiệu quả trong đồ thị của bạn.
Ví dụ này chứng minh cách Session Management APIs tích hợp liền mạch với LangGraph để tạo ra một cuộc trò chuyện có trạng thái duy trì ngữ cảnh giữa các tương tác. Session Management APIs xử lý sự phức tạp của việc duy trì trạng thái, cho phép bạn tập trung vào việc xây dựng logic cuộc trò chuyện.
Toàn bộ mã có sẵn trong kho lưu trữ GitHub của AWS Samples. Bạn có thể sao chép và thử nghiệm với các sửa đổi của riêng mình.
Làm sạch
Để tránh phát sinh phí liên tục, hãy làm sạch các tài nguyên bạn tạo như một phần của giải pháp này.
Các cân nhắc và thực hành tốt nhất
Khi triển khai Session Management APIs, hãy xem xét các thực hành chính này để đạt được kết quả tối ưu:
- Quản lý vòng đời phiên – Lập kế hoạch kỹ lưỡng cho vòng đời phiên, từ việc tạo đến kết thúc. Khởi tạo phiên bằng cách sử dụng CreateSession khi bắt đầu cuộc trò chuyện và đóng chúng đúng cách với EndSession khi hoàn tất. Cách tiếp cận này thúc đẩy việc sử dụng hiệu quả tài nguyên và duy trì ranh giới trạng thái sạch giữa các tương tác.
- An ninh và tuân thủ – Đối với các ứng dụng xử lý thông tin nhạy cảm, hãy triển khai các biện pháp bảo vệ dữ liệu thích hợp bằng cách sử dụng các tính năng bảo mật tích hợp của Session Management APIs. Theo mặc định, các khóa được quản lý bởi AWS được sử dụng để mã hóa phiên. Đối với các yêu cầu bảo mật bổ sung, bạn có thể mã hóa dữ liệu phiên bằng khóa quản lý của khách hàng. Sử dụng các khả năng giữ lại và xóa dữ liệu của dịch vụ để duy trì tuân thủ các quy định liên quan trong khi duy trì quản lý dữ liệu đúng cách.
Kết luận
Session Management APIs trong Amazon Bedrock cung cấp một giải pháp mạnh mẽ để xử lý trạng thái trong các ứng dụng GenAI. Bằng cách sử dụng khả năng được quản lý hoàn toàn này, các nhà phát triển có thể tập trung vào việc tạo ra các trải nghiệm AI sáng tạo mà không bị mắc kẹt trong các phức tạp của quản lý cơ sở hạ tầng. Sự tích hợp liền mạch với LangGraph tăng cường tính hữu ích của nó, cho phép phát triển và triển khai nhanh chóng các ứng dụng AI có trạng thái phức tạp.
Khi lĩnh vực GenAI tiếp tục phát triển, quản lý trạng thái mạnh mẽ sẽ ngày càng trở nên quan trọng. Session Management APIs cung cấp khả năng mở rộng (scalability), tính bảo mật và sự linh hoạt cần thiết để giúp đáp ứng các nhu cầu ngày càng tăng này, cho phép các nhà phát triển xây dựng các ứng dụng được hỗ trợ bởi AI có ý thức ngữ cảnh, cá nhân hóa và đáng tin cậy hơn.
Bằng cách áp dụng Session Management APIs, các nhà phát triển có thể tăng tốc quá trình đưa vào sản xuất, cung cấp trải nghiệm người dùng tốt hơn thông qua các tương tác nhất quán và kết hợp, và tập trung nỗ lực của họ vào các đề xuất giá trị duy nhất của các ứng dụng AI của họ thay vì các thách thức cơ sở hạ tầng cơ bản.
Hãy thử nghiệm Session Management APIs cho trường hợp sử dụng của riêng bạn và chia sẻ phản hồi của bạn trong các bình luận.
Về tác giả

Jagdeep Singh Soni là một Senior Partner Solutions Architect tại AWS có trụ sở tại Hà Lan. Ông sử dụng đam mê của mình đối với GenAI để giúp khách hàng và đối tác xây dựng các ứng dụng GenAI sử dụng các dịch vụ AWS.. Jagdeep có 15 năm kinh nghiệm trong đổi mới, kỹ thuật trải nghiệm, chuyển đổi kỹ thuật số, kiến trúc đám mây và ứng dụng ML.

Ishan Singh là một Generative AI Data Scientist tại Amazon Web Services, nơi ông giúp khách hàng xây dựng các giải pháp và sản phẩm AI sinh tạo sáng tạo và có trách nhiệm. Với nền tảng mạnh mẽ về AI/ML, Ishan chuyên xây dựng các giải pháp Generative AI để tạo giá trị kinh doanh. Ngoài giờ làm việc, ông thích chơi bóng chuyền, khám phá các đường đi xe đạp địa phương, và dành thời gian với vợ và con chó, Beau.

Rupinder Grewal là một Tech Lead Gen AI Specialist. Ông thích chơi tennis và đi xe đạp trên các đường mòn núi.

Krishna Gourishetti là một Senior Software Engineer cho đội Bedrock Agents tại AWS. Ông đam mê xây dựng các giải pháp phần mềm có khả năng mở rộng giải quyết vấn đề của khách hàng. Trong thời gian rảnh, Krishna thích đi dã ngoại.

Aniketh Manjunath là một Software Development Engineer tại Amazon Bedrock. Ông đam mê các hệ thống học máy phân phối. Ngoài giờ làm việc, ông thích đi dã ngoại, xem phim, và chơi cricket.

Sarthak Handa làm việc với tư cách là Principal Product Manager tại Amazon Web Services (AWS) AI/ML ở Seattle, Washington, nơi ông tập trung chủ yếu vào việc phát triển các dịch vụ AI để tạo điều kiện cho những tiến bộ trong ngành y tế. Trước khi làm việc tại AWS, Sarthak đã dành vài năm làm người sáng lập startup, xây dựng các giải pháp công nghệ cho các lĩnh vực y tế và cứu trợ thiên tai.