当前位置: 首页 > article >正文

Google Agent Development Kit (ADK) 指南 第二章:环境搭建与快速开始

Google Agent Development Kit (ADK) 指南 第二章环境搭建与快速开始系列教程这是《Google ADK 指南》系列的第二章。前置知识已完成第一章了解 ADK 基本概念。目录前置要求GCP 账号配置ADK 安装第一个 Agent 应用本地调试技巧常见问题1. 前置要求1.1 硬件要求配置最低要求推荐配置CPU2 核4 核内存4GB8GB磁盘10GB20GB网络可访问 GCP可访问 GCP1.2 软件要求Python 3.10pip 21.0GitGCP 账号1.3 检查环境# 检查 Python 版本python--version# 预期Python 3.10.x 或更高# 检查 pippip--version# 检查 Gitgit--version2. GCP 账号配置2.1 创建 GCP 账号访问 https://console.cloud.google.com使用 Google 账号登录创建新项目或选择现有项目绑定支付方式新用户有$300 免费额度2.2 启用必要 API# 设置项目 IDexportPROJECT_IDyour-project-idgcloud configsetproject$PROJECT_ID# 启用 Vertex AI APIgcloud servicesenableaiplatform.googleapis.com# 启用 Cloud Logging APIgcloud servicesenablelogging.googleapis.com# 启用 Cloud Storage APIgcloud servicesenablestorage.googleapis.com2.3 配置认证方式 1服务账号推荐生产# 创建服务账号gcloud iam service-accounts create adk-service-account\--display-nameADK Service Account# 分配角色gcloud projects add-iam-policy-binding$PROJECT_ID\--memberserviceAccount:adk-service-account$PROJECT_ID.iam.gserviceaccount.com\--roleroles/aiplatform.admin# 生成密钥gcloud iam service-accounts keys create adk-key.json\--iam-accountadk-service-account$PROJECT_ID.iam.gserviceaccount.com# 设置环境变量exportGOOGLE_APPLICATION_CREDENTIALS./adk-key.json方式 2用户认证开发测试# 登录 GCPgcloud auth application-default login# 验证gcloud auth application-default print-access-token2.4 验证配置# 检查项目配置gcloud config get-value project# 检查 API 状态gcloud services list--enabled# 检查认证gcloud auth list3. ADK 安装3.1 创建虚拟环境# 创建项目目录mkdiradk-projectcdadk-project# 创建虚拟环境python-mvenv venv# 激活环境# Linux/macOSsourcevenv/bin/activate# Windowsvenv\Scripts\activate3.2 安装 ADK# 安装 ADK 核心包pipinstallgoogle-adk# 安装额外组件pipinstallgoogle-adk[all]# 验证安装python-cfrom google.adk import Agent; print(ADK 安装成功)3.3 安装开发工具# 安装开发依赖pipinstallpytest black pylint jupyter# 安装 ADK CLI 工具pipinstallgoogle-adk-cli3.4 项目结构adk-project/ ├── venv/ # 虚拟环境 ├── src/ # 源代码 │ ├── __init__.py │ ├── agents/ # Agent 定义 │ │ ├── __init__.py │ │ └── assistant.py │ ├── tools/ # 工具定义 │ │ ├── __init__.py │ │ └── custom_tools.py │ └── main.py # 入口文件 ├── tests/ # 测试代码 │ ├── __init__.py │ └── test_agents.py ├── configs/ # 配置文件 │ ├── dev.yaml │ └── prod.yaml ├── .env # 环境变量 ├── requirements.txt # 依赖列表 └── README.md4. 第一个 Agent 应用4.1 基础示例创建src/main.pyfromgoogle.adkimportAgentfromgoogle.adk.modelsimportGemini# 创建 AgentagentAgent(namehello_assistant,modelGemini(gemini-2.0-flash),instruction你是一个友好的 AI 助手用简洁中文回答用户问题。)# 运行对话if__name____main__:print( Hello Assistant 已就绪输入 quit 退出。\n)whileTrue:user_inputinput( 你)ifuser_input.lower()quit:print( 再见)breakresponseagent.run(user_input)print(f 助手{response.text}\n)4.2 运行应用# 设置环境变量exportGOOGLE_CLOUD_PROJECTyour-project-idexportGOOGLE_CLOUD_LOCATIONus-central1# 运行应用python src/main.py预期输出Hello Assistant 已就绪输入 quit 退出。 你你好 助手你好有什么我可以帮助你的吗 你今天天气怎么样 助手抱歉我无法获取实时天气信息。我是一个 AI 助手... 你quit 再见4.3 添加工具创建src/tools/weather_tool.pyfromgoogle.adkimportToolimportrequestsTool(nameget_weather,description获取指定城市的天气信息,parameters{city:{type:string,description:城市名称}})defget_weather(city:str)-str:获取天气信息# 示例使用天气 APIapi_keyyour_weather_api_keyurlfhttp://api.weatherapi.com/v1/current.json?key{api_key}q{city}try:responserequests.get(url)dataresponse.json()returnf{city}当前天气{data[current][condition][text]}, 温度{data[current][temp_c]}°CexceptExceptionase:returnf获取天气失败{str(e)}更新src/main.pyfromgoogle.adkimportAgentfromgoogle.adk.modelsimportGeminifromtools.weather_toolimportget_weather# 创建带工具的 AgentagentAgent(nameweather_assistant,modelGemini(gemini-2.0-flash),tools[get_weather],instruction你是一个天气助手可以查询城市天气。)# 运行对话if__name____main__:print(️ 天气助手已就绪\n)whileTrue:user_inputinput( 你)ifuser_input.lower()quit:breakresponseagent.run(user_input)print(f 助手{response.text}\n)4.4 添加记忆fromgoogle.adkimportAgentfromgoogle.adk.modelsimportGeminifromgoogle.adk.memoryimportConversationBufferMemory# 创建带记忆的 AgentagentAgent(namechat_assistant,modelGemini(gemini-2.0-flash),memoryConversationBufferMemory(max_turns10),instruction你是一个友好的聊天助手。)# 运行多轮对话if__name____main__:print( 聊天助手已就绪\n)whileTrue:user_inputinput( 你)ifuser_input.lower()quit:breakresponseagent.run(user_input)print(f 助手{response.text}\n)5. 本地调试技巧5.1 启用调试日志importlogging# 配置日志logging.basicConfig(levellogging.DEBUG,format%(asctime)s - %(name)s - %(levelname)s - %(message)s)# ADK 特定日志logging.getLogger(google.adk).setLevel(logging.DEBUG)5.2 使用 ADK CLI# 查看帮助adk--help# 列出 Agentadk agent list# 运行 Agentadk agent run hello_assistant# 查看日志adk logstail--agenthello_assistant5.3 本地 Mock 测试fromunittest.mockimportMock,patchfromgoogle.adkimportAgentdeftest_agent_with_mock():# 创建 Mock 模型mock_modelMock()mock_model.generate.return_value这是测试回复# 创建 AgentagentAgent(nametest_agent,modelmock_model,instruction测试助手)# 测试responseagent.run(测试问题)assertresponse.text这是测试回复5.4 性能分析importtimefromgoogle.adkimportAgentdefprofile_agent():agentAgent(...)# 预热agent.run(hello)# 性能测试starttime.time()foriinrange(10):agent.run(f测试问题{i})endtime.time()print(f平均响应时间{(end-start)/10:.2f}秒)6. 常见问题6.1 认证问题Q: 提示 “无法找到凭证”# 解决# 1. 检查服务账号密钥exportGOOGLE_APPLICATION_CREDENTIALS./adk-key.json# 2. 或重新登录gcloud auth application-default login# 3. 验证gcloud auth application-default print-access-token6.2 API 配额问题Q: 提示 “超出配额限制”# 解决# 1. 查看配额使用gcloud services quotas list--serviceaiplatform.googleapis.com# 2. 申请提升配额gcloud services quotas update\--serviceaiplatform.googleapis.com\--quotaREQUESTS_PER_MINUTE\--value1006.3 安装问题Q: pip install 失败# 解决# 1. 升级 pippipinstall--upgradepip# 2. 使用国内镜像pipinstallgoogle-adk-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 3. 检查 Python 版本python--version# 需要 3.106.4 网络问题Q: 无法连接 GCP# 解决# 1. 检查网络连接pingaiplatform.googleapis.com# 2. 配置代理如需要exportHTTPS_PROXYhttp://proxy:port# 3. 检查防火墙6.5 成本优化Q: 如何控制成本# 1. 设置 Token 限制agentAgent(...,generation_config{max_output_tokens:1000,temperature:0.7})# 2. 使用缓存fromgoogle.adk.cachingimportResponseCache cacheResponseCache(ttl3600)# 3. 监控用量fromgoogle.adkimportusage_tracking usage_tracking.enable()系列教程导航第一章ADK 简介与对比第二章环境搭建与快速开始 ← 本章第三章核心概念与架构第四章Agent 开发与编排第五章工具集成与自定义第六章记忆与状态管理第七章企业级功能与安全第八章实战案例与最佳实践

相关文章:

Google Agent Development Kit (ADK) 指南 第二章:环境搭建与快速开始

Google Agent Development Kit (ADK) 指南 第二章:环境搭建与快速开始 系列教程:这是《Google ADK 指南》系列的第二章。 前置知识:已完成第一章,了解 ADK 基本概念。 目录 前置要求GCP 账号配置ADK 安装第一个 Agent 应用本地调…...

EVODiff:重新定义扩散模型推理范式的突破性探索

EVODiff:重新定义扩散模型推理范式的突破性探索 【免费下载链接】diffusers-cd_imagenet64_lpips 项目地址: https://ai.gitcode.com/hf_mirrors/openai/diffusers-cd_imagenet64_lpips 一、问题:扩散模型的"阿喀琉斯之踵"何在&#x…...

从太空到地面:详解J2000与WGS84坐标系在遥感卫星任务中的协同与转换

1. 为什么遥感卫星需要两套坐标系? 当你用手机地图导航时,有没有想过卫星是如何精确知道你和目标位置的关系的?这背后其实隐藏着一个关键问题:太空中高速飞行的卫星(每秒约7公里)和地面静止的建筑物&#…...

3个步骤释放AI科研助手潜力:自动化论文生成与智能文献分析提升科研效率

3个步骤释放AI科研助手潜力:自动化论文生成与智能文献分析提升科研效率 【免费下载链接】AI-Researcher "AI-Researcher: Fully-Automated Scientific Discovery with LLM Agents" & "Open-Sourced Alternative to Google AI Co-Scientist"…...

手把手教你用V-REP(CoppeliaSim)在Ubuntu20.04上搭建第一个机器人仿真项目

从零开始:Ubuntu 20.04下CoppeliaSim机器人仿真实战指南 在机器人技术快速发展的今天,仿真平台已成为开发者验证算法、测试设计的必备工具。CoppeliaSim(原V-REP)作为一款功能强大且开源的机器人仿真软件,凭借其跨平台…...

如何在30分钟内快速搭建企业级权限管理系统:RuoYi-Vue实战指南

如何在30分钟内快速搭建企业级权限管理系统:RuoYi-Vue实战指南 【免费下载链接】RuoYi-Vue 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 …...

Qt 树形数据实战:从QAbstractItemModel到QTreeView的完整实现

1. Qt树形数据管理基础 在Qt框架中处理树形数据是个常见需求,比如文件浏览器、组织结构图或者配置项管理。我刚开始接触Qt时,最头疼的就是理解Model/View架构,特别是当需要自定义数据结构时。后来发现只要掌握几个关键点,就能轻松…...

奇安信天眼实战:从协议字段到告警分析的完整指南(附常见漏洞案例)

奇安信天眼实战:从协议字段到告警分析的完整指南(附常见漏洞案例) 在企业安全运维的日常工作中,高效识别和响应潜在威胁是每个安全工程师的核心任务。奇安信天眼系统作为国内领先的威胁检测与响应平台,其强大的协议分析…...

革新性微信协议交互引擎:构建企业级智能消息处理系统

革新性微信协议交互引擎:构建企业级智能消息处理系统 【免费下载链接】puppet-xp Wechaty Puppet WeChat Windows Protocol 项目地址: https://gitcode.com/gh_mirrors/pu/puppet-xp 在数字化办公与即时通讯深度融合的今天,企业级消息自动化处理面…...

GLM-Image WebUI惊艳案例分享:数字艺术、写实人像、概念设计作品集

GLM-Image WebUI惊艳案例分享:数字艺术、写实人像、概念设计作品集 1. 开启AI艺术创作新篇章 想象一下,你只需要用文字描述心中的画面,就能在几分钟内看到它变成精美的图像。这不是科幻电影的情节,而是GLM-Image WebUI带给我们的…...

华为eNSP模拟器实战:通过Telnet实现AC远程管理的AAA认证配置详解

1. 华为eNSP模拟器与AC远程管理基础 第一次接触华为eNSP模拟器时,我被它高度还原真实设备操作体验的特性惊艳到了。这个免费的模拟器不仅能完整模拟华为路由器、交换机等网络设备,还能搭建包含AC(接入控制器)和AP(接入…...

在 Windows 10 上安装 AMD APP SDK 3.0 (64 bits)

在 Windows 10 上安装 AMD APP SDK 3.0 {64 bits}1. AMD APP SDK Installer 3.0 for Windows 64 bits2. D:\Program Files\AMD APP SDK\3.0\References1. AMD APP SDK Installer 3.0 for Windows 64 bits AMD-APP-SDKInstaller-v3.0.130.135-GA-windows-F-x64.exe 解除锁定 C…...

Adobe力推的Gain Map到底是什么?一篇看懂它如何用一张图搞定HDR和SDR兼容

Gain Map技术解析:如何用一张图实现HDR与SDR的完美兼容 当你在社交媒体分享一张夕阳照片时,是否遇到过这样的困扰——手机上看到的绚丽色彩在朋友的老款显示器上变得平淡无奇?这种显示效果的不一致性,正是当前图像技术面临的核心挑…...

python基础学习笔记第五章

一、数据容器入门1. 定义一种可容纳多份数据的Python数据类型,每份数据为元素,元素可以是任意类型(字符串、数字、布尔等)。2. 分类(按特性划分)依据是否支持重复元素、是否可修改、是否有序分为5类&#x…...

HPatches数据集实战:从特征点检测到匹配精度的全链路评估

1. HPatches数据集入门指南 第一次接触HPatches数据集时,我和大多数开发者一样有点懵。这个在特征点检测领域赫赫有名的基准测试集,到底该怎么用才能发挥最大价值?经过几个项目的实战,我总结出了一套小白也能快速上手的方法。 HPa…...

MATLAB R2023b安装包下载及安装步骤说明

MATLAB安装教程 1.打开下载好的MATLAB2023b文件包,解压Windouw版本的MATLAB里面包含了三个文件,如图所示: 2.选择上述文件中的R2023b_-Windows.iso文件,右键点击选择装载,如下图所示: 装载好后的文件如下…...

Python爬虫进阶:自动化采集语音训练数据实战

Python爬虫进阶:自动化采集语音训练数据实战 1. 引言 语音合成技术的快速发展对高质量训练数据提出了巨大需求。以Qwen3-TTS为例,仅需3秒参考音频就能实现高精度音色克隆,但前提是需要大量优质的语音-文本配对数据。传统的手工采集方式效率…...

AutoDock Vina硼原子兼容性实战指南:解决1.1.2+版本特殊原子对接问题

AutoDock Vina硼原子兼容性实战指南:解决1.1.2版本特殊原子对接问题 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina 诊断硼原子对接失败问题 作为一名计算药物学家,我最近在处理含硼…...

Gemma-3-12b-it图文问答典型错误分析:光照/遮挡/低分辨率应对策略

Gemma-3-12b-it图文问答典型错误分析:光照/遮挡/低分辨率应对策略 1. 工具概述 Gemma-3-12b-it是一款基于Google Gemma-3-12b-it大模型开发的多模态交互工具,专为本地图文问答场景优化。该工具通过全维度CUDA性能优化,支持图片上传与文本提…...

当AI学会“鉴谎”:企业舆情处置从被动救火到主动防御

最近跟几个做品牌公关的朋友聊天,发现大家都有一个共同的焦虑:网络上的信息传播太快了,一条负面视频、一篇恶意差评,可能一夜之间就让企业多年积累的声誉受到重创。更棘手的是,传统处置方式要么慢如蜗牛,要…...

快速体验SenseVoice语音识别:带量化ONNX模型一键启动服务

快速体验SenseVoice语音识别:带量化ONNX模型一键启动服务 1. 语音识别服务简介 SenseVoice是一款基于ONNX量化的多语言语音识别服务,特别适合需要快速部署和高效推理的开发场景。这个经过优化的模型能够在保持高精度的同时,显著降低资源消耗…...

Windows 基本操作快捷键

Windows 基本操作快捷键1. Windows 7 专业版2. Keyboard shortcuts in WindowsReferences1. Windows 7 专业版 2. Keyboard shortcuts in Windows Win 键是键盘上图标像窗户键。 快速切换窗口 Alt Tab 快速移到网页末 Ctrl End 快速移到网页首 Ctrl Home 锁屏 Win …...

100激光只是起步,易加增材把金属3D打印机做到3米级,全球最大!

易加增材:没有最大,只有更大。EP-M3050金属3D打印设备当前,金属3D打印正加快向大尺寸、一体化、高精度、高效率方向发展,航空航天、能源装备等领域对超大尺寸、多激光金属增材制造设备的需求持续上升。在此背景下,易加…...

亚马逊A+页面Shoppable系列实战:如何用交互设计提升30%转化率(附配置步骤)

亚马逊A页面Shoppable系列实战:如何用交互设计提升30%转化率(附配置步骤) 在亚马逊这个竞争激烈的电商平台上,产品页面的每一个像素都可能决定销售的成败。A页面作为品牌展示的重要阵地,已经从单纯的"电子说明书&…...

从“一通电就响”到“编程奏乐”:深入解析有源与无源蜂鸣器的核心差异与选型实战

1. 蜂鸣器基础:从"滴滴声"到"交响乐"的硬件选择 第一次接触蜂鸣器是在大学电子设计课上,当时我用单片机控制一个黑色小元件发出"滴滴"声,兴奋得像是发现了新大陆。后来才知道,那个黑色小元件就是最…...

Web 表白页面性能优化指南:Awesome-Love-Code 最佳实践

Web 表白页面性能优化指南:Awesome-Love-Code 最佳实践 【免费下载链接】Awesome-Love-Code 表白代码收藏馆~谁说程序猿不懂浪漫❤️ 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-Love-Code 在数字化时代,表白页面已成为程序员表达爱意…...

coze-loop代码优化器Mac M2本地部署:5分钟搭建你的AI编程助手

coze-loop代码优化器Mac M2本地部署:5分钟搭建你的AI编程助手 1. 为什么选择本地部署的AI代码优化器? 在软件开发过程中,我们经常遇到这样的困境:一段功能正常的代码,却存在性能瓶颈、可读性差或潜在风险。传统解决方…...

EVA-01效果展示:Qwen2.5-VL-7B对视频关键帧摘要+动作识别+事件检测

EVA-01效果展示:Qwen2.5-VL-7B对视频关键帧摘要动作识别事件检测 1. 引言:当视觉AI披上机甲战袍 想象一下,你有一段长达十分钟的监控视频,需要快速找出其中有人摔倒的片段;或者你手头有一堆产品演示视频,…...

Java框架开发短剧漫剧系统:后台管理与接口开发

本次开发采用Java主流框架组合,兼顾开发效率、可维护性与扩展性,核心技术选型:后端 SpringBoot 2.7.x(简化配置、快速开发) Spring Security(权限管控) MyBatis-Plus(数据操作&#…...

利用快马平台快速生成AppLite应用原型:十分钟搭建待办事项管理工具

最近在尝试快速验证一个待办事项管理工具的想法,不想在环境搭建和基础代码上耗费太多时间。正好了解到InsCode(快马)平台支持通过描述直接生成项目代码,于是决定用它结合AppLite这个轻量级框架来试试水。整个过程比预想的要顺畅,从输入想法到…...