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 -m venv agent-env
source agent-env/bin/activate
3. 安装 Google ADK
pip install google-adk
4. 配置 API Key
export GOOGLE_API_KEY="your-api-key-here"
💻 第一个 Agent 程序
示例 1:Hello Agent
from google.adk import Agent
# 创建 Agent
agent = Agent(
name="MyFirstAgent",
instruction="你是一个友好的 AI 助手"
)
# 运行对话
response = agent.run("你好,请介绍一下自己")
print(response)
示例 2:带记忆的 Agent
from google.adk import Agent, Memory
# 创建带记忆的 Agent
agent = Agent(
name="ChatAgent",
instruction="你是一个专业的编程助手",
memory=Memory(max_turns=10)
)
# 多轮对话
agent.run("我想学习 Python")
agent.run("有什么好的入门资源推荐?")
agent.run("我已经有基础了,想学 Web 开发")
示例 3:带工具调用的 Agent
from google.adk import Agent, Tool
# 定义工具
def search_web(query: str) -> str:
"""搜索网络信息"""
return f"搜索结果:{query}"
def calculate(expression: str) -> float:
"""计算器"""
return eval(expression)
# 创建带工具的 Agent
agent = Agent(
name="ToolAgent",
instruction="你可以使用工具帮助用户",
tools=[
Tool(name="search", func=search_web),
Tool(name="calc", func=calculate)
]
)
# 测试工具调用
response = agent.run("帮我计算 123 * 456")
print(response)
🚀 实战项目:天气查询 Agent
完整代码
from google.adk import Agent, Tool
import requests
def get_weather(city: str) -> str:
"""查询城市天气"""
url = f"http://wttr.in/{city}?format=3"
response = requests.get(url)
return response.text
# 创建天气 Agent
weather_agent = Agent(
name="WeatherBot",
instruction="你是一个天气查询助手,用友好的语气回答",
tools=[Tool(name="weather", func=get_weather)]
)
# 运行
print("天气查询助手已启动(输入 quit 退出)")
while True:
user_input = input("你:")
if user_input.lower() == "quit":
break
response = weather_agent.run(user_input)
print(f"助手:{response}")
运行效果
天气查询助手已启动(输入 quit 退出)
你:北京今天天气怎么样?
助手:北京市,晴,温度 25°C,风速 10km/h
你:上海呢?
助手:上海市,多云,温度 28°C,风速 15km/h
🎓 核心概念详解
1. Agent 配置参数
| 参数 | 说明 | 示例 |
|---|---|---|
| name | Agent 名称 | "WeatherBot" |
| instruction | 系统指令 | "你是天气助手" |
| memory | 记忆配置 | Memory(max_turns=10) |
| tools | 工具列表 | [Tool(...), Tool(...)] |
| model | 使用的模型 | "gemini-pro" |
2. 工具定义
Tool(
name="工具名称",
func=函数名,
description="工具描述(Agent 根据这个决定何时调用)"
)
3. 记忆类型
- 短期记忆 - 记住当前对话
- 长期记忆 - 跨会话记忆
- 向量记忆 - 语义搜索历史
🔥 进阶技巧
技巧 1:多 Agent 协作
# 创建多个专业 Agent
researcher = 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:自定义工具
from google.adk import Tool
# 调用外部 API
def call_api(endpoint: str, data: dict) -> dict:
response = requests.post(endpoint, json=data)
return response.json()
# 数据库操作
def query_db(sql: str) -> list:
return db.execute(sql).fetchall()
# 文件操作
def read_file(path: str) -> str:
with open(path, 'r') as f:
return f.read()
技巧 3:错误处理
try:
response = agent.run(user_input)
except Exception as e:
print(f"出错了:{e}")
# 降级处理
response = "抱歉,我暂时无法处理这个请求"
📊 性能优化
1. 减少 Token 消耗
# 限制输出长度
agent = Agent(
name="EfficientAgent",
config={"max_output_tokens": 500}
)
# 使用更小的模型
agent = Agent(
name="FastAgent",
model="gemini-fast" # 更快更便宜
)
2. 缓存结果
from functools import lru_cache
@lru_cache(maxsize=100)
def cached_search(query: str) -> str:
return search_web(query)
🎯 下一步学习
- 第 2 期 - AI Agent 记忆系统实现
- 第 3 期 - 给 Agent 添加工具调用能力
- 第 4 期 - 多 Agent 协作系统
- 第 5 期 - LangChain vs Google ADK 对比
💬 互动话题
- 你想用 Agent 解决什么问题?
- 遇到什么技术难点?
- 需要什么示例代码?
欢迎在评论区留言!
作者: AI 技术实践者
代码仓库: GitHub 链接(待补充)
最后更新: 2026 年 3 月 21 日
觉得有用?点赞 👍 收藏 ⭐ 关注 ➕ 三连支持一下!