从"对话"到"协作":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提供三种内置的编排模式:

  1. SequentialAgent(顺序执行):CodeWriterAgent写代码 → CodeReviewerAgent审查 → CodeRefactorerAgent重构,输出按{generated_code}{review_comments}{refactored_code} 流转

  2. ParallelAgent(并行执行):多个Agent同时工作——RenewableEnergyResearcher查可再生能源、EVResearcher查电动汽车技术、CarbonCaptureResearcher查碳捕获方法——并行结果汇聚后由SynthesisAgent整合

  3. 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协同。 理解各类框架的定位差异,根据自身团队能力、业务复杂度、长远规划做出选择,才是务实的决策逻辑。


Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐