
Agent Starter Pack 数据摄取指南为 RAG Agent 构建 Vertex AI Search 与 Vector Search 2.0 自动化数据管道【免费下载链接】agent-starter-packShip AI Agents to Google Cloud in minutes, not months. Production-ready templates with built-in CI/CD, evaluation, and observability.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-starter-pack本篇技术指南以 Agent Starter Pack 仓库中的docs/guide/data-ingestion.md为核心骨架系统讲解如何在基于该仓库生成的 AI Agent 项目中引入数据摄取能力。文章将覆盖两种主流数据仓库Vertex AI Search 与 Vertex AI Vector Search 2.0的选型差异、--datastore命令行启用方式、Terraform 基础设施的底层实现、make setup-datastore/make sync-data/make># 使用 Vertex AI Search agent-starter-pack create my-agent-project -ds vertex_ai_search # 使用 Vertex AI Vector Search agent-starter-pack create my-agent-project -ds vertex_ai_vector_search创建命令的完整参数说明可参考仓库文档 docs/cli/create.md创建流程的整体引导见 docs/guide/getting-started.md。--datastore的选择会直接影响后续 Terraform 生成的基础设施清单。基础设施两种数据仓库的 Terraform 实现原文档指出Terraform IaC 会根据所选数据仓库配置相应基础设施。结合仓库源码可以还原出两套完整资源拓扑Vertex AI Search 路径对应的 Terraform 定义位于 agent_starter_pack/agents/agentic_rag/deployment/terraform/dev/vertex_ai_search.tf根目录版本 agent_starter_pack/agents/agentic_rag/deployment/terraform/vertex_ai_search.tf 则为 staging/prod 环境分别创建包含GCS 文档桶google_storage_bucket.docs_bucket命名规则为${dev_project_id}-${project_name}-docs启用uniform_bucket_level_accessGCS Data Connector通过null_resource调用 setup_data_connector.py以--refresh-interval刷新间隔和--data-schema数据格式参数创建连接器销毁时调用delete_data_connector.py清理Search Enginegoogle_discovery_engine_search_engine使用SEARCH_TIER_ENTERPRISE搜索层级通过get_data_store_id.py反查 Connector 自动创建的数据存储 ID 后绑定到搜索引擎。Vertex AI Vector Search 2.0 路径Terraform 定义位于 agent_starter_pack/agents/agentic_rag/deployment/terraform/dev/vector_search.tf根目录版本 agent_starter_pack/agents/agentic_rag/deployment/terraform/vector_search.tf 同样覆盖 staging/prod管道制品桶google_storage_bucket.data_ingestion_PIPELINE_GCS_ROOT命名规则${dev_project_id}-${project_name}-rag用于存放 KFP 管道的中间产物Vector Search 2.0 Collectionnull_resource调用 setup_vector_search_collection.py 创建。值得关注的是 Collection 的自动向量化配置。从 setup_vector_search_collection.py 源码可见第 40-90 行Collection 创建时即声明数据 Schemaquestion_idstring、text_chunkstring、full_text_mdstring三个字段向量 Schematext_embedding.dense_vector使用gemini-embedding-001模型、768 维向量、task_typeRETRIEVAL_DOCUMENT并以{text_chunk}作为向量化文本模板。这意味着摄取管道无需自行调用 embedding API——只要把分块后的文本写入 Collection向量由 Collection 配置的 embedding 模型自动生成。脚本本身是幂等的检测到同名 Collection 已存在时会直接跳过创建可安全重复执行。此外vector_search_variables.tf 中为管道 Runner 服务账号预置了一组精细的角色涵盖roles/storage.admin、roles/aiplatform.user、roles/bigquery.dataEditor、roles/vectorsearch.dataObjectWriter、roles/discoveryengine.admin等用于支撑BigQuery 读写 Vertex AI 管道执行 Vector Search 写入的完整链路。快速开始三步完成数据摄取原文档给出的完整操作流程如下前提已通过--datastore创建项目且本地已安装并配置好terraform第 1 步创建包含数据摄取的项目见上文启用数据摄取一节。第 2 步搭建数据仓库并加载示例数据make setup-datastore该命令在生成项目根目录下执行具体行为因数据仓库而异Vertex AI Search创建 GCS 桶、Data Connector 与搜索引擎上传示例数据并触发首次同步Vector Search 2.0创建 Collection、管道制品 GCS 桶并配置服务账号权限。第 3 步执行/同步数据摄取Vertex AI Search修改sample_data/目录后手动触发同步make sync-dataVector Search 2.0在本地运行摄取管道make>export PROJECT_IDYOUR_PROJECT_IDVertex AI Search数据格式Data Schema详解对于 GCS Data Connector 路径原文档用一整节讲解数据格式约束这是最容易踩坑的地方。Connector 默认按非结构化内容摄取即data_schema: contentGCS 桶中的每个文件PDF、HTML、TXT都会成为数据存储中的独立文档。如果你的数据不是非结构化文件需要在生成项目的deployment/terraform/dev/vars/env.tfvars中修改data_connector_data_schema变量data_connector_data_schema document # 适用于 NDJSON/JSONL 文件四种data_schema取值的完整对照如下继承自原文档data_schema格式说明content默认PDF / HTML / TXT非结构化文件每个文件成为一个文档documentNDJSON / JSONL每行一个 JSON 文档必须包含合法的id字段csvCSV带表头行的 CSV需符合数据存储的 SchemacustomJSON自定义 JSON 格式需符合数据存储的 Schema该变量的默认值与含义同样反映在 Terraform 变量定义中见 agent_starter_pack/agents/agentic_rag/deployment/terraform/vertex_ai_search_variables.tfdata_connector_data_schema默认content同文件还声明了data_connector_refresh_intervalConnector 周期同步刷新间隔默认86400s即每天与data_store_region默认global说明该路径的同步是调度驱动的。重要提醒原文档原文要点当修改data_schema时必须删除并重建 Data Connector——先通过 Cloud Console 或 API 删除集合再重新运行make setup-datastore。仅修改变量不会自动重建否则新旧 Schema 不匹配会导致同步失败。Vector Search 2.0Kubeflow 摄取管道源码级解析相比 Search 路径的上传即同步Vector Search 2.0 路径的核心是一条 KFP 管道。原文档只描述了流水线行为仓库源码则给出了全部参数细节。管道编排结构主管道定义于 agent_starter_pack/agents/agentic_rag/data_ingestion/data_ingestion_pipeline/pipeline.py第 20-61 行由两个组件串行组成process_data加载数据、按chunk_size与chunk_overlap分块、去重写入deduped_table输出处理后的数据表该组件设置了set_retry(num_retries2)即最多重试 2 次ingest_data将处理后的数据表按批写入 Vector Search 2.0 Collection同样带 2 次重试。两个组件的具体实现分别在 ingest_data.py 与 process_data.py。管道名称在 pyproject.toml 中登记为data-ingestion-pipeline。管道参数一览管道函数签名继承自源码可直接对照阅读定义了以下可调参数参数默认值作用project_id必填GCP 项目 IDlocation必填区域schedule_time1970-01-01T00:00:00Z调度时间戳支持周期性运行is_incrementalTrue是否增量摄取look_back_days7增量模式下回看的天数窗口chunk_size1500分块大小字符数chunk_overlap20相邻分块的重叠长度max_rows100单次处理的最大行数destination_tableincremental_questions_embeddings增量结果表deduped_tablequestions_embeddings去重后的主表destination_dataset{{cookiecutter.project_name | replace(-, _)}}_stackoverflow_dataBigQuery 目标数据集由项目名生成collection_id目标 Vector Search 2.0 Collection IDingestion_batch_size250每次写入 Collection 的批大小其中chunk_size、chunk_overlap、ingestion_batch_size是影响检索质量与写入吞吐的关键调优项分块过大会稀释语义、过小会丢失上下文批大小则影响写入效率。本地执行与远程提交submit_pipeline.pymake contenteditable="false">【免费下载链接】agent-starter-packShip AI Agents to Google Cloud in minutes, not months. Production-ready templates with built-in CI/CD, evaluation, and observability.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-starter-pack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考