ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Agent Starter Pack 智能体模板全览:从 ReAct 到多模态 Live API 的生产级起点

Agent Starter Pack 智能体模板全览:从 ReAct 到多模态 Live API 的生产级起点 Agent Starter Pack 智能体模板全览从 ReAct 到多模态 Live API 的生产级起点【免费下载链接】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-packAgent Starter Pack 采用自带智能体bring your own agent的设计理念在仓库 agent_starter_pack/agents 目录下预置了 8 套生产级智能体模板覆盖 Python、Go、TypeScript、Java 四种语言生态以及 ReAct、RAG、A2A 多智能体协作、实时多模态等主流模式。本文基于 docs/agents/overview.md 展开并结合每个模板的源码实现深入讲解帮助你按业务目标、语言偏好、框架选择与推理复杂度快速选定起点并通过create命令一键生成可部署的 Google Cloud 项目。模板总览Agent Starter Pack 的核心思路是不绑定单一框架而是提供多种开箱即用的模板同时保留替换框架的自由度。所有模板均为生产级起点内置了 CI/CD、评测evaluation与可观测性observability能力。当前提供的 8 个模板如下模板名说明典型用途adk基于 Google Agent Development KitADK实现的 ReAct 基础智能体通用对话智能体adk_go基于 ADK for Go 实现的 ReAct 基础智能体Go 生态对话智能体adk_ts基于 ADK for TypeScript 实现的 ReAct 基础智能体TypeScript/Node.js 对话智能体adk_java基于 ADK for Java 实现的 ReAct 基础智能体Java 生态对话智能体adk_a2a集成 Agent2AgentA2A协议的 ADK 智能体跨框架分布式智能体通信与互操作agentic_rag面向文档检索与问答的 RAG 智能体文档搜索与知识库问答langgraph基于 LangChain LangGraph 实现的 ReAct 基础智能体图结构对话智能体adk_live实时多模态 RAG 智能体音频/视频/文本与知识库对话这 8 个模板的代码分别位于 agent_starter_pack/agents 下对应的同名目录中均以 CookieCutter 模板形式组织字段如{{cookiecutter.agent_directory}}、{{cookiecutter.project_name}}在创建项目时会被实际值替换。如何选择正确的模板选择模板时建议从以下六个维度进行决策沿用原文档的选型框架核心目标Primary Goal你构建的是对话机器人、面向文档的问答系统、任务自动化网络还是其他形态目标决定了模板类别——通用对话选adk/langgraph文档问答选agentic_rag多智能体协作选adk_a2a。编程语言Programming Language多数模板基于 Python但adk_go、adk_ts、adk_java分别提供 Go、TypeScript、Java 替代实现。若团队已有相应语言的技术栈可直接对齐。核心模式/框架Core Pattern/Framework你偏好 Google ADK、LangChain/LangGraph还是直接实现 RAG 等模式Starter Pack 对多种路线均提供支持。推理复杂度Reasoning Complexity智能体是否需要复杂的规划与工具调用如 ReAct 模式还是更聚焦于检索与综合如基础 RAG协作需求Collaboration Needs是否需要多个专业化智能体协同工作若是优先考虑带 A2A 协议支持的adk_a2a与langgraph。模态Modality智能体是否需要处理或响应对话之外的音频、视频需要时选择adk_live。模板详情ADK 基础模板adk该模板基于 Google ADKPython提供了 ReAct 智能体的最小示例演示了 ADK 的核心概念智能体创建与工具集成实现推理与工具选择。看模板源码 agent_starter_pack/agents/adk/app/agent.pydef get_weather(query: str) - str: Simulates a web search. Use it get information on weather. ... if sf in query.lower() or san francisco in query.lower(): return Its 60 degrees and foggy. return Its 90 degrees and sunny. root_agent Agent( nameroot_agent, modelGemini( modelgemini-3-flash-preview, retry_optionstypes.HttpRetryOptions(attempts3), ), instructionYou are a helpful AI assistant designed to provide accurate and useful information., tools[get_weather, get_current_time], ) app App( root_agentroot_agent, name{{cookiecutter.agent_directory}}, )从源码可以看到该模板的几个要点模型配置默认使用gemini-3-flash-preview模型并通过HttpRetryOptions(attempts3)配置了 HTTP 重试策略最多尝试 3 次提升生产环境下的稳定性。工具集成两个模拟工具get_weather与get_current_time直接以 Python 函数形式注册进tools列表ADK 会自动完成函数到工具描述的转换。认证模式模板支持两种模型访问方式——通过 CookieCutter 变量use_google_api_key区分。当不使用 API Key 时源码通过google.auth.default()读取应用默认凭证并设置GOOGLE_GENAI_USE_VERTEXAITrue走 Vertex AI 通道agent_starter_pack/agents/adk/app/agent.py#L31-L40。可观测性扩展模板预留了bq_analytics开关启用后会自动初始化BigQueryAgentAnalyticsPlugin将智能体调用日志写入 BigQuery 数据集默认adk_agent_analytics便于后续做对话分析与评测。该模板最合适以下场景在 Google Cloud 上开始智能体开发的首个入口构建通用对话智能体学习 ADK 框架与 ReAct 模式本身。配套的评测与测试资产也已就绪adk模板目录下包含 agent_starter_pack/agents/adk/tests/integration/test_agent.py 集成测试以及tests/eval/下的评测集配置basic.evalset.json与eval_config.json可用于验证智能体行为。ADK 基础模板 Go 版adk_go该模板提供与 Python 版相同核心概念智能体创建、工具集成、ReAct 模式的 Go 实现。适合在 Google Cloud 上构建智能体的 Go 开发者已有 Go 代码库、希望加入 AI 智能体能力的团队利用 Go 并发模型实现高性能部署的场景。Go 模板的核心实现位于 agent_starter_pack/agents/adk_go/agent/agent.go其结构同样清晰先用GetWeatherArgs结构体通过 json schema 标签声明工具入参再用functiontool.New()注册get_weather工具最后通过llmagent.New()组装根智能体model, err : gemini.NewModel(ctx, gemini-3-flash-preview, genai.ClientConfig{ Backend: genai.BackendVertexAI, }) weatherTool, err : functiontool.New(functiontool.Config{ Name: get_weather, Description: Get the current weather for a city., }, GetWeather) rootAgent, err : llmagent.New(llmagent.Config{ Name: {{cookiecutter.project_name}}, Model: model, Description: A helpful AI assistant., Instruction: You are a helpful AI assistant designed to provide accurate and useful information., Tools: []tool.Tool{weatherTool}, })Go 版还配套了 agent_starter_pack/agents/adk_go/agent/agent_test.go 单元测试。注意adk_go模板当前仅支持 Cloud Run 部署方式对应部署目标见 agent_starter_pack/deployment_targets/cloud_run/go。ADK 基础模板 TypeScript 版adk_ts为 TypeScript/Node.js 开发者提供的同款 ReAct 智能体。适合在 Google Cloud 上构建智能体的 TypeScript/Node.js 开发者已有 JavaScript/TypeScript 代码库的团队熟悉 Node.js 生态的全栈开发者。TypeScript 实现位于 agent_starter_pack/agents/adk_ts/app/agent.ts它使用 ADK 的FunctionTool类并借助 Zod 做参数 schema 校验import { FunctionTool, LlmAgent } from google/adk; import { z } from zod; const getWeather new FunctionTool({ name: get_weather, description: Returns the current weather in a specified city., parameters: z.object({ city: z.string().describe(The name of the city for which to retrieve the weather.), }), execute: ({ city }) { return { status: success, report: The weather in ${city} is sunny with a temperature of 72°F }; }, }); export const rootAgent new LlmAgent({ name: {{cookiecutter.project_name | replace(-, _)}}_agent, model: gemini-3-flash-preview, description: Tells the current weather in a specified city., instruction: You are a helpful assistant that tells the current weather in a city. ..., tools: [getWeather], });从源码看TypeScript 版的特色在于LlmAgent的 name 使用了replace(-, _)过滤器确保项目名转换为合法标识符工具参数用z.object声明运行时校验规则比纯字符串描述更严谨。注意与 Go 版相同adk_ts当前仅支持 Cloud Run 部署。ADK 基础模板 Java 版adk_java面向 Java 生态的 ReAct 智能体模板集成 Spring Boot 并支持 A2A 协议。适合在 Google Cloud 上构建智能体的 Java 开发者已有 Java/Spring Boot 代码库的团队以 Java 为标准的企事业环境。模板源码位于 agent_starter_pack/agents/adk_java/src/main/java/{{cookiecutter.java_package_path}}/Agent.java配套单元测试在 agent_starter_pack/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/unit/AgentTest.java。Java 模板遵循与adk_go/adk_ts一致的单一根智能体 函数工具模式便于在 Maven 工程中直接运行。注意adk_java当前同样仅支持 Cloud Run 部署。ADK A2A 基础模板adk_a2a该模板将 Google ADK 与 Agent2AgentA2A协议集成实现跨框架、跨语言的分布式智能体通信与互操作。它在展示 ADK 核心概念的同时为构建分布式智能体系统提供了标准化接口。适合探索 A2A 协议与智能体互操作模式构建跨框架通信的分布式多智能体系统实现基于微服务的智能体架构。对比adk_a2a与adk的源码agent_starter_pack/agents/adk_a2a/app/agent.py可以发现 A2A 模板的核心差异在于引入了一个暂停等待用户的长时工具def request_user_input(message: str) - dict: Request additional input from the user. ... Calling this tool will pause execution until the user responds. return {status: pending, message: message} root_agent Agent( nameroot_agent, modelGemini( modelgemini-3-flash-preview, retry_optionstypes.HttpRetryOptions(attempts3), ), descriptionAn agent that can provide information about the weather and time., instructionYou are a helpful AI assistant designed to provide accurate and useful information., tools[ get_weather, get_current_time, LongRunningFunctionTool(funcrequest_user_input), ], )这里的关键点是LongRunningFunctionTool它将request_user_input包装为长运行工具调用时会挂起智能体执行直至用户响应——这正是分布式多智能体交互中任务暂停-恢复语义的实现基础。此外adk_a2a模板的智能体增加了description字段方便其他智能体或编排层理解其职责。对应的评测资源位于 agent_starter_pack/agents/adk_a2a/tests与adk模板一样包含集成测试与评测集配置。Agentic RAG 模板agentic_rag基于 ADK 构建实现了生产级的**检索增强生成RAG**与数据摄入流水线面向文档问答场景。它允许你摄入、处理并嵌入自定义数据以提升回答相关性。核心特性包括自动化数据摄入流水线将自定义文档处理为可检索的向量/索引数据灵活的存储选项同时支持 Vertex AI Search 与 Vertex AI Vector Search 两种数据存储自定义嵌入生成为增强语义检索生成定制 embedding基于检索上下文的答案综合把检索结果作为上下文交给大模型生成答案基础设施即代码通过 Terraform 部署基础设施并可选择 Google Cloud Build 或 GitHub Actions 作为 CI/CD 运行器。模板核心位于 agent_starter_pack/agents/agentic_rag/app/agent.py其智能体定义会根据 CookieCutter 变量datastore_type分流当datastore_type vertex_ai_search时构造 Vertex AI Search 工具data_store_region os.getenv(DATA_STORE_REGION, global) data_store_id os.getenv( DATA_STORE_ID, {{cookiecutter.project_name}}-collection_documents ) data_store_path ( fprojects/{project_id}/locations/{data_store_region} f/collections/default_collection/dataStores/{data_store_id} ) vertex_search_tool create_search_tool(data_store_path)create_search_tool定义在 agent_starter_pack/agents/agentic_rag/app/retrievers.py它返回VertexAiSearchTool实例值得一提的是源码中预留了测试钩子——当环境变量INTEGRATION_TESTTRUE时返回 mock 搜索函数保证集成测试不依赖真实云资源。当datastore_type vertex_ai_vector_search时模板定义一个retrieve_docs函数作为检索工具内部调用search_collectiondef search_collection(query, collection_path, top_k10) - str: ... request vectorsearch_v1beta.SearchDataObjectsRequest( parentcollection_path, semantic_searchvectorsearch_v1beta.SemanticSearch( search_textquery, search_fieldtext_embedding, task_typeQUESTION_ANSWERING, top_ktop_k, output_fieldsvectorsearch_v1beta.OutputFields( data_fields[question_id, text_chunk, full_text_md] ), ), ) results client.search_data_objects(request) # 将结果格式化为 Document N.../Document N 供大模型消费从 retrievers.py 源码可以看到检索实现的细节使用semantic_search语义检索task_type设为QUESTION_ANSWERING以匹配问答场景top_k默认返回 10 条结果并抽取text_chunk字段拼装成带文档编号的上下文块。最终智能体的 instruction 明确要求使用提供的上下文尽力作答若已知答案可直接回答agent_starter_pack/agents/agentic_rag/app/agent.py#L93-L96。数据摄入流水线位于 agent_starter_pack/agents/agentic_rag/data_ingestion由data_ingestion_pipeline/components/ingest_data.py、process_data.py与pipeline.py组成并提供submit_pipeline.py提交入口配套 Terraform 配置在 agent_starter_pack/agents/agentic_rag/deployment/terraform含 Vertex AI Search、Vector Search、服务账号与数据连接器脚本。LangGraph 基础模板langgraph基于 LangChain 的 LangGraph 框架实现的 ReAct 智能体支持 A2A 协议集成可实现跨框架的分布式智能体通信。它是图结构智能体开发的绝佳起点提供显式状态管理与复杂推理流的图式构建对智能体行为与工具编排的细粒度控制带 A2A 协议支持的分布式多智能体系统。模板核心位于 agent_starter_pack/agents/langgraph/app/agent.py实现非常精简from langchain.agents import create_agent from langchain_google_genai import ChatGoogleGenerativeAI from langgraph.graph.state import CompiledStateGraph llm ChatGoogleGenerativeAI(modelLLM, temperature0) def get_weather(query: str) - str: Simulates a web search. Use it get information on weather if sf in query.lower() or san francisco in query.lower(): return Its 60 degrees and foggy. return Its 90 degrees and sunny. root_agent: CompiledStateGraph create_agent( modelllm, tools[get_weather], system_promptYou are a helpful assistant )从源码可以看到 LangGraph 模板的要点使用create_agent将模型与工具组合为编译后的CompiledStateGraph状态图LLM 通过ChatGoogleGenerativeAI接入temperature0保证问答输出的确定性同样支持use_google_api_key开关切换 API Key 与 Vertex AI 两种认证通道agent_starter_pack/agents/langgraph/app/agent.py#L24-L32。配套的评测 notebook 位于 agent_starter_pack/agents/langgraph/notebooks/evaluating_langgraph_agent.ipynb集成测试在 agent_starter_pack/agents/langgraph/tests/integration/test_agent.py。Live API 模板adk_live由 Google Gemini 驱动基于 Vertex AI Live API 展示实时多模态对话 RAG 智能体。特性包括支持音频、视频与文本多模态交互利用工具调用tool calling增强能力通过 WebSocket 实现低延迟的双向实时通信生产级 Python 后端FastAPI与 React 前端内置反馈收集能力。模板核心位于 agent_starter_pack/agents/adk_live/app/agent.py其模型配置与前面模板最大的区别是换用了实时语音模型root_agent Agent( nameroot_agent, modelGemini( modelgemini-live-2.5-flash-native-audio, retry_optionstypes.HttpRetryOptions(attempts3), ), instructionYou are a helpful AI assistant designed to provide accurate and useful information., tools[get_weather], )同时该模板源码在非 API Key 模式下通过vertexai.init(projectproject_id, locationus-east1)显式初始化 Vertex AI并以us-east1作为 Live API 区域agent_starter_pack/agents/adk_live/app/agent.py#L20-L32。前端参考实现位于 agent_starter_pack/frontends/adk_live_react是一个基于 React Vite 的完整应用包含use-live-api.ts、use-webcam.ts、use-screen-capture.ts、use-media-stream-mux.ts等 hooks以及音频脉冲AudioPulse、日志面板Logger、侧边面板SidePanel、转写预览TranscriptionPreview等组件可直接作为多模态前端起点。部署到 Cloud Run 的 FastAPI 入口见 agent_starter_pack/deployment_targets/cloud_run/python/{{cookiecutter.agent_directory}}/fast_api_app.py。自定义模板所有模板都只是起点被设计为可自由定制。官方建议的自定义流程如下选择最接近需求的模板基于所选模板创建新的智能体实例熟悉代码结构重点关注智能体逻辑agent logic、工具定义tool definitions与 UI 组件如有修改与扩展调整提示词prompt、增删工具、接入不同数据源、修改推理逻辑或更新框架版本。以adk模板为例自定义的常见切入点包括修改Agent(...)中的instruction调整人格与行为边界向tools[...]列表追加新的 Python 函数实现自定义工具在App(...)中通过bq_analytics开关开启 BigQuery 可观测性。各模板目录内的README.md如 agent_starter_pack/agents/adk/README.md会注明当前模板使用的模型与工具清单可作为定制时的参考基线。从模板到项目一条命令生成可部署工程选定模板后可以通过 CLI 的create命令将其实例化为独立项目详见 docs/cli/create.md。最基础的用法uvx agent-starter-pack create my-agent -a adk其中-a/--agent参数既接受上述内置模板名adk、adk_go、adk_ts、adk_java、adk_a2a、agentic_rag、langgraph、adk_live也支持远程模板地址省略时会弹出交互式模板列表。常用组合还包括# 选择部署目标与 CI/CD 运行器 uvx agent-starter-pack create my-agent -a adk -d cloud_run --cicd-runner google_cloud_build # 快速原型跳过 CI/CD 与 Terraform 基础设施 uvx agent-starter-pack create my-agent -a agentic_rag -p --datastore vertex_ai_search部署目标-d可选cloud_runCloud Run 无服务器容器、gkeGKE Autopilot、agent_engineGoogle Cloud Agent Engine 托管平台--prototype会跳过.github/workflows/、deployment/Terraform与tests/load_test/等脚手架之后可随时用enhance命令补齐 CI/CD见 docs/cli/index.md。对需要数据摄入的模板如agentic_rag--datastore会按vertex_ai_search或vertex_ai_vector_search自动装配对应的检索工具与 Terraform 资源。总结Agent Starter Pack 的 8 个模板构成了从单语言 ReAct 入门到跨框架分布式协作再到实时多模态交互的完整梯度adk系列四模板Python/Go/TS/Java让你在自己熟悉的语言里掌握 ADK 与 ReAct 模式adk_a2a与langgraph面向多智能体协作与互操作agentic_rag提供了生产级的数据摄入 双存储检索方案adk_live则把体验推进到音频/视频实时对话。所有模板共享同一套模板 →create生成项目 → 定制 → 部署的流水线并且都内置了评测集、集成测试与可观测性配置确保从原型到生产环境的路径平滑可控。浏览 agent_starter_pack/agents 目录即可预览每个模板的完整实现再结合上述选型维度即可快速定位最适合你项目的起点。【免费下载链接】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),仅供参考
返回列表