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

30 分钟搭建第一个 AI Agent:Google ADK 入门

30 分钟搭建第一个 AI Agent:Google ADK 入门

系列文章:《AI Agent 开发实战》第 1 期
难度等级:⭐⭐
预计耗时:30 分钟


🎯 学习目标

学完本文,你将能够:

  • ✅ 理解 AI Agent 的核心概念
  • ✅ 安装和配置 Google ADK
  • ✅ 编写第一个 Agent 程序
  • ✅ 实现简单的对话和工具调用

📚 什么是 AI Agent?

AI Agent = 大模型 + 记忆 + 工具调用

想象一下:

  • 大模型是"大脑" - 负责思考和决策
  • 记忆是"经验" - 记住之前的对话和操作
  • 工具是"手脚" - 执行具体任务(搜索、计算、API 调用等)

🔧 环境准备

1. 安装 Python 3.10+

python3--version# 应该 >= 3.10

2. 创建虚拟环境

python3-mvenv agent-envsourceagent-env/bin/activate

3. 安装 Google ADK

pipinstallgoogle-adk

4. 配置 API Key

exportGOOGLE_API_KEY="your-api-key-here"

💻 第一个 Agent 程序

示例 1:Hello Agent

fromgoogle.adkimportAgent# 创建 Agentagent=Agent(name="MyFirstAgent",instruction="你是一个友好的 AI 助手")# 运行对话response=agent.run("你好,请介绍一下自己")print(response)

示例 2:带记忆的 Agent

fromgoogle.adkimportAgent,Memory# 创建带记忆的 Agentagent=Agent(name="ChatAgent",instruction="你是一个专业的编程助手",memory=Memory(max_turns=10))# 多轮对话agent.run("我想学习 Python")agent.run("有什么好的入门资源推荐?")agent.run("我已经有基础了,想学 Web 开发")

示例 3:带工具调用的 Agent

fromgoogle.adkimportAgent,Tool# 定义工具defsearch_web(query:str)->str:"""搜索网络信息"""returnf"搜索结果:{query}"defcalculate(expression:str)->float:"""计算器"""returneval(expression)# 创建带工具的 Agentagent=Agent(name="ToolAgent",instruction="你可以使用工具帮助用户",tools=[Tool(name="search",func=search_web),Tool(name="calc",func=calculate)])# 测试工具调用response=agent.run("帮我计算 123 * 456")print(response)

🚀 实战项目:天气查询 Agent

完整代码

fromgoogle.adkimportAgent,Toolimportrequestsdefget_weather(city:str)->str:"""查询城市天气"""url=f"http://wttr.in/{city}?format=3"response=requests.get(url)returnresponse.text# 创建天气 Agentweather_agent=Agent(name="WeatherBot",instruction="你是一个天气查询助手,用友好的语气回答",tools=[Tool(name="weather",func=get_weather)])# 运行print("天气查询助手已启动(输入 quit 退出)")whileTrue:user_input=input("你:")ifuser_input.lower()=="quit":breakresponse=weather_agent.run(user_input)print(f"助手:{response}")

运行效果

天气查询助手已启动(输入 quit 退出) 你:北京今天天气怎么样? 助手:北京市,晴,温度 25°C,风速 10km/h 你:上海呢? 助手:上海市,多云,温度 28°C,风速 15km/h

🎓 核心概念详解

1. Agent 配置参数

参数说明示例
nameAgent 名称“WeatherBot”
instruction系统指令“你是天气助手”
memory记忆配置Memory(max_turns=10)
tools工具列表[Tool(…), Tool(…)]
model使用的模型“gemini-pro”

2. 工具定义

Tool(name="工具名称",func=函数名, description="工具描述(Agent 根据这个决定何时调用)")

3. 记忆类型

  • 短期记忆- 记住当前对话
  • 长期记忆- 跨会话记忆
  • 向量记忆- 语义搜索历史

🔥 进阶技巧

技巧 1:多 Agent 协作

# 创建多个专业 Agentresearcher=Agent(name="研究员",instruction="负责搜集信息")writer=Agent(name="作家",instruction="负责撰写文章")reviewer=Agent(name="审核员",instruction="负责审核内容")# 协作流程info=researcher.run("查询 AI 最新进展")article=writer.run(f"基于以下信息写文章:{info}")final=reviewer.run(f"审核这篇文章:{article}")

技巧 2:自定义工具

fromgoogle.adkimportTool# 调用外部 APIdefcall_api(endpoint:str,data:dict)->dict:response=requests.post(endpoint,json=data)returnresponse.json()# 数据库操作defquery_db(sql:str)->list:returndb.execute(sql).fetchall()# 文件操作defread_file(path:str)->str:withopen(path,'r')asf:returnf.read()

技巧 3:错误处理

try:response=agent.run(user_input)exceptExceptionase:print(f"出错了:{e}")# 降级处理response="抱歉,我暂时无法处理这个请求"

📊 性能优化

1. 减少 Token 消耗

# 限制输出长度agent=Agent(name="EfficientAgent",config={"max_output_tokens":500})# 使用更小的模型agent=Agent(name="FastAgent",model="gemini-fast"# 更快更便宜)

2. 缓存结果

fromfunctoolsimportlru_cache@lru_cache(maxsize=100)defcached_search(query:str)->str:returnsearch_web(query)

🎯 下一步学习

  1. 第 2 期- AI Agent 记忆系统实现
  2. 第 3 期- 给 Agent 添加工具调用能力
  3. 第 4 期- 多 Agent 协作系统
  4. 第 5 期- LangChain vs Google ADK 对比

💬 互动话题

  1. 你想用 Agent 解决什么问题?
  2. 遇到什么技术难点?
  3. 需要什么示例代码?

欢迎在评论区留言!


作者:AI 技术实践者
代码仓库:GitHub 链接(待补充)
最后更新:2026 年 3 月 21 日


觉得有用?点赞 👍 收藏 ⭐ 关注 ➕ 三连支持一下!

http://www.jsqmd.com/news/536649/

相关文章:

  • 多智能体强化学习在游戏AI中的应用:从理论到实践
  • 计算机毕设 java 基于 Android 的健身运动app SpringBoot 安卓智能健身管理 APP JavaAndroid 健身课程与食谱一体化平台
  • diffusers单机多卡推理实战:StableDiffusionXLPipeline的GPU分配优化
  • 基于Coze的智能客服系统搭建实战:从零到高可用的效率优化指南
  • MCPHub实战:以Grafana为例构建统一AI服务网关
  • ChatGPT SSL证书配置实战:从原理到生产环境避坑指南
  • 英雄联盟智能助手League Akari:突破游戏操作瓶颈的全面解决方案
  • 构建高准确率智能体客服评测体系:从指标设计到AI辅助调优
  • 微信/支付宝收款码直连教程:十三合一代付商城系统支付配置避坑指南
  • OpenClaw多平台支持:Mac与Windows下GLM-4.7-Flash配置对比
  • VScode与Keil双剑合璧:打造高效嵌入式开发环境
  • Excel VBA+Adobe Acrobat Pro PDF发票自动录入台账(附完整代码)
  • 14:L构建AI钓鱼邮件过滤:蓝队的邮件安全防御
  • SEO_让搜索引擎更喜欢的站内SEO设置原因
  • 宝塔面板Let’s Encrypt证书续签全攻略:手动+自动两种方法详解
  • IOPaint:AI驱动的全栈图像修复解决方案
  • OpenClaw自动化周报系统:GLM-4.7-Flash汇总Git提交记录
  • ESP32非阻塞Modbus-RTU主站库设计与工业应用
  • Anaconda与OpenCV一站式安装指南:从下载到验证
  • 四种主流AMR底盘结构深度解析
  • 告别环境变量混乱:用批处理脚本一键配置QGIS 3.28.15 + Qt5.15.3 + VS2022编译环境
  • 警惕!别让@Async成为服务器的“资源杀手”
  • 全球国家地理边界演变数据集(Cliopatria)公元前3400年-公元2024年
  • 能耗监控系统:OpenClaw+nanobot自动记录电脑用电数据并生成报告
  • CAN总线错误帧的常见诱因及解决方案
  • OpenClaw低代码方案:Qwen3-VL:30B飞书流程可视化编排
  • 网站主机技术
  • 2026成都专线物流优质服务商推荐榜时效管控双优:成都专线物流公司、成都到乌鲁木齐专线物流、成都到克拉玛依物流专线选择指南 - 优质品牌商家
  • 无障碍应用:OpenClaw+Qwen3.5-9B为视障者转换图片信息为语音
  • 光伏MPPT仿真 布谷鸟算法MPPT对照布谷鸟算法结合电导增量法MPPT。 可以看出布谷鸟结合...