教程中心进阶
进阶

用 Google ADK 搭建多智能体:Planner + Writer 协作写文章

2026.07.13· 7 个步骤 · 22 分钟阅读· 🔷 Google ADK

单个 AI 写文章,常常要么跑题、要么结构稀烂。解决思路是把活儿拆给多个各司其职的 AI:一个负责列大纲、一个负责写、一个负责挑毛病。Google 官方的 Agent Development Kit(ADK) 就是干这个的——它是 Google 开源的智能体框架,原生支持多智能体编排,还自带一个本地调试网页。本教程带你用 ADK 搭一个"规划员 + 写手 + 校验员"协作的博客写作智能体。

🔷 本教程适合:会 Python 基础、想认真做"能协作的多智能体"的开发者。如果你只想零代码玩 Agent,先看本中心的《用 Dify 搭建第一个 AI 应用》《用 Langflow 拖拽搭建工作流》。

先搞懂:ADK 的多智能体是什么?

ADK 里,一个 Agent 就是一个 Python 对象,带"人设(instruction)"和"工具(tools)"。多智能体就是把这些 Agent 像乐高一样拼起来,框架帮你管理"谁先干、结果怎么传给下一个"。本教程用的三种编排原语:

原语作用本教程用法
SequentialAgent按顺序一个接一个跑规划 → 写作 → 校验 流水线
LoopAgent循环跑,直到满足条件大纲不合格就重新规划
Agent + tools单个会调用工具的 Agent规划员、写手、校验员

为什么不直接让一个 AI 写完?单 Agent 容易"一口气写飞"。拆成多角色 + 校验循环,质量更稳定,也方便你单独调某个环节。这是生产级 Agent 的标准套路。

Step 1:装好 Python 与 ADK

1 安装 Google ADK 框架

ADK 需要 Python 3.10+。直接用 pip 安装(国内可加清华镜像):

# 安装 ADK
pip install google-adk

# 确认装好
adk --version

# 需要的话,装个虚拟环境隔离依赖(推荐)
python -m venv .venv
source .venv/bin/activate   # Windows 用 .venv\Scripts\activate
💡 国内网络装包慢?先执行 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple。ADK 当前主版本为 2.x,命令以 adk --help 实际输出为准。

Step 2:拿到 Gemini API Key

2 给 Agent 接上 Gemini 大脑

ADK 默认用 Google 的 Gemini 模型。去 Google AI Studio 免费申请一个 Key:

1. 打开 Google AI Studio(aistudio.google.com)
2. 点「Get API Key」创建一个密钥
3. 复制密钥,下面会写进 .env 文件

# 在项目目录建 .env,写入:
GOOGLE_API_KEY=你的key

Key 别提交到公开仓库:把 .env 加进 .gitignore。任何人拿到这个 Key 都能用你的额度调用 Gemini。

Step 3:建项目骨架

3 创建 ADK 项目目录

ADK 直接从项目目录加载 Agent。建一个文件夹,放上必要的文件:

mkdir bloggeragent && cd bloggeragent
touch requirements.txt .env __init__.py agent.py

# requirements.txt 写入:
google-adk
python-dotenv

# 安装依赖
pip install -r requirements.txt
🚀 ADK 的约定:agent.py 里要定义一个 root_agent 变量,框架会把它当作入口。__init__.py 里写 from . import agent 即可自动暴露。

Step 4:写规划员(Planner)

4 第一个 Agent:负责列大纲

agent.py 里,先写规划员。它只干一件事:根据主题产出一份清晰的 Markdown 大纲,并把结果存到 blog_outline

import os
from dotenv import load_dotenv
from google.adk.agents import Agent

load_dotenv()
MODEL = os.getenv("MODEL", "gemini-flash-latest")

blog_planner = Agent(
    name="BlogPlanner",
    model=MODEL,
    description="为技术文章生成可扫读的大纲。",
    instruction="""
你是一位技术内容策划。请产出清晰的 Markdown 大纲,包含:
- 标题
- 简短引言
- 4~6 个主要小节(每节 2~3 个要点)
- 结论
只返回 Markdown 大纲本身。
""",
    output_key="blog_outline",
)
🔑 output_key 是 ADK 的关键机制:Agent 的输出会自动存进共享"状态"里这个键,后面的 Agent 直接读,不用你手动传参。

Step 5:写写手 + 校验循环

5 写手扩写,校验员挑刺,不合格重来

加一个写手 Agent(读大纲扩写成文),再加一个校验 Agent,用 LoopAgent 把它们包起来——校验不过就重新规划:

from google.adk.agents import LoopAgent

blog_writer = Agent(
    name="BlogWriter",
    model=MODEL,
    description="根据大纲扩写完整文章。",
    instruction="你是技术写手。读取状态里的 blog_outline,写出一篇流畅、准确的中文文章。",
    output_key="blog_draft",
)

class OutlineValidationChecker(Agent):
    def __init__(self):
        super().__init__(
            name="OutlineValidationChecker",
            model=MODEL,
            description="校验大纲是否可用。",
            instruction="检查状态里的 blog_outline:若有标题、引言、4~6 节和结论,回复 exactly 'ok',否则回复 exactly 'retry' 并列出缺失项。",
            output_key="validation_result",
        )

robust_planner = LoopAgent(
    name="RobustBlogPlanner",
    sub_agents=[blog_planner, OutlineValidationChecker],
    max_iterations=3,
)

LoopAgent 的 max_iterations 防止死循环:校验最多重试 3 次,再不行就带着当前结果往下走,避免 Agent 卡在"永远不合格"里烧钱。

Step 6:组装主 Agent 并跑起来

6 把流水线串成 root_agent

用 SequentialAgent 把"稳健规划 → 写作"串成主流程,定义为 root_agent

from google.adk.agents import SequentialAgent

root_agent = SequentialAgent(
    name="BloggerAgent",
    sub_agents=[robust_planner, blog_writer],
)

然后在终端启动本地调试界面:

adk web

打开 http://127.0.0.1:8000 ,就能在网页里和 Agent 对话,左边输入"写一篇关于 AI Agent 成本优化的文章",右边实时看到规划、校验、写作的每一步。

🚀 adk web 是调试神器:你能亲眼看到每个子 Agent 的输入输出、工具调用,定位"哪一步跑偏了"比盲调快十倍。

Step 7:评估与部署(进阶)

7 上线前先评估,再部署到云端

ADK 自带评估能力,写几个用例防止回归;跑通后部署到 Google Cloud:

# 写评估用例(示例)
from google.adk.evaluation import EvalSet
eval_set = EvalSet(cases=[
    {"input": "写一篇关于 RAG 的文章", "expected_tools": []}
])

# 部署到 Cloud Run(需 Google Cloud 项目)
adk deploy cloud_run
🎉 恭喜!你已用 ADK 搭出一个"会自我校验"的多智能体写作流水线。这套 Sequential + Loop 的编排模式,能套到几乎所有需要"多角色协作 + 质量把关"的任务上,比如研究报告生成、客服工单处理。

常见问题速查

你遇到的现象大概率原因 & 解决
adk 命令找不到虚拟环境没激活,或 pip 装到了别的 Python
报 API Key 错误.env 没建或没写 GOOGLE_API_KEY,检查路径
子 Agent 读不到上游结果确认上游 Agent 设了 output_key,下游从状态读取
一直 retry 循环把 LoopAgent 的 max_iterations 调小,或放宽校验指令