Google ADK 框架实操分享:从 Agent 基础到智能体落地实现(THS)
从"对话"到"协作":AI Agent框架全景解析与ADK实践指南
2013年7月某日,杭州,多云
引言:当AI不再"只动口"
在生成式AI的浪潮中,一个关键转折正在发生:AI正从"只会聊天"的对话机器人,进化为"能动手做事"的智能执行者。这个转变的核心载体,正是AI Agent(智能体)。
本文将从Agent的基本概念出发,系统梳理当前主流Agent开发框架的技术选型,并重点解读Google ADK(Agent Development Kit)的设计理念与实践路径。
一、Agent是什么:从ChatBot到智能执行者

1.1 ChatBot ≠ AI Agent
ChatGPT这类对话机器人,是AI Agent吗?答案是否定的。
普通ChatBot仅能进行对话应答,不具备自主行动能力;而AI Agent能够自主思考、调用外部工具,以闭环方式完整执行任务。两者的本质区别在于:ChatBot回答问题,AI Agent解决问题。
以"查询杭州明日天气"为例:
- ChatBot:根据训练数据或内置知识给出回答,可能不够准确
- AI Agent:自主调用天气API → 获取实时数据 → 解析结果 → 返回精确答案

1.2 Agent的核心公式
Agent = LLM(大脑)+ Planning(规划)+ Tool use(执行)+ Memory(记忆)
1.3 ReAct范式:思考-行动-再思考
AI Agent通常遵循ReAct(Reasoning + Acting) 经典思维范式:先想(推理)、再做(行动)、再想(推理)、再做(行动)……循环往复,直至任务完成。
这就像一个认真负责的新员工接到任务时的做事方式——“我先想想该怎么做 → 去查一下资料 → 看看查到了什么 → 再想下一步 → 继续行动……”,而非一拍脑袋就乱做。
二、Agent框架全景对比:低代码 vs 代码级
当前Agent开发工具可分为两大阵营:低代码/可视化平台和代码级开发框架。两者各有优劣,适用场景也截然不同。
2.1 低代码/可视化平台
低代码平台的特点是用拖拽式编排替代手写代码,快速验证想法。典型代表包括:
| 平台 | 定位与特点 | 技术亮点 |
|---|---|---|
| n8n | 开源工作流自动化引擎,500+应用集成,可视化AI Agent编排 | TypeScript/Node.js/Vue.js,支持MCP协议,2500+模板 |
| Dify | LLM应用开发平台,“WordPress for LLM Apps” | Python/Next.js,内置RAG管道和Agent编排,500万+下载 |
| Coze(扣子) | 字节跳动开源AI Agent可视化IDE,多Agent协作 | Go/React,DDD架构,2025年7月开源两天破万星 |
| 同花顺自研平台 | 企业级低代码Agent平台,深度定制化 | 自主知识产权,内部业务系统无缝集成 |
低代码平台的优势:
- 🚀 快速落地:原型验证周期从天缩短到小时
- 👥 低门槛协作:业务人员可直接参与,需求到交付零信息损耗
- 🎨 可视化调试:执行链路一目了然,调试效率大幅提升
低代码平台的劣势:
- 🔒 灵活性受限:复杂逻辑编排困难,超出平台能力边界时束手无策
- 🔧 定制化困难:深度定制依赖平台能力,源码不可控
- 🏢 供应商锁定:迁移成本高,技术选型风险大

2.2 代码级开发框架
代码级框架则需要开发者以编码方式构建Agent,灵活度最高,但也意味着更高的学习成本和技术门槛。
| 框架 | 定位与特点 | 技术栈 | 社区活跃度 |
|---|---|---|---|
| LangChain | LLM应用开发事实标准 | Python/JavaScript | 13.1万⭐,月下载2.23亿 |
| LangGraph | 有状态Agent图编排引擎,多Agent协作 | Python/JavaScript | 3.6万⭐,周增587星 |
| Google ADK | 多语言Agent框架,Gemini深度集成 | Python/Go/Java/TS | 全语言2.8万⭐,增速最快 |
| LangChain4j | Java/JVM生态LLM集成框架首选 | Java | 1.24万⭐ |
| LangGraph4j | 纯Java多Agent工作流库 | Java | 1,779⭐ |
| Spring AI | Spring官方AI框架 | Java | 9,000⭐ |
代码框架的优势:
- 🎯 极致灵活:代码级控制,不受平台能力边界限制
- ⚡ 高性能:无可视化抽象层开销,适合高并发低延迟场景
- 🧪 工程化完善:标准单元测试、CI/CD、Git版本管理、Code Review
- 🔓 无供应商锁定:开源自由,源码可审计可修改
代码框架的劣势:
- 📈 学习曲线陡:需要扎实编程能力,上手周期长
- ⏱ 开发周期长:从零搭建完整Agent系统耗时显著高于低代码
- 🔄 版本迭代快:LangChain等框架API Breaking Change频繁,维护成本高
三、Google ADK:多Agent协同编排框架

3.1 ADK的定位
Google ADK(Agent Development Kit)是一个灵活且模块化的框架,用于开发和部署AI Agent。它的核心定位是Agent编排——解决多Agent之间的协同工作问题。
在理解ADK之前,需要先厘清一个分层认知:
- 第一层:单一Agent构建(AI客户端) ——Spring AI、LangChain4j等框架解决的是"如何构建一个能调用LLM、使用工具的独立Agent"
- 第二层:多Agent协同编排 ——Google ADK解决的是"如何让多个Agent按照特定流程协同完成复杂任务"
ADK不直接调用AI API,而是通过上层构建的Agent来完成AI交互。它针对Gemini和Google生态系统进行了优化,但模型无关,可与其他框架兼容。
ADK的设计宗旨是:让Agent开发更像软件开发——使开发人员能够轻松创建、部署和编排从简单任务到复杂工作流的多Agent架构。
3.2 Spring AI vs LangChain4j:一段代码引发的设计哲学思考
在进入ADK之前,有必要先理解Spring AI和LangChain4j在设计哲学上的差异。这两种框架代表了两种截然不同的取舍:
LangChain4j:约定优于配置
// 只需3个参数
OpenAiChatModel model = OpenAiChatModel.builder()
.baseUrl("https://ark.cn-beijing.volces.com/api/v3/")
.apiKey("ark-xxx")
.modelName("doubao-seed-2-0-lite-260215")
.build();
String chat = model.chat("hi 你好哇!");
Spring AI:配置优于约定
// 需要5个配置项
OpenAiApi openAiApi = OpenAiApi.builder()
.baseUrl("https://ark.cn-beijing.volces.com")
.apiKey("ark-xxx")
.completionsPath("/api/v3/chat/completions")
.embeddingsPath("/api/v3/embeddings")
.build();
ChatModel chatModel = OpenAiChatModel.builder()
.openAiApi(openAiApi)
.defaultOptions(OpenAiChatOptions.builder()
.model("doubao-seed-2-0-lite-260215")
.build())
.build();
String call = chatModel.call("hi 你是谁");
核心差异:最终URL如何拼接
LangChain4j假设API遵循OpenAI规范,将baseUrl与内置的/chat/completions路径硬编码拼接。3个参数即可调用,但若API端点路径非标准则无法调用。
Spring AI不预设任何路径假设,completionsPath由用户显式配置。5个参数确保100%覆盖所有场景,但标准场景配置更繁琐。
这种差异反映的是两种设计哲学的权衡:LangChain4j选择"约定优于配置"追求简洁,Spring AI选择"配置优于约定"追求灵活。巧合的是,99%的LLM厂商(火山引擎、DeepSeek、Ollama等)都遵循OpenAI路径规范,LangChain4j的硬编码在实际使用中极少成为障碍。
理解了这层差异,就不难理解为什么市面上对"Spring AI是否更好"存在不同看法——它更像是一种有意识的工程取舍,而非谁比谁更先进。
3.3 ADK的核心概念

ADK框架由几个核心概念构成,理解它们就理解了ADK的运作方式:
LlmAgent(智能体):包装LLM+指令+工具,每个Agent通过output_key将输出写入Session State,供后续Agent引用。
Session State(共享状态):一个字典结构,Agent之间通过{key}占位符传递数据。这是ADK实现多Agent协作的数据总线。
InMemoryRunner(运行时容器):管理Session/Event流,支持异步流式输出,是Agent执行的运行时环境。
MCP Tool(模型上下文协议):通过SyncMcpToolCallbackProvider集成外部工具,让Agent能够调用外部能力。
编排Agent(Workflow Agents):ADK提供三种内置的编排模式:
-
SequentialAgent(顺序执行):CodeWriterAgent写代码 → CodeReviewerAgent审查 → CodeRefactorerAgent重构,输出按
{generated_code}→{review_comments}→{refactored_code}流转 -
ParallelAgent(并行执行):多个Agent同时工作——RenewableEnergyResearcher查可再生能源、EVResearcher查电动汽车技术、CarbonCaptureResearcher查碳捕获方法——并行结果汇聚后由SynthesisAgent整合
-
LoopAgent(迭代循环):InitialWriterAgent写初稿,LoopAgent(maxIterations=5)内CriticAgent审查、RefinerAgent修改,直到满足条件或到达最大迭代次数
3.4 编排嵌套:ADK真正的威力
ADK真正的强大之处在于编排的任意嵌套与组合能力:
编排能力:
Sequential( Parallel(A, B), Loop(C), D )
这条"一句话编排"背后执行的是:先并行执行A和B,再将C循环执行直到条件满足,最后执行D。每一种编排方式都可递归嵌套:Parallel里可以放Sequential,Loop里可以套Parallel……这种递归能力,才是ADK作为编排框架区别于"AI客户端库"的真正分水岭。
相比LangGraph的状态机式编排,ADK的编排更接近声明式工作流——开发者定义"做什么"而非"怎么做"。
四、实践分享:基于ADK的快速搭建
在实际开发中,基于ADK搭建一个完整的Agent系统通常遵循以下路径:
Step 1:定义单一Agent
使用LlmAgent包装LLM、指令和工具,通过output_key定义输出。
Step 2:设计工作流
根据业务需求选择合适的编排模式(Sequential/Parallel/Loop),通过Session State衔接各Agent的数据流转。
Step 3:配置工具集成
通过MCP Tool接入外部API和内部系统,让Agent获得操作外部世界的能力。
Step 4:运行时编排
使用InMemoryRunner执行工作流,处理流式输出和异常情况。
在本次分享的实践案例中(Draw.io画图Agent与热点新闻H5生成Agent),正是利用ADK的编排能力,将复杂任务拆解为多个专业化Agent协同完成,实现了单一Agent难以独立完成的多步骤复杂工作。
五、总结与选型建议
| 需求场景 | 推荐方案 | 核心理由 |
|---|---|---|
| 快速验证想法、原型演示 | 低代码平台(n8n/Dify/Coze) | 小时级原型验证,业务人员可参与 |
| 单一Agent开发、标准场景 | Spring AI / LangChain4j | 工程化成熟,与框架生态深度整合 |
| 多Agent协同、复杂工作流 | Google ADK | 编排能力最强,Session State机制优秀 |
| 大规模部署、高并发生产 | 代码框架 + 自研编排 | 极致的灵活性和性能控制 |
在AI Agent开发框架的选择上,没有绝对的"最好",只有"最合适"。低代码平台适合快速验证,代码框架适合深度定制;Spring AI/LangChain4j适合单Agent构建,ADK适合多Agent协同。 理解各类框架的定位差异,根据自身团队能力、业务复杂度、长远规划做出选择,才是务实的决策逻辑。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)