FEATURED · 精选文章

Agent Platform RAG Engine 管理实战:基于 vertexai SDK 的语料发现、上下文检索与 Grounded 生成

发布时间 / 2026/9/13 3:42:22
来源 / 创域科博编辑部
栏目 / 资讯中心
Agent Platform RAG Engine 管理实战:基于 vertexai SDK 的语料发现、上下文检索与 Grounded 生成 Agent Platform RAG Engine 管理实战基于 vertexai SDK 的语料发现、上下文检索与 Grounded 生成【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills本指南围绕 Agent Platform RAG Engine Management 这一 Skill 展开系统讲解如何在 Google Cloud Agent Platform 上使用vertexaiPython SDK 管理 RAG Engine Corpora语料库、检索 grounded 上下文并借助 Google GenAI SDK 生成以语料为依托的落地回答。读完本文你将掌握从环境初始化、语料/文件发现、语料详情检查、相似度检索到带检索工具的 grounded 生成这一完整调用链路并能遵循严格的安全确认分级与工作流决策树安全、合规地在真实项目中运行 RAG Engine 相关代码。适用边界什么时候该用这个 Skill该 Skill 面向需要在外部客户端非 Google Cloud 控制台内通过Agent Platform Python SDK操作 RAG Engine 的场景。其能力边界非常明确Skill 头部元数据metadata.description给出了精确的使用判据应当使用列出 RAG corpora 或文件、检查某个 corpus 的详情、基于查询检索 grounded 上下文、使用 RAG corpus 作为 grounding 来源生成内容。不应当使用标准数据库查询应使用 SQL/Spanner 相关 Skill、Google Workspace RAG、以及其他 RAG 产品如 gRAG。严格遵守这一边界可以避免把 RAG 引擎误当作通用数据库也避免与同类产品混用造成误判。一个关键约束贯穿全文必须使用vertexaiPython SDK 执行 RAG Engine 操作而不是直接调用原始 REST 接口或 MCP 工具因为该 Skill 的代码设计为供外部客户端运行SDK 层负责处理认证、分页与请求序列化等细节。安全与确认分级CRITICAL在替用户执行任何命令或脚本之前必须根据请求的动作类型遵守以下安全分级Tier R只读操作list_corpora、list_files、get_corpus、retrieval_query无需确认可以立即执行以收集信息或检索 grounded 上下文。Tier RC只读但消耗计算资源client.models.generate_content在执行 grounded 内容生成前必须提供Yes/No 交互式确认且确认提示必须清楚说明将要执行的生成及其关键参数如目标 corpus ID、查询文本、目标模型。仅用自然语言复述而不列出具体参数是不够的——显式列出参数是确保用户对具体资源与配置做出无歧义批准的前提。同轮限制不得在展示确认提示的同一轮中执行生成代码必须停下等待用户回复只有在得到明确 Yes/批准后才执行。金标准示例我将使用以下参数执行 grounded 内容生成请确认后再继续目标 Corpus IDprojects/123/locations/us/ragCorpora/abc目标模型gemini-2.5-pro查询文本What are the company policies on remote work?是否确认[Yes/No]这一分级与仓库中 Agent Platform GenAI Inference Skill 的 Safety Confirmation Tiers 设计一脉相承——同样要求推理/生成类操作必须显式列出 Project ID、Region、Model ID、输入 Prompt 等参数并等待用户确认目的是防止意外产生成本或配额消耗。在编写需要确认的调用代码时可以互相参照这两份 Skill 的参数列表示范。Phase 0环境初始化关键在运行下文任何 Python 代码片段之前必须按以下步骤正确初始化环境Google Cloud 认证使用 Google Cloud 凭据登录并为 Agent Platform 访问配置活跃的 Application Default CredentialsADCgcloud auth login gcloud auth application-default login虚拟环境创建并激活专用的虚拟环境python3 -m venv ~/rag_agent_venv source ~/rag_agent_venv/bin/activate安装依赖安装所需的 Agent Platform SDKpip install google-cloud-aiplatform google-genai其中google-cloud-aiplatform提供vertexai模块RAG 引擎管理操作所在google-genai提供第 4 节 grounded 生成所需的genai.Client。执行提醒用户每次执行 Python 片段前都必须先激活该虚拟环境。补充提示与仓库中部分其他 Skill 不同例如 Agent Platform Eval Flywheel Skill 明确建议不要创建虚拟环境以复用宿主环境已装包本 Skill 选择创建专用 venv是因为 RAG Engine 管理依赖vertexai.preview.rag等较新的预览 API隔离环境可以避免与宿主环境的 SDK 版本冲突。实际操作时请遵循本 Skill 的方案保持一致。工作流决策树在执行任何操作前先按以下决策树判断当前所处分支信息收集用户是否已提供 Project ID、Region 和 Corpus ID否→ 前往 第 1 节列出 Corpora 和文件 发现所需的资源名称与 ID仅当发现失败时才询问用户。是→ 继续。任务类型用户想做什么列出 Corpora 和文件→ 前往第 1 节。检查 Corpus→ 前往第 2 节。检索上下文→ 前往第 3 节。基于 RAG 引擎回答问题→ 前往第 4 节。[!TIP]占位符参数替换下文 Python 脚本使用带花括号的字符串占位符如{project_id}、{region}、{corpus_id}。你必须在生成、提供或执行脚本之前用用户提示或当前上下文中提供的真实 Project ID、Region 和 Corpus ID动态替换这些占位符。切勿把占位符原样当作真实值传入 SDK。1. 列出与发现 Corpora 和 Files如果不知道 corpus 或 file 的资源名称必须先列出以完成发现。SDK 在转换为列表时会自动处理分页但针对大型集合也可以使用手动分页。1.1 列出并发现 Corporaimport vertexai from vertexai.preview import rag vertexai.init(project{project_id}, location{region}) # 方案 A列出全部自动分页 # SDK 的 Pager 会替你遍历所有页 all_corpora list(rag.list_corpora()) print(fFound {len(all_corpora)} corpora in total.) for c in all_corpora: print(fCorpus Name: {c.name} | Display Name: {c.display_name}) # 方案 B手动分页适用于非常大的项目 pager rag.list_corpora(page_size10) # 处理第一页 for c in pager: print(fCorpus: {c.display_name}) # 需要时获取下一页 if pager.next_page_token: second_page rag.list_corpora( page_size10, page_tokenpager.next_page_token )要点解析vertexai.init(project..., location...)在进程内建立项目与区域上下文后续rag模块调用都基于它解析资源位置。方案 A 中list(...)一次性物化所有页适合规模可控的项目方案 B 通过page_size控制每页条数并利用next_page_token显式翻页适合超大型项目避免内存压力。从源码结构看rag.list_corpora()返回的是 SDK 的 Pager 对象同时支持迭代for c in pager和分页 token 属性pager.next_page_token这正是自动分页 手动分页两种写法的底层依据。1.2 列出并发现 Files要了解某个 corpus 中有哪些文件以及文件类型可以列出文件并检查display_name通常包含扩展名import vertexai from vertexai.preview import rag vertexai.init(project{project_id}, location{region}) corpus_name ( projects/{project_id}/locations/{region}/ragCorpora/{corpus_id} ) # 自动分页列出文件 files list(rag.list_files(corpus_namecorpus_name)) print(fFound {len(files)} files.) for f in files: # 高层 SDK 的 RagFile 对象通常包含 name、display_name、description print(fFile: {f.display_name} | Resource: {f.name}) # 提示通过扩展名判断文件类型PDF、TXT 等 if f.display_name.lower().endswith(.pdf): print( Type: PDF) elif f.display_name.lower().endswith(.txt): print( Type: Plain Text)注意corpus_name使用完整的资源路径格式projects/{project_id}/locations/{region}/ragCorpora/{corpus_id}这是 Agent Platform 统一资源命名resource name的体现——后续所有 RAG 操作都复用这一格式。2. 获取 / 检查一个 Agent Platform RAG Engine Corpus要获取某个已有 RAG Engine corpus 的详细信息import vertexai from vertexai.preview import rag vertexai.init(project{project_id}, location{region}) # 获取指定 corpus 的详情 corpus_name ( projects/{project_id}/locations/{region}/ragCorpora/{corpus_id} ) corpus rag.get_corpus(namecorpus_name) print(fCorpus Name: {corpus.name}) print(fDisplay Name: {corpus.display_name})该操作属于 Tier R只读可用于在生成代码前确认 corpus 确实存在、名称拼写正确以及显示名与预期一致。它也是工作流决策树中信息收集环节的兜底手段之一当用户只给出一部分参数时可先通过第 1 节的发现操作或本节检查操作补齐资源名称。3. 检索上下文Retrieval Query基于查询从 RAG Engine corpus 中检索相关上下文import vertexai from vertexai.preview import rag vertexai.init(project{project_id}, location{region}) corpus_name ( projects/{project_id}/locations/{region}/ragCorpora/{corpus_id} ) query What is the speed of light? # 检索上下文 response rag.retrieval_query( rag_corpora[corpus_name], textquery, similarity_top_k3 ) for context in response.contexts.contexts: print(fContext text: {context.text}) print(fSource: {context.source_uri})参数说明rag_corpora接收列表即使只有一个 corpus 也要用列表包裹允许跨多个 corpus 联合检索。text用户查询文本语义检索的输入。similarity_top_k返回的相似度最高的上下文片段数量示例取 3值越大召回越多但也会引入更多噪声应根据语料规模与下游生成需求权衡。返回结构中response.contexts.contexts是上下文片段集合每个片段包含text片段内容和source_uri来源 URI可用于溯源。这一步是纯只读检索Tier R不调用生成模型、不消耗模型推理配额适合在向用户展示候选依据或进入第 4 节 grounded 生成前先行验证检索质量。4. 使用检索上下文回答用户Grounded 生成要结合检索到的上下文与 Agent Platform 模型生成 grounded 响应需切换到Google GenAI SDKgoogle-genai将 RAG Engine corpus 声明为模型可用的检索工具from google import genai from google.genai import types client genai.Client(enterpriseTrue, project{project_id}, location{region}) corpus_name ( projects/{project_id}/locations/{region}/ragCorpora/{corpus_id} ) # 定义指向该 corpus 的 Agent Platform RAG Engine 工具 rag_tool types.Tool( retrievaltypes.Retrieval( vertex_rag_storetypes.VertexRagStore( rag_resources[types.VertexRagStoreRagResource(rag_corpuscorpus_name)], rag_retrieval_configtypes.RagRetrievalConfig( top_k3, filtertypes.RagRetrievalConfigFilter( vector_similarity_threshold0.5, ), ), ) ) ) # 使用 RAG Engine 工具生成内容 response client.models.generate_content( modelgemini-2.5-flash, contentsWhat is the speed of light?, configtypes.GenerateContentConfig( tools[rag_tool] ) ) print(response.text)关键设计逐层拆解客户端初始化genai.Client(enterpriseTrue, project..., location...)开启 Agent Platform企业版模式使客户端指向 Agent Platform 而非公共 Gemini API。这一初始化方式与 Agent Platform GenAI Inference Skill 中genai.Client(vertexaiTrue, project..., location...)的用法同源均用于把 GenAI SDK 绑定到 Agent Platform 后端。types.VertexRagStore声明 RAG 数据源来自 Vertex RAG 引擎。rag_resources以VertexRagStoreRagResource(rag_corpus...)形式指定目标 corpus支持多个。types.RagRetrievalConfig控制检索行为。top_k3与第 3 节similarity_top_k3语义一致都是取回 top 3 片段filter.vector_similarity_threshold0.5则是一个相似度下限过滤器——只有向量相似度达到 0.5 的片段才会被送入模型低于阈值的噪声片段会被丢弃。合理设置该阈值可以显著改善生成质量阈值过低会引入无关上下文过高则可能召回不足。GenerateContentConfig(tools[rag_tool])把 RAG 工具注册到本次生成调用中。模型在回答时会自动执行检索grounding 到语料再基于检索结果生成答案从而把幻觉风险压制在语料范围之内。模型选择示例使用gemini-2.5-flash。注意该步骤属于Tier RC——generate_content消耗计算资源执行前必须向用户展示包含目标 corpus ID、查询文本、目标模型的确认卡片并等待 Yes 批准且不得在同一轮内直接执行。仓库上下文与延伸实践该 Skill 是仓库中 Agent Platform 技能族的一员与其配套技能在调用链上互相衔接若需要进一步了解模型推理、错误码429/400/404排查与区域可用性探测可阅读 Agent Platform GenAI Inference Skill——其中genai.Client初始化、generate_content参数确认卡片与本 Skill 第 4 节完全同构。若想验证 grounded 生成结果的回答质量例如检查是否存在幻觉、是否忠实于检索上下文可使用 Agent Platform Eval Flywheel Skill 中的hallucination、grounding等静态 rubric 指标进行评测——RAG 场景正是这些指标的核心应用对象。仓库根目录 README.md 在 AI/ML 分类下收录了本 SkillAgent Platform RAG Engine Management可通过npx skills add google/skills安装整个技能集合。常见注意事项与边界必须替换占位符{project_id}、{region}、{corpus_id}三类占位符在使用前必须替换为真实值否则 SDK 会以字面花括号字符串请求资源导致资源找不到。SDK 选择管理类操作list/get/retrieval_query一律走vertexai.preview.raggrounded 生成走google.genai的genai.Client。两套 SDK 职责不同不要混用。安全分级不可跳过只读发现/检索可以立即执行但任何generate_content调用都必须在同轮停止、等待用户 Yes 确认后再执行。勿越界使用RAG Engine 不是通用数据库标准 SQL 查询、Workspace RAG、gRAG 等场景应使用仓库中对应的专用 Skill。掌握以上四个操作步骤与安全规范后你即可在外部客户端环境中安全地完成发现语料 → 检查语料 → 检索上下文 → grounded 生成的完整 RAG Engine 工作流。【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻