使用 Amazon Bedrock AgentCore 構建蛋白質研究助手
本文展示瞭如何構建一個對話式蛋白質研究助手,它結合了自然語言查詢解析、蛋白質嵌入向量相似度搜尋和AI生成的科學摘要,幫助研究人員高效地在大數據集中搜尋結構相似的肽段。
蛋白質研究人員面臨一個耗時的挑戰:手動搜尋數千條肽序列以尋找結構相似的候選物既慢又容易出錯,並且需要深厚的領域知識來解釋結果。構建一個蛋白質研究助手可以改變研究人員在大數據集中搜尋結構相似肽的方式——在一個對話介面中實現自然語言查詢、自動嵌入生成和AI驅動的結果摘要。
本文介紹如何使用 Amazon Bedrock AgentCore 構建一個對話式蛋白質研究助手,該助手結合了三種能力:
- 自然語言查詢解析,提取結構化搜尋引數。
- 使用專用語言模型對蛋白質嵌入進行向量相似度搜尋。
- AI生成的科學摘要。
該系統使用 Strands Agents SDK 協調一個代理內的三個專用工具,部署到 Amazon Bedrock AgentCore 用於生產服務,並將肽嵌入儲存在帶有 pgvector 的 Amazon Aurora PostgreSQL-Compatible Edition 中。
前提條件
要跟隨本文操作,您需要:
- 一個 AWS 賬戶,具備 Amazon Bedrock 基礎模型(Anthropic Claude Sonnet 4.6)的訪問許可權。
- Python 3.12 或更高版本。
- 配置了適當憑證的 AWS CLI。
- Amazon Bedrock、Amazon SageMaker AI、Amazon Aurora、Amazon ECS 和 AWS CodeBuild 的 IAM 許可權。
- 安裝 bedrock-agentcore-starter-toolkit(pip install bedrock-agentcore-starter-toolkit)。
- IEDB 病毒表位資料集。
預計部署時間:30-45分鐘;請檢視 AWS 定價頁面瞭解 Bedrock、SageMaker AI、Aurora Serverless v2 和 AWS Fargate 的成本估算。
解決方案概覽
該助手採用工具使用模式,一個 Strands 代理協調三個專用工具來處理完整的研究工作流。當研究人員提交自然語言查詢時,代理將其解析為結構化引數,使用蛋白質嵌入搜尋相似肽,並以科學背景總結結果。
架構包含五個元件:
- Streamlit 前端:執行在 AWS Fargate 上,提供對話介面,將查詢傳送到 AgentCore 執行時,並以結構化格式顯示結果(含可下載表格)。
- Strands 代理:執行在單個 Amazon Bedrock AgentCore 執行時中,協調工作流。該代理透過 Bedrock Converse API 使用 Anthropic Claude Sonnet 4.6,並透過 @tool 裝飾器訪問三個工具。
- 解析器工具:使用專門的 Strands 代理(LLM作為解析器模式)從自然語言查詢中提取結構化搜尋引數——序列、物種過濾器、結果數量限制。
- 搜尋器工具:透過執行 ESM-C 300M 的 Amazon SageMaker AI serverless 端點生成蛋白質嵌入,然後對帶有 pgvector 的 Amazon Aurora PostgreSQL 進行餘弦相似度搜尋。
- 摘要器工具:使用另一個專門的 Strands 代理分析搜尋結果,生成簡潔的科學摘要和進一步研究的建議。
這種單一執行時、多工具設計保持了部署的簡單性,同時保持了明確的關注點分離。每個工具封裝一個獨特的能力,編排代理根據使用者查詢決定何時以及如何呼叫它們。
蛋白質嵌入與 ESM-C 300M
相似度搜尋的核心是 ESM-C 300M,一個來自 EvolutionaryScale 的蛋白質語言模型,它生成 960 維嵌入,捕捉氨基酸序列的結構和功能特性。具有相似生物學功能的兩個肽會在向量空間中產生接近的嵌入,從而無需序列比對即可進行相似度搜尋。
ESM-C 300M 作為 Amazon SageMaker AI serverless 端點部署,空閒時縮放到零,在呼叫之間不產生成本。模型權重捆綁到部署工件中,以避免在推理時從 HuggingFace 下載——這對於冷啟動延遲至關重要的 serverless 端點來說很關鍵。
推理處理程序直接構建模型架構並載入預打包的權重。預測函式接受蛋白質序列,編碼它,並返回平均池化的嵌入。端點使用 6144 MB 記憶體和最大併發數 5 的 serverless 配置部署,使用 PyTorch 2.6.0 CPU 推理容器。
使用 Aurora PostgreSQL 和 pgvector 進行向量搜尋
肽嵌入儲存在 Amazon Aurora PostgreSQL-Compatible Edition Serverless v2 中,帶有 pgvector 擴充套件。資料庫模式簡單:一個 peptides 表,包含 id、sequence、embedding(960維向量)、properties(JSONB)和 created_at 欄位。在 embedding 列上建立 ivfflat 索引以加速餘弦相似度搜尋。
properties JSONB 列儲存生物後設資料——物種、源生物、源分子、表位位置——從而支援向量和後設資料過濾的組合。資料載入管道從 IEDB 病毒表位資料集讀取,透過 SageMaker AI 端點為每個肽序列生成嵌入,並使用 Amazon RDS Data API 插入資料庫。
資料庫訪問透過 Amazon RDS Data API 進行,這意味著代理執行時不需要與資料庫的直接網路連線——它透過 HTTPS 通訊,簡化了 AgentCore 部署的網路要求。
使用 Strands Agents SDK 構建代理
Strands Agents SDK 提供了構建工具使用代理的簡潔抽象。每個工具都是一個用 @tool 裝飾的 Python 函式,代理自動從函式的文件字串和型別提示中生成 LLM 的工具描述。
工具定義如下:
- 解析器工具:代理一個專門的 Strands 代理作為結構化輸出提取器。
- 搜尋器工具:結合 SageMaker AI 嵌入生成和 pgvector 相似度搜尋。
- 摘要器工具:使用另一個專門的 Strands 代理進行科學分析。
編排代理接收使用者查詢並決定呼叫哪些工具以及順序。對於每個使用者查詢,工作流是:首先呼叫 parse_peptide_query 提取序列和引數,然後呼叫 search_similar_peptides 進行搜尋,最後呼叫 summarize_results 生成摘要。
部署步驟
部署涉及使用 AWS CDK 或 CloudFormation 模板設定基礎架構,包括 VPC、資料庫、SageMaker 端點和 ECS 服務。本文提供了逐步說明,但建議檢視完整部落格文章以獲取詳細部署指南。
最終,您將構建一個端到端的代理應用程式,演示如何解析自然語言、部署自定義 ML 模型、結合向量搜尋和後設資料過濾,以及編排多個專用工具。