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

6 阅读4分钟

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 配置参数

参数说明示例
nameAgent 名称"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)

🎯 下一步学习

  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 日


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